[mapserver] 01/01: Imported Upstream version 7.0.0~beta1
Sebastiaan Couwenberg
sebastic at moszumanska.debian.org
Sat Jun 20 00:20:31 UTC 2015
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch upstream
in repository mapserver.
commit 081b030e2e0698123ee66f22f8ddeaa4c39a0afb
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Fri Jun 19 23:47:31 2015 +0200
Imported Upstream version 7.0.0~beta1
---
.gitattributes | 2 -
.gitignore | 6 -
.travis.yml | 19 +-
CMakeLists.txt | 210 +-
COMMITERS | 6 +-
HISTORY.TXT | 41 +-
INSTALL.CMAKE | 8 +-
Makefile | 7 +-
Vagrantfile | 28 +
cgiutil.c | 25 +-
cgiutil.h | 1 -
cmake/FindAPACHE.cmake | 5 +-
cmake/FindHarfBuzz.cmake | 51 +
cmake/FindOracle.cmake | 4 +-
cmake/FindPixman.cmake | 25 +
cmake/FindSDE.cmake | 43 -
cmake/FindV8.cmake | 48 +
dejavu-sans-condensed.h | 46158 +++++++++++++++++++++
fontcache.c | 291 +
fontcache.h | 86 +
hittest.c | 5 +-
kerneldensity.c | 347 +
legend.c | 1 +
mapagg.cpp | 1042 +-
mapagg.h | 151 +
mapbits.c | 4 +-
mapcairo.c | 445 +-
mapchart.c | 31 +-
mapcluster.c | 80 +-
mapcontext.c | 26 +-
mapcontour.c | 6 +-
mapcopy.c | 162 +-
mapcopy.h | 11 -
mapdebug.c | 29 +-
mapdraw.c | 2207 +-
mapdrawgdal.c | 529 +-
mapdummyrenderer.c | 34 +-
maperror.c | 178 +-
maperror.h | 12 +-
mapfile.c | 1211 +-
mapfile.h | 9 +
mapgd.c | 1070 -
mapgdal.c | 65 +-
mapgeomtransform.c | 37 +-
mapgeos.c | 16 +-
mapgml.c | 767 +-
mapgml.h | 3 -
mapgraticule.c | 91 +-
maphash.c | 1 -
maphttp.c | 6 +
mapimageio.c | 369 +-
mapimagemap.c | 142 +-
mapio.c | 177 +-
mapio.h | 11 +-
mapkml.cpp | 13 +-
mapkmlrenderer.cpp | 49 +-
mapkmlrenderer.h | 4 +-
maplabel.c | 1267 +-
maplayer.c | 739 +-
maplegend.c | 407 +-
maplexer.c | 4684 ++-
maplexer.l | 20 +-
maplibxml2.c | 14 +-
maplibxml2.h | 4 +-
mapmssql2008.c | 52 +-
mapobject.c | 5 +
mapogcfilter.c | 1622 +-
mapogcfilter.h | 43 +-
mapogcfiltercommon.c | 269 +-
mapogcsld.c | 273 +-
mapogcsld.h | 2 +-
mapogcsos.c | 88 +-
mapogr.cpp | 920 +-
mapogroutput.c | 335 +-
maporaclespatial.c | 823 +-
mapoutput.c | 122 +-
mapows.c | 132 +-
mapows.h | 77 +-
mapowscommon.c | 142 +-
mapowscommon.h | 81 +-
mapparser.c | 2485 +-
mapparser.h | 174 +-
mapparser.y | 1180 +-
mappool.c | 2 +-
mappostgis.c | 977 +-
mappostgis.h | 2 +-
mappostgresql.c | 9 +-
mapprimitive.c | 659 +-
mapproject.c | 302 +-
mapproject.h | 3 +
mapquantization.c | 22 +-
mapquery.c | 406 +-
mapraster.c | 229 +-
maprasterquery.c | 2 +-
maprendering.c | 494 +-
mapresample.c | 333 +-
mapscale.c | 77 +-
mapscript/csharp/CMakeLists.txt | 4 +-
mapscript/java/.gitignore | 1 -
mapscript/java/tests/threadtest/MapThread.java | 2 +-
mapscript/perl/.gitignore | 5 -
mapscript/perl/examples/wxs.pl | 2 +-
mapscript/php/CMakeLists.txt | 2 +-
mapscript/php/class.c | 4 +-
mapscript/php/cluster.c | 2 +-
mapscript/php/image.c | 7 -
mapscript/php/label.c | 9 +-
mapscript/php/labelcachemember.c | 2 +
mapscript/php/layer.c | 11 +-
mapscript/php/map.c | 16 +-
mapscript/php/mapscript_i.c | 56 +-
mapscript/php/owsrequest.c | 23 +
mapscript/php/php_mapscript.c | 12 +-
mapscript/php/php_mapscript.h | 16 +
mapscript/php/php_mapscript_util.c | 2 +
mapscript/php/style.c | 6 +-
mapscript/php/symbol.c | 2 -
mapscript/python/pyextend.i | 46 +
mapscript/python/pygdioctx/pygdioctx.c | 6 +-
mapscript/python/pymodule.i | 65 +
mapscript/python/tests/cases/layertest.py | 7 -
mapscript/python/tests/cases/symboltest.py | 2 -
mapscript/swiginc/class.i | 5 +-
mapscript/swiginc/cluster.i | 4 +-
mapscript/swiginc/color.i | 9 +-
mapscript/swiginc/image.i | 91 +-
mapscript/swiginc/label.i | 4 +-
mapscript/swiginc/layer.i | 42 +-
mapscript/swiginc/map.i | 26 +-
mapscript/swiginc/rect.i | 1 -
mapscript/v8/line.cpp | 238 +
mapscript/v8/line.hpp | 66 +
mapscript/v8/point.cpp | 206 +
mapscript/v8/point.hpp | 64 +
mapscript/v8/shape.cpp | 363 +
mapscript/v8/shape.hpp | 85 +
legend.c => mapscript/v8/v8_mapscript.cpp | 67 +-
mapscript/v8/v8_mapscript.h | 108 +
mapscript/v8/v8_object_wrap.hpp | 129 +
mapsde.c | 2184 -
mapsearch.c | 8 +-
mapserv.c | 42 +-
mapserver-config.h.in | 9 +-
mapserver.h | 687 +-
mapservutil.c | 184 +-
mapshape.c | 253 +-
mapshape.h | 2 +-
mapsmoothing.c | 5 +-
mapstring.c | 204 +-
mapsymbol.c | 82 +-
mapsymbol.h | 14 +-
maptclutf.c | 31 +-
maptemplate.c | 195 +-
maptile.c | 9 +-
maptime.c | 72 +-
maptime.h | 8 +-
maptree.c | 5 +-
maptree.h | 4 +-
mapunion.c | 29 +-
maputfgrid.cpp | 811 +
maputfgrid.h | 247 +
maputil.c | 328 +-
mapuvraster.c | 17 +-
mapv8.cpp | 386 +
mapwcs.c | 82 +-
mapwcs.h | 15 +-
mapwcs11.c | 144 +-
mapwcs20.c | 1106 +-
mapwfs.c | 5385 ++-
mapwfs11.c | 158 +-
mapwfs20.c | 1389 +
mapwfslayer.c | 14 +-
mapwms.c | 372 +-
mapwmslayer.c | 15 +-
mapxbase.c | 24 +-
nmake.opt | 36 +-
renderers/agg/include/agg_basics.h | 8 +
renderers/agg/include/agg_conv_clipper.h | 4 +
renderers/agg/include/agg_glyph_raster_bin.h | 10 +
renderers/agg/include/agg_pixfmt_rgba.h | 2 +-
renderers/agg/include/agg_rasterizer_cells_aa.h | 14 +-
renderers/agg/include/agg_renderer_raster_text.h | 28 +
renderers/agg/include/agg_rendering_buffer.h | 8 +-
renderers/agg/src/agg_vcgen_dash.cpp | 2 +-
scripts/vagrant/mapserver.sh | 34 +
scripts/vagrant/packages.sh | 19 +
scripts/vagrant/postgis.sh | 10 +
scripts/vagrant/virtualbox-fix.sh | 5 +
shp2img.c | 3 +
shptreevis.c | 1 +
sym2img.c | 2 +-
tests/test.map | 11 +-
textlayout.c | 861 +
tile4ms.c | 1 +
uthash.h | 940 +
xmlmapfile/mapfile.xsd | 5 +-
xmlmapfile/mapfile.xsl | 20 +-
197 files changed, 75246 insertions(+), 18998 deletions(-)
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 5966153..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-.gitattributes export-ignore
-.gitignore export-ignore
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 741a9e7..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-build
-*.swp
-nbproject
-tags
-tests/map.png
-
diff --git a/.travis.yml b/.travis.yml
index 62781fc..784d3ba 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
language: php
php:
- 5.5
+ - 5.6
env:
global:
@@ -38,14 +39,24 @@ env:
compiler:
- gcc
+ - clang
before_install:
+ - mkdir tmp
+ - cd tmp
+ - wget http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.38.tar.bz2
+ - tar xjf harfbuzz-0.9.38.tar.bz2
+ - cd harfbuzz-0.9.38
+ - ./configure --without-cairo --without-glib --without-icu
+ - make -j3
+ - sudo make install && sudo ldconfig
+ - cd ../..
- git submodule update --init --recursive
- sudo mv /etc/apt/sources.list.d/pgdg-source.list* /tmp
- - sudo apt-get -qq remove postgis
+ - sudo apt-get remove postgis libpq5 libpq-dev postgresql-9.1-postgis postgresql-9.2-postgis postgresql-9.3-postgis postgresql-9.1 postgresql-9.2 postgresql-9.3 libgdal1
- sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
- - sudo apt-get update -qq
- - sudo apt-get install -qq bison flex swig cmake librsvg2-dev colordiff postgis postgresql-9.1-postgis-2.0-scripts libpq-dev libpng12-dev libjpeg-dev libgif-dev libgeos-dev libgd2-xpm-dev libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev libgdal1-dev libproj-dev libxml2-dev python-dev php5-dev libexempi-dev lcov lftp
+ - sudo apt-get update
+ - sudo apt-get install bison flex python-lxml libfribidi-dev swig cmake librsvg2-dev colordiff postgis postgresql-9.1 postgresql-9.1-postgis-2.1 postgresql-9.1-postgis-2.1-scripts libpq-dev libpng12-dev libjpeg-dev libgif-dev libgeos-dev libgd2-xpm-dev libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev libgdal1-dev libproj-dev libxml2-dev python-dev php5-dev libexempi-dev lcov lftp
- sudo pip install git+git://github.com/tbonfort/cpp-coveralls.git@extensions
- cd msautotest
- ./create_postgis_test_data.sh
@@ -58,7 +69,7 @@ before_install:
script:
- ./run-test-suite.sh
-after_success:
+after_success:
# Only run coverage when it is safe to do so (not on pull requests), and only on master branch
- echo "$TRAVIS_SECURE_ENV_VARS"
- echo "$TRAVIS_BRANCH"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5837920..006910b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,9 +15,9 @@ include(CheckIncludeFile)
include(CheckCSourceCompiles)
-set (MapServer_VERSION_MAJOR 6)
-set (MapServer_VERSION_MINOR 4)
-set (MapServer_VERSION_REVISION 1)
+set (MapServer_VERSION_MAJOR 7)
+set (MapServer_VERSION_MINOR 1)
+set (MapServer_VERSION_REVISION 0)
set (MapServer_VERSION_SUFFIX "")
set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR})
@@ -39,7 +39,9 @@ endif (APPLE)
macro (ms_link_libraries)
- target_link_libraries(mapserver ${ARGV})
+ if(BUILD_DYNAMIC)
+ target_link_libraries(mapserver ${ARGV})
+ endif(BUILD_DYNAMIC)
if(BUILD_STATIC)
target_link_libraries(mapserver_static ${ARGV})
endif(BUILD_STATIC)
@@ -65,9 +67,10 @@ macro( report_dependency_error component dependency)
endmacro()
SET(CMAKE_REQUIRED_INCLUDES "math.h")
-if(CMAKE_COMPILER_IS_GNUCXX)
- SET(CMAKE_REQUIRED_LIBRARIES "m")
-endif(CMAKE_COMPILER_IS_GNUCXX)
+if(NOT(WIN32))
+SET(CMAKE_REQUIRED_LIBRARIES "m")
+endif(NOT(WIN32))
+
check_function_exists("strrstr" HAVE_STRRSTR)
check_function_exists("strcasecmp" HAVE_STRCASECMP)
check_function_exists("strcasestr" HAVE_STRCASESTR)
@@ -99,8 +102,8 @@ option(WITH_PROJ "Choose if reprojection support should be built in" ON)
option(WITH_KML "Enable native KML output support (requires libxml2 support)" OFF)
option(WITH_SOS "Enable SOS Server support (requires PROJ and libxml2 support)" OFF)
option(WITH_WMS "Enable WMS Server support (requires proj support)" ON)
-option(WITH_GD "Choose if (old) GD support should be built in" OFF)
-option(WITH_FRIBIDI "Choose if FriBidi glyph shaping support should be built in (usefull for left-to-right languages)" ON)
+option(WITH_FRIBIDI "Choose if FriBidi glyph shaping support should be built in (usefull for left-to-right languages) (requires HARFBUZZ)" ON)
+option(WITH_HARFBUZZ "Choose if Harfbuzz complex text layout should be included (needed for e.g. arabic and hindi) (requires FRIBIDI)" ON)
option(WITH_ICONV "Choose if Iconv Internationalization support should be built in" ON)
option(WITH_CAIRO "Choose if CAIRO rendering support should be built in (required for SVG and PDF output)" ON)
option(WITH_SVGCAIRO "Choose if SVG symbology support (via libsvgcairo) should be built in (requires cairo, libsvg, libsvg-cairo. Incompatible with librsvg)" OFF)
@@ -120,7 +123,7 @@ option(WITH_LIBXML2 "Choose if libxml2 support should be built in (used for sos,
option(WITH_THREAD_SAFETY "Choose if a thread-safe version of libmapserver should be built (only recommended for some mapscripts)" OFF)
option(WITH_GIF "Enable GIF support (for PIXMAP loading)" ON)
option(WITH_PYTHON "Enable Python mapscript support" OFF)
-option(WITH_PHP "Enable Python mapscript support" OFF)
+option(WITH_PHP "Enable PHP mapscript support" OFF)
option(WITH_PERL "Enable Perl mapscript support" OFF)
option(WITH_RUBY "Enable Ruby mapscript support" OFF)
option(WITH_JAVA "Enable Java mapscript support" OFF)
@@ -129,10 +132,10 @@ option(WITH_POINT_Z_M "include Z and M coordinates in point structure (advanced,
option(WITH_ORACLESPATIAL "include oracle spatial database input support" OFF)
option(WITH_ORACLE_PLUGIN "include oracle spatial database input support as plugin" OFF)
option(WITH_MSSQL2008 "include mssql 2008 database input support as plugin" OFF)
-option(WITH_SDE_PLUGIN "include ArcSDE support as a plugin (must specify SDE_INCLUDE_DIR and SDE_LIBRARY_DIR)." OFF)
-option(WITH_SDE "include ArcSDE support. Add -DSDE_VERSION=91 to use 9.1 arcSDE version" OFF)
option(WITH_EXEMPI "include xmp output metadata support" OFF)
option(WITH_XMLMAPFILE "include native xml mapfile support (requires libxslt/libexslt)" OFF)
+option(WITH_V8 "include javacript v8 scripting" OFF)
+option(WITH_PIXMAN "use pixman for layer compositing operations" OFF)
option(BUILD_STATIC "Also build a static version of mapserver" OFF)
option(LINK_STATIC_LIBMAPSERVER "Link to static version of libmapserver (also for mapscripts)" OFF)
@@ -144,7 +147,7 @@ option(WITH_GENERIC_NINT "generic rounding" OFF)
# PERLV_ld_DETECT?
# Add compiler flags for warnings
-if(CMAKE_COMPILER_IS_GNUCXX)
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wdeclaration-after-statement")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif()
@@ -180,8 +183,10 @@ SET(CMAKE_MACOSX_RPATH ON)
if(LINK_STATIC_LIBMAPSERVER)
set(BUILD_STATIC 1)
+ set(BUILD_DYNAMIC 0)
set(MAPSERVER_LIBMAPSERVER mapserver_static)
else(LINK_STATIC_LIBMAPSERVER)
+ set(BUILD_DYNAMIC 1)
set(MAPSERVER_LIBMAPSERVER mapserver)
endif(LINK_STATIC_LIBMAPSERVER)
@@ -199,6 +204,17 @@ renderers/agg/src/clipper.cpp
)
include_directories(renderers/agg/include)
+set(v8_SOURCES
+ mapscript/v8/v8_object_wrap.hpp
+ mapscript/v8/point.cpp
+ mapscript/v8/line.cpp
+ mapscript/v8/shape.cpp
+ mapscript/v8/v8_mapscript.cpp
+ mapv8.cpp
+)
+include_directories(mapscript/v8/)
+
+#add_definitions(-DHASH_DEBUG=1)
if(WIN32)
set(REGEX_SOURCES ${REGEX_DIR}/regex.c)
include_directories(${REGEX_DIR})
@@ -211,7 +227,7 @@ else(WIN32)
set(REGEX_SOURCES "")
endif(WIN32)
-set(mapserver_SOURCES
+set(mapserver_SOURCES fontcache.c
cgiutil.c mapgeos.c maporaclespatial.c mapsearch.c mapwms.c classobject.c
mapgml.c mapoutput.c mapwmslayer.c layerobject.c mapgraticule.c mapows.c
mapservutil.c mapxbase.c maphash.c mapowscommon.c mapshape.c mapxml.c mapbits.c
@@ -224,19 +240,22 @@ mapprojhack.c maptree.c mapdebug.c maplexer.c mapquantization.c mapunion.c
mapdraw.c maplibxml2.c mapquery.c maputil.c strptime.c mapdrawgdal.c
mapraster.c mapuvraster.c mapdummyrenderer.c mapobject.c maprasterquery.c
mapwcs.c maperror.c mapogcfilter.c mapregex.c mapwcs11.c mapfile.c
-mapogcfiltercommon.c maprendering.c mapwcs20.c mapgd.c mapogcsld.c
-mapresample.c mapwfs.c mapgdal.c mapogcsos.c mapscale.c mapwfs11.c
-mapgeomtransform.c mapogroutput.c mapsde.c mapwfslayer.c mapagg.cpp mapkml.cpp
-mapgeomutil.cpp mapkmlrenderer.cpp
-mapogr.cpp mapcontour.c mapsmoothing.c ${REGEX_SOURCES})
-
-add_library(mapserver SHARED ${mapserver_SOURCES} ${agg_SOURCES})
-set_target_properties( mapserver PROPERTIES
- VERSION ${MapServer_VERSION_STRING}
- SOVERSION 1
+mapogcfiltercommon.c maprendering.c mapwcs20.c mapogcsld.c
+mapresample.c mapwfs.c mapgdal.c mapogcsos.c mapscale.c mapwfs11.c mapwfs20.c
+mapgeomtransform.c mapogroutput.c mapwfslayer.c mapagg.cpp mapkml.cpp
+mapgeomutil.cpp mapkmlrenderer.cpp fontcache.c textlayout.c maputfgrid.cpp
+mapogr.cpp mapcontour.c mapsmoothing.c mapv8.cpp ${REGEX_SOURCES} kerneldensity.c)
+
+if(BUILD_DYNAMIC)
+ add_library(mapserver SHARED ${mapserver_SOURCES} ${agg_SOURCES} ${v8_SOURCES})
+ set_target_properties( mapserver PROPERTIES
+ VERSION ${MapServer_VERSION_STRING}
+ SOVERSION 1
)
+endif(BUILD_DYNAMIC)
+
if(BUILD_STATIC)
- add_library(mapserver_static STATIC ${mapserver_SOURCES} ${agg_SOURCES})
+ add_library(mapserver_static STATIC ${mapserver_SOURCES} ${agg_SOURCES} ${v8_SOURCES})
set_target_properties( mapserver_static PROPERTIES
VERSION ${MapServer_VERSION_STRING}
SOVERSION 1
@@ -272,6 +291,10 @@ add_executable(shptreetst shptreetst.c)
target_link_libraries(shptreetst ${MAPSERVER_LIBMAPSERVER})
+if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(USE_EXTENDED_DEBUG 1)
+endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
+
find_package(PNG)
if(PNG_FOUND)
include_directories(${PNG_INCLUDE_DIR})
@@ -309,6 +332,17 @@ if(WITH_PROJ)
endif(NOT PROJ_FOUND)
endif (WITH_PROJ)
+if(WITH_PIXMAN)
+ find_package(Pixman)
+ if(PIXMAN_FOUND)
+ include_directories(${PIXMAN_INCLUDE_DIR})
+ ms_link_libraries(${PIXMAN_LIBRARY})
+ set (USE_PIXMAN 1)
+ else(PIXMAN_FOUND)
+ report_optional_not_found(PIXMAN)
+ endif(PIXMAN_FOUND)
+endif (WITH_PIXMAN)
+
if(WITH_WMS)
if(USE_PROJ)
set(USE_WMS_SVR 1)
@@ -317,30 +351,6 @@ if(WITH_WMS)
endif(USE_PROJ)
endif(WITH_WMS)
-
-if(WITH_GD)
- find_package(GD)
- if(NOT GD_FOUND)
- report_optional_not_found(GD)
- else(NOT GD_FOUND)
- include_directories(${GD_INCLUDE_DIR})
- ms_link_libraries( ${GD_LIBRARY})
- set (USE_GD 1)
- if(GD_SUPPORTS_PNG)
- set(USE_GD_PNG 1)
- endif(GD_SUPPORTS_PNG)
- if(GD_SUPPORTS_GIF)
- set(USE_GD_GIF 1)
- endif(GD_SUPPORTS_GIF)
- if(GD_SUPPORTS_JPEG)
- set(USE_GD_JPEG 1)
- endif(GD_SUPPORTS_JPEG)
- if(GD_SUPPORTS_FREETYPE)
- set(USE_GD_FREETYPE 1)
- endif(GD_SUPPORTS_FREETYPE)
- endif(NOT GD_FOUND)
-endif (WITH_GD)
-
if(WITH_FRIBIDI)
find_package(FriBiDi)
if(NOT FRIBIDI_FOUND)
@@ -355,6 +365,25 @@ if(WITH_FRIBIDI)
endif(NOT FRIBIDI_FOUND)
endif (WITH_FRIBIDI)
+if(WITH_HARFBUZZ)
+ find_package(HarfBuzz)
+ if(NOT HARFBUZZ_FOUND)
+ report_optional_not_found(HARFBUZZ)
+ else(NOT HARFBUZZ_FOUND)
+ include_directories(${HARFBUZZ_INCLUDE_DIR})
+ ms_link_libraries( ${HARFBUZZ_LIBRARY})
+ set (USE_HARFBUZZ 1)
+ endif(NOT HARFBUZZ_FOUND)
+endif (WITH_HARFBUZZ)
+
+if( USE_HARFBUZZ AND NOT(USE_FRIBIDI) )
+ report_dependency_error(HARFBUZZ FRIBIDI)
+endif( USE_HARFBUZZ AND NOT(USE_FRIBIDI) )
+if( USE_FRIBIDI AND NOT(USE_HARFBUZZ) )
+ report_dependency_error(FRIBIDI HARFBUZZ)
+endif( USE_FRIBIDI AND NOT(USE_HARFBUZZ) )
+
+
if(WITH_ICONV)
find_package(ICONV)
if(ICONV_FOUND)
@@ -436,42 +465,6 @@ if(WITH_MSSQL2008)
endif(ODBC_FOUND)
endif(WITH_MSSQL2008)
-if(WITH_SDE_PLUGIN)
- if(WITH_SDE)
- MESSAGE( SEND_ERROR "WITH_SDE and WITH_SDE_PLUGIN cannot be used simultaneously")
- endif(WITH_SDE)
- if(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
- include_directories(${SDE_INCLUDE_DIR})
- if(SDE_VERSION STREQUAL "91")
- add_library(msplugin_sde91 MODULE mapsde.c mapthread.c)
- target_link_libraries(msplugin_sde91 ${SDE_LIBRARY_DIR}/pe91.lib ${SDE_LIBRARY_DIR}/sg91.lib ${SDE_LIBRARY_DIR}/sde91.lib ${MAPSERVER_LIBMAPSERVER})
- set_target_properties(msplugin_sde91 PROPERTIES COMPILE_FLAGS "-DUSE_SDE")
- else(SDE_VERSION STREQUAL "91")
- add_library(msplugin_sde92 MODULE mapsde.c mapthread.c)
- target_link_libraries(msplugin_sde92 ${SDE_LIBRARY_DIR}/pe.lib ${SDE_LIBRARY_DIR}/sg.lib ${SDE_LIBRARY_DIR}/sde.lib ${MAPSERVER_LIBMAPSERVER})
- set_target_properties(msplugin_sde92 PROPERTIES COMPILE_FLAGS "-DUSE_SDE")
- endif(SDE_VERSION STREQUAL "91")
- set(USE_SDE_PLUGIN 1)
- else(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
- MESSAGE( SEND_ERROR "Must specify SDE_INCLUDE_DIR and SDE_LIBRARY_DIR for WITH_SDE_PLUGIN")
- endif(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
-endif(WITH_SDE_PLUGIN)
-
-if(WITH_SDE)
- find_package(SDE)
- if(SDE_FOUND)
- include_directories(${SDE_INCLUDE_DIRS})
- ms_link_libraries(${SDE_LIBRARIES})
- set (USE_SDE 1)
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(SDE64 1)
- endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
- else(SDE_FOUND)
- MESSAGE(WARNING "Could not find (all?) sde files. Try setting -DSDE_DIR=/path/to/sde and/or -DSDE_VERSION=91|92|100")
- report_optional_not_found(SDE)
- endif(SDE_FOUND)
-endif(WITH_SDE)
-
if(WITH_FCGI)
find_package(FCGI)
if(FCGI_FOUND)
@@ -530,7 +523,7 @@ if(WITH_SVGCAIRO)
endif(WITH_RSVG)
find_package(SVGCairo)
if(SVGCAIRO_FOUND)
- include_directories(${SVGCAIRO_INCLUDE_DIR})
+ include_directories(${SVG_INCLUDE_DIR} ${SVGCAIRO_INCLUDE_DIR})
ms_link_libraries( ${SVG_LIBRARY} ${SVGCAIRO_LIBRARY})
set (USE_SVG_CAIRO 1)
else(SVGCAIRO_FOUND)
@@ -669,10 +662,14 @@ if( USE_WCS_SVR AND NOT USE_LIBXML2 )
message(WARNING "WCS 1.1 and 2.0 require libxml2 support but it was not found. WCS 1.1 and 2.0 will not be supported by this build")
endif( USE_WCS_SVR AND NOT USE_LIBXML2 )
if( USE_WFS_SVR AND NOT USE_LIBXML2 )
- message(WARNING "WFS 1.1 requires libxml2 support but it was not found. WFS 1.1 will not be supported by this build")
+ message(WARNING "WFS 1.1 and 2.0 require libxml2 support but it was not found. WFS 1.1 and 2.0 will not be supported by this build")
endif( USE_WFS_SVR AND NOT USE_LIBXML2 )
if(WITH_SOS)
+ if(NOT USE_OGR)
+ report_dependency_error(WITH_SOS OGR)
+ endif(NOT USE_OGR)
+
if(USE_PROJ AND USE_LIBXML2)
set(USE_SOS_SVR 1)
else(USE_PROJ AND USE_LIBXML2)
@@ -756,6 +753,21 @@ if(WITH_PYTHON)
set(USE_PYTHON_MAPSCRIPT 1)
endif(WITH_PYTHON)
+if(WITH_V8)
+ FIND_PACKAGE(V8)
+ IF(V8_FOUND EQUAL 1)
+ SET(USE_V8_MAPSCRIPT 1)
+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+ INCLUDE_DIRECTORIES(${V8_INCLUDE})
+ MS_LINK_LIBRARIES( ${V8_LIBS})
+ ELSE(V8_FOUND)
+ MESSAGE(SEND_ERROR "V8 JavaScript support requested but not found.
+ HINTS:
+ - set V8_ROOT environment variable to the installation path of V8.
+ - add the V8 install directory to the CMAKE_PREFIX_PATH variable (-DCMAKE_PREFIX_PATH=\"/path/to/${component}-install-dir;/path/to/other/dirs\") ")
+ ENDIF()
+ENDIF(WITH_V8)
+
if(WITH_PHP)
add_subdirectory("mapscript/php")
set(USE_PHP_MAPSCRIPT 1)
@@ -830,16 +842,17 @@ message(STATUS " * freetype: ${FREETYPE_LIBRARY}")
message(STATUS " * Optional components")
status_optional_component("GDAL" "${USE_GDAL}" "${GDAL_LIBRARY}")
status_optional_component("OGR" "${USE_OGR}" "${GDAL_LIBRARY}")
-status_optional_component("GD" "${USE_GD}" "${GD_LIBRARY}")
status_optional_component("GIF" "${USE_GIF}" "${GIF_LIBRARY}")
status_optional_component("MYSQL" "${USE_MYSQL}" "${MYSQL_LIBRARY}")
status_optional_component("FRIBIDI" "${USE_FRIBIDI}" "${FRIBIDI_LIBRARY}")
+status_optional_component("HARFBUZZ" "${USE_HARFBUZZ}" "${HARFBUZZ_LIBRARY}")
status_optional_component("GIF" "${USE_GIF}" "${GIF_LIBRARY}")
status_optional_component("CAIRO" "${USE_CAIRO}" "${CAIRO_LIBRARY}")
status_optional_component("SVGCAIRO" "${USE_SVG_CAIRO}" "${SVGCAIRO_LIBRARY}")
status_optional_component("RSVG" "${USE_RSVG}" "${RSVG_LIBRARY}")
status_optional_component("CURL" "${USE_CURL}" "${CURL_LIBRARY}")
status_optional_component("PROJ" "${USE_PROJ}" "${PROJ_LIBRARY}")
+status_optional_component("PIXMAN" "${USE_PIXMAN}" "${PIXMAN_LIBRARY}")
status_optional_component("LIBXML2" "${USE_LIBXML2}" "${LIBXML2_LIBRARY}")
status_optional_component("POSTGIS" "${USE_POSTGIS}" "${POSTGRESQL_LIBRARY}")
status_optional_component("GEOS" "${USE_GEOS}" "${GEOS_LIBRARY}")
@@ -856,15 +869,6 @@ endif(USE_ORACLESPATIAL OR USE_ORACLE_PLUGIN)
if(USE_MSSQL2008)
status_optional_component("MSSQL 2008 (Built as plugin)" "${USE_MSSQL2008}" "${ODBC_LIBRARY}")
endif(USE_MSSQL2008)
-if(USE_SDE_PLUGIN)
- if(SDE_VERSION STREQUAL "91")
- status_optional_component("SDE 9.1 (Built as plugin)" "${USE_SDE_PLUGIN}" "${SDE_LIBRARY_DIR}")
- else(SDE_VERSION STREQUAL "91")
- status_optional_component("SDE 9.2 (Built as plugin)" "${USE_SDE_PLUGIN}" "${SDE_LIBRARY_DIR}")
- endif(SDE_VERSION STREQUAL "91")
-else(USE_SDE_PLUGIN)
- status_optional_component("SDE" "${USE_SDE}" "${SDE_LIBRARIES}")
-endif(USE_SDE_PLUGIN)
status_optional_component("Exempi XMP" "${USE_EXEMPI}" "${LIBEXEMPI_LIBRARY}")
message(STATUS " * Optional features")
status_optional_feature("WMS SERVER" "${USE_WMS_SVR}")
@@ -886,6 +890,7 @@ status_optional_feature("PERL" "${USE_PERL_MAPSCRIPT}")
status_optional_feature("RUBY" "${USE_RUBY_MAPSCRIPT}")
status_optional_feature("JAVA" "${USE_JAVA_MAPSCRIPT}")
status_optional_feature("C#" "${USE_CSHARP_MAPSCRIPT}")
+status_optional_feature("V8 Javascript" "${USE_V8_MAPSCRIPT}")
status_optional_feature("Apache Module (Experimental)" "${USE_APACHE_MODULE}")
message(STATUS "")
@@ -910,16 +915,13 @@ if(USE_MSSQL2008)
INSTALL(TARGETS msplugin_mssql2008 DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(USE_MSSQL2008)
-if(USE_SDE91)
- INSTALL(TARGETS msplugin_sde91 DESTINATION ${CMAKE_INSTALL_LIBDIR})
-endif(USE_SDE91)
-if(USE_SDE92)
- INSTALL(TARGETS msplugin_sde92 DESTINATION ${CMAKE_INSTALL_LIBDIR})
-endif(USE_SDE92)
+INSTALL(TARGETS sortshp shptree shptreevis msencrypt legend scalebar tile4ms shptreetst shp2img mapserv RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-INSTALL(TARGETS sortshp shptree shptreevis msencrypt legend scalebar tile4ms shptreetst shp2img mapserv mapserver RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(BUILD_STATIC)
INSTALL(TARGETS mapserver_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(BUILD_STATIC)
+if(BUILD_DYNAMIC)
+ INSTALL(TARGETS mapserver DESTINATION ${CMAKE_INSTALL_LIBDIR})
+endif(BUILD_DYNAMIC)
diff --git a/COMMITERS b/COMMITERS
index 127814f..1ade4f6 100644
--- a/COMMITERS
+++ b/COMMITERS
@@ -7,7 +7,7 @@ sean Sean Gillies sgillies at frii.com SWIG Ma
assefa Assefa Yewondwossen assefay at gmail.com OGC Web Services, PHP MapScript
julien Julien-Samuel Lacroix jlacroix at dmsolutions.ca OGC Web Services
warmerdam Frank Warmerdam warmerdam at pobox.com Raster, outputFormatObj,
-hobu Howard Butler hobu.inc at gmail.com mapsde.c
+hobu Howard Butler howard at hobu.co docs
pramsey Paul Ramsey pramsey at cleverelephant.ca mappostgis.c, maptile.c
jerryp Jerry Pisk jerry.pisk at gmail.com
ned Ned Harding nharding at extendthereach.com
@@ -17,8 +17,8 @@ novak John Novak hetzerrrat gmail.com mapgrat
jani Jani Averbach javerbach extendthereach com External Plugin Layers
tamas Tamas Szekeres szekerest at gmail.com MapScript C#
umberto Umberto Nicoletti umberto.nicoletti at gmail.com MapScript Java
-tomkralidis Tom Kralidis tomkralidis at hotmail.com OGC, Perl Mapscript
-tbonfort Thomas Bonfort thomas.bonfort at gmail.com AGG, Charting
+tomkralidis Tom Kralidis tomkralidis at gmail.com OGC, Perl Mapscript
+tbonfort Thomas Bonfort tbonfort at terriscope.fr AGG, Charting, Core Maintenance
jmckenna Jeff McKenna jmckenna at gatewaygeomatics.com Documentation
aboudreault Alan Boudreault aboudreault at mapgears.com OGR, general bug fixes
toby Toby Rahilly toby.rahilly at gmail.com OpenGL
diff --git a/HISTORY.TXT b/HISTORY.TXT
index ee0c74e..915929c 100644
--- a/HISTORY.TXT
+++ b/HISTORY.TXT
@@ -2,17 +2,50 @@
MapServer Revision History
==========================
-$Id$
-
This is a human-readable revision history which will attempt to document
required changes for users to migrate from one version of MapServer to the
next. Developers are strongly encouraged to document their changes and
-their impacts on the users here. (Please add the most recent changes to
+their impacts on the users here. (Please add the most recent changes to
the top of the list.)
For a complete change history, please see the Git log comments.
-6.4 release (2013/09/xx)
+7.0.0-beta1 release (2014/02/12)
+--------------------------------
+
+- RFC91 Layer Filter Normalization
+
+- Implement WCS20 Extensions (#4898)
+
+- Require validation of ExternalGraphic OnlineResource (#4883)
+
+- Require validation on the CGI queryfile parameter. (#4874)
+
+- Apply RFC86 scaletoken substitutions to layer->PROCESSING entries
+
+- RFC113 Layer Compositing Pipeline
+
+- RFC109 Optimizing Runtime Substitutions
+
+- RFC108 Heatmap / Kernel-Density Layers
+
+- RFC106 Support of Geomtransform JavaScript Plugin
+
+- RFC105 Support for WFS 2.0 (server side)
+
+- RFC104 Bitmap Label removal, replaced with inlined truetype font
+
+- RFC103 Layer Level Character Encoding
+
+- RFC102 Support of Styleitem JavaScript Plugin
+
+- RFC99 GD removal
+
+- RFC98 Complex Text Rendering / Text Rendering Overhaul
+
+- RFC93 UTF Grid Support
+
+6.4 release (2013/09/17)
---------------------------
- RFC 101: Support for Content Dependant Legend Rendering
diff --git a/INSTALL.CMAKE b/INSTALL.CMAKE
index 638fa1c..c6168c3 100644
--- a/INSTALL.CMAKE
+++ b/INSTALL.CMAKE
@@ -119,12 +119,15 @@ default (in which case the cmake step will fail if the dependency cannot be foun
of these can be enabled or disabled by passing "-DWITH_XXX=0" or "-DWITH_XXX=1" to the
"cmake .." invocation in order to override a default selection.
+This Readme file may be out of sync with the actual CMakeLists files shipped.
+Refer to the CMakeLists.txt file for up-to-date options.
+
- option(WITH_PROJ "Choose if reprojection support should be built in" ON)
- option(WITH_KML "Enable native KML output support (requires libxml2 support)" OFF)
- option(WITH_SOS "Enable SOS Server support (requires PROJ and libxml2 support)" OFF)
- option(WITH_WMS "Enable WMS Server support (requires proj support)" ON)
- - option(WITH_GD "Choose if (old) GD support should be built in" OFF)
- - option(WITH_FRIBIDI "Choose if FriBidi glyph shaping support should be built in (usefull for left-to-right languages)" ON)
+ - option(WITH_FRIBIDI "Choose if FriBidi glyph reordering should be enabled (usefull for left-to-right languages)(requires harfbuzz)" ON)
+ - option(WITH_HARFBUZZ "Choose if Harfbuzz complex script glyph shaping support should be built in (requires fribidi)" ON)
- option(WITH_ICONV "Choose if Iconv Internationalization support should be built in" ON)
- option(WITH_CAIRO "Choose if CAIRO rendering support should be built in (required for SVG and PDF output)" ON)
- option(WITH_SVGCAIRO "Choose if SVG symbology support (via libsvgcairo) should be built in (requires cairo, libsvg, libsvg-cairo. Incompatible with librsvg)" OFF)
@@ -156,6 +159,7 @@ of these can be enabled or disabled by passing "-DWITH_XXX=0" or "-DWITH_XXX=1"
- option(WITH_SDE "include ArcSDE support. Add -DSDE_VERSION=91 to use 9.1 arcSDE version" OFF)
- option(WITH_EXEMPI "include xmp output metadata support" OFF)
- option(WITH_XMLMAPFILE "include native xml mapfile support (requires libxslt/libexslt)" OFF)
+ - option(WITH_V8 "include javacript v8 scripting" OFF)
The following options are for advanced users, i.e. you should not enable them unless
diff --git a/Makefile b/Makefile
index f265ff5..a772039 100644
--- a/Makefile
+++ b/Makefile
@@ -6,10 +6,10 @@ BUILDPATH=../../build
FLEX=flex
YACC=yacc
CMAKEFLAGS=-DCMAKE_C_FLAGS="--coverage" -DCMAKE_CXX_FLAGS="--coverage" \
- -DCMAKE_SHARED_LINKER_FLAGS="-lgcov" -DWITH_GD=1 -DWITH_CLIENT_WMS=1 \
+ -DCMAKE_SHARED_LINKER_FLAGS="-lgcov" -DWITH_CLIENT_WMS=1 \
-DWITH_CLIENT_WFS=1 -DWITH_KML=1 -DWITH_SOS=1 -DWITH_PHP=1 \
- -DWITH_PYTHON=1 -DWITH_JAVA=1 -DWITH_THREAD_SAFETY=1 -DWITH_FRIBIDI=0 -DWITH_FCGI=0 -DWITH_EXEMPI=1 \
- -DCMAKE_BUILD_TYPE=Release -DWITH_RSVG=1 -DWITH_CURL=1
+ -DWITH_PYTHON=1 -DWITH_JAVA=1 -DWITH_THREAD_SAFETY=1 -DWITH_FRIBIDI=1 -DWITH_FCGI=0 -DWITH_EXEMPI=1 \
+ -DCMAKE_BUILD_TYPE=Release -DWITH_RSVG=1 -DWITH_CURL=1 -DWITH_HARFBUZZ=1 -DWITH_POINT_Z_M=1
all: cmakebuild
cmakebuild: lexer parser
@@ -50,7 +50,6 @@ test: autotest-install cmakebuild
@$(MAKE) $(MFLAGS) wxs-testcase renderers-testcase misc-testcase gdal-testcase query-testcase mspython-testcase
@./print-test-results.sh
@$(MAKE) $(MFLAGS) php-testcase
- @$(MAKE) $(MFLAGS) java-testcase
lexer: maplexer.c
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 0000000..f175236
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,28 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+require 'socket'
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ config.vm.box = "precise64"
+ config.vm.box_url = "http://files.vagrantup.com/precise64.box"
+
+ config.vm.hostname = "mapserver-vagrant"
+
+ config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ config.vm.provider "virtualbox" do |v|
+ v.customize ["modifyvm", :id, "--memory", 1024, "--cpus", 2]
+ v.customize ["modifyvm", :id, "--ioapic", "on", "--largepages", "off", "--vtxvpid", "off"]
+ v.name = "mapserver-vagrant"
+ end
+
+ config.vm.provision "shell", path: "scripts/vagrant/virtualbox-fix.sh"
+ config.vm.provision "shell", path: "scripts/vagrant/packages.sh"
+ config.vm.provision "shell", path: "scripts/vagrant/postgis.sh"
+ config.vm.provision "shell", path: "scripts/vagrant/mapserver.sh"
+
+end
diff --git a/cgiutil.c b/cgiutil.c
index e2a9c63..9d55596 100644
--- a/cgiutil.c
+++ b/cgiutil.c
@@ -130,6 +130,7 @@ int loadParams(cgiRequestObj *request,
if(getenv2("REQUEST_METHOD", thread_context)==NULL) {
msIO_printf("This script can only be used to decode form results and \n");
msIO_printf("should be initiated as a CGI process via a httpd server.\n");
+ msIO_printf("For other options please try using the --help switch.\n");
return -1;
}
@@ -386,33 +387,15 @@ int rind(char *s, char c)
return -1;
}
-int _getline(char *s, int n, FILE *f)
-{
- register int i=0;
-
- while(1) {
- s[i] = (char)fgetc(f);
-
- if(s[i] == CR)
- s[i] = fgetc(f);
-
- if((s[i] == 0x4) || (s[i] == LF) || (i == (n-1))) {
- s[i] = '\0';
- return (feof(f) ? 1 : 0);
- }
- ++i;
- }
-}
-
void send_fd(FILE *f, FILE *fd)
{
- char c;
+ int c;
while (1) {
c = fgetc(f);
- if(feof(f))
+ if(c == EOF)
return;
- fputc(c,fd);
+ fputc((char)c,fd);
}
}
diff --git a/cgiutil.h b/cgiutil.h
index f6cc0ca..264d13d 100644
--- a/cgiutil.h
+++ b/cgiutil.h
@@ -87,7 +87,6 @@ MS_DLL_EXPORT char x2c(char *);
MS_DLL_EXPORT void unescape_url(char *);
MS_DLL_EXPORT void plustospace(char *);
MS_DLL_EXPORT int rind(char *, char);
-MS_DLL_EXPORT int _getline(char *, int, FILE *);
MS_DLL_EXPORT void send_fd(FILE *, FILE *);
MS_DLL_EXPORT int ind(char *, char);
MS_DLL_EXPORT void escape_shell_cmd(char *);
diff --git a/cmake/FindAPACHE.cmake b/cmake/FindAPACHE.cmake
index 2ec4f15..eb44d48 100644
--- a/cmake/FindAPACHE.cmake
+++ b/cmake/FindAPACHE.cmake
@@ -24,9 +24,8 @@ find_program(HTTPD_EXECUTABLE NAMES httpd
)
if(APXS_BIN)
- EXEC_PROGRAM(${APXS_BIN}
- ARGS -q LIBEXECDIR
- OUTPUT_VARIABLE APACHE_MODULE_DIR )
+ EXECUTE_PROCESS(COMMAND ${APXS_BIN} -q LIBEXECDIR
+ OUTPUT_VARIABLE APACHE_MODULE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif(APXS_BIN)
include(FindPackageHandleStandardArgs)
diff --git a/cmake/FindHarfBuzz.cmake b/cmake/FindHarfBuzz.cmake
new file mode 100644
index 0000000..ba7d5d9
--- /dev/null
+++ b/cmake/FindHarfBuzz.cmake
@@ -0,0 +1,51 @@
+# Original Licence:
+# Copyright (c) 2012, Intel Corporation
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+# * Neither the name of Intel Corporation nor the names of its contributors may
+# be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Try to find Harfbuzz include and library directories.
+#
+# After successful discovery, this will set for inclusion where needed:
+# HARFBUZZ_INCLUDE_DIR - containg the HarfBuzz headers
+# HARFBUZZ_LIBRARY - containg the HarfBuzz library
+
+include(FindPkgConfig)
+
+pkg_check_modules(PC_HARFBUZZ harfbuzz>=0.9.18)
+
+find_path(HARFBUZZ_INCLUDE_DIR NAMES hb.h
+ HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR}
+ PATH_SUFFIXES harfbuzz
+)
+
+find_library(HARFBUZZ_LIBRARY NAMES harfbuzz
+ HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR}
+)
+
+set(HARFBUZZ_INCLUDE_DIRS ${HARFBUZZ_INCLUDE_DIR})
+set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(HarfBuzz DEFAULT_MSG HARFBUZZ_INCLUDE_DIR HARFBUZZ_LIBRARY)
+mark_as_advanced(HARFBUZZ_LIBRARY HARFBUZZ_INCLUDE_DIR)
diff --git a/cmake/FindOracle.cmake b/cmake/FindOracle.cmake
index c38f92d..18055f7 100644
--- a/cmake/FindOracle.cmake
+++ b/cmake/FindOracle.cmake
@@ -37,8 +37,8 @@ if(DEFINED ENV{ORACLE_HOME})
${ORACLE_HOME}/OCI/include) # Oracle XE on Windows
set(ORACLE_OCI_NAMES clntsh libclntsh oci)
- set(ORACLE_NNZ_NAMES nnz10 libnnz10 nnz11 libnnz11 ociw32)
- set(ORACLE_OCCI_NAMES libocci occi oraocci10 oraocci11)
+ set(ORACLE_NNZ_NAMES nnz10 libnnz10 nnz11 libnnz11 nnz12 libnnz12 ociw32)
+ set(ORACLE_OCCI_NAMES libocci occi oraocci10 oraocci11 oraocci12)
set(ORACLE_LIB_DIR
${ORACLE_HOME}
diff --git a/cmake/FindPixman.cmake b/cmake/FindPixman.cmake
new file mode 100644
index 0000000..6a649d2
--- /dev/null
+++ b/cmake/FindPixman.cmake
@@ -0,0 +1,25 @@
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_PIXMAN pixman)
+if(NOT PC_PIXMAN_FOUND)
+ PKG_CHECK_MODULES(PC_PIXMAN pixman-1)
+endif(NOT PC_PIXMAN_FOUND)
+
+
+FIND_PATH(PIXMAN_INCLUDE_DIR
+ NAMES pixman.h
+ HINTS ${PC_PIXMAN_INCLUDEDIR}
+ ${PC_PIXMAN_INCLUDE_DIR}
+ PATH_SUFFIXES pixman pixman-1
+)
+
+FIND_LIBRARY(PIXMAN_LIBRARY
+ NAMES pixman pixman-1
+ HINTS ${PC_PIXMAN_LIBDIR}
+ ${PC_PIXMAN_LIBRARY_DIRS}
+)
+
+set(PIXMAN_INCLUDE_DIRS ${PIXMAN_INCLUDE_DIR})
+set(PIXMAN_LIBRARIES ${PIXMAN_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(PIXMAN DEFAULT_MSG PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR)
+mark_as_advanced(PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR)
diff --git a/cmake/FindSDE.cmake b/cmake/FindSDE.cmake
deleted file mode 100644
index 270daa6..0000000
--- a/cmake/FindSDE.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-# Find ESRI SDE
-#
-# If it's found it sets SDE_FOUND to TRUE
-# and following variables are set:
-# SDE_INCLUDE_DIRS
-# SDE_LIBRARIES
-
-
-FIND_PATH(SDE_INCLUDE_DIR sdetype.h
- PATHS ${SDE_DIR}
- PATH_SUFFIXES include arcsde/coverages/include
-)
-
-if(SDE_VERSION STREQUAL "91")
- FIND_LIBRARY(SDE_LIBRARY NAMES sde91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
- FIND_LIBRARY(PE_LIBRARY NAMES pe91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
- FIND_LIBRARY(SG_LIBRARY NAMES sg91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
-else(SDE_VERSION STREQUAL "91")
- FIND_LIBRARY(SDE_LIBRARY NAMES sde PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
- FIND_LIBRARY(PE_LIBRARY NAMES pe PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
- FIND_LIBRARY(SG_LIBRARY NAMES sg PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
-endif(SDE_VERSION STREQUAL "91")
-
-FIND_LIBRARY(SDE_DL_LIBRARY NAMES dl)
-FIND_LIBRARY(SDE_SOCKET_LIBRARY NAMES socket)
-FIND_LIBRARY(SDE_PTHREAD_LIBRARY NAMES pthread)
-
-set(SDE_LIBRARIES ${SDE_LIBRARY} ${PE_LIBRARY} ${SG_LIBRARY})
-if(SDE_DL_LIBRARY)
- set(SDE_LIBRARIES ${SDE_LIBRARIES} dl)
-endif(SDE_DL_LIBRARY)
-if(SDE_SOCKET_LIBRARY)
- set(SDE_LIBRARIES ${SDE_LIBRARIES} socket)
-endif(SDE_SOCKET_LIBRARY)
-if(SDE_PTHREAD_LIBRARY)
- set(SDE_LIBRARIES ${SDE_LIBRARIES} pthread)
-endif(SDE_PTHREAD_LIBRARY)
-
-set(SDE_INCLUDE_DIRS ${SDE_INCLUDE_DIR})
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SDE DEFAULT_MSG SDE_LIBRARIES SDE_INCLUDE_DIRS)
-mark_as_advanced(SDE_LIBRARIES SDE_INCLUDE_DIRS)
diff --git a/cmake/FindV8.cmake b/cmake/FindV8.cmake
new file mode 100644
index 0000000..0349a44
--- /dev/null
+++ b/cmake/FindV8.cmake
@@ -0,0 +1,48 @@
+# - Find V8
+#
+# V8_INCLUDE - Where to find v8.h
+# V8_LIBS - List of libraries when using V8.
+# V8_FOUND - True if V8 found.
+
+get_filename_component(module_file_path ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+# Look for the header file.
+find_path(V8_INCLUDE NAMES v8.h PATHS $ENV{V8_ROOT}/include /opt/local/include /usr/local/include /usr/include DOC "Path in which the file v8.h is located." )
+mark_as_advanced(V8_INCLUDE)
+
+# Look for the library.
+# Does this work on UNIX systems? (LINUX)
+find_library(V8_LIBS NAMES v8 PATHS /usr/lib $ENV{V8_ROOT}/lib DOC "Path to v8 library." )
+mark_as_advanced(V8_LIBS)
+
+# Copy the results to the output variables.
+if (V8_INCLUDE AND V8_LIBS)
+ message(STATUS "Found v8 in ${V8_INCLUDE} ${V8_LIBS}")
+ set(V8_FOUND 1)
+ include(CheckCXXSourceCompiles)
+ set(CMAKE_REQUIRED_LIBRARIES ${V8_LIBS} pthread)
+ set(CMAKE_REQUIRED_INCLUDES ${V8_INCLUDE})
+
+ check_cxx_source_compiles("
+ #include <v8.h>
+
+ int main()
+ {
+ v8::Persistent<v8::Context> ctx;
+ ctx.Dispose(0);
+ return 0;
+ }"
+ V8_DISPOSE_HAS_ISOLATE)
+ else ()
+ set(V8_FOUND 0)
+ endif ()
+
+ # Report the results.
+ if (NOT V8_FOUND)
+ set(V8_DIR_MESSAGE "V8 was not found. Make sure V8_LIBS and V8_INCLUDE are set.")
+ if (V8_FIND_REQUIRED)
+ message(FATAL_ERROR "${V8_DIR_MESSAGE}")
+ elseif (NOT V8_FIND_QUIETLY)
+ message(STATUS "${V8_DIR_MESSAGE}")
+ endif ()
+ endif ()
diff --git a/dejavu-sans-condensed.h b/dejavu-sans-condensed.h
new file mode 100644
index 0000000..85e7df1
--- /dev/null
+++ b/dejavu-sans-condensed.h
@@ -0,0 +1,46158 @@
+/*
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
+
+Arev Fonts Copyright
+------------------------------
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and
+associated documentation files (the "Font Software"), to reproduce
+and distribute the modifications to the Bitstream Vera Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Tavmjong Bah" or the word "Arev".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Tavmjong Bah Arev" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the name of Tavmjong Bah shall not
+be used in advertising or otherwise to promote the sale, use or other
+dealings in this Font Software without prior written authorization
+from Tavmjong Bah. For further information, contact: tavmjong @ free
+. fr.
+*/
+#ifndef _DEJAVU_SANS_CONDENSED_H
+#define _DEJAVU_SANS_CONDENSED_H
+/* to regenerate this file, use the `xxd -i` command */
+unsigned char dejavu_sans_condensed_ttf[] = {
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x04, 0x00, 0x30,
+ 0x46, 0x46, 0x54, 0x4d, 0x66, 0x09, 0x1f, 0xf9, 0x00, 0x00, 0x01, 0x3c,
+ 0x00, 0x00, 0x00, 0x1c, 0x47, 0x44, 0x45, 0x46, 0xc3, 0x10, 0xc5, 0x70,
+ 0x00, 0x00, 0x01, 0x58, 0x00, 0x00, 0x01, 0xc2, 0x47, 0x50, 0x4f, 0x53,
+ 0xfc, 0xcc, 0xe2, 0x8c, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x70, 0xc4,
+ 0x47, 0x53, 0x55, 0x42, 0x81, 0x22, 0xfe, 0xaf, 0x00, 0x00, 0x73, 0xe0,
+ 0x00, 0x00, 0x0d, 0x50, 0x4f, 0x53, 0x2f, 0x32, 0x8d, 0x18, 0xe6, 0xc7,
+ 0x00, 0x00, 0x81, 0x30, 0x00, 0x00, 0x00, 0x56, 0x63, 0x6d, 0x61, 0x70,
+ 0x26, 0x77, 0xbd, 0xfb, 0x00, 0x00, 0x81, 0x88, 0x00, 0x00, 0x0e, 0x0e,
+ 0x63, 0x76, 0x74, 0x20, 0x00, 0x69, 0x1d, 0x39, 0x00, 0x00, 0x8f, 0x98,
+ 0x00, 0x00, 0x01, 0xfe, 0x66, 0x70, 0x67, 0x6d, 0x71, 0x34, 0x76, 0x6a,
+ 0x00, 0x00, 0x91, 0x98, 0x00, 0x00, 0x00, 0xab, 0x67, 0x61, 0x73, 0x70,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x92, 0x44, 0x00, 0x00, 0x00, 0x0c,
+ 0x67, 0x6c, 0x79, 0x66, 0xbf, 0x93, 0x97, 0x69, 0x00, 0x00, 0x92, 0x50,
+ 0x00, 0x06, 0x16, 0x80, 0x68, 0x65, 0x61, 0x64, 0x00, 0x93, 0x52, 0xd5,
+ 0x00, 0x06, 0xa8, 0xd0, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61,
+ 0x0c, 0x31, 0x19, 0x73, 0x00, 0x06, 0xa9, 0x08, 0x00, 0x00, 0x00, 0x24,
+ 0x68, 0x6d, 0x74, 0x78, 0xd6, 0x38, 0x75, 0x2e, 0x00, 0x06, 0xa9, 0x2c,
+ 0x00, 0x00, 0x48, 0x38, 0x6b, 0x65, 0x72, 0x6e, 0x87, 0x38, 0x36, 0x5f,
+ 0x00, 0x06, 0xf1, 0x64, 0x00, 0x00, 0x3f, 0xfc, 0x6c, 0x6f, 0x63, 0x61,
+ 0x2b, 0x97, 0xe6, 0xcc, 0x00, 0x07, 0x31, 0x60, 0x00, 0x00, 0x48, 0x3c,
+ 0x6d, 0x61, 0x78, 0x70, 0x16, 0x7b, 0x04, 0x5b, 0x00, 0x07, 0x79, 0x9c,
+ 0x00, 0x00, 0x00, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0xf0, 0xf9, 0x25, 0x82,
+ 0x00, 0x07, 0x79, 0xbc, 0x00, 0x00, 0x3d, 0xc5, 0x70, 0x6f, 0x73, 0x74,
+ 0x6b, 0x1b, 0xc9, 0x76, 0x00, 0x07, 0xb7, 0x84, 0x00, 0x00, 0xb1, 0xbd,
+ 0x70, 0x72, 0x65, 0x70, 0x3b, 0x07, 0xf1, 0x00, 0x00, 0x08, 0x69, 0x44,
+ 0x00, 0x00, 0x05, 0x68, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0xc9, 0x89, 0x6f, 0x31, 0x00, 0x00, 0x00, 0x00, 0xce, 0x3f, 0xd8, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xce, 0x3f, 0xd8, 0x64, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x0e, 0x00, 0x00, 0x01, 0x56, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x36, 0x00, 0x03, 0x02, 0xb0, 0x00, 0x01, 0x02, 0xb1, 0x02, 0xc5,
+ 0x00, 0x03, 0x02, 0xc6, 0x02, 0xc6, 0x00, 0x01, 0x02, 0xc7, 0x02, 0xca,
+ 0x00, 0x03, 0x02, 0xcb, 0x02, 0xcc, 0x00, 0x01, 0x02, 0xcd, 0x02, 0xd1,
+ 0x00, 0x03, 0x02, 0xd2, 0x02, 0xd3, 0x00, 0x01, 0x02, 0xd4, 0x02, 0xe4,
+ 0x00, 0x03, 0x02, 0xe5, 0x02, 0xe9, 0x00, 0x01, 0x02, 0xea, 0x02, 0xf3,
+ 0x00, 0x03, 0x02, 0xf4, 0x02, 0xf4, 0x00, 0x01, 0x02, 0xf5, 0x02, 0xf5,
+ 0x00, 0x03, 0x02, 0xf6, 0x02, 0xf6, 0x00, 0x01, 0x02, 0xf7, 0x02, 0xff,
+ 0x00, 0x03, 0x03, 0x00, 0x03, 0x00, 0x00, 0x01, 0x03, 0x01, 0x03, 0x04,
+ 0x00, 0x03, 0x03, 0x05, 0x03, 0x05, 0x00, 0x01, 0x03, 0x06, 0x03, 0x06,
+ 0x00, 0x03, 0x03, 0x07, 0x03, 0x07, 0x00, 0x01, 0x03, 0x08, 0x03, 0x09,
+ 0x00, 0x03, 0x03, 0x0a, 0x03, 0x0a, 0x00, 0x01, 0x03, 0x0b, 0x03, 0x0c,
+ 0x00, 0x03, 0x03, 0x0d, 0x04, 0x16, 0x00, 0x01, 0x04, 0x17, 0x04, 0x1b,
+ 0x00, 0x03, 0x04, 0x1c, 0x05, 0x49, 0x00, 0x01, 0x05, 0x4a, 0x05, 0x4f,
+ 0x00, 0x03, 0x05, 0x50, 0x07, 0x70, 0x00, 0x01, 0x07, 0x71, 0x07, 0x71,
+ 0x00, 0x02, 0x07, 0x72, 0x07, 0x7b, 0x00, 0x01, 0x07, 0x7c, 0x07, 0x7e,
+ 0x00, 0x02, 0x07, 0x7f, 0x07, 0xd1, 0x00, 0x01, 0x07, 0xd2, 0x07, 0xd2,
+ 0x00, 0x02, 0x07, 0xd3, 0x07, 0xe2, 0x00, 0x01, 0x07, 0xe3, 0x07, 0xe9,
+ 0x00, 0x03, 0x07, 0xea, 0x07, 0xea, 0x00, 0x02, 0x07, 0xeb, 0x07, 0xee,
+ 0x00, 0x01, 0x07, 0xef, 0x07, 0xf0, 0x00, 0x02, 0x07, 0xf1, 0x08, 0x08,
+ 0x00, 0x01, 0x08, 0x09, 0x08, 0x0a, 0x00, 0x02, 0x08, 0x0b, 0x08, 0x23,
+ 0x00, 0x01, 0x08, 0x24, 0x08, 0x24, 0x00, 0x02, 0x08, 0x25, 0x0f, 0x08,
+ 0x00, 0x01, 0x0f, 0x09, 0x0f, 0x0f, 0x00, 0x02, 0x0f, 0x10, 0x0f, 0x10,
+ 0x00, 0x01, 0x0f, 0x11, 0x0f, 0x11, 0x00, 0x03, 0x0f, 0x12, 0x0f, 0x12,
+ 0x00, 0x01, 0x0f, 0x13, 0x0f, 0x13, 0x00, 0x03, 0x0f, 0x14, 0x10, 0xea,
+ 0x00, 0x01, 0x10, 0xeb, 0x10, 0xf5, 0x00, 0x03, 0x10, 0xf6, 0x11, 0x49,
+ 0x00, 0x01, 0x11, 0x4a, 0x11, 0x51, 0x00, 0x03, 0x11, 0x52, 0x11, 0xab,
+ 0x00, 0x01, 0x11, 0xac, 0x11, 0xac, 0x00, 0x03, 0x11, 0xad, 0x12, 0x0d,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x10, 0x02, 0xb1, 0x02, 0xc6, 0x00, 0x01, 0x02, 0xc7, 0x02, 0xca,
+ 0x00, 0x02, 0x02, 0xcd, 0x02, 0xd7, 0x00, 0x02, 0x02, 0xd8, 0x02, 0xd8,
+ 0x00, 0x03, 0x02, 0xd9, 0x02, 0xd9, 0x00, 0x04, 0x02, 0xda, 0x02, 0xe4,
+ 0x00, 0x02, 0x02, 0xea, 0x02, 0xed, 0x00, 0x02, 0x02, 0xee, 0x02, 0xf5,
+ 0x00, 0x01, 0x02, 0xf6, 0x02, 0xf6, 0x00, 0x02, 0x02, 0xf7, 0x02, 0xf7,
+ 0x00, 0x01, 0x02, 0xf8, 0x02, 0xfa, 0x00, 0x02, 0x02, 0xfb, 0x02, 0xfd,
+ 0x00, 0x01, 0x02, 0xfe, 0x02, 0xff, 0x00, 0x02, 0x03, 0x01, 0x03, 0x02,
+ 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x02, 0x03, 0x04, 0x03, 0x04,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x01, 0xd8,
+ 0x02, 0x32, 0x00, 0x14, 0x44, 0x46, 0x4c, 0x54, 0x00, 0x7a, 0x61, 0x72,
+ 0x61, 0x62, 0x00, 0x86, 0x61, 0x72, 0x6d, 0x6e, 0x00, 0xa8, 0x62, 0x72,
+ 0x61, 0x69, 0x00, 0xb4, 0x63, 0x61, 0x6e, 0x73, 0x00, 0xc0, 0x63, 0x68,
+ 0x65, 0x72, 0x00, 0xcc, 0x63, 0x79, 0x72, 0x6c, 0x00, 0xd8, 0x67, 0x65,
+ 0x6f, 0x72, 0x00, 0xf4, 0x67, 0x72, 0x65, 0x6b, 0x01, 0x00, 0x68, 0x61,
+ 0x6e, 0x69, 0x01, 0x10, 0x68, 0x65, 0x62, 0x72, 0x01, 0x1c, 0x6b, 0x61,
+ 0x6e, 0x61, 0x01, 0x2a, 0x6c, 0x61, 0x6f, 0x20, 0x01, 0x36, 0x6c, 0x61,
+ 0x74, 0x6e, 0x01, 0x42, 0x6d, 0x61, 0x74, 0x68, 0x01, 0x82, 0x6e, 0x6b,
+ 0x6f, 0x20, 0x01, 0x8e, 0x6f, 0x67, 0x61, 0x6d, 0x01, 0x9c, 0x72, 0x75,
+ 0x6e, 0x72, 0x01, 0xa8, 0x74, 0x66, 0x6e, 0x67, 0x01, 0xb4, 0x74, 0x68,
+ 0x61, 0x69, 0x01, 0xc2, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x4b, 0x55, 0x52, 0x20,
+ 0x00, 0x16, 0x53, 0x4e, 0x44, 0x20, 0x00, 0x16, 0x55, 0x52, 0x44, 0x20,
+ 0x00, 0x16, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x4d, 0x4b, 0x44, 0x20, 0x00, 0x10,
+ 0x53, 0x52, 0x42, 0x20, 0x00, 0x10, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x34, 0x00, 0x08, 0x49, 0x53, 0x4d, 0x20, 0x00, 0x34, 0x4b, 0x53,
+ 0x4d, 0x20, 0x00, 0x34, 0x4c, 0x53, 0x4d, 0x20, 0x00, 0x34, 0x4d, 0x4f,
+ 0x4c, 0x20, 0x00, 0x34, 0x4e, 0x53, 0x4d, 0x20, 0x00, 0x34, 0x52, 0x4f,
+ 0x4d, 0x20, 0x00, 0x34, 0x53, 0x4b, 0x53, 0x20, 0x00, 0x34, 0x53, 0x53,
+ 0x4d, 0x20, 0x00, 0x34, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0x00, 0x01,
+ 0x00, 0x03, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x6b, 0x65,
+ 0x72, 0x6e, 0x00, 0x2c, 0x6b, 0x65, 0x72, 0x6e, 0x00, 0x32, 0x6d, 0x61,
+ 0x72, 0x6b, 0x00, 0x3a, 0x6d, 0x61, 0x72, 0x6b, 0x00, 0x40, 0x6d, 0x61,
+ 0x72, 0x6b, 0x00, 0x48, 0x6d, 0x6b, 0x6d, 0x6b, 0x00, 0x4e, 0x6d, 0x6b,
+ 0x6d, 0x6b, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x07, 0x00, 0x10, 0x00, 0x18, 0x00, 0x22, 0x00, 0x2a,
+ 0x00, 0x32, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x06, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x44, 0x00, 0x06, 0x00, 0x04, 0x00, 0x02, 0x00, 0xf0, 0x03, 0xd0,
+ 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x08, 0x86, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x01, 0x0f, 0xc0, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x11, 0x72,
+ 0x17, 0x1c, 0x17, 0x9c, 0x1b, 0x3a, 0x2c, 0x8e, 0x44, 0xde, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x01, 0x46, 0x1c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x6d, 0xca, 0x00, 0x01, 0x00, 0x58, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x62,
+ 0x00, 0x0c, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1e, 0x00, 0x24,
+ 0x00, 0x2a, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3c, 0x00, 0x01, 0x01, 0xcc,
+ 0x08, 0xfc, 0x00, 0x01, 0x01, 0xcc, 0x09, 0xc4, 0x00, 0x01, 0x01, 0xcc,
+ 0x08, 0xfc, 0x00, 0x01, 0x01, 0xcc, 0x08, 0x34, 0x00, 0x01, 0x01, 0xcc,
+ 0x09, 0xc4, 0x00, 0x01, 0x01, 0xcc, 0x08, 0x34, 0x00, 0x01, 0x01, 0xcc,
+ 0x07, 0xd0, 0x00, 0x01, 0x01, 0xcc, 0x09, 0x60, 0x00, 0x02, 0x00, 0x01,
+ 0x11, 0x4a, 0x11, 0x51, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x11, 0x4a,
+ 0x11, 0x51, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00,
+ 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00,
+ 0x00, 0x3a, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00,
+ 0x00, 0x4c, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0x5a, 0x01, 0x26, 0x00, 0x01, 0x01, 0x94,
+ 0x00, 0x0c, 0x00, 0x23, 0x00, 0x48, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x5a,
+ 0x00, 0x60, 0x00, 0x66, 0x00, 0x6c, 0x00, 0x72, 0x00, 0x78, 0x00, 0x7e,
+ 0x00, 0x84, 0x00, 0x8a, 0x00, 0x90, 0x00, 0x96, 0x00, 0x9c, 0x00, 0xa2,
+ 0x00, 0xa8, 0x00, 0xae, 0x00, 0xb4, 0x00, 0xba, 0x00, 0xc0, 0x00, 0xc6,
+ 0x00, 0xcc, 0x00, 0xd2, 0x00, 0xd8, 0x00, 0xde, 0x00, 0xe4, 0x00, 0xea,
+ 0x00, 0xf0, 0x00, 0xf6, 0x00, 0xfc, 0x01, 0x02, 0x01, 0x08, 0x01, 0x0e,
+ 0x01, 0x14, 0x00, 0x01, 0xfe, 0x34, 0xfd, 0xde, 0x00, 0x01, 0xfe, 0x34,
+ 0xfd, 0xde, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34, 0xfd, 0xda, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x89, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x89, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x89, 0x00, 0x01, 0xfe, 0x34,
+ 0xfd, 0xda, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x14, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x74, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x74, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x1f, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x3b, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x18, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x15, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x38, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x38, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x38, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0xbf, 0x00, 0x01, 0xfe, 0x34, 0xfd, 0xda, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x1f, 0x00, 0x01, 0xfe, 0x35, 0xfe, 0x13, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x0b, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x0e, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x0e, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x0e, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x0e, 0x00, 0x01, 0xfe, 0x34, 0xfe, 0x0e, 0x00, 0x01, 0xfe, 0x34,
+ 0xfe, 0x13, 0x00, 0x01, 0xfe, 0x34, 0xfd, 0xda, 0x00, 0x02, 0x00, 0x08,
+ 0x02, 0xc7, 0x02, 0xca, 0x00, 0x00, 0x02, 0xcd, 0x02, 0xd1, 0x00, 0x04,
+ 0x02, 0xd4, 0x02, 0xe2, 0x00, 0x09, 0x02, 0xea, 0x02, 0xed, 0x00, 0x18,
+ 0x02, 0xf8, 0x02, 0xfa, 0x00, 0x1c, 0x02, 0xfe, 0x02, 0xff, 0x00, 0x1f,
+ 0x03, 0x03, 0x03, 0x03, 0x00, 0x21, 0x03, 0x06, 0x03, 0x06, 0x00, 0x22,
+ 0x00, 0x02, 0x00, 0x09, 0x02, 0xc7, 0x02, 0xca, 0x00, 0x00, 0x02, 0xcd,
+ 0x02, 0xd1, 0x00, 0x04, 0x02, 0xd4, 0x02, 0xd7, 0x00, 0x09, 0x02, 0xda,
+ 0x02, 0xe2, 0x00, 0x0d, 0x02, 0xea, 0x02, 0xed, 0x00, 0x16, 0x02, 0xf8,
+ 0x02, 0xfa, 0x00, 0x1a, 0x02, 0xfe, 0x02, 0xff, 0x00, 0x1d, 0x03, 0x03,
+ 0x03, 0x03, 0x00, 0x1f, 0x03, 0x06, 0x03, 0x06, 0x00, 0x20, 0x00, 0x21,
+ 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x92,
+ 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0xa4,
+ 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xb6,
+ 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc8,
+ 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xda,
+ 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xec,
+ 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfe,
+ 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x01, 0x10,
+ 0x00, 0x00, 0x01, 0x16, 0x00, 0x00, 0x01, 0x1c, 0x00, 0x00, 0x01, 0x22,
+ 0x00, 0x00, 0x01, 0x28, 0x00, 0x00, 0x01, 0x2e, 0x00, 0x00, 0x01, 0x34,
+ 0x00, 0x00, 0x01, 0x3a, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x46,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x35, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0x02, 0x42, 0x01, 0xde,
+ 0x00, 0x01, 0x02, 0x8e, 0x00, 0x0c, 0x00, 0x3a, 0x00, 0x76, 0x00, 0x7c,
+ 0x00, 0x82, 0x00, 0x88, 0x00, 0x8e, 0x00, 0x94, 0x00, 0x9a, 0x00, 0xa0,
+ 0x00, 0xa6, 0x00, 0xac, 0x00, 0xb2, 0x00, 0xb8, 0x00, 0xbe, 0x00, 0xc4,
+ 0x00, 0xca, 0x00, 0xd0, 0x00, 0xd6, 0x00, 0xdc, 0x00, 0xe2, 0x00, 0xe8,
+ 0x00, 0xee, 0x00, 0xf4, 0x00, 0xfa, 0x01, 0x00, 0x01, 0x06, 0x01, 0x0c,
+ 0x01, 0x12, 0x01, 0x18, 0x01, 0x1e, 0x01, 0x24, 0x01, 0x2a, 0x01, 0x30,
+ 0x01, 0x36, 0x01, 0x3c, 0x01, 0x42, 0x01, 0x48, 0x01, 0x4e, 0x01, 0x54,
+ 0x01, 0x5a, 0x01, 0x60, 0x01, 0x66, 0x01, 0x6c, 0x01, 0x72, 0x01, 0x78,
+ 0x01, 0x7e, 0x01, 0x84, 0x01, 0x8a, 0x01, 0x90, 0x01, 0x96, 0x01, 0x9c,
+ 0x01, 0xa2, 0x01, 0xa8, 0x01, 0xae, 0x01, 0xb4, 0x01, 0xba, 0x01, 0xc0,
+ 0x01, 0xc6, 0x01, 0xcc, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x3d, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x44, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0xc5, 0x00, 0x01, 0xfe, 0x34, 0x07, 0x04, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0xa8, 0x00, 0x01, 0xfe, 0x34, 0x06, 0xa8, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01, 0xfe, 0x34, 0x07, 0x56, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x44, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x93, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x3d, 0x00, 0x01,
+ 0xfe, 0x34, 0x07, 0xd0, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x44, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x44, 0x00, 0x01, 0xfe, 0x34, 0x07, 0x04, 0x00, 0x01,
+ 0xfe, 0x34, 0x07, 0x04, 0x00, 0x01, 0xfe, 0x34, 0x07, 0x04, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0xda, 0x00, 0x01, 0xfe, 0x34, 0x07, 0x04, 0x00, 0x01,
+ 0x00, 0x00, 0x07, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x07, 0x6e, 0x00, 0x01,
+ 0x00, 0x00, 0x07, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x07, 0x6e, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x68, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x14, 0x00, 0x01, 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01, 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01, 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01, 0xfe, 0x34, 0x05, 0xdb, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01, 0xfe, 0x34, 0x05, 0xf8, 0x00, 0x01,
+ 0xfe, 0x34, 0x06, 0x1e, 0x00, 0x02, 0x00, 0x10, 0x02, 0xb1, 0x02, 0xc2,
+ 0x00, 0x00, 0x02, 0xee, 0x02, 0xee, 0x00, 0x12, 0x02, 0xf0, 0x02, 0xf3,
+ 0x00, 0x13, 0x02, 0xf5, 0x02, 0xf5, 0x00, 0x17, 0x02, 0xf7, 0x02, 0xf7,
+ 0x00, 0x18, 0x02, 0xfb, 0x02, 0xfd, 0x00, 0x19, 0x03, 0x01, 0x03, 0x02,
+ 0x00, 0x1c, 0x03, 0x04, 0x03, 0x04, 0x00, 0x1e, 0x03, 0x08, 0x03, 0x09,
+ 0x00, 0x1f, 0x03, 0x0b, 0x03, 0x0c, 0x00, 0x21, 0x05, 0x4a, 0x05, 0x4f,
+ 0x00, 0x23, 0x07, 0xe3, 0x07, 0xe9, 0x00, 0x29, 0x10, 0xeb, 0x10, 0xeb,
+ 0x00, 0x30, 0x10, 0xed, 0x10, 0xed, 0x00, 0x31, 0x10, 0xef, 0x10, 0xf5,
+ 0x00, 0x32, 0x11, 0xac, 0x11, 0xac, 0x00, 0x39, 0x00, 0x02, 0x00, 0x0c,
+ 0x02, 0xb1, 0x02, 0xc2, 0x00, 0x00, 0x02, 0xee, 0x02, 0xee, 0x00, 0x12,
+ 0x02, 0xf0, 0x02, 0xf3, 0x00, 0x13, 0x02, 0xf5, 0x02, 0xf5, 0x00, 0x17,
+ 0x02, 0xf7, 0x02, 0xf7, 0x00, 0x18, 0x02, 0xfb, 0x02, 0xfd, 0x00, 0x19,
+ 0x03, 0x01, 0x03, 0x02, 0x00, 0x1c, 0x03, 0x04, 0x03, 0x04, 0x00, 0x1e,
+ 0x05, 0x4a, 0x05, 0x4f, 0x00, 0x1f, 0x07, 0xe3, 0x07, 0xe9, 0x00, 0x25,
+ 0x10, 0xeb, 0x10, 0xf5, 0x00, 0x2c, 0x11, 0xac, 0x11, 0xac, 0x00, 0x37,
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00,
+ 0x00, 0xee, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00,
+ 0x01, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x01, 0x1e, 0x00, 0x00,
+ 0x01, 0x24, 0x00, 0x00, 0x01, 0x2a, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00,
+ 0x01, 0x36, 0x00, 0x00, 0x01, 0x3c, 0x00, 0x00, 0x01, 0x42, 0x00, 0x00,
+ 0x01, 0x48, 0x00, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x01, 0x54, 0x00, 0x00,
+ 0x01, 0x5a, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0x66, 0x00, 0x00,
+ 0x01, 0x6c, 0x00, 0x00, 0x01, 0x72, 0x00, 0x00, 0x01, 0x78, 0x00, 0x00,
+ 0x01, 0x7e, 0x00, 0x00, 0x01, 0x84, 0x00, 0x00, 0x01, 0x8a, 0x00, 0x00,
+ 0x01, 0x90, 0x00, 0x00, 0x01, 0x96, 0x00, 0x00, 0x01, 0x9c, 0x00, 0x00,
+ 0x01, 0xa2, 0x00, 0x00, 0x01, 0xa8, 0x00, 0x00, 0x01, 0xae, 0x00, 0x00,
+ 0x01, 0xb4, 0x00, 0x00, 0x01, 0xba, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00,
+ 0x01, 0xc6, 0x00, 0x00, 0x01, 0xcc, 0x00, 0x00, 0x01, 0xd2, 0x00, 0x00,
+ 0x01, 0xd8, 0x00, 0x00, 0x01, 0xde, 0x00, 0x00, 0x01, 0xe4, 0x00, 0x00,
+ 0x01, 0xea, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x01, 0xf6, 0x00, 0x00,
+ 0x01, 0xfc, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00,
+ 0x02, 0x0e, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x02, 0x1a, 0x00, 0x00,
+ 0x02, 0x20, 0x00, 0x00, 0x02, 0x26, 0x00, 0x00, 0x02, 0x2c, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0xb0, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0xb0, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01, 0xfe, 0x34, 0x05, 0x02, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01,
+ 0x06, 0xe6, 0x06, 0xbe, 0x00, 0x01, 0x06, 0xf0, 0x00, 0x0c, 0x00, 0xd6,
+ 0x01, 0xae, 0x01, 0xb4, 0x01, 0xba, 0x01, 0xc0, 0x01, 0xc6, 0x01, 0xcc,
+ 0x01, 0xd2, 0x01, 0xd8, 0x01, 0xde, 0x01, 0xe4, 0x01, 0xea, 0x01, 0xf0,
+ 0x01, 0xf6, 0x01, 0xfc, 0x02, 0x02, 0x02, 0x08, 0x02, 0x0e, 0x02, 0x14,
+ 0x02, 0x1a, 0x02, 0x20, 0x02, 0x26, 0x02, 0x2c, 0x02, 0x32, 0x02, 0x38,
+ 0x02, 0x3e, 0x02, 0x44, 0x02, 0x4a, 0x02, 0x50, 0x02, 0x56, 0x02, 0x5c,
+ 0x02, 0x62, 0x02, 0x68, 0x02, 0x6e, 0x02, 0x74, 0x02, 0x7a, 0x02, 0x80,
+ 0x02, 0x86, 0x02, 0x8c, 0x02, 0x92, 0x02, 0x98, 0x02, 0x9e, 0x02, 0xa4,
+ 0x02, 0xaa, 0x02, 0xb0, 0x02, 0xb6, 0x02, 0xbc, 0x02, 0xc2, 0x02, 0xc8,
+ 0x02, 0xce, 0x02, 0xd4, 0x02, 0xda, 0x02, 0xe0, 0x02, 0xe6, 0x02, 0xec,
+ 0x02, 0xf2, 0x02, 0xf8, 0x02, 0xfe, 0x03, 0x04, 0x03, 0x0a, 0x03, 0x10,
+ 0x03, 0x16, 0x03, 0x1c, 0x03, 0x22, 0x03, 0x28, 0x03, 0x2e, 0x03, 0x34,
+ 0x03, 0x3a, 0x03, 0x40, 0x03, 0x46, 0x03, 0x4c, 0x03, 0x52, 0x03, 0x58,
+ 0x03, 0x5e, 0x03, 0x64, 0x03, 0x6a, 0x03, 0x70, 0x03, 0x76, 0x03, 0x7c,
+ 0x03, 0x82, 0x03, 0x88, 0x03, 0x8e, 0x03, 0x94, 0x03, 0x9a, 0x03, 0xa0,
+ 0x03, 0xa6, 0x03, 0xac, 0x03, 0xb2, 0x03, 0xb8, 0x03, 0xbe, 0x03, 0xc4,
+ 0x03, 0xca, 0x03, 0xd0, 0x03, 0xd6, 0x03, 0xdc, 0x03, 0xe2, 0x03, 0xe8,
+ 0x03, 0xee, 0x03, 0xf4, 0x03, 0xfa, 0x04, 0x00, 0x04, 0x06, 0x04, 0x0c,
+ 0x04, 0x12, 0x04, 0x18, 0x04, 0x1e, 0x04, 0x24, 0x04, 0x2a, 0x04, 0x30,
+ 0x04, 0x36, 0x04, 0x3c, 0x04, 0x42, 0x04, 0x48, 0x04, 0x4e, 0x04, 0x54,
+ 0x04, 0x5a, 0x04, 0x60, 0x04, 0x66, 0x04, 0x6c, 0x04, 0x72, 0x04, 0x78,
+ 0x04, 0x7e, 0x04, 0x84, 0x04, 0x8a, 0x04, 0x90, 0x04, 0x96, 0x04, 0x9c,
+ 0x04, 0xa2, 0x04, 0xa8, 0x04, 0xae, 0x04, 0xb4, 0x04, 0xba, 0x04, 0xc0,
+ 0x04, 0xc6, 0x04, 0xcc, 0x04, 0xd2, 0x04, 0xd8, 0x04, 0xde, 0x04, 0xe4,
+ 0x04, 0xea, 0x04, 0xf0, 0x04, 0xf6, 0x04, 0xfc, 0x05, 0x02, 0x05, 0x08,
+ 0x05, 0x0e, 0x05, 0x14, 0x05, 0x1a, 0x05, 0x20, 0x05, 0x26, 0x05, 0x2c,
+ 0x05, 0x32, 0x05, 0x38, 0x05, 0x3e, 0x05, 0x44, 0x05, 0x4a, 0x05, 0x50,
+ 0x05, 0x56, 0x05, 0x5c, 0x05, 0x62, 0x05, 0x68, 0x05, 0x6e, 0x05, 0x74,
+ 0x05, 0x7a, 0x05, 0x80, 0x05, 0x86, 0x05, 0x8c, 0x05, 0x92, 0x05, 0x98,
+ 0x05, 0x9e, 0x05, 0xa4, 0x05, 0xaa, 0x05, 0xb0, 0x05, 0xb6, 0x05, 0xbc,
+ 0x05, 0xc2, 0x05, 0xc8, 0x05, 0xce, 0x05, 0xd4, 0x05, 0xda, 0x05, 0xe0,
+ 0x05, 0xe6, 0x05, 0xec, 0x05, 0xf2, 0x05, 0xf8, 0x05, 0xfe, 0x06, 0x04,
+ 0x06, 0x0a, 0x06, 0x10, 0x06, 0x16, 0x06, 0x1c, 0x06, 0x22, 0x06, 0x28,
+ 0x06, 0x2e, 0x06, 0x34, 0x06, 0x3a, 0x06, 0x40, 0x06, 0x46, 0x06, 0x4c,
+ 0x06, 0x52, 0x06, 0x58, 0x06, 0x5e, 0x06, 0x64, 0x06, 0x6a, 0x06, 0x70,
+ 0x06, 0x76, 0x06, 0x7c, 0x06, 0x82, 0x06, 0x88, 0x06, 0x8e, 0x06, 0x94,
+ 0x06, 0x9a, 0x06, 0xa0, 0x06, 0xa6, 0x06, 0xac, 0x00, 0x01, 0x03, 0x2a,
+ 0x03, 0xe8, 0x00, 0x01, 0x01, 0x0d, 0x03, 0xe8, 0x00, 0x01, 0x01, 0x0d,
+ 0x03, 0xe8, 0x00, 0x01, 0x02, 0x76, 0x04, 0x4c, 0x00, 0x01, 0x01, 0xc2,
+ 0x04, 0x4c, 0x00, 0x01, 0x01, 0xd2, 0x03, 0xb6, 0x00, 0x01, 0x01, 0xc2,
+ 0x03, 0x52, 0x00, 0x01, 0x01, 0xc2, 0x04, 0x4c, 0x00, 0x01, 0x01, 0xd2,
+ 0x03, 0xb6, 0x00, 0x01, 0x01, 0x0d, 0x04, 0x1a, 0x00, 0x01, 0x01, 0x0d,
+ 0x04, 0x1a, 0x00, 0x01, 0x03, 0x2a, 0x03, 0x52, 0x00, 0x01, 0x01, 0x0d,
+ 0x04, 0x1a, 0x00, 0x01, 0x01, 0x0d, 0x04, 0x1a, 0x00, 0x01, 0x03, 0x2a,
+ 0x03, 0xe8, 0x00, 0x01, 0x01, 0x0d, 0x05, 0x14, 0x00, 0x01, 0x01, 0x0d,
+ 0x05, 0x14, 0x00, 0x01, 0x02, 0x49, 0x06, 0x0e, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0xaa, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xaa, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xdc, 0x00, 0x01, 0x02, 0x1c, 0x05, 0x78, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0x78, 0x00, 0x01, 0x02, 0x49, 0x05, 0xdc, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0x78, 0x00, 0x01, 0x02, 0x1c, 0x05, 0x78, 0x00, 0x01, 0x02, 0x49,
+ 0x04, 0xe2, 0x00, 0x01, 0x02, 0x1c, 0x04, 0x7e, 0x00, 0x01, 0x02, 0x1c,
+ 0x04, 0x7e, 0x00, 0x01, 0x02, 0x76, 0x02, 0xee, 0x00, 0x01, 0x02, 0x76,
+ 0x02, 0xee, 0x00, 0x01, 0x04, 0x42, 0x08, 0x34, 0x00, 0x01, 0x01, 0x31,
+ 0x08, 0x34, 0x00, 0x01, 0x01, 0x31, 0x08, 0x34, 0x00, 0x01, 0x02, 0x76,
+ 0x03, 0xb6, 0x00, 0x01, 0x01, 0x0d, 0x04, 0xb0, 0x00, 0x01, 0x01, 0x0d,
+ 0x04, 0xb0, 0x00, 0x01, 0x02, 0x76, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xef,
+ 0x03, 0x52, 0x00, 0x01, 0x01, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x00,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x0e,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x0e, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x0e,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x80, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x80,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x80, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x21,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x21, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x21,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x23, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x23,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x23, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xb0, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xb0,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xb0, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xdd,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xdd, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xdd,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x63, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x63,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x63, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x7e,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x7e, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x7e,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x69, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x69,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x69, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd2, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd2,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd2, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf2, 0x00, 0x01, 0x02, 0x5a, 0x05, 0xf2, 0x00, 0x01, 0x02, 0x5a,
+ 0x05, 0xf2, 0x00, 0x01, 0x02, 0x40, 0x05, 0xf2, 0x00, 0x01, 0x02, 0x40,
+ 0x05, 0xf2, 0x00, 0x01, 0x02, 0x40, 0x05, 0xf2, 0x00, 0x01, 0x02, 0xb5,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x52,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x52, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x52,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xad, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x40,
+ 0x05, 0xf2, 0x00, 0x01, 0x02, 0x40, 0x05, 0xf2, 0x00, 0x01, 0x02, 0x40,
+ 0x05, 0xf2, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xca, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe5,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe5, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe5,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x68, 0x03, 0xe8, 0x00, 0x01, 0x01, 0x68,
+ 0x03, 0xe8, 0x00, 0x01, 0x01, 0x95, 0x06, 0x40, 0x00, 0x01, 0x01, 0x95,
+ 0x05, 0xaa, 0x00, 0x01, 0x01, 0x95, 0x05, 0xdc, 0x00, 0x01, 0x02, 0x76,
+ 0x02, 0xee, 0x00, 0x01, 0x02, 0x76, 0x02, 0xee, 0x00, 0x01, 0x02, 0x76,
+ 0x02, 0xee, 0x00, 0x01, 0x02, 0x76, 0x03, 0xe8, 0x00, 0x01, 0x02, 0x76,
+ 0x04, 0xe2, 0x00, 0x01, 0x02, 0x1c, 0x03, 0x20, 0x00, 0x01, 0x02, 0xfd,
+ 0x04, 0x1a, 0x00, 0x01, 0x02, 0xfd, 0x04, 0x1a, 0x00, 0x01, 0x02, 0x1c,
+ 0x03, 0x20, 0x00, 0x01, 0x02, 0x49, 0x03, 0x84, 0x00, 0x01, 0x02, 0x49,
+ 0x03, 0x84, 0x00, 0x01, 0x02, 0x1c, 0x03, 0x20, 0x00, 0x01, 0x02, 0xfd,
+ 0x04, 0xe2, 0x00, 0x01, 0x02, 0xfd, 0x04, 0xe2, 0x00, 0x01, 0x02, 0x1c,
+ 0x03, 0x20, 0x00, 0x01, 0x01, 0xef, 0x03, 0x20, 0x00, 0x01, 0x01, 0xef,
+ 0x03, 0x20, 0x00, 0x01, 0x02, 0x1c, 0x03, 0x20, 0x00, 0x01, 0x02, 0x1c,
+ 0x04, 0xe2, 0x00, 0x01, 0x02, 0x1c, 0x04, 0xe2, 0x00, 0x01, 0x02, 0x1e,
+ 0x06, 0x72, 0x00, 0x01, 0x01, 0x31, 0x06, 0x72, 0x00, 0x01, 0x01, 0x31,
+ 0x06, 0x72, 0x00, 0x01, 0x01, 0xc2, 0x05, 0x78, 0x00, 0x01, 0x01, 0xc2,
+ 0x06, 0x72, 0x00, 0x01, 0x01, 0xbc, 0x05, 0x78, 0x00, 0x01, 0x02, 0x76,
+ 0x04, 0x4c, 0x00, 0x01, 0x01, 0xc2, 0x04, 0x4c, 0x00, 0x01, 0x01, 0xd2,
+ 0x03, 0xb6, 0x00, 0x01, 0x02, 0x76, 0x04, 0x4c, 0x00, 0x01, 0x01, 0xc2,
+ 0x05, 0x46, 0x00, 0x01, 0x01, 0xd2, 0x04, 0xb0, 0x00, 0x01, 0x02, 0x76,
+ 0x04, 0x4c, 0x00, 0x01, 0x01, 0xc2, 0x04, 0x4c, 0x00, 0x01, 0x01, 0xd2,
+ 0x03, 0xb6, 0x00, 0x01, 0x01, 0xc2, 0x03, 0x52, 0x00, 0x01, 0x01, 0xc2,
+ 0x05, 0x46, 0x00, 0x01, 0x01, 0xd2, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xc2,
+ 0x03, 0x52, 0x00, 0x01, 0x01, 0xc2, 0x06, 0x40, 0x00, 0x01, 0x01, 0xd2,
+ 0x05, 0xaa, 0x00, 0x01, 0x01, 0xc2, 0x05, 0x78, 0x00, 0x01, 0x00, 0x6c,
+ 0x05, 0x78, 0x00, 0x01, 0x00, 0x6c, 0x05, 0x78, 0x00, 0x01, 0x01, 0xc2,
+ 0x05, 0x78, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x0e, 0x00, 0x01, 0x00, 0xe1,
+ 0x06, 0x0e, 0x00, 0x01, 0x02, 0xe6, 0x06, 0x0e, 0x00, 0x01, 0x00, 0xf7,
+ 0x06, 0xa4, 0x00, 0x01, 0x00, 0xf7, 0x06, 0xa4, 0x00, 0x01, 0x02, 0x76,
+ 0x05, 0xdc, 0x00, 0x01, 0x00, 0xe1, 0x06, 0x0e, 0x00, 0x01, 0x00, 0xe1,
+ 0x06, 0x0e, 0x00, 0x01, 0x01, 0xc2, 0x05, 0x78, 0x00, 0x01, 0x00, 0xe1,
+ 0x06, 0xa4, 0x00, 0x01, 0x00, 0xe1, 0x06, 0xa4, 0x00, 0x01, 0x01, 0xc2,
+ 0x05, 0x78, 0x00, 0x01, 0x00, 0xe1, 0x06, 0xa4, 0x00, 0x01, 0x00, 0xe1,
+ 0x06, 0xa4, 0x00, 0x01, 0x01, 0xc2, 0x05, 0x78, 0x00, 0x01, 0x00, 0xf7,
+ 0x08, 0x66, 0x00, 0x01, 0x00, 0xf7, 0x08, 0x66, 0x00, 0x01, 0x04, 0x42,
+ 0x08, 0x34, 0x00, 0x01, 0x01, 0x31, 0x08, 0x34, 0x00, 0x01, 0x01, 0x31,
+ 0x08, 0x34, 0x00, 0x01, 0x04, 0x42, 0x08, 0x66, 0x00, 0x01, 0x01, 0x31,
+ 0x08, 0x66, 0x00, 0x01, 0x01, 0x31, 0x08, 0x66, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0x14, 0x00, 0x01, 0x01, 0x31, 0x06, 0x72, 0x00, 0x01, 0x01, 0x31,
+ 0x06, 0x72, 0x00, 0x01, 0x02, 0x49, 0x02, 0xee, 0x00, 0x01, 0x01, 0x0d,
+ 0x04, 0x1a, 0x00, 0x01, 0x01, 0x0d, 0x04, 0x1a, 0x00, 0x01, 0x02, 0x49,
+ 0x02, 0xee, 0x00, 0x01, 0x01, 0x0d, 0x04, 0x1a, 0x00, 0x01, 0x01, 0x0d,
+ 0x04, 0x1a, 0x00, 0x01, 0x02, 0x76, 0x03, 0xe8, 0x00, 0x01, 0x01, 0x0d,
+ 0x05, 0x14, 0x00, 0x01, 0x01, 0x0d, 0x05, 0x14, 0x00, 0x02, 0x00, 0x06,
+ 0x10, 0xfc, 0x11, 0x06, 0x00, 0x00, 0x11, 0x08, 0x11, 0x19, 0x00, 0x0b,
+ 0x11, 0x35, 0x11, 0x3d, 0x00, 0x1d, 0x11, 0x3f, 0x11, 0x3f, 0x00, 0x26,
+ 0x11, 0x52, 0x11, 0xab, 0x00, 0x27, 0x11, 0xb9, 0x12, 0x0d, 0x00, 0x81,
+ 0x00, 0x02, 0x00, 0x01, 0x11, 0x4a, 0x11, 0x51, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e,
+ 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc,
+ 0x04, 0xb0, 0x00, 0x01, 0x01, 0xcc, 0x04, 0xb0, 0x00, 0x01, 0x00, 0x20,
+ 0x00, 0x1a, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x04,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0xa9, 0x00, 0x02, 0x00, 0x09, 0x02, 0xc7, 0x02, 0xca,
+ 0x00, 0x00, 0x02, 0xcd, 0x02, 0xd1, 0x00, 0x04, 0x02, 0xd4, 0x02, 0xd7,
+ 0x00, 0x09, 0x02, 0xda, 0x02, 0xe4, 0x00, 0x0d, 0x02, 0xea, 0x02, 0xed,
+ 0x00, 0x18, 0x02, 0xf8, 0x02, 0xfa, 0x00, 0x1c, 0x02, 0xfe, 0x02, 0xff,
+ 0x00, 0x1f, 0x03, 0x03, 0x03, 0x03, 0x00, 0x21, 0x03, 0x06, 0x03, 0x06,
+ 0x00, 0x22, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x94,
+ 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa6,
+ 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb8,
+ 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xca,
+ 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xdc,
+ 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xee,
+ 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x01, 0x12,
+ 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x01, 0x1e, 0x00, 0x00, 0x01, 0x24,
+ 0x00, 0x00, 0x01, 0x2a, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x01, 0x36,
+ 0x00, 0x00, 0x01, 0x3c, 0x00, 0x00, 0x01, 0x42, 0x00, 0x00, 0x01, 0x48,
+ 0x00, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x01, 0x54, 0x00, 0x00, 0x01, 0x5a,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xfe, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xfe, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x35, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff,
+ 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0x05, 0x8c, 0x04, 0xb6,
+ 0x00, 0x01, 0x05, 0x94, 0x00, 0x0c, 0x00, 0x95, 0x01, 0x2c, 0x01, 0x32,
+ 0x01, 0x38, 0x01, 0x3e, 0x01, 0x44, 0x01, 0x4a, 0x01, 0x50, 0x01, 0x56,
+ 0x01, 0x5c, 0x01, 0x62, 0x01, 0x68, 0x01, 0x6e, 0x01, 0x74, 0x01, 0x7a,
+ 0x01, 0x80, 0x01, 0x86, 0x01, 0x8c, 0x01, 0x92, 0x01, 0x98, 0x01, 0x9e,
+ 0x01, 0xa4, 0x01, 0xaa, 0x01, 0xb0, 0x01, 0xb6, 0x01, 0xbc, 0x01, 0xc2,
+ 0x01, 0xc8, 0x01, 0xce, 0x01, 0xd4, 0x01, 0xda, 0x01, 0xe0, 0x01, 0xe6,
+ 0x01, 0xec, 0x01, 0xf2, 0x01, 0xf8, 0x01, 0xfe, 0x02, 0x04, 0x02, 0x0a,
+ 0x02, 0x10, 0x02, 0x16, 0x02, 0x1c, 0x02, 0x22, 0x02, 0x28, 0x02, 0x2e,
+ 0x02, 0x34, 0x02, 0x3a, 0x02, 0x40, 0x02, 0x46, 0x02, 0x4c, 0x02, 0x52,
+ 0x02, 0x58, 0x02, 0x5e, 0x02, 0x64, 0x02, 0x6a, 0x02, 0x70, 0x02, 0x76,
+ 0x02, 0x7c, 0x02, 0x82, 0x02, 0x88, 0x02, 0x8e, 0x02, 0x94, 0x02, 0x9a,
+ 0x02, 0xa0, 0x02, 0xa6, 0x02, 0xac, 0x02, 0xb2, 0x02, 0xb8, 0x02, 0xbe,
+ 0x02, 0xc4, 0x02, 0xca, 0x02, 0xd0, 0x02, 0xd6, 0x02, 0xdc, 0x02, 0xe2,
+ 0x02, 0xe8, 0x02, 0xee, 0x02, 0xf4, 0x02, 0xfa, 0x03, 0x00, 0x03, 0x06,
+ 0x03, 0x0c, 0x03, 0x12, 0x03, 0x18, 0x03, 0x1e, 0x03, 0x24, 0x03, 0x2a,
+ 0x03, 0x30, 0x03, 0x36, 0x03, 0x3c, 0x03, 0x42, 0x03, 0x48, 0x03, 0x4e,
+ 0x03, 0x54, 0x03, 0x5a, 0x03, 0x60, 0x03, 0x66, 0x03, 0x6c, 0x03, 0x72,
+ 0x03, 0x78, 0x03, 0x7e, 0x03, 0x84, 0x03, 0x8a, 0x03, 0x90, 0x03, 0x96,
+ 0x03, 0x9c, 0x03, 0xa2, 0x03, 0xa8, 0x03, 0xae, 0x03, 0xb4, 0x03, 0xba,
+ 0x03, 0xc0, 0x03, 0xc6, 0x03, 0xcc, 0x03, 0xd2, 0x03, 0xd8, 0x03, 0xde,
+ 0x03, 0xe4, 0x03, 0xea, 0x03, 0xf0, 0x03, 0xf6, 0x03, 0xfc, 0x04, 0x02,
+ 0x04, 0x08, 0x04, 0x0e, 0x04, 0x14, 0x04, 0x1a, 0x04, 0x20, 0x04, 0x26,
+ 0x04, 0x2c, 0x04, 0x32, 0x04, 0x38, 0x04, 0x3e, 0x04, 0x44, 0x04, 0x4a,
+ 0x04, 0x50, 0x04, 0x56, 0x04, 0x5c, 0x04, 0x62, 0x04, 0x68, 0x04, 0x6e,
+ 0x04, 0x74, 0x04, 0x7a, 0x04, 0x80, 0x04, 0x86, 0x04, 0x8c, 0x04, 0x92,
+ 0x04, 0x98, 0x04, 0x9e, 0x04, 0xa4, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0,
+ 0x00, 0x02, 0x00, 0x23, 0x00, 0x24, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x44,
+ 0x00, 0x5d, 0x00, 0x1a, 0x00, 0x9a, 0x00, 0x9a, 0x00, 0x34, 0x00, 0xba,
+ 0x00, 0xba, 0x00, 0x35, 0x00, 0xc6, 0x00, 0xc7, 0x00, 0x36, 0x00, 0xd0,
+ 0x00, 0xd1, 0x00, 0x38, 0x00, 0xf3, 0x00, 0xf3, 0x00, 0x3a, 0x01, 0x28,
+ 0x01, 0x29, 0x00, 0x3b, 0x01, 0x41, 0x01, 0x41, 0x00, 0x3d, 0x01, 0x48,
+ 0x01, 0x48, 0x00, 0x3e, 0x01, 0x51, 0x01, 0x52, 0x00, 0x3f, 0x01, 0x59,
+ 0x01, 0x59, 0x00, 0x41, 0x01, 0x61, 0x01, 0x61, 0x00, 0x42, 0x01, 0x79,
+ 0x01, 0x7b, 0x00, 0x43, 0x02, 0x12, 0x02, 0x12, 0x00, 0x46, 0x02, 0x16,
+ 0x02, 0x16, 0x00, 0x47, 0x02, 0x1b, 0x02, 0x1b, 0x00, 0x48, 0x02, 0x1d,
+ 0x02, 0x1d, 0x00, 0x49, 0x02, 0x2a, 0x02, 0x2a, 0x00, 0x4a, 0x02, 0x37,
+ 0x02, 0x37, 0x00, 0x4b, 0x02, 0x54, 0x02, 0x54, 0x00, 0x4c, 0x05, 0x23,
+ 0x05, 0x23, 0x00, 0x4d, 0x05, 0x5a, 0x05, 0x63, 0x00, 0x4e, 0x0e, 0x38,
+ 0x0e, 0x3a, 0x00, 0x58, 0x0e, 0x3d, 0x0e, 0x3e, 0x00, 0x5b, 0x0e, 0x44,
+ 0x0e, 0x44, 0x00, 0x5d, 0x0e, 0x48, 0x0e, 0x49, 0x00, 0x5e, 0x0e, 0x62,
+ 0x0e, 0x65, 0x00, 0x60, 0x0e, 0x6b, 0x0e, 0x75, 0x00, 0x64, 0x0e, 0x78,
+ 0x0e, 0x81, 0x00, 0x6f, 0x0e, 0x83, 0x0e, 0x87, 0x00, 0x79, 0x0e, 0x8c,
+ 0x0e, 0x8f, 0x00, 0x7e, 0x0e, 0x96, 0x0e, 0xa2, 0x00, 0x82, 0x0e, 0xa4,
+ 0x0e, 0xa8, 0x00, 0x8f, 0x11, 0x1c, 0x11, 0x1c, 0x00, 0x94, 0x00, 0x01,
+ 0x00, 0x02, 0x0f, 0x11, 0x0f, 0x13, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0a,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01,
+ 0x00, 0x00, 0x05, 0xf0, 0x00, 0x01, 0x00, 0x62, 0x00, 0x4e, 0x00, 0x01,
+ 0x00, 0x6a, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x12, 0x00, 0x18, 0x00, 0x1e,
+ 0x00, 0x24, 0x00, 0x2a, 0x00, 0x30, 0x00, 0x36, 0x00, 0x3c, 0x00, 0x01,
+ 0x02, 0x0f, 0x06, 0x14, 0x00, 0x01, 0x02, 0xa1, 0x07, 0x6d, 0x00, 0x01,
+ 0x02, 0x53, 0x06, 0x14, 0x00, 0x01, 0x01, 0x02, 0x06, 0x14, 0x00, 0x01,
+ 0x02, 0x34, 0x06, 0x14, 0x00, 0x01, 0x02, 0x3d, 0x06, 0x14, 0x00, 0x01,
+ 0x02, 0xa1, 0x07, 0x50, 0x00, 0x01, 0x03, 0x97, 0x07, 0x89, 0x00, 0x01,
+ 0x00, 0x08, 0x00, 0xc3, 0x00, 0xd0, 0x00, 0xd5, 0x00, 0xed, 0x01, 0x0f,
+ 0x01, 0x2d, 0x05, 0x5a, 0x05, 0x5b, 0x00, 0x01, 0x00, 0x02, 0x02, 0xb1,
+ 0x02, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0x03, 0x8c, 0x02, 0xd6, 0x00, 0x01, 0x03, 0x92, 0x00, 0x0c,
+ 0x00, 0x59, 0x00, 0xb4, 0x00, 0xba, 0x00, 0xc0, 0x00, 0xc6, 0x00, 0xcc,
+ 0x00, 0xd2, 0x00, 0xd8, 0x00, 0xde, 0x00, 0xe4, 0x00, 0xea, 0x00, 0xf0,
+ 0x00, 0xf6, 0x00, 0xfc, 0x01, 0x02, 0x01, 0x08, 0x01, 0x0e, 0x01, 0x14,
+ 0x01, 0x1a, 0x01, 0x20, 0x01, 0x26, 0x01, 0x2c, 0x01, 0x32, 0x01, 0x38,
+ 0x01, 0x3e, 0x01, 0x44, 0x01, 0x4a, 0x01, 0x50, 0x01, 0x56, 0x01, 0x5c,
+ 0x01, 0x62, 0x01, 0x68, 0x01, 0x6e, 0x01, 0x74, 0x01, 0x7a, 0x01, 0x80,
+ 0x01, 0x86, 0x01, 0x8c, 0x01, 0x92, 0x01, 0x98, 0x01, 0x9e, 0x01, 0xa4,
+ 0x01, 0xaa, 0x01, 0xb0, 0x01, 0xb6, 0x01, 0xbc, 0x01, 0xc2, 0x01, 0xc8,
+ 0x01, 0xce, 0x01, 0xd4, 0x01, 0xda, 0x01, 0xe0, 0x01, 0xe6, 0x01, 0xec,
+ 0x01, 0xf2, 0x01, 0xf8, 0x01, 0xfe, 0x02, 0x04, 0x02, 0x0a, 0x02, 0x10,
+ 0x02, 0x16, 0x02, 0x1c, 0x02, 0x22, 0x02, 0x28, 0x02, 0x2e, 0x02, 0x34,
+ 0x02, 0x3a, 0x02, 0x40, 0x02, 0x46, 0x02, 0x4c, 0x02, 0x52, 0x02, 0x58,
+ 0x02, 0x5e, 0x02, 0x64, 0x02, 0x6a, 0x02, 0x70, 0x02, 0x76, 0x02, 0x7c,
+ 0x02, 0x82, 0x02, 0x88, 0x02, 0x8e, 0x02, 0x94, 0x02, 0x9a, 0x02, 0xa0,
+ 0x02, 0xa6, 0x02, 0xac, 0x02, 0xb2, 0x02, 0xb8, 0x02, 0xbe, 0x02, 0xc4,
+ 0x00, 0x01, 0x04, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf7, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0d, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5e, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xa3, 0x00, 0x00, 0x00, 0x01, 0x02, 0x77, 0x00, 0x00,
+ 0x00, 0x01, 0x03, 0x6f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x28, 0x00, 0x00, 0x00, 0x01, 0x02, 0x53, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x00, 0xfa, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x01, 0xf6, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe1, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0x03, 0x6f, 0x00, 0x00, 0x00, 0x01, 0x04, 0x7f, 0xfe, 0x80,
+ 0x00, 0x01, 0x03, 0x6f, 0xfe, 0x80, 0x00, 0x01, 0x02, 0x53, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x7d, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x77, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x53, 0x00, 0x00, 0x00, 0x01, 0x02, 0x47, 0xfe, 0x52,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x46, 0x00, 0x00, 0x00, 0x01, 0x01, 0x95, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x16, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0f, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x34, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xe1, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x05, 0xd5, 0x00, 0x00,
+ 0x00, 0x01, 0x04, 0xec, 0x00, 0x00, 0x00, 0x01, 0x05, 0x96, 0x00, 0x00,
+ 0x00, 0x01, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x01, 0x02, 0xe8, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x85, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0d, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5e, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xf6, 0x00, 0x00, 0x00, 0x01, 0x01, 0x69, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x3d, 0xfe, 0x52, 0x00, 0x01, 0x00, 0x59, 0x00, 0x24,
+ 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x2b, 0x00, 0x2c, 0x00, 0x30,
+ 0x00, 0x31, 0x00, 0x32, 0x00, 0x36, 0x00, 0x38, 0x00, 0x3d, 0x00, 0x44,
+ 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x4b, 0x00, 0x4c, 0x00, 0x50,
+ 0x00, 0x51, 0x00, 0x52, 0x00, 0x56, 0x00, 0x58, 0x00, 0x5d, 0x00, 0x8e,
+ 0x00, 0x8f, 0x00, 0x90, 0x00, 0x91, 0x00, 0x9a, 0x00, 0xae, 0x00, 0xaf,
+ 0x00, 0xb0, 0x00, 0xb1, 0x00, 0xba, 0x00, 0xc3, 0x00, 0xc6, 0x00, 0xc7,
+ 0x00, 0xd5, 0x00, 0xea, 0x00, 0xeb, 0x00, 0xec, 0x00, 0xed, 0x00, 0xee,
+ 0x00, 0xef, 0x00, 0xf2, 0x00, 0xf3, 0x01, 0x0f, 0x01, 0x2d, 0x01, 0x48,
+ 0x01, 0x51, 0x01, 0x52, 0x01, 0x59, 0x01, 0x61, 0x01, 0x79, 0x01, 0x7a,
+ 0x01, 0x7b, 0x01, 0x91, 0x01, 0x92, 0x01, 0xca, 0x01, 0xcb, 0x01, 0xcc,
+ 0x01, 0xcd, 0x02, 0x12, 0x02, 0x16, 0x02, 0x1b, 0x02, 0x1d, 0x02, 0x2a,
+ 0x02, 0x37, 0x02, 0x54, 0x05, 0x7e, 0x05, 0x7f, 0x06, 0x18, 0x06, 0x19,
+ 0x0e, 0x38, 0x0e, 0x44, 0x0e, 0x6c, 0x0e, 0x6d, 0x0e, 0x6e, 0x0e, 0x6f,
+ 0x0e, 0x7e, 0x0e, 0x7f, 0x0e, 0x9c, 0x0e, 0x9d, 0x0e, 0xa0, 0x0e, 0xa1,
+ 0x0e, 0xa2, 0x0e, 0xa7, 0x11, 0x1c, 0x11, 0xb8, 0x00, 0x01, 0x00, 0x01,
+ 0x02, 0xd8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0xfe, 0x48,
+ 0x00, 0x00, 0x00, 0x01, 0x0f, 0xba, 0x0d, 0x8e, 0x00, 0x01, 0x0f, 0xf4,
+ 0x00, 0x0c, 0x01, 0xb0, 0x03, 0x62, 0x03, 0x68, 0x03, 0x6e, 0x03, 0x74,
+ 0x03, 0x7a, 0x03, 0x80, 0x03, 0x86, 0x03, 0x8c, 0x03, 0x92, 0x03, 0x98,
+ 0x03, 0x9e, 0x03, 0xa4, 0x03, 0xaa, 0x03, 0xb0, 0x03, 0xb6, 0x03, 0xbc,
+ 0x03, 0xc2, 0x03, 0xc8, 0x03, 0xce, 0x03, 0xd4, 0x03, 0xda, 0x03, 0xe0,
+ 0x03, 0xe6, 0x03, 0xec, 0x03, 0xf2, 0x03, 0xf8, 0x03, 0xfe, 0x04, 0x04,
+ 0x04, 0x0a, 0x04, 0x10, 0x04, 0x16, 0x04, 0x1c, 0x04, 0x22, 0x04, 0x28,
+ 0x04, 0x2e, 0x04, 0x34, 0x04, 0x3a, 0x04, 0x40, 0x04, 0x46, 0x04, 0x4c,
+ 0x04, 0x52, 0x04, 0x58, 0x04, 0x5e, 0x04, 0x64, 0x04, 0x6a, 0x04, 0x70,
+ 0x04, 0x76, 0x04, 0x7c, 0x04, 0x82, 0x04, 0x88, 0x04, 0x8e, 0x04, 0x94,
+ 0x04, 0x9a, 0x04, 0xa0, 0x04, 0xa6, 0x04, 0xac, 0x04, 0xb2, 0x04, 0xb8,
+ 0x04, 0xbe, 0x04, 0xc4, 0x04, 0xca, 0x04, 0xd0, 0x04, 0xd6, 0x04, 0xdc,
+ 0x04, 0xe2, 0x04, 0xe8, 0x04, 0xee, 0x04, 0xf4, 0x04, 0xfa, 0x05, 0x00,
+ 0x05, 0x06, 0x05, 0x0c, 0x05, 0x12, 0x05, 0x18, 0x05, 0x1e, 0x05, 0x24,
+ 0x05, 0x2a, 0x05, 0x30, 0x05, 0x36, 0x05, 0x3c, 0x05, 0x42, 0x05, 0x48,
+ 0x05, 0x4e, 0x05, 0x54, 0x05, 0x5a, 0x05, 0x60, 0x05, 0x66, 0x05, 0x6c,
+ 0x05, 0x72, 0x05, 0x78, 0x05, 0x7e, 0x05, 0x84, 0x05, 0x8a, 0x05, 0x90,
+ 0x05, 0x96, 0x05, 0x9c, 0x05, 0xa2, 0x05, 0xa8, 0x05, 0xae, 0x05, 0xb4,
+ 0x05, 0xba, 0x05, 0xc0, 0x05, 0xc6, 0x05, 0xcc, 0x05, 0xd2, 0x05, 0xd8,
+ 0x05, 0xde, 0x05, 0xe4, 0x05, 0xea, 0x05, 0xf0, 0x05, 0xf6, 0x05, 0xfc,
+ 0x06, 0x02, 0x06, 0x08, 0x06, 0x0e, 0x06, 0x14, 0x06, 0x1a, 0x06, 0x20,
+ 0x06, 0x26, 0x06, 0x2c, 0x06, 0x32, 0x06, 0x38, 0x06, 0x3e, 0x06, 0x44,
+ 0x06, 0x4a, 0x06, 0x50, 0x06, 0x56, 0x06, 0x5c, 0x06, 0x62, 0x06, 0x68,
+ 0x06, 0x6e, 0x06, 0x74, 0x06, 0x7a, 0x06, 0x80, 0x06, 0x86, 0x06, 0x8c,
+ 0x06, 0x92, 0x06, 0x98, 0x06, 0x9e, 0x06, 0xa4, 0x06, 0xaa, 0x06, 0xb0,
+ 0x06, 0xb6, 0x06, 0xbc, 0x06, 0xc2, 0x06, 0xc8, 0x06, 0xce, 0x06, 0xd4,
+ 0x06, 0xda, 0x06, 0xe0, 0x06, 0xe6, 0x06, 0xec, 0x06, 0xf2, 0x06, 0xf8,
+ 0x06, 0xfe, 0x07, 0x04, 0x07, 0x0a, 0x07, 0x10, 0x07, 0x16, 0x07, 0x1c,
+ 0x07, 0x22, 0x07, 0x28, 0x07, 0x2e, 0x07, 0x34, 0x07, 0x3a, 0x07, 0x40,
+ 0x07, 0x46, 0x07, 0x4c, 0x07, 0x52, 0x07, 0x58, 0x07, 0x5e, 0x07, 0x64,
+ 0x07, 0x6a, 0x07, 0x70, 0x07, 0x76, 0x07, 0x7c, 0x07, 0x82, 0x07, 0x88,
+ 0x07, 0x8e, 0x07, 0x94, 0x07, 0x9a, 0x07, 0xa0, 0x07, 0xa6, 0x07, 0xac,
+ 0x07, 0xb2, 0x07, 0xb8, 0x07, 0xbe, 0x07, 0xc4, 0x07, 0xca, 0x07, 0xd0,
+ 0x07, 0xd6, 0x07, 0xdc, 0x07, 0xe2, 0x07, 0xe8, 0x07, 0xee, 0x07, 0xf4,
+ 0x07, 0xfa, 0x08, 0x00, 0x08, 0x06, 0x08, 0x0c, 0x08, 0x12, 0x08, 0x18,
+ 0x08, 0x1e, 0x08, 0x24, 0x08, 0x2a, 0x08, 0x30, 0x08, 0x36, 0x08, 0x3c,
+ 0x08, 0x42, 0x08, 0x48, 0x08, 0x4e, 0x08, 0x54, 0x08, 0x5a, 0x08, 0x60,
+ 0x08, 0x66, 0x08, 0x6c, 0x08, 0x72, 0x08, 0x78, 0x08, 0x7e, 0x08, 0x84,
+ 0x08, 0x8a, 0x08, 0x90, 0x08, 0x96, 0x08, 0x9c, 0x08, 0xa2, 0x08, 0xa8,
+ 0x08, 0xae, 0x08, 0xb4, 0x08, 0xba, 0x08, 0xc0, 0x08, 0xc6, 0x08, 0xcc,
+ 0x08, 0xd2, 0x08, 0xd8, 0x08, 0xde, 0x08, 0xe4, 0x08, 0xea, 0x08, 0xf0,
+ 0x08, 0xf6, 0x08, 0xfc, 0x09, 0x02, 0x09, 0x08, 0x09, 0x0e, 0x09, 0x14,
+ 0x09, 0x1a, 0x09, 0x20, 0x09, 0x26, 0x09, 0x2c, 0x09, 0x32, 0x09, 0x38,
+ 0x09, 0x3e, 0x09, 0x44, 0x09, 0x4a, 0x09, 0x50, 0x09, 0x56, 0x09, 0x5c,
+ 0x09, 0x62, 0x09, 0x68, 0x09, 0x6e, 0x09, 0x74, 0x09, 0x7a, 0x09, 0x80,
+ 0x09, 0x86, 0x09, 0x8c, 0x09, 0x92, 0x09, 0x98, 0x09, 0x9e, 0x09, 0xa4,
+ 0x09, 0xaa, 0x09, 0xb0, 0x09, 0xb6, 0x09, 0xbc, 0x09, 0xc2, 0x09, 0xc8,
+ 0x09, 0xce, 0x09, 0xd4, 0x09, 0xda, 0x09, 0xe0, 0x09, 0xe6, 0x09, 0xec,
+ 0x09, 0xf2, 0x09, 0xf8, 0x09, 0xfe, 0x0a, 0x04, 0x0a, 0x0a, 0x0a, 0x10,
+ 0x0a, 0x16, 0x0a, 0x1c, 0x0a, 0x22, 0x0a, 0x28, 0x0a, 0x2e, 0x0a, 0x34,
+ 0x0a, 0x3a, 0x0a, 0x40, 0x0a, 0x46, 0x0a, 0x4c, 0x0a, 0x52, 0x0a, 0x58,
+ 0x0a, 0x5e, 0x0a, 0x64, 0x0a, 0x6a, 0x0a, 0x70, 0x0a, 0x76, 0x0a, 0x7c,
+ 0x0a, 0x82, 0x0a, 0x88, 0x0a, 0x8e, 0x0a, 0x94, 0x0a, 0x9a, 0x0a, 0xa0,
+ 0x0a, 0xa6, 0x0a, 0xac, 0x0a, 0xb2, 0x0a, 0xb8, 0x0a, 0xbe, 0x0a, 0xc4,
+ 0x0a, 0xca, 0x0a, 0xd0, 0x0a, 0xd6, 0x0a, 0xdc, 0x0a, 0xe2, 0x0a, 0xe8,
+ 0x0a, 0xee, 0x0a, 0xf4, 0x0a, 0xfa, 0x0b, 0x00, 0x0b, 0x06, 0x0b, 0x0c,
+ 0x0b, 0x12, 0x0b, 0x18, 0x0b, 0x1e, 0x0b, 0x24, 0x0b, 0x2a, 0x0b, 0x30,
+ 0x0b, 0x36, 0x0b, 0x3c, 0x0b, 0x42, 0x0b, 0x48, 0x0b, 0x4e, 0x0b, 0x54,
+ 0x0b, 0x5a, 0x0b, 0x60, 0x0b, 0x66, 0x0b, 0x6c, 0x0b, 0x72, 0x0b, 0x78,
+ 0x0b, 0x7e, 0x0b, 0x84, 0x0b, 0x8a, 0x0b, 0x90, 0x0b, 0x96, 0x0b, 0x9c,
+ 0x0b, 0xa2, 0x0b, 0xa8, 0x0b, 0xae, 0x0b, 0xb4, 0x0b, 0xba, 0x0b, 0xc0,
+ 0x0b, 0xc6, 0x0b, 0xcc, 0x0b, 0xd2, 0x0b, 0xd8, 0x0b, 0xde, 0x0b, 0xe4,
+ 0x0b, 0xea, 0x0b, 0xf0, 0x0b, 0xf6, 0x0b, 0xfc, 0x0c, 0x02, 0x0c, 0x08,
+ 0x0c, 0x0e, 0x0c, 0x14, 0x0c, 0x1a, 0x0c, 0x20, 0x0c, 0x26, 0x0c, 0x2c,
+ 0x0c, 0x32, 0x0c, 0x38, 0x0c, 0x3e, 0x0c, 0x44, 0x0c, 0x4a, 0x0c, 0x50,
+ 0x0c, 0x56, 0x0c, 0x5c, 0x0c, 0x62, 0x0c, 0x68, 0x0c, 0x6e, 0x0c, 0x74,
+ 0x0c, 0x7a, 0x0c, 0x80, 0x0c, 0x86, 0x0c, 0x8c, 0x0c, 0x92, 0x0c, 0x98,
+ 0x0c, 0x9e, 0x0c, 0xa4, 0x0c, 0xaa, 0x0c, 0xb0, 0x0c, 0xb6, 0x0c, 0xbc,
+ 0x0c, 0xc2, 0x0c, 0xc8, 0x0c, 0xce, 0x0c, 0xd4, 0x0c, 0xda, 0x0c, 0xe0,
+ 0x0c, 0xe6, 0x0c, 0xec, 0x0c, 0xf2, 0x0c, 0xf8, 0x0c, 0xfe, 0x0d, 0x04,
+ 0x0d, 0x0a, 0x0d, 0x10, 0x0d, 0x16, 0x0d, 0x1c, 0x0d, 0x22, 0x0d, 0x28,
+ 0x0d, 0x2e, 0x0d, 0x34, 0x0d, 0x3a, 0x0d, 0x40, 0x0d, 0x46, 0x0d, 0x4c,
+ 0x0d, 0x52, 0x0d, 0x58, 0x0d, 0x5e, 0x0d, 0x64, 0x0d, 0x6a, 0x0d, 0x70,
+ 0x0d, 0x76, 0x0d, 0x7c, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x76, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x76, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf7, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xa1, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x0f, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x56, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1a, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xa9, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x02, 0x51, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa3, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x76, 0x00, 0x00, 0x00, 0x01, 0x03, 0x8f, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x85, 0x00, 0x00, 0x00, 0x01, 0x02, 0x33, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x77, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0f, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x71, 0x00, 0x00, 0x00, 0x01, 0x02, 0x60, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x28, 0x00, 0x00, 0x00, 0x01, 0x02, 0x53, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x03, 0x84, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x47, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x01, 0xee, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf3, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x25, 0x00, 0x00, 0x00, 0x01, 0x02, 0x23, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0f, 0x00, 0x00, 0x00, 0x01,
+ 0x04, 0x7f, 0xfe, 0x80, 0x00, 0x01, 0x03, 0x6f, 0xfe, 0x80, 0x00, 0x01,
+ 0x02, 0xa1, 0x00, 0x00, 0x00, 0x01, 0x02, 0x28, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x53, 0x00, 0x00, 0x00, 0x01, 0x02, 0x88, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x48, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x02, 0x34, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x71, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x28, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x7d, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x17, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x00, 0xfa, 0xfe, 0x7a, 0x00, 0x01,
+ 0x02, 0x23, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x77, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x53, 0x00, 0x00, 0x00, 0x01, 0x02, 0x47, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xf3, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x02, 0x76, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xa3, 0x00, 0x00, 0x00, 0x01, 0x02, 0x76, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x52, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x0f, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x02, 0x33, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x23, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x46, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x02, 0x8d, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x4b, 0x00, 0x00, 0x00, 0x01, 0x01, 0x95, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x18, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x02, 0x25, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x16, 0x00, 0x00, 0x00, 0x01, 0x02, 0x16, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x06, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x06, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa3, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x2c, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x2c, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x25, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x25, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xec, 0x00, 0x00, 0x00, 0x01, 0x01, 0x59, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x70, 0x00, 0x00, 0x00, 0x01, 0x01, 0xcb, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xfa, 0xfe, 0x52, 0x00, 0x01, 0x02, 0xa3, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x84, 0x00, 0x00, 0x00, 0x01, 0x03, 0x84, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x84, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x48, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x48, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x48, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x04, 0x18, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xfc, 0xfe, 0x52, 0x00, 0x01, 0x00, 0xff, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x24, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x5c, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x35, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x15, 0x00, 0x00, 0x00, 0x01, 0x01, 0xef, 0xfe, 0x52, 0x00, 0x01,
+ 0x00, 0xfa, 0xfe, 0x52, 0x00, 0x01, 0x00, 0xfa, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xbf, 0xfe, 0x52, 0x00, 0x01, 0x00, 0xfa, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xd9, 0xfe, 0x52, 0x00, 0x01, 0x01, 0xc2, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf3, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x02, 0x26, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0xfe, 0x52, 0x00, 0x01, 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0xfe, 0x52, 0x00, 0x01, 0x01, 0xe1, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0x84, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x84, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x24, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5f, 0xff, 0xf6, 0x00, 0x01, 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x66, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x22, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x47, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x84, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x97, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x97, 0xfe, 0x52, 0x00, 0x01, 0x03, 0x97, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xf3, 0xfe, 0x52, 0x00, 0x01, 0x04, 0x19, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd0, 0xfe, 0x52, 0x00, 0x01, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3e, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x0f, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0xb5, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe4, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x02, 0x18, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe3, 0x00, 0x00, 0x00, 0x01, 0x02, 0x06, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xb7, 0x00, 0x00, 0x00, 0x01, 0x02, 0x41, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x01, 0x85, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x76, 0x00, 0x00, 0x00, 0x01, 0x02, 0x76, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x76, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x18, 0x00, 0x00, 0x00, 0x01, 0x02, 0x29, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf3, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x01, 0xcb, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x02, 0x21, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01, 0x02, 0xa1, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x28, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa1, 0xfe, 0x89, 0x00, 0x01,
+ 0x02, 0x28, 0xfe, 0x89, 0x00, 0x01, 0x02, 0xa1, 0xfe, 0xbf, 0x00, 0x01,
+ 0x02, 0x28, 0xfe, 0xbf, 0x00, 0x01, 0x02, 0xa1, 0xfe, 0x74, 0x00, 0x01,
+ 0x02, 0x28, 0xfe, 0x74, 0x00, 0x01, 0x02, 0xa1, 0xfe, 0x15, 0x00, 0x01,
+ 0x02, 0x28, 0xfe, 0x15, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0x00, 0x00, 0x00, 0x01, 0x03, 0x37, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xb7, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf7, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0xd5, 0x00, 0x00, 0x00, 0x01, 0x02, 0xfd, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x01, 0xda, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xa7, 0x00, 0x00, 0x00, 0x01, 0x02, 0x94, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xda, 0x00, 0x00, 0x00, 0x01, 0x02, 0xe2, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd3, 0xfe, 0x52, 0x00, 0x01, 0x02, 0xbf, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x03, 0x2a, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x03, 0x08, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xad, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3a, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x02, 0xe2, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc4, 0x00, 0x00, 0x00, 0x01, 0x02, 0x7f, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x33, 0x00, 0x00, 0x00, 0x01, 0x03, 0xde, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xc7, 0x00, 0x00, 0x00, 0x01, 0x02, 0x7f, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc1, 0x00, 0x08, 0x00, 0x01, 0x02, 0x5a, 0x00, 0x07, 0x00, 0x01,
+ 0x01, 0x56, 0x00, 0x00, 0x00, 0x01, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x09, 0xfe, 0x52, 0x00, 0x01, 0x02, 0xaf, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x02, 0x71, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x56, 0x00, 0x00, 0x00, 0x01, 0x02, 0x56, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x18, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x02, 0xb5, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x77, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x1a, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x76, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x7c, 0xff, 0xe4, 0x00, 0x01, 0x02, 0x21, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x02, 0xf3, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x01, 0x02, 0xb5, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5f, 0x00, 0x00, 0x00, 0x01, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x34, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa5, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x51, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x77, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xb5, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x48, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x1e, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x5b, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x0f, 0xfe, 0x56, 0x00, 0x01, 0x01, 0xe3, 0x00, 0x00, 0x00, 0x01,
+ 0x04, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x6f, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0xc5, 0x00, 0x00, 0x00, 0x01, 0x03, 0x74, 0x00, 0x00, 0x00, 0x01,
+ 0x04, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x03, 0x6f, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x96, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x96, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1d, 0xff, 0xf6, 0x00, 0x01,
+ 0x03, 0x96, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1d, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x69, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x39, 0x00, 0x00, 0x00, 0x01, 0x01, 0x69, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x83, 0x00, 0x00, 0x00, 0x01, 0x01, 0x83, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x02, 0x85, 0x00, 0x00, 0x00, 0x01,
+ 0x04, 0xe3, 0x00, 0x00, 0x00, 0x01, 0x03, 0xaa, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01,
+ 0x03, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x03, 0x63, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xd6, 0x00, 0x00, 0x00, 0x01, 0x02, 0x47, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xab, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xbe, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01,
+ 0x01, 0xc4, 0xfe, 0x52, 0x00, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0xfe, 0x52, 0x00, 0x01, 0x02, 0x5b, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa9, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x62, 0x00, 0x00, 0x00, 0x01, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x02, 0x51, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xee, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0f, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0x4b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x11, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1a, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04, 0x51, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xa9, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa3, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xe9, 0x00, 0x00, 0x00, 0x01, 0x02, 0xb9, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xb9, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x69, 0x00, 0x00, 0x00, 0x01, 0x01, 0x68, 0xfe, 0x52, 0x00, 0x01,
+ 0x02, 0xb5, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x01,
+ 0x03, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd5, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x40, 0x00, 0x00, 0x00, 0x01, 0x02, 0x8c, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xfd, 0x00, 0x00, 0x00, 0x01, 0x02, 0x9a, 0x00, 0x00, 0x00, 0x01,
+ 0x04, 0x05, 0x00, 0x00, 0x00, 0x01, 0x02, 0xe6, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x8b, 0x00, 0x00, 0x00, 0x01, 0x02, 0x6e, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x37, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x02, 0x49, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x49, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x02, 0xfe, 0x52, 0x00, 0x01, 0x01, 0x62, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x01, 0x99, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0x3d, 0xfe, 0x52, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x13, 0x00, 0x1c,
+ 0x00, 0x00, 0x00, 0x24, 0x00, 0x3d, 0x00, 0x0a, 0x00, 0x44, 0x00, 0x5d,
+ 0x00, 0x24, 0x00, 0x8e, 0x00, 0x91, 0x00, 0x3e, 0x00, 0x9a, 0x00, 0x9a,
+ 0x00, 0x42, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0x43, 0x00, 0xae, 0x00, 0xb2,
+ 0x00, 0x44, 0x00, 0xba, 0x00, 0xba, 0x00, 0x49, 0x00, 0xc3, 0x00, 0xc3,
+ 0x00, 0x4a, 0x00, 0xc6, 0x00, 0xc7, 0x00, 0x4b, 0x00, 0xd0, 0x00, 0xd1,
+ 0x00, 0x4d, 0x00, 0xd5, 0x00, 0xd5, 0x00, 0x4f, 0x00, 0xe9, 0x00, 0xef,
+ 0x00, 0x50, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0x57, 0x00, 0xfa, 0x00, 0xfa,
+ 0x00, 0x59, 0x01, 0x0d, 0x01, 0x0d, 0x00, 0x5a, 0x01, 0x0f, 0x01, 0x0f,
+ 0x00, 0x5b, 0x01, 0x28, 0x01, 0x29, 0x00, 0x5c, 0x01, 0x2d, 0x01, 0x2d,
+ 0x00, 0x5e, 0x01, 0x41, 0x01, 0x41, 0x00, 0x5f, 0x01, 0x45, 0x01, 0x45,
+ 0x00, 0x60, 0x01, 0x48, 0x01, 0x48, 0x00, 0x61, 0x01, 0x4e, 0x01, 0x4e,
+ 0x00, 0x62, 0x01, 0x51, 0x01, 0x52, 0x00, 0x63, 0x01, 0x54, 0x01, 0x54,
+ 0x00, 0x65, 0x01, 0x59, 0x01, 0x59, 0x00, 0x66, 0x01, 0x61, 0x01, 0x61,
+ 0x00, 0x67, 0x01, 0x6c, 0x01, 0x6c, 0x00, 0x68, 0x01, 0x76, 0x01, 0x76,
+ 0x00, 0x69, 0x01, 0x79, 0x01, 0x7b, 0x00, 0x6a, 0x01, 0x91, 0x01, 0x92,
+ 0x00, 0x6d, 0x01, 0xca, 0x01, 0xcd, 0x00, 0x6f, 0x01, 0xf6, 0x01, 0xf8,
+ 0x00, 0x73, 0x02, 0x05, 0x02, 0x0c, 0x00, 0x76, 0x02, 0x0e, 0x02, 0x4a,
+ 0x00, 0x7e, 0x02, 0x4c, 0x02, 0x67, 0x00, 0xbb, 0x02, 0x69, 0x02, 0x6b,
+ 0x00, 0xd7, 0x02, 0x6d, 0x02, 0x6d, 0x00, 0xda, 0x03, 0x46, 0x03, 0x46,
+ 0x00, 0xdb, 0x03, 0x49, 0x03, 0x49, 0x00, 0xdc, 0x03, 0x4c, 0x03, 0x4c,
+ 0x00, 0xdd, 0x03, 0x88, 0x03, 0x88, 0x00, 0xde, 0x03, 0x9a, 0x03, 0x9a,
+ 0x00, 0xdf, 0x03, 0xea, 0x03, 0xeb, 0x00, 0xe0, 0x04, 0x06, 0x04, 0x07,
+ 0x00, 0xe2, 0x04, 0x22, 0x04, 0x22, 0x00, 0xe4, 0x04, 0x33, 0x04, 0x33,
+ 0x00, 0xe5, 0x04, 0x36, 0x04, 0x36, 0x00, 0xe6, 0x04, 0x7c, 0x04, 0x7d,
+ 0x00, 0xe7, 0x04, 0xba, 0x04, 0xbb, 0x00, 0xe9, 0x04, 0xbd, 0x04, 0xc2,
+ 0x00, 0xeb, 0x04, 0xc5, 0x04, 0xcd, 0x00, 0xf1, 0x04, 0xd1, 0x04, 0xd5,
+ 0x00, 0xfa, 0x04, 0xd9, 0x04, 0xde, 0x00, 0xff, 0x05, 0x23, 0x05, 0x23,
+ 0x01, 0x05, 0x05, 0x5a, 0x05, 0x63, 0x01, 0x06, 0x05, 0x7e, 0x05, 0x7f,
+ 0x01, 0x10, 0x06, 0x18, 0x06, 0x19, 0x01, 0x12, 0x06, 0x4a, 0x06, 0x4b,
+ 0x01, 0x14, 0x07, 0xec, 0x07, 0xec, 0x01, 0x16, 0x07, 0xf4, 0x07, 0xf7,
+ 0x01, 0x17, 0x07, 0xf9, 0x07, 0xfb, 0x01, 0x1b, 0x07, 0xfe, 0x07, 0xfe,
+ 0x01, 0x1e, 0x08, 0x01, 0x08, 0x06, 0x01, 0x1f, 0x08, 0x0d, 0x08, 0x0d,
+ 0x01, 0x25, 0x08, 0x11, 0x08, 0x11, 0x01, 0x26, 0x08, 0x15, 0x08, 0x16,
+ 0x01, 0x27, 0x08, 0x18, 0x08, 0x1a, 0x01, 0x29, 0x08, 0x1c, 0x08, 0x1c,
+ 0x01, 0x2c, 0x08, 0x1e, 0x08, 0x22, 0x01, 0x2d, 0x08, 0x25, 0x08, 0x28,
+ 0x01, 0x32, 0x0a, 0x1d, 0x0a, 0x1d, 0x01, 0x36, 0x0e, 0x2b, 0x0e, 0x2b,
+ 0x01, 0x37, 0x0e, 0x2d, 0x0e, 0x2e, 0x01, 0x38, 0x0e, 0x30, 0x0e, 0x41,
+ 0x01, 0x3a, 0x0e, 0x43, 0x0e, 0x45, 0x01, 0x4c, 0x0e, 0x48, 0x0e, 0x49,
+ 0x01, 0x4f, 0x0e, 0x62, 0x0e, 0x65, 0x01, 0x51, 0x0e, 0x67, 0x0e, 0x68,
+ 0x01, 0x55, 0x0e, 0x6a, 0x0e, 0x75, 0x01, 0x57, 0x0e, 0x78, 0x0e, 0x87,
+ 0x01, 0x63, 0x0e, 0x8c, 0x0e, 0x8f, 0x01, 0x73, 0x0e, 0x95, 0x0e, 0xa8,
+ 0x01, 0x77, 0x0f, 0x93, 0x0f, 0xa5, 0x01, 0x8b, 0x0f, 0xbd, 0x0f, 0xbd,
+ 0x01, 0x9e, 0x0f, 0xbf, 0x0f, 0xbf, 0x01, 0x9f, 0x0f, 0xf4, 0x0f, 0xfd,
+ 0x01, 0xa0, 0x11, 0x1c, 0x11, 0x1d, 0x01, 0xaa, 0x11, 0x34, 0x11, 0x34,
+ 0x01, 0xac, 0x11, 0x3e, 0x11, 0x3e, 0x01, 0xad, 0x11, 0x48, 0x11, 0x48,
+ 0x01, 0xae, 0x11, 0xb8, 0x11, 0xb8, 0x01, 0xaf, 0x00, 0x02, 0x00, 0x09,
+ 0x02, 0xc7, 0x02, 0xca, 0x00, 0x00, 0x02, 0xcd, 0x02, 0xd1, 0x00, 0x04,
+ 0x02, 0xd4, 0x02, 0xd7, 0x00, 0x09, 0x02, 0xda, 0x02, 0xe4, 0x00, 0x0d,
+ 0x02, 0xea, 0x02, 0xed, 0x00, 0x18, 0x02, 0xf8, 0x02, 0xfa, 0x00, 0x1c,
+ 0x02, 0xfe, 0x02, 0xff, 0x00, 0x1f, 0x03, 0x03, 0x03, 0x03, 0x00, 0x21,
+ 0x03, 0x06, 0x03, 0x06, 0x00, 0x22, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8e,
+ 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xa0,
+ 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xb2,
+ 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc4,
+ 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xd6,
+ 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe8,
+ 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xfa,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x0c,
+ 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x01, 0x1e,
+ 0x00, 0x00, 0x01, 0x24, 0x00, 0x00, 0x01, 0x2a, 0x00, 0x00, 0x01, 0x30,
+ 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x01, 0x3c, 0x00, 0x00, 0x01, 0x42,
+ 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x01, 0x54,
+ 0x00, 0x00, 0x01, 0x5a, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01,
+ 0xfe, 0x34, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xfe, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xfe, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x35, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01, 0xfe, 0x34, 0xff, 0xff, 0x00, 0x01,
+ 0x15, 0x68, 0x12, 0xca, 0x00, 0x01, 0x15, 0xb4, 0x00, 0x0c, 0x02, 0x53,
+ 0x04, 0xa8, 0x04, 0xae, 0x04, 0xb4, 0x04, 0xba, 0x04, 0xc0, 0x04, 0xc6,
+ 0x04, 0xcc, 0x04, 0xd2, 0x04, 0xd8, 0x04, 0xde, 0x04, 0xe4, 0x04, 0xea,
+ 0x04, 0xf0, 0x04, 0xf6, 0x04, 0xfc, 0x05, 0x02, 0x05, 0x08, 0x05, 0x0e,
+ 0x05, 0x14, 0x05, 0x1a, 0x05, 0x20, 0x05, 0x26, 0x05, 0x2c, 0x05, 0x32,
+ 0x05, 0x38, 0x05, 0x3e, 0x05, 0x44, 0x05, 0x4a, 0x05, 0x50, 0x05, 0x56,
+ 0x05, 0x5c, 0x05, 0x62, 0x05, 0x68, 0x05, 0x6e, 0x05, 0x74, 0x05, 0x7a,
+ 0x05, 0x80, 0x05, 0x88, 0x05, 0x8e, 0x05, 0x96, 0x05, 0x9c, 0x05, 0xa4,
+ 0x05, 0xaa, 0x05, 0xb0, 0x05, 0xb6, 0x05, 0xbc, 0x05, 0xc2, 0x05, 0xc8,
+ 0x05, 0xce, 0x05, 0xd4, 0x05, 0xda, 0x05, 0xe2, 0x05, 0xe8, 0x05, 0xee,
+ 0x05, 0xf4, 0x05, 0xfa, 0x06, 0x00, 0x06, 0x08, 0x06, 0x0e, 0x06, 0x14,
+ 0x06, 0x1a, 0x06, 0x20, 0x06, 0x26, 0x06, 0x2c, 0x06, 0x32, 0x06, 0x38,
+ 0x06, 0x3e, 0x06, 0x46, 0x06, 0x4c, 0x06, 0x52, 0x06, 0x5a, 0x06, 0x60,
+ 0x06, 0x66, 0x06, 0x6c, 0x06, 0x74, 0x06, 0x7a, 0x06, 0x80, 0x06, 0x86,
+ 0x06, 0x8c, 0x06, 0x92, 0x06, 0x98, 0x06, 0x9e, 0x06, 0xa4, 0x06, 0xaa,
+ 0x06, 0xb0, 0x06, 0xb6, 0x06, 0xbc, 0x06, 0xc2, 0x06, 0xc8, 0x06, 0xce,
+ 0x06, 0xd4, 0x06, 0xda, 0x06, 0xe0, 0x06, 0xe6, 0x06, 0xec, 0x06, 0xf2,
+ 0x06, 0xf8, 0x06, 0xfe, 0x07, 0x04, 0x07, 0x0a, 0x07, 0x10, 0x07, 0x16,
+ 0x07, 0x1c, 0x07, 0x22, 0x07, 0x28, 0x07, 0x2e, 0x07, 0x34, 0x07, 0x3a,
+ 0x07, 0x40, 0x07, 0x46, 0x07, 0x4c, 0x07, 0x52, 0x07, 0x58, 0x07, 0x5e,
+ 0x07, 0x64, 0x07, 0x6a, 0x07, 0x70, 0x07, 0x76, 0x07, 0x7c, 0x07, 0x82,
+ 0x07, 0x88, 0x07, 0x8e, 0x07, 0x94, 0x07, 0x9a, 0x07, 0xa0, 0x07, 0xa6,
+ 0x07, 0xac, 0x07, 0xb2, 0x07, 0xb8, 0x07, 0xbe, 0x07, 0xc4, 0x07, 0xca,
+ 0x07, 0xd0, 0x07, 0xd6, 0x07, 0xdc, 0x07, 0xe2, 0x07, 0xe8, 0x07, 0xee,
+ 0x07, 0xf6, 0x07, 0xfc, 0x08, 0x02, 0x08, 0x08, 0x08, 0x0e, 0x08, 0x14,
+ 0x08, 0x1a, 0x08, 0x22, 0x08, 0x28, 0x08, 0x2e, 0x08, 0x34, 0x08, 0x3a,
+ 0x08, 0x40, 0x08, 0x46, 0x08, 0x4c, 0x08, 0x52, 0x08, 0x58, 0x08, 0x5e,
+ 0x08, 0x64, 0x08, 0x6a, 0x08, 0x70, 0x08, 0x76, 0x08, 0x7c, 0x08, 0x82,
+ 0x08, 0x88, 0x08, 0x8e, 0x08, 0x94, 0x08, 0x9a, 0x08, 0xa0, 0x08, 0xa6,
+ 0x08, 0xac, 0x08, 0xb2, 0x08, 0xb8, 0x08, 0xc0, 0x08, 0xc6, 0x08, 0xcc,
+ 0x08, 0xd2, 0x08, 0xd8, 0x08, 0xde, 0x08, 0xe4, 0x08, 0xea, 0x08, 0xf0,
+ 0x08, 0xf6, 0x08, 0xfc, 0x09, 0x02, 0x09, 0x08, 0x09, 0x0e, 0x09, 0x14,
+ 0x09, 0x1a, 0x09, 0x20, 0x09, 0x26, 0x09, 0x2c, 0x09, 0x32, 0x09, 0x38,
+ 0x09, 0x3e, 0x09, 0x44, 0x09, 0x4a, 0x09, 0x50, 0x09, 0x56, 0x09, 0x5c,
+ 0x09, 0x62, 0x09, 0x68, 0x09, 0x6e, 0x09, 0x74, 0x09, 0x7a, 0x09, 0x80,
+ 0x09, 0x86, 0x09, 0x8c, 0x09, 0x92, 0x09, 0x98, 0x09, 0x9e, 0x09, 0xa4,
+ 0x09, 0xaa, 0x09, 0xb0, 0x09, 0xb6, 0x09, 0xbc, 0x09, 0xc2, 0x09, 0xc8,
+ 0x09, 0xce, 0x09, 0xd4, 0x09, 0xda, 0x09, 0xe0, 0x09, 0xe6, 0x09, 0xec,
+ 0x09, 0xf2, 0x09, 0xf8, 0x09, 0xfe, 0x0a, 0x04, 0x0a, 0x0a, 0x0a, 0x12,
+ 0x0a, 0x18, 0x0a, 0x1e, 0x0a, 0x24, 0x0a, 0x2a, 0x0a, 0x30, 0x0a, 0x36,
+ 0x0a, 0x3c, 0x0a, 0x42, 0x0a, 0x48, 0x0a, 0x4e, 0x0a, 0x54, 0x0a, 0x5a,
+ 0x0a, 0x60, 0x0a, 0x66, 0x0a, 0x6c, 0x0a, 0x72, 0x0a, 0x78, 0x0a, 0x7e,
+ 0x0a, 0x84, 0x0a, 0x8a, 0x0a, 0x90, 0x0a, 0x96, 0x0a, 0x9c, 0x0a, 0xa2,
+ 0x0a, 0xa8, 0x0a, 0xae, 0x0a, 0xb4, 0x0a, 0xba, 0x0a, 0xc0, 0x0a, 0xc6,
+ 0x0a, 0xcc, 0x0a, 0xd2, 0x0a, 0xd8, 0x0a, 0xde, 0x0a, 0xe4, 0x0a, 0xea,
+ 0x0a, 0xf0, 0x0a, 0xf6, 0x0a, 0xfc, 0x0b, 0x02, 0x0b, 0x08, 0x0b, 0x0e,
+ 0x0b, 0x14, 0x0b, 0x1a, 0x0b, 0x20, 0x0b, 0x26, 0x0b, 0x2c, 0x0b, 0x32,
+ 0x0b, 0x38, 0x0b, 0x3e, 0x0b, 0x44, 0x0b, 0x4a, 0x0b, 0x50, 0x0b, 0x56,
+ 0x0b, 0x5c, 0x0b, 0x62, 0x0b, 0x68, 0x0b, 0x6e, 0x0b, 0x74, 0x0b, 0x7a,
+ 0x0b, 0x80, 0x0b, 0x86, 0x0b, 0x8c, 0x0b, 0x92, 0x0b, 0x98, 0x0b, 0x9e,
+ 0x0b, 0xa4, 0x0b, 0xaa, 0x0b, 0xb0, 0x0b, 0xb6, 0x0b, 0xbc, 0x0b, 0xc2,
+ 0x0b, 0xc8, 0x0b, 0xce, 0x0b, 0xd4, 0x0b, 0xda, 0x0b, 0xe0, 0x0b, 0xe6,
+ 0x0b, 0xec, 0x0b, 0xf2, 0x0b, 0xf8, 0x0b, 0xfe, 0x0c, 0x04, 0x0c, 0x0a,
+ 0x0c, 0x10, 0x0c, 0x16, 0x0c, 0x1c, 0x0c, 0x22, 0x0c, 0x28, 0x0c, 0x2e,
+ 0x0c, 0x34, 0x0c, 0x3a, 0x0c, 0x40, 0x0c, 0x46, 0x0c, 0x4c, 0x0c, 0x52,
+ 0x0c, 0x58, 0x0c, 0x5e, 0x0c, 0x64, 0x0c, 0x6a, 0x0c, 0x70, 0x0c, 0x76,
+ 0x0c, 0x7c, 0x0c, 0x82, 0x0c, 0x88, 0x0c, 0x8e, 0x0c, 0x94, 0x0c, 0x9a,
+ 0x0c, 0xa0, 0x0c, 0xa6, 0x0c, 0xac, 0x0c, 0xb2, 0x0c, 0xb8, 0x0c, 0xbe,
+ 0x0c, 0xc4, 0x0c, 0xca, 0x0c, 0xd0, 0x0c, 0xd6, 0x0c, 0xdc, 0x0c, 0xe2,
+ 0x0c, 0xe8, 0x0c, 0xee, 0x0c, 0xf4, 0x0c, 0xfa, 0x0d, 0x00, 0x0d, 0x06,
+ 0x0d, 0x0c, 0x0d, 0x12, 0x0d, 0x18, 0x0d, 0x1e, 0x0d, 0x24, 0x0d, 0x2a,
+ 0x0d, 0x30, 0x0d, 0x36, 0x0d, 0x3c, 0x0d, 0x42, 0x0d, 0x48, 0x0d, 0x4e,
+ 0x0d, 0x54, 0x0d, 0x5a, 0x0d, 0x60, 0x0d, 0x66, 0x0d, 0x6c, 0x0d, 0x72,
+ 0x0d, 0x78, 0x0d, 0x7e, 0x0d, 0x84, 0x0d, 0x8a, 0x0d, 0x90, 0x0d, 0x96,
+ 0x0d, 0x9c, 0x0d, 0xa2, 0x0d, 0xa8, 0x0d, 0xae, 0x0d, 0xb4, 0x0d, 0xba,
+ 0x0d, 0xc0, 0x0d, 0xc6, 0x0d, 0xcc, 0x0d, 0xd2, 0x0d, 0xd8, 0x0d, 0xde,
+ 0x0d, 0xe4, 0x0d, 0xea, 0x0d, 0xf0, 0x0d, 0xf6, 0x0d, 0xfc, 0x0e, 0x02,
+ 0x0e, 0x08, 0x0e, 0x0e, 0x0e, 0x14, 0x0e, 0x1a, 0x0e, 0x20, 0x0e, 0x26,
+ 0x0e, 0x2c, 0x0e, 0x32, 0x0e, 0x38, 0x0e, 0x3e, 0x0e, 0x44, 0x0e, 0x4a,
+ 0x0e, 0x50, 0x0e, 0x56, 0x0e, 0x5c, 0x0e, 0x62, 0x0e, 0x68, 0x0e, 0x6e,
+ 0x0e, 0x74, 0x0e, 0x7a, 0x0e, 0x80, 0x0e, 0x86, 0x0e, 0x8c, 0x0e, 0x92,
+ 0x0e, 0x98, 0x0e, 0x9e, 0x0e, 0xa4, 0x0e, 0xaa, 0x0e, 0xb0, 0x0e, 0xb6,
+ 0x0e, 0xbc, 0x0e, 0xc2, 0x0e, 0xc8, 0x0e, 0xce, 0x0e, 0xd4, 0x0e, 0xda,
+ 0x0e, 0xe2, 0x0e, 0xe8, 0x0e, 0xee, 0x0e, 0xf4, 0x0e, 0xfa, 0x0f, 0x00,
+ 0x0f, 0x06, 0x0f, 0x0c, 0x0f, 0x12, 0x0f, 0x18, 0x0f, 0x1e, 0x0f, 0x26,
+ 0x0f, 0x2c, 0x0f, 0x32, 0x0f, 0x38, 0x0f, 0x3e, 0x0f, 0x44, 0x0f, 0x4a,
+ 0x0f, 0x50, 0x0f, 0x56, 0x0f, 0x5c, 0x0f, 0x62, 0x0f, 0x68, 0x0f, 0x6e,
+ 0x0f, 0x74, 0x0f, 0x7a, 0x0f, 0x80, 0x0f, 0x86, 0x0f, 0x8c, 0x0f, 0x92,
+ 0x0f, 0x98, 0x0f, 0x9e, 0x0f, 0xa4, 0x0f, 0xaa, 0x0f, 0xb0, 0x0f, 0xb6,
+ 0x0f, 0xbc, 0x0f, 0xc2, 0x0f, 0xc8, 0x0f, 0xce, 0x0f, 0xd4, 0x0f, 0xda,
+ 0x0f, 0xe0, 0x0f, 0xe6, 0x0f, 0xec, 0x0f, 0xf2, 0x0f, 0xf8, 0x0f, 0xfe,
+ 0x10, 0x04, 0x10, 0x0a, 0x10, 0x10, 0x10, 0x16, 0x10, 0x1c, 0x10, 0x22,
+ 0x10, 0x28, 0x10, 0x2e, 0x10, 0x34, 0x10, 0x3a, 0x10, 0x40, 0x10, 0x46,
+ 0x10, 0x4c, 0x10, 0x52, 0x10, 0x58, 0x10, 0x5e, 0x10, 0x64, 0x10, 0x6a,
+ 0x10, 0x72, 0x10, 0x78, 0x10, 0x7e, 0x10, 0x84, 0x10, 0x8a, 0x10, 0x90,
+ 0x10, 0x96, 0x10, 0x9c, 0x10, 0xa2, 0x10, 0xa8, 0x10, 0xae, 0x10, 0xb4,
+ 0x10, 0xba, 0x10, 0xc0, 0x10, 0xc6, 0x10, 0xcc, 0x10, 0xd2, 0x10, 0xd8,
+ 0x10, 0xde, 0x10, 0xe4, 0x10, 0xea, 0x10, 0xf2, 0x10, 0xf8, 0x10, 0xfe,
+ 0x11, 0x04, 0x11, 0x0a, 0x11, 0x10, 0x11, 0x16, 0x11, 0x1c, 0x11, 0x22,
+ 0x11, 0x28, 0x11, 0x2e, 0x11, 0x34, 0x11, 0x3c, 0x11, 0x42, 0x11, 0x48,
+ 0x11, 0x4e, 0x11, 0x54, 0x11, 0x5a, 0x11, 0x60, 0x11, 0x66, 0x11, 0x6c,
+ 0x11, 0x72, 0x11, 0x78, 0x11, 0x7e, 0x11, 0x84, 0x11, 0x8a, 0x11, 0x90,
+ 0x11, 0x96, 0x11, 0x9c, 0x11, 0xa2, 0x11, 0xa8, 0x11, 0xae, 0x11, 0xb4,
+ 0x11, 0xba, 0x11, 0xc0, 0x11, 0xc6, 0x11, 0xcc, 0x11, 0xd2, 0x11, 0xd8,
+ 0x11, 0xde, 0x11, 0xe4, 0x11, 0xea, 0x11, 0xf0, 0x11, 0xf6, 0x11, 0xfc,
+ 0x12, 0x02, 0x12, 0x08, 0x12, 0x0e, 0x12, 0x14, 0x12, 0x1a, 0x12, 0x20,
+ 0x12, 0x26, 0x12, 0x2c, 0x12, 0x32, 0x12, 0x38, 0x12, 0x3e, 0x12, 0x44,
+ 0x12, 0x4a, 0x12, 0x50, 0x12, 0x56, 0x12, 0x5c, 0x12, 0x62, 0x12, 0x68,
+ 0x12, 0x6e, 0x12, 0x74, 0x12, 0x7a, 0x12, 0x80, 0x12, 0x86, 0x12, 0x8c,
+ 0x12, 0x92, 0x12, 0x98, 0x12, 0x9e, 0x12, 0xa4, 0x12, 0xaa, 0x12, 0xb0,
+ 0x12, 0xb6, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xf7, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa1,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x06, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x10, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x0f,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x0c,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3d,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x51, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x34,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x8f, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x85,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x33, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x77,
+ 0x05, 0xf0, 0x00, 0x02, 0x02, 0x0f, 0x04, 0x7b, 0x00, 0x23, 0x00, 0x01,
+ 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x02, 0x02, 0x60, 0x04, 0x7b, 0x00, 0x17,
+ 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x02, 0x02, 0x53, 0x04, 0x7b,
+ 0x00, 0x12, 0x00, 0x01, 0x01, 0xb0, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x2c,
+ 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x02,
+ 0x06, 0x2f, 0x00, 0x01, 0x01, 0x02, 0x06, 0x2f, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x84,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x02, 0x02, 0x34,
+ 0x04, 0x7b, 0x00, 0x0c, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0x30, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b, 0x00, 0x01,
+ 0x01, 0xef, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0, 0x00, 0x02,
+ 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x14, 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xf3, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x23, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x7f, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d, 0x05, 0xf0,
+ 0x00, 0x02, 0x02, 0x34, 0x04, 0x7b, 0x00, 0x1a, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x02, 0x02, 0x0f,
+ 0x04, 0x7b, 0x00, 0x23, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01,
+ 0x03, 0x4c, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x2f, 0x05, 0xf0, 0x00, 0x02,
+ 0x01, 0x00, 0x04, 0x7b, 0x00, 0x04, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x03, 0xab, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x34, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xb0, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x1f, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xf7, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x7d, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x1b, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x06, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x78, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x10, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x10, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xfb, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x41, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x79, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xef, 0x04, 0x7b,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x34, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x34, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x63, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x33, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x23, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x77, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x77, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x53, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x47, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xf3, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b,
+ 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x4b, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x0f, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x02, 0x06, 0x2f, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x3d, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x33, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x23, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x46, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x18, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x8d, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x02, 0x01, 0x9f, 0x04, 0x7b, 0x00, 0x03, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x16,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x16, 0x04, 0x7b, 0x00, 0x02, 0x02, 0x0f,
+ 0x04, 0x7c, 0x00, 0x08, 0x00, 0x01, 0x02, 0x06, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0x06, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x04, 0x7b, 0x00, 0x01,
+ 0x01, 0x02, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x2c, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0x2c, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01,
+ 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x01, 0x06, 0x2f, 0x00, 0x01,
+ 0x00, 0xec, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x59, 0x04, 0x7b, 0x00, 0x01,
+ 0x01, 0x70, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xcb, 0x05, 0xf0, 0x00, 0x01,
+ 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01,
+ 0x03, 0x84, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x01,
+ 0x03, 0x84, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x02,
+ 0x02, 0x34, 0x04, 0x7b, 0x00, 0x0e, 0x00, 0x01, 0x04, 0x18, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x9e, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xfa, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xfa, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x24, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x31, 0x04, 0x7b,
+ 0x00, 0x01, 0x01, 0x5b, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x01, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x15, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xef, 0x04, 0x7b,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xbf, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xd9, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xf3, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x21, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x26, 0x04, 0x7b,
+ 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x01, 0x84, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x01, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x84, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x01, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x24, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x0d, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x5f, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02, 0x06, 0x2f,
+ 0x00, 0x01, 0x02, 0x66, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x2c, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x84, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x01, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xf3, 0x05, 0xf0, 0x00, 0x01, 0x04, 0x19, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xd0, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x0f, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3e, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d, 0x05, 0xf0,
+ 0x00, 0x02, 0x02, 0x0f, 0x04, 0x7c, 0x00, 0x08, 0x00, 0x01, 0x02, 0x0a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d,
+ 0x05, 0xf0, 0x00, 0x01, 0x00, 0xf4, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5f,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x41, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x46,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe0, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x0a,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x31,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x35,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x2c,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe4, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x65,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x60,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x07, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3e,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3e, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5c,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa3, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x35, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x07,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02,
+ 0x06, 0x2f, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xc0, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xf4,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x51, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x10,
+ 0x05, 0xf0, 0x00, 0x01, 0x04, 0x59, 0x05, 0xf0, 0x00, 0x01, 0x04, 0x00,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x56, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1b,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x03, 0xe0,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x34, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x23,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xf7,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x34, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x30,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x18, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x85,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x6d,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0xd9, 0x05, 0xf0, 0x00, 0x01, 0x03, 0xd9,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x1c, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x2c,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x13,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x96,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x18, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x58,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x24, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x0a,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xaa, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x4b,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x3e, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x06,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x41, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x35,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xac, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xb7,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x41, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5a, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x18,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x23, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x13,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5a,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x10, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x4b,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x4b, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xd2,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xcd, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0x86, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xaa,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x35, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xef, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02,
+ 0x06, 0x2f, 0x00, 0x01, 0x01, 0x02, 0x06, 0x2f, 0x00, 0x01, 0x01, 0x02,
+ 0x06, 0x2f, 0x00, 0x01, 0x03, 0x94, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x8d,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0x15, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5a,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x5c, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x07,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xc1, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x0c,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xaa,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x2a, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd1,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xe0, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x3a,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xda, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xe0, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x3a,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xc5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd4,
+ 0x05, 0xfa, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3d,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xcf, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x52,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xe0, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x3e,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x35,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x35,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0xb1, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x0e,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x34,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x10, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5f,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xb7,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3d,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x0a, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x85,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xac,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x35,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xac, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x41,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe4,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xab, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x18,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x18,
+ 0x04, 0x83, 0x00, 0x01, 0x02, 0x18, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe3,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x06, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62,
+ 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfc, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xb7,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x41, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0x85, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x76,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x76, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x76,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xab, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe0,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x4e, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x4e,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x18, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x29,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x25, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x21,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0xf3, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xe1,
+ 0x04, 0x7b, 0x00, 0x01, 0x01, 0xcb, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfc,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xac,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xa1,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa1,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa1,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa1,
+ 0x05, 0xf0, 0x00, 0x01, 0x03, 0x97, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x37,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0xb7, 0x05, 0xf0, 0x00, 0x02, 0x02, 0xf7,
+ 0x05, 0xf0, 0x00, 0x16, 0x00, 0x01, 0x03, 0xd5, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0xfd, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x0f, 0x05, 0xf0, 0x00, 0x01,
+ 0x01, 0x98, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xa7, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0x94, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xda, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0xe2, 0x05, 0xe2, 0x00, 0x01, 0x02, 0xd3, 0x04, 0x7b, 0x00, 0x01,
+ 0x02, 0xbf, 0x05, 0xf0, 0x00, 0x02, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x0c,
+ 0x00, 0x01, 0x03, 0x2a, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x3c, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x08, 0x05, 0xe2, 0x00, 0x01, 0x02, 0xad, 0x05, 0xe2,
+ 0x00, 0x01, 0x02, 0x3a, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x0f, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xe2, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x82, 0x04, 0x44,
+ 0x00, 0x01, 0x02, 0x7f, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x33, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0xde, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xc7, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x7f, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xc1, 0x05, 0xe7,
+ 0x00, 0x01, 0x02, 0x5a, 0x05, 0xe7, 0x00, 0x01, 0x01, 0x56, 0x06, 0x31,
+ 0x00, 0x01, 0x02, 0xab, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x09, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xaf, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x0e, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x0c, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x0c, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x3d, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x18, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfd, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x77, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x76, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x7c, 0x05, 0xd3,
+ 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x8f, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xf3, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x21, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5f, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x65, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x34, 0x04, 0x7b, 0x00, 0x01, 0x01, 0xa5, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x51, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x77, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x1e, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0,
+ 0x00, 0x02, 0x02, 0x0f, 0x04, 0x7b, 0x00, 0x08, 0x00, 0x01, 0x01, 0xe3,
+ 0x04, 0x7b, 0x00, 0x01, 0x04, 0x80, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x6f,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0xc5, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x74,
+ 0x04, 0x7b, 0x00, 0x01, 0x04, 0x4a, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x6f,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x96, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1d,
+ 0x04, 0x7b, 0x00, 0x01, 0x03, 0x96, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1d,
+ 0x04, 0x71, 0x00, 0x01, 0x03, 0x96, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1d,
+ 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x01,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x0c, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x69,
+ 0x05, 0xf0, 0x00, 0x01, 0x01, 0x39, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x83,
+ 0x05, 0xf0, 0x00, 0x01, 0x02, 0xe8, 0x05, 0xf0, 0x00, 0x02, 0x02, 0x85,
+ 0x04, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x04, 0xe3, 0x05, 0xf0, 0x00, 0x01,
+ 0x03, 0xaa, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0x62, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x4c, 0x05, 0xf0, 0x00, 0x01,
+ 0x03, 0x63, 0x04, 0x7b, 0x00, 0x01, 0x02, 0xd6, 0x05, 0xf0, 0x00, 0x01,
+ 0x02, 0x30, 0x04, 0x7b, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01,
+ 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x01, 0xab, 0x05, 0xf0, 0x00, 0x02,
+ 0x01, 0x00, 0x04, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa4, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x6d, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xc4, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x06, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x2c, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x5b, 0x05, 0xf0,
+ 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x48, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x3d, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xe1, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x51, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xef, 0x04, 0x7b, 0x00, 0x01, 0x03, 0x0f, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0x4b, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x11, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0xfc, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x1a, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x10, 0x07, 0x88, 0x00, 0x01, 0x04, 0x51, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xa9, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa3, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xe9, 0x06, 0x04, 0x00, 0x01, 0x02, 0xb9, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xb9, 0x05, 0xf0, 0x00, 0x01, 0x03, 0x06, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x69, 0x05, 0xf0, 0x00, 0x01, 0x01, 0x68, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xb5, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa8, 0x05, 0xf0,
+ 0x00, 0x01, 0x03, 0xb0, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xd5, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x40, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x8c, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0xfd, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x9a, 0x05, 0xf0,
+ 0x00, 0x01, 0x04, 0x05, 0x05, 0xf7, 0x00, 0x01, 0x02, 0xe6, 0x05, 0xf7,
+ 0x00, 0x01, 0x02, 0x8b, 0x05, 0xf7, 0x00, 0x01, 0x02, 0x6e, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x1f, 0x04, 0x7b, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x37, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0,
+ 0x00, 0x01, 0x02, 0x49, 0x05, 0xf0, 0x00, 0x01, 0x02, 0xa9, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x01, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b,
+ 0x00, 0x01, 0x02, 0x9f, 0x05, 0xf0, 0x00, 0x01, 0x00, 0xfa, 0x05, 0xf0,
+ 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b,
+ 0x00, 0x01, 0x01, 0x02, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x99, 0x05, 0xf0,
+ 0x00, 0x02, 0x03, 0x43, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6f,
+ 0x00, 0x13, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x3d, 0x00, 0x0a,
+ 0x00, 0x44, 0x00, 0x5d, 0x00, 0x24, 0x00, 0x9a, 0x00, 0x9a, 0x00, 0x3e,
+ 0x00, 0xa8, 0x00, 0xa9, 0x00, 0x3f, 0x00, 0xb2, 0x00, 0xb2, 0x00, 0x41,
+ 0x00, 0xba, 0x00, 0xba, 0x00, 0x42, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x43,
+ 0x00, 0xc6, 0x00, 0xc7, 0x00, 0x44, 0x00, 0xd1, 0x00, 0xd1, 0x00, 0x46,
+ 0x00, 0xe8, 0x00, 0xe9, 0x00, 0x47, 0x00, 0xf3, 0x00, 0xf3, 0x00, 0x49,
+ 0x00, 0xfa, 0x00, 0xfa, 0x00, 0x4a, 0x01, 0x0d, 0x01, 0x0d, 0x00, 0x4b,
+ 0x01, 0x15, 0x01, 0x15, 0x00, 0x4c, 0x01, 0x28, 0x01, 0x29, 0x00, 0x4d,
+ 0x01, 0x35, 0x01, 0x35, 0x00, 0x4f, 0x01, 0x41, 0x01, 0x42, 0x00, 0x50,
+ 0x01, 0x45, 0x01, 0x45, 0x00, 0x52, 0x01, 0x48, 0x01, 0x49, 0x00, 0x53,
+ 0x01, 0x4e, 0x01, 0x4e, 0x00, 0x55, 0x01, 0x50, 0x01, 0x56, 0x00, 0x56,
+ 0x01, 0x58, 0x01, 0x59, 0x00, 0x5d, 0x01, 0x5b, 0x01, 0x5d, 0x00, 0x5f,
+ 0x01, 0x5f, 0x01, 0x5f, 0x00, 0x62, 0x01, 0x61, 0x01, 0x61, 0x00, 0x63,
+ 0x01, 0x66, 0x01, 0x66, 0x00, 0x64, 0x01, 0x69, 0x01, 0x6a, 0x00, 0x65,
+ 0x01, 0x6c, 0x01, 0x70, 0x00, 0x67, 0x01, 0x74, 0x01, 0x7b, 0x00, 0x6c,
+ 0x01, 0xac, 0x01, 0xac, 0x00, 0x74, 0x01, 0xf6, 0x01, 0xf9, 0x00, 0x75,
+ 0x02, 0x05, 0x02, 0x0c, 0x00, 0x79, 0x02, 0x0e, 0x02, 0x4a, 0x00, 0x81,
+ 0x02, 0x4c, 0x02, 0x67, 0x00, 0xbe, 0x02, 0x69, 0x02, 0x6b, 0x00, 0xda,
+ 0x02, 0x6d, 0x02, 0x6d, 0x00, 0xdd, 0x03, 0x45, 0x03, 0x5d, 0x00, 0xde,
+ 0x03, 0x64, 0x03, 0x65, 0x00, 0xf7, 0x03, 0x69, 0x03, 0x69, 0x00, 0xf9,
+ 0x03, 0x6b, 0x03, 0x6b, 0x00, 0xfa, 0x03, 0x6d, 0x03, 0x6d, 0x00, 0xfb,
+ 0x03, 0x6f, 0x03, 0x6f, 0x00, 0xfc, 0x03, 0x77, 0x03, 0x77, 0x00, 0xfd,
+ 0x03, 0x84, 0x03, 0x8a, 0x00, 0xfe, 0x03, 0x8c, 0x03, 0x8c, 0x01, 0x05,
+ 0x03, 0x90, 0x03, 0x90, 0x01, 0x06, 0x03, 0x98, 0x03, 0x9a, 0x01, 0x07,
+ 0x03, 0x9d, 0x03, 0x9e, 0x01, 0x0a, 0x03, 0xa3, 0x03, 0xac, 0x01, 0x0c,
+ 0x03, 0xae, 0x03, 0xcc, 0x01, 0x16, 0x03, 0xce, 0x03, 0xe3, 0x01, 0x35,
+ 0x03, 0xe8, 0x03, 0xef, 0x01, 0x4b, 0x03, 0xf3, 0x04, 0x01, 0x01, 0x53,
+ 0x04, 0x04, 0x04, 0x09, 0x01, 0x62, 0x04, 0x22, 0x04, 0x23, 0x01, 0x68,
+ 0x04, 0x2a, 0x04, 0x2b, 0x01, 0x6a, 0x04, 0x2e, 0x04, 0x36, 0x01, 0x6c,
+ 0x04, 0x40, 0x04, 0x40, 0x01, 0x75, 0x04, 0x4d, 0x04, 0x4d, 0x01, 0x76,
+ 0x04, 0x58, 0x04, 0x58, 0x01, 0x77, 0x04, 0x5e, 0x04, 0x5e, 0x01, 0x78,
+ 0x04, 0x62, 0x04, 0x62, 0x01, 0x79, 0x04, 0x7c, 0x04, 0x7d, 0x01, 0x7a,
+ 0x04, 0x8b, 0x04, 0x8b, 0x01, 0x7c, 0x04, 0x92, 0x04, 0x93, 0x01, 0x7d,
+ 0x04, 0xa7, 0x04, 0xa7, 0x01, 0x7f, 0x04, 0xb2, 0x04, 0xb3, 0x01, 0x80,
+ 0x04, 0xb5, 0x04, 0xb5, 0x01, 0x82, 0x04, 0xb7, 0x04, 0xb7, 0x01, 0x83,
+ 0x04, 0xba, 0x04, 0xc2, 0x01, 0x84, 0x04, 0xc5, 0x04, 0xce, 0x01, 0x8d,
+ 0x04, 0xd1, 0x04, 0xd5, 0x01, 0x97, 0x04, 0xd8, 0x04, 0xde, 0x01, 0x9c,
+ 0x04, 0xe2, 0x04, 0xe2, 0x01, 0xa3, 0x05, 0x23, 0x05, 0x23, 0x01, 0xa4,
+ 0x05, 0x5c, 0x05, 0x63, 0x01, 0xa5, 0x06, 0x4a, 0x06, 0x4b, 0x01, 0xad,
+ 0x07, 0xec, 0x07, 0xec, 0x01, 0xaf, 0x07, 0xf4, 0x07, 0xf7, 0x01, 0xb0,
+ 0x07, 0xf9, 0x07, 0xfb, 0x01, 0xb4, 0x07, 0xfe, 0x07, 0xfe, 0x01, 0xb7,
+ 0x08, 0x01, 0x08, 0x06, 0x01, 0xb8, 0x08, 0x0d, 0x08, 0x0d, 0x01, 0xbe,
+ 0x08, 0x11, 0x08, 0x11, 0x01, 0xbf, 0x08, 0x15, 0x08, 0x16, 0x01, 0xc0,
+ 0x08, 0x18, 0x08, 0x1a, 0x01, 0xc2, 0x08, 0x1c, 0x08, 0x1c, 0x01, 0xc5,
+ 0x08, 0x1e, 0x08, 0x22, 0x01, 0xc6, 0x08, 0x25, 0x08, 0x28, 0x01, 0xcb,
+ 0x0a, 0x1d, 0x0a, 0x1d, 0x01, 0xcf, 0x0e, 0x2b, 0x0e, 0x45, 0x01, 0xd0,
+ 0x0e, 0x48, 0x0e, 0x49, 0x01, 0xeb, 0x0e, 0x62, 0x0e, 0x65, 0x01, 0xed,
+ 0x0e, 0x67, 0x0e, 0x68, 0x01, 0xf1, 0x0e, 0x6a, 0x0e, 0x75, 0x01, 0xf3,
+ 0x0e, 0x78, 0x0e, 0x87, 0x01, 0xff, 0x0e, 0x89, 0x0e, 0x89, 0x02, 0x0f,
+ 0x0e, 0x8b, 0x0e, 0x8f, 0x02, 0x10, 0x0e, 0x94, 0x0e, 0xa8, 0x02, 0x15,
+ 0x0f, 0x93, 0x0f, 0xa5, 0x02, 0x2a, 0x0f, 0xbd, 0x0f, 0xbd, 0x02, 0x3d,
+ 0x0f, 0xbf, 0x0f, 0xbf, 0x02, 0x3e, 0x0f, 0xf4, 0x0f, 0xfd, 0x02, 0x3f,
+ 0x11, 0x1b, 0x11, 0x1d, 0x02, 0x49, 0x11, 0x34, 0x11, 0x34, 0x02, 0x4c,
+ 0x11, 0x3e, 0x11, 0x3e, 0x02, 0x4d, 0x11, 0x42, 0x11, 0x42, 0x02, 0x4e,
+ 0x11, 0x45, 0x11, 0x46, 0x02, 0x4f, 0x11, 0x48, 0x11, 0x48, 0x02, 0x51,
+ 0x11, 0xb8, 0x11, 0xb8, 0x02, 0x52, 0x00, 0x02, 0x00, 0x0c, 0x02, 0xb1,
+ 0x02, 0xc5, 0x00, 0x00, 0x02, 0xee, 0x02, 0xf3, 0x00, 0x15, 0x02, 0xf5,
+ 0x02, 0xf5, 0x00, 0x1b, 0x02, 0xf7, 0x02, 0xf7, 0x00, 0x1c, 0x02, 0xfb,
+ 0x02, 0xfd, 0x00, 0x1d, 0x03, 0x01, 0x03, 0x02, 0x00, 0x20, 0x03, 0x04,
+ 0x03, 0x04, 0x00, 0x22, 0x04, 0x17, 0x04, 0x1b, 0x00, 0x23, 0x05, 0x4a,
+ 0x05, 0x4f, 0x00, 0x28, 0x07, 0xe3, 0x07, 0xe9, 0x00, 0x2e, 0x10, 0xeb,
+ 0x10, 0xf5, 0x00, 0x35, 0x11, 0xac, 0x11, 0xac, 0x00, 0x40, 0x00, 0x41,
+ 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x01, 0x16,
+ 0x00, 0x00, 0x01, 0x1e, 0x00, 0x00, 0x01, 0x24, 0x00, 0x00, 0x01, 0x2a,
+ 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x01, 0x3e,
+ 0x00, 0x00, 0x01, 0x46, 0x00, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x01, 0x52,
+ 0x00, 0x00, 0x01, 0x58, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x01, 0x66,
+ 0x00, 0x00, 0x01, 0x6c, 0x00, 0x00, 0x01, 0x72, 0x00, 0x00, 0x01, 0x78,
+ 0x00, 0x00, 0x01, 0x7e, 0x00, 0x00, 0x01, 0x84, 0x00, 0x00, 0x01, 0x8a,
+ 0x00, 0x00, 0x01, 0x90, 0x00, 0x00, 0x01, 0x96, 0x00, 0x00, 0x01, 0x9c,
+ 0x00, 0x00, 0x01, 0xa2, 0x00, 0x00, 0x01, 0xa8, 0x00, 0x00, 0x01, 0xae,
+ 0x00, 0x00, 0x01, 0xb4, 0x00, 0x00, 0x01, 0xba, 0x00, 0x00, 0x01, 0xc0,
+ 0x00, 0x00, 0x01, 0xc6, 0x00, 0x00, 0x01, 0xcc, 0x00, 0x00, 0x01, 0xd2,
+ 0x00, 0x00, 0x01, 0xd8, 0x00, 0x00, 0x01, 0xde, 0x00, 0x00, 0x01, 0xe4,
+ 0x00, 0x00, 0x01, 0xea, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x01, 0xf6,
+ 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x08,
+ 0x00, 0x00, 0x02, 0x0e, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x02, 0x1a,
+ 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x26, 0x00, 0x00, 0x02, 0x2c,
+ 0x00, 0x00, 0x02, 0x32, 0x00, 0x00, 0x02, 0x38, 0x00, 0x00, 0x02, 0x3e,
+ 0x00, 0x00, 0x02, 0x46, 0x00, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x02, 0x54,
+ 0x00, 0x00, 0x02, 0x5a, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x02, 0x66,
+ 0x00, 0x00, 0x02, 0x6c, 0x00, 0x00, 0x02, 0x72, 0x00, 0x00, 0x02, 0x78,
+ 0x00, 0x00, 0x02, 0x7e, 0x00, 0x00, 0x02, 0x84, 0x00, 0x00, 0x02, 0x8a,
+ 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x02, 0x96, 0x00, 0x02, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x04, 0x00, 0x02, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x04,
+ 0x00, 0x02, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x07, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x02, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x04, 0x00, 0x02, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x08,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x02, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x07, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0xb0,
+ 0x03, 0x6f, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x72, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x72, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0xb0,
+ 0x04, 0x72, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfd, 0xcd, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0xa6,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x6e, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x48,
+ 0x04, 0x7b, 0x00, 0x01, 0xfd, 0x39, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x02, 0xfe, 0x34,
+ 0x04, 0x7b, 0x00, 0x0c, 0x00, 0x02, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x10,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b,
+ 0x00, 0x01, 0xfe, 0x34, 0x04, 0x7b, 0x00, 0x01, 0x01, 0x3e, 0x00, 0xfe,
+ 0x00, 0x01, 0x01, 0x44, 0x00, 0x0c, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x44,
+ 0x00, 0x4a, 0x00, 0x50, 0x00, 0x56, 0x00, 0x5c, 0x00, 0x62, 0x00, 0x68,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x7a, 0x00, 0x80, 0x00, 0x86, 0x00, 0x8c,
+ 0x00, 0x92, 0x00, 0x98, 0x00, 0x9e, 0x00, 0xa4, 0x00, 0xaa, 0x00, 0xb0,
+ 0x00, 0xb6, 0x00, 0xbc, 0x00, 0xc2, 0x00, 0xc8, 0x00, 0xce, 0x00, 0xd4,
+ 0x00, 0xda, 0x00, 0xe0, 0x00, 0xe6, 0x00, 0xec, 0x00, 0x01, 0x04, 0x5c,
+ 0x00, 0x00, 0x00, 0x01, 0x03, 0x60, 0x00, 0x00, 0x00, 0x01, 0x01, 0x35,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0xd7, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa3,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0x59, 0x00, 0x00, 0x00, 0x01, 0x02, 0x77,
+ 0xff, 0xfe, 0x00, 0x01, 0x03, 0x54, 0x00, 0x00, 0x00, 0x01, 0x03, 0x14,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x02, 0x35,
+ 0x00, 0x00, 0x00, 0x01, 0x03, 0xb1, 0x00, 0x00, 0x00, 0x01, 0x00, 0xe1,
+ 0xfe, 0x56, 0x00, 0x01, 0x01, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x02, 0xd7,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0x35, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1e,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x35,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0xd7, 0x00, 0x00, 0x00, 0x01, 0x02, 0x77,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0x53, 0x00, 0x00, 0x00, 0x01, 0x02, 0x47,
+ 0xfe, 0x52, 0x00, 0x01, 0x02, 0x46, 0x00, 0x00, 0x00, 0x01, 0x01, 0x95,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x23, 0x00, 0x00, 0x00, 0x01, 0x02, 0x35,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0xe1, 0xfe, 0x52, 0x00, 0x01, 0x04, 0xb6,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1e,
+ 0x00, 0x24, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x32, 0x00, 0x38, 0x00, 0x3c,
+ 0x00, 0x3d, 0x00, 0x44, 0x00, 0x48, 0x00, 0x4c, 0x00, 0x52, 0x00, 0x58,
+ 0x00, 0x5c, 0x00, 0x5d, 0x00, 0x9a, 0x00, 0xba, 0x00, 0xf3, 0x01, 0x48,
+ 0x01, 0x59, 0x01, 0x61, 0x01, 0x79, 0x01, 0x7a, 0x01, 0x7b, 0x02, 0x12,
+ 0x02, 0x16, 0x02, 0x2a, 0x02, 0x37, 0x02, 0x54, 0x0e, 0x38, 0x11, 0x1c,
+ 0x00, 0x01, 0x00, 0x01, 0x02, 0xd9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06,
+ 0x00, 0x01, 0xfe, 0x29, 0x00, 0x00, 0x00, 0x02, 0x26, 0xf0, 0x00, 0x04,
+ 0x00, 0x00, 0x21, 0x30, 0x23, 0x20, 0x00, 0x35, 0x00, 0x50, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x72,
+ 0x00, 0x39, 0x00, 0x4b, 0x00, 0x00, 0xff, 0x44, 0x00, 0x00, 0xff, 0x88,
+ 0xff, 0xad, 0xff, 0x9a, 0xff, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xc9, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26,
+ 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x61,
+ 0x00, 0x00, 0xff, 0x7d, 0xff, 0x90, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0x88, 0xff, 0xad, 0x00, 0x00, 0xff, 0x75,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x61,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad, 0xff, 0x61, 0xff, 0x75,
+ 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x61, 0x00, 0x00, 0xff, 0x61, 0xff, 0x75,
+ 0xff, 0xad, 0xff, 0x90, 0xfe, 0xf8, 0xff, 0x03, 0x00, 0x2f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1, 0xff, 0xb7, 0x00, 0x00,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00,
+ 0xff, 0x90, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0x90, 0xff, 0x90,
+ 0xff, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xc9, 0xff, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0xb7, 0xff, 0x61, 0xff, 0x44, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x44, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7,
+ 0xff, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x44, 0xff, 0x90, 0x00, 0x00, 0xff, 0xb7, 0xff, 0x90, 0xff, 0x44,
+ 0xff, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b, 0xff, 0xb7,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x44, 0x00, 0x00, 0xff, 0xb7, 0xff, 0xdc, 0xff, 0xb7,
+ 0x00, 0x00, 0xff, 0x44, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00,
+ 0xfe, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xd3, 0xff, 0xd3, 0xff, 0xc9, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0xc1, 0xff, 0xb7, 0x00, 0x00,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0xc1,
+ 0xff, 0x90, 0x00, 0x00, 0xff, 0x29, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0x61, 0xff, 0xc9, 0x00, 0x00,
+ 0xff, 0xb7, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b, 0xff, 0x7d, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x90, 0xff, 0xdc, 0xff, 0x9a, 0x00, 0x00, 0xff, 0x9a,
+ 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xc1, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xe6,
+ 0xff, 0x9a, 0xff, 0x1f, 0xff, 0x44, 0x00, 0x00, 0xfe, 0xf0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x61, 0xfd, 0xe6, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x39, 0xff, 0xad, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x7d,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc,
+ 0xff, 0x44, 0x00, 0x00, 0xff, 0xd3, 0xfe, 0xc1, 0x00, 0x00, 0xff, 0x7d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0xff, 0xa4, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xb7, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xa4, 0xff, 0xb7, 0x00, 0x00, 0xff, 0xb7,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x26, 0x00, 0x26, 0xfe, 0xb7, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc, 0xff, 0x7d, 0x00, 0x00,
+ 0xff, 0xad, 0xff, 0xb7, 0xff, 0xc1, 0xff, 0xad, 0x00, 0x00, 0xff, 0x9a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x6b, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad, 0x00, 0x00,
+ 0xff, 0x7d, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0xff, 0xa4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xa4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xa4, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x90, 0xff, 0x90, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x9a,
+ 0xff, 0xd3, 0xff, 0xa4, 0x00, 0x00, 0xff, 0xa4, 0xff, 0xa4, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b, 0xff, 0x7d,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x44, 0xff, 0x0d,
+ 0xff, 0x1f, 0xff, 0x61, 0x00, 0x00, 0xff, 0x88, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0xad, 0xfe, 0xa4, 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xa4, 0xfe, 0xd3, 0xfe, 0xad,
+ 0x00, 0x00, 0xfe, 0xc9, 0x00, 0x00, 0xfe, 0xad, 0x00, 0x00, 0xfe, 0xc1,
+ 0xff, 0x44, 0xff, 0x90, 0x00, 0x00, 0xff, 0x88, 0xff, 0x11, 0xfe, 0xe0,
+ 0x00, 0x00, 0xfe, 0xf4, 0xfe, 0xe7, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xa4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xfe, 0xf8, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x88, 0xfe, 0xf8, 0xff, 0x59, 0xff, 0x7d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc9, 0xff, 0x4e, 0xff, 0x90,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x61, 0xff, 0x61, 0x00, 0x00, 0xff, 0x61,
+ 0xff, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0xe6, 0x00, 0x00, 0xff, 0xad, 0xff, 0x15,
+ 0xff, 0x88, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x7d, 0x00, 0x00, 0x00, 0x00, 0xff, 0x88, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0xff, 0x88, 0xff, 0xa4, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0x90, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7d, 0xff, 0x88,
+ 0x00, 0x00, 0xff, 0x88, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xfe, 0xf8, 0x00, 0x00,
+ 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7d, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xa4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b,
+ 0x00, 0x00, 0xff, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x61, 0xff, 0xad,
+ 0xff, 0xd3, 0x00, 0x00, 0xff, 0x0d, 0xfe, 0x61, 0xfe, 0xf0, 0xff, 0x61,
+ 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xe6, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x15,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0xff, 0x6b,
+ 0x00, 0x00, 0xff, 0x90, 0xfe, 0xe6, 0xfe, 0xf0, 0x00, 0x00, 0xfe, 0xf0,
+ 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x90, 0xff, 0xdc, 0xfe, 0xf8, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0x6b, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xb7, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x00, 0x00, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xb7,
+ 0x00, 0x00, 0xff, 0xb7, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b, 0xff, 0x90,
+ 0xff, 0xa4, 0x00, 0x00, 0x00, 0x26, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x6b, 0xff, 0xb7, 0xff, 0x7d, 0x00, 0x00, 0xff, 0x7d, 0xff, 0x44,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc, 0xff, 0xd3, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xd3, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc9, 0x00, 0x00,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3,
+ 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xfe, 0xc9, 0x00, 0x00,
+ 0xff, 0xc9, 0xff, 0x61, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xff, 0x44, 0xff, 0x90, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1,
+ 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0xfe, 0xdc, 0xff, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0xff, 0x90,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x97, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0x44,
+ 0x00, 0x00, 0xff, 0x4e, 0xff, 0x90, 0xff, 0x90, 0xff, 0x1f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xd3, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0xff, 0x7d, 0xff, 0x90, 0x00, 0x00,
+ 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x88, 0xff, 0xad,
+ 0x00, 0x00, 0xff, 0x75, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x39,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0xdc, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad,
+ 0xff, 0x61, 0xff, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf8, 0xff, 0x03,
+ 0x00, 0x2f, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x39,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0xff, 0x7d,
+ 0xff, 0x90, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00,
+ 0xff, 0x88, 0xff, 0xad, 0x00, 0x00, 0xff, 0x75, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x90, 0xff, 0xad, 0xff, 0x61, 0xff, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90,
+ 0xfe, 0xf8, 0xff, 0x03, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x61,
+ 0x00, 0x00, 0xff, 0x7d, 0xff, 0x90, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0x88, 0xff, 0xad, 0x00, 0x00, 0xff, 0x75,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x61,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad, 0xff, 0x61, 0xff, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x90, 0xfe, 0xf8, 0xff, 0x03, 0x00, 0x2f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xad, 0xff, 0xa4,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x6b,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x44, 0x00, 0x00,
+ 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0x90,
+ 0xff, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xa4, 0xff, 0x90, 0xff, 0xb7, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x61,
+ 0x00, 0x00, 0xff, 0x7d, 0xff, 0x90, 0x00, 0x00, 0xff, 0x61, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0x88, 0xff, 0xad, 0x00, 0x00, 0xff, 0x75,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0x61,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad, 0xff, 0x61, 0xff, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x90, 0xfe, 0xf8, 0xff, 0x02, 0x00, 0x2f, 0x00, 0x00,
+ 0xff, 0xd3, 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x39, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0xff, 0x7d, 0xff, 0x90, 0x00, 0x00,
+ 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc, 0xff, 0xdc,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0x88, 0xff, 0xad,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x39,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0xff, 0xdc, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0xad,
+ 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xfe, 0xf8, 0xff, 0x02,
+ 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xd3, 0xff, 0xc9, 0xff, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x7d, 0xff, 0x44, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd3, 0xff, 0xdc, 0xff, 0xd3,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0xff, 0xd3,
+ 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xc9, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56,
+ 0xfe, 0xc9, 0x00, 0x00, 0xff, 0x44, 0xff, 0x0d, 0xff, 0x1f, 0xff, 0x61,
+ 0x00, 0x00, 0xff, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xad, 0xfe, 0xa4,
+ 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0xa4, 0xfe, 0xd3, 0xfe, 0xad, 0x00, 0x00, 0xfe, 0xc9,
+ 0x00, 0x00, 0xfe, 0xad, 0x00, 0x00, 0xfe, 0xc1, 0xff, 0x44, 0xff, 0x90,
+ 0x00, 0x00, 0xff, 0x88, 0xfe, 0xad, 0xfe, 0xa4, 0x00, 0x00, 0xfe, 0xa4,
+ 0xfe, 0xc9, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd3, 0xfe, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd3, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4b, 0x00, 0x72, 0x00, 0x39, 0x00, 0x4b, 0x00, 0x00, 0xff, 0x44,
+ 0x00, 0x00, 0xff, 0x88, 0xff, 0xad, 0xff, 0x9a, 0xff, 0x0d, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xc9, 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf8, 0xff, 0xc1, 0xff, 0xb7,
+ 0xff, 0xc1, 0xff, 0xc1, 0xff, 0xb7, 0xff, 0xc1, 0xff, 0xb7, 0xff, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x88,
+ 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x90, 0xff, 0x6b,
+ 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0xb7,
+ 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7d, 0xff, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0x6b, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26,
+ 0xff, 0xb7, 0xff, 0x90, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0x00, 0x2f,
+ 0xff, 0x90, 0xff, 0x90, 0x00, 0x00, 0xfe, 0xe6, 0x00, 0x00, 0xfe, 0x88,
+ 0xff, 0x03, 0xff, 0xb7, 0xfe, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x15, 0xff, 0x3c, 0x00, 0x00, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x26, 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0xff, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb7, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x52, 0x00, 0x10,
+ 0x00, 0x10, 0x00, 0x01, 0x00, 0x24, 0x00, 0x24, 0x00, 0x02, 0x00, 0x25,
+ 0x00, 0x25, 0x00, 0x03, 0x00, 0x26, 0x00, 0x26, 0x00, 0x04, 0x00, 0x27,
+ 0x00, 0x27, 0x00, 0x05, 0x00, 0x29, 0x00, 0x29, 0x00, 0x06, 0x00, 0x2a,
+ 0x00, 0x2a, 0x00, 0x07, 0x00, 0x2b, 0x00, 0x2b, 0x00, 0x08, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x09, 0x00, 0x2e, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x2f,
+ 0x00, 0x2f, 0x00, 0x0b, 0x00, 0x32, 0x00, 0x32, 0x00, 0x0c, 0x00, 0x33,
+ 0x00, 0x33, 0x00, 0x0d, 0x00, 0x34, 0x00, 0x34, 0x00, 0x0e, 0x00, 0x35,
+ 0x00, 0x35, 0x00, 0x0f, 0x00, 0x36, 0x00, 0x36, 0x00, 0x10, 0x00, 0x37,
+ 0x00, 0x37, 0x00, 0x11, 0x00, 0x38, 0x00, 0x38, 0x00, 0x12, 0x00, 0x39,
+ 0x00, 0x39, 0x00, 0x13, 0x00, 0x3a, 0x00, 0x3a, 0x00, 0x14, 0x00, 0x3b,
+ 0x00, 0x3b, 0x00, 0x15, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x16, 0x00, 0x3d,
+ 0x00, 0x3d, 0x00, 0x17, 0x00, 0x48, 0x00, 0x48, 0x00, 0x18, 0x00, 0x49,
+ 0x00, 0x49, 0x00, 0x19, 0x00, 0x4e, 0x00, 0x4e, 0x00, 0x1a, 0x00, 0x51,
+ 0x00, 0x51, 0x00, 0x1b, 0x00, 0x52, 0x00, 0x52, 0x00, 0x1c, 0x00, 0x55,
+ 0x00, 0x55, 0x00, 0x1d, 0x00, 0x59, 0x00, 0x59, 0x00, 0x1e, 0x00, 0x5a,
+ 0x00, 0x5a, 0x00, 0x1f, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x20, 0x00, 0x5c,
+ 0x00, 0x5c, 0x00, 0x21, 0x00, 0x6d, 0x00, 0x6d, 0x00, 0x22, 0x00, 0x7d,
+ 0x00, 0x7d, 0x00, 0x23, 0x00, 0x82, 0x00, 0x82, 0x00, 0x24, 0x00, 0x83,
+ 0x00, 0x84, 0x00, 0x25, 0x00, 0x85, 0x00, 0x85, 0x00, 0x26, 0x00, 0x86,
+ 0x00, 0x86, 0x00, 0x25, 0x00, 0x88, 0x00, 0x88, 0x00, 0x27, 0x00, 0x89,
+ 0x00, 0x89, 0x00, 0x28, 0x00, 0x92, 0x00, 0x92, 0x00, 0x05, 0x00, 0x94,
+ 0x00, 0x98, 0x00, 0x0c, 0x00, 0x9b, 0x00, 0x9e, 0x00, 0x12, 0x00, 0x9f,
+ 0x00, 0x9f, 0x00, 0x16, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x29, 0x00, 0xa1,
+ 0x00, 0xa1, 0x00, 0x2a, 0x00, 0xaa, 0x00, 0xad, 0x00, 0x18, 0x00, 0xb2,
+ 0x00, 0xb2, 0x00, 0x2b, 0x00, 0xb3, 0x00, 0xb3, 0x00, 0x1b, 0x00, 0xb4,
+ 0x00, 0xb8, 0x00, 0x1c, 0x00, 0xbf, 0x00, 0xbf, 0x00, 0x21, 0x00, 0xc1,
+ 0x00, 0xc1, 0x00, 0x21, 0x00, 0xc2, 0x00, 0xc2, 0x00, 0x2c, 0x00, 0xc4,
+ 0x00, 0xc4, 0x00, 0x2c, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0x2d, 0x00, 0xc8,
+ 0x00, 0xc8, 0x00, 0x28, 0x00, 0xce, 0x00, 0xce, 0x00, 0x28, 0x00, 0xd0,
+ 0x00, 0xd0, 0x00, 0x05, 0x00, 0xd2, 0x00, 0xd2, 0x00, 0x2e, 0x00, 0xdd,
+ 0x00, 0xdd, 0x00, 0x18, 0x00, 0xe0, 0x00, 0xe0, 0x00, 0x07, 0x00, 0xfb,
+ 0x00, 0xfb, 0x00, 0x0b, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0b, 0x01, 0x02,
+ 0x01, 0x02, 0x00, 0x2f, 0x01, 0x0a, 0x01, 0x0a, 0x00, 0x1b, 0x01, 0x16,
+ 0x01, 0x16, 0x00, 0x0f, 0x01, 0x17, 0x01, 0x17, 0x00, 0x1d, 0x01, 0x1a,
+ 0x01, 0x1a, 0x00, 0x0f, 0x01, 0x1b, 0x01, 0x1b, 0x00, 0x30, 0x01, 0x20,
+ 0x01, 0x20, 0x00, 0x10, 0x01, 0x22, 0x01, 0x22, 0x00, 0x10, 0x01, 0x26,
+ 0x01, 0x26, 0x00, 0x31, 0x01, 0x30, 0x01, 0x30, 0x00, 0x12, 0x01, 0x3a,
+ 0x01, 0x3a, 0x00, 0x16, 0x01, 0x3f, 0x01, 0x3f, 0x00, 0x17, 0x07, 0x45,
+ 0x07, 0x45, 0x00, 0x32, 0x07, 0x51, 0x07, 0x51, 0x00, 0x33, 0x07, 0x53,
+ 0x07, 0x53, 0x00, 0x34, 0x0e, 0x60, 0x0e, 0x60, 0x00, 0x11, 0x0e, 0x78,
+ 0x0e, 0x78, 0x00, 0x0a, 0x0e, 0x79, 0x0e, 0x79, 0x00, 0x1a, 0x00, 0x02,
+ 0x00, 0xa2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x01, 0x00, 0x11, 0x00, 0x11,
+ 0x00, 0x02, 0x00, 0x1d, 0x00, 0x1d, 0x00, 0x03, 0x00, 0x24, 0x00, 0x24,
+ 0x00, 0x04, 0x00, 0x25, 0x00, 0x25, 0x00, 0x05, 0x00, 0x26, 0x00, 0x26,
+ 0x00, 0x06, 0x00, 0x27, 0x00, 0x27, 0x00, 0x07, 0x00, 0x29, 0x00, 0x29,
+ 0x00, 0x08, 0x00, 0x2a, 0x00, 0x2a, 0x00, 0x09, 0x00, 0x2b, 0x00, 0x2b,
+ 0x00, 0x08, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x0a, 0x00, 0x2e, 0x00, 0x2f,
+ 0x00, 0x08, 0x00, 0x32, 0x00, 0x32, 0x00, 0x0b, 0x00, 0x33, 0x00, 0x33,
+ 0x00, 0x08, 0x00, 0x34, 0x00, 0x34, 0x00, 0x0c, 0x00, 0x35, 0x00, 0x35,
+ 0x00, 0x08, 0x00, 0x36, 0x00, 0x36, 0x00, 0x0d, 0x00, 0x37, 0x00, 0x37,
+ 0x00, 0x0e, 0x00, 0x38, 0x00, 0x38, 0x00, 0x0f, 0x00, 0x39, 0x00, 0x39,
+ 0x00, 0x10, 0x00, 0x3a, 0x00, 0x3a, 0x00, 0x11, 0x00, 0x3b, 0x00, 0x3b,
+ 0x00, 0x12, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x13, 0x00, 0x3d, 0x00, 0x3d,
+ 0x00, 0x14, 0x00, 0x44, 0x00, 0x44, 0x00, 0x15, 0x00, 0x46, 0x00, 0x46,
+ 0x00, 0x16, 0x00, 0x47, 0x00, 0x47, 0x00, 0x17, 0x00, 0x48, 0x00, 0x48,
+ 0x00, 0x18, 0x00, 0x49, 0x00, 0x49, 0x00, 0x19, 0x00, 0x4a, 0x00, 0x4b,
+ 0x00, 0x1a, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x1b, 0x00, 0x4f, 0x00, 0x4f,
+ 0x00, 0x1c, 0x00, 0x50, 0x00, 0x50, 0x00, 0x1a, 0x00, 0x51, 0x00, 0x51,
+ 0x00, 0x1d, 0x00, 0x52, 0x00, 0x52, 0x00, 0x1e, 0x00, 0x54, 0x00, 0x54,
+ 0x00, 0x17, 0x00, 0x55, 0x00, 0x55, 0x00, 0x1f, 0x00, 0x56, 0x00, 0x56,
+ 0x00, 0x20, 0x00, 0x57, 0x00, 0x57, 0x00, 0x21, 0x00, 0x58, 0x00, 0x58,
+ 0x00, 0x22, 0x00, 0x59, 0x00, 0x59, 0x00, 0x23, 0x00, 0x5a, 0x00, 0x5a,
+ 0x00, 0x24, 0x00, 0x5b, 0x00, 0x5b, 0x00, 0x25, 0x00, 0x5c, 0x00, 0x5c,
+ 0x00, 0x26, 0x00, 0x6d, 0x00, 0x6d, 0x00, 0x27, 0x00, 0x7d, 0x00, 0x7d,
+ 0x00, 0x28, 0x00, 0x82, 0x00, 0x86, 0x00, 0x04, 0x00, 0x88, 0x00, 0x88,
+ 0x00, 0x29, 0x00, 0x89, 0x00, 0x89, 0x00, 0x2a, 0x00, 0x94, 0x00, 0x98,
+ 0x00, 0x0b, 0x00, 0x9b, 0x00, 0x9e, 0x00, 0x0f, 0x00, 0x9f, 0x00, 0x9f,
+ 0x00, 0x13, 0x00, 0xa0, 0x00, 0xa1, 0x00, 0x08, 0x00, 0xa2, 0x00, 0xa2,
+ 0x00, 0x2b, 0x00, 0xa3, 0x00, 0xa3, 0x00, 0x15, 0x00, 0xa4, 0x00, 0xa7,
+ 0x00, 0x2b, 0x00, 0xa9, 0x00, 0xa9, 0x00, 0x16, 0x00, 0xaa, 0x00, 0xaa,
+ 0x00, 0x2c, 0x00, 0xab, 0x00, 0xab, 0x00, 0x18, 0x00, 0xac, 0x00, 0xad,
+ 0x00, 0x2c, 0x00, 0xb2, 0x00, 0xb2, 0x00, 0x2d, 0x00, 0xb3, 0x00, 0xb3,
+ 0x00, 0x1d, 0x00, 0xb4, 0x00, 0xb4, 0x00, 0x2e, 0x00, 0xb5, 0x00, 0xb5,
+ 0x00, 0x1e, 0x00, 0xb6, 0x00, 0xb8, 0x00, 0x2e, 0x00, 0xbb, 0x00, 0xbb,
+ 0x00, 0x2f, 0x00, 0xbc, 0x00, 0xbc, 0x00, 0x22, 0x00, 0xbd, 0x00, 0xbe,
+ 0x00, 0x2f, 0x00, 0xbf, 0x00, 0xbf, 0x00, 0x26, 0x00, 0xc1, 0x00, 0xc1,
+ 0x00, 0x26, 0x00, 0xc2, 0x00, 0xc2, 0x00, 0x30, 0x00, 0xc3, 0x00, 0xc3,
+ 0x00, 0x31, 0x00, 0xc4, 0x00, 0xc4, 0x00, 0x30, 0x00, 0xc5, 0x00, 0xc5,
+ 0x00, 0x31, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0x30, 0x00, 0xc7, 0x00, 0xc7,
+ 0x00, 0x31, 0x00, 0xc8, 0x00, 0xc8, 0x00, 0x06, 0x00, 0xc9, 0x00, 0xc9,
+ 0x00, 0x32, 0x00, 0xca, 0x00, 0xca, 0x00, 0x33, 0x00, 0xcb, 0x00, 0xcb,
+ 0x00, 0x34, 0x00, 0xcc, 0x00, 0xcc, 0x00, 0x33, 0x00, 0xcd, 0x00, 0xcd,
+ 0x00, 0x35, 0x00, 0xce, 0x00, 0xce, 0x00, 0x06, 0x00, 0xcf, 0x00, 0xcf,
+ 0x00, 0x32, 0x00, 0xd0, 0x00, 0xd0, 0x00, 0x07, 0x00, 0xd1, 0x00, 0xd1,
+ 0x00, 0x36, 0x00, 0xd3, 0x00, 0xd3, 0x00, 0x37, 0x00, 0xd5, 0x00, 0xd5,
+ 0x00, 0x38, 0x00, 0xd7, 0x00, 0xd7, 0x00, 0x38, 0x00, 0xd9, 0x00, 0xd9,
+ 0x00, 0x38, 0x00, 0xdb, 0x00, 0xdb, 0x00, 0x38, 0x00, 0xdd, 0x00, 0xdd,
+ 0x00, 0x18, 0x00, 0xde, 0x00, 0xde, 0x00, 0x33, 0x00, 0xe0, 0x00, 0xe0,
+ 0x00, 0x39, 0x00, 0xe1, 0x00, 0xe1, 0x00, 0x1a, 0x00, 0xe2, 0x00, 0xe2,
+ 0x00, 0x33, 0x00, 0xe4, 0x00, 0xe4, 0x00, 0x3a, 0x00, 0xf1, 0x00, 0xf1,
+ 0x00, 0x3b, 0x00, 0xf5, 0x00, 0xf5, 0x00, 0x3b, 0x00, 0xfb, 0x00, 0xfb,
+ 0x00, 0x08, 0x00, 0xff, 0x00, 0xff, 0x00, 0x08, 0x01, 0x0a, 0x01, 0x0a,
+ 0x00, 0x1d, 0x01, 0x0e, 0x01, 0x0e, 0x00, 0x33, 0x01, 0x0f, 0x01, 0x0f,
+ 0x00, 0x3c, 0x01, 0x10, 0x01, 0x10, 0x00, 0x33, 0x01, 0x11, 0x01, 0x11,
+ 0x00, 0x3c, 0x01, 0x12, 0x01, 0x12, 0x00, 0x3d, 0x01, 0x13, 0x01, 0x13,
+ 0x00, 0x3c, 0x01, 0x16, 0x01, 0x16, 0x00, 0x08, 0x01, 0x17, 0x01, 0x17,
+ 0x00, 0x1f, 0x01, 0x19, 0x01, 0x19, 0x00, 0x3b, 0x01, 0x1a, 0x01, 0x1a,
+ 0x00, 0x08, 0x01, 0x1b, 0x01, 0x1b, 0x00, 0x1f, 0x01, 0x1c, 0x01, 0x1c,
+ 0x00, 0x0d, 0x01, 0x1e, 0x01, 0x1e, 0x00, 0x0d, 0x01, 0x20, 0x01, 0x20,
+ 0x00, 0x0d, 0x01, 0x21, 0x01, 0x21, 0x00, 0x20, 0x01, 0x22, 0x01, 0x22,
+ 0x00, 0x0d, 0x01, 0x23, 0x01, 0x23, 0x00, 0x20, 0x01, 0x24, 0x01, 0x24,
+ 0x00, 0x3e, 0x01, 0x25, 0x01, 0x25, 0x00, 0x35, 0x01, 0x26, 0x01, 0x26,
+ 0x00, 0x0e, 0x01, 0x27, 0x01, 0x27, 0x00, 0x21, 0x01, 0x28, 0x01, 0x28,
+ 0x00, 0x3f, 0x01, 0x2b, 0x01, 0x2b, 0x00, 0x40, 0x01, 0x2d, 0x01, 0x2d,
+ 0x00, 0x40, 0x01, 0x2f, 0x01, 0x2f, 0x00, 0x40, 0x01, 0x30, 0x01, 0x30,
+ 0x00, 0x0f, 0x01, 0x31, 0x01, 0x31, 0x00, 0x22, 0x01, 0x33, 0x01, 0x33,
+ 0x00, 0x40, 0x01, 0x35, 0x01, 0x35, 0x00, 0x40, 0x01, 0x36, 0x01, 0x36,
+ 0x00, 0x41, 0x01, 0x37, 0x01, 0x37, 0x00, 0x42, 0x01, 0x38, 0x01, 0x38,
+ 0x00, 0x43, 0x01, 0x39, 0x01, 0x39, 0x00, 0x44, 0x01, 0x3a, 0x01, 0x3a,
+ 0x00, 0x13, 0x01, 0x3f, 0x01, 0x3f, 0x00, 0x14, 0x01, 0x88, 0x01, 0x88,
+ 0x00, 0x34, 0x01, 0xac, 0x01, 0xac, 0x00, 0x45, 0x01, 0xad, 0x01, 0xad,
+ 0x00, 0x46, 0x01, 0xae, 0x01, 0xae, 0x00, 0x45, 0x01, 0xaf, 0x01, 0xaf,
+ 0x00, 0x46, 0x01, 0xda, 0x01, 0xda, 0x00, 0x0d, 0x01, 0xdc, 0x01, 0xdc,
+ 0x00, 0x47, 0x01, 0xdd, 0x01, 0xdd, 0x00, 0x34, 0x01, 0xf0, 0x01, 0xf0,
+ 0x00, 0x33, 0x01, 0xf1, 0x01, 0xf1, 0x00, 0x48, 0x01, 0xf3, 0x01, 0xf3,
+ 0x00, 0x34, 0x01, 0xf4, 0x01, 0xf4, 0x00, 0x49, 0x01, 0xf5, 0x01, 0xf5,
+ 0x00, 0x4a, 0x05, 0xd0, 0x05, 0xd0, 0x00, 0x41, 0x05, 0xd1, 0x05, 0xd1,
+ 0x00, 0x4b, 0x05, 0xd2, 0x05, 0xd2, 0x00, 0x4c, 0x05, 0xd3, 0x05, 0xd3,
+ 0x00, 0x42, 0x05, 0xd4, 0x05, 0xd4, 0x00, 0x41, 0x05, 0xd5, 0x05, 0xd5,
+ 0x00, 0x42, 0x06, 0x42, 0x06, 0x42, 0x00, 0x43, 0x06, 0x43, 0x06, 0x43,
+ 0x00, 0x44, 0x07, 0x51, 0x07, 0x51, 0x00, 0x4d, 0x07, 0x52, 0x07, 0x52,
+ 0x00, 0x4e, 0x07, 0x53, 0x07, 0x53, 0x00, 0x4f, 0x0e, 0x78, 0x0e, 0x78,
+ 0x00, 0x08, 0x00, 0x01, 0x00, 0x61, 0x00, 0x10, 0x00, 0x24, 0x00, 0x25,
+ 0x00, 0x26, 0x00, 0x27, 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00, 0x2d,
+ 0x00, 0x2e, 0x00, 0x2f, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35,
+ 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b,
+ 0x00, 0x3c, 0x00, 0x3d, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x51,
+ 0x00, 0x52, 0x00, 0x55, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x5b, 0x00, 0x5c,
+ 0x00, 0x6d, 0x00, 0x7d, 0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85,
+ 0x00, 0x86, 0x00, 0x88, 0x00, 0x89, 0x00, 0x92, 0x00, 0x94, 0x00, 0x95,
+ 0x00, 0x96, 0x00, 0x97, 0x00, 0x98, 0x00, 0x9b, 0x00, 0x9c, 0x00, 0x9d,
+ 0x00, 0x9e, 0x00, 0x9f, 0x00, 0xa0, 0x00, 0xa1, 0x00, 0xaa, 0x00, 0xab,
+ 0x00, 0xac, 0x00, 0xad, 0x00, 0xb2, 0x00, 0xb3, 0x00, 0xb4, 0x00, 0xb5,
+ 0x00, 0xb6, 0x00, 0xb7, 0x00, 0xb8, 0x00, 0xbf, 0x00, 0xc1, 0x00, 0xc2,
+ 0x00, 0xc4, 0x00, 0xc6, 0x00, 0xc8, 0x00, 0xce, 0x00, 0xd0, 0x00, 0xd2,
+ 0x00, 0xdd, 0x00, 0xe0, 0x00, 0xfb, 0x00, 0xff, 0x01, 0x02, 0x01, 0x0a,
+ 0x01, 0x16, 0x01, 0x17, 0x01, 0x1a, 0x01, 0x1b, 0x01, 0x20, 0x01, 0x22,
+ 0x01, 0x26, 0x01, 0x30, 0x01, 0x3a, 0x01, 0x3f, 0x07, 0x45, 0x07, 0x51,
+ 0x07, 0x53, 0x0e, 0x60, 0x0e, 0x78, 0x0e, 0x79, 0x00, 0x02, 0x00, 0x60,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x24, 0x00, 0x58, 0x00, 0x05, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd8, 0x00, 0x00, 0xff, 0xb1,
+ 0x00, 0x00, 0xff, 0xa3, 0x00, 0x00, 0xff, 0x9c, 0x00, 0x01, 0x0e, 0xaa,
+ 0x00, 0x17, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x01, 0x0e, 0xc2, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04,
+ 0x0e, 0xaa, 0x0e, 0xae, 0x00, 0x00, 0x0e, 0xb0, 0x0e, 0xb4, 0x00, 0x05,
+ 0x0e, 0xb6, 0x0e, 0xba, 0x00, 0x0a, 0x0e, 0xbc, 0x0e, 0xc0, 0x00, 0x0f,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x01, 0xf0, 0x02, 0x9e, 0x00, 0x14,
+ 0x44, 0x46, 0x4c, 0x54, 0x00, 0x7a, 0x61, 0x72, 0x61, 0x62, 0x00, 0x88,
+ 0x61, 0x72, 0x6d, 0x6e, 0x00, 0xa6, 0x62, 0x72, 0x61, 0x69, 0x00, 0xb2,
+ 0x63, 0x61, 0x6e, 0x73, 0x00, 0xbe, 0x63, 0x68, 0x65, 0x72, 0x00, 0xca,
+ 0x63, 0x79, 0x72, 0x6c, 0x00, 0xd6, 0x67, 0x65, 0x6f, 0x72, 0x00, 0xf8,
+ 0x67, 0x72, 0x65, 0x6b, 0x01, 0x04, 0x68, 0x61, 0x6e, 0x69, 0x01, 0x14,
+ 0x68, 0x65, 0x62, 0x72, 0x01, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x01, 0x2c,
+ 0x6c, 0x61, 0x6f, 0x20, 0x01, 0x38, 0x6c, 0x61, 0x74, 0x6e, 0x01, 0x44,
+ 0x6d, 0x61, 0x74, 0x68, 0x01, 0x9e, 0x6e, 0x6b, 0x6f, 0x20, 0x01, 0xaa,
+ 0x6f, 0x67, 0x61, 0x6d, 0x01, 0xb6, 0x72, 0x75, 0x6e, 0x72, 0x01, 0xc2,
+ 0x74, 0x66, 0x6e, 0x67, 0x01, 0xce, 0x74, 0x68, 0x61, 0x69, 0x01, 0xda,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x16, 0x00, 0x03, 0x4b, 0x55, 0x52, 0x20, 0x00, 0x16,
+ 0x53, 0x4e, 0x44, 0x20, 0x00, 0x16, 0x55, 0x52, 0x44, 0x20, 0x00, 0x16,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x10, 0x00, 0x02,
+ 0x4d, 0x4b, 0x44, 0x20, 0x00, 0x18, 0x53, 0x52, 0x42, 0x20, 0x00, 0x18,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x02, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x04, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x03, 0x00, 0x34,
+ 0x00, 0x08, 0x49, 0x53, 0x4d, 0x20, 0x00, 0x46, 0x4b, 0x53, 0x4d, 0x20,
+ 0x00, 0x46, 0x4c, 0x53, 0x4d, 0x20, 0x00, 0x46, 0x4d, 0x4f, 0x4c, 0x20,
+ 0x00, 0x34, 0x4e, 0x53, 0x4d, 0x20, 0x00, 0x46, 0x52, 0x4f, 0x4d, 0x20,
+ 0x00, 0x34, 0x53, 0x4b, 0x53, 0x20, 0x00, 0x46, 0x53, 0x53, 0x4d, 0x20,
+ 0x00, 0x46, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x07, 0x00, 0x02, 0x00, 0x05, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09,
+ 0x00, 0x0b, 0x00, 0x0d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x01, 0x00, 0x03, 0x00, 0x0e, 0x20, 0x52, 0x51, 0x44, 0x00, 0x56,
+ 0x61, 0x61, 0x6c, 0x74, 0x00, 0x5c, 0x61, 0x61, 0x6c, 0x74, 0x00, 0x62,
+ 0x63, 0x63, 0x6d, 0x70, 0x00, 0x68, 0x63, 0x63, 0x6d, 0x70, 0x00, 0x6e,
+ 0x63, 0x63, 0x6d, 0x70, 0x00, 0x76, 0x64, 0x6c, 0x69, 0x67, 0x00, 0x7e,
+ 0x64, 0x6c, 0x69, 0x67, 0x00, 0x84, 0x68, 0x6c, 0x69, 0x67, 0x00, 0x8a,
+ 0x6c, 0x69, 0x67, 0x61, 0x00, 0x90, 0x6c, 0x6f, 0x63, 0x6c, 0x00, 0x96,
+ 0x6c, 0x6f, 0x63, 0x6c, 0x00, 0x9c, 0x73, 0x61, 0x6c, 0x74, 0x00, 0xa2,
+ 0x73, 0x61, 0x6c, 0x74, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x16,
+ 0x00, 0x2e, 0x00, 0x36, 0x00, 0x3e, 0x00, 0x46, 0x00, 0x60, 0x00, 0x68,
+ 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x00, 0x98,
+ 0x00, 0xa0, 0x00, 0xa8, 0x00, 0xb0, 0x00, 0xb8, 0x00, 0xc0, 0x00, 0xc8,
+ 0x00, 0xd0, 0x00, 0xd8, 0x00, 0xe0, 0x00, 0xe8, 0x00, 0x06, 0x00, 0x09,
+ 0x00, 0x01, 0x00, 0xc2, 0x00, 0x06, 0x00, 0x01, 0x00, 0x01, 0x01, 0x12,
+ 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x3e, 0x00, 0x06, 0x00, 0x00,
+ 0x00, 0x0a, 0x04, 0xb2, 0x05, 0x0a, 0x05, 0x62, 0x05, 0xba, 0x06, 0x12,
+ 0x06, 0x6a, 0x06, 0xac, 0x06, 0xf4, 0x07, 0x3c, 0x07, 0x84, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x07, 0xac, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x07, 0xb0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x07, 0xb4, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x01, 0x07, 0xe8, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
+ 0x07, 0xf8, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x08, 0x9c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x08, 0xba, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0xd8, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x01, 0x08, 0xee, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x09, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x09, 0x52, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x09, 0x88, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x09, 0x90, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x09, 0x98, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x09, 0xa0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x09, 0xa8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x09, 0xb0, 0x00, 0x02,
+ 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x30, 0x00, 0x02, 0x00, 0x02, 0x07, 0x42, 0x07, 0x42, 0x00, 0x00,
+ 0x11, 0x52, 0x11, 0xab, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x07, 0x42,
+ 0x07, 0x42, 0x00, 0x01, 0x11, 0x52, 0x11, 0xab, 0x00, 0x01, 0x00, 0x03,
+ 0x00, 0x08, 0x00, 0x14, 0x00, 0x1e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1e, 0x00, 0x1e,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x16, 0x00, 0x8c,
+ 0x00, 0x8c, 0x00, 0x8c, 0x00, 0x05, 0x00, 0x00, 0x03, 0x0c, 0x03, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x39, 0x00, 0x4c, 0x00, 0x4d,
+ 0x00, 0xf1, 0x02, 0x0b, 0x02, 0x2a, 0x02, 0x5f, 0x02, 0xb1, 0x02, 0xb2,
+ 0x02, 0xb3, 0x02, 0xb4, 0x02, 0xb5, 0x02, 0xb6, 0x02, 0xb7, 0x02, 0xb8,
+ 0x02, 0xb9, 0x02, 0xba, 0x02, 0xbb, 0x02, 0xbc, 0x02, 0xbd, 0x02, 0xbe,
+ 0x02, 0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2, 0x02, 0xc3, 0x02, 0xc4,
+ 0x02, 0xc5, 0x02, 0xee, 0x02, 0xef, 0x02, 0xf0, 0x02, 0xf1, 0x02, 0xf2,
+ 0x02, 0xf3, 0x02, 0xf4, 0x02, 0xf5, 0x02, 0xf7, 0x02, 0xfb, 0x02, 0xfc,
+ 0x02, 0xfd, 0x03, 0x01, 0x03, 0x02, 0x03, 0x04, 0x03, 0x87, 0x03, 0xea,
+ 0x03, 0xec, 0x04, 0x17, 0x04, 0x18, 0x04, 0x19, 0x04, 0x1a, 0x05, 0x7d,
+ 0x06, 0x1b, 0x07, 0xe3, 0x07, 0xe4, 0x07, 0xe5, 0x07, 0xe6, 0x08, 0x31,
+ 0x08, 0x32, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x24, 0x00, 0x3d, 0x00, 0x03,
+ 0x00, 0x45, 0x00, 0x45, 0x00, 0x03, 0x00, 0x47, 0x00, 0x47, 0x00, 0x03,
+ 0x00, 0x49, 0x00, 0x49, 0x00, 0x03, 0x00, 0x4b, 0x00, 0x4b, 0x00, 0x03,
+ 0x00, 0x4c, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x03,
+ 0x00, 0x57, 0x00, 0x57, 0x00, 0x03, 0x00, 0x82, 0x00, 0x98, 0x00, 0x03,
+ 0x00, 0x9a, 0x00, 0xa1, 0x00, 0x03, 0x00, 0xc2, 0x00, 0xc2, 0x00, 0x03,
+ 0x00, 0xc4, 0x00, 0xc4, 0x00, 0x03, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0x03,
+ 0x00, 0xc8, 0x00, 0xc8, 0x00, 0x03, 0x00, 0xca, 0x00, 0xca, 0x00, 0x03,
+ 0x00, 0xcc, 0x00, 0xcc, 0x00, 0x03, 0x00, 0xce, 0x00, 0xce, 0x00, 0x03,
+ 0x00, 0xd0, 0x00, 0xd0, 0x00, 0x03, 0x00, 0xd2, 0x00, 0xd2, 0x00, 0x03,
+ 0x00, 0xd4, 0x00, 0xd4, 0x00, 0x03, 0x00, 0xd6, 0x00, 0xd6, 0x00, 0x03,
+ 0x00, 0xd8, 0x00, 0xd8, 0x00, 0x03, 0x00, 0xda, 0x00, 0xda, 0x00, 0x03,
+ 0x00, 0xdc, 0x00, 0xdc, 0x00, 0x03, 0x00, 0xde, 0x00, 0xde, 0x00, 0x03,
+ 0x00, 0xe0, 0x00, 0xe0, 0x00, 0x03, 0x00, 0xe2, 0x00, 0xe2, 0x00, 0x03,
+ 0x00, 0xe4, 0x00, 0xe4, 0x00, 0x03, 0x00, 0xe6, 0x00, 0xea, 0x00, 0x03,
+ 0x00, 0xec, 0x00, 0xec, 0x00, 0x03, 0x00, 0xee, 0x00, 0xee, 0x00, 0x03,
+ 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x03, 0x00, 0xf1, 0x00, 0xf1, 0x00, 0x01,
+ 0x00, 0xf2, 0x00, 0xf2, 0x00, 0x03, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0x03,
+ 0x00, 0xf6, 0x00, 0xf6, 0x00, 0x03, 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x03,
+ 0x00, 0xfb, 0x01, 0x05, 0x00, 0x03, 0x01, 0x07, 0x01, 0x07, 0x00, 0x03,
+ 0x01, 0x09, 0x01, 0x09, 0x00, 0x03, 0x01, 0x0c, 0x01, 0x0c, 0x00, 0x03,
+ 0x01, 0x0e, 0x01, 0x0e, 0x00, 0x03, 0x01, 0x10, 0x01, 0x10, 0x00, 0x03,
+ 0x01, 0x12, 0x01, 0x12, 0x00, 0x03, 0x01, 0x14, 0x01, 0x14, 0x00, 0x03,
+ 0x01, 0x16, 0x01, 0x16, 0x00, 0x03, 0x01, 0x18, 0x01, 0x18, 0x00, 0x03,
+ 0x01, 0x1a, 0x01, 0x1a, 0x00, 0x03, 0x01, 0x1c, 0x01, 0x1c, 0x00, 0x03,
+ 0x01, 0x1e, 0x01, 0x1e, 0x00, 0x03, 0x01, 0x20, 0x01, 0x20, 0x00, 0x03,
+ 0x01, 0x22, 0x01, 0x22, 0x00, 0x03, 0x01, 0x24, 0x01, 0x24, 0x00, 0x03,
+ 0x01, 0x26, 0x01, 0x26, 0x00, 0x03, 0x01, 0x28, 0x01, 0x28, 0x00, 0x03,
+ 0x01, 0x2a, 0x01, 0x2a, 0x00, 0x03, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x03,
+ 0x01, 0x2e, 0x01, 0x2e, 0x00, 0x03, 0x01, 0x30, 0x01, 0x30, 0x00, 0x03,
+ 0x01, 0x32, 0x01, 0x32, 0x00, 0x03, 0x01, 0x34, 0x01, 0x34, 0x00, 0x03,
+ 0x01, 0x36, 0x01, 0x36, 0x00, 0x03, 0x01, 0x38, 0x01, 0x38, 0x00, 0x03,
+ 0x01, 0x3a, 0x01, 0x3b, 0x00, 0x03, 0x01, 0x3d, 0x01, 0x3d, 0x00, 0x03,
+ 0x01, 0x3f, 0x01, 0x3f, 0x00, 0x03, 0x01, 0x41, 0x01, 0x41, 0x00, 0x03,
+ 0x01, 0x48, 0x01, 0x48, 0x00, 0x03, 0x01, 0x52, 0x01, 0x52, 0x00, 0x03,
+ 0x01, 0x54, 0x01, 0x54, 0x00, 0x03, 0x01, 0x56, 0x01, 0x56, 0x00, 0x03,
+ 0x01, 0x79, 0x01, 0x7a, 0x00, 0x03, 0x01, 0x8f, 0x01, 0x8f, 0x00, 0x03,
+ 0x01, 0x91, 0x01, 0x93, 0x00, 0x03, 0x01, 0x95, 0x01, 0x95, 0x00, 0x03,
+ 0x01, 0xa4, 0x01, 0xa4, 0x00, 0x03, 0x01, 0xac, 0x01, 0xac, 0x00, 0x03,
+ 0x01, 0xae, 0x01, 0xae, 0x00, 0x03, 0x01, 0xda, 0x01, 0xda, 0x00, 0x03,
+ 0x01, 0xdc, 0x01, 0xdc, 0x00, 0x03, 0x01, 0xf0, 0x01, 0xf0, 0x00, 0x03,
+ 0x01, 0xf4, 0x01, 0xf4, 0x00, 0x03, 0x02, 0x0b, 0x02, 0x0b, 0x00, 0x01,
+ 0x02, 0x2a, 0x02, 0x2a, 0x00, 0x01, 0x02, 0x5f, 0x02, 0x5f, 0x00, 0x01,
+ 0x02, 0xb1, 0x02, 0xc5, 0x00, 0x02, 0x02, 0xc7, 0x02, 0xca, 0x00, 0x04,
+ 0x02, 0xcd, 0x02, 0xe4, 0x00, 0x04, 0x02, 0xea, 0x02, 0xed, 0x00, 0x04,
+ 0x02, 0xee, 0x02, 0xf5, 0x00, 0x02, 0x02, 0xf6, 0x02, 0xf6, 0x00, 0x04,
+ 0x02, 0xf7, 0x02, 0xf7, 0x00, 0x02, 0x02, 0xf8, 0x02, 0xfa, 0x00, 0x04,
+ 0x02, 0xfb, 0x02, 0xfd, 0x00, 0x02, 0x02, 0xfe, 0x02, 0xff, 0x00, 0x04,
+ 0x03, 0x01, 0x03, 0x02, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x04,
+ 0x03, 0x04, 0x03, 0x04, 0x00, 0x02, 0x03, 0x87, 0x03, 0x87, 0x00, 0x01,
+ 0x03, 0xea, 0x03, 0xea, 0x00, 0x01, 0x03, 0xec, 0x03, 0xec, 0x00, 0x01,
+ 0x04, 0x17, 0x04, 0x1a, 0x00, 0x02, 0x05, 0x7d, 0x05, 0x7d, 0x00, 0x01,
+ 0x06, 0x1b, 0x06, 0x1b, 0x00, 0x01, 0x07, 0xe3, 0x07, 0xe6, 0x00, 0x02,
+ 0x08, 0x31, 0x08, 0x32, 0x00, 0x01, 0x00, 0x03, 0x00, 0x08, 0x00, 0x16,
+ 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x0f, 0x00, 0x03, 0x00, 0x08, 0x00, 0x16, 0x00, 0x26, 0x00, 0x01,
+ 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e,
+ 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x02,
+ 0x00, 0x12, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x24, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x34, 0x00, 0x46, 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x02, 0x02, 0xa7, 0x02, 0xa7, 0x00, 0x01, 0x02, 0xa8, 0x02, 0xab,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x10, 0x00, 0x02, 0x00, 0x12, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x24,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x34, 0x00, 0x46, 0x00, 0x02, 0x00, 0x01,
+ 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x02, 0xa7, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x12, 0x00, 0x1c,
+ 0x00, 0x24, 0x00, 0x24, 0x00, 0x03, 0x00, 0x00, 0x00, 0x34, 0x00, 0x46,
+ 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0xa7, 0x00, 0x05,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x12, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02,
+ 0x00, 0x12, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x24, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x34, 0x00, 0x46, 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x02, 0xa7, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x13, 0x00, 0x02, 0x00, 0x12, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x24,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x34, 0x00, 0x46, 0x00, 0x02, 0x00, 0x01,
+ 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02, 0xa7, 0x02, 0xaa, 0x00, 0x02,
+ 0x02, 0xab, 0x02, 0xab, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x12, 0x00, 0x18,
+ 0x00, 0x18, 0x00, 0x28, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x02, 0xa7, 0x00, 0x02, 0x00, 0x02, 0x02, 0xa7,
+ 0x02, 0xa7, 0x00, 0x01, 0x0e, 0xaa, 0x0e, 0xad, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15,
+ 0x00, 0x02, 0x00, 0x12, 0x00, 0x18, 0x00, 0x18, 0x00, 0x2e, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0xa8,
+ 0x00, 0x02, 0x00, 0x03, 0x02, 0xa8, 0x02, 0xa8, 0x00, 0x01, 0x0e, 0xae,
+ 0x0e, 0xae, 0x00, 0x02, 0x0e, 0xb0, 0x0e, 0xb2, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15,
+ 0x00, 0x02, 0x00, 0x12, 0x00, 0x18, 0x00, 0x18, 0x00, 0x2e, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0xa9,
+ 0x00, 0x02, 0x00, 0x03, 0x02, 0xa9, 0x02, 0xa9, 0x00, 0x01, 0x0e, 0xb3,
+ 0x0e, 0xb4, 0x00, 0x02, 0x0e, 0xb6, 0x0e, 0xb7, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15,
+ 0x00, 0x02, 0x00, 0x12, 0x00, 0x18, 0x00, 0x18, 0x00, 0x2e, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0xaa,
+ 0x00, 0x02, 0x00, 0x03, 0x02, 0xaa, 0x02, 0xaa, 0x00, 0x01, 0x0e, 0xb8,
+ 0x0e, 0xba, 0x00, 0x02, 0x0e, 0xbc, 0x0e, 0xbc, 0x00, 0x02, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15,
+ 0x00, 0x02, 0x00, 0x12, 0x00, 0x18, 0x00, 0x18, 0x00, 0x28, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0xab,
+ 0x00, 0x02, 0x00, 0x02, 0x02, 0xab, 0x02, 0xab, 0x00, 0x01, 0x0e, 0xbd,
+ 0x0e, 0xc0, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x01, 0x00, 0x06, 0x0b, 0x43,
+ 0x00, 0x01, 0x00, 0x01, 0x03, 0xc5, 0x00, 0x01, 0x00, 0x06, 0x10, 0x0f,
+ 0x00, 0x01, 0x00, 0x01, 0x01, 0x0c, 0x00, 0x01, 0x00, 0x36, 0x00, 0x01,
+ 0x00, 0x08, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x1c, 0x00, 0x22,
+ 0x00, 0x28, 0x0f, 0x0d, 0x00, 0x03, 0x00, 0x49, 0x00, 0x4f, 0x0f, 0x0c,
+ 0x00, 0x03, 0x00, 0x49, 0x00, 0x4c, 0x0f, 0x0b, 0x00, 0x02, 0x00, 0x4f,
+ 0x0f, 0x0a, 0x00, 0x02, 0x00, 0x4c, 0x0f, 0x09, 0x00, 0x02, 0x00, 0x49,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x49, 0x00, 0x01, 0x00, 0x12, 0x00, 0x01,
+ 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x0f, 0x0f, 0x00, 0x02, 0x00, 0x57,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x56, 0x00, 0x01, 0x00, 0x12, 0x00, 0x01,
+ 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x0f, 0x0e, 0x00, 0x02, 0x00, 0x57,
+ 0x00, 0x01, 0x00, 0x01, 0x01, 0x41, 0x00, 0x01, 0x00, 0x88, 0x00, 0x08,
+ 0x00, 0x16, 0x00, 0x28, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x50, 0x00, 0x5a,
+ 0x00, 0x66, 0x00, 0x72, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0c, 0x07, 0x7e,
+ 0x00, 0x02, 0x00, 0x22, 0x07, 0x71, 0x00, 0x02, 0x00, 0x04, 0x00, 0x02,
+ 0x00, 0x06, 0x00, 0x0c, 0x07, 0x7d, 0x00, 0x02, 0x00, 0x04, 0x07, 0x7c,
+ 0x00, 0x02, 0x00, 0x22, 0x00, 0x01, 0x00, 0x04, 0x08, 0x24, 0x00, 0x03,
+ 0x00, 0x24, 0x00, 0x3b, 0x00, 0x01, 0x00, 0x04, 0x07, 0xd2, 0x00, 0x02,
+ 0x00, 0x56, 0x00, 0x01, 0x00, 0x04, 0x08, 0x09, 0x00, 0x02, 0x00, 0x30,
+ 0x00, 0x01, 0x00, 0x04, 0x08, 0x0a, 0x00, 0x03, 0x00, 0x28, 0x00, 0x2f,
+ 0x00, 0x01, 0x00, 0x04, 0x07, 0xea, 0x00, 0x03, 0x00, 0x12, 0x00, 0x46,
+ 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x07, 0xf0, 0x00, 0x03, 0x00, 0x12,
+ 0x00, 0x58, 0x07, 0xef, 0x00, 0x03, 0x00, 0x12, 0x00, 0x52, 0x00, 0x01,
+ 0x00, 0x08, 0x00, 0x04, 0x00, 0x22, 0x00, 0x29, 0x00, 0x35, 0x00, 0x36,
+ 0x00, 0x37, 0x00, 0x44, 0x00, 0x46, 0x00, 0x02, 0x00, 0x14, 0x00, 0x07,
+ 0x03, 0x67, 0x03, 0x66, 0x03, 0x68, 0x03, 0x64, 0x03, 0x65, 0x03, 0x6a,
+ 0x03, 0x69, 0x00, 0x01, 0x00, 0x07, 0x03, 0x23, 0x03, 0x39, 0x03, 0x3f,
+ 0x03, 0x46, 0x03, 0x4c, 0x03, 0x54, 0x03, 0x5a, 0x00, 0x02, 0x00, 0x14,
+ 0x00, 0x07, 0x03, 0x67, 0x03, 0x66, 0x03, 0x68, 0x03, 0x64, 0x03, 0x65,
+ 0x03, 0x6a, 0x03, 0x69, 0x00, 0x01, 0x00, 0x07, 0x03, 0x23, 0x03, 0x39,
+ 0x03, 0x3f, 0x03, 0x46, 0x03, 0x4c, 0x03, 0x54, 0x03, 0x5a, 0x00, 0x02,
+ 0x00, 0x10, 0x00, 0x05, 0x11, 0x48, 0x11, 0x34, 0x02, 0x13, 0x11, 0x3e,
+ 0x11, 0x1b, 0x00, 0x01, 0x00, 0x05, 0x00, 0x2c, 0x00, 0x2d, 0x00, 0x44,
+ 0x00, 0x4f, 0x01, 0x0c, 0x00, 0x01, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x12,
+ 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x26, 0x00, 0x01,
+ 0x11, 0x48, 0x00, 0x01, 0x11, 0x34, 0x00, 0x01, 0x02, 0x13, 0x00, 0x01,
+ 0x11, 0x3e, 0x00, 0x01, 0x11, 0xb8, 0x00, 0x01, 0x11, 0x1b, 0x00, 0x01,
+ 0x00, 0x06, 0x00, 0x2c, 0x00, 0x2d, 0x00, 0x44, 0x00, 0x4f, 0x00, 0x5c,
+ 0x01, 0x0c, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x0c, 0x10, 0xee, 0x10, 0xec,
+ 0x10, 0xef, 0x10, 0xed, 0x10, 0xf2, 0x10, 0xf3, 0x10, 0xeb, 0x11, 0xac,
+ 0x10, 0xf4, 0x10, 0xf0, 0x10, 0xf5, 0x10, 0xf1, 0x00, 0x01, 0x00, 0x0c,
+ 0x02, 0xb1, 0x02, 0xb2, 0x02, 0xb3, 0x02, 0xb4, 0x02, 0xb7, 0x02, 0xb8,
+ 0x02, 0xb9, 0x02, 0xbb, 0x02, 0xbc, 0x02, 0xbd, 0x02, 0xc0, 0x02, 0xc2,
+ 0x00, 0x02, 0x00, 0x20, 0x00, 0x0d, 0x00, 0xf3, 0x01, 0xf9, 0x11, 0x42,
+ 0x02, 0x21, 0x11, 0x1c, 0x11, 0x1d, 0x01, 0xf9, 0x00, 0xf3, 0x01, 0xf9,
+ 0x11, 0x45, 0x11, 0x46, 0x11, 0x43, 0x11, 0x44, 0x00, 0x01, 0x00, 0x0d,
+ 0x00, 0x4c, 0x00, 0x4d, 0x00, 0xf1, 0x02, 0x0b, 0x02, 0x2a, 0x02, 0x5f,
+ 0x03, 0x87, 0x03, 0xea, 0x03, 0xec, 0x05, 0x7d, 0x06, 0x1b, 0x08, 0x31,
+ 0x08, 0x32, 0x00, 0x01, 0x00, 0x06, 0x0c, 0x02, 0x00, 0x02, 0x00, 0x01,
+ 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x0c, 0x07,
+ 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x06, 0x0c, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x0c, 0x11, 0x00, 0x02, 0x00, 0x01,
+ 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x0c, 0x16,
+ 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x10, 0x00, 0x05, 0x0e, 0xc2, 0x0e, 0xc2, 0x0e, 0xc2, 0x0e, 0xc2,
+ 0x0e, 0xc2, 0x00, 0x02, 0x00, 0x01, 0x02, 0xa7, 0x02, 0xab, 0x00, 0x00,
+ 0x00, 0x01, 0x03, 0xa6, 0x01, 0x90, 0x00, 0x04, 0x00, 0x00, 0x05, 0x33,
+ 0x05, 0x99, 0x00, 0x00, 0x01, 0x1e, 0x05, 0x33, 0x05, 0x99, 0x00, 0x00,
+ 0x03, 0xd7, 0x00, 0x66, 0x02, 0x12, 0x00, 0x00, 0x02, 0x0b, 0x06, 0x06,
+ 0x03, 0x08, 0x04, 0x02, 0x02, 0x04, 0xe0, 0x00, 0x02, 0xff, 0x52, 0x00,
+ 0xfd, 0xff, 0x02, 0x24, 0x00, 0x21, 0x04, 0x00, 0x20, 0x00, 0x50, 0x66,
+ 0x45, 0x64, 0x00, 0x40, 0x00, 0x20, 0xff, 0xff, 0x06, 0x14, 0xfe, 0x14,
+ 0x01, 0x9a, 0x07, 0x6d, 0x01, 0xe3, 0x60, 0x00, 0x01, 0xff, 0xdf, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x8c,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x00, 0x03, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00, 0x04, 0x8c,
+ 0x00, 0x04, 0x04, 0x60, 0x00, 0x00, 0x01, 0x14, 0x01, 0x00, 0x00, 0x07,
+ 0x00, 0x14, 0x00, 0x00, 0x00, 0x7e, 0x02, 0xe9, 0x02, 0xee, 0x02, 0xf3,
+ 0x02, 0xf7, 0x03, 0x4f, 0x03, 0x53, 0x03, 0x58, 0x03, 0x5a, 0x03, 0x62,
+ 0x03, 0x77, 0x03, 0x7e, 0x03, 0x8a, 0x03, 0x8c, 0x03, 0xa1, 0x05, 0x25,
+ 0x1d, 0x14, 0x1d, 0x23, 0x1d, 0x2e, 0x1d, 0x5b, 0x1d, 0x6a, 0x1d, 0x78,
+ 0x1d, 0x7b, 0x1d, 0x7d, 0x1d, 0x85, 0x1d, 0xbf, 0x1d, 0xc9, 0x1e, 0xfb,
+ 0x1f, 0x15, 0x1f, 0x1d, 0x1f, 0x45, 0x1f, 0x4d, 0x1f, 0x57, 0x1f, 0x59,
+ 0x1f, 0x5b, 0x1f, 0x5d, 0x1f, 0x7d, 0x1f, 0xb4, 0x1f, 0xc4, 0x1f, 0xd3,
+ 0x1f, 0xdb, 0x1f, 0xef, 0x1f, 0xf4, 0x1f, 0xfe, 0x20, 0x64, 0x20, 0x71,
+ 0x20, 0x8e, 0x20, 0x9c, 0x20, 0xb5, 0x20, 0xba, 0x20, 0xd1, 0x20, 0xd7,
+ 0x20, 0xdc, 0x20, 0xe1, 0x21, 0x09, 0x21, 0x49, 0x21, 0x4b, 0x21, 0x4e,
+ 0x21, 0x85, 0x21, 0x89, 0x23, 0x11, 0x23, 0x19, 0x23, 0x21, 0x23, 0x28,
+ 0x23, 0x2c, 0x23, 0x75, 0x23, 0x7a, 0x23, 0x7d, 0x23, 0x87, 0x23, 0x94,
+ 0x23, 0xae, 0x23, 0xcf, 0x23, 0xe3, 0x23, 0xe5, 0x23, 0xe8, 0x24, 0x23,
+ 0x24, 0x69, 0x26, 0x9c, 0x26, 0xb8, 0x26, 0xc3, 0x26, 0xe2, 0x27, 0x04,
+ 0x27, 0x09, 0x27, 0x27, 0x27, 0x4b, 0x27, 0x4d, 0x27, 0x52, 0x27, 0x56,
+ 0x27, 0x5e, 0x27, 0x94, 0x27, 0xaf, 0x27, 0xbe, 0x27, 0xc6, 0x27, 0xe0,
+ 0x27, 0xeb, 0x28, 0xff, 0x29, 0x07, 0x29, 0x0b, 0x29, 0x41, 0x29, 0x84,
+ 0x29, 0xd5, 0x29, 0xeb, 0x29, 0xfb, 0x2a, 0x02, 0x2a, 0x1c, 0x2a, 0x2f,
+ 0x2a, 0x6b, 0x2a, 0xa0, 0x2a, 0xba, 0x2a, 0xfa, 0x2b, 0x1a, 0x2b, 0x24,
+ 0x2b, 0x54, 0x2c, 0x77, 0x2c, 0x7f, 0xa7, 0x16, 0xa7, 0x1f, 0xa7, 0x2b,
+ 0xa7, 0x41, 0xa7, 0x4b, 0xa7, 0x53, 0xa7, 0x57, 0xa7, 0x67, 0xa7, 0x83,
+ 0xa7, 0x8e, 0xa7, 0x91, 0xa7, 0xaa, 0xa7, 0xff, 0xef, 0x19, 0xf0, 0x03,
+ 0xf4, 0x26, 0xf4, 0x41, 0xf6, 0xc5, 0xfb, 0x06, 0xfe, 0x23, 0xff, 0xfd,
+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xa0, 0x02, 0xec,
+ 0x02, 0xf3, 0x02, 0xf7, 0x03, 0x00, 0x03, 0x51, 0x03, 0x57, 0x03, 0x5a,
+ 0x03, 0x5c, 0x03, 0x70, 0x03, 0x7a, 0x03, 0x84, 0x03, 0x8c, 0x03, 0x8e,
+ 0x03, 0xa3, 0x1d, 0x00, 0x1d, 0x16, 0x1d, 0x26, 0x1d, 0x30, 0x1d, 0x5d,
+ 0x1d, 0x77, 0x1d, 0x7b, 0x1d, 0x7d, 0x1d, 0x85, 0x1d, 0x9b, 0x1d, 0xc4,
+ 0x1e, 0x00, 0x1f, 0x00, 0x1f, 0x18, 0x1f, 0x20, 0x1f, 0x48, 0x1f, 0x50,
+ 0x1f, 0x59, 0x1f, 0x5b, 0x1f, 0x5d, 0x1f, 0x5f, 0x1f, 0x80, 0x1f, 0xb6,
+ 0x1f, 0xc6, 0x1f, 0xd6, 0x1f, 0xdd, 0x1f, 0xf2, 0x1f, 0xf6, 0x20, 0x00,
+ 0x20, 0x6a, 0x20, 0x74, 0x20, 0x90, 0x20, 0xa0, 0x20, 0xb8, 0x20, 0xd0,
+ 0x20, 0xd6, 0x20, 0xdb, 0x20, 0xe1, 0x21, 0x00, 0x21, 0x0b, 0x21, 0x4b,
+ 0x21, 0x4e, 0x21, 0x50, 0x21, 0x89, 0x21, 0x90, 0x23, 0x18, 0x23, 0x1c,
+ 0x23, 0x24, 0x23, 0x2b, 0x23, 0x73, 0x23, 0x7a, 0x23, 0x7d, 0x23, 0x87,
+ 0x23, 0x94, 0x23, 0x9b, 0x23, 0xce, 0x23, 0xe3, 0x23, 0xe5, 0x23, 0xe8,
+ 0x24, 0x22, 0x24, 0x60, 0x25, 0x00, 0x26, 0xa0, 0x26, 0xc0, 0x26, 0xe2,
+ 0x27, 0x01, 0x27, 0x06, 0x27, 0x0c, 0x27, 0x29, 0x27, 0x4d, 0x27, 0x4f,
+ 0x27, 0x56, 0x27, 0x58, 0x27, 0x61, 0x27, 0x98, 0x27, 0xb1, 0x27, 0xc5,
+ 0x27, 0xe0, 0x27, 0xe6, 0x27, 0xf0, 0x29, 0x06, 0x29, 0x0a, 0x29, 0x40,
+ 0x29, 0x83, 0x29, 0xce, 0x29, 0xeb, 0x29, 0xfa, 0x2a, 0x00, 0x2a, 0x0c,
+ 0x2a, 0x2f, 0x2a, 0x6a, 0x2a, 0x7d, 0x2a, 0xae, 0x2a, 0xf9, 0x2b, 0x00,
+ 0x2b, 0x1f, 0x2b, 0x53, 0x2c, 0x60, 0x2c, 0x79, 0xa7, 0x08, 0xa7, 0x1b,
+ 0xa7, 0x22, 0xa7, 0x30, 0xa7, 0x46, 0xa7, 0x4e, 0xa7, 0x56, 0xa7, 0x64,
+ 0xa7, 0x80, 0xa7, 0x89, 0xa7, 0x90, 0xa7, 0xa0, 0xa7, 0xfa, 0xef, 0x00,
+ 0xf0, 0x00, 0xf4, 0x00, 0xf4, 0x28, 0xf6, 0xc5, 0xfb, 0x00, 0xfe, 0x20,
+ 0xff, 0xf9, 0xff, 0xff, 0x00, 0x00, 0xff, 0xe3, 0xff, 0xc2, 0xff, 0xc0,
+ 0xff, 0xbc, 0xff, 0xb9, 0xff, 0xb1, 0xff, 0xb0, 0xff, 0xad, 0xff, 0xac,
+ 0xff, 0xab, 0xff, 0x9e, 0xff, 0x9c, 0xff, 0x97, 0xff, 0x96, 0xff, 0x95,
+ 0xff, 0x94, 0xe7, 0xba, 0xe7, 0xb9, 0xe7, 0xb7, 0xe7, 0xb6, 0xe7, 0xb5,
+ 0xe7, 0xa9, 0xe7, 0xa7, 0xe7, 0xa6, 0xe7, 0x9f, 0xe7, 0x8a, 0xe7, 0x86,
+ 0xe7, 0x50, 0xe7, 0x4c, 0xe7, 0x4a, 0xe7, 0x48, 0xe7, 0x46, 0xe7, 0x44,
+ 0xe7, 0x43, 0xe7, 0x42, 0xe7, 0x41, 0xe7, 0x40, 0xe7, 0x3e, 0xe7, 0x3d,
+ 0xe7, 0x3c, 0xe7, 0x3a, 0xe7, 0x39, 0xe7, 0x37, 0xe7, 0x36, 0xe7, 0x35,
+ 0xe7, 0x30, 0xe7, 0x2e, 0xe7, 0x2d, 0xe7, 0x2a, 0xe7, 0x28, 0xe7, 0x13,
+ 0xe7, 0x0f, 0xe7, 0x0c, 0xe7, 0x08, 0xe6, 0xea, 0xe6, 0xe9, 0xe6, 0xe8,
+ 0xe6, 0xe6, 0xe6, 0xe5, 0xe6, 0xe2, 0xe6, 0xdc, 0xe6, 0xd6, 0xe6, 0xd4,
+ 0xe6, 0xd2, 0xe6, 0xd0, 0xe6, 0x8a, 0xe6, 0x86, 0xe6, 0x84, 0xe6, 0x7b,
+ 0xe6, 0x6f, 0xe6, 0x69, 0xe6, 0x4a, 0xe6, 0x37, 0xe6, 0x36, 0xe6, 0x34,
+ 0xe5, 0xfb, 0xe5, 0xbf, 0xe5, 0x29, 0xe5, 0x26, 0xe5, 0x1f, 0xe5, 0x01,
+ 0xe4, 0xe3, 0xe4, 0xe2, 0xe4, 0xe0, 0xe4, 0xdf, 0xe4, 0xde, 0xe4, 0xdd,
+ 0xe4, 0xda, 0xe4, 0xd9, 0xe4, 0xd7, 0xe4, 0xd4, 0xe4, 0xd3, 0xe4, 0xcd,
+ 0xe4, 0xb4, 0xe4, 0xaf, 0xe4, 0xab, 0xe4, 0xa5, 0xe4, 0xa3, 0xe4, 0x6f,
+ 0xe4, 0x2e, 0xe3, 0xe5, 0xe3, 0xd0, 0xe3, 0xc2, 0xe3, 0xbe, 0xe3, 0xb5,
+ 0xe3, 0xa3, 0xe3, 0x69, 0xe3, 0x58, 0xe3, 0x4b, 0xe3, 0x0d, 0xe3, 0x08,
+ 0xe3, 0x04, 0xe2, 0xd6, 0xe1, 0xcb, 0xe1, 0xca, 0x67, 0x42, 0x67, 0x3e,
+ 0x67, 0x3c, 0x67, 0x38, 0x67, 0x34, 0x67, 0x32, 0x67, 0x30, 0x67, 0x24,
+ 0x67, 0x0c, 0x67, 0x07, 0x67, 0x06, 0x66, 0xf8, 0x66, 0xa9, 0x1f, 0xa9,
+ 0x1e, 0xc3, 0x1a, 0xc7, 0x1a, 0xc6, 0x18, 0x43, 0x14, 0x09, 0x10, 0xf0,
+ 0x0f, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xa0,
+ 0x00, 0x00, 0x02, 0xe9, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x02, 0xec,
+ 0x00, 0x00, 0x02, 0xee, 0x00, 0x00, 0x02, 0xac, 0x00, 0x00, 0x02, 0xf3,
+ 0x00, 0x00, 0x02, 0xf3, 0x00, 0x00, 0x02, 0xaf, 0x00, 0x00, 0x02, 0xf7,
+ 0x00, 0x00, 0x02, 0xf7, 0x00, 0x00, 0x02, 0xb0, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x03, 0x4f, 0x00, 0x00, 0x02, 0xb1, 0x00, 0x00, 0x03, 0x51,
+ 0x00, 0x00, 0x03, 0x53, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x03, 0x57,
+ 0x00, 0x00, 0x03, 0x58, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x03, 0x5a,
+ 0x00, 0x00, 0x03, 0x5a, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x03, 0x5c,
+ 0x00, 0x00, 0x03, 0x62, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x70,
+ 0x00, 0x00, 0x03, 0x77, 0x00, 0x00, 0x03, 0x0e, 0x00, 0x00, 0x03, 0x7a,
+ 0x00, 0x00, 0x03, 0x7e, 0x00, 0x00, 0x03, 0x16, 0x00, 0x00, 0x03, 0x84,
+ 0x00, 0x00, 0x03, 0x8a, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x03, 0x8c,
+ 0x00, 0x00, 0x03, 0x8c, 0x00, 0x00, 0x03, 0x22, 0x00, 0x00, 0x03, 0x8e,
+ 0x00, 0x00, 0x03, 0xa1, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x03, 0xa3,
+ 0x00, 0x00, 0x05, 0x25, 0x00, 0x00, 0x03, 0x37, 0x00, 0x00, 0x1d, 0x00,
+ 0x00, 0x00, 0x1d, 0x14, 0x00, 0x00, 0x04, 0xba, 0x00, 0x00, 0x1d, 0x16,
+ 0x00, 0x00, 0x1d, 0x23, 0x00, 0x00, 0x04, 0xcf, 0x00, 0x00, 0x1d, 0x26,
+ 0x00, 0x00, 0x1d, 0x2e, 0x00, 0x00, 0x04, 0xdd, 0x00, 0x00, 0x1d, 0x30,
+ 0x00, 0x00, 0x1d, 0x5b, 0x00, 0x00, 0x04, 0xe6, 0x00, 0x00, 0x1d, 0x5d,
+ 0x00, 0x00, 0x1d, 0x6a, 0x00, 0x00, 0x05, 0x12, 0x00, 0x00, 0x1d, 0x77,
+ 0x00, 0x00, 0x1d, 0x78, 0x00, 0x00, 0x05, 0x20, 0x00, 0x00, 0x1d, 0x7b,
+ 0x00, 0x00, 0x1d, 0x7b, 0x00, 0x00, 0x05, 0x22, 0x00, 0x00, 0x1d, 0x7d,
+ 0x00, 0x00, 0x1d, 0x7d, 0x00, 0x00, 0x05, 0x23, 0x00, 0x00, 0x1d, 0x85,
+ 0x00, 0x00, 0x1d, 0x85, 0x00, 0x00, 0x05, 0x24, 0x00, 0x00, 0x1d, 0x9b,
+ 0x00, 0x00, 0x1d, 0xbf, 0x00, 0x00, 0x05, 0x25, 0x00, 0x00, 0x1d, 0xc4,
+ 0x00, 0x00, 0x1d, 0xc9, 0x00, 0x00, 0x05, 0x4a, 0x00, 0x00, 0x1e, 0x00,
+ 0x00, 0x00, 0x1e, 0xfb, 0x00, 0x00, 0x05, 0x50, 0x00, 0x00, 0x1f, 0x00,
+ 0x00, 0x00, 0x1f, 0x15, 0x00, 0x00, 0x06, 0x4c, 0x00, 0x00, 0x1f, 0x18,
+ 0x00, 0x00, 0x1f, 0x1d, 0x00, 0x00, 0x06, 0x62, 0x00, 0x00, 0x1f, 0x20,
+ 0x00, 0x00, 0x1f, 0x45, 0x00, 0x00, 0x06, 0x68, 0x00, 0x00, 0x1f, 0x48,
+ 0x00, 0x00, 0x1f, 0x4d, 0x00, 0x00, 0x06, 0x8e, 0x00, 0x00, 0x1f, 0x50,
+ 0x00, 0x00, 0x1f, 0x57, 0x00, 0x00, 0x06, 0x94, 0x00, 0x00, 0x1f, 0x59,
+ 0x00, 0x00, 0x1f, 0x59, 0x00, 0x00, 0x06, 0x9c, 0x00, 0x00, 0x1f, 0x5b,
+ 0x00, 0x00, 0x1f, 0x5b, 0x00, 0x00, 0x06, 0x9d, 0x00, 0x00, 0x1f, 0x5d,
+ 0x00, 0x00, 0x1f, 0x5d, 0x00, 0x00, 0x06, 0x9e, 0x00, 0x00, 0x1f, 0x5f,
+ 0x00, 0x00, 0x1f, 0x7d, 0x00, 0x00, 0x06, 0x9f, 0x00, 0x00, 0x1f, 0x80,
+ 0x00, 0x00, 0x1f, 0xb4, 0x00, 0x00, 0x06, 0xbe, 0x00, 0x00, 0x1f, 0xb6,
+ 0x00, 0x00, 0x1f, 0xc4, 0x00, 0x00, 0x06, 0xf3, 0x00, 0x00, 0x1f, 0xc6,
+ 0x00, 0x00, 0x1f, 0xd3, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x1f, 0xd6,
+ 0x00, 0x00, 0x1f, 0xdb, 0x00, 0x00, 0x07, 0x10, 0x00, 0x00, 0x1f, 0xdd,
+ 0x00, 0x00, 0x1f, 0xef, 0x00, 0x00, 0x07, 0x16, 0x00, 0x00, 0x1f, 0xf2,
+ 0x00, 0x00, 0x1f, 0xf4, 0x00, 0x00, 0x07, 0x29, 0x00, 0x00, 0x1f, 0xf6,
+ 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x07, 0x2c, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x20, 0x64, 0x00, 0x00, 0x07, 0x35, 0x00, 0x00, 0x20, 0x6a,
+ 0x00, 0x00, 0x20, 0x71, 0x00, 0x00, 0x07, 0x9a, 0x00, 0x00, 0x20, 0x74,
+ 0x00, 0x00, 0x20, 0x8e, 0x00, 0x00, 0x07, 0xa2, 0x00, 0x00, 0x20, 0x90,
+ 0x00, 0x00, 0x20, 0x9c, 0x00, 0x00, 0x07, 0xbd, 0x00, 0x00, 0x20, 0xa0,
+ 0x00, 0x00, 0x20, 0xb5, 0x00, 0x00, 0x07, 0xca, 0x00, 0x00, 0x20, 0xb8,
+ 0x00, 0x00, 0x20, 0xba, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x20, 0xd0,
+ 0x00, 0x00, 0x20, 0xd1, 0x00, 0x00, 0x07, 0xe3, 0x00, 0x00, 0x20, 0xd6,
+ 0x00, 0x00, 0x20, 0xd7, 0x00, 0x00, 0x07, 0xe5, 0x00, 0x00, 0x20, 0xdb,
+ 0x00, 0x00, 0x20, 0xdc, 0x00, 0x00, 0x07, 0xe7, 0x00, 0x00, 0x20, 0xe1,
+ 0x00, 0x00, 0x20, 0xe1, 0x00, 0x00, 0x07, 0xe9, 0x00, 0x00, 0x21, 0x00,
+ 0x00, 0x00, 0x21, 0x09, 0x00, 0x00, 0x07, 0xea, 0x00, 0x00, 0x21, 0x0b,
+ 0x00, 0x00, 0x21, 0x49, 0x00, 0x00, 0x07, 0xf4, 0x00, 0x00, 0x21, 0x4b,
+ 0x00, 0x00, 0x21, 0x4b, 0x00, 0x00, 0x08, 0x33, 0x00, 0x00, 0x21, 0x4e,
+ 0x00, 0x00, 0x21, 0x4e, 0x00, 0x00, 0x08, 0x34, 0x00, 0x00, 0x21, 0x50,
+ 0x00, 0x00, 0x21, 0x85, 0x00, 0x00, 0x08, 0x35, 0x00, 0x00, 0x21, 0x89,
+ 0x00, 0x00, 0x21, 0x89, 0x00, 0x00, 0x08, 0x6b, 0x00, 0x00, 0x21, 0x90,
+ 0x00, 0x00, 0x23, 0x11, 0x00, 0x00, 0x08, 0x6c, 0x00, 0x00, 0x23, 0x18,
+ 0x00, 0x00, 0x23, 0x19, 0x00, 0x00, 0x09, 0xee, 0x00, 0x00, 0x23, 0x1c,
+ 0x00, 0x00, 0x23, 0x21, 0x00, 0x00, 0x09, 0xf0, 0x00, 0x00, 0x23, 0x24,
+ 0x00, 0x00, 0x23, 0x28, 0x00, 0x00, 0x09, 0xf6, 0x00, 0x00, 0x23, 0x2b,
+ 0x00, 0x00, 0x23, 0x2c, 0x00, 0x00, 0x09, 0xfb, 0x00, 0x00, 0x23, 0x73,
+ 0x00, 0x00, 0x23, 0x75, 0x00, 0x00, 0x09, 0xfd, 0x00, 0x00, 0x23, 0x7a,
+ 0x00, 0x00, 0x23, 0x7a, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x23, 0x7d,
+ 0x00, 0x00, 0x23, 0x7d, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x23, 0x87,
+ 0x00, 0x00, 0x23, 0x87, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x00, 0x23, 0x94,
+ 0x00, 0x00, 0x23, 0x94, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, 0x23, 0x9b,
+ 0x00, 0x00, 0x23, 0xae, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x23, 0xce,
+ 0x00, 0x00, 0x23, 0xcf, 0x00, 0x00, 0x0a, 0x18, 0x00, 0x00, 0x23, 0xe3,
+ 0x00, 0x00, 0x23, 0xe3, 0x00, 0x00, 0x0a, 0x1a, 0x00, 0x00, 0x23, 0xe5,
+ 0x00, 0x00, 0x23, 0xe5, 0x00, 0x00, 0x0a, 0x1b, 0x00, 0x00, 0x23, 0xe8,
+ 0x00, 0x00, 0x23, 0xe8, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x00, 0x24, 0x22,
+ 0x00, 0x00, 0x24, 0x23, 0x00, 0x00, 0x0a, 0x1d, 0x00, 0x00, 0x24, 0x60,
+ 0x00, 0x00, 0x24, 0x69, 0x00, 0x00, 0x0a, 0x1f, 0x00, 0x00, 0x25, 0x00,
+ 0x00, 0x00, 0x26, 0x9c, 0x00, 0x00, 0x0a, 0x29, 0x00, 0x00, 0x26, 0xa0,
+ 0x00, 0x00, 0x26, 0xb8, 0x00, 0x00, 0x0b, 0xc6, 0x00, 0x00, 0x26, 0xc0,
+ 0x00, 0x00, 0x26, 0xc3, 0x00, 0x00, 0x0b, 0xdf, 0x00, 0x00, 0x26, 0xe2,
+ 0x00, 0x00, 0x26, 0xe2, 0x00, 0x00, 0x0b, 0xe3, 0x00, 0x00, 0x27, 0x01,
+ 0x00, 0x00, 0x27, 0x04, 0x00, 0x00, 0x0b, 0xe4, 0x00, 0x00, 0x27, 0x06,
+ 0x00, 0x00, 0x27, 0x09, 0x00, 0x00, 0x0b, 0xe8, 0x00, 0x00, 0x27, 0x0c,
+ 0x00, 0x00, 0x27, 0x27, 0x00, 0x00, 0x0b, 0xec, 0x00, 0x00, 0x27, 0x29,
+ 0x00, 0x00, 0x27, 0x4b, 0x00, 0x00, 0x0c, 0x08, 0x00, 0x00, 0x27, 0x4d,
+ 0x00, 0x00, 0x27, 0x4d, 0x00, 0x00, 0x0c, 0x2b, 0x00, 0x00, 0x27, 0x4f,
+ 0x00, 0x00, 0x27, 0x52, 0x00, 0x00, 0x0c, 0x2c, 0x00, 0x00, 0x27, 0x56,
+ 0x00, 0x00, 0x27, 0x56, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x27, 0x58,
+ 0x00, 0x00, 0x27, 0x5e, 0x00, 0x00, 0x0c, 0x31, 0x00, 0x00, 0x27, 0x61,
+ 0x00, 0x00, 0x27, 0x94, 0x00, 0x00, 0x0c, 0x38, 0x00, 0x00, 0x27, 0x98,
+ 0x00, 0x00, 0x27, 0xaf, 0x00, 0x00, 0x0c, 0x6c, 0x00, 0x00, 0x27, 0xb1,
+ 0x00, 0x00, 0x27, 0xbe, 0x00, 0x00, 0x0c, 0x84, 0x00, 0x00, 0x27, 0xc5,
+ 0x00, 0x00, 0x27, 0xc6, 0x00, 0x00, 0x0c, 0x92, 0x00, 0x00, 0x27, 0xe0,
+ 0x00, 0x00, 0x27, 0xe0, 0x00, 0x00, 0x0c, 0x94, 0x00, 0x00, 0x27, 0xe6,
+ 0x00, 0x00, 0x27, 0xeb, 0x00, 0x00, 0x0c, 0x95, 0x00, 0x00, 0x27, 0xf0,
+ 0x00, 0x00, 0x28, 0xff, 0x00, 0x00, 0x0c, 0x9b, 0x00, 0x00, 0x29, 0x06,
+ 0x00, 0x00, 0x29, 0x07, 0x00, 0x00, 0x0d, 0xab, 0x00, 0x00, 0x29, 0x0a,
+ 0x00, 0x00, 0x29, 0x0b, 0x00, 0x00, 0x0d, 0xad, 0x00, 0x00, 0x29, 0x40,
+ 0x00, 0x00, 0x29, 0x41, 0x00, 0x00, 0x0d, 0xaf, 0x00, 0x00, 0x29, 0x83,
+ 0x00, 0x00, 0x29, 0x84, 0x00, 0x00, 0x0d, 0xb1, 0x00, 0x00, 0x29, 0xce,
+ 0x00, 0x00, 0x29, 0xd5, 0x00, 0x00, 0x0d, 0xb3, 0x00, 0x00, 0x29, 0xeb,
+ 0x00, 0x00, 0x29, 0xeb, 0x00, 0x00, 0x0d, 0xbb, 0x00, 0x00, 0x29, 0xfa,
+ 0x00, 0x00, 0x29, 0xfb, 0x00, 0x00, 0x0d, 0xbc, 0x00, 0x00, 0x2a, 0x00,
+ 0x00, 0x00, 0x2a, 0x02, 0x00, 0x00, 0x0d, 0xbe, 0x00, 0x00, 0x2a, 0x0c,
+ 0x00, 0x00, 0x2a, 0x1c, 0x00, 0x00, 0x0d, 0xc1, 0x00, 0x00, 0x2a, 0x2f,
+ 0x00, 0x00, 0x2a, 0x2f, 0x00, 0x00, 0x0d, 0xd2, 0x00, 0x00, 0x2a, 0x6a,
+ 0x00, 0x00, 0x2a, 0x6b, 0x00, 0x00, 0x0d, 0xd3, 0x00, 0x00, 0x2a, 0x7d,
+ 0x00, 0x00, 0x2a, 0xa0, 0x00, 0x00, 0x0d, 0xd5, 0x00, 0x00, 0x2a, 0xae,
+ 0x00, 0x00, 0x2a, 0xba, 0x00, 0x00, 0x0d, 0xf9, 0x00, 0x00, 0x2a, 0xf9,
+ 0x00, 0x00, 0x2a, 0xfa, 0x00, 0x00, 0x0e, 0x06, 0x00, 0x00, 0x2b, 0x00,
+ 0x00, 0x00, 0x2b, 0x1a, 0x00, 0x00, 0x0e, 0x08, 0x00, 0x00, 0x2b, 0x1f,
+ 0x00, 0x00, 0x2b, 0x24, 0x00, 0x00, 0x0e, 0x23, 0x00, 0x00, 0x2b, 0x53,
+ 0x00, 0x00, 0x2b, 0x54, 0x00, 0x00, 0x0e, 0x29, 0x00, 0x00, 0x2c, 0x60,
+ 0x00, 0x00, 0x2c, 0x77, 0x00, 0x00, 0x0e, 0x2b, 0x00, 0x00, 0x2c, 0x79,
+ 0x00, 0x00, 0x2c, 0x7f, 0x00, 0x00, 0x0e, 0x43, 0x00, 0x00, 0xa7, 0x08,
+ 0x00, 0x00, 0xa7, 0x16, 0x00, 0x00, 0x0e, 0x4a, 0x00, 0x00, 0xa7, 0x1b,
+ 0x00, 0x00, 0xa7, 0x1f, 0x00, 0x00, 0x0e, 0x59, 0x00, 0x00, 0xa7, 0x22,
+ 0x00, 0x00, 0xa7, 0x2b, 0x00, 0x00, 0x0e, 0x5e, 0x00, 0x00, 0xa7, 0x30,
+ 0x00, 0x00, 0xa7, 0x41, 0x00, 0x00, 0x0e, 0x68, 0x00, 0x00, 0xa7, 0x46,
+ 0x00, 0x00, 0xa7, 0x4b, 0x00, 0x00, 0x0e, 0x7a, 0x00, 0x00, 0xa7, 0x4e,
+ 0x00, 0x00, 0xa7, 0x53, 0x00, 0x00, 0x0e, 0x80, 0x00, 0x00, 0xa7, 0x56,
+ 0x00, 0x00, 0xa7, 0x57, 0x00, 0x00, 0x0e, 0x86, 0x00, 0x00, 0xa7, 0x64,
+ 0x00, 0x00, 0xa7, 0x67, 0x00, 0x00, 0x0e, 0x88, 0x00, 0x00, 0xa7, 0x80,
+ 0x00, 0x00, 0xa7, 0x83, 0x00, 0x00, 0x0e, 0x8c, 0x00, 0x00, 0xa7, 0x89,
+ 0x00, 0x00, 0xa7, 0x8e, 0x00, 0x00, 0x0e, 0x90, 0x00, 0x00, 0xa7, 0x90,
+ 0x00, 0x00, 0xa7, 0x91, 0x00, 0x00, 0x0e, 0x96, 0x00, 0x00, 0xa7, 0xa0,
+ 0x00, 0x00, 0xa7, 0xaa, 0x00, 0x00, 0x0e, 0x98, 0x00, 0x00, 0xa7, 0xfa,
+ 0x00, 0x00, 0xa7, 0xff, 0x00, 0x00, 0x0e, 0xa3, 0x00, 0x00, 0xef, 0x00,
+ 0x00, 0x00, 0xef, 0x19, 0x00, 0x00, 0x0e, 0xa9, 0x00, 0x00, 0xf0, 0x00,
+ 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x0e, 0xc3, 0x00, 0x00, 0xf4, 0x00,
+ 0x00, 0x00, 0xf4, 0x26, 0x00, 0x00, 0x0e, 0xc7, 0x00, 0x00, 0xf4, 0x28,
+ 0x00, 0x00, 0xf4, 0x41, 0x00, 0x00, 0x0e, 0xee, 0x00, 0x00, 0xf6, 0xc5,
+ 0x00, 0x00, 0xf6, 0xc5, 0x00, 0x00, 0x0f, 0x08, 0x00, 0x00, 0xfb, 0x00,
+ 0x00, 0x00, 0xfb, 0x06, 0x00, 0x00, 0x0f, 0x09, 0x00, 0x00, 0xfe, 0x20,
+ 0x00, 0x00, 0xfe, 0x23, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xff, 0xf9,
+ 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x0f, 0x14, 0x00, 0x01, 0x03, 0x00,
+ 0x00, 0x01, 0x03, 0x1e, 0x00, 0x00, 0x0f, 0x19, 0x00, 0x01, 0x03, 0x20,
+ 0x00, 0x01, 0x03, 0x23, 0x00, 0x00, 0x0f, 0x38, 0x00, 0x01, 0xd3, 0x00,
+ 0x00, 0x01, 0xd3, 0x56, 0x00, 0x00, 0x0f, 0x3c, 0x00, 0x01, 0xd5, 0x38,
+ 0x00, 0x01, 0xd5, 0x39, 0x00, 0x00, 0x0f, 0x93, 0x00, 0x01, 0xd5, 0x3b,
+ 0x00, 0x01, 0xd5, 0x3e, 0x00, 0x00, 0x0f, 0x95, 0x00, 0x01, 0xd5, 0x40,
+ 0x00, 0x01, 0xd5, 0x44, 0x00, 0x00, 0x0f, 0x99, 0x00, 0x01, 0xd5, 0x46,
+ 0x00, 0x01, 0xd5, 0x46, 0x00, 0x00, 0x0f, 0x9e, 0x00, 0x01, 0xd5, 0x4a,
+ 0x00, 0x01, 0xd5, 0x50, 0x00, 0x00, 0x0f, 0x9f, 0x00, 0x01, 0xd5, 0x52,
+ 0x00, 0x01, 0xd5, 0x6b, 0x00, 0x00, 0x0f, 0xa6, 0x00, 0x01, 0xd5, 0xa0,
+ 0x00, 0x01, 0xd5, 0xd3, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x01, 0xd7, 0xd8,
+ 0x00, 0x01, 0xd7, 0xeb, 0x00, 0x00, 0x0f, 0xf4, 0x00, 0x01, 0xf0, 0x30,
+ 0x00, 0x01, 0xf0, 0x93, 0x00, 0x00, 0x10, 0x08, 0x00, 0x01, 0xf0, 0xa0,
+ 0x00, 0x01, 0xf0, 0xae, 0x00, 0x00, 0x10, 0x6c, 0x00, 0x01, 0xf0, 0xb1,
+ 0x00, 0x01, 0xf0, 0xbe, 0x00, 0x00, 0x10, 0x7b, 0x00, 0x01, 0xf0, 0xc1,
+ 0x00, 0x01, 0xf0, 0xcf, 0x00, 0x00, 0x10, 0x89, 0x00, 0x01, 0xf0, 0xd1,
+ 0x00, 0x01, 0xf0, 0xdf, 0x00, 0x00, 0x10, 0x98, 0x00, 0x01, 0xf4, 0x2d,
+ 0x00, 0x01, 0xf4, 0x2e, 0x00, 0x00, 0x10, 0xa7, 0x00, 0x01, 0xf4, 0x31,
+ 0x00, 0x01, 0xf4, 0x31, 0x00, 0x00, 0x10, 0xa9, 0x00, 0x01, 0xf4, 0x35,
+ 0x00, 0x01, 0xf4, 0x35, 0x00, 0x00, 0x10, 0xaa, 0x00, 0x01, 0xf6, 0x00,
+ 0x00, 0x01, 0xf6, 0x23, 0x00, 0x00, 0x10, 0xab, 0x00, 0x01, 0xf6, 0x25,
+ 0x00, 0x01, 0xf6, 0x2b, 0x00, 0x00, 0x10, 0xcf, 0x00, 0x01, 0xf6, 0x2d,
+ 0x00, 0x01, 0xf6, 0x40, 0x00, 0x00, 0x10, 0xd6, 0x00, 0x06, 0x02, 0x0a,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09,
+ 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f,
+ 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15,
+ 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1a, 0x00, 0x1b,
+ 0x00, 0x1c, 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x1f, 0x00, 0x20, 0x00, 0x21,
+ 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27,
+ 0x00, 0x28, 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0x00, 0x2d,
+ 0x00, 0x2e, 0x00, 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33,
+ 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39,
+ 0x00, 0x3a, 0x00, 0x3b, 0x00, 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f,
+ 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45,
+ 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4a, 0x00, 0x4b,
+ 0x00, 0x4c, 0x00, 0x4d, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x51,
+ 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57,
+ 0x00, 0x58, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x5b, 0x00, 0x5c, 0x00, 0x5d,
+ 0x00, 0x5e, 0x00, 0x5f, 0x00, 0x60, 0x00, 0x61, 0x00, 0x00, 0x00, 0x86,
+ 0x00, 0x87, 0x00, 0x89, 0x00, 0x8b, 0x00, 0x93, 0x00, 0x98, 0x00, 0x9e,
+ 0x00, 0xa3, 0x00, 0xa2, 0x00, 0xa4, 0x00, 0xa6, 0x00, 0xa5, 0x00, 0xa7,
+ 0x00, 0xa9, 0x00, 0xab, 0x00, 0xaa, 0x00, 0xac, 0x00, 0xad, 0x00, 0xaf,
+ 0x00, 0xae, 0x00, 0xb0, 0x00, 0xb1, 0x00, 0xb3, 0x00, 0xb5, 0x00, 0xb4,
+ 0x00, 0xb6, 0x00, 0xb8, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xbb, 0x00, 0xbd,
+ 0x00, 0xbe, 0x07, 0x55, 0x00, 0x72, 0x00, 0x64, 0x00, 0x65, 0x00, 0x69,
+ 0x07, 0x57, 0x00, 0x78, 0x00, 0xa1, 0x00, 0x70, 0x00, 0x6b, 0x08, 0x0b,
+ 0x00, 0x76, 0x00, 0x6a, 0x09, 0x3c, 0x00, 0x88, 0x00, 0x9a, 0x08, 0xfa,
+ 0x00, 0x73, 0x09, 0x40, 0x09, 0x41, 0x00, 0x67, 0x00, 0x77, 0x08, 0xde,
+ 0x08, 0xed, 0x08, 0xeb, 0x03, 0x54, 0x09, 0x07, 0x00, 0x6c, 0x00, 0x7c,
+ 0x03, 0x3d, 0x00, 0xa8, 0x00, 0xba, 0x00, 0x81, 0x00, 0x63, 0x00, 0x6e,
+ 0x08, 0xf6, 0x01, 0x54, 0x09, 0x24, 0x08, 0xe2, 0x00, 0x6d, 0x00, 0x7d,
+ 0x07, 0x5b, 0x00, 0x62, 0x00, 0x82, 0x00, 0x85, 0x00, 0x97, 0x01, 0x14,
+ 0x01, 0x15, 0x07, 0x48, 0x07, 0x49, 0x07, 0x51, 0x07, 0x52, 0x07, 0x4d,
+ 0x07, 0x4e, 0x00, 0xb9, 0x0a, 0xf3, 0x00, 0xc1, 0x01, 0x3a, 0x07, 0x79,
+ 0x07, 0xd6, 0x07, 0x6e, 0x07, 0x6f, 0x0f, 0x0a, 0x0f, 0x0b, 0x07, 0x56,
+ 0x00, 0x79, 0x07, 0x4f, 0x07, 0x53, 0x07, 0x65, 0x00, 0x84, 0x00, 0x8c,
+ 0x00, 0x83, 0x00, 0x8d, 0x00, 0x8a, 0x00, 0x8f, 0x00, 0x90, 0x00, 0x91,
+ 0x00, 0x8e, 0x00, 0x95, 0x00, 0x96, 0x00, 0x00, 0x00, 0x94, 0x00, 0x9c,
+ 0x00, 0x9d, 0x00, 0x9b, 0x00, 0xf3, 0x02, 0x88, 0x02, 0x9e, 0x00, 0x71,
+ 0x02, 0x9a, 0x02, 0x9b, 0x02, 0x9c, 0x00, 0x7a, 0x02, 0x9f, 0x02, 0x9d,
+ 0x02, 0x89, 0x00, 0x00, 0x01, 0x35, 0x00, 0xb8, 0x00, 0xcb, 0x00, 0xcb,
+ 0x00, 0xc1, 0x00, 0xaa, 0x00, 0x9c, 0x01, 0xa6, 0x00, 0xb8, 0x00, 0x66,
+ 0x00, 0x00, 0x00, 0x71, 0x00, 0xcb, 0x00, 0xa0, 0x02, 0xb2, 0x00, 0x85,
+ 0x00, 0x75, 0x00, 0xb8, 0x00, 0xc3, 0x01, 0xcb, 0x01, 0x89, 0x02, 0x2d,
+ 0x00, 0xcb, 0x00, 0xa6, 0x00, 0xf0, 0x00, 0xd3, 0x00, 0xaa, 0x00, 0x87,
+ 0x00, 0xcb, 0x03, 0xaa, 0x04, 0x00, 0x01, 0x4a, 0x00, 0x33, 0x00, 0xcb,
+ 0x00, 0x00, 0x00, 0xd9, 0x05, 0x02, 0x00, 0xf4, 0x01, 0x54, 0x00, 0xb4,
+ 0x00, 0x9c, 0x01, 0x39, 0x01, 0x14, 0x01, 0x39, 0x07, 0x06, 0x04, 0x00,
+ 0x04, 0x4e, 0x04, 0xb4, 0x04, 0x52, 0x04, 0xb8, 0x04, 0xe7, 0x04, 0xcd,
+ 0x00, 0x37, 0x04, 0x73, 0x04, 0xcd, 0x04, 0x60, 0x04, 0x73, 0x01, 0x33,
+ 0x03, 0xa2, 0x05, 0x56, 0x05, 0xa6, 0x05, 0x56, 0x05, 0x39, 0x03, 0xc5,
+ 0x02, 0x12, 0x00, 0xc9, 0x00, 0x1f, 0x00, 0xb8, 0x01, 0xdf, 0x00, 0x73,
+ 0x00, 0xba, 0x03, 0xe9, 0x03, 0x33, 0x03, 0xbc, 0x04, 0x44, 0x04, 0x0e,
+ 0x00, 0xdf, 0x03, 0xcd, 0x03, 0xaa, 0x00, 0xe5, 0x03, 0xaa, 0x04, 0x04,
+ 0x00, 0x00, 0x00, 0xcb, 0x00, 0x8f, 0x00, 0xa4, 0x00, 0x7b, 0x00, 0xb8,
+ 0x00, 0x14, 0x01, 0x6f, 0x00, 0x7f, 0x02, 0x7b, 0x02, 0x52, 0x00, 0x8f,
+ 0x00, 0xc7, 0x05, 0xcd, 0x00, 0x9a, 0x00, 0x9a, 0x00, 0x6f, 0x00, 0xcb,
+ 0x00, 0xcd, 0x01, 0x9e, 0x01, 0xd3, 0x00, 0xf0, 0x00, 0xba, 0x01, 0x83,
+ 0x00, 0xd5, 0x00, 0x98, 0x03, 0x04, 0x02, 0x48, 0x00, 0x9e, 0x01, 0xd5,
+ 0x00, 0xc1, 0x00, 0xcb, 0x00, 0xf6, 0x00, 0x83, 0x03, 0x54, 0x02, 0x7f,
+ 0x00, 0x00, 0x03, 0x33, 0x02, 0x66, 0x00, 0xd3, 0x00, 0xc7, 0x00, 0xa4,
+ 0x00, 0xcd, 0x00, 0x8f, 0x00, 0x9a, 0x00, 0x73, 0x04, 0x00, 0x05, 0xd5,
+ 0x01, 0x0a, 0x00, 0xfe, 0x02, 0x2b, 0x00, 0xa4, 0x00, 0xb4, 0x00, 0x9c,
+ 0x00, 0x00, 0x00, 0x62, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x1d, 0x03, 0x2d,
+ 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xf0, 0x00, 0x7f, 0x00, 0x7b,
+ 0x00, 0x54, 0x00, 0xa4, 0x06, 0xb8, 0x06, 0x14, 0x07, 0x23, 0x01, 0xd3,
+ 0x00, 0xb8, 0x00, 0xcb, 0x00, 0xa6, 0x01, 0xc3, 0x01, 0xec, 0x06, 0x93,
+ 0x00, 0xa0, 0x00, 0xd3, 0x03, 0x5c, 0x03, 0x71, 0x03, 0xdb, 0x01, 0x85,
+ 0x04, 0x23, 0x04, 0xa8, 0x04, 0x48, 0x00, 0x8f, 0x01, 0x39, 0x01, 0x14,
+ 0x01, 0x39, 0x03, 0x60, 0x00, 0x8f, 0x05, 0xd5, 0x01, 0x9a, 0x06, 0x14,
+ 0x07, 0x23, 0x06, 0x66, 0x01, 0x79, 0x04, 0x60, 0x04, 0x60, 0x04, 0x60,
+ 0x04, 0x7b, 0x00, 0x9c, 0x00, 0x00, 0x02, 0x77, 0x04, 0x60, 0x01, 0xaa,
+ 0x00, 0xe9, 0x04, 0x60, 0x07, 0x62, 0x00, 0x7b, 0x00, 0xc5, 0x00, 0x7f,
+ 0x02, 0x7b, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x52, 0x05, 0xcd, 0x00, 0x66,
+ 0x00, 0xbc, 0x00, 0x66, 0x00, 0x77, 0x06, 0x10, 0x00, 0xcd, 0x01, 0x3b,
+ 0x01, 0x85, 0x03, 0x89, 0x00, 0x8f, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x1d,
+ 0x00, 0xcd, 0x07, 0x4a, 0x04, 0x2f, 0x00, 0x9c, 0x00, 0x9c, 0x00, 0x00,
+ 0x07, 0x7d, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6f, 0x03, 0x35, 0x00, 0x6a,
+ 0x00, 0x6f, 0x00, 0x7b, 0x00, 0xae, 0x00, 0xb2, 0x00, 0x2d, 0x03, 0x96,
+ 0x00, 0x8f, 0x02, 0x7b, 0x00, 0xf6, 0x00, 0x83, 0x03, 0x54, 0x06, 0x37,
+ 0x05, 0xf6, 0x00, 0x8f, 0x00, 0x9c, 0x04, 0xe1, 0x02, 0x66, 0x00, 0x8f,
+ 0x01, 0x8d, 0x02, 0xf6, 0x00, 0xcd, 0x03, 0x44, 0x00, 0x29, 0x00, 0x66,
+ 0x04, 0xee, 0x00, 0x73, 0x00, 0x00, 0x14, 0x00, 0x00, 0x96, 0x00, 0x00,
+ 0xb7, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x2c, 0x20, 0x10,
+ 0xb0, 0x02, 0x25, 0x49, 0x64, 0xb0, 0x40, 0x51, 0x58, 0x20, 0xc8, 0x59,
+ 0x21, 0x2d, 0x2c, 0xb0, 0x02, 0x25, 0x49, 0x64, 0xb0, 0x40, 0x51, 0x58,
+ 0x20, 0xc8, 0x59, 0x21, 0x2d, 0x2c, 0x20, 0x10, 0x07, 0x20, 0xb0, 0x00,
+ 0x50, 0xb0, 0x0d, 0x79, 0x20, 0xb8, 0xff, 0xff, 0x50, 0x58, 0x04, 0x1b,
+ 0x05, 0x59, 0xb0, 0x05, 0x1c, 0xb0, 0x03, 0x25, 0x08, 0xb0, 0x04, 0x25,
+ 0x23, 0xe1, 0x20, 0xb0, 0x00, 0x50, 0xb0, 0x0d, 0x79, 0x20, 0xb8, 0xff,
+ 0xff, 0x50, 0x58, 0x04, 0x1b, 0x05, 0x59, 0xb0, 0x05, 0x1c, 0xb0, 0x03,
+ 0x25, 0x08, 0xe1, 0x2d, 0x2c, 0x4b, 0x50, 0x58, 0x20, 0xb0, 0xfd, 0x45,
+ 0x44, 0x59, 0x21, 0x2d, 0x2c, 0xb0, 0x02, 0x25, 0x45, 0x60, 0x44, 0x2d,
+ 0x2c, 0x4b, 0x53, 0x58, 0xb0, 0x02, 0x25, 0xb0, 0x02, 0x25, 0x45, 0x44,
+ 0x59, 0x21, 0x21, 0x2d, 0x2c, 0x45, 0x44, 0x2d, 0x2c, 0xb0, 0x02, 0x25,
+ 0xb0, 0x02, 0x25, 0x49, 0xb0, 0x05, 0x25, 0xb0, 0x05, 0x25, 0x49, 0x60,
+ 0xb0, 0x20, 0x63, 0x68, 0x20, 0x8a, 0x10, 0x8a, 0x23, 0x3a, 0x8a, 0x10,
+ 0x65, 0x3a, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x02,
+ 0xff, 0xff, 0x00, 0x03, 0x00, 0x02, 0x00, 0x5b, 0xfe, 0x96, 0x03, 0xf6,
+ 0x05, 0xa4, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x11, 0x21, 0x11,
+ 0x25, 0x21, 0x11, 0x21, 0x5c, 0x03, 0x99, 0xfc, 0xce, 0x02, 0xcc, 0xfd,
+ 0x34, 0xfe, 0x96, 0x07, 0x0e, 0xf8, 0xf2, 0x72, 0x06, 0x29, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x16, 0x00, 0x00, 0x01, 0xcd, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x09, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23, 0x11, 0x33, 0x11, 0x03,
+ 0x23, 0x03, 0x01, 0x16, 0xb7, 0xb7, 0xb7, 0x12, 0x92, 0x13, 0xfe, 0xfe,
+ 0x05, 0xd5, 0xfd, 0x71, 0xfe, 0x9b, 0x01, 0x65, 0x00, 0x02, 0x00, 0xb1,
+ 0x03, 0xaa, 0x02, 0x9f, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x01, 0x4a, 0x99, 0x01,
+ 0xed, 0x98, 0x05, 0xd5, 0xfd, 0xd5, 0x02, 0x2b, 0xfd, 0xd5, 0x02, 0x2b,
+ 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x05, 0x7c, 0x05, 0xbe, 0x00, 0x03,
+ 0x00, 0x1f, 0x00, 0x00, 0x01, 0x21, 0x03, 0x21, 0x0b, 0x01, 0x21, 0x13,
+ 0x33, 0x03, 0x21, 0x15, 0x21, 0x03, 0x21, 0x15, 0x21, 0x03, 0x23, 0x13,
+ 0x21, 0x03, 0x23, 0x13, 0x21, 0x35, 0x21, 0x13, 0x21, 0x35, 0x21, 0x13,
+ 0x03, 0xae, 0xfe, 0xfa, 0x4b, 0x01, 0x07, 0x3d, 0x5d, 0x01, 0x06, 0x5f,
+ 0x90, 0x5d, 0x01, 0x19, 0xfe, 0xc4, 0x4a, 0x01, 0x1f, 0xfe, 0xbe, 0x5d,
+ 0x90, 0x5c, 0xfe, 0xf9, 0x5d, 0x91, 0x5e, 0xfe, 0xe4, 0x01, 0x3d, 0x4c,
+ 0xfe, 0xde, 0x01, 0x45, 0x5c, 0x03, 0x85, 0xfe, 0xb2, 0x03, 0x87, 0xfe,
+ 0x61, 0x01, 0x9f, 0xfe, 0x61, 0x9a, 0xfe, 0xb2, 0x99, 0xfe, 0x62, 0x01,
+ 0x9e, 0xfe, 0x62, 0x01, 0x9e, 0x99, 0x01, 0x4e, 0x9a, 0x01, 0x9f, 0x00,
+ 0x00, 0x03, 0x00, 0x99, 0xfe, 0xd3, 0x03, 0xfc, 0x06, 0x14, 0x00, 0x21,
+ 0x00, 0x28, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x23, 0x03, 0x2e, 0x01, 0x27,
+ 0x35, 0x1e, 0x01, 0x17, 0x11, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x35,
+ 0x33, 0x15, 0x1e, 0x01, 0x17, 0x15, 0x2e, 0x01, 0x27, 0x11, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x03, 0x11, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17,
+ 0x11, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x02, 0x6f, 0x5a, 0x01, 0x5f, 0xbd,
+ 0x5f, 0x5c, 0xbc, 0x64, 0xc7, 0xb5, 0xc4, 0xb8, 0x5a, 0x53, 0x9d, 0x4b,
+ 0x4b, 0x9d, 0x53, 0xcc, 0xc1, 0xcd, 0xc0, 0x5a, 0x69, 0x6d, 0x65, 0xcb,
+ 0x72, 0x74, 0x6f, 0xfe, 0xd3, 0x01, 0x2d, 0x02, 0x2d, 0x2d, 0xb4, 0x40,
+ 0x41, 0x01, 0x01, 0xc8, 0x24, 0xac, 0x96, 0xa3, 0xbc, 0x0e, 0xeb, 0xe8,
+ 0x04, 0x1f, 0x1b, 0xaf, 0x2a, 0x2e, 0x04, 0xfe, 0x55, 0x23, 0xb4, 0x9c,
+ 0xa9, 0xc3, 0x0f, 0x03, 0x00, 0x01, 0x9a, 0x0d, 0x6a, 0x58, 0x56, 0x60,
+ 0xd5, 0xfe, 0x4f, 0x11, 0x6e, 0x5a, 0x58, 0x68, 0x00, 0x05, 0x00, 0x65,
+ 0xff, 0xe3, 0x06, 0x72, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23,
+ 0x00, 0x27, 0x00, 0x33, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x25, 0x33, 0x01, 0x23, 0x13, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x05, 0x3c,
+ 0x4e, 0x59, 0x59, 0x4e, 0x4d, 0x59, 0x59, 0x4d, 0x8e, 0xa8, 0xa9, 0x8d,
+ 0x90, 0xa7, 0xa8, 0xfc, 0xee, 0x4d, 0x59, 0x58, 0x4e, 0x4f, 0x59, 0x5a,
+ 0x02, 0xdf, 0x90, 0xfc, 0xb7, 0x90, 0x1c, 0x8f, 0xa9, 0xa9, 0x8f, 0x8f,
+ 0xa6, 0xa7, 0x02, 0x91, 0x94, 0x84, 0x82, 0x95, 0x95, 0x82, 0x83, 0x95,
+ 0x7f, 0xdc, 0xbb, 0xbb, 0xdb, 0xdb, 0xbb, 0xbc, 0xdb, 0x02, 0x61, 0x95,
+ 0x82, 0x84, 0x94, 0x94, 0x84, 0x81, 0x96, 0x7f, 0xf9, 0xf3, 0x06, 0x0d,
+ 0xdb, 0xbb, 0xbd, 0xda, 0xdb, 0xbc, 0xba, 0xdc, 0x00, 0x02, 0x00, 0x74,
+ 0xff, 0xe3, 0x05, 0x65, 0x05, 0xf0, 0x00, 0x09, 0x00, 0x30, 0x00, 0x00,
+ 0x01, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x09, 0x01,
+ 0x3e, 0x01, 0x37, 0x33, 0x06, 0x02, 0x07, 0x13, 0x23, 0x27, 0x0e, 0x01,
+ 0x23, 0x22, 0x00, 0x35, 0x34, 0x36, 0x37, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x01, 0xc0, 0x52, 0x4c, 0xbf, 0x90, 0x55, 0x96, 0x41, 0xfe, 0xa2,
+ 0x01, 0xc9, 0x35, 0x3c, 0x05, 0xa8, 0x0b, 0x5e, 0x53, 0xfb, 0xe3, 0x81,
+ 0x5d, 0xce, 0x76, 0xd8, 0xfe, 0xec, 0x79, 0x78, 0x2b, 0x2d, 0xc8, 0xa5,
+ 0x4b, 0x95, 0x4c, 0x4e, 0x8e, 0x3e, 0x5e, 0x76, 0x35, 0x03, 0x23, 0x51,
+ 0xa1, 0x58, 0x92, 0xc2, 0x3f, 0x40, 0x02, 0x8f, 0xfd, 0xf8, 0x59, 0xcb,
+ 0x72, 0x84, 0xfe, 0xfe, 0x7e, 0xfe, 0xe3, 0x93, 0x59, 0x57, 0x01, 0x13,
+ 0xd7, 0x80, 0xe1, 0x63, 0x3f, 0x7d, 0x3c, 0xa2, 0xc5, 0x24, 0x24, 0xb6,
+ 0x2f, 0x31, 0x6f, 0x58, 0x33, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb1,
+ 0x03, 0xaa, 0x01, 0x4b, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x01, 0x4a, 0x99, 0x05, 0xd5, 0xfd, 0xd5, 0x02, 0x2b, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0x3c, 0x06, 0x12, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x23, 0x26, 0x02,
+ 0x35, 0x34, 0x12, 0x37, 0x02, 0x3c, 0x79, 0x75, 0x76, 0x78, 0x90, 0x88,
+ 0x86, 0x86, 0x88, 0x06, 0x12, 0xe6, 0xfe, 0x3e, 0xe7, 0xe7, 0xfe, 0x3b,
+ 0xe5, 0xeb, 0x01, 0xc6, 0xe0, 0xdf, 0x01, 0xc4, 0xec, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x93, 0xfe, 0xf2, 0x02, 0x31, 0x06, 0x12, 0x00, 0x0d,
+ 0x00, 0x00, 0x13, 0x33, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x23, 0x36,
+ 0x12, 0x35, 0x34, 0x02, 0x94, 0x90, 0x87, 0x86, 0x86, 0x87, 0x90, 0x77,
+ 0x76, 0x76, 0x06, 0x12, 0xec, 0xfe, 0x3c, 0xdf, 0xe0, 0xfe, 0x3a, 0xeb,
+ 0xe5, 0x01, 0xc5, 0xe7, 0xe7, 0x01, 0xc2, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x02, 0x4a, 0x03, 0x63, 0x05, 0xf0, 0x00, 0x11, 0x00, 0x00, 0x01, 0x0d,
+ 0x01, 0x07, 0x25, 0x11, 0x23, 0x11, 0x05, 0x27, 0x2d, 0x01, 0x37, 0x05,
+ 0x11, 0x33, 0x11, 0x25, 0x03, 0x63, 0xfe, 0xbd, 0x01, 0x43, 0x35, 0xfe,
+ 0xd2, 0x66, 0xfe, 0xd1, 0x34, 0x01, 0x43, 0xfe, 0xbd, 0x34, 0x01, 0x2f,
+ 0x66, 0x01, 0x2e, 0x04, 0xdf, 0xc2, 0xc3, 0x62, 0xcb, 0xfe, 0x87, 0x01,
+ 0x79, 0xcb, 0x62, 0xc3, 0xc2, 0x63, 0xcb, 0x01, 0x79, 0xfe, 0x87, 0xcb,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46, 0x05, 0x04, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x03, 0x50, 0x01, 0xf5, 0xfe, 0x0b, 0x97, 0xfe, 0x0a, 0x01,
+ 0xf6, 0x05, 0x04, 0xfd, 0xd3, 0xaa, 0xfd, 0xd3, 0x02, 0x2d, 0xaa, 0x02,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8e, 0xff, 0x12, 0x01, 0x96,
+ 0x00, 0xfe, 0x00, 0x05, 0x00, 0x00, 0x37, 0x33, 0x15, 0x03, 0x23, 0x13,
+ 0xd8, 0xbe, 0x94, 0x74, 0x4a, 0xfe, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x01, 0xdf, 0x02, 0x40, 0x02, 0x83, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x5a, 0x01, 0xe5, 0xfe, 0x1b, 0x02,
+ 0x83, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5, 0x00, 0x00, 0x01, 0x83,
+ 0x00, 0xfe, 0x00, 0x03, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23, 0xc5, 0xbe,
+ 0xbe, 0xfe, 0xfe, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x42, 0x02, 0x6d,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, 0x01, 0xd4,
+ 0x99, 0xfe, 0x2c, 0x99, 0x05, 0xd5, 0xf9, 0x6d, 0x00, 0x02, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x1b, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02,
+ 0x27, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12,
+ 0x02, 0x4a, 0x8c, 0x8e, 0x8e, 0x8c, 0x8d, 0x8d, 0x8d, 0x8d, 0xe2, 0xee,
+ 0xee, 0xe2, 0xe2, 0xee, 0xee, 0x05, 0x50, 0xfe, 0xcd, 0xfe, 0xcc, 0xfe,
+ 0xcd, 0xfe, 0xcd, 0x01, 0x33, 0x01, 0x33, 0x01, 0x34, 0x01, 0x33, 0xa0,
+ 0xfe, 0x73, 0xfe, 0x86, 0xfe, 0x87, 0xfe, 0x73, 0x01, 0x8d, 0x01, 0x79,
+ 0x01, 0x7a, 0x01, 0x8d, 0x00, 0x01, 0x00, 0xca, 0x00, 0x00, 0x03, 0xeb,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x00, 0x37, 0x21, 0x11, 0x05, 0x35, 0x25,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0xe5, 0x01, 0x29, 0xfe, 0xbc, 0x01, 0x42,
+ 0xb6, 0x01, 0x29, 0xfc, 0xfa, 0xaa, 0x04, 0x73, 0x48, 0xb8, 0x48, 0xfa,
+ 0xd5, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87, 0x00, 0x00, 0x03, 0xdd,
+ 0x05, 0xf0, 0x00, 0x1c, 0x00, 0x00, 0x25, 0x21, 0x15, 0x21, 0x35, 0x36,
+ 0x00, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x02, 0x01,
+ 0x62, 0x02, 0x7a, 0xfc, 0xab, 0x67, 0x01, 0x66, 0x2e, 0x57, 0x45, 0x96,
+ 0x79, 0x55, 0xbe, 0x6c, 0x6e, 0xbf, 0x4f, 0xd1, 0xf8, 0x3e, 0x52, 0x17,
+ 0xf1, 0xaa, 0xaa, 0xaa, 0x77, 0x01, 0x91, 0x3a, 0x6d, 0x97, 0x49, 0x77,
+ 0x96, 0x42, 0x43, 0xcc, 0x31, 0x32, 0xe8, 0xc2, 0x5c, 0xa5, 0x70, 0x1d,
+ 0xfe, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8c, 0xff, 0xe3, 0x04, 0x02,
+ 0x05, 0xf0, 0x00, 0x28, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x04,
+ 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x02,
+ 0xec, 0x82, 0x93, 0xfe, 0xef, 0xfc, 0x55, 0xb3, 0x60, 0x4c, 0xb4, 0x62,
+ 0xab, 0xb3, 0xa6, 0x95, 0x9c, 0xa3, 0x86, 0x8f, 0x93, 0x89, 0x4b, 0xaa,
+ 0x67, 0x67, 0xb5, 0x50, 0xcf, 0xf2, 0x80, 0x03, 0x25, 0x1f, 0xc4, 0x90,
+ 0xdd, 0xf2, 0x25, 0x25, 0xc3, 0x31, 0x32, 0x96, 0x8f, 0x84, 0x95, 0xa6,
+ 0x77, 0x70, 0x73, 0x7b, 0x24, 0x26, 0xb4, 0x20, 0x20, 0xd1, 0xb2, 0x7c,
+ 0xab, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0x00, 0x00, 0x04, 0x2e,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x09, 0x01, 0x21, 0x03,
+ 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x21, 0x35, 0x02, 0xb9,
+ 0xfe, 0x35, 0x01, 0xcb, 0x30, 0xe5, 0xbf, 0xbf, 0xb5, 0xfd, 0xa1, 0x05,
+ 0x25, 0xfc, 0xe3, 0x03, 0xcd, 0xfc, 0x33, 0xa8, 0xfe, 0xa0, 0x01, 0x60,
+ 0xc3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8e, 0xff, 0xe3, 0x03, 0xf4,
+ 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x3e,
+ 0x01, 0x33, 0x32, 0x00, 0x15, 0x14, 0x00, 0x23, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0xc7, 0x02, 0xca, 0xfd, 0xdc, 0x28, 0x4f, 0x28, 0xe1, 0x01, 0x07, 0xfe,
+ 0xf2, 0xf6, 0x55, 0xaf, 0x5e, 0x51, 0xad, 0x60, 0x9c, 0xb6, 0xb6, 0x9c,
+ 0x49, 0x91, 0x4b, 0x05, 0xd5, 0xaa, 0xfe, 0x92, 0x0f, 0x0f, 0xfe, 0xee,
+ 0xea, 0xf1, 0xfe, 0xf5, 0x20, 0x20, 0xcb, 0x31, 0x30, 0xb6, 0x9c, 0x9c,
+ 0xb6, 0x24, 0x26, 0x00, 0x00, 0x02, 0x00, 0x80, 0xff, 0xe3, 0x04, 0x21,
+ 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x24, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x13, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x02, 0x03, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x15, 0x14, 0x02,
+ 0x23, 0x22, 0x02, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x02, 0x60, 0x7a,
+ 0x8f, 0x8f, 0x7a, 0x7b, 0x8f, 0x8f, 0xee, 0x44, 0x8c, 0x44, 0xb4, 0xbe,
+ 0x0d, 0x35, 0xa0, 0x60, 0xcb, 0xeb, 0xf5, 0xcc, 0xe9, 0xf6, 0x01, 0x2e,
+ 0x00, 0xff, 0x44, 0x8c, 0x03, 0x3b, 0xba, 0xa2, 0xa1, 0xbb, 0xbb, 0xa1,
+ 0xa2, 0xba, 0x02, 0x79, 0xb8, 0x24, 0x26, 0xfe, 0xf2, 0xfe, 0xef, 0x57,
+ 0x5d, 0xfe, 0xef, 0xeb, 0xe6, 0xfe, 0xea, 0x01, 0x8d, 0x01, 0x79, 0x01,
+ 0x62, 0x01, 0xa5, 0x1e, 0x00, 0x01, 0x00, 0x97, 0x00, 0x00, 0x03, 0xf8,
+ 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x23, 0x01,
+ 0x21, 0x97, 0x03, 0x60, 0xfe, 0x18, 0xbd, 0x01, 0xca, 0xfd, 0x7b, 0x05,
+ 0xd5, 0x56, 0xfa, 0x81, 0x05, 0x2b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x7d,
+ 0xff, 0xe3, 0x04, 0x17, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x23, 0x00, 0x2f,
+ 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x25, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x02, 0x4a, 0x82, 0x94, 0x94, 0x82, 0x82, 0x95, 0x95, 0xfe,
+ 0xc8, 0x75, 0x82, 0xe5, 0xc8, 0xc9, 0xe4, 0x82, 0x74, 0x83, 0x93, 0xef,
+ 0xde, 0xde, 0xef, 0x94, 0x41, 0x82, 0x76, 0x75, 0x84, 0x84, 0x75, 0x76,
+ 0x82, 0x02, 0xc5, 0x9a, 0x87, 0x87, 0x9a, 0x9b, 0x86, 0x87, 0x9a, 0x56,
+ 0x20, 0xb2, 0x80, 0xb3, 0xd0, 0xd0, 0xb3, 0x80, 0xb2, 0x20, 0x22, 0xc6,
+ 0x8f, 0xd9, 0xe8, 0xe8, 0xd9, 0x8f, 0xc6, 0x01, 0x61, 0x74, 0x82, 0x82,
+ 0x74, 0x74, 0x82, 0x82, 0x00, 0x02, 0x00, 0x74, 0xff, 0xe3, 0x04, 0x14,
+ 0x05, 0xf0, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x37, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x12, 0x13, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x35, 0x34, 0x12,
+ 0x33, 0x32, 0x12, 0x11, 0x10, 0x00, 0x23, 0x22, 0x26, 0x01, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0xca, 0x45, 0x8c,
+ 0x44, 0xb4, 0xbe, 0x0d, 0x34, 0xa0, 0x61, 0xca, 0xeb, 0xf5, 0xcb, 0xe9,
+ 0xf6, 0xfe, 0xd3, 0xff, 0x45, 0x8c, 0x01, 0x1e, 0x7b, 0x8f, 0x8f, 0x7b,
+ 0x7a, 0x8f, 0x8f, 0x1f, 0xb8, 0x24, 0x26, 0x01, 0x0d, 0x01, 0x12, 0x56,
+ 0x5c, 0x01, 0x0f, 0xeb, 0xe6, 0x01, 0x16, 0xfe, 0x73, 0xfe, 0x86, 0xfe,
+ 0x9f, 0xfe, 0x5b, 0x1e, 0x02, 0x97, 0xba, 0xa2, 0xa1, 0xbb, 0xbb, 0xa1,
+ 0xa2, 0xba, 0x00, 0x00, 0x00, 0x02, 0x00, 0xd8, 0x00, 0x00, 0x01, 0x96,
+ 0x04, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x23, 0xd8, 0xbe, 0xbe, 0xbe, 0xbe, 0xfe, 0xfe, 0x04,
+ 0x23, 0xfe, 0x00, 0x00, 0x00, 0x02, 0x00, 0x8e, 0xff, 0x12, 0x01, 0x96,
+ 0x04, 0x23, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x03, 0x23, 0x13, 0xd8, 0xbe, 0xbe, 0xbe, 0x94, 0x74,
+ 0x4a, 0x04, 0x23, 0xfe, 0xfd, 0xd9, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x5e, 0x05, 0x46, 0x04, 0xa6, 0x00, 0x06,
+ 0x00, 0x00, 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x05, 0x45, 0xfc, 0x5f,
+ 0x03, 0xa1, 0xfb, 0x7e, 0x04, 0x82, 0x03, 0xf0, 0xfe, 0x91, 0xfe, 0x93,
+ 0xb6, 0x01, 0xd1, 0xa6, 0x01, 0xd1, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x03, 0xa2, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0xc3, 0x04, 0x82, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x5e, 0x05, 0x46, 0x04, 0xa6, 0x00, 0x06,
+ 0x00, 0x00, 0x13, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0xc3, 0x04, 0x82,
+ 0xfb, 0x7e, 0x03, 0x9f, 0x03, 0xf0, 0xb6, 0xfe, 0x2f, 0xa6, 0xfe, 0x2f,
+ 0xb6, 0x01, 0x6d, 0x00, 0x00, 0x02, 0x00, 0x84, 0x00, 0x00, 0x03, 0x52,
+ 0x05, 0xf0, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23,
+ 0x13, 0x23, 0x35, 0x34, 0x36, 0x3f, 0x01, 0x3e, 0x01, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x0f, 0x01, 0x0e, 0x01, 0x07, 0x0e, 0x01, 0x15, 0x01, 0x60, 0xb7,
+ 0xb7, 0xb1, 0xac, 0x33, 0x51, 0x51, 0x33, 0x2e, 0x76, 0x61, 0x47, 0xa1,
+ 0x58, 0x55, 0xae, 0x5c, 0xa6, 0xc9, 0x41, 0x51, 0x4f, 0x2b, 0x23, 0x07,
+ 0x05, 0x06, 0xfe, 0xfe, 0x01, 0x91, 0x9a, 0x65, 0x82, 0x56, 0x59, 0x35,
+ 0x5e, 0x31, 0x59, 0x6e, 0x46, 0x43, 0xbc, 0x39, 0x38, 0xc2, 0x9f, 0x4c,
+ 0x89, 0x56, 0x56, 0x2f, 0x35, 0x19, 0x15, 0x3c, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x79, 0xfe, 0x9c, 0x06, 0xb3, 0x05, 0xa2, 0x00, 0x0b,
+ 0x00, 0x4c, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x17, 0x35, 0x33, 0x11, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x24, 0x23, 0x22, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14,
+ 0x12, 0x17, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x17, 0x06, 0x04, 0x23,
+ 0x22, 0x24, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x24, 0x33,
+ 0x32, 0x04, 0x17, 0x1e, 0x01, 0x15, 0x10, 0x00, 0x07, 0x02, 0xae, 0x80,
+ 0x6f, 0x6f, 0x7f, 0x82, 0x6e, 0x6d, 0x80, 0x01, 0xea, 0x36, 0x8b, 0x5d,
+ 0x9b, 0xc1, 0xc2, 0x9a, 0x5d, 0x8c, 0x35, 0x81, 0x83, 0x95, 0x39, 0x39,
+ 0x5e, 0xfe, 0xf3, 0x9e, 0x6f, 0xcc, 0x56, 0x8d, 0xa0, 0x68, 0x62, 0x5e,
+ 0xf9, 0x8d, 0x74, 0xe0, 0x5e, 0x51, 0x71, 0xfe, 0xf7, 0x89, 0xa6, 0xfe,
+ 0xd8, 0x73, 0x73, 0x78, 0x7a, 0x71, 0x74, 0x01, 0x31, 0xaa, 0xbe, 0x01,
+ 0x47, 0x6f, 0x43, 0x47, 0xfe, 0xe2, 0xfc, 0x02, 0x19, 0x8f, 0xa3, 0xa4,
+ 0x8e, 0x8c, 0xa5, 0xa4, 0xfe, 0x48, 0x4d, 0x49, 0xf9, 0xc8, 0xc8, 0xfa,
+ 0x4b, 0x4c, 0x83, 0xfd, 0x20, 0x16, 0xdf, 0xb1, 0x6b, 0xbc, 0x50, 0x83,
+ 0x8b, 0x41, 0x40, 0x66, 0xfe, 0xb5, 0xc1, 0x9f, 0xfe, 0xea, 0x6a, 0x68,
+ 0x6d, 0x57, 0x51, 0x6f, 0x61, 0x67, 0x83, 0x7d, 0x7d, 0x01, 0x49, 0xbd,
+ 0xb6, 0x01, 0x4a, 0x7d, 0x7f, 0x87, 0xae, 0xa0, 0x62, 0xe6, 0x7b, 0xfe,
+ 0xf9, 0xfe, 0xd0, 0x06, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x03, 0x21, 0x01,
+ 0x33, 0x01, 0x23, 0x03, 0x21, 0x03, 0x23, 0x02, 0x76, 0xf7, 0x01, 0xef,
+ 0xfe, 0xa1, 0xcf, 0x02, 0x00, 0xbd, 0x7b, 0xfd, 0xa2, 0x7a, 0xc0, 0x05,
+ 0x0e, 0xfd, 0x19, 0x03, 0xae, 0xfa, 0x2b, 0x01, 0x7f, 0xfe, 0x81, 0x00,
+ 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x01, 0x11, 0x21, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x01, 0x11, 0x21, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x23, 0x21, 0x01, 0x6b, 0x01, 0x23, 0x93, 0x8d, 0x8d, 0x93, 0xfe,
+ 0xdd, 0x01, 0x0d, 0x85, 0x83, 0x83, 0x85, 0xfe, 0x3d, 0x01, 0xd0, 0xd0,
+ 0xe1, 0x73, 0x70, 0x87, 0x94, 0xf5, 0xe2, 0xfe, 0x1e, 0x02, 0xc9, 0xfd,
+ 0xdd, 0x87, 0x8b, 0x8c, 0x85, 0x02, 0x66, 0xfe, 0x3e, 0x6f, 0x72, 0x71,
+ 0x70, 0xa6, 0xc0, 0xb1, 0x89, 0xa2, 0x14, 0x20, 0xcb, 0x98, 0xc8, 0xda,
+ 0x00, 0x01, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x32, 0x16, 0x04, 0xa3, 0x5c, 0xd0, 0x75, 0xe6, 0xf5, 0xf5,
+ 0xe6, 0x75, 0xd0, 0x5c, 0x5f, 0xd6, 0x76, 0xfe, 0xce, 0xfe, 0xa2, 0x01,
+ 0x5e, 0x01, 0x32, 0x78, 0xd6, 0x05, 0x62, 0xd5, 0x5f, 0x5e, 0xfe, 0xc7,
+ 0xfe, 0xd8, 0xfe, 0xd9, 0xfe, 0xc7, 0x5e, 0x5f, 0xd3, 0x48, 0x48, 0x01,
+ 0x9f, 0x01, 0x67, 0x01, 0x68, 0x01, 0x9f, 0x47, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x1f, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x11, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x25, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x29, 0x01, 0x01, 0x6b, 0xdb, 0x01, 0x16, 0x01,
+ 0x03, 0xfe, 0xfd, 0xfe, 0xea, 0xfe, 0x6f, 0x01, 0x75, 0x01, 0x87, 0x01,
+ 0x6d, 0xfe, 0x91, 0xfe, 0x7b, 0xfe, 0x8b, 0x05, 0x2f, 0xfb, 0x77, 0x01,
+ 0x18, 0x01, 0x2e, 0x01, 0x2c, 0x01, 0x17, 0xa6, 0xfe, 0x97, 0xfe, 0x80,
+ 0xfe, 0x7e, 0xfe, 0x96, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0xb5, 0x03, 0x51, 0xfd, 0x65, 0x02,
+ 0x80, 0xfd, 0x80, 0x02, 0xac, 0xfc, 0x9e, 0x05, 0xd5, 0xaa, 0xfe, 0x46,
+ 0xaa, 0xfd, 0xe3, 0xaa, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xba,
+ 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x23, 0xb5, 0x03, 0x04, 0xfd, 0xb2, 0x02, 0x15, 0xfd,
+ 0xeb, 0xb6, 0x05, 0xd5, 0xaa, 0xfe, 0x48, 0xaa, 0xfd, 0x37, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xfe, 0x05, 0xf0, 0x00, 0x1d,
+ 0x00, 0x00, 0x25, 0x11, 0x21, 0x35, 0x21, 0x11, 0x0e, 0x01, 0x23, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23,
+ 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x36, 0x04, 0x49, 0xfe, 0xd7,
+ 0x01, 0xdd, 0x69, 0xfe, 0x90, 0xfe, 0xc5, 0xfe, 0x9d, 0x01, 0x63, 0x01,
+ 0x3b, 0x83, 0xed, 0x64, 0x65, 0xe3, 0x7d, 0xf6, 0xf8, 0xf8, 0xf6, 0x61,
+ 0x97, 0xd5, 0x01, 0x91, 0xa6, 0xfd, 0x7f, 0x53, 0x55, 0x01, 0x99, 0x01,
+ 0x6d, 0x01, 0x6e, 0x01, 0x99, 0x48, 0x46, 0xd7, 0x5f, 0x60, 0xfe, 0xce,
+ 0xfe, 0xd1, 0xfe, 0xd2, 0xfe, 0xce, 0x25, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0xb5, 0xb6,
+ 0x02, 0x94, 0xb6, 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfd, 0x9c, 0x02,
+ 0x64, 0xfa, 0x2b, 0x02, 0xc7, 0xfd, 0x39, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x01, 0x6b, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x23, 0xb5, 0xb6, 0xb6, 0x05, 0xd5, 0xfa, 0x2b, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xa0, 0xfe, 0x66, 0x01, 0x6b, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x36, 0x35, 0xb5, 0xb6, 0xb9, 0xcc, 0x45, 0x38, 0x79, 0x63, 0x05, 0xd5,
+ 0xfa, 0x93, 0xfe, 0xf2, 0xf4, 0xaa, 0x96, 0xc2, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0xb5, 0xb6, 0x02,
+ 0x5b, 0xea, 0xfd, 0x65, 0x02, 0xca, 0xef, 0xfd, 0x7b, 0xb6, 0x05, 0xd5,
+ 0xfd, 0x89, 0x02, 0x77, 0xfd, 0x48, 0xfc, 0xe3, 0x02, 0xcf, 0xfd, 0x31,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x15, 0x21, 0xb5, 0xb6, 0x02, 0x8e,
+ 0xfc, 0xbc, 0x05, 0xd5, 0xfa, 0xd5, 0xaa, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x21,
+ 0x09, 0x01, 0x21, 0x11, 0x23, 0x11, 0x01, 0x23, 0x01, 0x11, 0x23, 0xb5,
+ 0x01, 0x0f, 0x01, 0x57, 0x01, 0x58, 0x01, 0x0f, 0xb1, 0xfe, 0xa5, 0xb6,
+ 0xfe, 0xa5, 0xb0, 0x05, 0xd5, 0xfc, 0x08, 0x03, 0xf8, 0xfa, 0x2b, 0x05,
+ 0x1f, 0xfc, 0x00, 0x04, 0x00, 0xfa, 0xe1, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xae, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33,
+ 0x01, 0x11, 0x33, 0x11, 0x23, 0x01, 0x11, 0x23, 0xb5, 0xf5, 0x02, 0x54,
+ 0xb0, 0xf5, 0xfd, 0xac, 0xb0, 0x05, 0xd5, 0xfb, 0x1f, 0x04, 0xe1, 0xfa,
+ 0x2b, 0x04, 0xe1, 0xfb, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02,
+ 0x27, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x02, 0xd6, 0xc6, 0xe9, 0xe9, 0xc6, 0xc6, 0xe8, 0xe8, 0xc6, 0x01, 0x1b,
+ 0x01, 0x52, 0xfe, 0xae, 0xfe, 0xe5, 0xfe, 0xe5, 0xfe, 0xad, 0x01, 0x53,
+ 0x05, 0x4c, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8, 0x01, 0x48,
+ 0x01, 0x1a, 0x01, 0x1b, 0x01, 0x48, 0xa4, 0xfe, 0x5b, 0xfe, 0x9e, 0xfe,
+ 0x9f, 0xfe, 0x5b, 0x01, 0xa4, 0x01, 0x62, 0x01, 0x62, 0x01, 0xa5, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x23,
+ 0x01, 0x6b, 0xe4, 0x7f, 0x8b, 0x8b, 0x7f, 0xfe, 0x66, 0x01, 0x9a, 0xe2,
+ 0xe7, 0xe7, 0xe2, 0xe4, 0xb6, 0x05, 0x2f, 0xfd, 0xcf, 0x92, 0x87, 0x86,
+ 0x92, 0xa6, 0xe3, 0xdb, 0xdd, 0xe2, 0xfd, 0xa8, 0x00, 0x02, 0x00, 0x67,
+ 0xfe, 0xf8, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x1d, 0x00, 0x00,
+ 0x01, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02,
+ 0x1b, 0x01, 0x23, 0x27, 0x0e, 0x01, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x02, 0x02, 0xd6, 0xc6, 0xe9, 0xe9, 0xc6,
+ 0xc6, 0xe8, 0xe8, 0x39, 0xef, 0xdb, 0xc7, 0x1e, 0x1f, 0x0f, 0xfe, 0xe5,
+ 0xfe, 0xad, 0x01, 0x53, 0x01, 0x1b, 0x01, 0x1b, 0x01, 0x52, 0xbc, 0x05,
+ 0x4c, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8, 0x01, 0x48, 0x01,
+ 0x1a, 0x01, 0x1b, 0x01, 0x48, 0xfa, 0xcf, 0xfe, 0xdd, 0xef, 0x02, 0x02,
+ 0x01, 0xa5, 0x01, 0x61, 0x01, 0x62, 0x01, 0xa5, 0xfe, 0x5b, 0xfe, 0x9e,
+ 0xfe, 0xfc, 0xfe, 0x8e, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc,
+ 0x05, 0xd5, 0x00, 0x13, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x17,
+ 0x13, 0x23, 0x03, 0x2e, 0x01, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x03, 0x32, 0x3b, 0x6e, 0x38, 0xb9, 0xc4, 0xac, 0x42, 0x7d, 0x6c,
+ 0xc6, 0xb6, 0x01, 0x9a, 0xe7, 0xe2, 0x75, 0xfd, 0xc8, 0xe4, 0x84, 0x86,
+ 0x86, 0x84, 0x02, 0xbc, 0x16, 0x90, 0x7e, 0xfe, 0x68, 0x01, 0x7f, 0x96,
+ 0x62, 0xfd, 0x89, 0x05, 0xd5, 0xd6, 0xd8, 0x8d, 0xba, 0x02, 0x4f, 0xfd,
+ 0xee, 0x87, 0x83, 0x83, 0x85, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x2c, 0x05, 0xf0, 0x00, 0x27, 0x00, 0x00, 0x01, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01,
+ 0x15, 0x14, 0x04, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x03, 0xda, 0x67, 0xb8, 0x55, 0x95, 0xa1, 0x6b, 0x96, 0x6d,
+ 0xcc, 0xc1, 0xfe, 0xfb, 0xfd, 0x60, 0xd7, 0x73, 0x6f, 0xd4, 0x67, 0x9b,
+ 0xaa, 0x7a, 0x8b, 0x6e, 0xcc, 0xb5, 0xfb, 0xdc, 0x5f, 0xc4, 0x05, 0xa4,
+ 0xc5, 0x37, 0x36, 0x80, 0x76, 0x63, 0x65, 0x1f, 0x19, 0x2b, 0xd9, 0xb6,
+ 0xd9, 0xe0, 0x30, 0x2f, 0xd0, 0x45, 0x46, 0x88, 0x7e, 0x6e, 0x7c, 0x1f,
+ 0x18, 0x2d, 0xc0, 0xab, 0xc6, 0xe4, 0x26, 0x00, 0x00, 0x01, 0xff, 0xfa,
+ 0x00, 0x00, 0x04, 0x6c, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x00, 0x03, 0x21,
+ 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x05, 0x04, 0x70, 0xfe, 0x23, 0xb6,
+ 0xfe, 0x23, 0x05, 0xd5, 0xaa, 0xfa, 0xd5, 0x05, 0x2b, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x10, 0x00, 0x23, 0x22, 0x00, 0x11, 0xa0, 0xb7, 0x9d, 0xaf,
+ 0xaf, 0x9c, 0xb7, 0xfe, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0x05, 0xd5, 0xfc,
+ 0x75, 0xf0, 0xd3, 0xd3, 0xf0, 0x03, 0x8b, 0xfc, 0x5c, 0xfe, 0xdc, 0xfe,
+ 0xd6, 0x01, 0x2a, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x21, 0x01,
+ 0x33, 0x09, 0x01, 0x33, 0x01, 0x02, 0x0f, 0xfd, 0xff, 0xbe, 0x01, 0xaa,
+ 0x01, 0xab, 0xbd, 0xfe, 0x00, 0x05, 0xd5, 0xfb, 0x17, 0x04, 0xe9, 0xfa,
+ 0x2b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x09,
+ 0x01, 0x33, 0x01, 0x23, 0x09, 0x01, 0x23, 0x3d, 0xb8, 0x01, 0x1a, 0x01,
+ 0x1a, 0xcc, 0x01, 0x1b, 0x01, 0x1a, 0xb8, 0xfe, 0xaf, 0xe5, 0xfe, 0xe5,
+ 0xfe, 0xe1, 0xe4, 0x05, 0xd5, 0xfb, 0x12, 0x04, 0xee, 0xfb, 0x12, 0x04,
+ 0xee, 0xfa, 0x2b, 0x05, 0x10, 0xfa, 0xf0, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x09, 0x01, 0x33, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23, 0x01, 0x74, 0xc3,
+ 0x01, 0x4e, 0x01, 0x50, 0xc3, 0xfe, 0x50, 0x01, 0xcd, 0xc3, 0xfe, 0x86,
+ 0xfe, 0x83, 0xc4, 0x01, 0xe0, 0x05, 0xd5, 0xfd, 0xd5, 0x02, 0x2b, 0xfd,
+ 0x33, 0xfc, 0xf8, 0x02, 0x7b, 0xfd, 0x85, 0x03, 0x1d, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x00, 0x03, 0x33, 0x09, 0x01, 0x33, 0x01, 0x11, 0x23, 0x11, 0x04,
+ 0xc4, 0x01, 0x74, 0x01, 0x72, 0xc4, 0xfe, 0x24, 0xb6, 0x05, 0xd5, 0xfd,
+ 0x9a, 0x02, 0x66, 0xfc, 0xf2, 0xfd, 0x39, 0x02, 0xc7, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x52, 0x00, 0x00, 0x04, 0x9c, 0x05, 0xd5, 0x00, 0x09,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x15, 0x21, 0x35, 0x01, 0x21,
+ 0x68, 0x04, 0x1f, 0xfc, 0xaf, 0x03, 0x66, 0xfb, 0xb7, 0x03, 0x51, 0xfc,
+ 0xc4, 0x05, 0xd5, 0x9a, 0xfb, 0x6f, 0xaa, 0x9a, 0x04, 0x91, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0x1c, 0x06, 0x14, 0x00, 0x07,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x9e, 0x01,
+ 0x7e, 0xd8, 0xd8, 0xfe, 0x82, 0x06, 0x14, 0x8f, 0xf9, 0xfc, 0x8f, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0x42, 0x02, 0x6d, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x01, 0x23, 0x01, 0x99, 0x01, 0xd4, 0x99, 0xfe, 0x2c,
+ 0x05, 0xd5, 0xf9, 0x6d, 0x06, 0x93, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb3,
+ 0xfe, 0xf2, 0x02, 0x31, 0x06, 0x14, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x33, 0x11, 0x23, 0x35, 0x02, 0x31, 0xfe, 0x82, 0xd7, 0xd7,
+ 0x06, 0x14, 0xf8, 0xde, 0x8f, 0x06, 0x04, 0x8f, 0x00, 0x01, 0x00, 0xc3,
+ 0x03, 0xa8, 0x05, 0x46, 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01,
+ 0x23, 0x09, 0x01, 0x23, 0x01, 0x03, 0x5c, 0x01, 0xe9, 0xb5, 0xfe, 0x74,
+ 0xfe, 0x74, 0xb5, 0x01, 0xe9, 0x05, 0xd5, 0xfd, 0xd3, 0x01, 0x8b, 0xfe,
+ 0x75, 0x02, 0x2d, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x1d, 0x03, 0xac,
+ 0xfe, 0xac, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x03, 0xac,
+ 0xfc, 0x42, 0xfe, 0xac, 0x8f, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99,
+ 0x04, 0xf0, 0x02, 0x49, 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x01, 0x13,
+ 0x23, 0x01, 0x01, 0x4a, 0xfe, 0x8a, 0xfe, 0xdb, 0x06, 0x66, 0xfe, 0x8a,
+ 0x01, 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x25, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x37, 0x11, 0x23, 0x35, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x02, 0x78,
+ 0xc9, 0x9b, 0x74, 0x64, 0x8a, 0xa6, 0xa6, 0xa6, 0x38, 0xa9, 0x7b, 0x9b,
+ 0xb6, 0xe3, 0xe2, 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51,
+ 0xdb, 0xd8, 0x02, 0x33, 0x66, 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x4c,
+ 0xfd, 0x81, 0xaa, 0x66, 0x61, 0xc1, 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b,
+ 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0xfc, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0xe3, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x0b, 0x00, 0x1c, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x27, 0x15, 0x23, 0x11, 0x33, 0x03, 0x81, 0x96, 0x83, 0x84, 0x96, 0x96,
+ 0x84, 0x83, 0x96, 0xfd, 0xcd, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8,
+ 0x6f, 0x9f, 0x34, 0xa7, 0xa7, 0x02, 0x2f, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb,
+ 0xe7, 0xe7, 0x02, 0x52, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe, 0xf8,
+ 0xfe, 0xbc, 0x61, 0x64, 0xa8, 0x06, 0x14, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x19, 0x00, 0x00, 0x01, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x15, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x16,
+ 0x03, 0x83, 0x46, 0x8d, 0x48, 0xa2, 0xb2, 0xb2, 0xa2, 0x48, 0x8d, 0x46,
+ 0x45, 0x95, 0x53, 0xe4, 0xfe, 0xf4, 0x01, 0x0f, 0xeb, 0x4d, 0x92, 0x04,
+ 0x35, 0xac, 0x2b, 0x2b, 0xe3, 0xcd, 0xcd, 0xe3, 0x2b, 0x2b, 0xaa, 0x24,
+ 0x24, 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12, 0x01, 0x3a, 0x23, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x03, 0xeb, 0x06, 0x14, 0x00, 0x10,
+ 0x00, 0x1c, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x01, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, 0x45, 0xa6,
+ 0xa6, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0xfe, 0x00,
+ 0x96, 0x83, 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0x03, 0xb6, 0x02, 0x5e,
+ 0xf9, 0xec, 0xa8, 0x64, 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01,
+ 0x44, 0x61, 0xfe, 0x15, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x00, 0x14,
+ 0x00, 0x1b, 0x00, 0x00, 0x01, 0x15, 0x21, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32,
+ 0x12, 0x07, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x04, 0x0c, 0xfd, 0x06,
+ 0x0b, 0xb9, 0xa4, 0x60, 0xb3, 0x58, 0x59, 0xbb, 0x60, 0xf2, 0xfe, 0xe7,
+ 0x01, 0x0b, 0xe3, 0xcb, 0xed, 0xa6, 0x02, 0x94, 0x7a, 0x8b, 0xa7, 0x0c,
+ 0x02, 0x5e, 0x5a, 0xbe, 0xc7, 0x34, 0x34, 0xae, 0x2a, 0x2c, 0x01, 0x38,
+ 0x01, 0x0a, 0x01, 0x13, 0x01, 0x43, 0xfe, 0xdd, 0xc4, 0x97, 0xb4, 0xae,
+ 0x9e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x02, 0xac,
+ 0x06, 0x14, 0x00, 0x13, 0x00, 0x00, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d,
+ 0x01, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34,
+ 0x36, 0x33, 0x02, 0xac, 0x9e, 0x5a, 0x45, 0x01, 0x11, 0xfe, 0xef, 0xa6,
+ 0x9f, 0x9f, 0x9c, 0xaa, 0x06, 0x14, 0x99, 0x50, 0x68, 0x63, 0x8f, 0xfc,
+ 0x2f, 0x03, 0xd1, 0x8f, 0x4e, 0xbb, 0xab, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x28, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x17, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33,
+ 0x32, 0x16, 0x17, 0x35, 0x33, 0x03, 0x45, 0x95, 0x86, 0x85, 0x94, 0x94,
+ 0x85, 0x86, 0x95, 0xa6, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e, 0x4a,
+ 0xa3, 0xa2, 0x33, 0xa0, 0x70, 0xba, 0xe2, 0xe2, 0xba, 0x70, 0xa0, 0x33,
+ 0xa6, 0x02, 0x3d, 0xc8, 0xdc, 0xdc, 0xc8, 0xc7, 0xdc, 0xdc, 0xeb, 0xfe,
+ 0xe2, 0xfe, 0xe9, 0x1d, 0x1e, 0xb3, 0x2c, 0x2a, 0xbd, 0xbf, 0x5b, 0x63,
+ 0x62, 0x01, 0x3a, 0x01, 0x03, 0x01, 0x04, 0x01, 0x3a, 0x62, 0x63, 0xaa,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xf4, 0x06, 0x14, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x03, 0xf4,
+ 0xa6, 0x70, 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b, 0xa1, 0x6a, 0xad, 0xb3,
+ 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87,
+ 0x06, 0x14, 0xfd, 0x9e, 0x65, 0x64, 0xef, 0x00, 0x00, 0x02, 0x00, 0xad,
+ 0x00, 0x00, 0x01, 0x54, 0x06, 0x14, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x23, 0x11, 0x33, 0x15, 0x23, 0xae, 0xa5, 0xa5, 0xa5,
+ 0xa5, 0x04, 0x60, 0xfb, 0xa0, 0x06, 0x14, 0xe9, 0x00, 0x02, 0xff, 0xde,
+ 0xfe, 0x56, 0x01, 0x54, 0x06, 0x14, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35,
+ 0x11, 0x33, 0x15, 0x23, 0xae, 0xa5, 0x92, 0xa3, 0x3f, 0x2c, 0x5e, 0x45,
+ 0xa5, 0xa5, 0x04, 0x60, 0xfb, 0x8c, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0x06,
+ 0x28, 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x26,
+ 0x06, 0x14, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33, 0x11, 0x01, 0x33, 0x09,
+ 0x01, 0x23, 0x01, 0x11, 0x23, 0xa7, 0xa7, 0x01, 0xee, 0xd4, 0xfd, 0xe9,
+ 0x02, 0x2d, 0xd8, 0xfe, 0x00, 0xa7, 0x06, 0x14, 0xfc, 0x69, 0x01, 0xe3,
+ 0xfd, 0xf4, 0xfd, 0xac, 0x02, 0x23, 0xfd, 0xdd, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x01, 0x54, 0x06, 0x14, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x23, 0xae, 0xa5, 0xa5, 0x06, 0x14, 0xf9, 0xec, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x67, 0x04, 0x7b, 0x00, 0x22,
+ 0x00, 0x00, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x03, 0xbe, 0x3f, 0xac, 0x75, 0x9e, 0xab, 0xa7, 0x66, 0x6a, 0x80,
+ 0x96, 0xa6, 0x67, 0x6b, 0x7f, 0x95, 0xa7, 0xa7, 0x39, 0x9e, 0x6d, 0x6e,
+ 0x9a, 0x03, 0x89, 0x7c, 0x76, 0xf5, 0xe2, 0xfd, 0x5c, 0x02, 0x9e, 0xa1,
+ 0x9c, 0xbe, 0xa4, 0xfd, 0x87, 0x02, 0x9e, 0xa2, 0x9b, 0xbf, 0xa3, 0xfd,
+ 0x87, 0x04, 0x60, 0xae, 0x67, 0x62, 0x7c, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x04, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33,
+ 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x03, 0xf4, 0xa6, 0x70, 0x6f, 0x86,
+ 0x9b, 0xa7, 0xa7, 0x3b, 0xa1, 0x6a, 0xad, 0xb3, 0x02, 0xa4, 0xfd, 0x5c,
+ 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87, 0x04, 0x60, 0xae, 0x65,
+ 0x64, 0xef, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x12, 0x11,
+ 0x10, 0x02, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x02, 0x34, 0x85, 0x9b,
+ 0x9a, 0x86, 0x85, 0x9a, 0x9a, 0x85, 0xd8, 0xf7, 0xf7, 0xd8, 0xd9, 0xf5,
+ 0xf5, 0x03, 0xdf, 0xe7, 0xc9, 0xc9, 0xe7, 0xe8, 0xc8, 0xc7, 0xe9, 0x9c,
+ 0xfe, 0xc8, 0xfe, 0xec, 0xfe, 0xed, 0xfe, 0xc7, 0x01, 0x39, 0x01, 0x13,
+ 0x01, 0x14, 0x01, 0x38, 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e,
+ 0x04, 0x7b, 0x00, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x25, 0x11, 0x23, 0x11,
+ 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22,
+ 0x26, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x01, 0x4e, 0xa7, 0xa7, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8,
+ 0x6f, 0x9f, 0x01, 0xff, 0x96, 0x83, 0x84, 0x96, 0x96, 0x84, 0x83, 0x96,
+ 0xa8, 0xfd, 0xae, 0x06, 0x0a, 0xaa, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8,
+ 0xfe, 0xf8, 0xfe, 0xbc, 0x61, 0x01, 0xeb, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb,
+ 0xe7, 0xe7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb,
+ 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x01, 0x0e, 0x01, 0x23,
+ 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x33, 0x11,
+ 0x23, 0x01, 0x11, 0x96, 0x83, 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0x02,
+ 0x34, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34, 0xa6,
+ 0xa6, 0x02, 0x2f, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0xfd, 0xae,
+ 0x64, 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0x64,
+ 0xaa, 0xf9, 0xf6, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x02, 0xf6,
+ 0x04, 0x7b, 0x00, 0x11, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x02, 0xf6, 0x1c, 0x42, 0x27, 0x8d, 0x96, 0xa7, 0xa7, 0x34, 0xa8, 0x77,
+ 0x11, 0x2a, 0x19, 0x03, 0xb4, 0x12, 0x11, 0xcb, 0xbe, 0xfd, 0xb2, 0x04,
+ 0x60, 0xae, 0x66, 0x63, 0x05, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe3, 0x03, 0x67, 0x04, 0x7b, 0x00, 0x27, 0x00, 0x00, 0x01, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x03, 0x30, 0x46, 0x97, 0x51, 0x7b, 0x7c, 0x59, 0x85, 0x38,
+ 0xb1, 0x94, 0xde, 0xc2, 0x51, 0xb0, 0x61, 0x5c, 0xb2, 0x57, 0x75, 0x7e,
+ 0x5b, 0x9a, 0x39, 0x9a, 0x89, 0xca, 0xb9, 0x5c, 0xa2, 0x04, 0x3f, 0xae,
+ 0x28, 0x28, 0x54, 0x54, 0x40, 0x49, 0x21, 0x0e, 0x2a, 0x99, 0x89, 0x9c,
+ 0xb6, 0x23, 0x23, 0xbe, 0x35, 0x35, 0x59, 0x51, 0x4b, 0x50, 0x25, 0x0f,
+ 0x24, 0x95, 0x82, 0x9e, 0xac, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31,
+ 0x00, 0x00, 0x02, 0xa7, 0x05, 0x9e, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01, 0x52, 0x01, 0x55, 0xfe, 0xab,
+ 0x43, 0x67, 0xab, 0xab, 0xbf, 0x92, 0x79, 0x79, 0x05, 0x9e, 0xfe, 0xc2,
+ 0x8f, 0xfd, 0xa0, 0x89, 0x4e, 0x9a, 0x9f, 0xd2, 0x02, 0x60, 0x8f, 0x01,
+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x04, 0x7b, 0x00, 0x13, 0x00, 0x14, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x01, 0x9d, 0xa5, 0x70, 0x6f, 0x87, 0x9b, 0xa6,
+ 0xa6, 0x3c, 0x9f, 0x6a, 0xad, 0xb4, 0x01, 0xa0, 0x01, 0xba, 0x02, 0xa6,
+ 0xfd, 0x61, 0x9f, 0x9f, 0xbe, 0xa4, 0x02, 0x7b, 0xfb, 0xa0, 0xac, 0x66,
+ 0x63, 0xf0, 0x03, 0xa8, 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c,
+ 0x04, 0x60, 0x00, 0x06, 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x01,
+ 0x23, 0x37, 0xaf, 0x01, 0x3b, 0x01, 0x3b, 0xb0, 0xfe, 0x86, 0xe1, 0x04,
+ 0x60, 0xfc, 0x54, 0x03, 0xac, 0xfb, 0xa0, 0x00, 0x00, 0x01, 0x00, 0x4d,
+ 0x00, 0x00, 0x05, 0x97, 0x04, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33,
+ 0x1b, 0x01, 0x33, 0x1b, 0x01, 0x33, 0x01, 0x23, 0x0b, 0x01, 0x23, 0x4d,
+ 0xa6, 0xcf, 0xce, 0xc3, 0xcf, 0xce, 0xa6, 0xfe, 0xf8, 0xc3, 0xd9, 0xda,
+ 0xc3, 0x04, 0x60, 0xfc, 0x96, 0x03, 0x6a, 0xfc, 0x96, 0x03, 0x6a, 0xfb,
+ 0xa0, 0x03, 0x96, 0xfc, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
+ 0x00, 0x00, 0x04, 0x07, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x02,
+ 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01, 0x03, 0xf4, 0xfe,
+ 0x93, 0x01, 0x7f, 0xc3, 0xfe, 0xdb, 0xfe, 0xda, 0xc3, 0x01, 0x88, 0xfe,
+ 0x99, 0xc4, 0x01, 0x0b, 0x01, 0x0b, 0x04, 0x60, 0xfd, 0xdf, 0xfd, 0xc1,
+ 0x01, 0xb8, 0xfe, 0x48, 0x02, 0x4a, 0x02, 0x16, 0xfe, 0x71, 0x01, 0x8f,
+ 0x00, 0x01, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x04, 0x60, 0x00, 0x0f,
+ 0x00, 0x00, 0x05, 0x0e, 0x01, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x3f,
+ 0x01, 0x01, 0x33, 0x09, 0x01, 0x33, 0x02, 0x51, 0x46, 0x85, 0x70, 0x84,
+ 0x61, 0x44, 0x4c, 0x2e, 0x1e, 0xfe, 0x68, 0xaf, 0x01, 0x3b, 0x01, 0x3b,
+ 0xb0, 0x68, 0xc8, 0x7a, 0x9a, 0x48, 0x86, 0x54, 0x04, 0x4e, 0xfc, 0x94,
+ 0x03, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x79,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x15,
+ 0x21, 0x35, 0x01, 0x21, 0x66, 0x03, 0x12, 0xfd, 0x92, 0x02, 0x6e, 0xfc,
+ 0xd7, 0x02, 0x6f, 0xfd, 0xa8, 0x04, 0x60, 0xa8, 0xfc, 0xdb, 0x93, 0xa8,
+ 0x03, 0x25, 0x00, 0x00, 0x00, 0x01, 0x00, 0xe6, 0xfe, 0xb2, 0x03, 0xaf,
+ 0x06, 0x14, 0x00, 0x24, 0x00, 0x00, 0x05, 0x15, 0x23, 0x22, 0x26, 0x3d,
+ 0x01, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x34,
+ 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x14, 0x06, 0x07,
+ 0x1e, 0x01, 0x1d, 0x01, 0x14, 0x16, 0x33, 0x03, 0xae, 0x38, 0xe0, 0x98,
+ 0x61, 0x80, 0x37, 0x37, 0x81, 0x60, 0x98, 0xe0, 0x38, 0x3d, 0x7f, 0x4d,
+ 0x52, 0x63, 0x64, 0x51, 0x4d, 0x7f, 0xbe, 0x90, 0x94, 0xdd, 0xef, 0x97,
+ 0x74, 0x8f, 0x73, 0x95, 0xf0, 0xdd, 0x93, 0x8f, 0x58, 0x8d, 0xf8, 0x9d,
+ 0x8e, 0x19, 0x1b, 0x8e, 0x9c, 0xf8, 0x8d, 0x58, 0x00, 0x01, 0x00, 0xea,
+ 0xfe, 0x1d, 0x01, 0x83, 0x06, 0x1d, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x01, 0x83, 0x99, 0x06, 0x1d, 0xf8, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xe6, 0xfe, 0xb2, 0x03, 0xaf, 0x06, 0x14, 0x00, 0x24,
+ 0x00, 0x00, 0x17, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x34, 0x36, 0x37, 0x2e,
+ 0x01, 0x3d, 0x01, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x16, 0x1d,
+ 0x01, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x14,
+ 0x06, 0x2b, 0x01, 0xe6, 0x3f, 0x7e, 0x4d, 0x51, 0x64, 0x64, 0x51, 0x4d,
+ 0x7e, 0x3f, 0x39, 0xe0, 0x97, 0x61, 0x7f, 0x38, 0x38, 0x7f, 0x61, 0x97,
+ 0xe0, 0x39, 0xbe, 0x56, 0x8f, 0xf8, 0x9c, 0x8e, 0x1b, 0x19, 0x8e, 0x9d,
+ 0xf8, 0x8e, 0x57, 0x8f, 0x93, 0xdd, 0xf0, 0x95, 0x73, 0x8f, 0x74, 0x97,
+ 0xef, 0xdd, 0x94, 0x00, 0x00, 0x01, 0x00, 0xc3, 0x01, 0xd3, 0x05, 0x46,
+ 0x03, 0x31, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x0a, 0x05, 0x06, 0x0d, 0x8c,
+ 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x08, 0x05, 0x07,
+ 0x0d, 0x8b, 0x55, 0x4d, 0x98, 0x03, 0x31, 0xb2, 0x4f, 0x44, 0x3b, 0x04,
+ 0x02, 0x03, 0x05, 0x3e, 0x4d, 0x53, 0xb2, 0x4f, 0x45, 0x3c, 0x04, 0x02,
+ 0x03, 0x05, 0x3e, 0x4c, 0x00, 0x02, 0x01, 0x16, 0x00, 0x00, 0x01, 0xcd,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x01, 0x23, 0x35, 0x33,
+ 0x11, 0x23, 0x11, 0x13, 0x33, 0x13, 0x01, 0xcd, 0xb7, 0xb7, 0xb7, 0x13,
+ 0x92, 0x12, 0x04, 0xd7, 0xfe, 0xfa, 0x2b, 0x02, 0x8f, 0x01, 0x65, 0xfe,
+ 0x9b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9a, 0xfe, 0xc7, 0x03, 0xba,
+ 0x05, 0x98, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x25, 0x11, 0x0e, 0x01,
+ 0x15, 0x14, 0x16, 0x01, 0x15, 0x2e, 0x01, 0x27, 0x03, 0x3e, 0x01, 0x37,
+ 0x15, 0x0e, 0x01, 0x07, 0x11, 0x23, 0x11, 0x26, 0x02, 0x11, 0x10, 0x12,
+ 0x37, 0x11, 0x33, 0x13, 0x1e, 0x01, 0x02, 0x62, 0x84, 0x94, 0x94, 0x01,
+ 0xdb, 0x43, 0x7a, 0x3d, 0x01, 0x3f, 0x7b, 0x41, 0x3a, 0x7c, 0x45, 0x5c,
+ 0xd9, 0xee, 0xee, 0xd9, 0x5c, 0x01, 0x42, 0x7b, 0x83, 0x03, 0x58, 0x12,
+ 0xe2, 0xb8, 0xb9, 0xe2, 0x03, 0xa1, 0xac, 0x29, 0x2a, 0x03, 0xfc, 0xa0,
+ 0x05, 0x2a, 0x27, 0xaa, 0x1e, 0x23, 0x07, 0xfe, 0xe4, 0x01, 0x20, 0x14,
+ 0x01, 0x33, 0x01, 0x01, 0x01, 0x02, 0x01, 0x32, 0x16, 0x01, 0x1f, 0xfe,
+ 0xe1, 0x04, 0x21, 0x00, 0x00, 0x01, 0x00, 0x74, 0x00, 0x00, 0x03, 0xf2,
+ 0x05, 0xf0, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x35, 0x33,
+ 0x11, 0x23, 0x35, 0x33, 0x35, 0x10, 0x36, 0x33, 0x32, 0x16, 0x03, 0xe0,
+ 0x45, 0x7a, 0x37, 0x85, 0x69, 0x01, 0x60, 0xfe, 0xa0, 0x01, 0xf6, 0xfc,
+ 0x82, 0xd4, 0xb3, 0xb3, 0xc1, 0xd1, 0x37, 0x88, 0x05, 0xb4, 0xb6, 0x29,
+ 0x29, 0x9b, 0xd4, 0xd7, 0x8f, 0xfe, 0x2f, 0xaa, 0xaa, 0x01, 0xd1, 0x8f,
+ 0xee, 0x01, 0x05, 0xf3, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x54,
+ 0x00, 0x52, 0x04, 0x43, 0x04, 0xb2, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x37, 0x17, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x17, 0x07,
+ 0x27, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x07, 0x27, 0x37, 0x2e, 0x01,
+ 0x35, 0x34, 0x36, 0x37, 0x27, 0x37, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x13, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x03, 0x22, 0xba, 0x67, 0xba, 0x22, 0x20, 0x22, 0x24, 0xbc, 0x67, 0xba,
+ 0x35, 0x68, 0x37, 0x34, 0x6c, 0x37, 0xbb, 0x65, 0xba, 0x21, 0x22, 0x22,
+ 0x23, 0xbb, 0x68, 0xba, 0x32, 0x68, 0x3a, 0x36, 0x69, 0x53, 0x8c, 0x66,
+ 0x65, 0x8e, 0x8d, 0x66, 0x65, 0x8d, 0x03, 0xe1, 0xd1, 0x73, 0xce, 0x3b,
+ 0x77, 0x3e, 0x3f, 0x73, 0x39, 0xcf, 0x71, 0xcf, 0x28, 0x26, 0x25, 0x25,
+ 0xcf, 0x73, 0xce, 0x3e, 0x76, 0x3a, 0x40, 0x74, 0x38, 0xce, 0x73, 0xcf,
+ 0x27, 0x25, 0x24, 0xfe, 0x7c, 0x70, 0x9a, 0x9a, 0x70, 0x72, 0x9c, 0x9d,
+ 0x00, 0x01, 0x00, 0x49, 0x00, 0x00, 0x04, 0x4a, 0x05, 0xd5, 0x00, 0x18,
+ 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x35, 0x27,
+ 0x21, 0x35, 0x33, 0x01, 0x33, 0x09, 0x01, 0x33, 0x01, 0x33, 0x15, 0x21,
+ 0x07, 0x15, 0x21, 0x04, 0x18, 0xfe, 0x8d, 0xb5, 0xfe, 0x8a, 0x01, 0x76,
+ 0x4c, 0xfe, 0xd6, 0xed, 0xfe, 0xe3, 0xab, 0x01, 0x55, 0x01, 0x53, 0xac,
+ 0xfe, 0xe2, 0xed, 0xfe, 0xd7, 0x4c, 0x01, 0x75, 0x01, 0xc7, 0xfe, 0x39,
+ 0x01, 0xc7, 0x7b, 0x33, 0x9b, 0x7b, 0x02, 0x4a, 0xfd, 0x44, 0x02, 0xbc,
+ 0xfd, 0xb6, 0x7b, 0x9b, 0x33, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xea,
+ 0xfe, 0xa2, 0x01, 0x83, 0x05, 0x98, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x11, 0x23, 0x11, 0x13, 0x11, 0x23, 0x11, 0x01, 0x83, 0x99, 0x99,
+ 0x99, 0x01, 0x98, 0xfd, 0x0a, 0x02, 0xf6, 0x04, 0x00, 0xfd, 0x0a, 0x02,
+ 0xf6, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x52, 0xff, 0x3d, 0x03, 0x45,
+ 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x13, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x2e, 0x01, 0x35,
+ 0x34, 0x36, 0x37, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x01,
+ 0x55, 0x39, 0x37, 0x7d, 0xe1, 0x38, 0x38, 0x81, 0xb8, 0x4b, 0x80, 0x33,
+ 0x57, 0x61, 0xb9, 0x18, 0x0c, 0xbe, 0x76, 0x53, 0x54, 0x38, 0x34, 0xb8,
+ 0x9c, 0x41, 0x8b, 0x4f, 0x4e, 0x85, 0x34, 0x5c, 0x66, 0xc7, 0x16, 0xc1,
+ 0x73, 0x53, 0x52, 0x35, 0x35, 0xb4, 0x96, 0x41, 0x8a, 0x03, 0xa8, 0x2e,
+ 0x5a, 0x2e, 0x4c, 0x85, 0x87, 0x2d, 0x5b, 0x2e, 0x4b, 0x88, 0x02, 0x93,
+ 0xa4, 0x27, 0x27, 0x50, 0x47, 0x5a, 0x73, 0x0f, 0x08, 0x77, 0x9a, 0x65,
+ 0x5a, 0x8c, 0x35, 0x34, 0x6d, 0x40, 0x8e, 0xa8, 0x1d, 0x1d, 0xa4, 0x27,
+ 0x27, 0x54, 0x4c, 0x66, 0x7b, 0x0e, 0x78, 0x99, 0x66, 0x5b, 0x8f, 0x31,
+ 0x2c, 0x70, 0x45, 0x82, 0x9f, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc1,
+ 0x05, 0x46, 0x02, 0xd9, 0x06, 0x10, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x02, 0x21, 0xb7, 0xb7,
+ 0xfe, 0xa1, 0xb6, 0xb6, 0x06, 0x10, 0xca, 0xca, 0xca, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xfe, 0x00, 0x00, 0x06, 0x35, 0x05, 0xcd, 0x00, 0x17,
+ 0x00, 0x2f, 0x00, 0x49, 0x00, 0x00, 0x01, 0x32, 0x16, 0x17, 0x16, 0x12,
+ 0x15, 0x14, 0x02, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x26, 0x02,
+ 0x35, 0x34, 0x12, 0x37, 0x3e, 0x01, 0x17, 0x22, 0x06, 0x07, 0x0e, 0x01,
+ 0x15, 0x14, 0x16, 0x17, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x27, 0x2e, 0x01, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x03, 0x9a, 0x88, 0xed,
+ 0x62, 0x62, 0x61, 0x61, 0x62, 0x62, 0xed, 0x88, 0x89, 0xed, 0x62, 0x62,
+ 0x61, 0x61, 0x62, 0x62, 0xed, 0x89, 0x76, 0xcc, 0x54, 0x55, 0x56, 0x56,
+ 0x55, 0x54, 0xcc, 0x76, 0x76, 0xcd, 0x54, 0x54, 0x54, 0x55, 0x53, 0x54,
+ 0xcd, 0x97, 0x3c, 0x75, 0x3b, 0x86, 0x97, 0x9a, 0x8c, 0x3a, 0x6d, 0x3c,
+ 0x3d, 0x7b, 0x3f, 0xc2, 0xe2, 0xe2, 0xc2, 0x42, 0x7a, 0x05, 0xcd, 0x6e,
+ 0x6d, 0x6d, 0xfe, 0xfa, 0x9a, 0x98, 0xfe, 0xfb, 0x6d, 0x6d, 0x6e, 0x6e,
+ 0x6d, 0x6d, 0x01, 0x05, 0x98, 0x9a, 0x01, 0x06, 0x6d, 0x6d, 0x6e, 0x67,
+ 0x5e, 0x5e, 0x5e, 0xe5, 0x82, 0x81, 0xe3, 0x5e, 0x5e, 0x5f, 0x5f, 0x5e,
+ 0x5d, 0xe2, 0x83, 0x85, 0xe3, 0x5d, 0x5e, 0x5e, 0xf5, 0x81, 0x21, 0x20,
+ 0xaf, 0x9d, 0x9f, 0xae, 0x1f, 0x22, 0x7f, 0x1d, 0x1c, 0xf4, 0xd0, 0xd1,
+ 0xf2, 0x1c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67, 0x01, 0xd5, 0x02, 0xe9,
+ 0x05, 0xf0, 0x00, 0x03, 0x00, 0x1e, 0x00, 0x29, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x33, 0x32, 0x16, 0x07, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x3d, 0x01, 0x7d, 0x02, 0x6b, 0xfd, 0x95, 0x02, 0x69, 0x86,
+ 0x27, 0x82, 0x53, 0x74, 0x88, 0xab, 0xaa, 0xa3, 0x69, 0x69, 0x38, 0x7a,
+ 0x3e, 0x42, 0x83, 0x3e, 0xa4, 0xa1, 0xf8, 0x91, 0x71, 0x58, 0x4a, 0x5d,
+ 0x75, 0x02, 0x50, 0x7b, 0x02, 0xb8, 0xfe, 0x40, 0x70, 0x3f, 0x44, 0x87,
+ 0x71, 0x87, 0x8a, 0x04, 0x5b, 0x5b, 0x22, 0x22, 0x7f, 0x1c, 0x1c, 0xb0,
+ 0xf0, 0x43, 0x4f, 0x40, 0x4d, 0x90, 0x72, 0x1d, 0x00, 0x02, 0x00, 0x8e,
+ 0x00, 0x8d, 0x03, 0xbb, 0x04, 0x23, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x15, 0x09, 0x01, 0x15, 0x01, 0x35, 0x13, 0x15, 0x09, 0x01, 0x15,
+ 0x01, 0x35, 0x03, 0xbb, 0xfe, 0xf1, 0x01, 0x0f, 0xfe, 0x5a, 0x1f, 0xfe,
+ 0xf1, 0x01, 0x0f, 0xfe, 0x5a, 0x04, 0x23, 0xbf, 0xfe, 0xf4, 0xfe, 0xf4,
+ 0xbf, 0x01, 0xa2, 0x52, 0x01, 0xa2, 0xbf, 0xfe, 0xf4, 0xfe, 0xf4, 0xbf,
+ 0x01, 0xa2, 0x52, 0x00, 0x00, 0x01, 0x00, 0xc3, 0x01, 0x1f, 0x05, 0x46,
+ 0x03, 0x5e, 0x00, 0x05, 0x00, 0x00, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0xc3, 0x04, 0x82, 0x97, 0xfc, 0x15, 0x03, 0x5e, 0xfd, 0xc1, 0x01, 0x95,
+ 0x00, 0x01, 0x00, 0x5a, 0x01, 0xdf, 0x02, 0x40, 0x02, 0x83, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x5a, 0x01, 0xe5, 0xfe, 0x1b, 0x02,
+ 0x83, 0xa4, 0x00, 0x00, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x00, 0x06, 0x35,
+ 0x05, 0xcd, 0x00, 0x17, 0x00, 0x2f, 0x00, 0x38, 0x00, 0x4c, 0x00, 0x00,
+ 0x01, 0x22, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x2e, 0x01,
+ 0x27, 0x32, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x0e, 0x01,
+ 0x23, 0x22, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x3e, 0x01,
+ 0x13, 0x23, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x1f, 0x01, 0x23, 0x27, 0x2e, 0x01,
+ 0x2b, 0x01, 0x11, 0x23, 0x11, 0x03, 0x9a, 0x76, 0xcc, 0x54, 0x55, 0x56,
+ 0x56, 0x55, 0x54, 0xcc, 0x76, 0x76, 0xcd, 0x54, 0x54, 0x54, 0x55, 0x53,
+ 0x54, 0xcd, 0x76, 0x88, 0xed, 0x62, 0x62, 0x61, 0x61, 0x62, 0x62, 0xed,
+ 0x88, 0x89, 0xed, 0x62, 0x62, 0x61, 0x61, 0x62, 0x62, 0xed, 0x70, 0x6e,
+ 0x6e, 0x63, 0x4f, 0x50, 0x5b, 0x9e, 0x9d, 0x5f, 0x56, 0x15, 0x3d, 0x29,
+ 0x7b, 0x9a, 0x75, 0x35, 0x41, 0x31, 0x3b, 0x8c, 0x05, 0x66, 0x5e, 0x5e,
+ 0x5e, 0xe5, 0x82, 0x81, 0xe3, 0x5e, 0x5e, 0x5f, 0x5f, 0x5e, 0x5d, 0xe2,
+ 0x83, 0x85, 0xe3, 0x5d, 0x5e, 0x5e, 0x67, 0x6e, 0x6d, 0x6d, 0xfe, 0xfa,
+ 0x9a, 0x98, 0xfe, 0xfb, 0x6d, 0x6d, 0x6e, 0x6e, 0x6d, 0x6d, 0x01, 0x05,
+ 0x98, 0x9a, 0x01, 0x06, 0x6d, 0x6d, 0x6e, 0xfe, 0x62, 0xfe, 0xec, 0x3e,
+ 0x4b, 0x4c, 0x3f, 0x67, 0x77, 0x79, 0x56, 0x70, 0x11, 0x08, 0x4d, 0x49,
+ 0xdf, 0xd1, 0x60, 0x33, 0xfe, 0x9c, 0x03, 0x44, 0x00, 0x01, 0x00, 0xbf,
+ 0x05, 0x62, 0x02, 0xda, 0x05, 0xf6, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0xc0, 0x02, 0x1a, 0xfd, 0xe6, 0x05, 0xf6, 0x94, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xaf, 0x03, 0x75, 0x02, 0xeb, 0x05, 0xf0, 0x00, 0x0b,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0xcd, 0x48, 0x63, 0x63,
+ 0x48, 0x48, 0x63, 0x64, 0x47, 0x39, 0x6b, 0x26, 0x2a, 0x29, 0xa6, 0x79,
+ 0x79, 0xa2, 0xa5, 0x05, 0x6f, 0x6f, 0x50, 0x4f, 0x6d, 0x6d, 0x4f, 0x4f,
+ 0x70, 0x81, 0x31, 0x2e, 0x2d, 0x72, 0x42, 0x84, 0xb7, 0xb4, 0x87, 0x86,
+ 0xba, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46,
+ 0x05, 0x04, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x01, 0x21, 0x15, 0x21,
+ 0x03, 0x50, 0x01, 0xf5, 0xfe, 0x0b, 0x97, 0xfe, 0x0a, 0x01, 0xf6, 0xfe,
+ 0x0a, 0x04, 0x82, 0xfb, 0x7e, 0x05, 0x04, 0xfe, 0x7d, 0xaa, 0xfe, 0x7d,
+ 0x01, 0x83, 0xaa, 0x01, 0x83, 0xfb, 0xa6, 0xaa, 0x00, 0x01, 0x00, 0x54,
+ 0x02, 0x9c, 0x02, 0x6f, 0x05, 0xf0, 0x00, 0x18, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x35, 0x36, 0x37, 0x00, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x01, 0x06, 0xf1,
+ 0x01, 0x7e, 0xfd, 0xe6, 0x1e, 0x39, 0x01, 0x36, 0x5e, 0x4d, 0x2e, 0x6e,
+ 0x41, 0x45, 0x78, 0x33, 0x83, 0x9c, 0xfe, 0xd7, 0x33, 0x03, 0x0e, 0x72,
+ 0x6e, 0x1f, 0x38, 0x01, 0x31, 0x5e, 0x42, 0x51, 0x23, 0x23, 0x7b, 0x1c,
+ 0x1c, 0x84, 0x6c, 0x8b, 0xfe, 0xe4, 0x30, 0x00, 0x00, 0x01, 0x00, 0x58,
+ 0x02, 0x8d, 0x02, 0x86, 0x05, 0xf0, 0x00, 0x28, 0x00, 0x00, 0x01, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x01, 0xd8, 0x52, 0x5b, 0xab, 0x9f, 0x33, 0x71, 0x3f,
+ 0x2f, 0x6b, 0x3c, 0x62, 0x6c, 0x63, 0x62, 0x4d, 0x55, 0x54, 0x57, 0x5a,
+ 0x55, 0x24, 0x5c, 0x49, 0x42, 0x73, 0x32, 0x81, 0x98, 0x51, 0x04, 0x60,
+ 0x12, 0x6d, 0x52, 0x7c, 0x86, 0x15, 0x14, 0x79, 0x1b, 0x1a, 0x4f, 0x46,
+ 0x4a, 0x4c, 0x6c, 0x3f, 0x3c, 0x3a, 0x3d, 0x12, 0x17, 0x73, 0x11, 0x12,
+ 0x76, 0x63, 0x45, 0x60, 0x00, 0x01, 0x01, 0x4d, 0x04, 0xee, 0x02, 0xfd,
+ 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, 0x02, 0x4a,
+ 0xb3, 0xfe, 0xdb, 0x8a, 0x06, 0x66, 0xfe, 0x88, 0x00, 0x01, 0x00, 0x9c,
+ 0xfe, 0x56, 0x04, 0x68, 0x04, 0x60, 0x00, 0x20, 0x00, 0x00, 0x13, 0x11,
+ 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27,
+ 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x11, 0x9d, 0xa5, 0x7c, 0x7a, 0x85,
+ 0x86, 0xa6, 0x1f, 0x22, 0x08, 0x1c, 0x1a, 0x25, 0x42, 0x1f, 0x3e, 0x4a,
+ 0x0e, 0x2d, 0x82, 0x59, 0x5b, 0x81, 0x26, 0xfe, 0x56, 0x06, 0x0a, 0xfd,
+ 0x48, 0x91, 0x94, 0xa8, 0xa8, 0x02, 0x8d, 0xfc, 0xa2, 0x3c, 0x39, 0x0b,
+ 0x0c, 0x94, 0x17, 0x16, 0x4e, 0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0xfd, 0xd7,
+ 0x00, 0x01, 0x00, 0x8e, 0xff, 0x3b, 0x03, 0xcd, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x02, 0x3a, 0x01, 0x93, 0x7f, 0xab, 0x80, 0xc1,
+ 0xd4, 0xea, 0x05, 0xd5, 0xf9, 0x66, 0x06, 0x1f, 0xf9, 0xe1, 0x03, 0x4e,
+ 0x11, 0xdd, 0xb8, 0xbe, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5,
+ 0x02, 0x48, 0x01, 0x83, 0x03, 0x46, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x23, 0xc5, 0xbe, 0xbe, 0x03, 0x46, 0xfe, 0x00, 0x01, 0x01, 0x05,
+ 0xfe, 0x75, 0x02, 0x7b, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x21, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x02, 0x18, 0x32, 0x30, 0x6c, 0x6a,
+ 0x29, 0x4e, 0x27, 0x1e, 0x43, 0x2a, 0x35, 0x36, 0x26, 0x29, 0x3e, 0x69,
+ 0x30, 0x59, 0x5b, 0x0c, 0x0c, 0x83, 0x11, 0x0f, 0x30, 0x2e, 0x1e, 0x57,
+ 0x3d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x7b, 0x02, 0x9c, 0x02, 0x7f,
+ 0x05, 0xdf, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33, 0x11, 0x07, 0x35, 0x37,
+ 0x33, 0x11, 0x33, 0x15, 0x21, 0x8c, 0xb8, 0xc9, 0xcf, 0x7c, 0xb8, 0xfe,
+ 0x0e, 0x03, 0x0a, 0x02, 0x63, 0x29, 0x74, 0x27, 0xfd, 0x2b, 0x6e, 0x00,
+ 0x00, 0x03, 0x00, 0x56, 0x01, 0xd5, 0x03, 0x0e, 0x05, 0xf0, 0x00, 0x03,
+ 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x17, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x7d, 0x02,
+ 0x6b, 0xfd, 0x95, 0x01, 0x36, 0xa1, 0xb9, 0xb9, 0xa1, 0xa1, 0xbc, 0xbc,
+ 0xa1, 0x5f, 0x71, 0x72, 0x5e, 0x5e, 0x71, 0x70, 0x02, 0x50, 0x7b, 0x04,
+ 0x1b, 0xdd, 0xbf, 0xbf, 0xdb, 0xdc, 0xbe, 0xbf, 0xdd, 0x73, 0xa1, 0x88,
+ 0x85, 0xa0, 0xa0, 0x85, 0x89, 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0xad,
+ 0x00, 0x8d, 0x03, 0xdb, 0x04, 0x23, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00,
+ 0x13, 0x01, 0x15, 0x01, 0x35, 0x09, 0x01, 0x25, 0x01, 0x15, 0x01, 0x35,
+ 0x09, 0x01, 0xae, 0x01, 0xa6, 0xfe, 0x5a, 0x01, 0x0f, 0xfe, 0xf1, 0x01,
+ 0x86, 0x01, 0xa6, 0xfe, 0x5a, 0x01, 0x0f, 0xfe, 0xf1, 0x04, 0x23, 0xfe,
+ 0x5e, 0x52, 0xfe, 0x5e, 0xbf, 0x01, 0x0c, 0x01, 0x0c, 0xbf, 0xfe, 0x5e,
+ 0x52, 0xfe, 0x5e, 0xbf, 0x01, 0x0c, 0x01, 0x0c, 0xff, 0xff, 0x00, 0x7b,
+ 0xff, 0xe3, 0x06, 0xc0, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00,
+ 0x10, 0x27, 0x07, 0xa2, 0x04, 0x17, 0xfd, 0x64, 0x10, 0x07, 0x07, 0x79,
+ 0x02, 0xe3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7b, 0xff, 0xe3, 0x06, 0x86,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00, 0x10, 0x27, 0x00, 0x74,
+ 0x04, 0x17, 0xfd, 0x64, 0x10, 0x07, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x58, 0xff, 0xe3, 0x06, 0xc0, 0x05, 0xf0, 0x10, 0x26,
+ 0x00, 0x75, 0x00, 0x00, 0x10, 0x27, 0x07, 0xa2, 0x04, 0x17, 0xfd, 0x64,
+ 0x10, 0x07, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80,
+ 0xff, 0xe3, 0x03, 0x4e, 0x05, 0xd5, 0x00, 0x20, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x14, 0x06, 0x0f, 0x01, 0x0e, 0x01, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x3f, 0x01, 0x3e, 0x01, 0x37, 0x3e, 0x01, 0x35, 0x13, 0x23, 0x35,
+ 0x33, 0x01, 0xc2, 0xab, 0x31, 0x52, 0x50, 0x35, 0x2e, 0x76, 0x62, 0x47,
+ 0xa2, 0x56, 0x55, 0xac, 0x5d, 0xa6, 0xc9, 0x41, 0x50, 0x50, 0x2b, 0x22,
+ 0x07, 0x07, 0x05, 0xb0, 0xb5, 0xb5, 0x04, 0x44, 0x9c, 0x65, 0x82, 0x57,
+ 0x58, 0x35, 0x5e, 0x31, 0x59, 0x6e, 0x46, 0x43, 0xbc, 0x39, 0x38, 0xc2,
+ 0x9f, 0x4c, 0x89, 0x56, 0x56, 0x2f, 0x35, 0x19, 0x15, 0x3c, 0x36, 0x01,
+ 0x0e, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x6b, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee,
+ 0x04, 0x43, 0x01, 0x75, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x6b, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00, 0x10, 0x07, 0x10, 0xec,
+ 0x04, 0x43, 0x01, 0x75, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x6d, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00, 0x11, 0x07, 0x10, 0xef,
+ 0x04, 0x43, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x5e, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xed, 0x04, 0x43, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0x4e, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb, 0x04, 0x43, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x6d, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x21, 0x00, 0x00, 0x01, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x0b, 0x01,
+ 0x21, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x07, 0x01, 0x23, 0x03, 0x21, 0x03, 0x23, 0x02, 0xff, 0x50, 0x39,
+ 0x3a, 0x4e, 0x4f, 0x39, 0x39, 0x50, 0x89, 0xf5, 0x01, 0xeb, 0xfe, 0x82,
+ 0x37, 0x38, 0x8f, 0x68, 0x67, 0x91, 0x39, 0x36, 0x01, 0xdf, 0xbd, 0x7b,
+ 0xfd, 0xa2, 0x7a, 0xc0, 0x06, 0x5a, 0x3f, 0x59, 0x57, 0x41, 0x3f, 0x58,
+ 0x58, 0xfe, 0xf3, 0xfd, 0x19, 0x03, 0x4e, 0x29, 0x73, 0x49, 0x73, 0xa0,
+ 0xa1, 0x72, 0x46, 0x76, 0x29, 0xfa, 0x8b, 0x01, 0x7f, 0xfe, 0x81, 0x00,
+ 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x06, 0x8e, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x13, 0x00, 0x00, 0x01, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x03, 0x23, 0x01, 0x17, 0x01, 0x21, 0x11,
+ 0x06, 0x7c, 0xfd, 0x66, 0x02, 0x80, 0xfd, 0x80, 0x02, 0xac, 0xfc, 0x9d,
+ 0xfe, 0x25, 0x90, 0xb9, 0x02, 0x33, 0x7d, 0xfe, 0xd7, 0x01, 0x9d, 0x05,
+ 0xd5, 0xaa, 0xfe, 0x46, 0xaa, 0xfd, 0xe3, 0xaa, 0x01, 0x7f, 0xfe, 0x81,
+ 0x05, 0xd5, 0x9e, 0xfc, 0xf0, 0x03, 0x10, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xfe, 0x75, 0x04, 0xa4, 0x05, 0xf0, 0x12, 0x26, 0x00, 0x26, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x7a, 0x01, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xee, 0x04, 0x28, 0x01, 0x75, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x04, 0x28, 0x01, 0x75, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xef, 0x04, 0x28, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x4e, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb, 0x04, 0x28, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x01, 0x8e,
+ 0x07, 0x6b, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee,
+ 0x02, 0xde, 0x01, 0x75, 0xff, 0xff, 0x00, 0x91, 0x00, 0x00, 0x01, 0xe9,
+ 0x07, 0x6b, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x07, 0x10, 0xec,
+ 0x02, 0xde, 0x01, 0x75, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x02, 0x24,
+ 0x07, 0x6d, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00, 0x11, 0x07, 0x10, 0xef,
+ 0x02, 0xde, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0x00, 0x00, 0x02, 0x1c, 0x07, 0x4e, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xeb, 0x02, 0xde, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x05, 0x28, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x19, 0x00, 0x00, 0x13, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x29,
+ 0x01, 0x11, 0x23, 0x35, 0x33, 0x13, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0xbe, 0x01, 0x76, 0x01, 0x86, 0x01,
+ 0x6d, 0xfe, 0x92, 0xfe, 0x7b, 0xfe, 0x8a, 0xb5, 0xb5, 0xb7, 0x01, 0x2e,
+ 0xfe, 0xd2, 0xda, 0x01, 0x16, 0x01, 0x03, 0xfe, 0xfd, 0xfe, 0xea, 0x05,
+ 0xd5, 0xfe, 0x97, 0xfe, 0x80, 0xfe, 0x7e, 0xfe, 0x96, 0x02, 0xbc, 0x90,
+ 0x01, 0xe3, 0xfe, 0x1d, 0x90, 0xfd, 0xea, 0x01, 0x18, 0x01, 0x2e, 0x01,
+ 0x2c, 0x01, 0x17, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae,
+ 0x07, 0x5e, 0x12, 0x26, 0x00, 0x31, 0x00, 0x00, 0x11, 0x07, 0x10, 0xed,
+ 0x04, 0x7e, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xee, 0x04, 0xa3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x04, 0xa3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xef, 0x04, 0xa3, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x07, 0x5e, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x11, 0x07, 0x10, 0xed, 0x04, 0xa3, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x07, 0x4e, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb,
+ 0x04, 0xa3, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xfc,
+ 0x00, 0x3f, 0x05, 0x0d, 0x04, 0xc5, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x02,
+ 0x07, 0x09, 0x01, 0x27, 0x09, 0x01, 0x37, 0x09, 0x01, 0x05, 0x0c, 0xfe,
+ 0x65, 0x01, 0x9b, 0x6b, 0xfe, 0x63, 0xfe, 0x63, 0x6a, 0x01, 0x9a, 0xfe,
+ 0x66, 0x6a, 0x01, 0x9d, 0x01, 0x9d, 0x04, 0x4c, 0xfe, 0x35, 0xfe, 0x37,
+ 0x79, 0x01, 0xcb, 0xfe, 0x35, 0x79, 0x01, 0xc9, 0x01, 0xcb, 0x79, 0xfe,
+ 0x35, 0x01, 0xcb, 0x00, 0x00, 0x03, 0x00, 0x5b, 0xff, 0xba, 0x05, 0x4f,
+ 0x06, 0x17, 0x00, 0x09, 0x00, 0x13, 0x00, 0x2b, 0x00, 0x00, 0x09, 0x01,
+ 0x1e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x34, 0x26, 0x27, 0x2e, 0x01, 0x23,
+ 0x22, 0x02, 0x11, 0x14, 0x16, 0x17, 0x07, 0x26, 0x02, 0x35, 0x10, 0x00,
+ 0x21, 0x32, 0x16, 0x17, 0x37, 0x17, 0x07, 0x16, 0x12, 0x15, 0x10, 0x00,
+ 0x21, 0x22, 0x26, 0x27, 0x07, 0x27, 0x04, 0x3d, 0xfd, 0x7b, 0x38, 0x91,
+ 0x55, 0xc6, 0xe8, 0x24, 0x6c, 0x37, 0x91, 0x56, 0xc6, 0xe9, 0x23, 0x23,
+ 0x78, 0x46, 0x47, 0x01, 0x53, 0x01, 0x1b, 0x75, 0xc7, 0x4e, 0x92, 0x5c,
+ 0x99, 0x46, 0x48, 0xfe, 0xae, 0xfe, 0xe5, 0x73, 0xc7, 0x52, 0x92, 0x5c,
+ 0x04, 0x58, 0xfc, 0xb2, 0x40, 0x43, 0x01, 0x48, 0x01, 0x1a, 0x70, 0xb8,
+ 0xb8, 0x40, 0x43, 0xfe, 0xb8, 0xfe, 0xe5, 0x70, 0xbc, 0x44, 0x9e, 0x66,
+ 0x01, 0x08, 0xa0, 0x01, 0x62, 0x01, 0xa5, 0x4d, 0x4b, 0xbf, 0x59, 0xc6,
+ 0x67, 0xfe, 0xf6, 0x9e, 0xfe, 0x9f, 0xfe, 0x5b, 0x4b, 0x4b, 0xbf, 0x58,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x6b, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee, 0x04, 0x70, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x6b, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x10, 0xec, 0x04, 0x70, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x11, 0x07, 0x10, 0xef, 0x04, 0x70, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x07, 0x4e, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb,
+ 0x04, 0x70, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x04, 0x6a, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x3c, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x04, 0x01, 0x01, 0x75, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11,
+ 0x23, 0x13, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0xb5, 0xb6,
+ 0xe4, 0xe2, 0xe7, 0xe7, 0xe2, 0xe4, 0xb6, 0xb6, 0xe4, 0x7f, 0x8b, 0x8a,
+ 0x80, 0x05, 0xd5, 0xfe, 0xf8, 0xe1, 0xdc, 0xdc, 0xe2, 0xfe, 0xae, 0x04,
+ 0x27, 0xfd, 0xd1, 0x92, 0x86, 0x86, 0x91, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0xe3, 0x04, 0x35, 0x06, 0x14, 0x00, 0x2f, 0x00, 0x00, 0x13, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x17, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x1f, 0x01,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x37, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0xa7, 0xd7,
+ 0xc5, 0xbb, 0xc5, 0x03, 0x88, 0x97, 0x34, 0x3a, 0x34, 0x95, 0x56, 0xca,
+ 0xbe, 0x3a, 0x7a, 0x42, 0x48, 0x7e, 0x3b, 0x68, 0x6c, 0x35, 0x5b, 0x53,
+ 0x56, 0x4e, 0x96, 0x88, 0x07, 0x76, 0x66, 0x75, 0x7a, 0xa9, 0x04, 0x71,
+ 0xc8, 0xdb, 0xe8, 0xe0, 0x08, 0x73, 0x60, 0x2f, 0x51, 0x2a, 0x25, 0x6a,
+ 0x8e, 0x64, 0xac, 0xb7, 0x19, 0x18, 0xa4, 0x1e, 0x1d, 0x5f, 0x5b, 0x3f,
+ 0x54, 0x3e, 0x37, 0x3b, 0x87, 0x5b, 0x7f, 0xac, 0x1d, 0x67, 0x70, 0x8b,
+ 0x83, 0xfb, 0x93, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x00, 0x43,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x00, 0x76,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x02, 0x88,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x37, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x02, 0x9e,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x10, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x00, 0x6a,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x07, 0x06, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x02, 0x9c,
+ 0x4a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0xb1,
+ 0x04, 0x7b, 0x00, 0x06, 0x00, 0x33, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x03, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x1d,
+ 0x01, 0x21, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x27, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b,
+ 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x03, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d,
+ 0x01, 0x06, 0x0a, 0x01, 0x94, 0x7b, 0x8a, 0xa7, 0x0c, 0x3d, 0x42, 0xbf,
+ 0x77, 0xcb, 0xee, 0xfd, 0x06, 0x0b, 0xb8, 0xa4, 0x5e, 0xb4, 0x5a, 0x5a,
+ 0xbb, 0x60, 0x96, 0xdf, 0x45, 0x42, 0xc3, 0x80, 0xaa, 0xbd, 0xe3, 0xe2,
+ 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0x80, 0xc0, 0xd7,
+ 0xc9, 0x9b, 0x74, 0x64, 0x8a, 0xa6, 0x02, 0x94, 0x97, 0xb4, 0xae, 0x9e,
+ 0x01, 0x30, 0x5a, 0x5e, 0xfe, 0xdd, 0xfa, 0x5a, 0xbf, 0xc8, 0x35, 0x35,
+ 0xae, 0x2a, 0x2c, 0x79, 0x77, 0x78, 0x78, 0xbb, 0xa8, 0xbd, 0xc0, 0x12,
+ 0x7f, 0x8b, 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0x60, 0xfe, 0x18, 0x66, 0x7b,
+ 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x75, 0x03, 0x84, 0x04, 0x7b, 0x12, 0x26, 0x00, 0x46, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x7a, 0x00, 0x81, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x66, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x43, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x66, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x66, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x11, 0x06, 0x02, 0x88, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x10, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x11, 0x06, 0x00, 0x6a, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xcc,
+ 0x00, 0x00, 0x01, 0x7c, 0x06, 0x66, 0x10, 0x27, 0x00, 0x43, 0xff, 0x34,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x81,
+ 0x00, 0x00, 0x02, 0x31, 0x06, 0x66, 0x10, 0x27, 0x00, 0x76, 0xff, 0x34,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1,
+ 0x00, 0x00, 0x02, 0x20, 0x06, 0x66, 0x12, 0x26, 0x00, 0xf3, 0x00, 0x00,
+ 0x11, 0x07, 0x02, 0x88, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x02, 0x0c, 0x06, 0x10, 0x12, 0x26,
+ 0x00, 0xf3, 0x00, 0x00, 0x11, 0x07, 0x00, 0x6a, 0xff, 0x34, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x06, 0x14, 0x00, 0x0e, 0x00, 0x28, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x13,
+ 0x16, 0x12, 0x15, 0x14, 0x00, 0x23, 0x22, 0x02, 0x11, 0x34, 0x12, 0x33,
+ 0x32, 0x16, 0x17, 0x27, 0x05, 0x27, 0x37, 0x27, 0x33, 0x17, 0x25, 0x17,
+ 0x05, 0x02, 0xf2, 0x2d, 0x4f, 0x25, 0x96, 0xa7, 0x9d, 0x83, 0x83, 0x9c,
+ 0x30, 0x08, 0x71, 0x67, 0xff, 0x00, 0xcf, 0xd0, 0xfe, 0xf8, 0xc7, 0x10,
+ 0x2f, 0x26, 0x8f, 0xfe, 0xe1, 0x1e, 0xfd, 0xa3, 0xcd, 0x72, 0x01, 0x2c,
+ 0x1e, 0xfe, 0xf6, 0x03, 0x93, 0x11, 0x10, 0xd8, 0xc3, 0xbc, 0xde, 0xde,
+ 0xbc, 0x7a, 0xbc, 0x01, 0x26, 0x8f, 0xfe, 0xe0, 0xad, 0xff, 0xfe, 0xc9,
+ 0x01, 0x37, 0x00, 0xff, 0xfa, 0x01, 0x37, 0x05, 0x05, 0xb4, 0x6b, 0x63,
+ 0x5c, 0xcc, 0x91, 0x6f, 0x61, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x06, 0x37, 0x12, 0x26, 0x00, 0x51, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9e, 0x00, 0x89, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x43, 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x11, 0x06, 0x02, 0x88, 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x37, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x11, 0x06, 0x02, 0x9e, 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x10, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x11, 0x06, 0x00, 0x6a, 0x68, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0x00, 0x96, 0x05, 0x46, 0x04, 0x6f, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x01, 0x21,
+ 0x15, 0x21, 0x02, 0x96, 0xdd, 0xdd, 0xdd, 0xdd, 0xfe, 0x2d, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x6f, 0xf6, 0xfe, 0x12, 0xf5, 0x02, 0x41, 0xaa, 0x00,
+ 0x00, 0x03, 0x00, 0x40, 0xff, 0xa2, 0x04, 0x26, 0x04, 0xbc, 0x00, 0x09,
+ 0x00, 0x13, 0x00, 0x2b, 0x00, 0x00, 0x09, 0x01, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x17, 0x07, 0x2e, 0x01, 0x35, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17,
+ 0x37, 0x17, 0x07, 0x1e, 0x01, 0x15, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27,
+ 0x07, 0x27, 0x03, 0x2e, 0xfe, 0x4a, 0x25, 0x5d, 0x3a, 0x85, 0x9a, 0x12,
+ 0x52, 0x26, 0x5d, 0x38, 0x88, 0x98, 0x11, 0x12, 0x70, 0x31, 0x30, 0xf5,
+ 0xd9, 0x54, 0x8f, 0x3c, 0x7d, 0x56, 0x83, 0x2f, 0x31, 0xf7, 0xd8, 0x56,
+ 0x91, 0x39, 0x7d, 0x56, 0x03, 0x21, 0xfd, 0xb0, 0x2a, 0x28, 0xe8, 0xc8,
+ 0x4f, 0x75, 0x9a, 0x29, 0x29, 0xeb, 0xd3, 0x48, 0x6e, 0x2e, 0x97, 0x4d,
+ 0xc5, 0x77, 0x01, 0x14, 0x01, 0x38, 0x33, 0x34, 0xa8, 0x4f, 0xb3, 0x4d,
+ 0xc6, 0x78, 0xfe, 0xed, 0xfe, 0xc7, 0x34, 0x33, 0xa8, 0x4e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x10, 0x06, 0x00, 0x43, 0x6f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x10, 0x06, 0x00, 0x76, 0x6f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x11, 0x06, 0x02, 0x88, 0x6f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x10, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x11, 0x06, 0x00, 0x6a, 0x6f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x5c, 0x00, 0x00, 0x10, 0x06, 0x00, 0x76, 0x55, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x10,
+ 0x00, 0x1c, 0x00, 0x00, 0x25, 0x11, 0x23, 0x11, 0x33, 0x11, 0x3e, 0x01,
+ 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x26, 0x01, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x01, 0x4e, 0xa7,
+ 0xa7, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x01, 0xff,
+ 0x96, 0x83, 0x84, 0x96, 0x96, 0x84, 0x83, 0x96, 0xa8, 0xfd, 0xae, 0x07,
+ 0xbe, 0xfd, 0xa2, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe, 0xf8, 0xfe,
+ 0xbc, 0x61, 0x01, 0xeb, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x06, 0x10, 0x12, 0x26,
+ 0x00, 0x5c, 0x00, 0x00, 0x11, 0x06, 0x00, 0x6a, 0x55, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0xaa, 0x01, 0x3b, 0x13, 0x06, 0x00, 0x24, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x05, 0xf6, 0x10, 0x26, 0x00, 0x71, 0x43, 0x00, 0x13, 0x06, 0x00, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x92, 0x10, 0x27, 0x02, 0x9a, 0x00, 0xb9, 0x01, 0x4a, 0x13, 0x06,
+ 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x1f, 0x10, 0x26, 0x02, 0x9a, 0x47, 0xd7,
+ 0x13, 0x06, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0xfe, 0x75, 0x05, 0x15, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9d, 0x02, 0x9a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e,
+ 0xfe, 0x75, 0x04, 0x0d, 0x04, 0x7b, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9d, 0x01, 0x92, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x07, 0x6b, 0x12, 0x26, 0x00, 0x26, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x04, 0xa8, 0x01, 0x75, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0x84, 0x06, 0x66, 0x12, 0x26, 0x00, 0x46, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x7b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xef, 0x04, 0xc4,
+ 0x01, 0x75, 0x13, 0x06, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x46, 0x00, 0x00, 0x10, 0x07, 0x02, 0x88, 0x00, 0x94, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x07, 0x50, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0xc4, 0x01, 0x75, 0x12, 0x06, 0x00, 0x26, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x04, 0x2d, 0x00, 0x00, 0x12, 0x06, 0x00, 0x46, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x26, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0, 0x04, 0xa8, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x46, 0x00, 0x00, 0x10, 0x06, 0x02, 0x89,
+ 0x7b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x1f,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf0, 0x04, 0x6e, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x05, 0x46,
+ 0x06, 0x14, 0x12, 0x26, 0x00, 0x47, 0x00, 0x00, 0x11, 0x07, 0x10, 0xea,
+ 0x04, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x09,
+ 0x00, 0x00, 0x05, 0x28, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x92, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x76, 0x06, 0x14, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x35, 0x33, 0x15,
+ 0x33, 0x15, 0x23, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x16, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, 0x45, 0xfe, 0xdb, 0x01, 0x25, 0xa6,
+ 0x8a, 0x8a, 0xa6, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f,
+ 0xfe, 0x00, 0x96, 0x83, 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0x03, 0xb6,
+ 0x01, 0x4e, 0x7d, 0x93, 0x93, 0x7d, 0xfa, 0xfc, 0xa8, 0x64, 0x61, 0x01,
+ 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0xfe, 0x15, 0xcb, 0xe7,
+ 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x33, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x71, 0x00, 0x91, 0x01, 0x3d, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x05, 0xf6, 0x10, 0x27, 0x00, 0x71, 0x00, 0x87,
+ 0x00, 0x00, 0x13, 0x06, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf2, 0x04, 0x2a, 0x01, 0x75, 0x13, 0x06, 0x00, 0x28, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c,
+ 0x06, 0x48, 0x10, 0x27, 0x02, 0x9a, 0x00, 0x87, 0x00, 0x00, 0x13, 0x06,
+ 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x28,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x04, 0x21,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x48, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x75, 0x04, 0x19, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9d, 0x01, 0x9e, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x75, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9d, 0x01, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x67, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xf0, 0x04, 0x2f, 0x01, 0x6f, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x61, 0x12, 0x26,
+ 0x00, 0x48, 0x00, 0x00, 0x11, 0x07, 0x02, 0x89, 0x00, 0x85, 0xff, 0xfb,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xfe,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xef, 0x04, 0xd3, 0x01, 0x75, 0x13, 0x06,
+ 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x06, 0x66, 0x10, 0x26, 0x02, 0x88, 0x5e, 0x00,
+ 0x13, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xfe, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x2a, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf2, 0x04, 0x98, 0x01, 0x75, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x06, 0x48, 0x12, 0x26, 0x00, 0x4a, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x9a, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xfe, 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0xd3,
+ 0x01, 0x75, 0x13, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x03, 0xf9, 0x00, 0x00, 0x12, 0x06, 0x00, 0x4a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xfe, 0x01, 0x04, 0xfe, 0x05, 0xf0, 0x10, 0x27,
+ 0x02, 0xd7, 0x04, 0xd4, 0xff, 0xed, 0x12, 0x06, 0x00, 0x2a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb, 0x06, 0x34, 0x10, 0x27,
+ 0x02, 0xc3, 0x03, 0x7c, 0x01, 0x0c, 0x12, 0x06, 0x00, 0x4a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xef, 0x04, 0x82, 0x01, 0x75, 0x13, 0x06, 0x00, 0x2b, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, 0x03, 0xf4,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xef, 0x02, 0xc7, 0x01, 0x75, 0x13, 0x06,
+ 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0xe4, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23,
+ 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x17, 0x15, 0x21, 0x35,
+ 0x01, 0x4c, 0xb6, 0x02, 0x94, 0xb6, 0x98, 0x98, 0xb6, 0xfd, 0x6c, 0xb6,
+ 0x97, 0x97, 0xb6, 0x02, 0x94, 0x05, 0xd5, 0xe0, 0xe0, 0xe0, 0xa4, 0xfb,
+ 0xaf, 0x02, 0xc7, 0xfd, 0x39, 0x04, 0x51, 0xa4, 0xa4, 0xe0, 0xe0, 0x00,
+ 0x00, 0x01, 0x00, 0x6c, 0x00, 0x00, 0x04, 0x29, 0x06, 0x14, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21,
+ 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x04, 0x29, 0xa6, 0x6f, 0x70, 0x86,
+ 0x9b, 0xa7, 0x70, 0x70, 0xa7, 0x01, 0x3d, 0xfe, 0xc3, 0x3b, 0xa2, 0x69,
+ 0xad, 0xb3, 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4,
+ 0xfd, 0x87, 0x04, 0xf6, 0xa4, 0x7a, 0x7a, 0xa4, 0xfe, 0xbc, 0x65, 0x64,
+ 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x02, 0x39,
+ 0x07, 0x5e, 0x10, 0x27, 0x10, 0xed, 0x02, 0xdd, 0x01, 0x75, 0x13, 0x06,
+ 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xd7,
+ 0x00, 0x00, 0x02, 0x2a, 0x06, 0x37, 0x10, 0x27, 0x02, 0x9e, 0xff, 0x34,
+ 0x00, 0x00, 0x13, 0x06, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x02, 0x1d, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0xff, 0x43, 0x01, 0x3b, 0x13, 0x06, 0x00, 0x2c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x02, 0x0e,
+ 0x05, 0xf5, 0x10, 0x27, 0x00, 0x71, 0xff, 0x34, 0xff, 0xff, 0x13, 0x06,
+ 0x00, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf6,
+ 0x00, 0x00, 0x02, 0x2a, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf2, 0x02, 0xdd,
+ 0x01, 0x75, 0x13, 0x06, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x02, 0x1b, 0x06, 0x48, 0x10, 0x27,
+ 0x02, 0x9a, 0xff, 0x34, 0x00, 0x00, 0x13, 0x06, 0x00, 0xf3, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9e, 0xfe, 0x75, 0x01, 0xef,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0x9d, 0xff, 0x74, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x2c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87, 0xfe, 0x75, 0x01, 0xd7,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0x9d, 0xff, 0x5c, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x6d,
+ 0x07, 0x50, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf3,
+ 0x02, 0xde, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xad,
+ 0x00, 0x00, 0x01, 0x54, 0x04, 0x7b, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x23, 0x13, 0xae, 0xa5, 0xa5, 0x52, 0x04, 0x60, 0xfb,
+ 0xa0, 0x04, 0x7b, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x66, 0x03, 0x8b,
+ 0x05, 0xd5, 0x10, 0x27, 0x00, 0x2d, 0x02, 0x20, 0x00, 0x00, 0x11, 0x06,
+ 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0xfe, 0x56, 0x03, 0x53, 0x06, 0x14, 0x10, 0x27, 0x00, 0x4d, 0x01, 0xff,
+ 0x00, 0x00, 0x11, 0x06, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xa0, 0xfe, 0x66, 0x02, 0x23, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xef, 0x02, 0xdd, 0x01, 0x75, 0x13, 0x06, 0x00, 0x2d, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xde, 0xfe, 0x56, 0x02, 0x20,
+ 0x06, 0x66, 0x10, 0x27, 0x02, 0x88, 0xff, 0x34, 0x00, 0x00, 0x13, 0x06,
+ 0x01, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x1e, 0x04, 0xe0, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd7, 0x04, 0x98,
+ 0x00, 0x0a, 0x12, 0x06, 0x00, 0x2e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x1e, 0x04, 0x26, 0x06, 0x14, 0x10, 0x27, 0x02, 0xd7, 0x04, 0x35,
+ 0x00, 0x0a, 0x12, 0x06, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x26, 0x04, 0x60, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0xa7, 0xa7, 0x01,
+ 0xee, 0xd4, 0xfd, 0xe9, 0x02, 0x2d, 0xd8, 0xfe, 0x00, 0xa7, 0x04, 0x60,
+ 0xfe, 0x1b, 0x01, 0xe5, 0xfd, 0xf2, 0xfd, 0xae, 0x02, 0x21, 0xfd, 0xdf,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9, 0x07, 0x6c, 0x10, 0x27,
+ 0x10, 0xec, 0x03, 0x16, 0x01, 0x76, 0x12, 0x06, 0x00, 0x2f, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x02, 0x10, 0x07, 0x6c, 0x10, 0x27,
+ 0x10, 0xec, 0x03, 0x04, 0x01, 0x76, 0x13, 0x06, 0x00, 0x4f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x1e, 0x03, 0xf9,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd7, 0x04, 0x25, 0x00, 0x0a, 0x12, 0x06,
+ 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7a, 0xfe, 0x1e, 0x01, 0x83,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xd7, 0x02, 0xce, 0x00, 0x0a, 0x13, 0x06,
+ 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x10, 0x27, 0x10, 0xea, 0x02, 0x5c,
+ 0xff, 0xc3, 0x12, 0x06, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0x00, 0x00, 0x02, 0xb4, 0x06, 0x14, 0x10, 0x27, 0x10, 0xea, 0x02, 0x00,
+ 0x00, 0x02, 0x11, 0x06, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x10, 0x27,
+ 0x00, 0x79, 0x01, 0xf9, 0x00, 0x77, 0x12, 0x06, 0x00, 0x2f, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x02, 0x44, 0x06, 0x14, 0x10, 0x27,
+ 0x00, 0x79, 0x00, 0xc1, 0x00, 0x73, 0x11, 0x06, 0x00, 0x4f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf3, 0x00, 0x00, 0x04, 0x03,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33, 0x11, 0x25, 0x17, 0x01,
+ 0x11, 0x21, 0x15, 0x21, 0x11, 0x07, 0x27, 0x37, 0xbe, 0xb7, 0x01, 0x19,
+ 0x48, 0xfe, 0x9f, 0x02, 0x8e, 0xfc, 0xbb, 0x85, 0x46, 0xcb, 0x05, 0xd5,
+ 0xfd, 0x98, 0xdb, 0x6f, 0xfe, 0xee, 0xfd, 0xe3, 0xaa, 0x02, 0x3b, 0x6a,
+ 0x6e, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x0e,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x37, 0x17, 0x07,
+ 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0xb3, 0xa6, 0x70, 0x45, 0xb5, 0xa6,
+ 0x6f, 0x42, 0xb1, 0x06, 0x14, 0xfd, 0xa6, 0x5a, 0x6a, 0x8d, 0xfc, 0xe3,
+ 0x02, 0x9a, 0x58, 0x6a, 0x8d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xae, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x4b,
+ 0x01, 0x76, 0x13, 0x06, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xf4, 0x06, 0x6d, 0x10, 0x26,
+ 0x00, 0x76, 0x3c, 0x07, 0x13, 0x06, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x1e, 0x04, 0xae, 0x05, 0xd5, 0x10, 0x27,
+ 0x02, 0xd7, 0x04, 0x80, 0x00, 0x0a, 0x12, 0x06, 0x00, 0x31, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x1e, 0x03, 0xf4, 0x04, 0x7b, 0x10, 0x27,
+ 0x02, 0xd7, 0x04, 0x1c, 0x00, 0x0a, 0x12, 0x06, 0x00, 0x51, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x07, 0x5f, 0x12, 0x26,
+ 0x00, 0x31, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0, 0x04, 0x76, 0x01, 0x67,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xf4,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x51, 0x00, 0x00, 0x11, 0x06, 0x02, 0x89,
+ 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb8, 0x00, 0x00, 0x05, 0x27,
+ 0x05, 0xd5, 0x10, 0x27, 0x00, 0x51, 0x01, 0x33, 0x00, 0x00, 0x10, 0x06,
+ 0x02, 0x7e, 0x18, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x04, 0x97,
+ 0x05, 0xf0, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x10, 0x21, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x12, 0x19,
+ 0x01, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x03,
+ 0xe2, 0xfe, 0xeb, 0xa1, 0xc1, 0xb6, 0xb6, 0x46, 0x5e, 0x60, 0x89, 0xcd,
+ 0xd1, 0x49, 0x49, 0xa3, 0x4e, 0x2c, 0x5c, 0x47, 0x03, 0x7f, 0x01, 0xac,
+ 0xff, 0xde, 0xfc, 0xb2, 0x05, 0xd5, 0xf1, 0x86, 0x43, 0x43, 0xfe, 0xc1,
+ 0xfe, 0xcc, 0xfc, 0x6f, 0xd5, 0x61, 0x60, 0x9c, 0x5a, 0xa0, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x04, 0x7b, 0x00, 0x1f,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23,
+ 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x03, 0xf4,
+ 0x4a, 0x49, 0xa3, 0xe5, 0xd2, 0x5f, 0x22, 0x22, 0x70, 0x6f, 0x86, 0x9b,
+ 0xa7, 0xa7, 0x3b, 0x50, 0x51, 0x6a, 0xad, 0x59, 0x5a, 0x02, 0xa4, 0xfd,
+ 0x48, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x31, 0x99, 0x02, 0xb2, 0x9f, 0x9e,
+ 0xbe, 0xa4, 0xfd, 0x87, 0x04, 0x60, 0xae, 0x65, 0x32, 0x32, 0x77, 0x78,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x01, 0x0a, 0x01, 0x3b, 0x13, 0x06, 0x00, 0x32, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x05, 0xf5, 0x10, 0x26, 0x00, 0x71, 0x68, 0xff, 0x13, 0x06, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf2, 0x04, 0xa3, 0x01, 0x75, 0x13, 0x06,
+ 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x48, 0x10, 0x26, 0x02, 0x9a, 0x68, 0x00,
+ 0x13, 0x06, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x6b, 0x10, 0x27, 0x10, 0xf4, 0x04, 0xa3,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x32, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x27, 0x02, 0x9f, 0x00, 0x90,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0x00, 0x00, 0x07, 0x3e, 0x05, 0xd5, 0x00, 0x10, 0x00, 0x19, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x17, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x33, 0x07, 0x2e, 0xfd, 0x64, 0x02, 0x80, 0xfd, 0x80, 0x02, 0xac,
+ 0xfc, 0x42, 0xfe, 0x7a, 0xfe, 0x6e, 0x01, 0x92, 0x01, 0x86, 0x5c, 0x74,
+ 0xfe, 0xdf, 0xfe, 0xe0, 0x01, 0x20, 0x01, 0x21, 0x74, 0x05, 0xd5, 0xaa,
+ 0xfe, 0x46, 0xaa, 0xfd, 0xe3, 0xaa, 0x01, 0x7c, 0x01, 0x70, 0x01, 0x6d,
+ 0x01, 0x7c, 0xaa, 0xfe, 0xe1, 0xfe, 0xe0, 0xfe, 0xdf, 0xfe, 0xdf, 0x00,
+ 0x00, 0x03, 0x00, 0x65, 0xff, 0xe3, 0x06, 0xfd, 0x04, 0x7b, 0x00, 0x06,
+ 0x00, 0x27, 0x00, 0x33, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x07, 0x05, 0x15, 0x21, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x27, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10,
+ 0x12, 0x33, 0x32, 0x16, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x25, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x06, 0x56,
+ 0x02, 0x94, 0x7b, 0x8a, 0xa6, 0x0d, 0x02, 0xf4, 0xfd, 0x07, 0x0b, 0xb7,
+ 0xa5, 0x5f, 0xb4, 0x59, 0x5a, 0xbc, 0x5f, 0x90, 0xda, 0x49, 0x40, 0xbc,
+ 0x7e, 0xd9, 0xf5, 0xf5, 0xd9, 0x7e, 0xbe, 0x3c, 0x46, 0xd1, 0x80, 0xcc,
+ 0xed, 0xfb, 0x38, 0x85, 0x9b, 0x9a, 0x86, 0x85, 0x9a, 0x9a, 0x02, 0x94,
+ 0x98, 0xb3, 0xae, 0x9e, 0x35, 0x5a, 0xbe, 0xc7, 0x34, 0x34, 0xae, 0x2a,
+ 0x2c, 0x6e, 0x6d, 0x6e, 0x6d, 0x01, 0x39, 0x01, 0x13, 0x01, 0x14, 0x01,
+ 0x38, 0x6f, 0x6c, 0x6b, 0x70, 0xfe, 0xdd, 0x87, 0xe7, 0xc9, 0xc9, 0xe7,
+ 0xe8, 0xc8, 0xc7, 0xe9, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc,
+ 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x20, 0x01, 0x76, 0x12, 0x06,
+ 0x00, 0x35, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x39,
+ 0x06, 0x6d, 0x10, 0x26, 0x00, 0x76, 0x3b, 0x07, 0x12, 0x06, 0x00, 0x55,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x1e, 0x04, 0xcc,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd7, 0x04, 0x8e, 0x00, 0x0a, 0x12, 0x06,
+ 0x00, 0x35, 0x00, 0x00, 0xff, 0xff, 0x00, 0x75, 0xfe, 0x1e, 0x02, 0xf6,
+ 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd7, 0x02, 0xc9, 0x00, 0x0a, 0x12, 0x06,
+ 0x00, 0x55, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc,
+ 0x07, 0x5f, 0x12, 0x26, 0x00, 0x35, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0,
+ 0x04, 0x0a, 0x01, 0x67, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0x05, 0x06, 0x66, 0x12, 0x26, 0x00, 0x55, 0x00, 0x00,
+ 0x11, 0x06, 0x02, 0x89, 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x2c, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x20,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63,
+ 0xff, 0xe3, 0x03, 0x67, 0x06, 0x6d, 0x10, 0x26, 0x00, 0x76, 0x3c, 0x07,
+ 0x12, 0x06, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x2c, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xef, 0x04, 0x1e,
+ 0x01, 0x75, 0x13, 0x06, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67, 0x06, 0x66, 0x10, 0x26,
+ 0x02, 0x88, 0x21, 0x00, 0x13, 0x06, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xfe, 0x75, 0x04, 0x2c, 0x05, 0xf0, 0x12, 0x26,
+ 0x00, 0x36, 0x00, 0x00, 0x10, 0x06, 0x00, 0x7a, 0x7d, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xfe, 0x75, 0x03, 0x67, 0x04, 0x7b, 0x12, 0x26,
+ 0x00, 0x56, 0x00, 0x00, 0x10, 0x06, 0x00, 0x7a, 0x15, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x2c, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x36, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0, 0x04, 0x17, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x56, 0x00, 0x00, 0x11, 0x07, 0x02, 0xbd,
+ 0x03, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa,
+ 0xfe, 0x75, 0x04, 0x6c, 0x05, 0xd5, 0x10, 0x26, 0x00, 0x7a, 0x48, 0x00,
+ 0x12, 0x06, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31,
+ 0xfe, 0x75, 0x02, 0xa7, 0x05, 0x9e, 0x10, 0x26, 0x00, 0x7a, 0xe4, 0x00,
+ 0x12, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa,
+ 0x00, 0x00, 0x04, 0x6c, 0x07, 0x5f, 0x12, 0x26, 0x00, 0x37, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xf0, 0x04, 0x01, 0x01, 0x67, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x31, 0x00, 0x00, 0x02, 0xb2, 0x06, 0x82, 0x12, 0x26,
+ 0x00, 0x57, 0x00, 0x00, 0x11, 0x07, 0x10, 0xea, 0x01, 0xfe, 0x00, 0x70,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfa, 0x00, 0x00, 0x04, 0x6c,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x21, 0x15, 0x21, 0x11, 0x33,
+ 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x21, 0x05, 0x04,
+ 0x70, 0xfe, 0x23, 0xef, 0xef, 0xb6, 0xef, 0xef, 0xfe, 0x23, 0x05, 0xd5,
+ 0xaa, 0xfd, 0xc0, 0xaa, 0xfd, 0xbf, 0x02, 0x41, 0xaa, 0x02, 0x40, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0x00, 0x00, 0x02, 0xa7, 0x05, 0x9e, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15,
+ 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x01,
+ 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x11, 0x01, 0x52, 0x01, 0x55,
+ 0xfe, 0xab, 0x01, 0x55, 0xfe, 0xab, 0x21, 0x22, 0x67, 0xab, 0xab, 0xbf,
+ 0x49, 0x49, 0x79, 0x79, 0x79, 0x79, 0x05, 0x9e, 0xfe, 0xc2, 0x8f, 0xe9,
+ 0x8e, 0xe9, 0x89, 0x27, 0x27, 0x9a, 0x50, 0x4f, 0xd2, 0xe9, 0x8e, 0xe9,
+ 0x8f, 0x01, 0x3e, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x07, 0x5e, 0x10, 0x27, 0x10, 0xed, 0x04, 0x70, 0x01, 0x75, 0x13, 0x06,
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c,
+ 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x37, 0x10, 0x26, 0x02, 0x9e, 0x76, 0x00,
+ 0x13, 0x06, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0,
+ 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x31, 0x10, 0x27, 0x00, 0x71, 0x00, 0xd6,
+ 0x01, 0x3b, 0x13, 0x06, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x05, 0xf5, 0x10, 0x26,
+ 0x00, 0x71, 0x76, 0xff, 0x13, 0x06, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf2, 0x04, 0x70, 0x01, 0x75, 0x13, 0x06, 0x00, 0x38, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x06, 0x48, 0x10, 0x26, 0x02, 0x9a, 0x76, 0x00, 0x13, 0x06, 0x00, 0x58,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x07, 0x6f, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9c,
+ 0x00, 0xd8, 0x00, 0x69, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x06, 0xca, 0x12, 0x26, 0x00, 0x58, 0x00, 0x00, 0x11, 0x06, 0x02, 0x9c,
+ 0x70, 0xc4, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x07, 0x6b, 0x10, 0x27, 0x10, 0xf4, 0x04, 0x70, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x38, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xef,
+ 0x06, 0x66, 0x10, 0x27, 0x02, 0x9f, 0x00, 0x9e, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xfe, 0x75, 0x04, 0xa5,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9d,
+ 0x00, 0xe1, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xfe, 0x75, 0x04, 0x6b,
+ 0x04, 0x7b, 0x12, 0x26, 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9d,
+ 0x01, 0xf0, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x07, 0x74, 0x10, 0x27, 0x10, 0xef, 0x05, 0x5c, 0x01, 0x7c, 0x13, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d,
+ 0x00, 0x00, 0x05, 0x97, 0x06, 0x6d, 0x10, 0x27, 0x02, 0x88, 0x01, 0x24,
+ 0x00, 0x07, 0x13, 0x06, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x07, 0x74, 0x10, 0x27,
+ 0x10, 0xef, 0x04, 0x00, 0x01, 0x7c, 0x13, 0x06, 0x00, 0x3c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x06, 0x6d, 0x10, 0x26, 0x02, 0x88, 0x55, 0x07, 0x13, 0x06, 0x00, 0x5c,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x07, 0x4e, 0x12, 0x26, 0x00, 0x3c, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb,
+ 0x04, 0x01, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52,
+ 0x00, 0x00, 0x04, 0x9c, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x20,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f,
+ 0x00, 0x00, 0x03, 0x79, 0x06, 0x6d, 0x10, 0x26, 0x00, 0x76, 0x3c, 0x07,
+ 0x12, 0x06, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52,
+ 0x00, 0x00, 0x04, 0x9c, 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x45,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f,
+ 0x00, 0x00, 0x03, 0x79, 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x03, 0xae,
+ 0x00, 0x00, 0x13, 0x06, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x52, 0x00, 0x00, 0x04, 0x9c, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x3d, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf0, 0x04, 0x45, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x79, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x5d, 0x00, 0x00, 0x11, 0x06, 0x02, 0x89, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x02, 0xac, 0x06, 0x14, 0x00, 0x10,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15, 0x01, 0x6f, 0xa6, 0x9f, 0x9f,
+ 0x9c, 0xaa, 0x9d, 0x9e, 0x5a, 0x22, 0x23, 0x03, 0xd1, 0x8f, 0x4e, 0xbb,
+ 0xab, 0x99, 0x28, 0x29, 0x67, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1c,
+ 0xff, 0xe3, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x0f, 0x00, 0x2c, 0x00, 0x00,
+ 0x01, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x11, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x15, 0x23, 0x11,
+ 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, 0x03, 0x81, 0x4b,
+ 0x4b, 0x83, 0x84, 0x4b, 0x4b, 0x4b, 0x4b, 0x84, 0x83, 0x4b, 0x4b, 0xfd,
+ 0xcd, 0x34, 0x50, 0x4f, 0x6f, 0xb8, 0x72, 0x73, 0x73, 0x72, 0xb8, 0x6f,
+ 0x4f, 0x50, 0x34, 0xa7, 0x8a, 0x8a, 0xa7, 0x01, 0x24, 0xfe, 0xdc, 0x02,
+ 0x2f, 0xcb, 0x74, 0x73, 0x73, 0x74, 0xcb, 0xcb, 0x74, 0x73, 0x73, 0x74,
+ 0x02, 0x52, 0x64, 0x30, 0x31, 0xa2, 0xa2, 0xfe, 0xf8, 0xfe, 0xf8, 0xa2,
+ 0xa2, 0x31, 0x30, 0x64, 0xa8, 0x05, 0x04, 0x7d, 0x93, 0x93, 0x7d, 0x00,
+ 0x00, 0x03, 0xff, 0xa1, 0x00, 0x00, 0x04, 0xc8, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x11, 0x00, 0x29, 0x00, 0x00, 0x01, 0x11, 0x21, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x01, 0x11, 0x21, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x23, 0x21, 0x11, 0x22, 0x06, 0x1d, 0x01, 0x23, 0x35, 0x34, 0x36,
+ 0x01, 0xc5, 0x01, 0x23, 0x93, 0x8d, 0x8d, 0x93, 0xfe, 0xdd, 0x01, 0x0d,
+ 0x85, 0x83, 0x83, 0x85, 0xfe, 0x3d, 0x01, 0xd0, 0xd0, 0xe1, 0x73, 0x70,
+ 0x87, 0x94, 0xf5, 0xe2, 0xfe, 0x1e, 0x77, 0x6a, 0x8c, 0xac, 0x02, 0xc9,
+ 0xfd, 0xdd, 0x87, 0x8b, 0x8c, 0x85, 0x02, 0x66, 0xfe, 0x3e, 0x6f, 0x72,
+ 0x71, 0x70, 0xa6, 0xc0, 0xb1, 0x89, 0xa2, 0x14, 0x20, 0xcb, 0x98, 0xc8,
+ 0xda, 0x05, 0x30, 0x5f, 0x69, 0x31, 0x46, 0xb5, 0xa3, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x12, 0x06,
+ 0x03, 0xa5, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0xff, 0xe3, 0x04, 0x2e,
+ 0x06, 0x14, 0x00, 0x16, 0x00, 0x26, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x15, 0x23, 0x11, 0x21, 0x15, 0x25, 0x01, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x01,
+ 0x4e, 0x34, 0x50, 0x4f, 0x6f, 0xb8, 0x72, 0x73, 0x73, 0x72, 0xb8, 0x6f,
+ 0x4f, 0x50, 0x34, 0xa7, 0x02, 0xfa, 0xfd, 0xad, 0x02, 0x33, 0x4b, 0x4b,
+ 0x83, 0x84, 0x4b, 0x4b, 0x4b, 0x4b, 0x84, 0x83, 0x4b, 0x4b, 0x03, 0xb6,
+ 0x64, 0x30, 0x31, 0xa2, 0xa2, 0xfe, 0xf8, 0xfe, 0xf8, 0xa2, 0xa2, 0x31,
+ 0x30, 0x64, 0xa8, 0x06, 0x14, 0xa6, 0x01, 0xfc, 0xc0, 0xcb, 0x74, 0x73,
+ 0x73, 0x74, 0xcb, 0xcb, 0x74, 0x73, 0x73, 0x74, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x21, 0x32, 0x37, 0x36, 0x01,
+ 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x23, 0x01,
+ 0x03, 0xae, 0x47, 0x46, 0x93, 0xfe, 0xdd, 0x01, 0x23, 0x93, 0x46, 0x47,
+ 0xfd, 0xbd, 0x01, 0x2c, 0xe2, 0xf5, 0xf5, 0xe2, 0xfe, 0x1e, 0xb5, 0x01,
+ 0x19, 0x01, 0xb7, 0x8b, 0x44, 0x43, 0xfd, 0xdd, 0x44, 0x43, 0x04, 0xa8,
+ 0xfd, 0x9a, 0xda, 0xde, 0xdd, 0xda, 0x04, 0x44, 0x01, 0x91, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0xff, 0xe3, 0x04, 0x2e, 0x06, 0x15, 0x00, 0x12,
+ 0x00, 0x1e, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10,
+ 0x02, 0x23, 0x22, 0x26, 0x27, 0x15, 0x23, 0x11, 0x23, 0x01, 0x33, 0x01,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x01,
+ 0x4e, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x34, 0xa7,
+ 0xa7, 0x01, 0x05, 0x49, 0x02, 0x33, 0x96, 0x83, 0x84, 0x96, 0x96, 0x84,
+ 0x83, 0x96, 0x03, 0xb6, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe, 0xf8,
+ 0xfe, 0xbc, 0x61, 0x64, 0xa8, 0x04, 0x44, 0x01, 0xd1, 0xfc, 0x1a, 0xcb,
+ 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x00, 0x19, 0x00, 0x00, 0x13, 0x3e,
+ 0x01, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x06, 0x07,
+ 0x68, 0x5d, 0xd5, 0x79, 0x01, 0x31, 0x01, 0x5f, 0xfe, 0xa1, 0xfe, 0xcf,
+ 0x77, 0xd5, 0x5f, 0x5b, 0xd0, 0x75, 0xe7, 0xf4, 0xf4, 0xe7, 0x75, 0xd0,
+ 0x5b, 0x05, 0x62, 0x47, 0x47, 0xfe, 0x61, 0xfe, 0x98, 0xfe, 0x99, 0xfe,
+ 0x61, 0x48, 0x48, 0xd3, 0x5f, 0x5e, 0x01, 0x39, 0x01, 0x27, 0x01, 0x28,
+ 0x01, 0x39, 0x5e, 0x5f, 0x00, 0x01, 0x00, 0x67, 0xff, 0xe3, 0x05, 0xb8,
+ 0x07, 0x64, 0x00, 0x24, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x17, 0x16, 0x17, 0x36, 0x37,
+ 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x04, 0xa3, 0x5c, 0xd0, 0x75,
+ 0xe6, 0xf5, 0xf5, 0xe6, 0x75, 0xd0, 0x5c, 0x5f, 0xd6, 0x76, 0xfe, 0xce,
+ 0xfe, 0xa2, 0x01, 0x5e, 0x01, 0x32, 0x56, 0x8c, 0x0c, 0x0b, 0x0e, 0x4b,
+ 0x5c, 0xcc, 0x45, 0x38, 0x79, 0x63, 0x05, 0x62, 0xd5, 0x5f, 0x5e, 0xfe,
+ 0xc7, 0xfe, 0xd8, 0xfe, 0xd9, 0xfe, 0xc7, 0x5e, 0x5f, 0xd3, 0x48, 0x48,
+ 0x01, 0x9f, 0x01, 0x67, 0x01, 0x68, 0x01, 0x9f, 0x24, 0x03, 0x04, 0xc3,
+ 0x62, 0x7a, 0xaa, 0x96, 0x00, 0x01, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x52,
+ 0x06, 0x14, 0x00, 0x22, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x17, 0x35, 0x34, 0x36, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x06, 0x03, 0x83, 0x46, 0x8d, 0x48, 0xa2, 0xb2,
+ 0xb2, 0xa2, 0x48, 0x8d, 0x46, 0x45, 0x95, 0x53, 0xe4, 0xfe, 0xf4, 0x01,
+ 0x0f, 0xeb, 0x40, 0x3f, 0x91, 0xa3, 0x3e, 0x2b, 0x5e, 0x45, 0x04, 0x7e,
+ 0xf5, 0x2b, 0x2b, 0xe3, 0xcd, 0xcd, 0xe3, 0x2b, 0x2b, 0xaa, 0x24, 0x24,
+ 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12, 0x01, 0x3a, 0x0c, 0x0f, 0xd6, 0xc0,
+ 0x9c, 0x61, 0x00, 0x00, 0xff, 0xff, 0x00, 0x09, 0x00, 0x00, 0x05, 0x28,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x92, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa1,
+ 0x00, 0x00, 0x05, 0x79, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x25, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x29, 0x01, 0x11, 0x22, 0x06, 0x1d, 0x01, 0x23,
+ 0x35, 0x34, 0x36, 0x01, 0xc5, 0xdb, 0x01, 0x16, 0x01, 0x03, 0xfe, 0xfd,
+ 0xfe, 0xea, 0xfe, 0x6f, 0x01, 0x75, 0x01, 0x87, 0x01, 0x6d, 0xfe, 0x91,
+ 0xfe, 0x7b, 0xfe, 0x8b, 0x77, 0x6a, 0x8c, 0xac, 0x05, 0x2f, 0xfb, 0x77,
+ 0x01, 0x18, 0x01, 0x2e, 0x01, 0x2c, 0x01, 0x17, 0xa6, 0xfe, 0x97, 0xfe,
+ 0x80, 0xfe, 0x7e, 0xfe, 0x96, 0x05, 0x30, 0x5f, 0x69, 0x31, 0x46, 0xb5,
+ 0xa3, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x01, 0x10, 0x29, 0x01,
+ 0x11, 0x21, 0x22, 0x06, 0x11, 0x21, 0x11, 0x21, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x21, 0x11, 0x21, 0x01, 0x75, 0x01, 0x20, 0x01, 0x23, 0xfe,
+ 0xdd, 0x93, 0x8d, 0x02, 0xf9, 0xfe, 0x1e, 0xe2, 0xf5, 0xf5, 0xe2, 0x01,
+ 0x2c, 0xfd, 0xbd, 0x01, 0xb7, 0xfe, 0xef, 0x02, 0x23, 0x87, 0x03, 0x93,
+ 0xfa, 0x2b, 0xda, 0xde, 0xdd, 0xda, 0x01, 0xc0, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0xeb, 0x06, 0x14, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x00,
+ 0x13, 0x35, 0x21, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x11, 0x01, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0xf2, 0x02, 0xf9, 0xa6, 0x34,
+ 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34, 0xfd, 0xcc, 0x96,
+ 0x83, 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0x05, 0x6e, 0xa6, 0xf9, 0xec,
+ 0xa8, 0x64, 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61,
+ 0x64, 0x01, 0xb9, 0xfc, 0xc0, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7,
+ 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x02, 0x04, 0x63, 0x00, 0x19,
+ 0x00, 0x27, 0x00, 0x00, 0x25, 0x16, 0x15, 0x10, 0x21, 0x22, 0x27, 0x35,
+ 0x16, 0x33, 0x32, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x11, 0x10, 0x12,
+ 0x33, 0x32, 0x12, 0x03, 0x14, 0x02, 0x03, 0x36, 0x26, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x3e, 0x01, 0x03, 0x14, 0x8d, 0xfe,
+ 0x73, 0xc7, 0x6c, 0x5c, 0xdd, 0xde, 0xee, 0xbb, 0x69, 0x80, 0xf6, 0xd8,
+ 0xd7, 0xf8, 0x01, 0x8c, 0x23, 0x01, 0x9a, 0x85, 0x85, 0x9b, 0xa9, 0x72,
+ 0x39, 0x2e, 0x59, 0x63, 0x42, 0x4f, 0x8d, 0xfe, 0xf0, 0x46, 0x99, 0x46,
+ 0x75, 0x5c, 0x30, 0x25, 0x70, 0x87, 0x01, 0x0f, 0x01, 0x0f, 0x01, 0x39,
+ 0xfe, 0xc7, 0xfe, 0xed, 0x9c, 0xfe, 0xfc, 0x01, 0xa0, 0xcb, 0xe5, 0xe8,
+ 0xc3, 0xc2, 0xc7, 0x0b, 0x06, 0x0e, 0x2a, 0xdc, 0x00, 0x01, 0x00, 0x75,
+ 0x00, 0x00, 0x03, 0xd8, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x03, 0xd8,
+ 0xfc, 0x9e, 0x02, 0xac, 0xfd, 0x80, 0x02, 0x80, 0xfd, 0x64, 0x05, 0xd5,
+ 0xfa, 0x2b, 0xaa, 0x02, 0x1d, 0xaa, 0x01, 0xba, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x69, 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x13,
+ 0x00, 0x1a, 0x00, 0x00, 0x13, 0x21, 0x10, 0x02, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x37, 0x16, 0x12, 0x33, 0x32, 0x12, 0x37, 0x69, 0x04, 0x1b, 0xf8, 0xf6,
+ 0x7e, 0xe2, 0x65, 0x64, 0xec, 0x84, 0x01, 0x3b, 0x01, 0x63, 0xfe, 0xae,
+ 0xfe, 0xe5, 0xfe, 0xd8, 0xfe, 0xbb, 0xc6, 0x0c, 0xe5, 0xb6, 0xb6, 0xe6,
+ 0x0b, 0x03, 0x0c, 0x01, 0x0c, 0x01, 0x32, 0x60, 0x5f, 0xd7, 0x46, 0x48,
+ 0xfe, 0x67, 0xfe, 0x92, 0xfe, 0x9f, 0xfe, 0x5b, 0x01, 0xb7, 0xcc, 0xc3,
+ 0xfe, 0xe4, 0x01, 0x1c, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x93,
+ 0xff, 0xe3, 0x04, 0x09, 0x05, 0xf0, 0x00, 0x28, 0x00, 0x00, 0x01, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x24,
+ 0x35, 0x34, 0x36, 0x01, 0xa9, 0x76, 0x80, 0xf1, 0xcf, 0x50, 0xb5, 0x68,
+ 0x67, 0xab, 0x4a, 0x89, 0x93, 0x8e, 0x86, 0xa4, 0x9c, 0x95, 0xa7, 0xb4,
+ 0xab, 0x62, 0xb4, 0x4b, 0x5f, 0xb3, 0x55, 0xfc, 0xfe, 0xef, 0x92, 0x03,
+ 0x25, 0x21, 0xab, 0x7c, 0xb2, 0xd1, 0x20, 0x20, 0xb4, 0x26, 0x24, 0x7b,
+ 0x73, 0x70, 0x77, 0xa6, 0x95, 0x84, 0x8f, 0x96, 0x32, 0x31, 0xc3, 0x25,
+ 0x25, 0xf2, 0xdd, 0x90, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xa0,
+ 0xfe, 0x66, 0x03, 0xba, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x35, 0xb5, 0x03, 0x04, 0xfd, 0xb2, 0x02, 0x15, 0xfd,
+ 0xeb, 0xb9, 0xcc, 0x45, 0x38, 0x79, 0x63, 0x05, 0xd5, 0xaa, 0xfe, 0x48,
+ 0xaa, 0xfd, 0x9f, 0xfe, 0xf2, 0xf4, 0xaa, 0x96, 0xc2, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0x8b, 0xfe, 0x56, 0x02, 0xac, 0x06, 0x14, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21,
+ 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x11, 0x23,
+ 0x35, 0x33, 0x35, 0x34, 0x36, 0x33, 0x02, 0xac, 0x9e, 0x5a, 0x45, 0x01,
+ 0x11, 0xfe, 0xef, 0x9c, 0xab, 0x9c, 0x9e, 0x59, 0x46, 0x9f, 0x9f, 0x9c,
+ 0xaa, 0x06, 0x14, 0x99, 0x50, 0x68, 0x63, 0x8f, 0xfb, 0xeb, 0xbb, 0xab,
+ 0x99, 0x50, 0x68, 0x04, 0x2a, 0x8f, 0x4e, 0xbb, 0xab, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x67, 0xff, 0xe3, 0x05, 0xef, 0x07, 0x64, 0x00, 0x26,
+ 0x00, 0x00, 0x25, 0x11, 0x21, 0x35, 0x21, 0x11, 0x0e, 0x01, 0x23, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x17, 0x34, 0x36, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x36, 0x04, 0x49, 0xfe, 0xd7, 0x01, 0xdd, 0x69,
+ 0xfe, 0x90, 0xfe, 0xc5, 0xfe, 0x9d, 0x01, 0x63, 0x01, 0x3b, 0x51, 0x93,
+ 0x3e, 0xb5, 0xcc, 0x45, 0x38, 0x79, 0x63, 0x65, 0xe3, 0x7d, 0xf6, 0xf8,
+ 0xf8, 0xf6, 0x61, 0x97, 0xd5, 0x01, 0x91, 0xa6, 0xfd, 0x7f, 0x53, 0x55,
+ 0x01, 0x99, 0x01, 0x6d, 0x01, 0x6e, 0x01, 0x99, 0x19, 0x19, 0xbc, 0xea,
+ 0xaa, 0x96, 0xc2, 0xd7, 0x5f, 0x60, 0xfe, 0xce, 0xfe, 0xd1, 0xfe, 0xd2,
+ 0xfe, 0xce, 0x25, 0x00, 0x00, 0x02, 0x00, 0x07, 0xfe, 0x52, 0x04, 0xeb,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x25, 0x00, 0x00, 0x01, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x13, 0x01, 0x33, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x33, 0x02, 0x79,
+ 0x31, 0x27, 0x19, 0x1c, 0x2e, 0x27, 0x28, 0x2e, 0x1c, 0x19, 0x28, 0x31,
+ 0x01, 0xa9, 0xc8, 0xfd, 0xf5, 0x5d, 0x3c, 0x2a, 0x44, 0x5a, 0x8b, 0x8b,
+ 0x5b, 0x43, 0x29, 0x3d, 0x5d, 0xfd, 0xf4, 0xc8, 0xfe, 0xfd, 0x20, 0x14,
+ 0x42, 0x39, 0x49, 0x79, 0x5c, 0x5c, 0x79, 0x49, 0x39, 0x42, 0x14, 0x20,
+ 0x03, 0x7a, 0x03, 0x5e, 0xfb, 0xcf, 0xc8, 0xae, 0x77, 0x42, 0x8b, 0x41,
+ 0x57, 0x57, 0x41, 0x8b, 0x42, 0x77, 0xae, 0xc8, 0x04, 0x31, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x8d, 0x06, 0x14, 0x00, 0x2a,
+ 0x00, 0x00, 0x25, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x35,
+ 0x16, 0x17, 0x16, 0x11, 0x14, 0x00, 0x2b, 0x01, 0x22, 0x26, 0x35, 0x11,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x11, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x14, 0x16, 0x33, 0x04, 0xc4, 0x86,
+ 0x4c, 0x4e, 0x42, 0x38, 0x6d, 0xca, 0x62, 0x64, 0xfe, 0xfd, 0xc7, 0x3f,
+ 0xa9, 0x8d, 0x70, 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b, 0xa1, 0x6a, 0xad,
+ 0xb3, 0x44, 0x5e, 0x9c, 0x62, 0x65, 0x9b, 0xde, 0x70, 0x5f, 0x21, 0x94,
+ 0x1d, 0x8f, 0x91, 0xfe, 0xec, 0xf5, 0xfe, 0xe6, 0xc8, 0xce, 0x01, 0x08,
+ 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87, 0x06, 0x14, 0xfd, 0x9e, 0x65, 0x64,
+ 0xef, 0xe8, 0xfe, 0xf2, 0x93, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x02, 0x7f, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x11, 0xb5, 0xb6,
+ 0x63, 0x78, 0x39, 0x45, 0xcd, 0xb8, 0x05, 0xd5, 0xfc, 0x2d, 0xc2, 0x96,
+ 0xaa, 0xf4, 0x01, 0x0e, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x02, 0x17,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33, 0x15, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xb5, 0xb6, 0xac, 0xac, 0xb6, 0xac,
+ 0xac, 0x05, 0xd5, 0xfd, 0x16, 0xaa, 0xfd, 0xbf, 0x02, 0x41, 0xaa, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x5f, 0x05, 0xf0, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x23, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x09, 0x01,
+ 0x23, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x05, 0x5e, 0x99, 0x41, 0x23, 0x3f, 0x21, 0xfe, 0x14, 0x02,
+ 0xca, 0xef, 0xfd, 0x7b, 0xb6, 0xb6, 0x02, 0x2e, 0x4c, 0x66, 0x7a, 0x4d,
+ 0x4c, 0x04, 0x48, 0x79, 0x36, 0x50, 0x23, 0xfd, 0xf9, 0xfc, 0xe3, 0x02,
+ 0xcf, 0xfd, 0x31, 0x05, 0xd5, 0xfd, 0x89, 0x02, 0x43, 0x4f, 0x5c, 0x5b,
+ 0x6e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa6, 0x00, 0x00, 0x04, 0x26,
+ 0x06, 0x14, 0x00, 0x12, 0x00, 0x00, 0x13, 0x34, 0x36, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x06, 0x15, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0xa6, 0x93, 0xa3, 0xac, 0x97, 0x5f, 0x44, 0x01, 0xee, 0xd4, 0xfd,
+ 0xe9, 0x02, 0x2d, 0xd8, 0xfe, 0x00, 0xa7, 0x04, 0x7e, 0xd6, 0xc0, 0x9c,
+ 0x61, 0x99, 0xfd, 0xff, 0x01, 0xe3, 0xfd, 0xf4, 0xfd, 0xac, 0x02, 0x23,
+ 0xfd, 0xdd, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x01, 0xf3,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33, 0x15, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xae, 0xa5, 0xa0, 0xa0, 0xa5, 0xa5,
+ 0xa5, 0x06, 0x14, 0xfd, 0x38, 0x90, 0xfd, 0x44, 0x02, 0xbc, 0x90, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c, 0x06, 0x14, 0x00, 0x0f,
+ 0x00, 0x00, 0x33, 0x01, 0x27, 0x05, 0x27, 0x25, 0x27, 0x33, 0x17, 0x25,
+ 0x17, 0x05, 0x01, 0x23, 0x09, 0x01, 0x37, 0x01, 0xba, 0x40, 0xfe, 0xf2,
+ 0x1e, 0x01, 0x0b, 0x43, 0xb4, 0x2f, 0x01, 0x1a, 0x1e, 0xfe, 0xe8, 0x01,
+ 0xbc, 0xb0, 0xfe, 0xe6, 0xfe, 0xa4, 0x04, 0x32, 0xbc, 0x65, 0x63, 0x63,
+ 0xc5, 0x8a, 0x68, 0x61, 0x68, 0xfa, 0xd7, 0x03, 0x3c, 0xfc, 0xc4, 0x00,
+ 0x00, 0x01, 0x00, 0xa0, 0xff, 0xe3, 0x06, 0x70, 0x05, 0xd5, 0x00, 0x27,
+ 0x00, 0x00, 0x25, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x03, 0x49, 0x3f, 0xac, 0x75, 0x9e,
+ 0x55, 0x56, 0xb7, 0x23, 0x33, 0x6a, 0x80, 0x96, 0xb6, 0x34, 0x33, 0x6b,
+ 0x6f, 0x4a, 0x4b, 0xb7, 0xb7, 0x39, 0x9e, 0x6d, 0x6e, 0x4d, 0x4c, 0xd5,
+ 0x7c, 0x76, 0x7b, 0x7a, 0xe2, 0x04, 0x1b, 0xfb, 0xef, 0xba, 0x35, 0x4e,
+ 0xbe, 0xa4, 0x03, 0xec, 0xfb, 0xef, 0xa2, 0x4e, 0x4d, 0x5f, 0x60, 0xa3,
+ 0x03, 0xec, 0xfa, 0x29, 0xae, 0x67, 0x62, 0x3e, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xa0, 0xfe, 0x66, 0x04, 0xae, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x33, 0x01, 0x11, 0x33, 0x11, 0x23, 0x01, 0x11, 0x10,
+ 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0xb5, 0xf5, 0x02, 0x54,
+ 0xb0, 0xf5, 0xfd, 0xac, 0xb8, 0xcc, 0x40, 0x38, 0x79, 0x63, 0x05, 0xd5,
+ 0xfb, 0x1f, 0x04, 0xe1, 0xfa, 0x2b, 0x04, 0xe1, 0xfb, 0x87, 0xfe, 0xf2,
+ 0xf4, 0xaa, 0x96, 0xc2, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x04, 0x7b, 0x10, 0x06, 0x03, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x19,
+ 0x00, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0x22, 0x02, 0x07, 0x21, 0x26, 0x02, 0x01, 0x1a, 0x01,
+ 0x33, 0x32, 0x12, 0x13, 0x68, 0x01, 0x53, 0x01, 0x1b, 0x01, 0x1b, 0x01,
+ 0x52, 0xfe, 0xae, 0xfe, 0xe5, 0xfe, 0xe5, 0xfe, 0xad, 0x02, 0x6f, 0xb6,
+ 0xe6, 0x0b, 0x03, 0x4e, 0x0c, 0xe5, 0xfd, 0x9a, 0x07, 0xe2, 0xc6, 0xc6,
+ 0xe0, 0x07, 0x02, 0xe9, 0x01, 0x62, 0x01, 0xa5, 0xfe, 0x5b, 0xfe, 0x9f,
+ 0xfe, 0x9e, 0xfe, 0x5b, 0x01, 0xa4, 0x03, 0xc5, 0xfe, 0xe4, 0xc3, 0xc3,
+ 0x01, 0x1c, 0xfd, 0x7a, 0xfe, 0xff, 0xfe, 0xc2, 0x01, 0x3d, 0x01, 0x02,
+ 0xff, 0xff, 0x00, 0x5c, 0xff, 0xe3, 0x05, 0x81, 0x06, 0x14, 0x10, 0x26,
+ 0x00, 0x32, 0xf5, 0x00, 0x10, 0x07, 0x02, 0xcc, 0x05, 0x11, 0x01, 0x34,
+ 0xff, 0xff, 0x00, 0x6a, 0xff, 0xe3, 0x04, 0x58, 0x04, 0xeb, 0x10, 0x27,
+ 0x02, 0xcc, 0x03, 0xe9, 0x00, 0x0b, 0x10, 0x06, 0x00, 0x52, 0x04, 0x00,
+ 0x00, 0x02, 0x00, 0x67, 0xff, 0xe3, 0x06, 0x21, 0x05, 0xf0, 0x00, 0x14,
+ 0x00, 0x1f, 0x00, 0x00, 0x21, 0x11, 0x34, 0x26, 0x23, 0x11, 0x06, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x17, 0x21, 0x32, 0x16, 0x19,
+ 0x01, 0x01, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x37, 0x11, 0x26,
+ 0x05, 0x6b, 0x63, 0x6e, 0xa9, 0xfe, 0xe4, 0xfe, 0xe6, 0xfe, 0xad, 0x01,
+ 0x53, 0x01, 0x1b, 0x65, 0x57, 0x01, 0x0a, 0xcc, 0xb9, 0xfc, 0xb5, 0xc6,
+ 0xe9, 0xe9, 0xc6, 0x9e, 0x73, 0x7c, 0x03, 0xd3, 0xc2, 0x96, 0xfb, 0x8b,
+ 0xd3, 0x01, 0xa4, 0x01, 0x62, 0x01, 0x62, 0x01, 0xa5, 0x1b, 0xf4, 0xfe,
+ 0xf2, 0xfc, 0x2d, 0x05, 0x4c, 0xfe, 0xb8, 0xfe, 0xe6, 0xfe, 0xe5, 0xfe,
+ 0xb8, 0x67, 0x04, 0x18, 0x46, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0xd1, 0x04, 0x7b, 0x00, 0x16, 0x00, 0x21, 0x00, 0x00,
+ 0x01, 0x11, 0x34, 0x27, 0x26, 0x23, 0x11, 0x06, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x17, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x01,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37, 0x11, 0x26, 0x04, 0x2a,
+ 0x22, 0x22, 0x5e, 0x7c, 0xd8, 0xd9, 0xf5, 0xf5, 0xd9, 0x5a, 0x4a, 0xc2,
+ 0xa3, 0x4a, 0x49, 0xfd, 0x64, 0x85, 0x9b, 0x9a, 0x86, 0x74, 0x3a, 0x4c,
+ 0xfe, 0x56, 0x04, 0x74, 0x99, 0x31, 0x30, 0xfc, 0xbc, 0x9d, 0x01, 0x39,
+ 0x01, 0x13, 0x01, 0x14, 0x01, 0x38, 0x1b, 0x60, 0x60, 0xd6, 0xfb, 0x8c,
+ 0x05, 0x89, 0xe7, 0xc9, 0xc9, 0xe7, 0x3a, 0x02, 0xf0, 0x36, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xa1, 0x00, 0x00, 0x04, 0x73, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x1c, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x23,
+ 0x11, 0x22, 0x06, 0x1d, 0x01, 0x23, 0x35, 0x34, 0x36, 0x01, 0xc5, 0xe4,
+ 0x7f, 0x8b, 0x8b, 0x7f, 0xfe, 0x66, 0x01, 0x9a, 0xe2, 0xe7, 0xe7, 0xe2,
+ 0xe4, 0xb6, 0x77, 0x6a, 0x8c, 0xac, 0x05, 0x2f, 0xfd, 0xcf, 0x92, 0x87,
+ 0x86, 0x92, 0xa6, 0xe3, 0xdb, 0xdd, 0xe2, 0xfd, 0xa8, 0x05, 0x30, 0x5f,
+ 0x69, 0x31, 0x46, 0xb5, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa6,
+ 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+ 0x25, 0x11, 0x23, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06,
+ 0x1d, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22,
+ 0x26, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x01, 0x4e, 0xa8, 0x93, 0xa3, 0xe5, 0xd0, 0x5f, 0x44, 0x34, 0x9f,
+ 0x6f, 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x01, 0xff, 0x96, 0x83, 0x84,
+ 0x96, 0x96, 0x84, 0x83, 0x96, 0xa8, 0xfd, 0xae, 0x06, 0x28, 0xd6, 0xc0,
+ 0x9c, 0x61, 0x99, 0xc8, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe, 0xf8,
+ 0xfe, 0xbc, 0x61, 0x01, 0xeb, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7,
+ 0x00, 0x02, 0x00, 0xb4, 0xfe, 0xf8, 0x04, 0xcc, 0x05, 0xd5, 0x00, 0x15,
+ 0x00, 0x1d, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x17, 0x13, 0x23, 0x03, 0x2e,
+ 0x01, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x01, 0x11, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23, 0x03, 0x32,
+ 0x3b, 0x6e, 0x38, 0xb9, 0xc4, 0xac, 0x42, 0x7d, 0x6c, 0xc6, 0xb6, 0xb6,
+ 0xe4, 0xe7, 0xe2, 0x75, 0xfd, 0xc8, 0xe4, 0x7f, 0x8b, 0x8a, 0x80, 0x01,
+ 0xb4, 0x16, 0x90, 0x7e, 0xfe, 0x68, 0x01, 0x7f, 0x96, 0x62, 0xfe, 0x91,
+ 0x05, 0xd5, 0xfe, 0xf8, 0xd6, 0xd8, 0x8d, 0xba, 0x02, 0x4f, 0xfd, 0xd1,
+ 0x92, 0x01, 0x0c, 0x91, 0x00, 0x01, 0x00, 0x66, 0xff, 0xe3, 0x04, 0x19,
+ 0x05, 0xf0, 0x00, 0x21, 0x00, 0x00, 0x13, 0x36, 0x20, 0x16, 0x10, 0x06,
+ 0x0f, 0x01, 0x0e, 0x01, 0x14, 0x16, 0x33, 0x32, 0x37, 0x15, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x34,
+ 0x27, 0x26, 0x20, 0x07, 0xb8, 0xcd, 0x01, 0x98, 0xfb, 0xb5, 0xcc, 0x6e,
+ 0x8b, 0x7a, 0xaa, 0x9b, 0xcb, 0xdf, 0xe9, 0xc1, 0xfd, 0x83, 0x82, 0xc1,
+ 0xcc, 0x6d, 0x96, 0x36, 0x35, 0x50, 0x51, 0xfe, 0xc4, 0xcd, 0x05, 0xa4,
+ 0x4c, 0xe4, 0xfe, 0x8f, 0xc0, 0x2d, 0x18, 0x1f, 0x7c, 0xec, 0x88, 0x8b,
+ 0xd0, 0x5f, 0x70, 0x70, 0xd9, 0xb6, 0xd9, 0x2b, 0x19, 0x1f, 0x32, 0x33,
+ 0xd9, 0x40, 0x40, 0x6d, 0x00, 0x01, 0x00, 0x5a, 0xff, 0xe3, 0x03, 0x5d,
+ 0x04, 0x7b, 0x00, 0x27, 0x00, 0x00, 0x13, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x0f, 0x01, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3f,
+ 0x01, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x90, 0x44,
+ 0xa2, 0x5c, 0xba, 0xc9, 0x89, 0x9a, 0x39, 0x9a, 0x5b, 0x7e, 0x75, 0x57,
+ 0xb3, 0x5b, 0x61, 0xaf, 0x51, 0xc3, 0xde, 0x94, 0xb1, 0x39, 0x85, 0x58,
+ 0x7b, 0x7c, 0x51, 0x97, 0x46, 0x04, 0x3f, 0x1e, 0x1e, 0xac, 0x9e, 0x82,
+ 0x95, 0x24, 0x0f, 0x25, 0x50, 0x4b, 0x51, 0x59, 0x35, 0x35, 0xbe, 0x23,
+ 0x23, 0xb6, 0x9c, 0x89, 0x99, 0x2a, 0x0e, 0x21, 0x49, 0x40, 0x54, 0x54,
+ 0x28, 0x28, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17,
+ 0x05, 0xd5, 0x10, 0x06, 0x03, 0x37, 0x00, 0x00, 0x00, 0x02, 0xff, 0x0d,
+ 0xfe, 0x56, 0x02, 0x8f, 0x06, 0x14, 0x00, 0x16, 0x00, 0x1f, 0x00, 0x00,
+ 0x01, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11,
+ 0x23, 0x22, 0x35, 0x34, 0x21, 0x32, 0x17, 0x16, 0x17, 0x33, 0x15, 0x25,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x33, 0x01, 0x52, 0x45, 0x59,
+ 0x9e, 0x9c, 0xaa, 0x9d, 0xab, 0xf3, 0x01, 0x11, 0xa3, 0x49, 0x30, 0x10,
+ 0xac, 0xfe, 0xac, 0x08, 0x0e, 0x1e, 0x63, 0x70, 0x03, 0x02, 0x6b, 0x04,
+ 0x6a, 0xfb, 0x3d, 0x68, 0x50, 0x99, 0xab, 0xbb, 0x04, 0xae, 0xd2, 0xd8,
+ 0x60, 0x40, 0x6f, 0x9b, 0x9a, 0x2c, 0x18, 0x30, 0x41, 0x33, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0xfe, 0x56, 0x02, 0xa7, 0x05, 0x9e, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01,
+ 0x15, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01,
+ 0x22, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01, 0x52, 0x01, 0x55,
+ 0xfe, 0xab, 0x43, 0x67, 0xab, 0x94, 0xa2, 0x3f, 0x2b, 0x60, 0x22, 0x22,
+ 0xc0, 0x96, 0x79, 0x79, 0x05, 0x9e, 0xfe, 0xc2, 0x8f, 0xfd, 0xa0, 0x89,
+ 0x4e, 0xae, 0xd6, 0xc0, 0x9c, 0x30, 0x31, 0x99, 0x14, 0x9f, 0xd2, 0x02,
+ 0x60, 0x8f, 0x01, 0x3e, 0x00, 0x01, 0x00, 0x15, 0x00, 0x00, 0x04, 0x6c,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x23, 0x35, 0x34, 0x36, 0x01, 0x83,
+ 0x02, 0xe8, 0xfe, 0x23, 0xb6, 0x55, 0x77, 0x6a, 0x8c, 0xac, 0x05, 0xd5,
+ 0xaa, 0xfa, 0xd5, 0x05, 0x2b, 0x5a, 0x69, 0x31, 0x46, 0xb5, 0xa3, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0x00, 0x00, 0x02, 0xa7, 0x06, 0x14, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x15, 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x01, 0x52, 0x01, 0x55, 0xfe, 0xab,
+ 0x43, 0x67, 0xab, 0xab, 0xbf, 0x92, 0x79, 0x79, 0x9d, 0xaa, 0x9c, 0x9e,
+ 0x59, 0x45, 0x04, 0xc3, 0x63, 0x8f, 0xfd, 0xa0, 0x89, 0x4e, 0x9a, 0x9f,
+ 0xd2, 0x02, 0x60, 0x8f, 0x4e, 0xbb, 0xab, 0x99, 0x51, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xfa, 0xfe, 0x66, 0x04, 0x6c, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x03, 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x26, 0x19, 0x01, 0x21, 0x05, 0x04, 0x70, 0xfe, 0x23, 0x63,
+ 0x79, 0x39, 0x47, 0xcc, 0xb8, 0xfe, 0x23, 0x05, 0xd5, 0xaa, 0xfb, 0x3d,
+ 0xc2, 0x96, 0xaa, 0xf4, 0x01, 0x0e, 0x04, 0xc3, 0xff, 0xff, 0x00, 0x9b,
+ 0xff, 0xf7, 0x05, 0xbc, 0x06, 0x14, 0x10, 0x26, 0x00, 0x38, 0xfc, 0x14,
+ 0x10, 0x07, 0x02, 0xcc, 0x05, 0x4d, 0x01, 0x34, 0xff, 0xff, 0x00, 0x9e,
+ 0xff, 0xe3, 0x04, 0xdf, 0x04, 0xeb, 0x10, 0x27, 0x02, 0xcc, 0x04, 0x70,
+ 0x00, 0x0b, 0x10, 0x06, 0x00, 0x58, 0x02, 0x00, 0x00, 0x01, 0x00, 0x46,
+ 0xff, 0xe3, 0x05, 0x3b, 0x05, 0xca, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x21,
+ 0x16, 0x12, 0x15, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x37,
+ 0x21, 0x35, 0x21, 0x15, 0x06, 0x02, 0x15, 0x14, 0x12, 0x33, 0x32, 0x12,
+ 0x35, 0x34, 0x02, 0x27, 0x35, 0x21, 0x05, 0x3a, 0xfe, 0xe0, 0x91, 0x80,
+ 0xfe, 0xa6, 0xfe, 0xef, 0xfe, 0xed, 0xfe, 0xa8, 0x82, 0x8e, 0xfe, 0xe1,
+ 0x02, 0x1c, 0xa0, 0xb3, 0xee, 0xc3, 0xc2, 0xee, 0xb2, 0xa0, 0x02, 0x1c,
+ 0x05, 0x18, 0x8d, 0xfe, 0xd8, 0xc2, 0xfe, 0xcb, 0xfe, 0x77, 0x01, 0x8a,
+ 0x01, 0x3e, 0xb8, 0x01, 0x2a, 0x8b, 0xb2, 0xb2, 0x61, 0xfe, 0xb4, 0xca,
+ 0xef, 0xfe, 0xdd, 0x01, 0x22, 0xf0, 0xca, 0x01, 0x4c, 0x61, 0xb2, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xff, 0xe1, 0x04, 0xeb, 0x05, 0xd5, 0x00, 0x1b,
+ 0x00, 0x00, 0x25, 0x32, 0x12, 0x35, 0x34, 0x27, 0x26, 0x27, 0x35, 0x17,
+ 0x16, 0x12, 0x15, 0x10, 0x07, 0x06, 0x21, 0x27, 0x26, 0x27, 0x26, 0x19,
+ 0x01, 0x33, 0x11, 0x14, 0x16, 0x33, 0x02, 0x7f, 0xc2, 0xee, 0x59, 0x3b,
+ 0x63, 0xa2, 0x90, 0x80, 0xad, 0xac, 0xfe, 0xee, 0x45, 0xd1, 0x57, 0x5d,
+ 0xb6, 0x63, 0x78, 0x8d, 0x01, 0x22, 0xf0, 0xca, 0xa6, 0x6d, 0x57, 0x44,
+ 0x01, 0x8d, 0xfe, 0xd8, 0xc2, 0xfe, 0xcb, 0xc5, 0xc4, 0x02, 0x06, 0x74,
+ 0x7a, 0x01, 0x0e, 0x03, 0xf0, 0xfc, 0x10, 0xc2, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x05, 0x58, 0x05, 0xf0, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x07, 0x01, 0x11, 0x23, 0x11, 0x01,
+ 0x33, 0x09, 0x01, 0x36, 0x33, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x23, 0x35,
+ 0x34, 0x26, 0x04, 0x5b, 0x33, 0x13, 0x22, 0x0f, 0xfe, 0xaa, 0xb6, 0xfe,
+ 0x24, 0xc4, 0x01, 0x74, 0x01, 0x2d, 0x51, 0x93, 0x7a, 0x4d, 0x4c, 0x99,
+ 0x42, 0x05, 0x47, 0x0e, 0x18, 0x19, 0xfd, 0xbf, 0xfd, 0x39, 0x02, 0xc7,
+ 0x03, 0x0e, 0xfd, 0x9a, 0x01, 0xf9, 0x88, 0x5c, 0x5b, 0x6e, 0x83, 0x79,
+ 0x36, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36, 0xfe, 0x56, 0x05, 0x43,
+ 0x04, 0x7b, 0x00, 0x1f, 0x00, 0x00, 0x05, 0x0e, 0x01, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x3f, 0x01, 0x01, 0x33, 0x01, 0x13, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x16, 0x1d, 0x01, 0x23, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x07, 0x02, 0x51, 0x46, 0x85, 0x70, 0x84, 0x61, 0x44, 0x4c, 0x2e,
+ 0x1e, 0xfe, 0x68, 0xaf, 0x01, 0x3b, 0xfe, 0x13, 0x2b, 0x4f, 0x7a, 0x76,
+ 0xa6, 0xa0, 0x49, 0x33, 0x33, 0x25, 0x12, 0x09, 0x68, 0xc8, 0x7a, 0x9a,
+ 0x48, 0x86, 0x54, 0x04, 0x4e, 0xfc, 0x94, 0x02, 0xc0, 0x34, 0x33, 0x60,
+ 0xbf, 0x86, 0x72, 0x72, 0x3a, 0x54, 0x2a, 0x14, 0x19, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x52, 0x00, 0x00, 0x04, 0x9c, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x33, 0x15, 0x21, 0x01, 0x21, 0x15,
+ 0x21, 0x35, 0x01, 0x21, 0x35, 0x21, 0x01, 0x21, 0x68, 0x04, 0x1f, 0xfe,
+ 0x98, 0xfd, 0xfe, 0x9b, 0xfe, 0x7f, 0x03, 0x66, 0xfb, 0xb7, 0x01, 0x8d,
+ 0xfe, 0xf3, 0x01, 0x75, 0x01, 0x5c, 0xfc, 0xc4, 0x05, 0xd5, 0x9a, 0xfe,
+ 0x11, 0x90, 0xfd, 0xee, 0xaa, 0x9a, 0x02, 0x22, 0x90, 0x01, 0xdf, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x79, 0x04, 0x60, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x03, 0x33, 0x15, 0x21, 0x01, 0x21, 0x15,
+ 0x21, 0x35, 0x01, 0x23, 0x35, 0x21, 0x13, 0x21, 0x66, 0x03, 0x12, 0xe2,
+ 0xaf, 0xfe, 0xe2, 0xfe, 0xe3, 0x02, 0x6e, 0xfc, 0xd7, 0x01, 0x0d, 0xbe,
+ 0x01, 0x2e, 0xf2, 0xfd, 0xa8, 0x04, 0x60, 0xa8, 0xfe, 0xdc, 0x90, 0xfe,
+ 0x8f, 0x93, 0xa8, 0x01, 0x5c, 0x90, 0x01, 0x39, 0x00, 0x01, 0x00, 0x90,
+ 0xff, 0xc1, 0x04, 0x79, 0x05, 0xd5, 0x00, 0x22, 0x00, 0x00, 0x25, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x01, 0x21, 0x35,
+ 0x21, 0x15, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x02, 0x64, 0xad,
+ 0x59, 0x5a, 0x53, 0x54, 0x94, 0x9d, 0x01, 0x5b, 0xfd, 0x49, 0x03, 0x9a,
+ 0xfe, 0x8e, 0x5f, 0x73, 0x58, 0x4e, 0x49, 0x89, 0x89, 0xfc, 0x6b, 0x70,
+ 0x72, 0x78, 0x5f, 0x72, 0x72, 0x6b, 0x4b, 0x4b, 0x8f, 0x86, 0x49, 0x4a,
+ 0x98, 0x01, 0xea, 0xaa, 0x9a, 0xfe, 0x16, 0x38, 0x2a, 0x6d, 0x68, 0x8a,
+ 0xdc, 0x7a, 0x79, 0x13, 0x12, 0x25, 0xc3, 0x31, 0x19, 0x19, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x52, 0xff, 0xc1, 0x04, 0x3c, 0x05, 0xd5, 0x00, 0x22,
+ 0x00, 0x00, 0x25, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x01, 0x35,
+ 0x21, 0x15, 0x21, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x02, 0x68, 0x7b, 0x71, 0x73, 0x5f, 0x79, 0x71, 0x70, 0x6c, 0xfc,
+ 0x88, 0x89, 0x49, 0x4d, 0x58, 0x73, 0x60, 0xfe, 0x8e, 0x03, 0x9a, 0xfd,
+ 0x49, 0x01, 0x5a, 0x9c, 0x95, 0x54, 0x52, 0x5a, 0x59, 0x6b, 0x19, 0x19,
+ 0x31, 0xc3, 0x25, 0x12, 0x13, 0x79, 0x7a, 0xdc, 0x8a, 0x68, 0x6d, 0x2a,
+ 0x38, 0x01, 0xea, 0x9a, 0xaa, 0xfe, 0x16, 0x98, 0x4a, 0x49, 0x86, 0x8f,
+ 0x4b, 0x4b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5d, 0xfe, 0x4c, 0x03, 0xd3,
+ 0x04, 0x60, 0x00, 0x20, 0x00, 0x00, 0x09, 0x01, 0x35, 0x21, 0x15, 0x21,
+ 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x23, 0x22, 0x24, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x02, 0x1f, 0xfe, 0x8e, 0x03, 0x12, 0xfd, 0xa8, 0x01,
+ 0x83, 0x9c, 0x95, 0x54, 0x53, 0x5a, 0x5a, 0xab, 0x62, 0xb4, 0x4b, 0x5f,
+ 0x5a, 0x59, 0x55, 0xfc, 0xfe, 0xef, 0x48, 0x4e, 0x58, 0x73, 0x01, 0xdc,
+ 0x01, 0xdc, 0xa8, 0x93, 0xfe, 0x0d, 0xa6, 0x4a, 0x4b, 0x84, 0x8f, 0x4b,
+ 0x4b, 0x32, 0x31, 0xc3, 0x25, 0x13, 0x12, 0xf2, 0xdd, 0x8a, 0x68, 0x6d,
+ 0x2a, 0x38, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0xfe, 0x56, 0x03, 0x84,
+ 0x04, 0x60, 0x00, 0x20, 0x00, 0x00, 0x01, 0x32, 0x37, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x23, 0x20, 0x11, 0x34, 0x25, 0x24, 0x35, 0x34, 0x23,
+ 0x30, 0x21, 0x01, 0x21, 0x35, 0x21, 0x15, 0x01, 0x20, 0x15, 0x10, 0x05,
+ 0x06, 0x15, 0x14, 0x02, 0x3f, 0x4c, 0x45, 0x47, 0x49, 0x4e, 0x48, 0x4e,
+ 0x57, 0xfe, 0x50, 0x01, 0x6d, 0x01, 0x00, 0xd4, 0xfe, 0xfc, 0x01, 0xb4,
+ 0xfd, 0xa8, 0x03, 0x12, 0xfe, 0xc2, 0x01, 0x4a, 0xfe, 0x5e, 0xcb, 0xfe,
+ 0xee, 0x15, 0x15, 0x2c, 0xb3, 0x20, 0x0d, 0x0e, 0x01, 0x19, 0xee, 0x35,
+ 0x25, 0x62, 0x7c, 0x02, 0x38, 0x93, 0xa8, 0xfe, 0x64, 0xe5, 0xfe, 0xec,
+ 0x31, 0x18, 0x61, 0x8b, 0x00, 0x01, 0x00, 0x87, 0x00, 0x00, 0x03, 0xdd,
+ 0x05, 0xf0, 0x00, 0x24, 0x00, 0x00, 0x25, 0x21, 0x15, 0x21, 0x35, 0x01,
+ 0x37, 0x21, 0x35, 0x21, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x33, 0x15, 0x23, 0x07, 0x01, 0x62, 0x02, 0x7a, 0xfc,
+ 0xab, 0x01, 0x1b, 0x67, 0xfe, 0xca, 0x01, 0xb1, 0x56, 0x21, 0x23, 0x4a,
+ 0x4c, 0x79, 0x55, 0x5f, 0x5f, 0x6c, 0x6e, 0xbf, 0x4f, 0xd1, 0xf8, 0x1f,
+ 0x1c, 0x42, 0x5e, 0xd5, 0x2b, 0xaa, 0xaa, 0xaa, 0x01, 0x40, 0x75, 0x90,
+ 0x6d, 0x48, 0x4c, 0x49, 0x77, 0x4b, 0x4b, 0x21, 0x21, 0x43, 0xcc, 0x31,
+ 0x32, 0xe8, 0xc2, 0x5c, 0x52, 0x49, 0x60, 0x90, 0x31, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x53, 0xff, 0xc1, 0x04, 0x7a, 0x05, 0xd5, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x10, 0x20, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x25, 0x36, 0x17, 0x16, 0x10, 0x0f, 0x01, 0x06, 0x07,
+ 0x06, 0x20, 0x24, 0x35, 0x01, 0x09, 0x02, 0xbc, 0xa7, 0x94, 0xfe, 0x2b,
+ 0x03, 0x44, 0xfd, 0x72, 0x01, 0x4e, 0xe6, 0x92, 0x49, 0x35, 0x1a, 0x11,
+ 0x29, 0x89, 0xfd, 0xfd, 0xfe, 0xef, 0x01, 0x90, 0xfe, 0xdb, 0x01, 0x25,
+ 0x86, 0x93, 0x03, 0x2c, 0xaa, 0xfe, 0x25, 0x01, 0x01, 0xd0, 0x68, 0xfe,
+ 0xe0, 0x56, 0x29, 0x1d, 0x24, 0x79, 0xf2, 0xdd, 0x00, 0x01, 0x00, 0x5d,
+ 0xfe, 0x4c, 0x03, 0xd3, 0x04, 0x60, 0x00, 0x1a, 0x00, 0x00, 0x17, 0x16,
+ 0x33, 0x20, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x33, 0x32, 0x1e, 0x01, 0x10, 0x0f, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x5e, 0x98, 0xba, 0x01, 0x6d, 0xa6, 0x95, 0xfe, 0xc3, 0x02, 0xc9,
+ 0xfd, 0xdc, 0xc7, 0x5f, 0xcd, 0x95, 0x35, 0x19, 0x12, 0x28, 0x89, 0xfc,
+ 0xa9, 0xbe, 0xa7, 0x63, 0x01, 0x25, 0x86, 0x93, 0x03, 0x2c, 0xaa, 0xfe,
+ 0x26, 0x63, 0xd4, 0xfe, 0xe0, 0x56, 0x29, 0x1d, 0x24, 0x79, 0x4a, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0xff, 0xe3, 0x03, 0x48, 0x05, 0x9e, 0x00, 0x24,
+ 0x00, 0x00, 0x01, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x13, 0x23, 0x35, 0x33, 0x11, 0x33,
+ 0x11, 0x33, 0x15, 0x01, 0xea, 0x01, 0x99, 0x64, 0x62, 0x63, 0x7c, 0xf7,
+ 0x4d, 0x49, 0x48, 0x45, 0x42, 0x4b, 0x47, 0x48, 0xa1, 0x59, 0x33, 0x01,
+ 0x34, 0x4d, 0xad, 0x38, 0x02, 0xce, 0xce, 0xb5, 0xd0, 0x03, 0xe6, 0x7d,
+ 0x1e, 0x77, 0x73, 0xaa, 0xba, 0x7d, 0x9d, 0x12, 0x11, 0x23, 0xac, 0x28,
+ 0x18, 0x16, 0x72, 0x41, 0x85, 0x62, 0x4c, 0x72, 0x01, 0x0f, 0xa4, 0x01,
+ 0x14, 0xfe, 0xec, 0xa4, 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e,
+ 0x04, 0x7b, 0x00, 0x0e, 0x00, 0x17, 0x00, 0x00, 0x05, 0x11, 0x23, 0x11,
+ 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x10, 0x01,
+ 0x00, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x01, 0x4e, 0xa7, 0xa7,
+ 0x2f, 0x79, 0x49, 0xbd, 0xa6, 0x45, 0x46, 0xfd, 0x21, 0x02, 0x33, 0x33,
+ 0x32, 0x6c, 0xc6, 0x9c, 0x7a, 0xfe, 0xd0, 0x06, 0x0a, 0xaa, 0x42, 0x52,
+ 0x31, 0x70, 0x71, 0x99, 0xfe, 0x57, 0xfe, 0xe4, 0x01, 0x90, 0xf9, 0x85,
+ 0x42, 0x41, 0xef, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x01, 0x6b,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0xb5, 0xb6,
+ 0xb6, 0x05, 0xd5, 0xf8, 0x81, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x56, 0x02, 0xd7, 0x05, 0xd5, 0x10, 0x27, 0x01, 0x82, 0x01, 0x6c,
+ 0x00, 0x00, 0x10, 0x06, 0x01, 0x82, 0x00, 0x00, 0x00, 0x01, 0x00, 0x12,
+ 0xfe, 0x56, 0x03, 0x40, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x01, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x01, 0x4e, 0xb6, 0x01, 0x3c, 0xfe,
+ 0xc4, 0x01, 0x3c, 0xfe, 0xc4, 0xb6, 0xfe, 0xc4, 0x01, 0x3c, 0xfe, 0xc4,
+ 0x01, 0x3c, 0x05, 0xd5, 0xfd, 0x97, 0xa8, 0xf0, 0xaa, 0xfd, 0x2c, 0x02,
+ 0xd4, 0xaa, 0xf0, 0xa8, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x6c,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x04, 0x9f, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x09, 0xbc, 0x07, 0x6d, 0x10, 0x27, 0x01, 0x3f, 0x05, 0x1f,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x08, 0xb8, 0x06, 0x66, 0x10, 0x27, 0x01, 0x40, 0x05, 0x40,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x07, 0xb6, 0x06, 0x66, 0x10, 0x27, 0x01, 0x40, 0x04, 0x3d,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x66, 0x05, 0x87, 0x05, 0xd5, 0x10, 0x27, 0x00, 0x2d, 0x04, 0x1c,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x56, 0x05, 0x48, 0x06, 0x14, 0x10, 0x27, 0x00, 0x4d, 0x03, 0xf4,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0xfe, 0x56, 0x02, 0xa4, 0x06, 0x14, 0x10, 0x27, 0x00, 0x4d, 0x01, 0x51,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x4f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x66, 0x06, 0x41, 0x05, 0xd5, 0x10, 0x27, 0x00, 0x2d, 0x04, 0xd6,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x56, 0x06, 0x0c, 0x06, 0x14, 0x10, 0x27, 0x00, 0x4d, 0x04, 0xb8,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x05, 0x48, 0x06, 0x14, 0x10, 0x27, 0x00, 0x4d, 0x03, 0xf4,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x51, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xf0, 0x04, 0x45, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x44, 0x00, 0x00, 0x11, 0x06, 0x02, 0x89, 0x51, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x02, 0x24, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x2c, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0, 0x02, 0xde, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x02, 0x22,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0xf3, 0x00, 0x00, 0x11, 0x07, 0x02, 0x89,
+ 0xff, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf0, 0x04, 0xa3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x11, 0x06, 0x02, 0x89, 0x6a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0,
+ 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xf0, 0x04, 0x77, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x11, 0x06, 0x02, 0x89, 0x6a, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x08, 0x33, 0x10, 0x26,
+ 0x11, 0x1e, 0x2b, 0x00, 0x12, 0x06, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0x6f, 0x01, 0x3b, 0x12, 0x06, 0x00, 0xbe, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x10, 0x06, 0x11, 0x21, 0x31, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x07, 0x22, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x11, 0x21, 0xff, 0xc5, 0xfe, 0xc8,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x10, 0x06, 0x11, 0x26, 0x2b, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x07, 0x22, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x11, 0x26, 0xff, 0xca, 0xfe, 0xc8,
+ 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5, 0x08, 0x60, 0x12, 0x26,
+ 0x00, 0x38, 0x00, 0x00, 0x10, 0x06, 0x11, 0x22, 0x2b, 0x06, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x07, 0x22, 0x12, 0x26,
+ 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x11, 0x22, 0xff, 0xc5, 0xfe, 0xc8,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x06,
+ 0x02, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x08, 0x33, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x07, 0x31, 0x12, 0x26, 0x00, 0xa6, 0x00, 0x00, 0x10, 0x07, 0x00, 0x71,
+ 0x00, 0x4a, 0x01, 0x3b, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x08, 0x33, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0xf4, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x10, 0x07, 0x11, 0x20,
+ 0xff, 0x9e, 0xfe, 0xc1, 0xff, 0xff, 0x00, 0x07, 0x00, 0x00, 0x06, 0x8e,
+ 0x07, 0x34, 0x10, 0x27, 0x00, 0x71, 0x02, 0x8e, 0x01, 0x3e, 0x12, 0x06,
+ 0x00, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0xb1,
+ 0x05, 0xf2, 0x10, 0x27, 0x00, 0x71, 0x01, 0xb7, 0xff, 0xfc, 0x12, 0x06,
+ 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x6a,
+ 0x05, 0xf0, 0x00, 0x25, 0x00, 0x00, 0x01, 0x11, 0x33, 0x15, 0x23, 0x15,
+ 0x0e, 0x01, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x17,
+ 0x15, 0x2e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x36,
+ 0x37, 0x35, 0x23, 0x35, 0x33, 0x35, 0x21, 0x35, 0x04, 0xfd, 0x6d, 0x6d,
+ 0x69, 0xfe, 0x90, 0xfe, 0xc5, 0xfe, 0x9d, 0x01, 0x63, 0x01, 0x3b, 0x83,
+ 0xed, 0x64, 0x65, 0xe3, 0x7d, 0xf6, 0xf8, 0xf8, 0xf6, 0x61, 0x97, 0x3c,
+ 0xe4, 0xe4, 0xfe, 0xd7, 0x03, 0x0c, 0xfe, 0xd6, 0x58, 0xff, 0x53, 0x55,
+ 0x01, 0x99, 0x01, 0x6d, 0x01, 0x6e, 0x01, 0x99, 0x48, 0x46, 0xd7, 0x5f,
+ 0x60, 0xfe, 0xce, 0xfe, 0xd1, 0xfe, 0xd2, 0xfe, 0xce, 0x25, 0x27, 0xb5,
+ 0x58, 0x84, 0xa6, 0x00, 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x7b,
+ 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x34, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x17, 0x14, 0x07, 0x33,
+ 0x15, 0x23, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x21, 0x35, 0x21, 0x36, 0x3d, 0x01, 0x0e,
+ 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35,
+ 0x33, 0x03, 0x45, 0x95, 0x86, 0x85, 0x94, 0x94, 0x85, 0x86, 0x95, 0xa6,
+ 0x11, 0xa1, 0xb3, 0x1c, 0x34, 0x72, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e,
+ 0x4a, 0xa3, 0x51, 0x13, 0x0f, 0xfd, 0xc4, 0x02, 0x57, 0x14, 0x33, 0xa0,
+ 0x70, 0xba, 0xe2, 0xe2, 0xba, 0x70, 0xa0, 0x33, 0xa6, 0x02, 0x3d, 0xc8,
+ 0xdc, 0xdc, 0xc8, 0xc7, 0xdc, 0xdc, 0xeb, 0x6e, 0x58, 0x46, 0x5d, 0x40,
+ 0x8c, 0x1d, 0x1e, 0xb3, 0x2c, 0x2a, 0x5f, 0x17, 0x1c, 0x45, 0x47, 0x5e,
+ 0x5b, 0x63, 0x62, 0x01, 0x3a, 0x01, 0x03, 0x01, 0x04, 0x01, 0x3a, 0x62,
+ 0x63, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xfe,
+ 0x07, 0x6d, 0x12, 0x26, 0x00, 0x2a, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf0,
+ 0x04, 0xc3, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x06, 0x63, 0x10, 0x26, 0x02, 0x89, 0x43, 0xfd,
+ 0x12, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xe0, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf0, 0x04, 0x2b,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x2e, 0x00, 0x00, 0xff, 0xff, 0xff, 0xeb,
+ 0x00, 0x00, 0x04, 0x26, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x4e, 0x00, 0x00,
+ 0x11, 0x07, 0x10, 0xf0, 0x02, 0xcb, 0x01, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xfe, 0x75, 0x05, 0x44, 0x05, 0xf0, 0x10, 0x27,
+ 0x02, 0x9d, 0x01, 0x15, 0x00, 0x00, 0x12, 0x06, 0x00, 0x32, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x75, 0x04, 0x03, 0x04, 0x7b, 0x10, 0x26,
+ 0x02, 0x9d, 0x73, 0x00, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xfe, 0x75, 0x05, 0x44, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x01, 0x0a, 0x01, 0x3b, 0x12, 0x06, 0x01, 0xac, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x75, 0x04, 0x03, 0x05, 0xf5, 0x10, 0x26,
+ 0x00, 0x71, 0x68, 0xff, 0x12, 0x06, 0x01, 0xad, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x90, 0xff, 0xc1, 0x04, 0x79, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf0, 0x04, 0x45, 0x01, 0x75, 0x12, 0x06, 0x01, 0x79, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x4f, 0xfe, 0x4c, 0x03, 0xc4, 0x06, 0x66, 0x10, 0x26,
+ 0x02, 0x89, 0x18, 0x00, 0x10, 0x06, 0x02, 0x54, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xde, 0xfe, 0x56, 0x02, 0x27, 0x06, 0x66, 0x10, 0x27,
+ 0x02, 0x89, 0xff, 0x3b, 0x00, 0x00, 0x11, 0x06, 0x01, 0xf9, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x09, 0xbc,
+ 0x05, 0xd5, 0x10, 0x27, 0x00, 0x3d, 0x05, 0x1f, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x08, 0xb8,
+ 0x05, 0xd5, 0x10, 0x27, 0x00, 0x5d, 0x05, 0x40, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x07, 0xb6,
+ 0x06, 0x14, 0x10, 0x27, 0x00, 0x5d, 0x04, 0x3d, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xfe,
+ 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x98, 0x01, 0x76, 0x12, 0x06,
+ 0x00, 0x2a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb,
+ 0x06, 0x63, 0x12, 0x26, 0x00, 0x4a, 0x00, 0x00, 0x10, 0x06, 0x00, 0x76,
+ 0x18, 0xfd, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xff, 0xe3, 0x07, 0x5c,
+ 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x17, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x21, 0x11, 0x23,
+ 0xb5, 0xb6, 0x02, 0x94, 0xb6, 0x38, 0x37, 0x8a, 0x85, 0x3b, 0x38, 0xb6,
+ 0x5a, 0x57, 0xfd, 0xf8, 0x5d, 0x5a, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfd,
+ 0x9c, 0x02, 0x64, 0xfb, 0xec, 0x9f, 0x50, 0x4e, 0x01, 0x4f, 0x4b, 0xa4,
+ 0x02, 0x9f, 0xfd, 0x5a, 0xdf, 0x80, 0x78, 0x78, 0x76, 0xe9, 0x01, 0x0d,
+ 0xfd, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0xfe, 0x56, 0x04, 0x82,
+ 0x05, 0xf0, 0x00, 0x0e, 0x00, 0x17, 0x00, 0x00, 0x25, 0x11, 0x23, 0x11,
+ 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x10, 0x01,
+ 0x00, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x03, 0x01, 0x6b, 0xb6, 0xb6,
+ 0x32, 0x83, 0x4e, 0xcb, 0xb3, 0x4a, 0x4c, 0xfc, 0xe9, 0x02, 0x5d, 0x36,
+ 0x36, 0x75, 0xd5, 0xa7, 0x9c, 0xfd, 0xba, 0x07, 0x7f, 0xb9, 0x48, 0x57,
+ 0x35, 0x78, 0x7a, 0xa4, 0xfe, 0x37, 0xfe, 0xce, 0x01, 0xae, 0x01, 0x0c,
+ 0x8f, 0x47, 0x46, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xae, 0x07, 0x6b, 0x10, 0x27, 0x10, 0xee, 0x04, 0x9b,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x06, 0x64, 0x12, 0x26, 0x00, 0x51, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x43, 0x00, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x73, 0x12, 0x26, 0x00, 0x87, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x05, 0xb9, 0x01, 0x7d, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x04, 0x60, 0x07, 0x73, 0x12, 0x26, 0x00, 0xa7, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x05, 0x54, 0x01, 0x7d, 0xff, 0xff, 0x00, 0x07,
+ 0x00, 0x00, 0x06, 0x8e, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x05, 0xb9,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x06, 0xb1, 0x06, 0x63, 0x12, 0x26, 0x00, 0xa8, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x76, 0x01, 0x41, 0xff, 0xfd, 0xff, 0xff, 0x00, 0x5b,
+ 0xff, 0xba, 0x05, 0x4f, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x7e,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x9a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x40,
+ 0xff, 0xa2, 0x04, 0x26, 0x06, 0x63, 0x12, 0x26, 0x00, 0xba, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x19, 0xfd, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x70, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x04, 0x68, 0x01, 0x7a, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x64, 0x10, 0x27, 0x02, 0xc0, 0x04, 0x22,
+ 0xff, 0xfe, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x36, 0x12, 0x26, 0x00, 0x24, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x04, 0x43, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x03, 0xf4,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x70, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x04, 0x2e, 0x01, 0x7a, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x63, 0x10, 0x27, 0x02, 0xc0, 0x04, 0x41,
+ 0xff, 0xfd, 0x12, 0x06, 0x00, 0x48, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x07, 0x36, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x04, 0x2f, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x04, 0x32,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x48, 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf,
+ 0x00, 0x00, 0x02, 0x35, 0x07, 0x70, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x03, 0x03, 0x01, 0x7a, 0xff, 0xff, 0xff, 0xc9,
+ 0x00, 0x00, 0x02, 0x41, 0x06, 0x63, 0x10, 0x27, 0x02, 0xc0, 0x03, 0x0f,
+ 0xff, 0xfd, 0x12, 0x06, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0x00, 0x00, 0x02, 0x38, 0x07, 0x36, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x02, 0xeb, 0x01, 0x3e, 0xff, 0xff, 0xff, 0xe5,
+ 0x00, 0x00, 0x02, 0x1a, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x02, 0xd4,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x70, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x04, 0xba, 0x01, 0x7a, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x64, 0x10, 0x27, 0x02, 0xc0, 0x04, 0x29,
+ 0xff, 0xfe, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0x36, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x04, 0x99, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x04, 0x22,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb3,
+ 0x00, 0x00, 0x04, 0xcc, 0x07, 0x70, 0x12, 0x26, 0x00, 0x35, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x04, 0x06, 0x01, 0x7a, 0xff, 0xff, 0x00, 0x75,
+ 0x00, 0x00, 0x02, 0xf6, 0x06, 0x63, 0x10, 0x27, 0x02, 0xc0, 0x03, 0xbb,
+ 0xff, 0xfd, 0x12, 0x06, 0x00, 0x55, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xcc, 0x07, 0x36, 0x12, 0x26, 0x00, 0x35, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x04, 0x0d, 0x01, 0x3e, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0x08, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x03, 0xc2,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x55, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0,
+ 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x70, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf5, 0x04, 0x93, 0x01, 0x7a, 0xff, 0xff, 0x00, 0x9c,
+ 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x64, 0x10, 0x27, 0x02, 0xc0, 0x04, 0x58,
+ 0xff, 0xfe, 0x12, 0x06, 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0,
+ 0xff, 0xe3, 0x04, 0xa5, 0x07, 0x36, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf1, 0x04, 0x6e, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x9c,
+ 0xff, 0xe3, 0x03, 0xe9, 0x06, 0x48, 0x10, 0x27, 0x02, 0xc2, 0x04, 0x34,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x14, 0x04, 0x2c, 0x05, 0xf0, 0x10, 0x27, 0x02, 0xd7, 0x04, 0x04,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63,
+ 0xfe, 0x14, 0x03, 0x67, 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd7, 0x03, 0xc1,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x56, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa,
+ 0xfe, 0x14, 0x04, 0x6c, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd7, 0x03, 0xe4,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31,
+ 0xfe, 0x14, 0x02, 0xa7, 0x05, 0x9e, 0x10, 0x27, 0x02, 0xd7, 0x03, 0x9a,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8c,
+ 0xfe, 0x52, 0x04, 0x02, 0x05, 0xf0, 0x00, 0x2e, 0x00, 0x00, 0x01, 0x04,
+ 0x11, 0x14, 0x0e, 0x03, 0x07, 0x35, 0x36, 0x24, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x0f, 0x01, 0x35, 0x37, 0x3e, 0x03, 0x35, 0x34, 0x2e,
+ 0x03, 0x23, 0x22, 0x07, 0x35, 0x36, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x14,
+ 0x0e, 0x02, 0x02, 0xec, 0x01, 0x15, 0x64, 0xa6, 0xe7, 0xfa, 0x8a, 0xb4,
+ 0x01, 0x13, 0xa6, 0x53, 0x70, 0x65, 0x56, 0x67, 0x93, 0xdf, 0x36, 0x5c,
+ 0x5e, 0x37, 0x20, 0x31, 0x44, 0x41, 0x22, 0xa5, 0xdb, 0xd7, 0xb9, 0x76,
+ 0xb7, 0x70, 0x15, 0x34, 0x63, 0x02, 0xa2, 0x43, 0xfe, 0xdb, 0x70, 0xce,
+ 0xa0, 0x88, 0x60, 0x22, 0xa0, 0x37, 0x8c, 0x99, 0x9d, 0x4f, 0x65, 0x84,
+ 0x33, 0x48, 0xab, 0x6a, 0x1a, 0x41, 0x63, 0x8b, 0x52, 0x37, 0x56, 0x33,
+ 0x22, 0x0c, 0xb8, 0xbe, 0xa4, 0x56, 0xb6, 0x80, 0x3c, 0x66, 0x71, 0x74,
+ 0x00, 0x01, 0x00, 0x3f, 0xfe, 0x4f, 0x03, 0x5d, 0x04, 0x7b, 0x00, 0x34,
+ 0x00, 0x00, 0x01, 0x1e, 0x03, 0x15, 0x14, 0x0e, 0x05, 0x07, 0x35, 0x3e,
+ 0x04, 0x35, 0x34, 0x26, 0x23, 0x22, 0x0f, 0x01, 0x35, 0x37, 0x3e, 0x04,
+ 0x35, 0x34, 0x2e, 0x03, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x33, 0x32,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x02, 0x63, 0x3f, 0x65, 0x38, 0x1d, 0x3b,
+ 0x61, 0x89, 0x8d, 0xa1, 0x87, 0x42, 0x92, 0xdc, 0x8e, 0x5a, 0x24, 0x6b,
+ 0x53, 0x36, 0x38, 0xc3, 0xc9, 0x1f, 0x3a, 0x4f, 0x38, 0x29, 0x1c, 0x2c,
+ 0x3d, 0x3a, 0x20, 0x3e, 0x97, 0x84, 0xef, 0x79, 0x65, 0xa5, 0x69, 0x5d,
+ 0x01, 0xcd, 0x08, 0x44, 0x5a, 0x58, 0x25, 0x4b, 0x8a, 0x6c, 0x61, 0x46,
+ 0x3d, 0x27, 0x0f, 0x82, 0x2e, 0x60, 0x5b, 0x62, 0x5b, 0x33, 0x58, 0x70,
+ 0x19, 0x56, 0x8b, 0x55, 0x0d, 0x20, 0x3c, 0x45, 0x66, 0x39, 0x2c, 0x46,
+ 0x2a, 0x1b, 0x0a, 0x3b, 0x5a, 0x9a, 0x85, 0x47, 0x92, 0x61, 0x6e, 0x99,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf0, 0x04, 0x84, 0x01, 0x75, 0x12, 0x06, 0x00, 0x2b, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x03, 0xf4, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf0, 0x02, 0xd1, 0x01, 0x75, 0x13, 0x06, 0x00, 0x4b, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x04, 0x97,
+ 0x05, 0xf0, 0x00, 0x13, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x17, 0x32, 0x12, 0x19,
+ 0x01, 0x23, 0x03, 0xe2, 0x8b, 0x8a, 0xa1, 0xc1, 0xb6, 0xb6, 0x48, 0xb9,
+ 0x8c, 0xcd, 0xd1, 0xb4, 0x03, 0x7f, 0xd7, 0xd5, 0xff, 0xde, 0xfc, 0xb2,
+ 0x05, 0xd5, 0xf1, 0x87, 0x86, 0x01, 0xfe, 0xc1, 0xfe, 0xcc, 0xfa, 0xd9,
+ 0x00, 0x03, 0x00, 0x65, 0xff, 0x70, 0x05, 0xa4, 0x06, 0x14, 0x00, 0x07,
+ 0x00, 0x28, 0x00, 0x34, 0x00, 0x00, 0x25, 0x16, 0x33, 0x32, 0x35, 0x34,
+ 0x27, 0x22, 0x07, 0x36, 0x33, 0x32, 0x15, 0x10, 0x21, 0x22, 0x27, 0x06,
+ 0x07, 0x23, 0x36, 0x37, 0x26, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x11, 0x33, 0x00,
+ 0x10, 0x17, 0x16, 0x20, 0x37, 0x36, 0x10, 0x27, 0x26, 0x20, 0x07, 0x04,
+ 0x3d, 0x10, 0x21, 0x90, 0x2f, 0x2f, 0xb5, 0x63, 0x7a, 0xdc, 0xfe, 0xcc,
+ 0x42, 0x30, 0x1e, 0x16, 0xb0, 0x1a, 0x3c, 0x2b, 0x34, 0x4f, 0x50, 0x70,
+ 0xb7, 0x73, 0x72, 0x72, 0x73, 0xb7, 0x70, 0x50, 0x4f, 0x34, 0xa6, 0xfd,
+ 0x26, 0x4a, 0x4c, 0x01, 0x07, 0x4b, 0x4c, 0x4c, 0x4b, 0xfe, 0xf9, 0x4c,
+ 0x82, 0x05, 0xaf, 0x2d, 0x01, 0x20, 0xb8, 0xce, 0xfe, 0xbf, 0x0f, 0x48,
+ 0x3a, 0x45, 0x93, 0x3c, 0x24, 0x64, 0x30, 0x31, 0xa2, 0xa2, 0x02, 0x10,
+ 0xa2, 0xa2, 0x31, 0x30, 0x64, 0x02, 0x5e, 0xfc, 0xe6, 0xfe, 0x6a, 0x74,
+ 0x73, 0x73, 0x74, 0x01, 0x96, 0x74, 0x73, 0x73, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0xa2, 0x05, 0xf0, 0x00, 0x0c, 0x00, 0x3b, 0x00, 0x00,
+ 0x01, 0x22, 0x07, 0x06, 0x10, 0x17, 0x16, 0x20, 0x37, 0x36, 0x35, 0x34,
+ 0x26, 0x03, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x35, 0x32, 0x17, 0x16, 0x15, 0x14, 0x06,
+ 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x20, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x02, 0x84, 0xa6, 0x60, 0x60, 0x60, 0x60, 0x01, 0x4b, 0x60, 0x61, 0xbf,
+ 0xdc, 0x75, 0x99, 0x56, 0x35, 0xb8, 0x97, 0x55, 0x57, 0x45, 0x62, 0x75,
+ 0xcd, 0x87, 0x7d, 0x99, 0x88, 0x9a, 0x56, 0x56, 0x8c, 0x8c, 0xfd, 0xf5,
+ 0x8c, 0x8c, 0x56, 0x57, 0x9a, 0x9a, 0x3c, 0x4c, 0x75, 0x68, 0xe7, 0x02,
+ 0xc5, 0x4d, 0x4d, 0xfe, 0xf2, 0x4d, 0x4d, 0x4d, 0x4e, 0x86, 0x87, 0x9a,
+ 0x02, 0x27, 0x03, 0x7c, 0x4f, 0x45, 0x48, 0x2d, 0x41, 0x41, 0x88, 0x9e,
+ 0x2b, 0x4d, 0x08, 0x64, 0x68, 0x61, 0xba, 0x80, 0xb2, 0x20, 0x22, 0x63,
+ 0x63, 0x8f, 0xd9, 0x74, 0x74, 0x74, 0x74, 0xd9, 0x8f, 0x63, 0x63, 0x22,
+ 0x1f, 0x46, 0x59, 0x58, 0x82, 0x53, 0x4a, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x00, 0x05, 0x0f, 0x00, 0x0d, 0x00, 0x34, 0x00, 0x00,
+ 0x01, 0x22, 0x07, 0x06, 0x10, 0x17, 0x16, 0x20, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x13, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x20, 0x27, 0x26, 0x35, 0x34, 0x36, 0x37, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x33, 0x06, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x02, 0x32, 0x81, 0x4b, 0x4a, 0x4a, 0x4b,
+ 0x01, 0x03, 0x4b, 0x4b, 0x4b, 0x4a, 0xe5, 0x34, 0x2f, 0x41, 0x75, 0x84,
+ 0x49, 0x49, 0x77, 0x77, 0xfe, 0x43, 0x77, 0x77, 0x93, 0x84, 0x82, 0x35,
+ 0x2f, 0x39, 0x91, 0x27, 0x42, 0x41, 0x75, 0x76, 0x41, 0x43, 0x28, 0x02,
+ 0xc5, 0x4d, 0x4d, 0xfe, 0xf2, 0x4d, 0x4d, 0x4d, 0x4e, 0x86, 0x87, 0x4d,
+ 0x4d, 0x02, 0x4a, 0x40, 0x62, 0x99, 0x40, 0x59, 0x20, 0x22, 0x63, 0x63,
+ 0x8f, 0xd9, 0x74, 0x74, 0x74, 0x74, 0xd9, 0x8f, 0xc6, 0x22, 0x23, 0x56,
+ 0x4b, 0x8e, 0x59, 0x49, 0x41, 0xe8, 0x41, 0x41, 0x41, 0x41, 0x74, 0x77,
+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x52, 0xfe, 0x56, 0x04, 0x9c,
+ 0x05, 0xd5, 0x00, 0x15, 0x00, 0x00, 0x05, 0x10, 0x07, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x21, 0x35, 0x01, 0x21, 0x35,
+ 0x21, 0x15, 0x01, 0x21, 0x04, 0x9c, 0x8e, 0x41, 0x67, 0xe4, 0xd1, 0x5f,
+ 0x22, 0x22, 0xfc, 0x5d, 0x03, 0x51, 0xfc, 0xc4, 0x04, 0x1f, 0xfc, 0xaf,
+ 0x03, 0x66, 0x14, 0xfe, 0xdf, 0x50, 0x25, 0x9c, 0x30, 0x31, 0x99, 0x14,
+ 0x9a, 0x04, 0x91, 0xaa, 0x9a, 0xfb, 0x6f, 0x00, 0x00, 0x01, 0x00, 0x4f,
+ 0xfe, 0x56, 0x03, 0x79, 0x04, 0x60, 0x00, 0x15, 0x00, 0x00, 0x05, 0x10,
+ 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x21,
+ 0x35, 0x01, 0x21, 0x35, 0x21, 0x15, 0x01, 0x21, 0x03, 0x78, 0x8e, 0x41,
+ 0x66, 0xe5, 0xd2, 0x5e, 0x22, 0x23, 0xfd, 0x7c, 0x02, 0x6f, 0xfd, 0xa8,
+ 0x03, 0x12, 0xfd, 0x92, 0x02, 0x6e, 0x14, 0xfe, 0xdf, 0x50, 0x25, 0x9c,
+ 0x30, 0x31, 0x99, 0x14, 0xa8, 0x03, 0x25, 0x93, 0xa8, 0xfc, 0xdb, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0x50, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0x43, 0x01, 0x75, 0x12, 0x06, 0x00, 0x24, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x03, 0xdc, 0x00, 0x00, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x75, 0x04, 0x17, 0x05, 0xd5, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x07, 0x00, 0x7a, 0x00, 0x92, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x75, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x26,
+ 0x00, 0x48, 0x00, 0x00, 0x10, 0x06, 0x00, 0x7a, 0x6f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x08, 0x33, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x1e, 0x58, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x07, 0x31, 0x12, 0x26,
+ 0x00, 0xb8, 0x00, 0x00, 0x10, 0x07, 0x00, 0x71, 0x00, 0x68, 0x01, 0x3b,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x08, 0x33, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x25, 0x5e, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0xe9, 0x12, 0x26,
+ 0x00, 0x52, 0x00, 0x00, 0x10, 0x07, 0x11, 0x25, 0xff, 0xbc, 0xfe, 0xb6,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x07, 0x50, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0xa3, 0x01, 0x75, 0x12, 0x06, 0x00, 0x32, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x04, 0x01, 0x00, 0x00, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x08, 0x33, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x20, 0x5f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x07, 0x31, 0x12, 0x26,
+ 0x01, 0xf1, 0x00, 0x00, 0x10, 0x07, 0x00, 0x71, 0x00, 0x68, 0x01, 0x3b,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0x66, 0x01, 0x3b, 0x12, 0x06, 0x00, 0x3c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x05, 0xf5, 0x10, 0x26,
+ 0x00, 0x71, 0x55, 0xff, 0x12, 0x06, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x7c, 0xff, 0x70, 0x03, 0x06, 0x06, 0x0e, 0x00, 0x07,
+ 0x00, 0x19, 0x00, 0x00, 0x25, 0x16, 0x33, 0x32, 0x35, 0x34, 0x27, 0x22,
+ 0x07, 0x36, 0x33, 0x32, 0x15, 0x10, 0x21, 0x22, 0x27, 0x06, 0x07, 0x23,
+ 0x36, 0x37, 0x26, 0x37, 0x11, 0x33, 0x01, 0xa0, 0x0f, 0x21, 0x90, 0x2e,
+ 0x2f, 0xb6, 0x63, 0x7a, 0xdc, 0xfe, 0xcc, 0x42, 0x2f, 0x1f, 0x15, 0xb1,
+ 0x1a, 0x3d, 0x2d, 0x01, 0xa6, 0x82, 0x05, 0xaf, 0x2d, 0x01, 0x20, 0xb8,
+ 0xce, 0xfe, 0xbf, 0x0f, 0x48, 0x3a, 0x45, 0x93, 0x3c, 0x5a, 0x05, 0x30,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x70, 0x05, 0xad, 0x04, 0x7b, 0x00, 0x07,
+ 0x00, 0x2b, 0x00, 0x00, 0x25, 0x16, 0x33, 0x32, 0x35, 0x34, 0x27, 0x22,
+ 0x07, 0x36, 0x33, 0x32, 0x15, 0x10, 0x21, 0x22, 0x27, 0x06, 0x07, 0x23,
+ 0x36, 0x37, 0x26, 0x37, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11,
+ 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x04, 0x46, 0x10, 0x21, 0x90, 0x2f, 0x2f, 0xb5, 0x63, 0x7a, 0xdc, 0xfe,
+ 0xcc, 0x42, 0x30, 0x1e, 0x16, 0xb0, 0x1a, 0x3c, 0x2c, 0x01, 0x70, 0x6f,
+ 0x86, 0x9b, 0xa7, 0xa7, 0x3b, 0x50, 0x51, 0x6a, 0xad, 0x59, 0x5a, 0x82,
+ 0x05, 0xaf, 0x2d, 0x01, 0x20, 0xb8, 0xce, 0xfe, 0xbf, 0x0f, 0x48, 0x3a,
+ 0x45, 0x93, 0x3c, 0x5a, 0x01, 0xc0, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87,
+ 0x04, 0x60, 0xae, 0x65, 0x32, 0x32, 0x77, 0x78, 0xe8, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x31, 0xff, 0x70, 0x03, 0x0b, 0x05, 0x9e, 0x00, 0x07,
+ 0x00, 0x21, 0x00, 0x00, 0x25, 0x16, 0x33, 0x32, 0x35, 0x34, 0x27, 0x22,
+ 0x07, 0x36, 0x33, 0x32, 0x15, 0x10, 0x21, 0x22, 0x27, 0x06, 0x07, 0x23,
+ 0x36, 0x37, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x21,
+ 0x15, 0x21, 0x01, 0xa4, 0x10, 0x21, 0x90, 0x2f, 0x2f, 0xb5, 0x62, 0x7b,
+ 0xdb, 0xfe, 0xcd, 0x42, 0x31, 0x1d, 0x16, 0xb0, 0x1a, 0x3c, 0x2c, 0x79,
+ 0x79, 0xa7, 0x01, 0x55, 0xfe, 0xab, 0x82, 0x05, 0xaf, 0x2d, 0x01, 0x20,
+ 0xb8, 0xce, 0xfe, 0xbf, 0x0f, 0x48, 0x3a, 0x45, 0x93, 0x3c, 0x5a, 0x02,
+ 0xf3, 0x8f, 0x01, 0x3e, 0xfe, 0xc2, 0x8f, 0x00, 0x00, 0x01, 0xff, 0xde,
+ 0xfe, 0x56, 0x01, 0x54, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0xae, 0xa5,
+ 0x92, 0xa3, 0x3f, 0x2c, 0x5e, 0x45, 0x04, 0x60, 0xfb, 0x8c, 0xd6, 0xc0,
+ 0x9c, 0x61, 0x99, 0x00, 0x00, 0x03, 0x00, 0x65, 0xff, 0xe3, 0x06, 0xcb,
+ 0x06, 0x14, 0x00, 0x09, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x10,
+ 0x17, 0x16, 0x20, 0x36, 0x10, 0x26, 0x20, 0x07, 0x13, 0x32, 0x17, 0x11,
+ 0x33, 0x11, 0x36, 0x33, 0x32, 0x12, 0x10, 0x02, 0x23, 0x22, 0x27, 0x15,
+ 0x23, 0x35, 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x00, 0x10,
+ 0x27, 0x26, 0x20, 0x07, 0x06, 0x10, 0x17, 0x16, 0x20, 0x37, 0x01, 0x11,
+ 0x4a, 0x4c, 0x01, 0x07, 0x97, 0x97, 0xfe, 0xf9, 0x4c, 0xa7, 0xdc, 0x67,
+ 0xa7, 0x66, 0xdc, 0xb7, 0xe6, 0xe6, 0xb7, 0xdc, 0x66, 0xa7, 0x67, 0xdc,
+ 0xb7, 0x73, 0x72, 0x72, 0x73, 0x04, 0xd4, 0x4b, 0x4b, 0xfe, 0xf9, 0x4c,
+ 0x4a, 0x4a, 0x4c, 0x01, 0x07, 0x4b, 0x02, 0xfa, 0xfe, 0x6a, 0x74, 0x73,
+ 0xe7, 0x01, 0x96, 0xe7, 0x73, 0x01, 0x0d, 0xc5, 0x02, 0x5e, 0xfd, 0xa2,
+ 0xc5, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0xc5, 0xa8, 0xa8, 0xc5, 0xa2,
+ 0xa2, 0x02, 0x10, 0xa2, 0xa2, 0xfc, 0xe9, 0x01, 0x96, 0x74, 0x73, 0x73,
+ 0x74, 0xfe, 0x6a, 0x74, 0x73, 0x73, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65,
+ 0xfe, 0x56, 0x06, 0xcb, 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x25, 0x00, 0x2f,
+ 0x00, 0x00, 0x00, 0x10, 0x27, 0x26, 0x20, 0x07, 0x06, 0x10, 0x17, 0x16,
+ 0x20, 0x37, 0x03, 0x22, 0x27, 0x11, 0x23, 0x11, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x35, 0x33, 0x15, 0x36, 0x33,
+ 0x32, 0x12, 0x10, 0x02, 0x00, 0x10, 0x17, 0x16, 0x20, 0x36, 0x10, 0x26,
+ 0x20, 0x07, 0x06, 0x1f, 0x4b, 0x4b, 0xfe, 0xf9, 0x4c, 0x4a, 0x4a, 0x4c,
+ 0x01, 0x07, 0x4b, 0xa6, 0xdc, 0x66, 0xa7, 0x67, 0xdc, 0xb7, 0x73, 0x72,
+ 0x72, 0x73, 0xb7, 0xdc, 0x67, 0xa7, 0x66, 0xdc, 0xb7, 0xe6, 0xe6, 0xfb,
+ 0x2c, 0x4a, 0x4c, 0x01, 0x07, 0x97, 0x97, 0xfe, 0xf9, 0x4c, 0x01, 0x64,
+ 0x01, 0x96, 0x74, 0x73, 0x73, 0x74, 0xfe, 0x6a, 0x74, 0x73, 0x73, 0xfe,
+ 0xf3, 0xc5, 0xfd, 0xae, 0x02, 0x52, 0xc5, 0xa2, 0xa2, 0x02, 0x10, 0xa2,
+ 0xa2, 0xc5, 0xaa, 0xaa, 0xc5, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0x03,
+ 0x17, 0xfe, 0x6a, 0x74, 0x73, 0xe7, 0x01, 0x96, 0xe7, 0x73, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xfd, 0xff, 0xba, 0x04, 0xf0, 0x06, 0x17, 0x00, 0x12,
+ 0x00, 0x16, 0x00, 0x19, 0x00, 0x00, 0x01, 0x33, 0x13, 0x01, 0x17, 0x09,
+ 0x01, 0x23, 0x03, 0x21, 0x0f, 0x01, 0x23, 0x07, 0x27, 0x23, 0x37, 0x27,
+ 0x37, 0x01, 0x03, 0x33, 0x01, 0x03, 0x21, 0x03, 0x02, 0x0f, 0xcf, 0x78,
+ 0x01, 0x3e, 0x5c, 0xfe, 0x98, 0x01, 0x56, 0xbd, 0x7b, 0xfe, 0x0e, 0xb9,
+ 0x2d, 0x3f, 0x35, 0x4a, 0x02, 0x01, 0x12, 0x2b, 0x02, 0x4e, 0xf7, 0x14,
+ 0x01, 0x4b, 0xab, 0x01, 0x3b, 0x60, 0x05, 0xd5, 0xfe, 0xa1, 0x01, 0xa1,
+ 0x59, 0xfe, 0x27, 0xfc, 0x1b, 0x01, 0x7f, 0xf1, 0x8e, 0x46, 0x46, 0x01,
+ 0x11, 0x38, 0x04, 0xc4, 0xfd, 0x19, 0x01, 0xb1, 0xfe, 0x4f, 0x01, 0x1f,
+ 0x00, 0x02, 0x00, 0x0a, 0xff, 0xba, 0x04, 0xfd, 0x06, 0x17, 0x00, 0x22,
+ 0x00, 0x2c, 0x00, 0x00, 0x17, 0x27, 0x13, 0x26, 0x11, 0x10, 0x37, 0x36,
+ 0x21, 0x32, 0x17, 0x16, 0x17, 0x37, 0x17, 0x07, 0x15, 0x26, 0x27, 0x01,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06,
+ 0x23, 0x20, 0x27, 0x13, 0x01, 0x23, 0x26, 0x23, 0x22, 0x07, 0x06, 0x11,
+ 0x14, 0x67, 0x5c, 0xc6, 0x69, 0xaf, 0xaf, 0x01, 0x32, 0x78, 0x6a, 0x37,
+ 0x35, 0x5a, 0x5c, 0x59, 0x29, 0x2c, 0xfd, 0x42, 0x08, 0x0a, 0x7a, 0xe6,
+ 0x75, 0x69, 0x67, 0x5c, 0x5f, 0x6b, 0x6b, 0x76, 0xfe, 0xd5, 0xaf, 0x34,
+ 0x02, 0x8f, 0x01, 0x69, 0x75, 0xe6, 0x7a, 0x7b, 0x46, 0x58, 0x01, 0x05,
+ 0xbb, 0x01, 0x17, 0x01, 0x68, 0xcf, 0xd0, 0x24, 0x12, 0x1b, 0x78, 0x59,
+ 0x76, 0xbb, 0x2b, 0x21, 0xfc, 0x66, 0x0d, 0x0c, 0x9d, 0x2f, 0x2f, 0x5f,
+ 0xd3, 0x48, 0x24, 0x24, 0xc7, 0x01, 0x15, 0x03, 0x5c, 0x2f, 0x9c, 0x9d,
+ 0xfe, 0xd8, 0xad, 0x00, 0x00, 0x02, 0x00, 0x08, 0xff, 0xa2, 0x03, 0xee,
+ 0x04, 0xbc, 0x00, 0x22, 0x00, 0x2b, 0x00, 0x00, 0x17, 0x27, 0x37, 0x26,
+ 0x35, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x37, 0x17, 0x07,
+ 0x15, 0x26, 0x27, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x15, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x13, 0x01, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x5e, 0x56, 0xaa, 0x4c, 0x88, 0x87, 0xeb, 0x4d,
+ 0x49, 0x29, 0x29, 0x50, 0x55, 0x6a, 0x16, 0x16, 0xfe, 0x0b, 0x06, 0x05,
+ 0x59, 0xa2, 0x48, 0x46, 0x47, 0x46, 0x45, 0x4a, 0x4b, 0x53, 0xd8, 0x85,
+ 0x32, 0x01, 0xbc, 0x3f, 0x40, 0xa2, 0x59, 0x59, 0x5e, 0x4e, 0xe6, 0x8d,
+ 0xcc, 0x01, 0x12, 0x9d, 0x9d, 0x11, 0x0a, 0x10, 0x6c, 0x4f, 0x8f, 0x55,
+ 0x0e, 0x0b, 0xfd, 0x5e, 0x08, 0x08, 0x71, 0x15, 0x16, 0x2b, 0xaa, 0x24,
+ 0x12, 0x12, 0x90, 0x01, 0x05, 0x02, 0x56, 0x11, 0x71, 0x72, 0xcd, 0x67,
+ 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x23, 0x35, 0x33, 0xb5, 0xb6, 0xac, 0xac, 0x02, 0x8e, 0xfc, 0xbc,
+ 0xac, 0xac, 0x05, 0xd5, 0xfd, 0x77, 0x90, 0xfd, 0xee, 0xaa, 0x02, 0xbc,
+ 0x90, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb9, 0xff, 0xba, 0x04, 0xad,
+ 0x06, 0x17, 0x00, 0x0f, 0x00, 0x12, 0x00, 0x00, 0x01, 0x15, 0x23, 0x01,
+ 0x11, 0x23, 0x11, 0x01, 0x27, 0x01, 0x11, 0x21, 0x35, 0x21, 0x37, 0x17,
+ 0x09, 0x01, 0x21, 0x04, 0x6b, 0x2f, 0xfe, 0x52, 0xb6, 0xfe, 0x3e, 0x5c,
+ 0x02, 0x1e, 0xfe, 0x23, 0x04, 0x23, 0x32, 0x5c, 0xfd, 0xe2, 0x01, 0x0e,
+ 0xfe, 0xf2, 0x05, 0x69, 0x3e, 0xfd, 0xcc, 0xfd, 0x09, 0x02, 0x07, 0xfd,
+ 0xb3, 0x58, 0x02, 0xc7, 0x02, 0x52, 0xaa, 0x42, 0x59, 0xfe, 0x0b, 0x01,
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0xfe, 0x10, 0x03, 0xb1,
+ 0x04, 0x7b, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x34, 0x27, 0x26, 0x2f, 0x01,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e,
+ 0x01, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x1f, 0x01, 0x16, 0x33, 0x15,
+ 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x02, 0xbc, 0x2d, 0x2e,
+ 0x9a, 0x39, 0x9a, 0x44, 0x45, 0xca, 0xb9, 0x5c, 0xa2, 0x44, 0x46, 0x97,
+ 0x51, 0x7b, 0x3e, 0x3e, 0x2c, 0x2d, 0x85, 0x38, 0xb3, 0x48, 0x4a, 0x6e,
+ 0x4f, 0x77, 0x90, 0x84, 0x26, 0x44, 0x23, 0x4c, 0x66, 0x40, 0x50, 0xd5,
+ 0x1c, 0x20, 0x0e, 0x10, 0x57, 0x61, 0x5c, 0x59, 0x59, 0x57, 0x75, 0x3f,
+ 0x3f, 0x01, 0x27, 0x4b, 0x28, 0x28, 0x25, 0x0f, 0x24, 0x4a, 0x4b, 0x82,
+ 0x9e, 0xac, 0x1e, 0x1e, 0xae, 0x28, 0x28, 0x2a, 0x2a, 0x54, 0x40, 0x25,
+ 0x24, 0x21, 0x0e, 0x2c, 0x4b, 0x4c, 0x89, 0x9c, 0x5b, 0x40, 0x13, 0x9f,
+ 0x7e, 0x24, 0x9a, 0x3d, 0x26, 0x5b, 0xf3, 0x1e, 0x10, 0x03, 0x02, 0x12,
+ 0x23, 0xbe, 0x35, 0x1a, 0x1b, 0x2d, 0x2c, 0x00, 0x00, 0x01, 0x00, 0x4f,
+ 0xfe, 0x10, 0x03, 0xc8, 0x04, 0x60, 0x00, 0x18, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x01, 0x16, 0x17, 0x13, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x27, 0x26, 0x2f, 0x01, 0x26, 0x2b, 0x01, 0x3d, 0x01, 0x01, 0x21, 0x66,
+ 0x03, 0x12, 0xfd, 0x93, 0x53, 0x2c, 0xee, 0x84, 0x26, 0x44, 0x62, 0x85,
+ 0x4b, 0x67, 0x40, 0x50, 0xd5, 0x37, 0x51, 0x55, 0x02, 0x6f, 0xfd, 0xa8,
+ 0x04, 0x60, 0xa8, 0xfc, 0xdd, 0x10, 0x31, 0xfe, 0xf8, 0x7e, 0x24, 0x9a,
+ 0x3d, 0x26, 0x5b, 0xf3, 0x3f, 0x9c, 0x0c, 0x03, 0x25, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x48, 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x18,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x23, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x22, 0x06, 0x07, 0x35, 0x36, 0x3b, 0x01, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x02, 0x4f, 0x23, 0xb6, 0xd9, 0x7f, 0x8b, 0x8b, 0x7f,
+ 0xe4, 0x3e, 0x9e, 0x47, 0x89, 0x9a, 0xe4, 0xdc, 0xed, 0xee, 0x02, 0x5a,
+ 0xfd, 0xa6, 0x03, 0x00, 0x91, 0x87, 0x88, 0x8f, 0x2a, 0x2c, 0xb6, 0x46,
+ 0xdc, 0xe1, 0xd7, 0xe7, 0x00, 0x01, 0x00, 0x48, 0x00, 0x00, 0x03, 0x34,
+ 0x04, 0x7b, 0x00, 0x18, 0x00, 0x00, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x11, 0x23, 0x01, 0x11, 0x5a, 0x7f, 0x8a,
+ 0x44, 0x4c, 0x79, 0x42, 0x4d, 0x4e, 0x46, 0x89, 0x9a, 0xe2, 0x70, 0x77,
+ 0xbf, 0xaf, 0xb5, 0x01, 0xa6, 0x91, 0x87, 0x8d, 0x41, 0x48, 0x15, 0x15,
+ 0x2b, 0xb6, 0x46, 0x6e, 0x74, 0xdb, 0xd5, 0xe5, 0xfe, 0xfc, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x15, 0x00, 0x28, 0x00, 0x00, 0x01, 0x15, 0x21, 0x15, 0x21, 0x15,
+ 0x21, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x01, 0x11, 0x21, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x23, 0x35, 0x33, 0x01,
+ 0x6b, 0x01, 0x38, 0xfe, 0xc8, 0x01, 0x23, 0x93, 0x8d, 0x8d, 0x93, 0xfe,
+ 0xdd, 0x01, 0x0d, 0x85, 0x83, 0x83, 0x85, 0xfe, 0x3d, 0x01, 0xd0, 0xd0,
+ 0xe1, 0x73, 0x70, 0x87, 0x94, 0xf5, 0xe2, 0xfe, 0x1e, 0xac, 0xac, 0x02,
+ 0xc9, 0xc9, 0x90, 0xca, 0x87, 0x8b, 0x8c, 0x85, 0x02, 0x66, 0xfe, 0x3e,
+ 0x6f, 0x72, 0x71, 0x70, 0xa6, 0xc0, 0xb1, 0x89, 0xa2, 0x14, 0x20, 0xcb,
+ 0x98, 0xc8, 0xda, 0x01, 0x70, 0x90, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a,
+ 0xff, 0xe3, 0x05, 0x3a, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x1d, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x10,
+ 0x00, 0x23, 0x22, 0x00, 0x11, 0x35, 0x23, 0x35, 0x33, 0x05, 0x21, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0xa0, 0xb7, 0x02, 0x97, 0xb7, 0x94,
+ 0x94, 0xfe, 0xfc, 0xfe, 0xff, 0xfe, 0xfc, 0x95, 0x95, 0x03, 0x4e, 0xfd,
+ 0x69, 0x9d, 0xaf, 0xaf, 0x9c, 0x05, 0xd5, 0xfd, 0x96, 0x02, 0x6a, 0xfd,
+ 0x96, 0xa4, 0x96, 0xfe, 0xdc, 0xfe, 0xd6, 0x01, 0x2a, 0x01, 0x24, 0x96,
+ 0xa4, 0xa4, 0x7d, 0xf0, 0xd3, 0xd3, 0xf0, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x06, 0x03, 0x30, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xb4, 0xff, 0x42, 0x04, 0x17, 0x06, 0x93, 0x00, 0x13,
+ 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x33, 0x07, 0x33, 0x15, 0x23,
+ 0x03, 0x33, 0x15, 0x21, 0x03, 0x21, 0x15, 0x21, 0x07, 0x23, 0x37, 0x23,
+ 0x11, 0x21, 0x01, 0x13, 0x23, 0x11, 0x1b, 0x01, 0x21, 0x11, 0x03, 0x59,
+ 0x99, 0x3b, 0x4f, 0x83, 0x88, 0xf0, 0xfe, 0xdc, 0xa6, 0x01, 0xf6, 0xfd,
+ 0xd5, 0x3a, 0x99, 0x3a, 0x9e, 0x02, 0x69, 0xfe, 0x6a, 0xa6, 0xc3, 0xf7,
+ 0x88, 0xfe, 0x81, 0x06, 0x93, 0xbe, 0xaa, 0xfe, 0x46, 0xaa, 0xfd, 0xe3,
+ 0xaa, 0xbe, 0xbe, 0x05, 0xd5, 0xfa, 0xd5, 0x02, 0x1d, 0xfd, 0xe3, 0x02,
+ 0xc7, 0x01, 0xba, 0xfe, 0x46, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x65,
+ 0xff, 0x42, 0x04, 0x0c, 0x05, 0x1e, 0x00, 0x05, 0x00, 0x26, 0x00, 0x2d,
+ 0x00, 0x31, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x27, 0x03, 0x05, 0x15,
+ 0x21, 0x03, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x27, 0x07, 0x23, 0x13, 0x26, 0x27, 0x26, 0x11, 0x10, 0x00, 0x33, 0x32,
+ 0x17, 0x37, 0x33, 0x07, 0x16, 0x17, 0x16, 0x05, 0x13, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x1b, 0x01, 0x23, 0x16, 0x03, 0x66, 0x02, 0x4a, 0x0d, 0x0e,
+ 0x64, 0x01, 0x71, 0xfe, 0x5a, 0x86, 0x43, 0x57, 0x60, 0xb3, 0x58, 0x59,
+ 0xbb, 0x60, 0x6f, 0x5a, 0x47, 0x99, 0x62, 0x1e, 0x19, 0x8d, 0x01, 0x0b,
+ 0xe3, 0x32, 0x2d, 0x3f, 0x99, 0x53, 0x34, 0x2a, 0x76, 0xfd, 0xf6, 0x79,
+ 0x12, 0x13, 0x8b, 0xa7, 0x0c, 0x51, 0x64, 0xbb, 0x0a, 0x02, 0x94, 0x97,
+ 0x5a, 0x10, 0x0d, 0xfe, 0xf2, 0x36, 0x5a, 0xfe, 0x97, 0x1c, 0x34, 0x34,
+ 0xae, 0x2a, 0x2c, 0x21, 0xc2, 0x01, 0x09, 0x17, 0x1d, 0x9c, 0x01, 0x0a,
+ 0x01, 0x13, 0x01, 0x43, 0x09, 0xac, 0xe0, 0x22, 0x32, 0x92, 0xc5, 0x01,
+ 0x4a, 0x02, 0xae, 0x9e, 0xfe, 0x63, 0x01, 0x0e, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xa0, 0xfe, 0x66, 0x02, 0x17, 0x05, 0xd5, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x36, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, 0x02, 0x17,
+ 0xac, 0xb9, 0xcc, 0x45, 0x38, 0x79, 0x63, 0xac, 0xac, 0xb6, 0xac, 0x02,
+ 0x77, 0xfd, 0xf1, 0xfe, 0xf2, 0xf4, 0xaa, 0x96, 0xc2, 0x02, 0x0f, 0xa6,
+ 0x02, 0xb8, 0xfd, 0x48, 0x00, 0x02, 0xff, 0xde, 0xfe, 0x56, 0x01, 0xe6,
+ 0x06, 0x14, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33,
+ 0x15, 0x23, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35,
+ 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x15, 0x23, 0xae, 0xa5, 0x93, 0x93,
+ 0x92, 0xa3, 0x3f, 0x2c, 0x5e, 0x45, 0xa3, 0xa3, 0xa5, 0xa5, 0x04, 0x60,
+ 0xfe, 0x08, 0xa4, 0xfe, 0x28, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0x01, 0xd8,
+ 0xa4, 0x03, 0xac, 0xe9, 0x00, 0x02, 0x00, 0x67, 0xfe, 0x66, 0x06, 0x05,
+ 0x05, 0xf1, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x01, 0x35, 0x33, 0x11,
+ 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x11, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x16, 0x01, 0x10, 0x12,
+ 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x04, 0x3b, 0xb0,
+ 0x63, 0x79, 0x3e, 0x45, 0xcd, 0xb8, 0x46, 0xd4, 0x95, 0xf2, 0xfe, 0xce,
+ 0x01, 0x32, 0xf2, 0x95, 0xd4, 0xfd, 0x2f, 0xd3, 0xb8, 0xb8, 0xd4, 0xd4,
+ 0xb8, 0xb8, 0xd3, 0x04, 0xed, 0xe8, 0xfa, 0x93, 0xc2, 0x96, 0xaa, 0xf4,
+ 0x01, 0x0e, 0x7f, 0x84, 0x80, 0x01, 0xab, 0x01, 0x5c, 0x01, 0x5c, 0x01,
+ 0xab, 0x80, 0xfd, 0x78, 0xfe, 0xe3, 0xfe, 0xbb, 0x01, 0x45, 0x01, 0x1d,
+ 0x01, 0x1d, 0x01, 0x45, 0xfe, 0xbb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0xba, 0x04, 0x7b, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x33, 0x11, 0x14, 0x16, 0x3b,
+ 0x01, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x04, 0xba, 0x3f, 0xa3, 0x93, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5,
+ 0xb7, 0x70, 0x9f, 0x34, 0xa6, 0x44, 0x5f, 0x2c, 0xfc, 0x57, 0x96, 0x83,
+ 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0xfe, 0x56, 0xc0, 0xd6, 0xbc, 0x64,
+ 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0x64, 0xaa,
+ 0xfb, 0x8c, 0x99, 0x61, 0x03, 0x3d, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7,
+ 0xe7, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x04, 0xcc,
+ 0x05, 0xd5, 0x00, 0x17, 0x00, 0x20, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x17,
+ 0x13, 0x23, 0x03, 0x2e, 0x01, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x03, 0x32, 0x3b, 0x6e, 0x38, 0xb9, 0xc4,
+ 0xac, 0x42, 0x7d, 0x6c, 0xc6, 0xb6, 0xac, 0xac, 0x01, 0x9a, 0xe7, 0xe2,
+ 0x75, 0xfd, 0xc8, 0xe4, 0x84, 0x86, 0x86, 0x84, 0x02, 0xbc, 0x16, 0x90,
+ 0x7e, 0xfe, 0x68, 0x01, 0x7f, 0x96, 0x62, 0xfd, 0x89, 0x02, 0x77, 0xa6,
+ 0x02, 0xb8, 0xd6, 0xd8, 0x8d, 0xba, 0x02, 0x4f, 0xfd, 0xee, 0x87, 0x83,
+ 0x83, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x00, 0x02, 0xf6,
+ 0x04, 0x7b, 0x00, 0x18, 0x00, 0x00, 0x01, 0x15, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x35, 0x33, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x1f,
+ 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x01, 0xe8, 0x9a, 0xa7, 0x9a,
+ 0x9a, 0xa7, 0x34, 0xa8, 0x77, 0x11, 0x2a, 0x19, 0x01, 0x1c, 0x42, 0x27,
+ 0x8d, 0x96, 0x02, 0x68, 0xa4, 0xfe, 0x3c, 0x01, 0xc4, 0xa4, 0x01, 0xf8,
+ 0xae, 0x66, 0x63, 0x05, 0x05, 0xbd, 0x12, 0x11, 0xce, 0xa1, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xf7, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x14, 0x00, 0x00, 0x03, 0x33, 0x17, 0x21, 0x37, 0x33, 0x07, 0x33,
+ 0x15, 0x23, 0x03, 0x11, 0x23, 0x11, 0x03, 0x23, 0x35, 0x33, 0x05, 0x21,
+ 0x17, 0x04, 0xc4, 0x88, 0x01, 0xd7, 0x87, 0xc4, 0x88, 0x8c, 0xf0, 0xf0,
+ 0xb6, 0xf0, 0xf1, 0x8d, 0x02, 0x38, 0xfe, 0xf0, 0x88, 0x05, 0xd5, 0xe0,
+ 0xe0, 0xe0, 0xa4, 0xfe, 0x76, 0xfd, 0x39, 0x02, 0xc7, 0x01, 0x8a, 0xa4,
+ 0xa4, 0xe2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0xfe, 0x56, 0x04, 0x3d,
+ 0x04, 0x60, 0x00, 0x18, 0x00, 0x1b, 0x00, 0x00, 0x05, 0x0e, 0x01, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x3f, 0x01, 0x03, 0x21, 0x35, 0x33, 0x03,
+ 0x33, 0x13, 0x21, 0x13, 0x33, 0x03, 0x33, 0x15, 0x21, 0x2b, 0x01, 0x13,
+ 0x02, 0x51, 0x46, 0x85, 0x70, 0x84, 0x61, 0x44, 0x4c, 0x2e, 0x1e, 0xb9,
+ 0xfe, 0xf4, 0xd8, 0xab, 0xaf, 0xa6, 0x01, 0x2b, 0xa5, 0xb0, 0xa7, 0xd7,
+ 0xfe, 0xf5, 0xad, 0xc5, 0x62, 0x68, 0xc8, 0x7a, 0x9a, 0x48, 0x86, 0x54,
+ 0x01, 0xf2, 0x8f, 0x01, 0xcd, 0xfe, 0x33, 0x01, 0xcd, 0xfe, 0x33, 0x8f,
+ 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xf0,
+ 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x25, 0x00, 0x00, 0x01, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x07, 0x11, 0x33, 0x15, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x01, 0xe7,
+ 0xc9, 0x9a, 0x74, 0x64, 0x89, 0xa7, 0xa5, 0xa5, 0x39, 0xa9, 0x7a, 0x9b,
+ 0xb7, 0xe4, 0xe2, 0xe8, 0x96, 0x88, 0x57, 0xa4, 0x4b, 0x5b, 0xab, 0x51,
+ 0xda, 0xd8, 0x02, 0x2b, 0x66, 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x4c,
+ 0x02, 0x7f, 0xaa, 0x66, 0x61, 0xc1, 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b,
+ 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0xfc, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0xeb, 0x04, 0x7b, 0x00, 0x10, 0x00, 0x1c, 0x00, 0x00,
+ 0x01, 0x35, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x16, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, 0x45, 0xa6, 0xa6, 0x34, 0x9f, 0x70,
+ 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0xfe, 0x00, 0x96, 0x83, 0x84, 0x97,
+ 0x97, 0x84, 0x83, 0x96, 0x03, 0xb6, 0xaa, 0xfb, 0xa0, 0xa8, 0x64, 0x61,
+ 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0xfe, 0x15, 0xcb,
+ 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0xe3, 0x04, 0x2d, 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x1c, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x27, 0x15, 0x23, 0x11, 0x33, 0x03, 0x81, 0x96, 0x83, 0x84, 0x97, 0x97,
+ 0x84, 0x83, 0x96, 0xfd, 0xcc, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7,
+ 0x70, 0x9f, 0x34, 0xa6, 0xa6, 0x02, 0x2f, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb,
+ 0xe7, 0xe7, 0x02, 0x52, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe, 0xf8,
+ 0xfe, 0xbc, 0x61, 0x64, 0xaa, 0x04, 0x60, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0xe3, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x0b, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x27, 0x15, 0x23, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06,
+ 0x15, 0x03, 0x81, 0x96, 0x83, 0x84, 0x96, 0x96, 0x84, 0x83, 0x96, 0xfd,
+ 0xcd, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x34, 0xa7,
+ 0xa1, 0x95, 0xe5, 0xd2, 0x51, 0x52, 0x02, 0x2f, 0xcb, 0xe7, 0xe7, 0xcb,
+ 0xcb, 0xe7, 0xe7, 0x02, 0x52, 0x64, 0x61, 0xfe, 0xbc, 0xfe, 0xf8, 0xfe,
+ 0xf8, 0xfe, 0xbc, 0x61, 0x64, 0xa8, 0x04, 0x7e, 0xc3, 0xd3, 0x9c, 0x7d,
+ 0x7d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90,
+ 0x04, 0x7b, 0x00, 0x19, 0x00, 0x00, 0x13, 0x3e, 0x01, 0x33, 0x32, 0x00,
+ 0x11, 0x10, 0x00, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x72, 0x46, 0x94, 0x54,
+ 0xe4, 0x01, 0x0c, 0xfe, 0xf1, 0xec, 0x4d, 0x91, 0x45, 0x46, 0x8e, 0x48,
+ 0xa1, 0xb2, 0xb2, 0xa1, 0x48, 0x8e, 0x46, 0x04, 0x33, 0x24, 0x24, 0xfe,
+ 0xc2, 0xfe, 0xf2, 0xfe, 0xee, 0xfe, 0xc6, 0x23, 0x23, 0xac, 0x2b, 0x2b,
+ 0xe3, 0xcd, 0xcd, 0xe3, 0x2b, 0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0x73, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x27, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x06, 0x15, 0x23, 0x34, 0x37, 0x26, 0x27, 0x26, 0x11, 0x10,
+ 0x00, 0x33, 0x32, 0x16, 0x01, 0x16, 0x33, 0x32, 0x35, 0x34, 0x23, 0x22,
+ 0x03, 0x83, 0x46, 0x8d, 0x48, 0xa2, 0xb2, 0x59, 0x06, 0x06, 0x23, 0x38,
+ 0x42, 0x5f, 0x92, 0x43, 0x39, 0x55, 0x4b, 0x8c, 0x48, 0x41, 0x06, 0x89,
+ 0x0a, 0x32, 0x2b, 0x86, 0x01, 0x0f, 0xeb, 0x4d, 0x92, 0xfe, 0xaf, 0x34,
+ 0x46, 0x83, 0x77, 0x5b, 0x04, 0x35, 0xac, 0x2b, 0x2b, 0xe3, 0xcd, 0xcd,
+ 0x72, 0x08, 0x06, 0x51, 0x2c, 0x33, 0x48, 0x3d, 0x59, 0x7d, 0x2f, 0x29,
+ 0x11, 0x39, 0x44, 0x68, 0x51, 0x23, 0x33, 0xa1, 0x01, 0x0c, 0x01, 0x12,
+ 0x01, 0x3a, 0x23, 0xfc, 0x3a, 0x13, 0x39, 0x4b, 0x00, 0x02, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0xba, 0x06, 0x14, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x11, 0x33, 0x11, 0x14, 0x16, 0x3b,
+ 0x01, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x04, 0xba, 0x3f, 0xa3, 0x93, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5,
+ 0xb7, 0x70, 0x9f, 0x34, 0xa6, 0x44, 0x5f, 0x2c, 0xfc, 0x57, 0x96, 0x83,
+ 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0xfe, 0x56, 0xc0, 0xd6, 0xbc, 0x64,
+ 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0x64, 0x02,
+ 0x5e, 0xf9, 0xd8, 0x99, 0x61, 0x03, 0x3d, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb,
+ 0xe7, 0xe7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x05, 0x27,
+ 0x06, 0x14, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x01, 0x35, 0x34, 0x36,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x01, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, 0x45, 0x93,
+ 0xa3, 0xab, 0x98, 0x5f, 0x44, 0xa6, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5,
+ 0xb7, 0x70, 0x9f, 0xfe, 0x00, 0x96, 0x83, 0x84, 0x97, 0x97, 0x84, 0x83,
+ 0x96, 0x03, 0xb6, 0xc8, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0xfb, 0x82, 0xa8,
+ 0x64, 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61, 0xfe,
+ 0x15, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x00, 0x19, 0x00, 0x22, 0x00, 0x00,
+ 0x13, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x21, 0x37, 0x05, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x66,
+ 0x76, 0x76, 0xcc, 0xe3, 0x85, 0x86, 0x8d, 0x8d, 0xf1, 0x60, 0xbb, 0x5a,
+ 0x59, 0x5a, 0x59, 0x5f, 0xa5, 0x5c, 0x5c, 0x0b, 0xfd, 0x07, 0xa5, 0x02,
+ 0x4f, 0x0d, 0x54, 0x52, 0x8b, 0x7a, 0x4a, 0x4b, 0x02, 0x5e, 0xfa, 0x92,
+ 0x91, 0xa1, 0xa2, 0xfe, 0xed, 0xfe, 0xf6, 0x9c, 0x9c, 0x2c, 0x2a, 0xae,
+ 0x34, 0x1a, 0x1a, 0x63, 0x64, 0xbe, 0x90, 0x01, 0x9e, 0x57, 0x57, 0x5a,
+ 0x5a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c,
+ 0x04, 0x7b, 0x00, 0x14, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x35, 0x21, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x00, 0x11,
+ 0x10, 0x00, 0x23, 0x22, 0x02, 0x37, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37,
+ 0x66, 0x02, 0xf9, 0x0b, 0xb8, 0xa5, 0x5f, 0xb3, 0x59, 0x5a, 0xbb, 0x60,
+ 0xf1, 0x01, 0x1a, 0xfe, 0xf5, 0xe3, 0xcc, 0xec, 0xa5, 0x02, 0x95, 0x7a,
+ 0x8b, 0xa6, 0x0d, 0x02, 0x00, 0x5a, 0xbe, 0xc7, 0x34, 0x34, 0xae, 0x2a,
+ 0x2c, 0xfe, 0xc8, 0xfe, 0xf6, 0xfe, 0xed, 0xfe, 0xbd, 0x01, 0x23, 0xc4,
+ 0x97, 0xb4, 0xae, 0x9e, 0x00, 0x02, 0x00, 0x6f, 0xff, 0xe3, 0x05, 0xde,
+ 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x34, 0x00, 0x00, 0x25, 0x36, 0x27, 0x36,
+ 0x27, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x01, 0x16, 0x15, 0x10, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x26, 0x27, 0x26, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x37,
+ 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26,
+ 0x35, 0x02, 0xf9, 0x5c, 0x02, 0x01, 0x09, 0xfd, 0xd5, 0x1b, 0x1d, 0x4a,
+ 0x7a, 0x97, 0x01, 0x3d, 0x1c, 0x86, 0x85, 0xe3, 0xcd, 0x75, 0x54, 0x18,
+ 0x02, 0xb1, 0x11, 0x18, 0x44, 0xbd, 0x61, 0x57, 0x5a, 0x59, 0x5a, 0xbb,
+ 0x60, 0xf1, 0x8d, 0x20, 0x18, 0xb7, 0xa6, 0x22, 0x22, 0x5e, 0x27, 0x39,
+ 0x9d, 0x4f, 0x4a, 0xd6, 0x8a, 0xcf, 0x3e, 0x38, 0xfe, 0x9c, 0x45, 0x23,
+ 0x5a, 0x02, 0x90, 0x60, 0x76, 0xfe, 0xed, 0xa2, 0xa1, 0x91, 0x67, 0x9c,
+ 0x01, 0xbb, 0x27, 0x23, 0x64, 0x01, 0x01, 0x19, 0x1a, 0x34, 0xae, 0x2a,
+ 0x2c, 0x9c, 0x23, 0x29, 0x75, 0x94, 0x99, 0x31, 0x30, 0x9c, 0x60, 0x5a,
+ 0xc8, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77, 0xff, 0xe3, 0x03, 0x68,
+ 0x04, 0x7c, 0x12, 0x06, 0x03, 0x49, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x04, 0x7c, 0x12, 0x06, 0x03, 0xcb, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x77, 0xff, 0xe3, 0x05, 0x8d, 0x04, 0x7c, 0x00, 0x3e,
+ 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x37, 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x05, 0x06, 0x02, 0x7b, 0x70, 0x7c, 0xe8, 0xd6, 0x48,
+ 0x4d, 0x4b, 0x51, 0x40, 0x4c, 0x4d, 0x53, 0x88, 0x4d, 0x4b, 0x46, 0x41,
+ 0x7b, 0x85, 0x8b, 0x69, 0x3c, 0x3d, 0x3f, 0x3e, 0x6b, 0x40, 0x49, 0x48,
+ 0x57, 0x58, 0x99, 0x45, 0xb0, 0x66, 0x55, 0x0e, 0xd4, 0xa6, 0x22, 0x22,
+ 0x5f, 0x26, 0x39, 0x9d, 0x4f, 0x4a, 0xfe, 0xfd, 0x3a, 0x02, 0x5c, 0x18,
+ 0x92, 0x6c, 0xad, 0xb6, 0x0e, 0x0e, 0x1c, 0xab, 0x25, 0x13, 0x12, 0x38,
+ 0x38, 0x5a, 0x58, 0x38, 0x33, 0x98, 0x2c, 0x2d, 0x46, 0x40, 0x2e, 0x2e,
+ 0x0d, 0x0d, 0x1d, 0xa7, 0x18, 0x18, 0x4e, 0x42, 0x6a, 0x86, 0x94, 0x99,
+ 0x31, 0x30, 0x9c, 0x60, 0x5a, 0xc8, 0xa6, 0x46, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x4b, 0x04, 0x7c, 0x00, 0x1a, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x20, 0x00, 0x11, 0x10, 0x37, 0x36,
+ 0x02, 0xa6, 0xe2, 0x57, 0x59, 0x59, 0x5e, 0xbd, 0x88, 0x4c, 0x4c, 0x46,
+ 0x41, 0x7b, 0x86, 0x8c, 0x68, 0x3d, 0x3d, 0x3f, 0x3e, 0x5e, 0xb1, 0x65,
+ 0x67, 0x36, 0x36, 0x65, 0x70, 0x7c, 0xe8, 0xd7, 0xfe, 0xe6, 0xfe, 0xf4,
+ 0x87, 0x88, 0x03, 0xdc, 0x6e, 0x72, 0xcd, 0xd0, 0x6f, 0x74, 0x38, 0x38,
+ 0x5a, 0x58, 0x38, 0x33, 0x98, 0x2c, 0x2d, 0x46, 0x40, 0x2e, 0x2e, 0xa0,
+ 0x4e, 0x4f, 0x8d, 0x5d, 0x40, 0x41, 0x18, 0x18, 0x92, 0x6c, 0xad, 0xb6,
+ 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12, 0x9d, 0x9e, 0x00, 0x01, 0xff, 0xde,
+ 0xfe, 0x56, 0x01, 0xe6, 0x04, 0x60, 0x00, 0x13, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x33, 0x15, 0x23, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x36, 0x35, 0x11, 0x23, 0x35, 0x33, 0xae, 0xa5, 0x93, 0x93, 0x92, 0xa3,
+ 0x3f, 0x2c, 0x5e, 0x45, 0xa3, 0xa3, 0x04, 0x60, 0xfe, 0x08, 0xa4, 0xfe,
+ 0x28, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0x01, 0xd8, 0xa4, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x05, 0x26, 0x06, 0x14, 0x00, 0x0b,
+ 0x00, 0x30, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x17, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x02,
+ 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x34, 0x36, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x06, 0x15, 0x03, 0x45, 0x95, 0x86, 0x85, 0x94, 0x94,
+ 0x85, 0x86, 0x95, 0xa6, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e, 0x4a,
+ 0xa3, 0xa2, 0x33, 0xa0, 0x70, 0xba, 0xe2, 0xe2, 0xba, 0x70, 0xa0, 0x33,
+ 0x93, 0xa3, 0xab, 0x98, 0x5f, 0x44, 0x02, 0x3d, 0xc8, 0xdc, 0xdc, 0xc8,
+ 0xc7, 0xdc, 0xdc, 0xeb, 0xfe, 0xe2, 0xfe, 0xe9, 0x1d, 0x1e, 0xb3, 0x2c,
+ 0x2a, 0xbd, 0xbf, 0x5b, 0x63, 0x62, 0x01, 0x3a, 0x01, 0x03, 0x01, 0x04,
+ 0x01, 0x3a, 0x62, 0x63, 0xc8, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb, 0x04, 0x60, 0x00, 0x0a,
+ 0x00, 0x23, 0x00, 0x00, 0x01, 0x11, 0x21, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x17, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e,
+ 0x01, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x11,
+ 0x34, 0x12, 0x33, 0x21, 0x03, 0x45, 0xfe, 0xcc, 0x79, 0x87, 0x94, 0x85,
+ 0x86, 0x95, 0xa6, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e, 0x4a, 0xa3,
+ 0xa2, 0x33, 0xa0, 0x70, 0xba, 0xe2, 0xe2, 0xba, 0x01, 0xe9, 0x02, 0x3d,
+ 0x01, 0x88, 0xcd, 0xbb, 0xc7, 0xdc, 0xdc, 0xeb, 0xfe, 0xe2, 0xfe, 0xe9,
+ 0x1d, 0x1e, 0xb3, 0x2c, 0x2a, 0xbd, 0xbf, 0x5b, 0x63, 0x62, 0x01, 0x3a,
+ 0x01, 0x03, 0xf9, 0x01, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0xe1, 0x04, 0x7b, 0x00, 0x1d, 0x00, 0x00, 0x25, 0x11,
+ 0x23, 0x35, 0x21, 0x11, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00,
+ 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x03, 0x4b, 0x8b, 0x01, 0x21, 0x5b, 0xc2, 0x6e,
+ 0xe4, 0xfe, 0xf4, 0x01, 0x0f, 0xeb, 0x5e, 0xb1, 0x54, 0x55, 0xad, 0x59,
+ 0xa2, 0xb2, 0xb2, 0xa2, 0x47, 0x6f, 0x9e, 0x01, 0x11, 0x8c, 0xfd, 0xf0,
+ 0x24, 0x24, 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12, 0x01, 0x3a, 0x37, 0x37,
+ 0xaa, 0x3e, 0x3e, 0xe3, 0xcd, 0xcd, 0xe3, 0x0f, 0x00, 0x02, 0x00, 0x56,
+ 0xfe, 0x52, 0x03, 0xf4, 0x04, 0x60, 0x00, 0x13, 0x00, 0x23, 0x00, 0x00,
+ 0x09, 0x01, 0x33, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x33, 0x01, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x02, 0x25, 0x01, 0x22, 0xad, 0xfe, 0x88, 0x5f, 0x23, 0x35, 0x87, 0x87,
+ 0x87, 0x87, 0x35, 0x23, 0x5f, 0xfe, 0x88, 0xad, 0x01, 0x22, 0x3c, 0x1c,
+ 0x19, 0x19, 0x24, 0x34, 0x34, 0x24, 0x19, 0x19, 0x1c, 0x01, 0xe8, 0x02,
+ 0x78, 0xfc, 0xdc, 0xb1, 0x53, 0x80, 0x63, 0x81, 0x82, 0x82, 0x81, 0x63,
+ 0x80, 0x53, 0xb1, 0x03, 0x24, 0xfa, 0x8e, 0x1b, 0x18, 0x2d, 0x45, 0x49,
+ 0x64, 0x63, 0x63, 0x64, 0x49, 0x45, 0x2d, 0x18, 0x1b, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x56, 0xff, 0xe3, 0x03, 0xf4, 0x04, 0x60, 0x00, 0x13,
+ 0x00, 0x23, 0x00, 0x00, 0x09, 0x01, 0x33, 0x01, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x33,
+ 0x01, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x02, 0x25, 0x01, 0x0b, 0xc4, 0xfe, 0x99, 0x41,
+ 0x27, 0x3e, 0x87, 0x87, 0x87, 0x87, 0x3e, 0x27, 0x41, 0xfe, 0x99, 0xc4,
+ 0x01, 0x0b, 0x3c, 0x1c, 0x19, 0x23, 0x1c, 0x32, 0x32, 0x1c, 0x23, 0x19,
+ 0x1c, 0x02, 0xd1, 0x01, 0x8f, 0xfd, 0xea, 0x62, 0x4c, 0x78, 0x3e, 0x82,
+ 0x81, 0x81, 0x82, 0x3e, 0x78, 0x4c, 0x62, 0x02, 0x16, 0xfc, 0x1f, 0x1b,
+ 0x18, 0x2d, 0x21, 0x40, 0x32, 0x46, 0x46, 0x32, 0x40, 0x21, 0x2d, 0x18,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9c, 0xfe, 0x56, 0x03, 0xe9,
+ 0x04, 0x60, 0x00, 0x13, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x11, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x9d, 0xa5, 0x70, 0x6f, 0x87, 0x9b, 0xa6, 0xa6, 0x3c, 0x9f,
+ 0x6a, 0xad, 0xb4, 0x01, 0xba, 0x02, 0xa6, 0xfd, 0x61, 0x9f, 0x9f, 0xbe,
+ 0xa4, 0x02, 0x7b, 0xf9, 0xf6, 0x02, 0x56, 0x66, 0x63, 0xf0, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xf4, 0x06, 0x14, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x03, 0xf4, 0xa6, 0x70, 0x6f, 0x86,
+ 0x9b, 0xa7, 0x93, 0xa3, 0xe5, 0xd0, 0x5f, 0x45, 0x3b, 0xa1, 0x6a, 0xad,
+ 0xb3, 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd,
+ 0x87, 0x04, 0x7e, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0xcc, 0x65, 0x64, 0xef,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x14, 0x00, 0x21,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36,
+ 0x35, 0x11, 0x10, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x36,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x36, 0x33, 0x32, 0x16,
+ 0x03, 0xf4, 0x93, 0xa3, 0xe5, 0xd2, 0x5f, 0x44, 0xdf, 0x86, 0x9b, 0xa7,
+ 0x93, 0xa3, 0xe5, 0xd0, 0x5f, 0x45, 0x76, 0xd0, 0xad, 0xb3, 0x02, 0xa4,
+ 0xfd, 0x48, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0x02, 0xb2, 0x01, 0x3d, 0xbe,
+ 0xa4, 0xfd, 0x87, 0x04, 0x7e, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0xcc, 0xc9,
+ 0xef, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x01, 0xe8,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33,
+ 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x15, 0x23,
+ 0xaf, 0xa5, 0x94, 0x94, 0xa5, 0xa2, 0xa2, 0xa5, 0xa5, 0x04, 0x60, 0xfe,
+ 0x08, 0xa4, 0xfe, 0x3c, 0x01, 0xc4, 0xa4, 0x03, 0xac, 0xe9, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x95, 0x00, 0x00, 0x02, 0x30, 0x04, 0x60, 0x10, 0x06,
+ 0x03, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x00, 0x02, 0x44,
+ 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x35, 0x21, 0x15, 0x23, 0x11,
+ 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x68, 0x01, 0xdc, 0x98, 0x98, 0xfe,
+ 0x24, 0x9f, 0x03, 0xbc, 0xa4, 0xa4, 0xfc, 0xe8, 0xa4, 0xa4, 0x03, 0x18,
+ 0x00, 0x01, 0x00, 0x43, 0x00, 0x00, 0x02, 0x96, 0x06, 0x14, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x11, 0x23, 0x11, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x01, 0x1d, 0xa6, 0x01, 0x02, 0x0f, 0x0c, 0x22, 0x10, 0x10,
+ 0x02, 0x71, 0x02, 0x2e, 0x2e, 0x52, 0x12, 0x11, 0xa6, 0x05, 0x05, 0x0f,
+ 0x0c, 0x22, 0x10, 0x10, 0x02, 0x70, 0x01, 0x2e, 0x2e, 0x52, 0x16, 0x14,
+ 0x06, 0x14, 0xfc, 0xed, 0x01, 0x01, 0x09, 0x25, 0x24, 0x52, 0x87, 0x49,
+ 0x4a, 0x04, 0xfd, 0x85, 0x03, 0x02, 0x04, 0x03, 0x09, 0x25, 0x24, 0x52,
+ 0x87, 0x49, 0x4a, 0x06, 0x00, 0x02, 0x00, 0x45, 0x00, 0x00, 0x02, 0xff,
+ 0x06, 0x14, 0x00, 0x11, 0x00, 0x18, 0x00, 0x00, 0x01, 0x33, 0x11, 0x33,
+ 0x15, 0x23, 0x11, 0x23, 0x11, 0x34, 0x27, 0x23, 0x22, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x14, 0x33, 0x01, 0x78, 0xa6,
+ 0xe1, 0xe1, 0xa6, 0x01, 0x37, 0xfc, 0x01, 0x01, 0xdd, 0x30, 0x25, 0x0e,
+ 0x15, 0x31, 0x46, 0x01, 0x53, 0x06, 0x14, 0xfc, 0xfe, 0xa0, 0xfd, 0x8e,
+ 0x02, 0x54, 0x0f, 0x0f, 0xbd, 0xf6, 0x19, 0xfa, 0x84, 0x4b, 0x39, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x02, 0x23, 0x06, 0x14, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x35, 0x11, 0x01, 0x53, 0x37, 0x6c, 0x2c, 0x3f, 0xac, 0x89, 0x06, 0x14,
+ 0xf9, 0xce, 0x7c, 0x74, 0x9c, 0xcc, 0xca, 0x06, 0x28, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0x4c, 0x04, 0xb1, 0x06, 0x14, 0x00, 0x24,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x04, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x21, 0x15, 0x02, 0xf0, 0x5e, 0x74, 0x59, 0x4d, 0x49, 0xfe, 0xee,
+ 0xfc, 0x55, 0x59, 0x5a, 0x5f, 0x4c, 0xb4, 0x62, 0xaa, 0x5a, 0x5a, 0x53,
+ 0x52, 0x96, 0x9d, 0x01, 0x83, 0xfd, 0xac, 0xa5, 0xa5, 0x03, 0x0e, 0x01,
+ 0xdc, 0x38, 0x2b, 0x6c, 0x68, 0x8a, 0xdd, 0xf2, 0x12, 0x13, 0x25, 0xc3,
+ 0x31, 0x32, 0x4b, 0x4b, 0x8f, 0x84, 0x4b, 0x4a, 0xa6, 0x01, 0xf3, 0xfc,
+ 0x33, 0x06, 0x14, 0xfe, 0x4c, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0xe6, 0x06, 0x67, 0x04, 0x62, 0x00, 0x26, 0x00, 0x00, 0x25, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x03, 0x50, 0x3d, 0x58, 0x56, 0x75, 0x9e, 0xab, 0xa7, 0x66, 0x6a,
+ 0x80, 0x4b, 0x4b, 0xa6, 0x67, 0x6b, 0x7f, 0x95, 0xa7, 0xa7, 0x37, 0x51,
+ 0x4f, 0x6d, 0x6d, 0x4e, 0x4c, 0xd8, 0x79, 0x3d, 0x3c, 0xf6, 0xe2, 0x02,
+ 0xa4, 0xfd, 0x62, 0xa2, 0x9c, 0x60, 0x5e, 0xa4, 0x02, 0x7a, 0xfd, 0x62,
+ 0xa2, 0x9c, 0xc0, 0xa2, 0x02, 0x7a, 0xfb, 0x9e, 0xb0, 0x65, 0x33, 0x32,
+ 0x3e, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x06, 0x67,
+ 0x04, 0x62, 0x00, 0x26, 0x00, 0x00, 0x25, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x23, 0x11, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x03, 0x50, 0x3d,
+ 0x58, 0x56, 0x75, 0x9e, 0xab, 0xa7, 0x66, 0x6a, 0x80, 0x4b, 0x4b, 0xa6,
+ 0x67, 0x6b, 0x7f, 0x95, 0xa7, 0xa7, 0x37, 0x51, 0x4f, 0x6d, 0x6d, 0x4e,
+ 0x4c, 0xd8, 0x79, 0x3d, 0x3c, 0xf6, 0xe2, 0x02, 0xa4, 0xfd, 0x62, 0xa2,
+ 0x9c, 0x60, 0x5e, 0xa4, 0x02, 0x7a, 0xfd, 0x62, 0xa2, 0x9c, 0xc0, 0xa2,
+ 0x02, 0x7a, 0xf9, 0xf4, 0x02, 0x5a, 0x65, 0x33, 0x32, 0x3e, 0x3e, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x06, 0x67, 0x04, 0x7b, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x14,
+ 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x03, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x03, 0xbe, 0x3f, 0xac, 0x75, 0x9e, 0x55, 0x56, 0x4a,
+ 0x49, 0xa3, 0xe4, 0xd1, 0x5f, 0x22, 0x22, 0x01, 0x66, 0x6a, 0x80, 0x96,
+ 0xa6, 0x33, 0x34, 0x6b, 0x7f, 0x4a, 0x4b, 0xa7, 0xa7, 0x39, 0x9e, 0x6d,
+ 0x6e, 0x4c, 0x4e, 0x03, 0x89, 0x7c, 0x76, 0x7b, 0x7a, 0xe2, 0xfd, 0x48,
+ 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x31, 0x99, 0x02, 0xb2, 0xa1, 0x9c, 0xbe,
+ 0xa4, 0xfd, 0x87, 0x02, 0x9e, 0xa2, 0x4e, 0x4d, 0x5f, 0x60, 0xa3, 0xfd,
+ 0x87, 0x04, 0x60, 0xae, 0x67, 0x62, 0x3e, 0x3e, 0x00, 0x01, 0xff, 0xde,
+ 0xfe, 0x56, 0x03, 0xfa, 0x04, 0x7b, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x14, 0x06, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x03, 0xfa, 0xa6, 0x6f, 0x70, 0x86, 0x9c, 0x92, 0xa3, 0x3f,
+ 0x2c, 0x5e, 0x45, 0xa6, 0x3c, 0xa1, 0x69, 0xae, 0xb2, 0x02, 0xa4, 0xfd,
+ 0x5c, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x73, 0xd6, 0xc0, 0x9c,
+ 0x61, 0x99, 0x04, 0x74, 0xae, 0x65, 0x64, 0xef, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0xc3, 0x04, 0x7b, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x26,
+ 0x35, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33,
+ 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x14, 0x17, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x03, 0x98, 0x4a, 0x70, 0x6f, 0x86, 0x9b, 0xa7,
+ 0xa7, 0x3b, 0xa1, 0x6a, 0xad, 0xb3, 0x22, 0x22, 0x5e, 0x2d, 0x3f, 0xa3,
+ 0xfe, 0xb6, 0x60, 0xd6, 0x02, 0xb2, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87,
+ 0x04, 0x60, 0xae, 0x65, 0x64, 0xef, 0xe8, 0xfd, 0x48, 0x99, 0x31, 0x30,
+ 0x9c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa1, 0x00, 0x00, 0x03, 0xf4,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33, 0x01, 0x11, 0x33, 0x11,
+ 0x23, 0x01, 0x11, 0x23, 0xa1, 0xf5, 0x01, 0xad, 0xb1, 0xf5, 0xfe, 0x53,
+ 0xb1, 0x04, 0x60, 0xfc, 0x79, 0x03, 0x87, 0xfb, 0xa0, 0x03, 0x6c, 0xfc,
+ 0x94, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x04, 0x7b, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x00, 0x01, 0x22,
+ 0x06, 0x07, 0x21, 0x2e, 0x01, 0x03, 0x32, 0x36, 0x35, 0x21, 0x14, 0x16,
+ 0x13, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12,
+ 0x02, 0x32, 0x84, 0x86, 0x10, 0x02, 0x35, 0x10, 0x86, 0x84, 0x87, 0x97,
+ 0xfd, 0xc5, 0x97, 0x87, 0xd8, 0xf7, 0xf7, 0xd8, 0xd9, 0xf5, 0xf5, 0x03,
+ 0xdf, 0xc1, 0x7f, 0x7f, 0xc1, 0xfc, 0xa0, 0xe8, 0x94, 0x94, 0xe8, 0x03,
+ 0xfc, 0xfe, 0xc8, 0xfe, 0xec, 0xfe, 0xed, 0xfe, 0xc7, 0x01, 0x39, 0x01,
+ 0x13, 0x01, 0x14, 0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0x00, 0x00, 0x05, 0x87, 0x04, 0x60, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x20,
+ 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x21, 0x17, 0x23, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x05, 0x7a, 0xfe, 0x0c, 0x01, 0xe0,
+ 0xfe, 0x20, 0x02, 0x01, 0xfd, 0x31, 0xfe, 0xdb, 0x96, 0x97, 0x97, 0x96,
+ 0x01, 0x25, 0x26, 0x22, 0xd8, 0x6c, 0x6c, 0x6c, 0x6c, 0xd8, 0x22, 0x04,
+ 0x60, 0x9a, 0xfe, 0xdd, 0x9b, 0xfe, 0x94, 0x9c, 0x8e, 0x8f, 0x01, 0x14,
+ 0x01, 0x12, 0x8e, 0x8f, 0x82, 0x6c, 0x6b, 0xd8, 0xd9, 0x6c, 0x6d, 0x00,
+ 0x00, 0x02, 0x00, 0x85, 0xff, 0xdc, 0x04, 0xb8, 0x04, 0x7c, 0x00, 0x13,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x15, 0x14, 0x16, 0x32, 0x37, 0x36, 0x35,
+ 0x10, 0x02, 0x20, 0x02, 0x11, 0x14, 0x17, 0x16, 0x32, 0x36, 0x3d, 0x01,
+ 0x05, 0x10, 0x00, 0x20, 0x00, 0x11, 0x14, 0x06, 0x07, 0x06, 0x22, 0x26,
+ 0x27, 0x0e, 0x01, 0x22, 0x26, 0x02, 0xf4, 0x56, 0x61, 0x22, 0x42, 0xbc,
+ 0xfe, 0x97, 0xb6, 0x42, 0x22, 0x60, 0x56, 0xfe, 0x37, 0x01, 0x22, 0x01,
+ 0xec, 0x01, 0x25, 0x34, 0x2a, 0x57, 0xc2, 0x91, 0x0b, 0x10, 0x8e, 0xc0,
+ 0xc2, 0x02, 0x94, 0xc4, 0xa3, 0xb5, 0x30, 0x5b, 0x9d, 0x01, 0x0f, 0x01,
+ 0x31, 0xfe, 0xd0, 0xfe, 0xf0, 0x9d, 0x5b, 0x30, 0xb5, 0xa3, 0xc4, 0xc8,
+ 0x01, 0x54, 0x01, 0x5c, 0xfe, 0xa4, 0xfe, 0x80, 0x6c, 0xb2, 0x36, 0x70,
+ 0xa3, 0x75, 0x79, 0x9f, 0xed, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x64,
+ 0xfe, 0x56, 0x04, 0x56, 0x06, 0x14, 0x12, 0x06, 0x03, 0x69, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0xe5, 0x02, 0x4f, 0x04, 0x60, 0x00, 0x0e,
+ 0x00, 0x00, 0x25, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x11, 0x33, 0x11, 0x23, 0x01, 0xa8, 0x67, 0xec, 0x22, 0x32, 0x01,
+ 0x36, 0x4f, 0x8d, 0x96, 0xa6, 0xa6, 0xae, 0xc9, 0x0a, 0xbd, 0x23, 0xcb,
+ 0xbe, 0x02, 0x4e, 0xfb, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0xff, 0xe5, 0x02, 0x4f, 0x06, 0x0a, 0x00, 0x0e, 0x00, 0x00, 0x25, 0x06,
+ 0x23, 0x22, 0x2f, 0x01, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x23, 0x01, 0xa8, 0x67, 0xec, 0x22, 0x32, 0x01, 0x36, 0x4f, 0x8f, 0x94,
+ 0xa6, 0xa6, 0xae, 0xc9, 0x0a, 0xbd, 0x23, 0xce, 0xbb, 0x03, 0xf8, 0xf9,
+ 0xf6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xfe, 0x56, 0x03, 0x1e,
+ 0x04, 0x60, 0x00, 0x16, 0x00, 0x00, 0x25, 0x06, 0x23, 0x22, 0x2f, 0x01,
+ 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x26, 0x35, 0x01, 0xa8, 0x67, 0xec, 0x22, 0x32, 0x01,
+ 0x36, 0x4f, 0x8d, 0x96, 0xa6, 0x45, 0x5e, 0x2c, 0x3f, 0xa2, 0x93, 0xae,
+ 0xc9, 0x0a, 0xbd, 0x23, 0xcb, 0xbe, 0x02, 0x4e, 0xfb, 0x8c, 0x99, 0x61,
+ 0x9c, 0xc0, 0xd6, 0x00, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x58, 0x02, 0xf6,
+ 0x04, 0x7b, 0x00, 0x11, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x02, 0xf6, 0x1c, 0x42, 0x27, 0x8d, 0x96, 0xa7, 0xa7, 0x34, 0xa8, 0x77,
+ 0x11, 0x2a, 0x19, 0x03, 0xb4, 0x12, 0x11, 0xcb, 0xbe, 0xfc, 0x0a, 0x06,
+ 0x08, 0xae, 0x66, 0x63, 0x05, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0x56, 0x02, 0xf6, 0x04, 0x7b, 0x00, 0x19, 0x00, 0x00, 0x01, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x15, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x26, 0x35, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x02, 0xf6, 0x1c, 0x42, 0x27, 0x8e, 0x96, 0x44, 0x5f, 0xd2, 0xe5, 0xa3,
+ 0x93, 0xa7, 0x34, 0xa8, 0x77, 0x11, 0x2a, 0x19, 0x03, 0xb4, 0x12, 0x11,
+ 0xcb, 0xbe, 0xfd, 0x9e, 0x99, 0x61, 0x9c, 0xc0, 0xd6, 0x04, 0x74, 0xae,
+ 0x66, 0x63, 0x05, 0x05, 0x00, 0x01, 0x00, 0x76, 0x00, 0x00, 0x03, 0x25,
+ 0x04, 0x7b, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x15, 0x21, 0x35,
+ 0x33, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x01, 0xb0,
+ 0x94, 0xfe, 0x33, 0x93, 0x93, 0xa3, 0xe5, 0xd2, 0x5f, 0x44, 0x02, 0xe5,
+ 0xfd, 0xbf, 0xa4, 0xa4, 0x02, 0x41, 0xd6, 0xc0, 0x9c, 0x61, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x68, 0x00, 0x00, 0x03, 0x25, 0x04, 0x7b, 0x00, 0x0f,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x34, 0x26,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x16, 0x02, 0x83, 0xa2, 0xfe, 0x24, 0x94,
+ 0x44, 0x5f, 0xd2, 0xe5, 0xa3, 0x93, 0x02, 0xe5, 0xfd, 0xbf, 0xa4, 0xa4,
+ 0x02, 0x41, 0x99, 0x61, 0x9c, 0xc0, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x22, 0x04, 0x60, 0x00, 0x13, 0x00, 0x1c, 0x00, 0x00,
+ 0x01, 0x1e, 0x01, 0x17, 0x13, 0x23, 0x03, 0x2e, 0x01, 0x2b, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x02, 0xc5, 0x2b, 0x68, 0x2d, 0x9d, 0xb0,
+ 0x92, 0x42, 0x6f, 0x49, 0x98, 0xa7, 0x01, 0x5e, 0xc4, 0xc0, 0x64, 0xfe,
+ 0x29, 0xb2, 0x6b, 0x73, 0x6a, 0x74, 0x02, 0x0d, 0x0a, 0x74, 0x5d, 0xfe,
+ 0xce, 0x01, 0x1f, 0x80, 0x3a, 0xfe, 0x27, 0x04, 0x60, 0x9e, 0xa5, 0x69,
+ 0x8c, 0x01, 0x9d, 0xfe, 0xaf, 0x56, 0x4e, 0x4d, 0x60, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x22, 0x04, 0x60, 0x00, 0x13,
+ 0x00, 0x1c, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33, 0x32, 0x36, 0x37, 0x13,
+ 0x33, 0x03, 0x0e, 0x01, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21,
+ 0x13, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0xa7, 0xa7, 0x98,
+ 0x49, 0x6f, 0x42, 0x92, 0xb0, 0x9d, 0x2d, 0x68, 0x2b, 0x60, 0x64, 0xc0,
+ 0xc4, 0xfe, 0xa2, 0xa7, 0xb2, 0x74, 0x6a, 0x73, 0x6b, 0x04, 0x60, 0xfe,
+ 0x27, 0x3a, 0x80, 0x01, 0x1f, 0xfe, 0xce, 0x5d, 0x74, 0x0a, 0x1b, 0x8c,
+ 0x69, 0xa5, 0x9e, 0x01, 0xec, 0xfe, 0xaf, 0x60, 0x4d, 0x4e, 0x56, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0xfe, 0x56, 0x03, 0x67, 0x04, 0x7b, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x1f, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x15,
+ 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x33, 0x32, 0x16, 0x03, 0x30, 0x46, 0x97, 0x51, 0x7b, 0x7c, 0x59, 0x85,
+ 0x38, 0xb1, 0x94, 0xde, 0xc2, 0x5b, 0x4f, 0x12, 0x44, 0x5e, 0xd2, 0xe4,
+ 0xa3, 0x93, 0xb7, 0xae, 0x75, 0x7e, 0x5b, 0x9a, 0x39, 0x9a, 0x89, 0xca,
+ 0xb9, 0x5c, 0xa2, 0x04, 0x3f, 0xae, 0x28, 0x28, 0x54, 0x54, 0x40, 0x49,
+ 0x21, 0x0e, 0x2a, 0x99, 0x89, 0x9c, 0xb6, 0x11, 0x04, 0x0c, 0x99, 0x61,
+ 0x9c, 0xc0, 0xd6, 0xfb, 0x6a, 0x59, 0x51, 0x4b, 0x50, 0x25, 0x0f, 0x24,
+ 0x95, 0x82, 0x9e, 0xac, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xdc,
+ 0xfe, 0x56, 0x02, 0x8f, 0x06, 0x14, 0x00, 0x13, 0x00, 0x00, 0x17, 0x11,
+ 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15, 0x11, 0x14, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0xab, 0x9d, 0xaa, 0x9c, 0x9e, 0x59,
+ 0x45, 0x93, 0xa3, 0x3f, 0x2c, 0x5f, 0x43, 0x14, 0x04, 0xc2, 0xbb, 0xab,
+ 0x99, 0x50, 0x68, 0xfb, 0x29, 0xd6, 0xc0, 0x9c, 0x61, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xdc, 0xfe, 0x56, 0x02, 0x8f, 0x06, 0x14, 0x00, 0x20,
+ 0x00, 0x00, 0x13, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x15, 0x33, 0x15, 0x23, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x23, 0x35, 0xab,
+ 0x9d, 0xaa, 0x9c, 0x9e, 0x59, 0x45, 0x92, 0x92, 0x93, 0xa3, 0x3f, 0x2c,
+ 0x5f, 0x43, 0xa2, 0xa2, 0x9e, 0x04, 0x60, 0x4e, 0xbb, 0xab, 0x99, 0x50,
+ 0x68, 0xfd, 0xa8, 0x03, 0xa4, 0xfe, 0x28, 0xd6, 0xc0, 0x9c, 0x61, 0x99,
+ 0x01, 0xd8, 0xa4, 0x01, 0x69, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31,
+ 0xfe, 0x56, 0x02, 0xe3, 0x04, 0x65, 0x00, 0x13, 0x00, 0x00, 0x05, 0x11,
+ 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x16, 0x15, 0x11, 0x14, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x01, 0x6e, 0x45, 0x59, 0x9e, 0x9c,
+ 0xaa, 0x9d, 0x43, 0x5f, 0x2c, 0x3f, 0xa3, 0x93, 0x14, 0x03, 0x28, 0x68,
+ 0x50, 0x99, 0xab, 0xbb, 0xfc, 0xed, 0x99, 0x61, 0x9c, 0xc0, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0x0d, 0xfe, 0x56, 0x02, 0x8f, 0x06, 0x14, 0x00, 0x16,
+ 0x00, 0x1f, 0x00, 0x00, 0x21, 0x33, 0x15, 0x23, 0x06, 0x07, 0x06, 0x23,
+ 0x20, 0x35, 0x34, 0x3b, 0x01, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x06, 0x15, 0x03, 0x23, 0x22, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x01, 0x52, 0xa4, 0xac, 0x10, 0x30, 0x49, 0xa3, 0xfe, 0xef, 0xf3, 0xab,
+ 0x9d, 0xaa, 0x9c, 0x9e, 0x59, 0x45, 0xb0, 0xa1, 0x6b, 0x02, 0x03, 0x70,
+ 0x63, 0x1e, 0x0e, 0x9b, 0x6f, 0x40, 0x60, 0xd8, 0xd2, 0x04, 0xae, 0xbb,
+ 0xab, 0x99, 0x50, 0x68, 0xfa, 0xa3, 0x33, 0x41, 0x30, 0x18, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0xfe, 0xc0, 0x02, 0xa7, 0x04, 0x5e, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x34, 0x26, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x16, 0x15, 0x11, 0x33, 0x15, 0x23, 0x11, 0x01, 0x87,
+ 0xfe, 0xab, 0x01, 0x55, 0x44, 0x67, 0xaa, 0xaa, 0xbf, 0x92, 0x7a, 0x7a,
+ 0xfe, 0xc0, 0x01, 0x3e, 0x8f, 0x02, 0x60, 0x89, 0x4e, 0x9a, 0x9f, 0xd2,
+ 0xfd, 0xa0, 0x8f, 0xfe, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31,
+ 0xfe, 0x56, 0x02, 0xab, 0x05, 0x9e, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01, 0x52, 0x01, 0x55, 0xfe, 0xab,
+ 0x44, 0x5e, 0xb6, 0xc9, 0xa3, 0x93, 0x79, 0x79, 0x05, 0x9e, 0xfe, 0xc2,
+ 0x8f, 0xfc, 0x1b, 0x99, 0x61, 0x9c, 0xc0, 0xd6, 0x03, 0xe5, 0x8f, 0x01,
+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xff, 0xe3, 0x04, 0x91,
+ 0x04, 0x60, 0x00, 0x16, 0x00, 0x1e, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x26, 0x3d, 0x01, 0x23, 0x35, 0x05, 0x21, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x9d, 0xa5, 0x02, 0x01, 0xa6, 0xa7, 0xa7, 0xa6, 0x3c,
+ 0x9f, 0x6a, 0xad, 0xb4, 0x9d, 0x03, 0x42, 0xfe, 0x00, 0x70, 0x6f, 0x81,
+ 0xa0, 0x02, 0x68, 0x01, 0xf8, 0xfe, 0x08, 0x01, 0xf8, 0xfe, 0x08, 0xa4,
+ 0xfe, 0x3c, 0xac, 0x66, 0x63, 0xf0, 0xe7, 0x0a, 0xa4, 0xa5, 0x02, 0x9f,
+ 0x9f, 0xba, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0xff, 0xe2, 0x04, 0x11,
+ 0x04, 0x60, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x23, 0x1e, 0x01, 0x15, 0x14,
+ 0x00, 0x23, 0x22, 0x00, 0x35, 0x34, 0x36, 0x37, 0x23, 0x35, 0x21, 0x15,
+ 0x0e, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27,
+ 0x37, 0x21, 0x04, 0x10, 0xd4, 0x57, 0x73, 0xff, 0x00, 0xca, 0xcb, 0xff,
+ 0x00, 0x73, 0x57, 0xd5, 0x01, 0x8e, 0x5c, 0x7b, 0x9f, 0x81, 0x82, 0x9e,
+ 0x7a, 0x5c, 0x01, 0x01, 0x88, 0x03, 0xbc, 0x48, 0xeb, 0x98, 0xeb, 0xfe,
+ 0xdc, 0x01, 0x24, 0xeb, 0x98, 0xeb, 0x48, 0xa4, 0xdc, 0x42, 0xd7, 0x8b,
+ 0x9f, 0xc2, 0xc2, 0x9f, 0x8b, 0xd7, 0x42, 0xdc, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x03, 0xed, 0x04, 0x62, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x14,
+ 0x07, 0x06, 0x2b, 0x01, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14,
+ 0x17, 0x16, 0x37, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x35,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x03, 0xec, 0x7f, 0x83, 0xc8, 0x3f, 0xa3,
+ 0x49, 0x49, 0xa5, 0x23, 0x24, 0x5c, 0x2e, 0x82, 0x9e, 0x42, 0x42, 0x63,
+ 0x5d, 0x50, 0x96, 0x2e, 0x1e, 0x02, 0x0f, 0xee, 0x8f, 0x92, 0x60, 0x60,
+ 0xd6, 0x02, 0xca, 0xfd, 0x36, 0x99, 0x31, 0x32, 0x02, 0xc4, 0x9e, 0xe8,
+ 0x65, 0x63, 0x1e, 0x96, 0x08, 0x30, 0x5b, 0xab, 0x73, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c, 0x04, 0x60, 0x00, 0x06,
+ 0x00, 0x00, 0x33, 0x01, 0x33, 0x01, 0x23, 0x09, 0x01, 0x37, 0x01, 0x7a,
+ 0xe1, 0x01, 0x7a, 0xb0, 0xfe, 0xc5, 0xfe, 0xc5, 0x04, 0x60, 0xfb, 0xa0,
+ 0x03, 0xac, 0xfc, 0x54, 0x00, 0x01, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x04, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x21, 0x23, 0x0b, 0x01, 0x23, 0x0b,
+ 0x01, 0x23, 0x01, 0x33, 0x1b, 0x01, 0x33, 0x05, 0x96, 0xa6, 0xce, 0xcf,
+ 0xc3, 0xcf, 0xce, 0xa6, 0x01, 0x08, 0xc3, 0xd9, 0xda, 0xc3, 0x03, 0x6a,
+ 0xfc, 0x96, 0x03, 0x6a, 0xfc, 0x96, 0x04, 0x60, 0xfc, 0x6a, 0x03, 0x96,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c, 0x06, 0x14, 0x00, 0x11,
+ 0x00, 0x00, 0x33, 0x01, 0x36, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x07, 0x06, 0x0f, 0x01, 0x01, 0x23, 0x09, 0x01, 0x37, 0x01, 0xbb, 0x47,
+ 0x41, 0x43, 0x70, 0x84, 0x61, 0x45, 0x25, 0x29, 0x2b, 0x1e, 0x01, 0x98,
+ 0xb0, 0xfe, 0xc4, 0xfe, 0xc6, 0x04, 0xd2, 0xc7, 0x3e, 0x3d, 0x9a, 0x24,
+ 0x23, 0x87, 0x5e, 0xfb, 0xb2, 0x03, 0x6c, 0xfc, 0x94, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5b, 0x00, 0x00, 0x03, 0xfa, 0x04, 0x60, 0x00, 0x08,
+ 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x01, 0x11, 0x23, 0x11, 0x5c,
+ 0xc3, 0x01, 0x08, 0x01, 0x10, 0xc3, 0xfe, 0x87, 0xb7, 0x04, 0x60, 0xfe,
+ 0x38, 0x01, 0xc8, 0xfd, 0x90, 0xfe, 0x10, 0x01, 0xf0, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0xfe, 0x56, 0x04, 0x46, 0x04, 0x60, 0x00, 0x13,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x15, 0x14, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x21, 0x35, 0x01, 0x21, 0x66, 0x03,
+ 0x12, 0xfd, 0x92, 0x02, 0x6e, 0x45, 0x5e, 0x2b, 0x40, 0xa2, 0x93, 0xfd,
+ 0x7e, 0x02, 0x6f, 0xfd, 0xa8, 0x04, 0x60, 0xa8, 0xfc, 0xdb, 0xa7, 0x99,
+ 0x61, 0x9c, 0xc0, 0xd6, 0x14, 0xa8, 0x03, 0x25, 0x00, 0x02, 0x00, 0x4f,
+ 0xff, 0x91, 0x03, 0x79, 0x04, 0x60, 0x00, 0x1a, 0x00, 0x21, 0x00, 0x00,
+ 0x13, 0x21, 0x15, 0x01, 0x33, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x16, 0x07, 0x06, 0x2b, 0x01, 0x06, 0x15, 0x23, 0x34, 0x37, 0x21,
+ 0x35, 0x01, 0x21, 0x01, 0x33, 0x32, 0x35, 0x34, 0x07, 0x06, 0x66, 0x03,
+ 0x12, 0xfd, 0x92, 0x9d, 0x1e, 0x4c, 0x3b, 0x56, 0x77, 0x34, 0x22, 0x01,
+ 0x38, 0x49, 0x72, 0x5e, 0x03, 0x8a, 0x03, 0xfe, 0xba, 0x02, 0x6f, 0xfd,
+ 0xa8, 0x01, 0xcc, 0x32, 0x7c, 0x3f, 0x4f, 0x04, 0x60, 0xa8, 0xfc, 0xdb,
+ 0xa2, 0x47, 0x37, 0x57, 0x39, 0x57, 0x60, 0x2f, 0x3d, 0x33, 0x3c, 0x3b,
+ 0x34, 0xa8, 0x03, 0x25, 0xfc, 0xc6, 0x36, 0x5d, 0x02, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0xfe, 0x4c, 0x03, 0xc4, 0x04, 0x60, 0x00, 0x20,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x04, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x01, 0x21, 0x35, 0x21, 0x15, 0x02,
+ 0x03, 0x5f, 0x73, 0x59, 0x4d, 0x49, 0xfe, 0xee, 0xfc, 0x54, 0x59, 0x5a,
+ 0x60, 0x4c, 0xb4, 0x62, 0xab, 0x59, 0x5a, 0x53, 0x54, 0x94, 0x9d, 0x01,
+ 0x83, 0xfd, 0xa8, 0x03, 0x13, 0x01, 0xdc, 0x38, 0x2a, 0x6d, 0x68, 0x8a,
+ 0xdd, 0xf2, 0x12, 0x13, 0x25, 0xc3, 0x31, 0x32, 0x4b, 0x4b, 0x8f, 0x84,
+ 0x4b, 0x4a, 0xa6, 0x01, 0xf3, 0x93, 0xa8, 0x00, 0x00, 0x02, 0x00, 0x62,
+ 0xfe, 0x4c, 0x03, 0xfb, 0x04, 0x60, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00,
+ 0x01, 0x20, 0x37, 0x36, 0x05, 0x16, 0x17, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x2b, 0x01, 0x35, 0x01, 0x21, 0x35, 0x21, 0x15, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x15, 0x23, 0x34, 0x27, 0x30, 0x07,
+ 0x06, 0x37, 0x26, 0x23, 0x22, 0x07, 0x14, 0x33, 0x32, 0x37, 0x01, 0xb6,
+ 0xfe, 0xd3, 0x02, 0x01, 0x01, 0x0d, 0xdd, 0x8e, 0x0b, 0x53, 0x54, 0x94,
+ 0x9d, 0x01, 0x83, 0xfd, 0xa8, 0x03, 0x13, 0xfe, 0x8e, 0x5e, 0x74, 0x5a,
+ 0x4c, 0x49, 0x23, 0x5a, 0x8a, 0x24, 0x12, 0x88, 0x08, 0x70, 0xb1, 0x76,
+ 0x01, 0x8e, 0xab, 0x59, 0xfe, 0x4c, 0xbd, 0xfb, 0x05, 0x04, 0x3b, 0x2a,
+ 0x31, 0x85, 0x4a, 0x4a, 0xa6, 0x01, 0xf3, 0x93, 0xa8, 0xfe, 0x24, 0x38,
+ 0x2b, 0x6c, 0x67, 0x8b, 0x71, 0x55, 0x65, 0xa4, 0x52, 0x38, 0x11, 0x79,
+ 0xfa, 0x2a, 0x4b, 0x2f, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4f,
+ 0x00, 0x00, 0x03, 0x48, 0x06, 0x12, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07,
+ 0x35, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x11, 0x23, 0x01, 0x32, 0x39, 0xad, 0x4d, 0x34, 0x01, 0x33, 0x59,
+ 0xa1, 0x48, 0x47, 0x47, 0x46, 0x45, 0x48, 0x49, 0x4d, 0xf7, 0x7d, 0x62,
+ 0x62, 0x64, 0x99, 0xb6, 0x03, 0x1e, 0x72, 0x4c, 0x62, 0x85, 0x41, 0x72,
+ 0x16, 0x15, 0x2b, 0xac, 0x23, 0x11, 0x12, 0x9d, 0x7d, 0xba, 0xaa, 0x73,
+ 0x77, 0x1e, 0xfd, 0x74, 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x48,
+ 0x06, 0x12, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x15, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x14, 0x17, 0x16, 0x33, 0x02,
+ 0x64, 0xb6, 0x99, 0x65, 0x61, 0x63, 0x7c, 0xf7, 0x4d, 0x48, 0x49, 0x45,
+ 0x46, 0x48, 0x46, 0x48, 0xa1, 0x59, 0x33, 0x01, 0x34, 0x4d, 0xad, 0x03,
+ 0x1e, 0xfc, 0xe2, 0x02, 0x8c, 0x1e, 0x77, 0x73, 0xaa, 0xba, 0x7d, 0x9d,
+ 0x12, 0x11, 0x23, 0xac, 0x2b, 0x15, 0x16, 0x72, 0x41, 0x85, 0x62, 0x4c,
+ 0x72, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x48,
+ 0x06, 0x12, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x13, 0x33, 0x11, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x34, 0x27, 0x26, 0x23, 0x01,
+ 0x32, 0x01, 0xb6, 0x99, 0x64, 0x62, 0x62, 0x7d, 0xf7, 0x4d, 0x49, 0x48,
+ 0x45, 0x46, 0x47, 0x47, 0x48, 0xa1, 0x59, 0x33, 0x01, 0x34, 0x4d, 0xad,
+ 0x02, 0xf4, 0x03, 0x1e, 0xfd, 0x74, 0x1e, 0x77, 0x73, 0xaa, 0xba, 0x7d,
+ 0x9d, 0x12, 0x11, 0x23, 0xac, 0x2b, 0x15, 0x16, 0x72, 0x41, 0x85, 0x62,
+ 0x4c, 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4f, 0xfe, 0x4c, 0x03, 0x48,
+ 0x06, 0x14, 0x00, 0x23, 0x00, 0x00, 0x13, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x4f, 0x63, 0x7c, 0xf7, 0x4d, 0x48,
+ 0x49, 0x45, 0x42, 0x4c, 0x46, 0x48, 0x9f, 0x5b, 0x34, 0x34, 0x5c, 0x9e,
+ 0x48, 0x46, 0x48, 0x46, 0x45, 0x49, 0x48, 0x4d, 0xf7, 0x7c, 0x63, 0x04,
+ 0x40, 0xba, 0x7d, 0x9d, 0x12, 0x11, 0x23, 0xac, 0x28, 0x18, 0x16, 0x72,
+ 0x41, 0x85, 0xfb, 0xe0, 0x85, 0x41, 0x72, 0x16, 0x15, 0x2b, 0xac, 0x23,
+ 0x11, 0x12, 0x9d, 0x7d, 0xba, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x0d, 0x00, 0x17, 0x00, 0x22,
+ 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x06, 0x22, 0x27, 0x26, 0x00, 0x20, 0x02, 0x11, 0x10, 0x12, 0x20, 0x12,
+ 0x11, 0x10, 0x01, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x10,
+ 0x00, 0x02, 0x70, 0x1e, 0x1d, 0x2b, 0x2a, 0x1e, 0x1d, 0x3b, 0x55, 0x1d,
+ 0x1e, 0x01, 0x2c, 0xfe, 0x74, 0xe9, 0xe9, 0x01, 0x8c, 0xe8, 0xfe, 0x52,
+ 0x01, 0x1b, 0x01, 0x52, 0xfe, 0xae, 0xfe, 0xe5, 0xfe, 0xe5, 0xfe, 0xad,
+ 0x01, 0x53, 0x02, 0xe9, 0x2e, 0x22, 0x22, 0x22, 0x22, 0x2e, 0x2f, 0x42,
+ 0x21, 0x21, 0x02, 0x92, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8,
+ 0x01, 0x48, 0x01, 0x1a, 0x01, 0x1b, 0x01, 0xec, 0xfe, 0x5b, 0xfe, 0x9e,
+ 0xfe, 0x9f, 0xfe, 0x5b, 0x01, 0xa4, 0x02, 0xc4, 0x01, 0xa5, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xd2, 0x04, 0x60, 0x10, 0x06,
+ 0x03, 0xc6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x4b,
+ 0x04, 0x7c, 0x00, 0x1a, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x20, 0x17, 0x16, 0x11, 0x10, 0x00, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x02, 0x0b, 0x6b, 0x3e,
+ 0x3f, 0x3d, 0x3c, 0x69, 0x8b, 0x85, 0x7b, 0x41, 0x46, 0x4b, 0x4d, 0x88,
+ 0xbd, 0x5d, 0x59, 0x59, 0x57, 0xef, 0x01, 0x3e, 0x88, 0x88, 0xfe, 0xf4,
+ 0xfe, 0xe5, 0xd6, 0xe8, 0x7c, 0x70, 0x65, 0x36, 0x36, 0x66, 0x66, 0x03,
+ 0xdc, 0x2e, 0x2e, 0x40, 0x46, 0x2d, 0x2c, 0x98, 0x33, 0x38, 0x58, 0x5a,
+ 0x38, 0x38, 0x74, 0x6f, 0xd0, 0xcd, 0x72, 0x6e, 0xa0, 0x9e, 0x9d, 0xfe,
+ 0xee, 0xfe, 0xf2, 0xfe, 0xc2, 0xb6, 0xad, 0x6c, 0x92, 0x18, 0x18, 0x41,
+ 0x40, 0x5d, 0x8d, 0x4f, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x05, 0x37, 0x06, 0x14, 0x00, 0x27, 0x00, 0x00, 0x25, 0x11,
+ 0x23, 0x35, 0x21, 0x11, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00,
+ 0x33, 0x32, 0x16, 0x17, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x06, 0x15, 0x11, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x03, 0x4b, 0x8b, 0x01, 0x21, 0x5b, 0xc2, 0x6e, 0xe4, 0xfe,
+ 0xf4, 0x01, 0x0f, 0xeb, 0x32, 0x5e, 0x2c, 0x93, 0xa3, 0xe5, 0xd0, 0x5f,
+ 0x45, 0x55, 0xad, 0x59, 0xa2, 0xb2, 0xb2, 0xa2, 0x47, 0x6f, 0x9e, 0x01,
+ 0x11, 0x8c, 0xfd, 0xf0, 0x24, 0x24, 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12,
+ 0x01, 0x3a, 0x0f, 0x0f, 0x21, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0xfe, 0xe5,
+ 0x3e, 0x3e, 0xe3, 0xcd, 0xcd, 0xe3, 0x0f, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x0e, 0x04, 0x60, 0x10, 0x06, 0x03, 0xd1, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0x0d, 0xfe, 0x56, 0x01, 0xf7, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x12, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x15, 0x33,
+ 0x11, 0x33, 0x15, 0x23, 0x06, 0x07, 0x06, 0x23, 0x20, 0x35, 0x34, 0x3b,
+ 0x01, 0x07, 0x23, 0x22, 0x15, 0x14, 0x33, 0x32, 0x37, 0x36, 0xae, 0xa5,
+ 0xa5, 0xa5, 0xa3, 0xaa, 0x10, 0x32, 0x43, 0xa9, 0xfe, 0xef, 0xf3, 0xae,
+ 0x08, 0xa5, 0x69, 0x73, 0x56, 0x26, 0x1a, 0x06, 0x14, 0xe9, 0xcb, 0xfb,
+ 0xa0, 0x8b, 0x78, 0x47, 0x60, 0xdd, 0xcd, 0x8b, 0x42, 0x41, 0x30, 0x20,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x4c, 0x04, 0x26, 0x04, 0x60, 0x00, 0x0a,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x01, 0x23, 0x09, 0x01, 0x33, 0x01, 0x11,
+ 0x33, 0x04, 0x26, 0xa6, 0xfe, 0x11, 0xd3, 0x02, 0x16, 0xfd, 0xd3, 0xd8,
+ 0x02, 0x01, 0xa6, 0xfe, 0x4c, 0x03, 0x97, 0xfe, 0x1d, 0x02, 0x0c, 0x02,
+ 0x54, 0xfd, 0xdd, 0x02, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0x8d, 0x04, 0x60, 0x00, 0x05, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0xa7, 0xa6, 0x02, 0x3f, 0xfd, 0x1b, 0x04, 0x60,
+ 0xfc, 0x33, 0x93, 0x00, 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x05, 0x60,
+ 0x06, 0x12, 0x00, 0x0b, 0x00, 0x24, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x01, 0x0e, 0x01, 0x23,
+ 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x34, 0x36,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x01, 0x11, 0x96,
+ 0x83, 0x84, 0x97, 0x97, 0x84, 0x83, 0x96, 0x02, 0x34, 0x34, 0x9f, 0x70,
+ 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34, 0x93, 0xa3, 0xe4, 0xd0, 0x5e,
+ 0x45, 0xa7, 0x02, 0x2f, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0xfd,
+ 0xae, 0x64, 0x61, 0x01, 0x44, 0x01, 0x08, 0x01, 0x08, 0x01, 0x44, 0x61,
+ 0x64, 0xc6, 0xd6, 0xc0, 0x9c, 0x61, 0x99, 0xf9, 0xda, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x48, 0x06, 0x12, 0x00, 0x24,
+ 0x00, 0x00, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x35, 0x33, 0x01, 0x32, 0x39, 0xac, 0x4e, 0x34, 0x01, 0x33, 0x59,
+ 0xa1, 0x48, 0x47, 0x47, 0x46, 0x45, 0x48, 0x49, 0x4d, 0xf7, 0x7d, 0x62,
+ 0x62, 0x64, 0x99, 0xd0, 0xd0, 0xb6, 0xce, 0xcd, 0x03, 0x1e, 0x72, 0x4c,
+ 0x62, 0x85, 0x41, 0x72, 0x16, 0x15, 0x2b, 0xac, 0x23, 0x11, 0x12, 0x9d,
+ 0x7d, 0xba, 0xaa, 0x73, 0x77, 0x1e, 0xd4, 0xa4, 0xfe, 0xec, 0x01, 0x14,
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x48,
+ 0x06, 0x12, 0x00, 0x24, 0x00, 0x00, 0x13, 0x35, 0x33, 0x35, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x15, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x14, 0x17, 0x16, 0x3b, 0x01,
+ 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0xde, 0xd0, 0x99, 0x65, 0x61,
+ 0x63, 0x7c, 0xf7, 0x4d, 0x48, 0x49, 0x45, 0x47, 0x47, 0x46, 0x48, 0xa1,
+ 0x59, 0x33, 0x01, 0x34, 0x4d, 0xad, 0x38, 0xce, 0xce, 0xb6, 0x01, 0x14,
+ 0xa4, 0xd4, 0x1e, 0x77, 0x73, 0xaa, 0xba, 0x7d, 0x9d, 0x12, 0x11, 0x23,
+ 0xac, 0x2b, 0x15, 0x16, 0x72, 0x41, 0x85, 0x62, 0x4c, 0x72, 0xfe, 0x9a,
+ 0xa4, 0xfe, 0xec, 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65,
+ 0xff, 0xe3, 0x06, 0xfd, 0x06, 0x14, 0x00, 0x0b, 0x00, 0x26, 0x00, 0x29,
+ 0x00, 0x00, 0x00, 0x10, 0x17, 0x16, 0x20, 0x37, 0x36, 0x10, 0x27, 0x26,
+ 0x20, 0x07, 0x25, 0x11, 0x33, 0x11, 0x21, 0x15, 0x01, 0x21, 0x15, 0x21,
+ 0x2b, 0x01, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x11, 0x01, 0x01, 0x11, 0x4a, 0x4c,
+ 0x01, 0x07, 0x4b, 0x4c, 0x4c, 0x4b, 0xfe, 0xf9, 0x4c, 0x01, 0xea, 0xa6,
+ 0x03, 0x11, 0xfd, 0x92, 0x02, 0x6e, 0xfc, 0xef, 0x18, 0x8e, 0x34, 0x4f,
+ 0x50, 0x70, 0xb7, 0x73, 0x72, 0x72, 0x73, 0xb7, 0x70, 0x50, 0x4f, 0xda,
+ 0x02, 0x57, 0x02, 0xfa, 0xfe, 0x6a, 0x74, 0x73, 0x73, 0x74, 0x01, 0x96,
+ 0x74, 0x73, 0x73, 0x48, 0x02, 0x5e, 0xfe, 0x4c, 0xa8, 0xfc, 0xdb, 0x93,
+ 0xa8, 0x64, 0x30, 0x31, 0xa2, 0xa2, 0x02, 0x10, 0xa2, 0xa2, 0x31, 0x30,
+ 0x4d, 0xfc, 0xf9, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xfe, 0x4c, 0x07, 0x4d, 0x06, 0x14, 0x00, 0x34, 0x00, 0x40, 0x00, 0x00,
+ 0x01, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x10,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x04, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x2b, 0x01, 0x35, 0x01, 0x04, 0x10, 0x17, 0x16, 0x20, 0x37, 0x36,
+ 0x10, 0x27, 0x26, 0x20, 0x07, 0x03, 0xeb, 0xa6, 0x34, 0x4f, 0x50, 0x70,
+ 0xb7, 0x73, 0x72, 0x72, 0x73, 0xb7, 0x70, 0x50, 0x4f, 0x34, 0xa6, 0x03,
+ 0x12, 0xfe, 0x8e, 0x60, 0x73, 0x58, 0x4e, 0x48, 0xfe, 0xef, 0xfc, 0x55,
+ 0x59, 0x5a, 0x5f, 0x4b, 0xb4, 0x62, 0xab, 0x5a, 0x5a, 0x53, 0x54, 0x95,
+ 0x9c, 0x01, 0x83, 0xfa, 0xce, 0x4a, 0x4c, 0x01, 0x07, 0x4b, 0x4c, 0x4c,
+ 0x4b, 0xfe, 0xf9, 0x4c, 0x03, 0xcd, 0xfc, 0x33, 0xa8, 0x64, 0x30, 0x31,
+ 0xa2, 0xa2, 0x02, 0x10, 0xa2, 0xa2, 0x31, 0x30, 0x64, 0x02, 0x5e, 0xfe,
+ 0x4c, 0xa8, 0xfe, 0x24, 0x38, 0x2a, 0x6d, 0x68, 0x8a, 0xdd, 0xf2, 0x12,
+ 0x13, 0x25, 0xc3, 0x31, 0x32, 0x4b, 0x4b, 0x8f, 0x84, 0x4b, 0x4a, 0xa6,
+ 0x01, 0xf3, 0xd3, 0xfe, 0x6a, 0x74, 0x73, 0x73, 0x74, 0x01, 0x96, 0x74,
+ 0x73, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x65, 0xff, 0x91, 0x06, 0xfc,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x33, 0x00, 0x3a, 0x00, 0x00,
+ 0x00, 0x10, 0x17, 0x16, 0x20, 0x37, 0x36, 0x10, 0x27, 0x26, 0x20, 0x07,
+ 0x25, 0x11, 0x01, 0x25, 0x21, 0x15, 0x01, 0x33, 0x12, 0x33, 0x32, 0x15,
+ 0x16, 0x21, 0x23, 0x06, 0x15, 0x23, 0x34, 0x37, 0x21, 0x23, 0x35, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x11, 0x33, 0x01, 0x33, 0x32, 0x35, 0x34, 0x23, 0x06, 0x01,
+ 0x11, 0x4a, 0x4c, 0x01, 0x07, 0x4b, 0x4c, 0x4c, 0x4b, 0xfe, 0xf9, 0x4c,
+ 0x02, 0x90, 0x02, 0x56, 0xfd, 0xaa, 0x03, 0x10, 0xfd, 0x92, 0x9d, 0x36,
+ 0xc5, 0xcd, 0x01, 0xfe, 0xd4, 0x25, 0x03, 0x8a, 0x03, 0xfe, 0xba, 0x8d,
+ 0x34, 0x4f, 0x50, 0x70, 0xb7, 0x73, 0x72, 0x72, 0x73, 0xb7, 0x70, 0x50,
+ 0x4f, 0x34, 0xa6, 0x01, 0xca, 0x12, 0x9c, 0x3f, 0x4f, 0x02, 0xfa, 0xfe,
+ 0x6a, 0x74, 0x73, 0x73, 0x74, 0x01, 0x96, 0x74, 0x73, 0x73, 0x5f, 0xfc,
+ 0xfa, 0x03, 0x06, 0x93, 0xa8, 0xfc, 0xdb, 0x01, 0x20, 0xf6, 0xbd, 0x33,
+ 0x3c, 0x3b, 0x34, 0xa8, 0x64, 0x30, 0x31, 0xa2, 0xa2, 0x02, 0x10, 0xa2,
+ 0xa2, 0x31, 0x30, 0x64, 0x02, 0x5e, 0xfa, 0x7f, 0x36, 0x5b, 0x02, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0x00, 0x00, 0x05, 0xa0, 0x05, 0x9e, 0x00, 0x37,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35,
+ 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x21, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01, 0x52,
+ 0x01, 0x55, 0xfe, 0xab, 0x21, 0x22, 0x67, 0x02, 0x07, 0x75, 0x3f, 0x3f,
+ 0x55, 0xa0, 0x39, 0x9a, 0x89, 0xc9, 0xba, 0x5c, 0xa2, 0x44, 0x46, 0x97,
+ 0x51, 0x7c, 0x7b, 0x58, 0x85, 0x39, 0xb2, 0x93, 0x70, 0x44, 0xed, 0xfd,
+ 0xfd, 0xbf, 0x49, 0x49, 0x79, 0x79, 0x05, 0x9e, 0xfe, 0xc2, 0x8f, 0xfd,
+ 0xa0, 0x89, 0x27, 0x27, 0x2d, 0x2c, 0x34, 0x49, 0x4d, 0x2a, 0x0f, 0x24,
+ 0x95, 0x82, 0x9e, 0xac, 0x1e, 0x1e, 0xae, 0x28, 0x28, 0x54, 0x54, 0x40,
+ 0x49, 0x21, 0x0e, 0x2c, 0x97, 0x89, 0x92, 0x65, 0x3e, 0x50, 0x4f, 0xd2,
+ 0x02, 0x60, 0x8f, 0x01, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x31,
+ 0xfe, 0x56, 0x04, 0x88, 0x06, 0x14, 0x00, 0x26, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x30, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x13, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23,
+ 0x35, 0x33, 0x11, 0x01, 0x02, 0x11, 0x21, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x01, 0x52, 0x01, 0x52, 0x4e, 0x49, 0xb0, 0x9c, 0x9e, 0x59, 0x22, 0x24,
+ 0x02, 0x49, 0x49, 0xa3, 0x3f, 0x2c, 0x5e, 0x22, 0x23, 0xab, 0xbf, 0x49,
+ 0x49, 0x79, 0x79, 0x01, 0xfb, 0x02, 0xfe, 0xae, 0x21, 0x22, 0x67, 0x05,
+ 0x9e, 0xfe, 0xc2, 0x4e, 0xb5, 0x5b, 0x56, 0x99, 0x28, 0x28, 0x68, 0xfb,
+ 0x29, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x31, 0x99, 0x14, 0x50, 0x4f, 0xd2,
+ 0x02, 0x60, 0x8f, 0x01, 0x3e, 0xfa, 0xfc, 0x01, 0xa2, 0x01, 0x95, 0xfd,
+ 0xa0, 0x89, 0x27, 0x27, 0x00, 0x03, 0x00, 0x31, 0xff, 0x70, 0x05, 0x35,
+ 0x05, 0x9e, 0x00, 0x2d, 0x00, 0x39, 0x00, 0x44, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x15, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x10, 0x1f, 0x01, 0x36, 0x33, 0x20, 0x17, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x06, 0x15, 0x07, 0x34, 0x37, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x05, 0x26, 0x35, 0x10,
+ 0x37, 0x21, 0x11, 0x14, 0x17, 0x16, 0x33, 0x01, 0x52, 0x01, 0x55, 0x86,
+ 0xe5, 0x4d, 0x49, 0x48, 0x45, 0x46, 0x47, 0x47, 0x48, 0xa1, 0x59, 0x59,
+ 0x59, 0x07, 0x48, 0xb9, 0x01, 0x0d, 0x01, 0x5b, 0x44, 0x8d, 0x4b, 0x42,
+ 0x02, 0x8a, 0x06, 0xfa, 0xbf, 0x49, 0x49, 0x79, 0x79, 0x02, 0xe8, 0x3c,
+ 0x4a, 0x56, 0x13, 0x1c, 0x01, 0x01, 0x76, 0x67, 0x24, 0x04, 0xfe, 0xf4,
+ 0x73, 0x7d, 0xfe, 0xbd, 0x21, 0x22, 0x67, 0x05, 0x9e, 0xfe, 0xc2, 0x7a,
+ 0x95, 0x11, 0x12, 0x23, 0xac, 0x2b, 0x16, 0x15, 0x71, 0x72, 0xfe, 0x66,
+ 0x72, 0x09, 0xab, 0xf6, 0x76, 0x29, 0x1e, 0x12, 0x32, 0x4c, 0x03, 0x4f,
+ 0x41, 0x50, 0x4f, 0xd2, 0x02, 0x60, 0x8f, 0x01, 0x3e, 0xfa, 0xf9, 0x18,
+ 0x07, 0x0b, 0x27, 0x4b, 0x56, 0x0a, 0x09, 0x9d, 0xf8, 0x01, 0x07, 0x9b,
+ 0xfd, 0xa0, 0x89, 0x27, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2a,
+ 0xfe, 0x56, 0x05, 0xcb, 0x06, 0x14, 0x00, 0x35, 0x00, 0x00, 0x01, 0x11,
+ 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23,
+ 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x07, 0x06, 0x1d, 0x01, 0x21, 0x3b, 0x01, 0x15, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x05, 0xca, 0x4a, 0x48, 0xa3, 0xe5, 0xd2, 0x5e,
+ 0x22, 0x23, 0x70, 0x6f, 0x87, 0x9a, 0xa7, 0xfe, 0xf1, 0xa6, 0x9f, 0x9f,
+ 0x4e, 0x4e, 0xaa, 0x9d, 0x9e, 0x5a, 0x23, 0x22, 0x01, 0x0f, 0x02, 0xa5,
+ 0x3b, 0x50, 0x51, 0x69, 0xae, 0x59, 0x59, 0x02, 0xa4, 0xfd, 0x48, 0xd6,
+ 0x60, 0x60, 0x9c, 0x30, 0x31, 0x99, 0x02, 0xb2, 0x9f, 0x9e, 0xbe, 0xa4,
+ 0xfd, 0x87, 0x03, 0xd1, 0xfc, 0x2f, 0x03, 0xd1, 0x8f, 0x4e, 0xbb, 0x55,
+ 0x56, 0x99, 0x28, 0x28, 0x68, 0x63, 0xae, 0x65, 0x32, 0x32, 0x77, 0x78,
+ 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x04, 0xbb, 0x06, 0x14, 0x00, 0x27,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26,
+ 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x21, 0xae, 0xa5, 0x01, 0xca, 0x75, 0x3f,
+ 0x3f, 0x54, 0xa0, 0x3a, 0x9a, 0x89, 0xca, 0xb9, 0x5c, 0xa2, 0x44, 0x46,
+ 0x97, 0x51, 0x7b, 0x7b, 0x58, 0x85, 0x39, 0xb2, 0x92, 0x6f, 0x45, 0xec,
+ 0xfd, 0x94, 0x06, 0x14, 0xfa, 0x86, 0x2d, 0x2c, 0x34, 0x49, 0x4d, 0x2a,
+ 0x0f, 0x24, 0x95, 0x82, 0x9e, 0xac, 0x1e, 0x1e, 0xae, 0x28, 0x28, 0x54,
+ 0x54, 0x40, 0x49, 0x21, 0x0e, 0x2c, 0x97, 0x89, 0x92, 0x65, 0x3e, 0x00,
+ 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x04, 0x65, 0x06, 0x14, 0x00, 0x0a,
+ 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x15, 0x01, 0x21, 0x15,
+ 0x21, 0x2b, 0x01, 0x13, 0x11, 0x01, 0xae, 0xa5, 0x03, 0x12, 0xfd, 0x91,
+ 0x02, 0x6f, 0xfc, 0xee, 0x17, 0x8e, 0xa5, 0x02, 0x58, 0x06, 0x14, 0xfe,
+ 0x4c, 0xa8, 0xfc, 0xdb, 0x93, 0x03, 0xcd, 0xfc, 0xf9, 0x03, 0x07, 0x00,
+ 0x00, 0x02, 0x00, 0x30, 0xff, 0xe2, 0x03, 0x85, 0x05, 0x1f, 0x00, 0x0c,
+ 0x00, 0x19, 0x00, 0x00, 0x13, 0x33, 0x1b, 0x01, 0x33, 0x1b, 0x01, 0x33,
+ 0x03, 0x23, 0x0b, 0x01, 0x23, 0x03, 0x33, 0x1b, 0x01, 0x33, 0x1b, 0x01,
+ 0x33, 0x03, 0x23, 0x0b, 0x01, 0x23, 0x31, 0x68, 0x83, 0x81, 0x7b, 0x83,
+ 0x81, 0x69, 0xa7, 0x7a, 0x89, 0x89, 0x7b, 0xa6, 0x68, 0x83, 0x81, 0x7b,
+ 0x83, 0x81, 0x69, 0xa7, 0x7a, 0x89, 0x89, 0x7b, 0x02, 0x55, 0xfe, 0x17,
+ 0x01, 0xe9, 0xfe, 0x17, 0x01, 0xe9, 0xfd, 0x8d, 0x02, 0x02, 0xfd, 0xfe,
+ 0x05, 0x3d, 0xfe, 0x17, 0x01, 0xe9, 0xfe, 0x17, 0x01, 0xe9, 0xfd, 0x8d,
+ 0x02, 0x02, 0xfd, 0xfe, 0x00, 0x02, 0x00, 0x30, 0x00, 0xad, 0x03, 0x85,
+ 0x05, 0x1f, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23,
+ 0x31, 0x03, 0x54, 0x81, 0xfd, 0xad, 0x80, 0x03, 0x54, 0x81, 0xfd, 0xad,
+ 0x80, 0x02, 0x55, 0xfe, 0x58, 0x01, 0x05, 0xfe, 0xfb, 0x04, 0x72, 0xfe,
+ 0x58, 0x01, 0x05, 0xfe, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0xfe, 0x4a, 0x04, 0x1c, 0x06, 0x14, 0x00, 0x19, 0x00, 0x00, 0x25, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x11, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x16, 0x15, 0x11, 0x10, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23,
+ 0x03, 0x75, 0x77, 0xcf, 0xae, 0xb2, 0x44, 0x5f, 0x2c, 0x3f, 0xa3, 0x93,
+ 0xdf, 0x86, 0x9b, 0xa6, 0xa6, 0xac, 0xc9, 0xef, 0xe8, 0x02, 0xc4, 0x99,
+ 0x61, 0x9c, 0xc0, 0xd6, 0xfd, 0x42, 0xfe, 0xc3, 0xbe, 0xa4, 0x02, 0x79,
+ 0xf9, 0xec, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xfe, 0x56, 0x04, 0xeb,
+ 0x06, 0x14, 0x00, 0x21, 0x00, 0x00, 0x25, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x11, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x16, 0x15, 0x11, 0x10,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x06, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x26, 0x27, 0x03, 0x75, 0x77, 0xcf, 0xae, 0xb2, 0x44, 0x5f,
+ 0x2c, 0x3f, 0xa3, 0x93, 0xdf, 0x86, 0x9b, 0xa6, 0x03, 0x48, 0x5d, 0x2d,
+ 0x3f, 0xa4, 0x8e, 0x04, 0xac, 0xc9, 0xef, 0xe8, 0x02, 0xc4, 0x99, 0x61,
+ 0x9c, 0xc0, 0xd6, 0xfd, 0x42, 0xfe, 0xc3, 0xbe, 0xa4, 0x02, 0x79, 0xfb,
+ 0x8e, 0x94, 0x66, 0x9c, 0xb9, 0xdd, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x02, 0x9c, 0x02, 0x7e, 0x06, 0x03, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x02, 0x7d, 0x68, 0x46, 0x47, 0x54,
+ 0x61, 0x6a, 0x6a, 0x25, 0x65, 0x43, 0x6d, 0x70, 0x04, 0x17, 0xfe, 0x85,
+ 0x01, 0x77, 0x59, 0x59, 0x6b, 0x5c, 0xfe, 0x9e, 0x03, 0x67, 0xfe, 0xab,
+ 0x38, 0x38, 0x86, 0x00, 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x02, 0x7e,
+ 0x06, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x36, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x06, 0x1d, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x02, 0x7d,
+ 0x68, 0x46, 0x47, 0x54, 0x61, 0x6a, 0x5d, 0x67, 0x90, 0x84, 0x3b, 0x2b,
+ 0x25, 0x65, 0x43, 0x6d, 0x70, 0x04, 0x17, 0xfe, 0x85, 0x01, 0x77, 0x59,
+ 0x59, 0x6b, 0x5c, 0xfe, 0x9e, 0x02, 0x84, 0x78, 0x6b, 0x57, 0x36, 0x56,
+ 0x72, 0x38, 0x38, 0x86, 0x00, 0x02, 0xff, 0xeb, 0x01, 0xad, 0x00, 0xd7,
+ 0x06, 0x03, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00, 0x13, 0x33, 0x11, 0x14,
+ 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33,
+ 0x15, 0x23, 0x6e, 0x68, 0x2f, 0x2d, 0x67, 0x28, 0x1c, 0x3c, 0x15, 0x16,
+ 0x68, 0x68, 0x05, 0x0f, 0xfd, 0x82, 0x78, 0x36, 0x36, 0x58, 0x1b, 0x1b,
+ 0x56, 0x03, 0x72, 0x82, 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x01, 0xdd,
+ 0x05, 0x1e, 0x00, 0x11, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x01, 0xdd, 0x11, 0x2a, 0x19, 0x58, 0x5e, 0x6a, 0x6a, 0x20, 0x69, 0x4c,
+ 0x0b, 0x1a, 0x10, 0x04, 0xaf, 0x0a, 0x09, 0x71, 0x6b, 0xfe, 0xb6, 0x02,
+ 0x73, 0x61, 0x39, 0x37, 0x02, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40,
+ 0x02, 0x8d, 0x01, 0xb4, 0x05, 0x0f, 0x00, 0x11, 0x00, 0x00, 0x13, 0x1e,
+ 0x01, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x26, 0x27, 0x41, 0x11, 0x29, 0x19, 0x59, 0x5e, 0x69, 0x69,
+ 0x20, 0x69, 0x4c, 0x0b, 0x1a, 0x10, 0x02, 0xfc, 0x0a, 0x09, 0x71, 0x6b,
+ 0x01, 0x4a, 0xfd, 0x8d, 0x61, 0x39, 0x37, 0x02, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x40, 0x01, 0xad, 0x02, 0x37, 0x05, 0x0f, 0x00, 0x1b,
+ 0x00, 0x00, 0x13, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x15, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x3d, 0x02, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x27, 0x41, 0x11, 0x29, 0x19, 0x59, 0x5e, 0x69,
+ 0x2b, 0x3b, 0x1c, 0x28, 0x66, 0x5d, 0x20, 0x69, 0x4c, 0x0b, 0x1a, 0x10,
+ 0x02, 0xfc, 0x0a, 0x09, 0x71, 0x6b, 0x01, 0x4a, 0xfd, 0x8d, 0x0b, 0x56,
+ 0x36, 0x58, 0x6c, 0x78, 0x0b, 0x61, 0x39, 0x37, 0x02, 0x03, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x1c, 0x02, 0x9c, 0x02, 0x4e, 0x05, 0x0f, 0x00, 0x16,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x2b,
+ 0x01, 0x11, 0x33, 0x11, 0x33, 0x32, 0x37, 0x36, 0x3f, 0x01, 0x33, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x2b, 0x01, 0x01, 0x72, 0x3c, 0x3f, 0x3c, 0x3d, 0x7c, 0xdb, 0x68, 0x61,
+ 0x36, 0x22, 0x21, 0x24, 0x5c, 0x6f, 0x64, 0x1d, 0x1e, 0x1f, 0xfe, 0xf5,
+ 0x71, 0x43, 0x23, 0x25, 0x25, 0x23, 0x43, 0x71, 0x03, 0xe9, 0x0f, 0x4e,
+ 0x3b, 0x5b, 0x2d, 0x2d, 0x02, 0x73, 0xfe, 0xf7, 0x15, 0x14, 0x3f, 0xa1,
+ 0xab, 0x35, 0x1e, 0x1e, 0xff, 0x00, 0x17, 0x18, 0x2f, 0x2e, 0x18, 0x19,
+ 0x00, 0x01, 0x00, 0x30, 0x02, 0x9c, 0x03, 0x85, 0x05, 0x0f, 0x00, 0x0c,
+ 0x00, 0x00, 0x13, 0x33, 0x1b, 0x01, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x23,
+ 0x0b, 0x01, 0x23, 0x31, 0x68, 0x83, 0x81, 0x7b, 0x83, 0x81, 0x69, 0xa7,
+ 0x7a, 0x89, 0x89, 0x7b, 0x05, 0x0f, 0xfe, 0x17, 0x01, 0xe9, 0xfe, 0x17,
+ 0x01, 0xe9, 0xfd, 0x8d, 0x02, 0x02, 0xfd, 0xfe, 0x00, 0x01, 0x00, 0x22,
+ 0x01, 0xad, 0x02, 0x8d, 0x05, 0x0f, 0x00, 0x11, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3f, 0x01, 0x01,
+ 0x33, 0x1b, 0x01, 0x33, 0x01, 0x76, 0x2d, 0x2a, 0x29, 0x46, 0x54, 0x3d,
+ 0x2b, 0x18, 0x18, 0x1d, 0x13, 0xfe, 0xfe, 0x6f, 0xc7, 0xc6, 0x6e, 0x02,
+ 0x62, 0x70, 0x22, 0x23, 0x57, 0x14, 0x14, 0x4b, 0x2f, 0x02, 0x69, 0xfe,
+ 0x16, 0x01, 0xea, 0x00, 0xff, 0xff, 0x00, 0x90, 0x04, 0x74, 0x01, 0x76,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x12, 0x00, 0x00, 0xff, 0xff, 0x00, 0x90,
+ 0x04, 0x74, 0x02, 0xc5, 0x06, 0x66, 0x10, 0x26, 0x03, 0x12, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x12, 0x01, 0x4f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c,
+ 0x03, 0xe9, 0x01, 0xa5, 0x05, 0xd5, 0x10, 0x06, 0x07, 0x4d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa0, 0x03, 0xfe, 0x01, 0xa8, 0x05, 0xd5, 0x10, 0x06,
+ 0x07, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb0, 0x04, 0xee, 0x01, 0xb9,
+ 0x06, 0xda, 0x00, 0x05, 0x00, 0x00, 0x01, 0x15, 0x13, 0x23, 0x03, 0x35,
+ 0x01, 0x6e, 0x4a, 0x74, 0x94, 0x06, 0xda, 0xac, 0xfe, 0xc0, 0x01, 0x40,
+ 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x03, 0xef, 0x01, 0x60,
+ 0x06, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x35, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x35, 0x32, 0x17, 0x16, 0x14, 0x07, 0x06, 0x69, 0x3a, 0x4f,
+ 0x4f, 0x3a, 0x68, 0x48, 0x47, 0x47, 0x48, 0x03, 0xef, 0x7b, 0x58, 0x40,
+ 0x3f, 0x58, 0x7b, 0x50, 0x4f, 0xe6, 0x50, 0x50, 0x00, 0x01, 0x00, 0x69,
+ 0x03, 0xef, 0x01, 0x60, 0x06, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x22,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x33, 0x15, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x01, 0x60, 0x68, 0x48, 0x47, 0x47, 0x48, 0x68, 0x3a, 0x4f, 0x4f,
+ 0x3a, 0x03, 0xef, 0x50, 0x50, 0xe6, 0x4f, 0x50, 0x7b, 0x58, 0x3f, 0x40,
+ 0x58, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x02, 0x49,
+ 0x06, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x13, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x11, 0x23, 0xf8,
+ 0x24, 0x6c, 0x32, 0x20, 0x01, 0x1f, 0x39, 0x65, 0x2e, 0x2c, 0x2d, 0x2c,
+ 0x2b, 0x2e, 0x2e, 0x30, 0x9d, 0x4e, 0x3d, 0x3d, 0x3f, 0x60, 0x74, 0x04,
+ 0x5b, 0x40, 0x2a, 0x37, 0x4b, 0x24, 0x40, 0x0c, 0x0c, 0x18, 0x60, 0x14,
+ 0x09, 0x0a, 0x58, 0x46, 0x68, 0x5f, 0x40, 0x43, 0x11, 0xfe, 0x93, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x02, 0x49, 0x06, 0x02, 0x00, 0x1c,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x14, 0x17, 0x16, 0x33, 0x01, 0xb9, 0x72, 0x61, 0x40,
+ 0x3d, 0x3e, 0x4f, 0x9b, 0x30, 0x2e, 0x2e, 0x2b, 0x2c, 0x2d, 0x2c, 0x2d,
+ 0x66, 0x38, 0x20, 0x01, 0x21, 0x31, 0x6d, 0x04, 0x5b, 0xfe, 0x41, 0x01,
+ 0x6d, 0x11, 0x43, 0x40, 0x5f, 0x68, 0x46, 0x58, 0x0a, 0x09, 0x14, 0x60,
+ 0x18, 0x0c, 0x0c, 0x40, 0x24, 0x4b, 0x37, 0x2a, 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xf0, 0x04, 0x32, 0x02, 0xaa, 0x06, 0xb0, 0x00, 0x06,
+ 0x00, 0x00, 0x13, 0x25, 0x15, 0x0d, 0x01, 0x15, 0x25, 0xf0, 0x01, 0xb9,
+ 0xfe, 0xbd, 0x01, 0x43, 0xfe, 0x47, 0x05, 0xbb, 0xf5, 0x8b, 0xb4, 0xb4,
+ 0x8b, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0xf0, 0x04, 0x32, 0x02, 0xaa,
+ 0x06, 0xb0, 0x00, 0x06, 0x00, 0x00, 0x01, 0x05, 0x35, 0x2d, 0x01, 0x35,
+ 0x05, 0x02, 0xa9, 0xfe, 0x47, 0x01, 0x43, 0xfe, 0xbd, 0x01, 0xb9, 0x05,
+ 0x27, 0xf5, 0x8b, 0xb4, 0xb4, 0x8b, 0xf5, 0x00, 0x00, 0x01, 0x00, 0xad,
+ 0x04, 0x7c, 0x02, 0xec, 0x06, 0x66, 0x00, 0x06, 0x00, 0x00, 0x01, 0x33,
+ 0x13, 0x23, 0x0b, 0x01, 0x23, 0x01, 0x8a, 0x85, 0xdd, 0x7d, 0xa2, 0xa2,
+ 0x7d, 0x06, 0x66, 0xfe, 0x16, 0x01, 0x67, 0xfe, 0x99, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0x04, 0x7c, 0x02, 0xec, 0x06, 0x66, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x03, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x01, 0x8a, 0xdc,
+ 0x7d, 0xa2, 0xa2, 0x7d, 0xdd, 0x04, 0x7c, 0x01, 0xea, 0xfe, 0x99, 0x01,
+ 0x67, 0xfe, 0x16, 0x00, 0x00, 0x01, 0x00, 0xad, 0x04, 0xee, 0x02, 0xec,
+ 0x06, 0x66, 0x00, 0x06, 0x00, 0x00, 0x01, 0x33, 0x13, 0x23, 0x27, 0x07,
+ 0x23, 0x01, 0x8a, 0x85, 0xdd, 0x7d, 0xa2, 0xa2, 0x7d, 0x06, 0x66, 0xfe,
+ 0x88, 0xf5, 0xf5, 0x00, 0x00, 0x01, 0x00, 0xad, 0x04, 0xee, 0x02, 0xec,
+ 0x06, 0x66, 0x00, 0x06, 0x00, 0x00, 0x01, 0x03, 0x33, 0x17, 0x37, 0x33,
+ 0x03, 0x01, 0x8a, 0xdc, 0x7d, 0xa2, 0xa2, 0x7d, 0xdd, 0x04, 0xee, 0x01,
+ 0x78, 0xf5, 0xf5, 0xfe, 0x88, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0,
+ 0x03, 0xe7, 0x01, 0x3b, 0x06, 0x12, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x01, 0x3b, 0x7a, 0x06, 0x12, 0xfd, 0xd5, 0x02, 0x2b, 0x00,
+ 0xff, 0xff, 0x00, 0xbf, 0x05, 0x62, 0x02, 0xda, 0x05, 0xf6, 0x10, 0x06,
+ 0x00, 0x71, 0x00, 0x00, 0x00, 0x01, 0x01, 0x4d, 0x04, 0xee, 0x02, 0xfd,
+ 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, 0x02, 0x4a,
+ 0xb3, 0xfe, 0xdb, 0x8a, 0x06, 0x66, 0xfe, 0x88, 0x00, 0x01, 0x00, 0x99,
+ 0x04, 0xf0, 0x02, 0x49, 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x01, 0x13,
+ 0x23, 0x01, 0x01, 0x4a, 0xfe, 0x8a, 0xfe, 0xdb, 0x06, 0x66, 0xfe, 0x8a,
+ 0x01, 0x76, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0, 0xfe, 0xd1, 0x01, 0x3b,
+ 0x00, 0xfc, 0x00, 0x03, 0x00, 0x00, 0x25, 0x11, 0x23, 0x11, 0x01, 0x3b,
+ 0x7a, 0xfc, 0xfd, 0xd5, 0x02, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xbf,
+ 0xfe, 0xc0, 0x02, 0xda, 0xff, 0x54, 0x10, 0x07, 0x00, 0x71, 0x00, 0x00,
+ 0xf9, 0x5e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0xfe, 0x1c, 0x02, 0x49,
+ 0xff, 0x92, 0x00, 0x03, 0x00, 0x00, 0x05, 0x13, 0x23, 0x01, 0x01, 0x4a,
+ 0xfe, 0x8a, 0xfe, 0xdb, 0x6e, 0xfe, 0x8a, 0x01, 0x76, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x4d, 0xfe, 0x1c, 0x02, 0xfd, 0xff, 0x94, 0x00, 0x03,
+ 0x00, 0x00, 0x05, 0x33, 0x01, 0x23, 0x02, 0x4a, 0xb3, 0xfe, 0xdb, 0x8a,
+ 0x6c, 0xfe, 0x88, 0x00, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x01, 0xa6,
+ 0x04, 0x23, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x01, 0x03, 0x21, 0x03,
+ 0x13, 0x21, 0x01, 0x04, 0xa0, 0x01, 0x41, 0xa1, 0xa1, 0xfe, 0xbf, 0x02,
+ 0xd9, 0x01, 0x4a, 0xfd, 0x27, 0xfe, 0xb6, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0x02, 0xd9, 0x01, 0xa6, 0x04, 0x23, 0x00, 0x02, 0x00, 0x00, 0x01, 0x03,
+ 0x21, 0x01, 0x04, 0xa0, 0x01, 0x41, 0x02, 0xd9, 0x01, 0x4a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0x01, 0xfe, 0x01, 0x60, 0x04, 0x23, 0x10, 0x07,
+ 0x02, 0x80, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69,
+ 0x01, 0xfe, 0x01, 0x60, 0x04, 0x23, 0x10, 0x07, 0x02, 0x81, 0x00, 0x00,
+ 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x01, 0xd4, 0x02, 0x98,
+ 0x03, 0x96, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x33, 0x11,
+ 0x33, 0x11, 0x02, 0x97, 0xfe, 0x6b, 0x87, 0x87, 0x02, 0x6a, 0x96, 0x96,
+ 0x01, 0x2c, 0xfe, 0xd4, 0x00, 0x01, 0x01, 0x02, 0x01, 0xd4, 0x02, 0x98,
+ 0x03, 0x96, 0x00, 0x07, 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0x23, 0x11,
+ 0x23, 0x11, 0x01, 0x02, 0x01, 0x95, 0x87, 0x87, 0x03, 0x00, 0x96, 0x96,
+ 0xfe, 0xd4, 0x01, 0x2c, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xff, 0x02, 0x75,
+ 0x03, 0x55, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x35, 0x33, 0x15, 0x33, 0x15,
+ 0x23, 0x15, 0x23, 0x35, 0x23, 0x35, 0x01, 0x24, 0x87, 0xc9, 0xc9, 0x87,
+ 0xca, 0x02, 0x75, 0xe0, 0xe0, 0x96, 0xe0, 0xe0, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x01, 0xdf, 0x01, 0xef, 0x02, 0x75, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x01, 0xef, 0xfe, 0x6b, 0x01, 0x95,
+ 0x01, 0xdf, 0x96, 0x00, 0x00, 0x01, 0x00, 0xb3, 0x05, 0x29, 0x02, 0xe7,
+ 0x06, 0x48, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x37, 0x33, 0x0e, 0x01, 0x23, 0x22, 0x26, 0xb3, 0x6a, 0x0a, 0x57,
+ 0x4f, 0x4d, 0x57, 0x0b, 0x6a, 0x08, 0x8f, 0x82, 0x83, 0x8e, 0x06, 0x48,
+ 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0x00, 0x00, 0x01, 0x01, 0x71,
+ 0x05, 0x44, 0x02, 0x29, 0x06, 0x10, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33,
+ 0x15, 0x23, 0x01, 0x71, 0xb8, 0xb8, 0x06, 0x10, 0xcc, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xd6, 0x04, 0xe1, 0x02, 0xc4, 0x07, 0x06, 0x00, 0x0b,
+ 0x00, 0x17, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x02, 0x56, 0x50, 0x39, 0x3b, 0x4e, 0x4e, 0x3b,
+ 0x39, 0x50, 0x6d, 0x8f, 0x67, 0x68, 0x8f, 0x8f, 0x68, 0x67, 0x8f, 0x05,
+ 0xf4, 0x3f, 0x58, 0x57, 0x40, 0x41, 0x57, 0x58, 0x40, 0x73, 0xa0, 0xa0,
+ 0x73, 0x73, 0x9f, 0x9f, 0x00, 0x01, 0x01, 0x2a, 0xfe, 0x75, 0x02, 0x7b,
+ 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x21, 0x33, 0x0e, 0x01, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x01, 0x8c, 0x6b, 0x28, 0x27, 0x31, 0x31, 0x1d, 0x38, 0x1b,
+ 0x22, 0x3d, 0x1b, 0x6e, 0x67, 0x2f, 0x3d, 0x58, 0x1f, 0x2e, 0x2e, 0x0f,
+ 0x0f, 0x85, 0x0a, 0x0a, 0x57, 0x5d, 0x30, 0x69, 0x00, 0x01, 0x00, 0xa3,
+ 0x05, 0x1d, 0x02, 0xf6, 0x06, 0x37, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x27,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x1f, 0x01, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x33, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x01, 0xc9, 0x33, 0x14, 0x1e, 0x0b, 0x23, 0x20, 0x02, 0x70,
+ 0x02, 0x5b, 0x52, 0x23, 0x39, 0x21, 0x34, 0x14, 0x1d, 0x0c, 0x22, 0x21,
+ 0x01, 0x71, 0x02, 0x5c, 0x52, 0x22, 0x3a, 0x05, 0x5a, 0x37, 0x14, 0x13,
+ 0x49, 0x52, 0x87, 0x93, 0x1c, 0x21, 0x37, 0x14, 0x13, 0x49, 0x52, 0x87,
+ 0x93, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0xd8, 0x04, 0xee, 0x03, 0x50,
+ 0x06, 0x66, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x03, 0x23,
+ 0x03, 0x33, 0x03, 0x23, 0x02, 0xb0, 0xa0, 0xdf, 0x7a, 0x74, 0x99, 0xc9,
+ 0x7b, 0x06, 0x66, 0xfe, 0x88, 0x01, 0x78, 0xfe, 0x88, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xff, 0x01, 0xde, 0x02, 0x69, 0x04, 0x08, 0x00, 0x0f,
+ 0x00, 0x00, 0x03, 0x37, 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x07, 0x01, 0xfa, 0xa6, 0x22, 0x22, 0x5f,
+ 0x26, 0x39, 0x9e, 0x4e, 0x4a, 0xf9, 0x03, 0x64, 0xa4, 0x94, 0x99, 0x31,
+ 0x30, 0x9c, 0x60, 0x5a, 0xc8, 0xa2, 0x00, 0x00, 0x00, 0x01, 0x00, 0xd7,
+ 0x04, 0xee, 0x02, 0xc2, 0x06, 0x66, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x27,
+ 0x07, 0x23, 0x37, 0x27, 0x33, 0x17, 0x37, 0x33, 0x07, 0x17, 0x02, 0x20,
+ 0x53, 0x54, 0xa2, 0xa3, 0xa3, 0xa2, 0x54, 0x53, 0xa2, 0xa4, 0xa4, 0x04,
+ 0xee, 0x61, 0x61, 0xbb, 0xbd, 0x60, 0x60, 0xbd, 0xbb, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x69, 0x01, 0xab, 0x02, 0xb1, 0x05, 0x0f, 0x00, 0x0d,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x23, 0x22, 0x35, 0x34,
+ 0x37, 0x03, 0x33, 0x17, 0x37, 0x33, 0x01, 0x06, 0x15, 0x14, 0x33, 0x32,
+ 0x35, 0x34, 0x01, 0xd1, 0xa1, 0xda, 0xf1, 0xa3, 0xe1, 0x7c, 0xab, 0xa5,
+ 0x7b, 0xfe, 0xdd, 0x7b, 0x7a, 0x74, 0x03, 0xdc, 0xf9, 0xb4, 0x84, 0x84,
+ 0xbf, 0xf2, 0x01, 0x2f, 0xe0, 0xe0, 0xfe, 0x8a, 0xae, 0x98, 0x4d, 0x4d,
+ 0x89, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6d, 0x02, 0x9c, 0x00, 0xd7,
+ 0x06, 0x03, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0x6e, 0x68,
+ 0x68, 0x06, 0x03, 0xfc, 0x99, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x02, 0x9c, 0x02, 0x4f, 0x05, 0x2f, 0x00, 0x32, 0x00, 0x00, 0x01, 0x15,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f,
+ 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x2f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x02, 0x2c, 0x2c, 0x30, 0x2e, 0x34, 0x4e, 0x27, 0x26, 0x1b, 0x1c,
+ 0x54, 0x24, 0x71, 0x2d, 0x2e, 0x46, 0x45, 0x7b, 0x33, 0x38, 0x37, 0x3d,
+ 0x3a, 0x39, 0x37, 0x37, 0x4a, 0x4f, 0x1d, 0x19, 0x64, 0x24, 0x61, 0x2b,
+ 0x2b, 0x40, 0x3f, 0x75, 0x39, 0x34, 0x33, 0x05, 0x0d, 0x61, 0x16, 0x0b,
+ 0x0b, 0x17, 0x18, 0x2f, 0x24, 0x14, 0x15, 0x12, 0x08, 0x18, 0x2a, 0x2b,
+ 0x4d, 0x57, 0x33, 0x33, 0x0a, 0x0a, 0x13, 0x6b, 0x1e, 0x0f, 0x0f, 0x32,
+ 0x2d, 0x2a, 0x17, 0x14, 0x17, 0x08, 0x15, 0x29, 0x2a, 0x49, 0x58, 0x30,
+ 0x31, 0x09, 0x08, 0x00, 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x02, 0xd1,
+ 0x05, 0x0f, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x03, 0x13, 0x23, 0x27, 0x07,
+ 0x23, 0x13, 0x03, 0x33, 0x17, 0x37, 0x02, 0xc5, 0xe5, 0xf1, 0x7b, 0xb9,
+ 0xb8, 0x7c, 0xf7, 0xe2, 0x7b, 0xa9, 0xa8, 0x05, 0x0f, 0xfe, 0xcf, 0xfe,
+ 0xbe, 0xf6, 0xf6, 0x01, 0x48, 0x01, 0x2b, 0xdf, 0xdf, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0x02, 0x9c, 0x02, 0x49, 0x06, 0x02, 0x10, 0x06,
+ 0x02, 0x83, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce,
+ 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x02, 0x53, 0xfe, 0x6e, 0x02, 0x0c, 0x04, 0xd0, 0x88, 0xfa, 0xa8, 0x00,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x02, 0x53,
+ 0xfe, 0x6e, 0x01, 0x92, 0x7a, 0x03, 0x9c, 0x88, 0x01, 0x34, 0xfa, 0xa8,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x02, 0x53,
+ 0xfe, 0x6e, 0x01, 0x92, 0x7a, 0x02, 0x68, 0x88, 0x02, 0x68, 0xfa, 0xa8,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x02, 0x53,
+ 0xfe, 0x6e, 0x01, 0x92, 0x7a, 0x01, 0x34, 0x88, 0x03, 0x9c, 0xfa, 0xa8,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x05,
+ 0x00, 0x00, 0x25, 0x11, 0x33, 0x11, 0x21, 0x35, 0x02, 0x53, 0x7a, 0xfd,
+ 0xf4, 0x88, 0x04, 0xd0, 0xfa, 0xa8, 0x88, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0xfd, 0xec, 0x02, 0xec, 0xff, 0xd6, 0x10, 0x07, 0x02, 0x87, 0x00, 0x00,
+ 0xf9, 0x70, 0x00, 0x00, 0xff, 0xff, 0x00, 0xbf, 0x04, 0xe2, 0x02, 0xda,
+ 0x06, 0x76, 0x12, 0x27, 0x00, 0x71, 0x00, 0x00, 0x00, 0x80, 0x12, 0x06,
+ 0x00, 0x71, 0x00, 0x80, 0xff, 0xff, 0x00, 0x9c, 0x03, 0xe9, 0x03, 0x16,
+ 0x05, 0xd5, 0x12, 0x06, 0x07, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0xd6,
+ 0xfe, 0x14, 0x02, 0xc4, 0x00, 0x39, 0x10, 0x07, 0x02, 0x9c, 0x00, 0x00,
+ 0xf9, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa3, 0xfe, 0x76, 0x02, 0xf6,
+ 0xff, 0x90, 0x00, 0x21, 0x00, 0x00, 0x01, 0x27, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x23, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x1f,
+ 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x01, 0xc9, 0x33, 0x14, 0x0f, 0x0f, 0x0b, 0x23,
+ 0x10, 0x10, 0x02, 0x70, 0x02, 0x2e, 0x2d, 0x52, 0x23, 0x39, 0x21, 0x34,
+ 0x14, 0x0f, 0x0e, 0x0c, 0x22, 0x10, 0x11, 0x01, 0x71, 0x02, 0x2e, 0x2e,
+ 0x52, 0x22, 0x3a, 0xfe, 0xb3, 0x37, 0x14, 0x0a, 0x09, 0x25, 0x24, 0x52,
+ 0x87, 0x49, 0x4a, 0x1c, 0x21, 0x37, 0x14, 0x0a, 0x09, 0x25, 0x24, 0x52,
+ 0x87, 0x49, 0x4a, 0x1c, 0x00, 0x02, 0xfc, 0xfd, 0x04, 0x7b, 0xfe, 0xad,
+ 0x06, 0x66, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x01, 0x13, 0x23, 0x09,
+ 0x01, 0xfd, 0xaf, 0xfe, 0x8a, 0xfe, 0xdb, 0x01, 0x35, 0x06, 0x66, 0xfe,
+ 0x8a, 0x01, 0x76, 0xfe, 0x15, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0xb2,
+ 0x04, 0x7b, 0xff, 0x62, 0x06, 0x66, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00,
+ 0x01, 0x33, 0x01, 0x23, 0x17, 0xfe, 0xae, 0xb4, 0xfe, 0xda, 0x8a, 0x81,
+ 0x06, 0x66, 0xfe, 0x88, 0x73, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x14,
+ 0x04, 0x7b, 0xff, 0x53, 0x06, 0x66, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x33, 0x13, 0x23, 0x27, 0x07, 0x23, 0x05, 0xfd, 0xf1, 0x85, 0xdc,
+ 0x7d, 0xa2, 0xa2, 0x7d, 0x01, 0x1f, 0x06, 0x66, 0xfe, 0x88, 0xf5, 0xf5,
+ 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x08, 0x05, 0x1d, 0xff, 0x5b,
+ 0x06, 0x37, 0x10, 0x07, 0x02, 0x9e, 0xfc, 0x65, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x29, 0x05, 0x62, 0xff, 0x44, 0x05, 0xf6, 0x10, 0x07,
+ 0x00, 0x71, 0xfc, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x54,
+ 0x05, 0x7c, 0x00, 0x12, 0x06, 0x0b, 0x10, 0x07, 0x07, 0x73, 0xfc, 0x66,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x12, 0x05, 0x29, 0xff, 0x46,
+ 0x06, 0x48, 0x10, 0x07, 0x02, 0x9a, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xfd, 0xde, 0x04, 0x7b, 0xfe, 0x85, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x04, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x17, 0xfd, 0xdf, 0xa5,
+ 0xa5, 0x54, 0x06, 0x14, 0xe9, 0xb0, 0x00, 0x00, 0x00, 0x03, 0xfd, 0x27,
+ 0x04, 0x7b, 0xff, 0x3f, 0x06, 0x10, 0x00, 0x03, 0x00, 0x07, 0x00, 0x08,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x05, 0xfe,
+ 0x88, 0xb6, 0xb6, 0xfe, 0xa0, 0xb7, 0xb7, 0x01, 0x0b, 0x06, 0x10, 0xca,
+ 0xca, 0xca, 0xcb, 0x00, 0x00, 0x01, 0xfd, 0x7e, 0x04, 0xf2, 0xff, 0x12,
+ 0x06, 0x7b, 0x00, 0x19, 0x00, 0x00, 0x01, 0x36, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x0f, 0x01, 0x06, 0x07, 0x06, 0x15, 0x23, 0x35, 0x34, 0x36, 0x3f,
+ 0x01, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0xfd, 0x7e, 0x65, 0x5e,
+ 0x5e, 0x73, 0x50, 0x27, 0x20, 0x03, 0x07, 0x6b, 0x1c, 0x2d, 0x29, 0x29,
+ 0x38, 0x40, 0x51, 0x5a, 0x06, 0x48, 0x33, 0x55, 0x43, 0x3d, 0x41, 0x20,
+ 0x1a, 0x09, 0x10, 0x20, 0x0c, 0x28, 0x36, 0x25, 0x22, 0x22, 0x28, 0x15,
+ 0x24, 0x34, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x3a, 0x04, 0xe1, 0xff, 0x28,
+ 0x07, 0x06, 0x10, 0x07, 0x02, 0x9c, 0xfc, 0x65, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x42, 0x04, 0xee, 0xff, 0xba, 0x06, 0x66, 0x10, 0x07,
+ 0x02, 0x9f, 0xfc, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x17,
+ 0x04, 0x7b, 0xff, 0x56, 0x06, 0x66, 0x00, 0x06, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x03, 0x33, 0x17, 0x37, 0x33, 0x03, 0x07, 0xfd, 0xf4, 0xdc, 0x7d,
+ 0xa2, 0xa2, 0x7d, 0xdd, 0x46, 0x04, 0xee, 0x01, 0x78, 0xf5, 0xf5, 0xfe,
+ 0x88, 0x73, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xf6, 0x04, 0xec, 0xfe, 0x71,
+ 0x06, 0xa8, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0xfe, 0x70,
+ 0x7a, 0x06, 0xa8, 0xfe, 0x44, 0x01, 0xbc, 0x00, 0xff, 0xff, 0xfd, 0x3e,
+ 0x04, 0xec, 0xff, 0x28, 0x06, 0xa8, 0x10, 0x27, 0x02, 0xbe, 0xff, 0x48,
+ 0x00, 0x00, 0x10, 0x07, 0x02, 0xbe, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xfc, 0xba, 0x04, 0xee, 0xff, 0x32, 0x06, 0x66, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x13, 0x23, 0x03, 0x21, 0x13, 0x23, 0x03,
+ 0xfd, 0x5a, 0xb9, 0x7a, 0xdf, 0x01, 0xcd, 0xab, 0x7b, 0xc9, 0x06, 0x66,
+ 0xfe, 0x88, 0x01, 0x78, 0xfe, 0x88, 0x01, 0x78, 0xff, 0xff, 0xfd, 0x12,
+ 0x05, 0x29, 0xff, 0x46, 0x07, 0x56, 0x10, 0x27, 0x02, 0xb8, 0x00, 0x00,
+ 0x01, 0x42, 0x10, 0x07, 0x02, 0x9a, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x12, 0x05, 0x29, 0xff, 0x46, 0x06, 0x48, 0x00, 0x0c,
+ 0x00, 0x00, 0x03, 0x23, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e,
+ 0x01, 0x20, 0x16, 0xba, 0x6a, 0x0a, 0x58, 0x4e, 0x4d, 0x57, 0x0c, 0x6a,
+ 0x09, 0x8f, 0x01, 0x04, 0x8f, 0x05, 0x29, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f,
+ 0x90, 0x90, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x4f, 0x03, 0xe9, 0xff, 0x57,
+ 0x05, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x23, 0x13, 0x33, 0xf3, 0xbe,
+ 0x94, 0x74, 0x03, 0xe9, 0x01, 0x3f, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xce,
+ 0x04, 0xc2, 0xfe, 0xa8, 0x06, 0xc1, 0x00, 0x08, 0x00, 0x00, 0x01, 0x10,
+ 0x23, 0x35, 0x16, 0x35, 0x23, 0x35, 0x33, 0xfe, 0xa8, 0xda, 0x65, 0x64,
+ 0xd9, 0x05, 0xc3, 0xfe, 0xff, 0x7b, 0x03, 0x89, 0xfe, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0xce, 0x04, 0xc2, 0xfe, 0xa8, 0x06, 0xc1, 0x00, 0x08,
+ 0x00, 0x00, 0x01, 0x35, 0x33, 0x15, 0x23, 0x14, 0x37, 0x15, 0x22, 0xfd,
+ 0xce, 0xd9, 0x64, 0x65, 0xda, 0x05, 0xc3, 0xfe, 0xfe, 0x89, 0x03, 0x7b,
+ 0x00, 0x01, 0xff, 0x86, 0x04, 0x9a, 0x00, 0x7a, 0x06, 0x12, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x33, 0x03, 0x23, 0x3a, 0xb4, 0x6a, 0x8a, 0x06, 0x12,
+ 0xfe, 0x88, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xfd, 0xfd, 0xdf, 0xfe, 0xad,
+ 0xff, 0x55, 0x10, 0x07, 0x00, 0x43, 0xfc, 0x65, 0xf8, 0xef, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0xb2, 0xfd, 0xdd, 0xff, 0x62, 0xff, 0x55, 0x10, 0x07,
+ 0x00, 0x76, 0xfc, 0x65, 0xf8, 0xef, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x6d,
+ 0xfe, 0x14, 0xfe, 0x6a, 0xff, 0xce, 0x00, 0x07, 0x00, 0x00, 0x01, 0x23,
+ 0x35, 0x33, 0x35, 0x33, 0x11, 0x23, 0xfd, 0xfd, 0x90, 0x90, 0x6c, 0x6c,
+ 0xfe, 0xb5, 0x78, 0xa1, 0xfe, 0x46, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xfd,
+ 0xfe, 0x14, 0xfe, 0xfa, 0xff, 0xce, 0x00, 0x07, 0x00, 0x00, 0x05, 0x33,
+ 0x15, 0x33, 0x15, 0x23, 0x15, 0x23, 0xfd, 0xfd, 0x6c, 0x90, 0x90, 0x6c,
+ 0x32, 0xa1, 0x78, 0xa1, 0x00, 0x01, 0xfe, 0x7f, 0x05, 0x86, 0x00, 0x39,
+ 0x07, 0x70, 0x00, 0x05, 0x00, 0x00, 0x03, 0x21, 0x35, 0x21, 0x11, 0x23,
+ 0x42, 0xfe, 0xc2, 0x01, 0xb9, 0x7b, 0x06, 0xe8, 0x88, 0xfe, 0x16, 0x00,
+ 0x00, 0x01, 0xff, 0x0b, 0x03, 0x6b, 0x00, 0x6f, 0x04, 0xe0, 0x00, 0x13,
+ 0x00, 0x00, 0x03, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x27, 0x33, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0xf5, 0x37,
+ 0x4f, 0x1c, 0x2a, 0x29, 0x0e, 0x0d, 0x78, 0x09, 0x09, 0x4f, 0x53, 0x2b,
+ 0x5f, 0x03, 0xd7, 0x77, 0x2d, 0x2b, 0x37, 0x36, 0x20, 0x3e, 0x1f, 0x26,
+ 0x44, 0x1e, 0x7a, 0x73, 0x35, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xc0,
+ 0xfe, 0x12, 0xfe, 0x81, 0xff, 0xbe, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x15, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33,
+ 0xfe, 0x81, 0x51, 0x70, 0x70, 0x51, 0x24, 0x30, 0x30, 0x24, 0xfe, 0x12,
+ 0x7d, 0x5a, 0x59, 0x7c, 0x78, 0x35, 0x27, 0x28, 0x35, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x56, 0xfe, 0x14, 0xff, 0x10, 0xff, 0x4d, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x21, 0x35, 0x33, 0x35, 0x33, 0xfe, 0x70,
+ 0xa0, 0xfe, 0x47, 0x9f, 0x7a, 0xfe, 0x9c, 0x88, 0x88, 0xb1, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x56, 0xfe, 0x14, 0xff, 0x10, 0xff, 0x4d, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x23, 0x35, 0x21, 0x15, 0x23, 0x15, 0x23, 0xfd, 0xf6,
+ 0x9f, 0x01, 0xb9, 0xa0, 0x7a, 0xfe, 0xc5, 0x88, 0x88, 0xb1, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x6d, 0xfe, 0x14, 0xfe, 0xfa, 0xff, 0xce, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23,
+ 0x15, 0x23, 0xfd, 0xfd, 0x90, 0x90, 0x6c, 0x90, 0x90, 0x6c, 0xfe, 0xb5,
+ 0x78, 0xa1, 0xa1, 0x78, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x56,
+ 0xfe, 0x88, 0xff, 0x10, 0xff, 0x10, 0x00, 0x03, 0x00, 0x00, 0x01, 0x35,
+ 0x21, 0x15, 0xfd, 0x57, 0x01, 0xb9, 0xfe, 0x88, 0x88, 0x88, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0xba, 0xfe, 0x56, 0xff, 0xd5, 0x00, 0x80, 0x00, 0x0d,
+ 0x00, 0x00, 0x27, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x3d, 0x01, 0x2b, 0x4a, 0x49, 0xa3, 0xe4, 0xd1, 0x5f, 0x22,
+ 0x22, 0x80, 0x94, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x31, 0x99, 0x94, 0x00,
+ 0x00, 0x01, 0xfd, 0xb7, 0xfe, 0x56, 0xff, 0xd3, 0x00, 0x80, 0x00, 0x0d,
+ 0x00, 0x00, 0x25, 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0xfd, 0xb8, 0xa6, 0x22, 0x22, 0x5e, 0xd2, 0xe4,
+ 0xa3, 0x49, 0x4a, 0x80, 0x94, 0x99, 0x31, 0x30, 0x9c, 0x60, 0x60, 0xd6,
+ 0x00, 0x01, 0xfd, 0xde, 0xfe, 0x89, 0xfe, 0x85, 0xff, 0x73, 0x00, 0x03,
+ 0x00, 0x00, 0x05, 0x33, 0x15, 0x23, 0xfd, 0xdf, 0xa5, 0xa5, 0x8d, 0xea,
+ 0xff, 0xff, 0xfd, 0x26, 0xfe, 0x89, 0xff, 0x3d, 0xff, 0x53, 0x10, 0x07,
+ 0x00, 0x6a, 0xfc, 0x65, 0xf9, 0x43, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x70,
+ 0xfe, 0x12, 0xfe, 0xf2, 0xff, 0xbe, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x37, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16,
+ 0xfe, 0x85, 0x31, 0x23, 0x24, 0x2f, 0x2f, 0x24, 0x23, 0x31, 0x6d, 0x70,
+ 0x51, 0x51, 0x6f, 0x6f, 0x51, 0x51, 0x70, 0xfe, 0xea, 0x26, 0x36, 0x35,
+ 0x27, 0x28, 0x35, 0x36, 0x26, 0x5a, 0x7d, 0x7d, 0x5a, 0x59, 0x7c, 0x7c,
+ 0x00, 0x01, 0xfd, 0xac, 0xfe, 0x14, 0xfe, 0xb4, 0xff, 0x54, 0x00, 0x03,
+ 0x00, 0x00, 0x05, 0x33, 0x03, 0x23, 0xfd, 0xf6, 0xbe, 0x94, 0x74, 0xac,
+ 0xfe, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x6c, 0xfe, 0x75, 0xfe, 0xe1,
+ 0x00, 0x00, 0x10, 0x07, 0x00, 0x7a, 0xfc, 0x66, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x91, 0xfe, 0x75, 0xfe, 0xe1, 0x00, 0x00, 0x10, 0x07,
+ 0x02, 0x9d, 0xfc, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xf6,
+ 0xfe, 0x14, 0xfe, 0x71, 0xff, 0xa0, 0x00, 0x03, 0x00, 0x00, 0x05, 0x11,
+ 0x23, 0x11, 0xfe, 0x70, 0x7a, 0x60, 0xfe, 0x74, 0x01, 0x8c, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x3e, 0xfe, 0x50, 0xff, 0x2f, 0xff, 0x9a, 0x00, 0x07,
+ 0x00, 0x00, 0x07, 0x11, 0x23, 0x35, 0x23, 0x15, 0x23, 0x11, 0xd2, 0x7b,
+ 0xf9, 0x7c, 0x66, 0xfe, 0xb6, 0xc2, 0xc2, 0x01, 0x4a, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfc, 0xbf, 0xfe, 0x39, 0xff, 0xa3, 0xff, 0x58, 0x00, 0x14,
+ 0x00, 0x00, 0x01, 0x06, 0x23, 0x22, 0x03, 0x34, 0x35, 0x33, 0x16, 0x33,
+ 0x32, 0x37, 0x33, 0x16, 0x17, 0x32, 0x37, 0x33, 0x02, 0x07, 0x22, 0xfe,
+ 0x31, 0x36, 0x68, 0xc4, 0x0f, 0x69, 0x0c, 0x5e, 0x5b, 0x0e, 0x6a, 0x0b,
+ 0x5e, 0x5b, 0x0e, 0x6a, 0x0d, 0xc6, 0x68, 0xfe, 0x8b, 0x52, 0x01, 0x1a,
+ 0x02, 0x03, 0x96, 0x96, 0x95, 0x01, 0x96, 0xfe, 0xe2, 0x01, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x17, 0xfe, 0x14, 0xff, 0x56, 0xff, 0x8c, 0x11, 0x07,
+ 0x02, 0x89, 0xfc, 0x6a, 0xf9, 0x26, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x12,
+ 0xfe, 0x14, 0xff, 0x51, 0xff, 0x8c, 0x11, 0x07, 0x02, 0x88, 0xfc, 0x65,
+ 0xf9, 0x26, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x12, 0xfe, 0x39, 0xff, 0x46,
+ 0xff, 0x58, 0x10, 0x07, 0x02, 0x9a, 0xfc, 0x5f, 0xf9, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x12, 0xfe, 0x36, 0xff, 0x46, 0xff, 0x55, 0x00, 0x0c,
+ 0x00, 0x00, 0x03, 0x23, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e,
+ 0x01, 0x20, 0x16, 0xba, 0x6a, 0x0a, 0x58, 0x4e, 0x4d, 0x57, 0x0c, 0x6a,
+ 0x09, 0x8f, 0x01, 0x04, 0x8f, 0xfe, 0x36, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f,
+ 0x90, 0x90, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x08, 0xfe, 0x39, 0xff, 0x5b,
+ 0xff, 0x53, 0x10, 0x07, 0x02, 0x9e, 0xfc, 0x65, 0xf9, 0x1c, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x29, 0xfe, 0xc0, 0xff, 0x44, 0xff, 0x54, 0x10, 0x07,
+ 0x02, 0x8f, 0xfc, 0x6a, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x54,
+ 0xfe, 0x1d, 0x00, 0x12, 0xfe, 0xac, 0x10, 0x07, 0x00, 0x42, 0xfc, 0x66,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x54, 0xfe, 0x1d, 0x00, 0x12,
+ 0xff, 0xee, 0x10, 0x07, 0x07, 0x4c, 0xfc, 0x66, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfb, 0xfe, 0x01, 0xec, 0xff, 0xb6, 0x03, 0x0c, 0x00, 0x1b,
+ 0x00, 0x00, 0x03, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x4b, 0x43, 0x81, 0x47, 0x51, 0x66,
+ 0x13, 0x0a, 0x46, 0x5c, 0x2e, 0x47, 0x7f, 0x42, 0x46, 0x84, 0x4a, 0x30,
+ 0x5a, 0x43, 0x0a, 0x13, 0x69, 0x53, 0x3f, 0x7c, 0x03, 0x0c, 0xae, 0x3b,
+ 0x37, 0x33, 0x0a, 0x04, 0x21, 0x18, 0x3b, 0x3f, 0xae, 0x3c, 0x36, 0x16,
+ 0x1f, 0x05, 0x0a, 0x37, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xb8,
+ 0x01, 0xc4, 0xff, 0x94, 0x02, 0x68, 0x00, 0x03, 0x00, 0x00, 0x03, 0x15,
+ 0x21, 0x35, 0x6c, 0xfe, 0x25, 0x02, 0x68, 0xa4, 0xa4, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfb, 0x6e, 0x01, 0xc4, 0x00, 0x00, 0x02, 0x68, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0xfb, 0x6f, 0x04, 0x90, 0x01, 0xc4,
+ 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x01, 0xfb, 0xdd, 0xff, 0xa2, 0xff, 0xc3,
+ 0x04, 0xbc, 0x00, 0x03, 0x00, 0x00, 0x05, 0x27, 0x01, 0x17, 0xfc, 0x34,
+ 0x56, 0x03, 0x8f, 0x56, 0x5e, 0x4e, 0x04, 0xcc, 0x4f, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfa, 0xa9, 0xff, 0xba, 0xff, 0x9d, 0x06, 0x17, 0x00, 0x03,
+ 0x00, 0x00, 0x05, 0x27, 0x01, 0x17, 0xfb, 0x06, 0x5c, 0x04, 0x96, 0x5c,
+ 0x46, 0x58, 0x06, 0x05, 0x59, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xe7,
+ 0xfe, 0x12, 0xfe, 0xa9, 0xff, 0xbe, 0x00, 0x0d, 0x00, 0x00, 0x05, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x35, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0xfd, 0xe8, 0x51, 0x6f, 0x6f, 0x51, 0x24, 0x2f, 0x2f, 0x24, 0x42, 0x7d,
+ 0x5a, 0x59, 0x7c, 0x78, 0x35, 0x27, 0x28, 0x35, 0x00, 0x01, 0xfd, 0x3f,
+ 0xfe, 0x5b, 0xff, 0x30, 0xff, 0xa5, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x15, 0x33, 0x35, 0x33, 0x11, 0xfd, 0x3f, 0x7c, 0xf9, 0x7b, 0xfe,
+ 0x5b, 0x01, 0x4a, 0xc2, 0xc2, 0xfe, 0xb6, 0x00, 0x00, 0x02, 0xfd, 0x6a,
+ 0xfe, 0x14, 0xff, 0x00, 0xff, 0xd6, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x05, 0x11, 0x21, 0x11, 0x01, 0x35, 0x23, 0x15, 0xff, 0x00, 0xfe, 0x6a,
+ 0x01, 0x2a, 0xbe, 0x2a, 0xfe, 0x3e, 0x01, 0xc2, 0xfe, 0xb6, 0xd2, 0xd2,
+ 0x00, 0x01, 0xfc, 0xbf, 0xfe, 0x39, 0xff, 0xa3, 0xff, 0x58, 0x00, 0x14,
+ 0x00, 0x00, 0x05, 0x36, 0x33, 0x32, 0x13, 0x14, 0x15, 0x23, 0x26, 0x23,
+ 0x22, 0x07, 0x23, 0x26, 0x27, 0x22, 0x07, 0x23, 0x12, 0x37, 0x32, 0xfe,
+ 0x31, 0x36, 0x68, 0xc4, 0x0f, 0x69, 0x0c, 0x5e, 0x5b, 0x0e, 0x6a, 0x0b,
+ 0x5e, 0x5b, 0x0e, 0x6a, 0x0d, 0xc6, 0x68, 0xfa, 0x52, 0xfe, 0xe6, 0x02,
+ 0x03, 0x96, 0x96, 0x95, 0x01, 0x96, 0x01, 0x1e, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x73, 0x04, 0xf3, 0xff, 0x02, 0x06, 0xad, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x37, 0x17, 0x07,
+ 0x17, 0x07, 0xfe, 0x3a, 0x70, 0x56, 0x70, 0x70, 0x56, 0x70, 0x71, 0x56,
+ 0x70, 0x70, 0x56, 0x05, 0x70, 0x7d, 0x60, 0x7d, 0x7d, 0x60, 0x7d, 0x7d,
+ 0x60, 0x7d, 0x7d, 0x60, 0x00, 0x01, 0xfe, 0x38, 0x04, 0xc2, 0xff, 0x37,
+ 0x06, 0xd2, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x37, 0x15, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0xfe, 0x70, 0x1e, 0x19, 0x84, 0x79, 0x49, 0x42, 0x08, 0x0b, 0x10, 0x32,
+ 0x1d, 0x19, 0x84, 0x79, 0x49, 0x42, 0x08, 0x0b, 0x10, 0x05, 0xc7, 0x1c,
+ 0x30, 0x1c, 0x50, 0x51, 0x02, 0x6e, 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0f,
+ 0x0e, 0x2b, 0x1c, 0x30, 0x1c, 0x50, 0x51, 0x02, 0x6e, 0x02, 0x1b, 0x1c,
+ 0x0a, 0x0c, 0x0f, 0x0e, 0xff, 0xff, 0xfc, 0x54, 0x04, 0x3a, 0x00, 0x12,
+ 0x06, 0x0b, 0x10, 0x27, 0x07, 0x73, 0xfc, 0x66, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x73, 0xfc, 0x66, 0xfe, 0xbe, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xfd,
+ 0x04, 0xf0, 0xfe, 0xad, 0x06, 0x66, 0x10, 0x07, 0x00, 0x43, 0xfc, 0x65,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xb2, 0x04, 0xee, 0xff, 0x62,
+ 0x06, 0x66, 0x10, 0x07, 0x00, 0x76, 0xfc, 0x65, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x08, 0x05, 0x1d, 0xff, 0x5b, 0x06, 0x37, 0x10, 0x07,
+ 0x02, 0x9e, 0xfc, 0x65, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xce,
+ 0x04, 0xc2, 0xfe, 0xa8, 0x06, 0xc1, 0x10, 0x06, 0x02, 0xc4, 0x00, 0x00,
+ 0xff, 0xff, 0xfd, 0x36, 0x05, 0x46, 0xff, 0x72, 0x07, 0xd2, 0x10, 0x07,
+ 0x03, 0x1c, 0xfc, 0x75, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xff,
+ 0xfe, 0x56, 0xfe, 0xc5, 0xff, 0xa4, 0x10, 0x07, 0x03, 0x16, 0xfc, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x26, 0x05, 0x1d, 0xff, 0x41,
+ 0x06, 0x49, 0x00, 0x07, 0x00, 0x00, 0x03, 0x23, 0x35, 0x21, 0x15, 0x23,
+ 0x11, 0x21, 0xc0, 0x87, 0xfe, 0xf4, 0x87, 0x02, 0x1a, 0x05, 0x1d, 0x96,
+ 0x96, 0x01, 0x2c, 0x00, 0x00, 0x02, 0xfd, 0x68, 0xfe, 0x32, 0xfe, 0xfe,
+ 0xff, 0xb8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21,
+ 0x35, 0x21, 0x35, 0x21, 0xfe, 0xfe, 0xfe, 0x6b, 0x01, 0x95, 0xfe, 0x6b,
+ 0x01, 0x95, 0xfe, 0x32, 0x78, 0x96, 0x78, 0x00, 0x00, 0x02, 0xfd, 0x5f,
+ 0xfe, 0x14, 0xff, 0x07, 0xff, 0xa0, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x05, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23, 0xfd, 0x60, 0x87, 0x87,
+ 0x01, 0x20, 0x87, 0x87, 0x60, 0xfe, 0x74, 0x01, 0x8c, 0xfe, 0x74, 0x00,
+ 0x00, 0x01, 0xfd, 0x68, 0xfe, 0x14, 0xfe, 0xfe, 0xff, 0xd6, 0x00, 0x05,
+ 0x00, 0x00, 0x05, 0x21, 0x11, 0x23, 0x11, 0x21, 0xfd, 0x69, 0x01, 0x95,
+ 0x87, 0xfe, 0xf2, 0x2a, 0xfe, 0x3e, 0x01, 0x2c, 0x00, 0x01, 0xfd, 0x0a,
+ 0x04, 0xee, 0xff, 0x5d, 0x06, 0x66, 0x00, 0x27, 0x00, 0x00, 0x01, 0x37,
+ 0x33, 0x07, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x07, 0x23, 0x37, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0xfe, 0x32, 0x3c, 0x62, 0x60, 0x09, 0x14, 0x0f, 0x0b, 0x23,
+ 0x10, 0x10, 0x02, 0x70, 0x02, 0x2e, 0x2d, 0x52, 0x23, 0x1c, 0x1b, 0x1e,
+ 0x3b, 0x63, 0x60, 0x0c, 0x12, 0x0e, 0x0c, 0x22, 0x10, 0x11, 0x01, 0x71,
+ 0x02, 0x2e, 0x2e, 0x52, 0x22, 0x1d, 0x1b, 0x05, 0xff, 0x67, 0xa9, 0x09,
+ 0x0e, 0x0a, 0x24, 0x25, 0x52, 0x87, 0x4a, 0x49, 0x0e, 0x0d, 0x1d, 0x67,
+ 0xa8, 0x0b, 0x0d, 0x0a, 0x24, 0x25, 0x52, 0x87, 0x4a, 0x49, 0x0e, 0x0d,
+ 0x00, 0x03, 0xfd, 0x0a, 0x04, 0x89, 0xff, 0x5d, 0x06, 0xcc, 0x00, 0x1d,
+ 0x00, 0x21, 0x00, 0x25, 0x00, 0x00, 0x01, 0x27, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x1d, 0x01, 0x23, 0x34, 0x36, 0x33, 0x32, 0x16, 0x1f, 0x01, 0x1e,
+ 0x01, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x33, 0x0e, 0x01, 0x23, 0x22, 0x26,
+ 0x07, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0xfe, 0x30, 0x34, 0x16,
+ 0x1c, 0x0b, 0x20, 0x24, 0x71, 0x5d, 0x4d, 0x21, 0x37, 0x2b, 0x33, 0x15,
+ 0x1e, 0x0e, 0x1d, 0x24, 0x70, 0x02, 0x5c, 0x4c, 0x1e, 0x36, 0xd0, 0x87,
+ 0x87, 0xbd, 0x87, 0x87, 0x05, 0x68, 0x21, 0x0e, 0x0b, 0x32, 0x2d, 0x06,
+ 0x65, 0x76, 0x10, 0x1b, 0x1e, 0x0d, 0x0c, 0x33, 0x29, 0x06, 0x64, 0x77,
+ 0x10, 0x2e, 0x96, 0x02, 0x43, 0x96, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x0a,
+ 0x04, 0xc5, 0xff, 0x5d, 0x06, 0x90, 0x10, 0x22, 0x10, 0xed, 0x00, 0xb7,
+ 0x10, 0x03, 0x10, 0xed, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x01, 0xfc, 0xbf,
+ 0xfe, 0x28, 0xff, 0xa7, 0xff, 0xc2, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x37,
+ 0x21, 0x17, 0x23, 0x27, 0x37, 0x33, 0x07, 0x21, 0x27, 0x33, 0x17, 0x07,
+ 0xfe, 0x98, 0x77, 0xfe, 0x49, 0x77, 0x72, 0x9d, 0x9d, 0x72, 0x77, 0x01,
+ 0xb7, 0x77, 0x71, 0x9e, 0x9e, 0xfe, 0x28, 0x9b, 0x9b, 0xcd, 0xcd, 0x9b,
+ 0x9b, 0xcd, 0xcd, 0x00, 0x00, 0x01, 0xfd, 0x7a, 0xfe, 0x14, 0xfe, 0xec,
+ 0xff, 0xa4, 0x00, 0x08, 0x00, 0x00, 0x01, 0x23, 0x35, 0x07, 0x35, 0x37,
+ 0x17, 0x15, 0x27, 0xfe, 0x60, 0x5a, 0x8b, 0xb8, 0xb9, 0x8c, 0xfe, 0x14,
+ 0xe7, 0x84, 0x7e, 0xaf, 0xaf, 0x7e, 0x84, 0x00, 0x00, 0x01, 0xfd, 0xb8,
+ 0x04, 0xe1, 0xfe, 0xae, 0x07, 0x06, 0x00, 0x10, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0xfe, 0xae, 0x3a, 0x26, 0x27, 0x27, 0x26, 0x3a, 0x67,
+ 0x46, 0x48, 0x48, 0x46, 0x67, 0x06, 0x8b, 0x01, 0x2a, 0x2c, 0x40, 0x41,
+ 0x2b, 0x2b, 0x01, 0x7b, 0x01, 0x4f, 0x50, 0xe6, 0x50, 0x4e, 0x01, 0x00,
+ 0xff, 0xff, 0xfd, 0x12, 0x04, 0x60, 0xff, 0x46, 0x06, 0xd8, 0x10, 0x27,
+ 0x02, 0xc2, 0x00, 0x00, 0x00, 0x90, 0x10, 0x06, 0x02, 0xb8, 0x00, 0xe5,
+ 0xff, 0xff, 0xfd, 0x73, 0xfe, 0x14, 0xff, 0x02, 0xff, 0xce, 0x10, 0x07,
+ 0x02, 0xee, 0x00, 0x00, 0xf9, 0x21, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xb8,
+ 0x04, 0xe1, 0xfe, 0xae, 0x07, 0x06, 0x00, 0x12, 0x00, 0x00, 0x01, 0x30,
+ 0x35, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x30, 0x35, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0xfd, 0xb9, 0x66, 0x47, 0x48, 0x48, 0x47,
+ 0x66, 0x39, 0x26, 0x28, 0x28, 0x26, 0x06, 0x8b, 0x7b, 0x01, 0x4e, 0x50,
+ 0xe6, 0x50, 0x4f, 0x01, 0x7b, 0x01, 0x2b, 0x2b, 0x41, 0x40, 0x2c, 0x2a,
+ 0xff, 0xff, 0xff, 0x43, 0x05, 0x44, 0xff, 0xfb, 0x06, 0x10, 0x10, 0x07,
+ 0x02, 0x9b, 0xfd, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc, 0xe8,
+ 0xfe, 0x12, 0xff, 0x7e, 0xff, 0xbf, 0x00, 0x07, 0x00, 0x15, 0x00, 0x1d,
+ 0x00, 0x00, 0x00, 0x16, 0x32, 0x3e, 0x01, 0x26, 0x22, 0x06, 0x37, 0x36,
+ 0x32, 0x16, 0x14, 0x06, 0x22, 0x27, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32,
+ 0x12, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0xfd, 0x55, 0x30, 0x47,
+ 0x2f, 0x02, 0x31, 0x47, 0x30, 0xde, 0x38, 0xa3, 0x70, 0x70, 0xa4, 0x37,
+ 0x38, 0xa3, 0x70, 0x70, 0xa3, 0xe5, 0x31, 0x31, 0x47, 0x30, 0x30, 0xfe,
+ 0xc3, 0x35, 0x35, 0x4d, 0x37, 0x35, 0x6d, 0x3f, 0x7c, 0xb3, 0x7d, 0x41,
+ 0x40, 0x7d, 0xb3, 0x7c, 0xfe, 0xce, 0x36, 0x4d, 0x36, 0x35, 0x4f, 0x35,
+ 0xff, 0xff, 0xfc, 0xcb, 0xfe, 0x1b, 0x03, 0x35, 0xff, 0x85, 0x10, 0x07,
+ 0x07, 0x74, 0xfd, 0x1b, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xcb,
+ 0x06, 0x6b, 0x03, 0x35, 0x07, 0xd5, 0x10, 0x07, 0x07, 0x74, 0xfd, 0x1b,
+ 0x08, 0x50, 0x00, 0x00, 0x00, 0x01, 0xfc, 0xcb, 0x06, 0xd7, 0x03, 0x35,
+ 0x07, 0x6b, 0x00, 0x03, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0xfc, 0xcb,
+ 0x06, 0x6a, 0xf9, 0x96, 0x07, 0x6b, 0x94, 0x00, 0x00, 0x01, 0xfc, 0xcb,
+ 0xfe, 0xc0, 0x03, 0x35, 0xff, 0x54, 0x00, 0x03, 0x00, 0x00, 0x05, 0x21,
+ 0x15, 0x21, 0xfc, 0xcb, 0x06, 0x6a, 0xf9, 0x96, 0xac, 0x94, 0x00, 0x00,
+ 0x00, 0x01, 0xfd, 0x72, 0x06, 0x0d, 0x02, 0x8e, 0x07, 0x27, 0x00, 0x23,
+ 0x00, 0x00, 0x03, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07,
+ 0x23, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x1f, 0x01, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x04, 0x81, 0x19, 0x48, 0x27, 0x21, 0x5a, 0x30, 0x3f, 0x05,
+ 0x91, 0x03, 0x66, 0x65, 0xb4, 0x52, 0x38, 0x34, 0x51, 0x81, 0x19, 0x48,
+ 0x27, 0x21, 0x57, 0x33, 0x40, 0x04, 0x91, 0x03, 0x66, 0x65, 0xb4, 0x52,
+ 0x38, 0x34, 0x06, 0x4a, 0x37, 0x0b, 0x12, 0x0a, 0x24, 0x30, 0x47, 0x87,
+ 0x4a, 0x49, 0x0e, 0x0d, 0x22, 0x37, 0x0b, 0x12, 0x0a, 0x24, 0x2c, 0x4b,
+ 0x87, 0x4a, 0x49, 0x0e, 0x0d, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xcb,
+ 0x06, 0x04, 0x03, 0x35, 0x07, 0x6e, 0x10, 0x07, 0x07, 0x75, 0xfd, 0x1b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0xd1, 0xfe, 0x28, 0x03, 0x38,
+ 0xff, 0xc2, 0x00, 0x08, 0x00, 0x00, 0x01, 0x35, 0x21, 0x27, 0x33, 0x17,
+ 0x07, 0x23, 0x37, 0xfc, 0xd2, 0x05, 0xcd, 0x76, 0x71, 0x9e, 0x9e, 0x71,
+ 0x76, 0xfe, 0xc3, 0x64, 0x9b, 0xcd, 0xcd, 0x9b, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x00, 0x05, 0xd5, 0x10, 0x06, 0x0e, 0x40, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x03, 0x6f, 0x04, 0x60, 0x10, 0x06,
+ 0x0e, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x80,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0xb5, 0x04, 0xcb, 0xb6, 0xfe, 0xac,
+ 0xb7, 0xfe, 0xac, 0xb6, 0x05, 0xd5, 0xfc, 0xf4, 0x02, 0x62, 0xfa, 0xd5,
+ 0x05, 0x2b, 0xfd, 0x9e, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf5,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x11, 0x23, 0x11, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0xb5, 0x03, 0x3f, 0xa5, 0xa7, 0xa6,
+ 0xa7, 0xa6, 0x05, 0xd5, 0xfc, 0xf4, 0x02, 0x62, 0xfa, 0xd5, 0x05, 0x2b,
+ 0xfd, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x90, 0x04, 0x74, 0x01, 0x76,
+ 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x1b, 0x01, 0x33, 0x03, 0x90, 0x3a,
+ 0xac, 0x64, 0x04, 0x74, 0x01, 0xf2, 0xfe, 0x0e, 0x00, 0x01, 0x00, 0x90,
+ 0xfe, 0x56, 0x01, 0x76, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x25, 0x03,
+ 0x23, 0x13, 0x01, 0x76, 0x3b, 0xab, 0x63, 0x48, 0xfe, 0x0e, 0x01, 0xf2,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x05, 0xd5, 0x10, 0x06,
+ 0x03, 0xac, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07,
+ 0x04, 0x60, 0x10, 0x06, 0x03, 0xcc, 0x00, 0x00, 0x00, 0x01, 0x01, 0x8a,
+ 0xfe, 0x56, 0x02, 0x51, 0xff, 0xa4, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x23,
+ 0x22, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01,
+ 0x02, 0x50, 0x85, 0x17, 0x18, 0x12, 0x86, 0x09, 0x0b, 0x0d, 0x1f, 0xfe,
+ 0x56, 0x21, 0x1a, 0x2e, 0xe5, 0xe5, 0x0e, 0x0c, 0x0d, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90, 0x04, 0x7b, 0x10, 0x06,
+ 0x02, 0x16, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x10, 0x27, 0x00, 0x79, 0x01, 0x2e, 0xff, 0x84, 0x10, 0x06,
+ 0x00, 0x46, 0x00, 0x00, 0xff, 0xff, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90,
+ 0x04, 0x7b, 0x10, 0x27, 0x00, 0x79, 0x00, 0x80, 0xff, 0x84, 0x10, 0x06,
+ 0x02, 0x16, 0x00, 0x00, 0xff, 0xff, 0x00, 0x8e, 0xff, 0x12, 0x01, 0x96,
+ 0x04, 0x23, 0x12, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x01, 0x4d,
+ 0x04, 0xee, 0x02, 0xfd, 0x06, 0x66, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33,
+ 0x01, 0x23, 0x02, 0x4a, 0xb3, 0xfe, 0xdb, 0x8a, 0x06, 0x66, 0xfe, 0x88,
+ 0xff, 0xff, 0x00, 0xc1, 0x05, 0x46, 0x02, 0xfd, 0x07, 0xd2, 0x12, 0x26,
+ 0x00, 0x6a, 0x00, 0x00, 0x11, 0x07, 0x03, 0x1b, 0x00, 0x00, 0x01, 0x6c,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0xfe, 0xf7, 0x00, 0x00, 0x10, 0x06,
+ 0x03, 0x26, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc5, 0x02, 0x48, 0x01, 0x83,
+ 0x03, 0x46, 0x12, 0x06, 0x00, 0x79, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe9,
+ 0x00, 0x00, 0x04, 0xea, 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0xfe, 0x9c,
+ 0x00, 0x00, 0x10, 0x07, 0x03, 0x2a, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x05, 0x83, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x1b, 0xfe, 0xa6, 0x00, 0x00, 0x10, 0x07, 0x03, 0x2c, 0x00, 0xcd,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x02, 0x3e,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0xfe, 0xa1, 0x00, 0x00, 0x10, 0x07,
+ 0x03, 0x2e, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf3,
+ 0xff, 0xe3, 0x05, 0x68, 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0xfe, 0xa6,
+ 0x00, 0x00, 0x10, 0x06, 0x03, 0x34, 0x24, 0x00, 0xff, 0xff, 0xff, 0xe4,
+ 0x00, 0x00, 0x05, 0xe9, 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0xfe, 0x96,
+ 0x00, 0x00, 0x10, 0x07, 0x03, 0x39, 0x01, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xde, 0x00, 0x00, 0x05, 0x6b, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x1b, 0xfe, 0x91, 0x00, 0x00, 0x10, 0x06, 0x03, 0x3d, 0x31, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x02, 0x40, 0x07, 0xd2, 0x10, 0x27,
+ 0x03, 0x1c, 0xff, 0x43, 0x00, 0x00, 0x12, 0x06, 0x03, 0x4d, 0x0e, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x24, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x25, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0xb5, 0x03, 0x44, 0xfd, 0x72, 0x05, 0xd5, 0xaa,
+ 0xfa, 0xd5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01, 0x21, 0x05,
+ 0x01, 0x33, 0x01, 0x02, 0x76, 0xfe, 0x8f, 0x02, 0xe3, 0xfc, 0x26, 0x02,
+ 0x01, 0xcf, 0x02, 0x00, 0x05, 0x0e, 0xfb, 0x9a, 0xa8, 0x05, 0xd5, 0xfa,
+ 0x2b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52,
+ 0x00, 0x00, 0x04, 0x9c, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x3d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x2b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x05, 0xf0, 0x00, 0x03, 0x00, 0x12, 0x00, 0x21, 0x00, 0x00, 0x01, 0x21,
+ 0x15, 0x21, 0x01, 0x22, 0x07, 0x06, 0x11, 0x10, 0x12, 0x33, 0x32, 0x37,
+ 0x36, 0x11, 0x10, 0x27, 0x26, 0x27, 0x20, 0x00, 0x11, 0x10, 0x07, 0x06,
+ 0x21, 0x20, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x01, 0x98, 0x02, 0x7b,
+ 0xfd, 0x85, 0x01, 0x3e, 0xc6, 0x74, 0x75, 0xe9, 0xc6, 0xc6, 0x74, 0x74,
+ 0x74, 0x74, 0xc6, 0x01, 0x1b, 0x01, 0x52, 0xa9, 0xa9, 0xfe, 0xe5, 0xfe,
+ 0xe5, 0xaa, 0xa9, 0xa9, 0xaa, 0x03, 0x70, 0xaa, 0x02, 0x86, 0xa4, 0xa4,
+ 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8, 0xa4, 0xa4, 0x01, 0x1a, 0x01, 0x1b,
+ 0xa4, 0xa4, 0xa4, 0xfe, 0x5b, 0xfe, 0x9e, 0xfe, 0x9f, 0xd2, 0xd3, 0xd2,
+ 0xd2, 0x01, 0x62, 0x01, 0x62, 0xd3, 0xd2, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x01, 0x6b, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x2c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x2e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x33, 0x23, 0x01, 0x33, 0x01, 0x23,
+ 0x01, 0xce, 0xc0, 0x02, 0x01, 0xcf, 0x02, 0x00, 0xbd, 0xfe, 0x55, 0x05,
+ 0xd5, 0xfa, 0x2b, 0x05, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x30, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf2,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21,
+ 0x15, 0x21, 0x03, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x01, 0x13,
+ 0x02, 0x80, 0xfd, 0x80, 0x5e, 0x03, 0x3d, 0xfc, 0xc3, 0x03, 0x3d, 0xfc,
+ 0xc3, 0x03, 0x71, 0xaa, 0x03, 0x0e, 0xaa, 0xfb, 0x7f, 0xaa, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x12, 0x06,
+ 0x00, 0x32, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6,
+ 0x05, 0xd5, 0x12, 0x06, 0x03, 0xb3, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x33, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x25, 0x21, 0x15, 0x21, 0x35, 0x09, 0x01, 0x35, 0x21, 0x15,
+ 0x21, 0x01, 0x01, 0x86, 0x02, 0x91, 0xfc, 0x9e, 0x01, 0xaf, 0xfe, 0x51,
+ 0x03, 0x51, 0xfd, 0x80, 0x01, 0xaf, 0xaa, 0xaa, 0xaa, 0x02, 0x70, 0x02,
+ 0x11, 0xaa, 0xaa, 0xfd, 0xf3, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa,
+ 0x00, 0x00, 0x04, 0x6c, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x37, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x3c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67, 0x00, 0x00, 0x05, 0x44,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x11, 0x00, 0x27, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x33, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x03, 0x26, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36,
+ 0x37, 0x35, 0x33, 0x15, 0x16, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x07,
+ 0x15, 0x23, 0x02, 0x7b, 0x87, 0x58, 0x75, 0x75, 0x58, 0x87, 0xb6, 0x87,
+ 0x58, 0x74, 0x74, 0x58, 0x87, 0xb6, 0xdb, 0x8e, 0xaa, 0xaa, 0x8d, 0xdc,
+ 0xb6, 0xdc, 0x8d, 0xa9, 0xa9, 0x8d, 0xdc, 0xb6, 0x04, 0x8e, 0x15, 0x57,
+ 0x73, 0xc6, 0xc5, 0x73, 0x57, 0x15, 0x15, 0x57, 0x73, 0xc5, 0xc6, 0x73,
+ 0x57, 0x15, 0xfc, 0x10, 0x16, 0x86, 0xa0, 0x01, 0x0f, 0x01, 0x0f, 0xa1,
+ 0x87, 0x16, 0x9f, 0x9f, 0x17, 0x86, 0xa1, 0xfe, 0xf1, 0xfe, 0xf2, 0xa1,
+ 0x86, 0x17, 0x9d, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0x00, 0x00, 0x05, 0x46, 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x00, 0x21, 0x36,
+ 0x27, 0x22, 0x27, 0x26, 0x03, 0x11, 0x33, 0x11, 0x10, 0x17, 0x16, 0x17,
+ 0x11, 0x33, 0x11, 0x36, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x02, 0x07,
+ 0x06, 0x23, 0x06, 0x17, 0x02, 0x7b, 0x01, 0x01, 0xc0, 0xaa, 0xa5, 0x04,
+ 0xbf, 0x75, 0x63, 0x7c, 0xb6, 0x7d, 0x63, 0x74, 0xc0, 0x05, 0xa5, 0xa9,
+ 0xc1, 0x01, 0x01, 0x86, 0xb0, 0xd2, 0xcc, 0x01, 0x68, 0x01, 0x99, 0xfe,
+ 0x67, 0xfe, 0xe6, 0xa4, 0x8c, 0x0e, 0x03, 0xf1, 0xfc, 0x0f, 0x0e, 0x8c,
+ 0xa4, 0x01, 0x1a, 0x01, 0x99, 0xfe, 0x67, 0xfe, 0x98, 0xcc, 0xd2, 0x48,
+ 0xee, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x46, 0x00, 0x00, 0x05, 0x3b,
+ 0x05, 0xe7, 0x00, 0x26, 0x00, 0x00, 0x25, 0x15, 0x21, 0x35, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x02, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x15, 0x21, 0x35, 0x21, 0x26, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36,
+ 0x21, 0x20, 0x17, 0x16, 0x11, 0x14, 0x07, 0x06, 0x07, 0x05, 0x3a, 0xfd,
+ 0xe4, 0xa0, 0x59, 0x59, 0x77, 0x77, 0xc2, 0xc3, 0xee, 0x59, 0x5a, 0xa0,
+ 0xfd, 0xe4, 0x01, 0x1f, 0x8e, 0x41, 0x41, 0xac, 0xac, 0x01, 0x13, 0x01,
+ 0x11, 0xad, 0xad, 0x40, 0x40, 0x91, 0xb2, 0xb2, 0xb2, 0x61, 0xa6, 0xa6,
+ 0xca, 0xf0, 0x91, 0x91, 0xfe, 0xdd, 0xef, 0xca, 0xa6, 0xa6, 0x61, 0xb2,
+ 0xb2, 0x8b, 0x95, 0x95, 0xb8, 0x01, 0x3e, 0xc5, 0xc5, 0xc5, 0xc4, 0xfe,
+ 0xcb, 0xc2, 0x94, 0x94, 0x8d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0x00, 0x00, 0x02, 0x1c, 0x07, 0x4e, 0x10, 0x27, 0x10, 0xeb, 0x02, 0xde,
+ 0x01, 0x75, 0x13, 0x06, 0x03, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xeb, 0x03, 0xff, 0x01, 0x75, 0x13, 0x06, 0x03, 0x39, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67,
+ 0x06, 0x66, 0x12, 0x26, 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x03, 0x1b,
+ 0x63, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77, 0xff, 0xe3, 0x03, 0x68,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x1b, 0x48, 0x00, 0x12, 0x06, 0x03, 0x49,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x1b, 0x00, 0xb2, 0x00, 0x00, 0x12, 0x06,
+ 0x03, 0x4b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x95, 0x00, 0x00, 0x02, 0x56,
+ 0x06, 0x66, 0x12, 0x26, 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x03, 0x1b,
+ 0xff, 0x59, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0,
+ 0x07, 0xd2, 0x12, 0x26, 0x03, 0x59, 0x00, 0x00, 0x10, 0x06, 0x03, 0x1c,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67,
+ 0x04, 0x79, 0x00, 0x0d, 0x00, 0x2a, 0x00, 0x00, 0x01, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x1b, 0x01,
+ 0x33, 0x03, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11, 0x10, 0x37,
+ 0x36, 0x33, 0x20, 0x02, 0xf9, 0x27, 0x29, 0xa0, 0x78, 0x37, 0x46, 0x43,
+ 0x45, 0x6d, 0x79, 0x40, 0x94, 0x59, 0x94, 0xb9, 0x24, 0x08, 0x20, 0x25,
+ 0x1d, 0x4f, 0x63, 0x55, 0x4b, 0x25, 0x10, 0x29, 0x54, 0x29, 0x80, 0xd3,
+ 0x67, 0x69, 0x72, 0x7f, 0xb2, 0x01, 0x18, 0x02, 0x09, 0xe7, 0xed, 0x6e,
+ 0x8a, 0xb6, 0xdc, 0x69, 0x6b, 0xd5, 0x01, 0xe7, 0x01, 0x25, 0xfd, 0xa1,
+ 0xdb, 0x31, 0x29, 0x30, 0x9c, 0x54, 0x2a, 0x58, 0x6f, 0x57, 0x29, 0x98,
+ 0x9d, 0x01, 0x13, 0x01, 0x26, 0x8a, 0x9a, 0x00, 0x00, 0x02, 0x00, 0xac,
+ 0xfe, 0x56, 0x04, 0x14, 0x06, 0x21, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00,
+ 0x25, 0x11, 0x23, 0x11, 0x10, 0x21, 0x20, 0x11, 0x10, 0x07, 0x16, 0x11,
+ 0x10, 0x21, 0x22, 0x03, 0x16, 0x33, 0x20, 0x11, 0x10, 0x05, 0x35, 0x20,
+ 0x11, 0x34, 0x23, 0x22, 0x11, 0x01, 0x53, 0xa6, 0x01, 0x7f, 0x01, 0x87,
+ 0x9b, 0xfc, 0xfe, 0x4e, 0xbf, 0x50, 0x64, 0xb1, 0x01, 0x04, 0xfe, 0x5e,
+ 0x01, 0x47, 0xd3, 0xeb, 0x45, 0xfe, 0x11, 0x06, 0x03, 0x01, 0xc8, 0xfe,
+ 0x7f, 0xfe, 0xee, 0x64, 0x5a, 0xfe, 0xf5, 0xfe, 0x26, 0x01, 0x4a, 0xad,
+ 0x01, 0x3a, 0x01, 0x1a, 0x16, 0xaa, 0x01, 0x40, 0xdb, 0xfe, 0xc8, 0x00,
+ 0x00, 0x01, 0x00, 0x1c, 0xfe, 0x56, 0x04, 0x0c, 0x04, 0x60, 0x00, 0x0e,
+ 0x00, 0x00, 0x01, 0x13, 0x01, 0x33, 0x01, 0x11, 0x23, 0x11, 0x01, 0x26,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x01, 0x45, 0xdc, 0x01, 0x3b, 0xb0, 0xfe,
+ 0x68, 0xa5, 0xfe, 0xf7, 0x27, 0x56, 0x2c, 0x3f, 0xb1, 0x03, 0xb0, 0xfd,
+ 0x4c, 0x03, 0x64, 0xfb, 0xa0, 0xfe, 0x56, 0x01, 0xaa, 0x03, 0x44, 0x7e,
+ 0x9e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x05, 0xf0, 0x00, 0x1c, 0x00, 0x2d, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22,
+ 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x11, 0x34, 0x37, 0x36, 0x37, 0x26, 0x35, 0x10, 0x21, 0x32,
+ 0x17, 0x01, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x03, 0x88, 0x5c, 0xd7, 0xe4, 0xee,
+ 0xba, 0x6a, 0x80, 0x7b, 0x7c, 0xd8, 0xd7, 0x7c, 0x7b, 0x7b, 0x30, 0x43,
+ 0x8c, 0x01, 0x8d, 0xc7, 0x6c, 0xfe, 0x48, 0x3d, 0x31, 0x4e, 0x4d, 0x4d,
+ 0x86, 0x85, 0x9a, 0x51, 0x58, 0x71, 0x3a, 0x05, 0x11, 0x46, 0x75, 0x5c,
+ 0x30, 0x25, 0x70, 0x87, 0xfe, 0xeb, 0xfe, 0xf7, 0x9c, 0x9d, 0x9d, 0x9c,
+ 0x01, 0x13, 0xcc, 0xa5, 0x40, 0x24, 0x4f, 0x8d, 0x01, 0x10, 0x46, 0xfe,
+ 0x28, 0x1d, 0x49, 0x71, 0xcc, 0xcb, 0x72, 0x73, 0xe8, 0xbe, 0xc7, 0x60,
+ 0x67, 0x0b, 0x06, 0x00, 0x00, 0x01, 0x00, 0x77, 0xff, 0xe3, 0x03, 0x68,
+ 0x04, 0x7c, 0x00, 0x32, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x01, 0x64, 0x65,
+ 0x36, 0x36, 0x66, 0x66, 0xb0, 0x45, 0x99, 0x58, 0x57, 0x48, 0x49, 0x40,
+ 0x6b, 0x3e, 0x3f, 0x3d, 0x3c, 0x69, 0x8b, 0x85, 0x7b, 0x41, 0x46, 0x4b,
+ 0x4d, 0x88, 0x53, 0x4d, 0x4c, 0x40, 0x51, 0x4b, 0x4d, 0x48, 0xd6, 0x74,
+ 0x74, 0x7c, 0x02, 0x5c, 0x18, 0x41, 0x40, 0x5d, 0x8d, 0x4f, 0x4e, 0x18,
+ 0x18, 0xa7, 0x1d, 0x0d, 0x0d, 0x2e, 0x2e, 0x40, 0x46, 0x2d, 0x2c, 0x98,
+ 0x33, 0x38, 0x58, 0x5a, 0x38, 0x38, 0x12, 0x13, 0x25, 0xab, 0x1c, 0x0e,
+ 0x0e, 0x5b, 0x5b, 0xad, 0x6c, 0x92, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60,
+ 0xfe, 0x52, 0x03, 0x93, 0x06, 0x14, 0x00, 0x1d, 0x00, 0x00, 0x25, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x34, 0x35, 0x16, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x20, 0x03, 0x10, 0x01, 0x21, 0x35, 0x21,
+ 0x15, 0x00, 0x11, 0x10, 0x02, 0x83, 0x76, 0x47, 0x4c, 0x42, 0x49, 0x92,
+ 0x3e, 0x26, 0x1d, 0x1d, 0x1d, 0x33, 0xfd, 0xde, 0x01, 0x02, 0x02, 0xfe,
+ 0x21, 0x03, 0x0f, 0xfd, 0x75, 0x7f, 0x01, 0x4b, 0x4f, 0x78, 0x73, 0x50,
+ 0x57, 0x4b, 0x4c, 0x05, 0x2c, 0x23, 0x25, 0x35, 0x2c, 0x2a, 0x02, 0x33,
+ 0x01, 0xec, 0x01, 0x59, 0xb9, 0xb9, 0xfe, 0x94, 0xfe, 0x27, 0xfe, 0x69,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x04, 0x7b, 0x00, 0x15,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x03, 0xf4, 0xa6, 0x70, 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b, 0x51, 0x50,
+ 0x6a, 0xad, 0x59, 0x5a, 0x02, 0xa4, 0xfb, 0xb2, 0x04, 0x48, 0x9f, 0x9e,
+ 0xbe, 0xa4, 0xfd, 0x87, 0x04, 0x60, 0xae, 0x65, 0x32, 0x32, 0x77, 0x78,
+ 0x00, 0x03, 0x00, 0x65, 0xff, 0xe9, 0x04, 0x03, 0x06, 0x24, 0x00, 0x08,
+ 0x00, 0x11, 0x00, 0x21, 0x00, 0x00, 0x01, 0x21, 0x12, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x13, 0x02, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x03,
+ 0x01, 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x11, 0x10, 0x37, 0x36, 0x03, 0x52, 0xfd, 0xc3, 0x0e, 0x3e, 0x4d, 0x86,
+ 0x87, 0x4b, 0x42, 0x08, 0x1a, 0x30, 0x4d, 0x85, 0x8a, 0x48, 0x3a, 0x11,
+ 0x01, 0x1d, 0xd8, 0x7c, 0x7b, 0x7b, 0x7c, 0xd8, 0xd9, 0x7a, 0x7b, 0x7b,
+ 0x7a, 0x02, 0xc6, 0xfe, 0xd5, 0x7f, 0x9c, 0x9d, 0x8a, 0x01, 0xc9, 0x01,
+ 0x1c, 0x64, 0x9e, 0x9c, 0x7e, 0xfe, 0xfc, 0x02, 0xb4, 0xd4, 0xd3, 0xfe,
+ 0x8a, 0xfe, 0x8b, 0xd4, 0xd5, 0xd5, 0xd4, 0x01, 0x75, 0x01, 0x76, 0xd3,
+ 0xd4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x95, 0x00, 0x00, 0x02, 0x30,
+ 0x04, 0x60, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x14, 0x17, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35, 0x03, 0x01, 0x40, 0x1e, 0x20,
+ 0x62, 0x50, 0x64, 0xa2, 0x4a, 0x4a, 0x01, 0x04, 0x60, 0xfd, 0x2b, 0x91,
+ 0x2e, 0x30, 0x9c, 0x60, 0x62, 0xd4, 0x02, 0xca, 0x00, 0x01, 0x00, 0xab,
+ 0x00, 0x00, 0x04, 0x12, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x07, 0x11, 0x23, 0xac, 0xab,
+ 0x01, 0xb3, 0xc9, 0xfe, 0x73, 0x01, 0xcb, 0xca, 0xfe, 0x8b, 0x7b, 0xab,
+ 0x04, 0x60, 0xfe, 0x2f, 0x01, 0xd1, 0xfe, 0x5a, 0xfd, 0x46, 0x02, 0x42,
+ 0x81, 0xfe, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c,
+ 0x06, 0x14, 0x00, 0x0d, 0x00, 0x00, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23,
+ 0x01, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x17, 0x16, 0x02, 0x3b, 0x01, 0xd1,
+ 0xb0, 0xfe, 0xe6, 0xfe, 0xa4, 0xaf, 0x01, 0xba, 0x43, 0x2a, 0x60, 0x57,
+ 0x69, 0xcc, 0x05, 0x65, 0xfa, 0x9b, 0x03, 0x3c, 0xfc, 0xc4, 0x04, 0x32,
+ 0xc6, 0x7e, 0x9e, 0x02, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c,
+ 0xfe, 0x56, 0x04, 0x68, 0x04, 0x60, 0x10, 0x06, 0x00, 0x77, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x42, 0x00, 0x00, 0x03, 0xb0, 0x04, 0x60, 0x00, 0x15,
+ 0x00, 0x00, 0x21, 0x01, 0x33, 0x01, 0x36, 0x37, 0x36, 0x37, 0x36, 0x27,
+ 0x26, 0x27, 0x33, 0x31, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x01, 0x76, 0xfe, 0xcd, 0xb2, 0x01, 0x04, 0x6c, 0x5a, 0x45, 0x03, 0x02,
+ 0x16, 0x19, 0x60, 0xa8, 0x3e, 0x29, 0x26, 0x7a, 0xa0, 0x6e, 0x04, 0x60,
+ 0xfc, 0x54, 0x7c, 0xac, 0x81, 0x70, 0x35, 0x64, 0x77, 0x83, 0x59, 0x7c,
+ 0x72, 0x4e, 0xc4, 0xaf, 0xe4, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60,
+ 0xfe, 0x52, 0x03, 0x9b, 0x06, 0x14, 0x00, 0x26, 0x00, 0x00, 0x25, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x34, 0x35, 0x16, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x20, 0x11, 0x10, 0x25, 0x26, 0x11, 0x34,
+ 0x37, 0x23, 0x35, 0x21, 0x15, 0x20, 0x11, 0x14, 0x05, 0x15, 0x24, 0x13,
+ 0x12, 0x02, 0x91, 0x77, 0x47, 0x4b, 0x42, 0x49, 0x92, 0x3e, 0x26, 0x1d,
+ 0x1d, 0x1c, 0x34, 0xfd, 0xcf, 0x01, 0x2c, 0xfc, 0xc6, 0xbb, 0x02, 0xc6,
+ 0xfd, 0xca, 0x01, 0xdb, 0xfd, 0xff, 0x02, 0x01, 0x7f, 0x01, 0x4b, 0x4f,
+ 0x78, 0x73, 0x50, 0x57, 0x4b, 0x4c, 0x05, 0x2c, 0x23, 0x25, 0x35, 0x2c,
+ 0x2a, 0x01, 0xb5, 0x01, 0x2c, 0x58, 0x24, 0x01, 0x04, 0xc5, 0x52, 0xb9,
+ 0xb9, 0xfe, 0xdd, 0xbf, 0x09, 0xaa, 0x16, 0xfe, 0xbc, 0xfe, 0xf1, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x12, 0x06,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x42, 0xff, 0xd9, 0x04, 0x23,
+ 0x04, 0x60, 0x00, 0x17, 0x00, 0x00, 0x13, 0x21, 0x15, 0x23, 0x11, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35,
+ 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x43, 0x03, 0xc5, 0x7f, 0x2d, 0x31,
+ 0x0d, 0x28, 0x06, 0x1f, 0x43, 0x21, 0x6c, 0x53, 0xfe, 0x8c, 0xa9, 0x80,
+ 0x04, 0x60, 0xb8, 0xfd, 0x50, 0x48, 0x3f, 0x05, 0x01, 0x85, 0x0d, 0x0c,
+ 0x83, 0xb0, 0x02, 0x9c, 0xfc, 0x58, 0x03, 0xa8, 0x00, 0x02, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x00,
+ 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22,
+ 0x26, 0x27, 0x11, 0x23, 0x11, 0x34, 0x05, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0xf8, 0x37, 0x88, 0x35, 0xa4, 0xb8,
+ 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x34, 0xa7, 0x02, 0xda, 0x96, 0x83, 0x84,
+ 0x96, 0x96, 0x84, 0x83, 0x96, 0x03, 0x98, 0x66, 0x5a, 0x23, 0xfe, 0xbc,
+ 0xfe, 0xf8, 0xfe, 0xf8, 0xfe, 0xbc, 0x61, 0x64, 0xfd, 0xae, 0x03, 0xcf,
+ 0xe7, 0xdd, 0xcb, 0xe7, 0xe7, 0xcb, 0xcb, 0xe7, 0xe7, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x65, 0xfe, 0x52, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x24,
+ 0x00, 0x00, 0x05, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x16, 0x17,
+ 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x34, 0x35, 0x16, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x02, 0x64, 0xf2, 0xfe, 0xf4, 0x01, 0x0f, 0xeb, 0x4d,
+ 0x92, 0x44, 0x46, 0x8d, 0x48, 0xa2, 0xb2, 0xb2, 0x9e, 0x76, 0x48, 0x4c,
+ 0x43, 0x49, 0x92, 0x3e, 0x26, 0x1d, 0x1d, 0x1c, 0x1d, 0x01, 0x3e, 0x01,
+ 0x0e, 0x01, 0x12, 0x01, 0x3a, 0x23, 0x23, 0xac, 0x2b, 0x2b, 0xe3, 0xcd,
+ 0xcd, 0xe3, 0x4c, 0x4f, 0x78, 0x73, 0x50, 0x57, 0x4b, 0x4c, 0x05, 0x2c,
+ 0x23, 0x25, 0x35, 0x2c, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x5b, 0x04, 0x60, 0x00, 0x0d, 0x00, 0x1e, 0x00, 0x00,
+ 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x27, 0x21, 0x15, 0x23, 0x16, 0x15, 0x10, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x02, 0x34, 0x89, 0x49, 0x4e,
+ 0x9a, 0x86, 0x85, 0x9a, 0x4d, 0x47, 0x8b, 0x02, 0x26, 0xb9, 0x62, 0x7b,
+ 0x7c, 0xd8, 0xd9, 0x7a, 0x7b, 0x7b, 0x66, 0x03, 0xce, 0x6e, 0x73, 0xbe,
+ 0xc9, 0xe7, 0xe8, 0xc8, 0xb7, 0x7a, 0x6e, 0x92, 0xb8, 0x9c, 0xdd, 0xfe,
+ 0xed, 0x9c, 0x9d, 0x9d, 0x9c, 0x01, 0x13, 0x01, 0x15, 0x9b, 0x81, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x03, 0xfc, 0x04, 0x60, 0x00, 0x11,
+ 0x00, 0x00, 0x25, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35,
+ 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x14, 0x02, 0x9c, 0x20, 0x62,
+ 0x50, 0x64, 0xa2, 0x4a, 0x4a, 0xfe, 0x86, 0x03, 0xa2, 0xfe, 0x82, 0xcc,
+ 0x30, 0x9c, 0x60, 0x62, 0xd4, 0x02, 0x12, 0xb8, 0xb8, 0xfd, 0xe3, 0x91,
+ 0x00, 0x01, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0, 0x04, 0x60, 0x00, 0x1c,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x36, 0x27, 0x26, 0x27, 0x33, 0x31, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x27, 0x22, 0x27, 0x26, 0x35, 0x03, 0x01, 0x30, 0x2e, 0x31, 0x60,
+ 0x87, 0x5e, 0x36, 0x0d, 0x07, 0x1b, 0x19, 0x5f, 0xa7, 0x3f, 0x29, 0x25,
+ 0x73, 0x8c, 0xe5, 0xa1, 0x5a, 0x59, 0x01, 0x04, 0x60, 0xfd, 0x2b, 0x87,
+ 0x40, 0x45, 0xd0, 0x76, 0xbb, 0x66, 0x80, 0x77, 0x83, 0x5a, 0x7b, 0x73,
+ 0x9a, 0xfd, 0xbb, 0xe4, 0x01, 0x78, 0x76, 0xc5, 0x02, 0xca, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x64, 0xfe, 0x56, 0x04, 0x56, 0x04, 0x68, 0x00, 0x0a,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x22, 0x15, 0x11, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23,
+ 0x11, 0x23, 0x11, 0x22, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x11, 0x10, 0x02, 0xea,
+ 0x3a, 0x55, 0x55, 0x4d, 0x4d, 0x40, 0x30, 0x7e, 0x73, 0x7b, 0x7b, 0x75,
+ 0xb6, 0xa5, 0xb4, 0x77, 0x7b, 0x7b, 0x5b, 0x95, 0x3b, 0x34, 0x4e, 0x4d,
+ 0x46, 0x65, 0x03, 0xcb, 0x91, 0xfd, 0x52, 0x68, 0x5d, 0xdf, 0xd0, 0x70,
+ 0x5b, 0x9d, 0x84, 0x8d, 0xfe, 0xd9, 0xfe, 0xf1, 0xa1, 0x98, 0xfe, 0x6e,
+ 0x01, 0x91, 0x99, 0x9c, 0x01, 0x13, 0x01, 0x1e, 0x92, 0x6d, 0x1c, 0xa3,
+ 0x17, 0x4e, 0x73, 0xbe, 0xca, 0x73, 0x67, 0x02, 0xaf, 0x01, 0x2e, 0x00,
+ 0x00, 0x01, 0x00, 0x35, 0xfe, 0x55, 0x03, 0xf4, 0x04, 0x61, 0x00, 0x17,
+ 0x00, 0x00, 0x05, 0x03, 0x01, 0x23, 0x01, 0x03, 0x26, 0x2b, 0x01, 0x35,
+ 0x17, 0x16, 0x17, 0x13, 0x01, 0x33, 0x01, 0x13, 0x16, 0x3b, 0x01, 0x15,
+ 0x27, 0x26, 0x02, 0x92, 0x85, 0xfe, 0xeb, 0xc3, 0x01, 0x87, 0xa4, 0x2c,
+ 0x8b, 0x2c, 0x3f, 0xe8, 0x3a, 0x86, 0x01, 0x14, 0xc4, 0xfe, 0x79, 0xa4,
+ 0x2c, 0x8b, 0x2c, 0x3f, 0xe9, 0xfa, 0x01, 0x7f, 0xfd, 0xd0, 0x03, 0x18,
+ 0x01, 0xd7, 0x7e, 0x9e, 0x02, 0x07, 0xa7, 0xfe, 0x81, 0x02, 0x30, 0xfc,
+ 0xe8, 0xfe, 0x29, 0x7e, 0x9e, 0x02, 0x07, 0x00, 0x00, 0x01, 0x00, 0x64,
+ 0xfe, 0x56, 0x04, 0x56, 0x04, 0x60, 0x00, 0x1b, 0x00, 0x00, 0x05, 0x26,
+ 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x17, 0x11, 0x33,
+ 0x11, 0x36, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x07,
+ 0x11, 0x23, 0x02, 0x0b, 0xd0, 0x60, 0x76, 0xa7, 0x4d, 0x43, 0x6f, 0xa5,
+ 0x76, 0x3c, 0x4c, 0xa8, 0x76, 0x6a, 0xc6, 0xa5, 0x19, 0x25, 0x61, 0x77,
+ 0xf3, 0x02, 0x89, 0xfd, 0x7e, 0xb7, 0x4c, 0x42, 0x0e, 0x03, 0xd5, 0xfc,
+ 0x2c, 0x0e, 0x42, 0x54, 0xaf, 0x02, 0x81, 0xfd, 0x78, 0xfc, 0x6e, 0x63,
+ 0x23, 0xfe, 0x6e, 0x00, 0x00, 0x01, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a,
+ 0x04, 0x60, 0x00, 0x1a, 0x00, 0x00, 0x05, 0x20, 0x11, 0x34, 0x13, 0x33,
+ 0x02, 0x15, 0x10, 0x33, 0x32, 0x11, 0x33, 0x10, 0x33, 0x32, 0x11, 0x34,
+ 0x03, 0x33, 0x12, 0x15, 0x10, 0x21, 0x22, 0x03, 0x02, 0x01, 0xef, 0xfe,
+ 0x8b, 0x8b, 0xb2, 0x81, 0xc8, 0xb7, 0x99, 0xb7, 0xc7, 0x80, 0xb2, 0x8c,
+ 0xfe, 0x8a, 0xf5, 0x1d, 0x25, 0x1d, 0x02, 0x52, 0xeb, 0x01, 0x40, 0xfe,
+ 0xc0, 0xf0, 0xfe, 0x4f, 0x02, 0x1a, 0xfd, 0xe6, 0x01, 0xb1, 0xf0, 0x01,
+ 0x40, 0xfe, 0xc0, 0xeb, 0xfd, 0xae, 0x01, 0x2b, 0xfe, 0xd5, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x02, 0x3e, 0x06, 0x10, 0x12, 0x26,
+ 0x03, 0x4d, 0x0e, 0x00, 0x10, 0x07, 0x00, 0x6a, 0xff, 0x43, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x10, 0x10, 0x26,
+ 0x00, 0x6a, 0x1a, 0x00, 0x12, 0x06, 0x03, 0x59, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x1b, 0x70, 0x00, 0x12, 0x06, 0x03, 0x53, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x1b, 0x1f, 0x00, 0x12, 0x06, 0x03, 0x59, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x66, 0x12, 0x26,
+ 0x03, 0x5d, 0x00, 0x00, 0x10, 0x07, 0x03, 0x1b, 0x01, 0x36, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x04, 0xe0, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x01, 0x33, 0x09, 0x02, 0x23, 0x13, 0x01,
+ 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x5b, 0xea, 0xfd, 0x65, 0x02, 0xca, 0xfe,
+ 0xb7, 0x79, 0xf5, 0xfd, 0x59, 0xb6, 0x05, 0xd5, 0xfd, 0x89, 0x02, 0x77,
+ 0xfd, 0x48, 0xfc, 0xe3, 0xfe, 0x56, 0x01, 0x84, 0x02, 0xf5, 0xfd, 0x31,
+ 0x00, 0x03, 0x00, 0x96, 0xff, 0xe9, 0x03, 0xdf, 0x06, 0x24, 0x00, 0x0a,
+ 0x00, 0x1b, 0x00, 0x27, 0x00, 0x00, 0x01, 0x32, 0x36, 0x37, 0x36, 0x37,
+ 0x34, 0x23, 0x22, 0x07, 0x06, 0x01, 0x16, 0x15, 0x14, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x02, 0x37, 0x36, 0x17, 0x1e, 0x01, 0x12, 0x06, 0x07, 0x06,
+ 0x23, 0x10, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x34, 0x26, 0x01, 0x45,
+ 0x48, 0xb7, 0x3d, 0x6c, 0x01, 0xb7, 0x6e, 0x53, 0x31, 0x01, 0xbd, 0xdd,
+ 0x35, 0x72, 0xfe, 0x40, 0x7d, 0x64, 0x02, 0x6c, 0x79, 0xbd, 0x94, 0xc4,
+ 0x02, 0x54, 0xe2, 0x50, 0xc9, 0x34, 0x48, 0x9d, 0x81, 0x4e, 0x16, 0x9b,
+ 0x03, 0x70, 0x04, 0x3d, 0x6c, 0x93, 0xde, 0xba, 0x6c, 0xfe, 0xc7, 0xa7,
+ 0xe9, 0x82, 0x5f, 0xd5, 0xd5, 0xa8, 0x03, 0x2c, 0xbe, 0xd5, 0x01, 0x01,
+ 0xe2, 0xfe, 0xe5, 0xb6, 0x96, 0x14, 0xfe, 0xea, 0x80, 0xb0, 0x9c, 0x2d,
+ 0xd1, 0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe9, 0x04, 0x03,
+ 0x06, 0x24, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x34, 0x27, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x20, 0x27, 0x26, 0x11,
+ 0x34, 0x36, 0x33, 0x32, 0x12, 0x10, 0x00, 0x20, 0x02, 0x11, 0x17, 0x15,
+ 0x10, 0x12, 0x20, 0x12, 0x03, 0x50, 0x2c, 0x3c, 0x86, 0x4a, 0x6c, 0x6c,
+ 0x43, 0xf7, 0xfe, 0xeb, 0x76, 0xbd, 0xbb, 0x9d, 0xc4, 0xdd, 0xff, 0x00,
+ 0xfe, 0x53, 0xf0, 0xa9, 0x9e, 0x01, 0x11, 0x94, 0x03, 0x70, 0xf6, 0x7e,
+ 0xaa, 0x89, 0x5a, 0xaa, 0x5a, 0x37, 0xaa, 0x41, 0x69, 0x01, 0x36, 0xa0,
+ 0xde, 0xfe, 0x64, 0xfc, 0xfc, 0xfe, 0x65, 0x01, 0xb6, 0x01, 0xd2, 0x01,
+ 0xa0, 0xfe, 0xf3, 0xfe, 0xbd, 0x01, 0x42, 0x00, 0x00, 0x01, 0x00, 0x4e,
+ 0x00, 0x00, 0x04, 0xc9, 0x05, 0xdf, 0x00, 0x20, 0x00, 0x00, 0x01, 0x06,
+ 0x03, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x27, 0x02, 0x27, 0x26, 0x22,
+ 0x07, 0x35, 0x36, 0x32, 0x17, 0x04, 0x13, 0x12, 0x25, 0x36, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x03, 0xd9, 0x90, 0x4a, 0x26,
+ 0xb7, 0x26, 0x49, 0x90, 0x46, 0x6b, 0x24, 0x1c, 0x64, 0x4d, 0x01, 0x22,
+ 0x41, 0x60, 0x01, 0x03, 0x22, 0x56, 0x25, 0x4b, 0x0f, 0x17, 0x44, 0x77,
+ 0x05, 0x11, 0x48, 0xfe, 0xf3, 0x8d, 0xa5, 0xfd, 0x76, 0x02, 0x8a, 0xa5,
+ 0x8d, 0x01, 0x0d, 0x48, 0x23, 0x09, 0xaa, 0x0a, 0x0d, 0x30, 0xfe, 0x72,
+ 0x01, 0x7b, 0x43, 0x09, 0x20, 0x40, 0x5b, 0x29, 0x2f, 0x42, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x05, 0xf8, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x1b, 0xfe, 0x96, 0x00, 0x00, 0x10, 0x07, 0x03, 0x66, 0x01, 0x2e,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4e, 0x00, 0x00, 0x04, 0xc9,
+ 0x07, 0x4e, 0x10, 0x27, 0x10, 0xeb, 0x04, 0x4b, 0x01, 0x75, 0x12, 0x06,
+ 0x03, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x64, 0xfe, 0x56, 0x04, 0x56,
+ 0x06, 0x14, 0x00, 0x15, 0x00, 0x1e, 0x00, 0x27, 0x00, 0x00, 0x01, 0x11,
+ 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x11, 0x23, 0x11, 0x22,
+ 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x33, 0x11, 0x13, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x27, 0x26, 0x23, 0x03, 0x11, 0x22, 0x07, 0x06, 0x17, 0x16,
+ 0x17, 0x16, 0x02, 0xb0, 0xb3, 0x78, 0x7b, 0x7b, 0x78, 0xb3, 0xa5, 0xb4,
+ 0x77, 0x7b, 0x7b, 0x77, 0xb4, 0xa5, 0x65, 0x45, 0x4c, 0x01, 0x01, 0x4e,
+ 0x45, 0x65, 0xa5, 0x66, 0x45, 0x4e, 0x01, 0x01, 0x4c, 0x45, 0x06, 0x14,
+ 0xfe, 0x63, 0x99, 0x9c, 0xfe, 0xed, 0xfe, 0xed, 0x9c, 0x99, 0xfe, 0x6f,
+ 0x01, 0x91, 0x99, 0x9c, 0x01, 0x13, 0x01, 0x13, 0x9c, 0x99, 0x01, 0x9d,
+ 0xfa, 0x77, 0x67, 0x73, 0xca, 0xc8, 0x75, 0x67, 0xfc, 0xb8, 0x03, 0x48,
+ 0x67, 0x75, 0xc8, 0xca, 0x73, 0x67, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3a,
+ 0xff, 0xe3, 0x05, 0xc9, 0x04, 0x60, 0x00, 0x10, 0x00, 0x1e, 0x00, 0x00,
+ 0x13, 0x35, 0x21, 0x15, 0x23, 0x16, 0x15, 0x10, 0x25, 0x26, 0x03, 0x02,
+ 0x23, 0x20, 0x11, 0x34, 0x37, 0x29, 0x01, 0x06, 0x15, 0x10, 0x33, 0x32,
+ 0x03, 0x33, 0x02, 0x37, 0x36, 0x11, 0x34, 0x3a, 0x05, 0x8e, 0x84, 0x46,
+ 0xfe, 0x8a, 0xf4, 0x1e, 0x25, 0xee, 0xfe, 0x8b, 0x45, 0x03, 0xce, 0xfc,
+ 0xe9, 0x40, 0xc8, 0xbb, 0x04, 0x99, 0x04, 0xbb, 0xc7, 0x03, 0xa8, 0xb8,
+ 0xb8, 0xcf, 0xa4, 0xfd, 0xad, 0x01, 0x01, 0x01, 0x2a, 0xfe, 0xd5, 0x02,
+ 0x52, 0xa4, 0xcf, 0xd1, 0xa7, 0xfe, 0x4f, 0x02, 0x1a, 0xfd, 0xe3, 0x03,
+ 0x03, 0x01, 0xae, 0xa7, 0x00, 0x01, 0x00, 0x64, 0xfe, 0x5b, 0x04, 0x53,
+ 0x04, 0x67, 0x00, 0x39, 0x00, 0x00, 0x05, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x07, 0x02, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x01, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x35, 0x36, 0x33, 0x32, 0x17, 0x04, 0x11,
+ 0x14, 0x07, 0x37, 0x12, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x01, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x02, 0x07, 0x06, 0x22, 0x27,
+ 0x35, 0x16, 0x33, 0x32, 0x03, 0x93, 0xdd, 0x1e, 0x09, 0x0c, 0xaa, 0x57,
+ 0xb4, 0x31, 0x1f, 0x31, 0x01, 0x07, 0x37, 0x0c, 0x18, 0x7f, 0x34, 0x52,
+ 0x3a, 0x52, 0x17, 0x19, 0x01, 0x00, 0x1a, 0xaa, 0x56, 0xb4, 0x32, 0x1f,
+ 0x31, 0xfe, 0xf9, 0x37, 0x0c, 0x18, 0x7f, 0x34, 0x51, 0x22, 0xb8, 0x3f,
+ 0x92, 0x54, 0x56, 0x41, 0x94, 0x0a, 0x20, 0xf0, 0x49, 0x81, 0x35, 0x6c,
+ 0xfe, 0xf7, 0x7c, 0x22, 0x4f, 0x9a, 0x01, 0x09, 0x8a, 0x7a, 0x3a, 0x36,
+ 0x68, 0x6c, 0xe0, 0x30, 0x04, 0x27, 0xfe, 0xc3, 0x5b, 0x4d, 0x6c, 0x01,
+ 0x09, 0x7c, 0x22, 0x4f, 0x9a, 0xfe, 0xf7, 0x8a, 0x7a, 0x3a, 0x36, 0x68,
+ 0x6c, 0xfd, 0xe0, 0x66, 0x24, 0x31, 0xa0, 0x31, 0x00, 0x02, 0x00, 0x67,
+ 0xfe, 0x58, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x00,
+ 0x05, 0x11, 0x23, 0x11, 0x26, 0x27, 0x26, 0x10, 0x37, 0x36, 0x21, 0x20,
+ 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x02, 0x20, 0x07, 0x06, 0x11, 0x10,
+ 0x17, 0x16, 0x20, 0x37, 0x36, 0x11, 0x10, 0x27, 0x03, 0x2a, 0xa6, 0xe2,
+ 0x90, 0xaa, 0xaa, 0xa9, 0x01, 0x1b, 0x01, 0x1b, 0xa9, 0xa9, 0xa9, 0x8f,
+ 0x6f, 0xfe, 0x74, 0x74, 0x75, 0x75, 0x74, 0x01, 0x8c, 0x74, 0x74, 0x74,
+ 0x18, 0xfe, 0x70, 0x01, 0x90, 0x1a, 0xb3, 0xd2, 0x02, 0xc4, 0xd3, 0xd2,
+ 0xd2, 0xd3, 0xfe, 0x9e, 0xfe, 0x9f, 0xd2, 0xb3, 0x05, 0x49, 0xa4, 0xa4,
+ 0xfe, 0xe5, 0xfe, 0xe6, 0xa4, 0xa4, 0xa4, 0xa4, 0x01, 0x1a, 0x01, 0x1b,
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x03,
+ 0x04, 0x7b, 0x00, 0x0d, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06,
+ 0x10, 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x03, 0x11,
+ 0x23, 0x11, 0x26, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x33, 0x32, 0x12,
+ 0x11, 0x10, 0x07, 0x06, 0x02, 0x34, 0x85, 0x4d, 0x4e, 0x4d, 0x4d, 0x86,
+ 0x85, 0x9a, 0x4d, 0x4d, 0x34, 0x99, 0xab, 0x60, 0x7b, 0x7b, 0x7a, 0xd9,
+ 0xd8, 0xf7, 0x7b, 0x60, 0x03, 0xdf, 0x73, 0x74, 0xfe, 0x6e, 0x74, 0x73,
+ 0xe8, 0xc8, 0xc7, 0x74, 0x75, 0xfc, 0x09, 0xfe, 0x6e, 0x01, 0x92, 0x1b,
+ 0x7d, 0x9c, 0x01, 0x13, 0x01, 0x14, 0x9c, 0x9c, 0xfe, 0xc8, 0xfe, 0xec,
+ 0xfe, 0xed, 0x9c, 0x7b, 0x00, 0x01, 0x00, 0x7d, 0xfe, 0x52, 0x04, 0x34,
+ 0x05, 0xd5, 0x00, 0x24, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x11, 0x10,
+ 0x17, 0x16, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x34,
+ 0x35, 0x16, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x20, 0x27, 0x26,
+ 0x11, 0x10, 0x37, 0x36, 0x29, 0x01, 0x15, 0x02, 0xf2, 0xf2, 0x56, 0x6f,
+ 0x52, 0x62, 0xb4, 0x6e, 0x50, 0x4b, 0x42, 0x48, 0x93, 0x3e, 0x26, 0x1d,
+ 0x1d, 0x1c, 0x34, 0xfe, 0xe0, 0x80, 0x86, 0xa7, 0x7c, 0x01, 0x52, 0x01,
+ 0x42, 0x05, 0x2b, 0x77, 0x98, 0xfe, 0xcd, 0xfe, 0xb5, 0x7f, 0x98, 0x54,
+ 0x4f, 0x78, 0x73, 0x50, 0x57, 0x4b, 0x4c, 0x05, 0x2c, 0x23, 0x25, 0x35,
+ 0x2c, 0x2a, 0xcb, 0xd6, 0x01, 0x65, 0x01, 0x4e, 0xed, 0xb1, 0xaa, 0x00,
+ 0x00, 0x01, 0x00, 0x65, 0xfe, 0x52, 0x03, 0xe3, 0x04, 0x60, 0x00, 0x20,
+ 0x00, 0x00, 0x05, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x21, 0x15, 0x21,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x34, 0x35, 0x16, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x02,
+ 0x2a, 0xb8, 0xfe, 0xf4, 0x01, 0x0f, 0xeb, 0x01, 0x82, 0xfe, 0x86, 0xa2,
+ 0xb2, 0xb2, 0x64, 0x75, 0x48, 0x4c, 0x43, 0x48, 0x92, 0x3e, 0x26, 0x1c,
+ 0x1c, 0x1d, 0x1d, 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x12, 0x01, 0x1f, 0x9c,
+ 0xc7, 0xce, 0xcd, 0xe3, 0x4c, 0x4f, 0x78, 0x73, 0x50, 0x57, 0x4b, 0x4c,
+ 0x05, 0x2c, 0x23, 0x25, 0x35, 0x2c, 0x2a, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xba, 0x05, 0xd5, 0x12, 0x06, 0x00, 0x29, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0x53, 0xfe, 0x56, 0x02, 0xf3, 0x06, 0x14, 0x00, 0x27,
+ 0x00, 0x00, 0x33, 0x11, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0xd6, 0x7b, 0x56, 0x98, 0x2c, 0x2d,
+ 0x2c, 0x2e, 0x20, 0x25, 0x25, 0x28, 0x6c, 0x34, 0x43, 0x01, 0x21, 0xfe,
+ 0xdf, 0x7d, 0x59, 0x9b, 0x34, 0x2e, 0x2d, 0x2a, 0x2c, 0x2d, 0x2d, 0x2b,
+ 0x4f, 0x39, 0x4a, 0x04, 0x82, 0xa0, 0x8e, 0x64, 0x09, 0x09, 0x12, 0xa4,
+ 0x1c, 0x0e, 0x0f, 0x3e, 0x51, 0x6f, 0xfe, 0xc9, 0x8f, 0xfd, 0x3f, 0x92,
+ 0xa5, 0x73, 0x0a, 0x0b, 0x16, 0xa4, 0x1f, 0x10, 0x11, 0x4b, 0x5f, 0x00,
+ 0x00, 0x01, 0x00, 0xa1, 0xff, 0xfc, 0x04, 0x59, 0x05, 0xd5, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x03, 0x01, 0x03, 0x06, 0x17, 0x16, 0x37, 0x15, 0x22,
+ 0x27, 0x26, 0x37, 0x13, 0x01, 0x13, 0x36, 0x27, 0x26, 0x07, 0x35, 0x32,
+ 0x17, 0x16, 0x01, 0xfd, 0x63, 0x02, 0xbe, 0xd2, 0x23, 0x18, 0x3b, 0x76,
+ 0xcf, 0x49, 0x55, 0x11, 0x8b, 0xfd, 0x52, 0x9b, 0x23, 0x19, 0x3b, 0x76,
+ 0xcf, 0x49, 0x55, 0x04, 0x87, 0xfe, 0x5b, 0x01, 0x7e, 0xfd, 0x2c, 0x60,
+ 0x2a, 0x6c, 0x23, 0xbd, 0x46, 0x52, 0xb6, 0x01, 0xda, 0xfe, 0x91, 0x02,
+ 0x90, 0x60, 0x2a, 0x6c, 0x23, 0xbd, 0x46, 0x52, 0x00, 0x01, 0x00, 0xab,
+ 0x00, 0x00, 0x04, 0x14, 0x06, 0x13, 0x00, 0x07, 0x00, 0x00, 0x01, 0x03,
+ 0x23, 0x13, 0x21, 0x13, 0x33, 0x03, 0x04, 0x14, 0xfd, 0xa5, 0xcb, 0xfd,
+ 0x6f, 0xfd, 0xa5, 0xcb, 0x03, 0x70, 0xfc, 0x90, 0x02, 0xc6, 0x03, 0x4d,
+ 0xfd, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66, 0xfe, 0x56, 0x05, 0xbd,
+ 0x05, 0xf0, 0x00, 0x21, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x06, 0x07,
+ 0x35, 0x36, 0x21, 0x20, 0x13, 0x12, 0x11, 0x10, 0x03, 0x23, 0x12, 0x11,
+ 0x10, 0x27, 0x06, 0x07, 0x06, 0x15, 0x11, 0x23, 0x36, 0x11, 0x34, 0x3f,
+ 0x01, 0x02, 0x21, 0x22, 0x02, 0x16, 0x99, 0xb9, 0x5d, 0xbb, 0x01, 0x5b,
+ 0x01, 0xaa, 0xd5, 0xc1, 0xde, 0xca, 0xea, 0x4a, 0x4a, 0x55, 0x3a, 0xb8,
+ 0x02, 0xa3, 0xa9, 0xbb, 0xfe, 0xc6, 0x2b, 0x05, 0x3a, 0xfd, 0x8c, 0x02,
+ 0x49, 0x4b, 0x69, 0xc6, 0xcf, 0xfe, 0xce, 0xfe, 0xec, 0xfd, 0xc2, 0xfe,
+ 0x58, 0xfe, 0x92, 0x01, 0x4c, 0x01, 0xca, 0x01, 0xd1, 0x7d, 0x2f, 0x4d,
+ 0x34, 0xd0, 0xfd, 0xc6, 0x21, 0x02, 0x14, 0xf7, 0x8f, 0x8d, 0x01, 0x04,
+ 0x00, 0x01, 0x00, 0x6b, 0xfe, 0x90, 0x04, 0x21, 0x04, 0x78, 0x00, 0x16,
+ 0x00, 0x00, 0x01, 0x03, 0x23, 0x01, 0x26, 0x27, 0x01, 0x23, 0x01, 0x26,
+ 0x27, 0x26, 0x23, 0x35, 0x20, 0x17, 0x16, 0x13, 0x12, 0x11, 0x23, 0x10,
+ 0x27, 0x03, 0x16, 0xd7, 0xa6, 0x01, 0x40, 0x0d, 0x2d, 0xfe, 0x73, 0xa7,
+ 0x01, 0xe9, 0x58, 0x2a, 0xa9, 0xbe, 0x01, 0x0f, 0xda, 0xc9, 0x9b, 0x69,
+ 0x98, 0x56, 0x01, 0x34, 0xfe, 0xcc, 0x01, 0xc0, 0x23, 0x4d, 0xfd, 0xd0,
+ 0x02, 0xb0, 0x7f, 0x21, 0x84, 0xa4, 0xd8, 0xc8, 0xfe, 0x50, 0xfe, 0xdf,
+ 0xfe, 0x89, 0x01, 0x5e, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xfe, 0x4b, 0x06, 0x52, 0x05, 0xd5, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x10,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x27, 0x36, 0x37, 0x36, 0x37,
+ 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11,
+ 0x34, 0x13, 0x36, 0x37, 0x33, 0x06, 0x03, 0x06, 0x15, 0x10, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x11, 0x34, 0x27, 0x02, 0x27, 0x33, 0x16, 0x17, 0x12,
+ 0x06, 0x51, 0x37, 0x3d, 0xc5, 0xa2, 0xf8, 0x6a, 0x7e, 0x58, 0x7c, 0x6d,
+ 0xb9, 0x93, 0x5c, 0x3d, 0x5a, 0x24, 0x23, 0x5a, 0x5b, 0x83, 0xbe, 0x6d,
+ 0x6e, 0x5a, 0x35, 0x53, 0xe0, 0x4b, 0x7a, 0x3c, 0x41, 0x42, 0x70, 0x67,
+ 0x40, 0x40, 0xb3, 0x3f, 0x3f, 0x69, 0x78, 0x3b, 0x40, 0x3c, 0x7a, 0x4c,
+ 0xe1, 0x56, 0x32, 0x5a, 0x02, 0xe0, 0xfe, 0xef, 0xcb, 0xe6, 0xa6, 0x88,
+ 0x64, 0x2a, 0x17, 0x85, 0x18, 0x30, 0x51, 0x80, 0x17, 0x41, 0x5e, 0xad,
+ 0xad, 0x5e, 0x5e, 0xb1, 0xb4, 0x01, 0x98, 0xc9, 0x01, 0x0e, 0x9f, 0x7f,
+ 0x46, 0xfe, 0xbf, 0x9f, 0xb7, 0xfe, 0xcd, 0x6b, 0x6d, 0x69, 0x68, 0xc6,
+ 0xf1, 0xf1, 0xc6, 0x68, 0x69, 0x6d, 0x77, 0x01, 0x27, 0xb7, 0x9f, 0x01,
+ 0x41, 0x46, 0x82, 0x9c, 0xfe, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x79,
+ 0xfe, 0x55, 0x05, 0x8a, 0x04, 0x60, 0x00, 0x25, 0x00, 0x00, 0x21, 0x26,
+ 0x03, 0x02, 0x23, 0x20, 0x11, 0x34, 0x13, 0x33, 0x02, 0x15, 0x10, 0x17,
+ 0x16, 0x03, 0x33, 0x02, 0x37, 0x36, 0x11, 0x34, 0x03, 0x33, 0x12, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x27, 0x36, 0x37, 0x36,
+ 0x04, 0x14, 0xf8, 0x1a, 0x20, 0xf3, 0xfe, 0x8b, 0x79, 0xc4, 0x81, 0xc8,
+ 0xbc, 0x05, 0x99, 0x03, 0xba, 0xc7, 0x80, 0xc4, 0x7a, 0x33, 0x5e, 0xb2,
+ 0x8a, 0xbd, 0x61, 0x64, 0x52, 0x49, 0x7d, 0xb3, 0x01, 0x01, 0x0d, 0xfe,
+ 0xed, 0x02, 0x3a, 0xeb, 0x01, 0x40, 0xfe, 0xc0, 0xf0, 0xfe, 0x97, 0x01,
+ 0x01, 0x01, 0xd4, 0xfe, 0x2b, 0x02, 0x02, 0x01, 0x68, 0xf0, 0x01, 0x40,
+ 0xfe, 0xc0, 0xeb, 0xd1, 0x84, 0xf4, 0x9e, 0x7b, 0x49, 0x25, 0x10, 0x6c,
+ 0x0b, 0x2b, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x67, 0xfe, 0x56, 0x04, 0xc1,
+ 0x05, 0xf0, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x11, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x23, 0x11,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11, 0x10, 0x13, 0x36, 0x25,
+ 0x02, 0xa1, 0xa2, 0x56, 0x78, 0x63, 0x58, 0xb0, 0xb0, 0x58, 0x5a, 0xc3,
+ 0xc3, 0x3e, 0x5d, 0x5e, 0x99, 0xe6, 0x8d, 0x91, 0xa7, 0x88, 0x01, 0x0a,
+ 0x05, 0x4a, 0x12, 0x84, 0xb9, 0xfe, 0xee, 0xf9, 0xab, 0x98, 0x98, 0x99,
+ 0x01, 0x0b, 0x02, 0xec, 0xf8, 0x81, 0x02, 0x90, 0x84, 0x40, 0x3f, 0xd5,
+ 0xdd, 0x01, 0x47, 0x01, 0x36, 0x01, 0x08, 0xd5, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x18, 0x04, 0x7b, 0x00, 0x1c,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x20, 0x37,
+ 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x02, 0x4a, 0x8b, 0x48, 0x66,
+ 0x54, 0x4b, 0x01, 0x2b, 0x4b, 0x4c, 0xa6, 0xa6, 0x34, 0x4f, 0x51, 0x81,
+ 0xc4, 0x78, 0x7b, 0x8e, 0x72, 0xe4, 0x03, 0xfd, 0x0e, 0x63, 0x8d, 0xd0,
+ 0xbd, 0x81, 0x74, 0x73, 0x74, 0xcb, 0x02, 0x31, 0xf9, 0xf6, 0x02, 0x52,
+ 0x64, 0x30, 0x31, 0xa2, 0xa8, 0xf8, 0xec, 0xc8, 0xa2, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x4b, 0x05, 0x4c, 0x05, 0xd5, 0x00, 0x25,
+ 0x00, 0x00, 0x01, 0x20, 0x17, 0x16, 0x11, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x27, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x36, 0x37, 0x36, 0x02, 0xf8, 0x01, 0x09, 0x9f, 0xab, 0x36, 0x3c,
+ 0x99, 0xaf, 0xd9, 0xa7, 0x41, 0x58, 0x79, 0x70, 0xc4, 0x88, 0x7b, 0x27,
+ 0x31, 0x71, 0x68, 0xb8, 0xb7, 0x68, 0x65, 0xb6, 0xb6, 0x46, 0x5e, 0x5f,
+ 0x04, 0x7b, 0xb3, 0xc2, 0xfe, 0xfd, 0xcc, 0xa1, 0xb2, 0x80, 0x93, 0x45,
+ 0x35, 0x0c, 0x85, 0x16, 0x32, 0x57, 0x7a, 0x6d, 0x68, 0x7f, 0xc0, 0x9d,
+ 0x96, 0x86, 0x81, 0x7e, 0xde, 0xfe, 0x27, 0x05, 0xd5, 0xfd, 0x9a, 0x87,
+ 0x42, 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x28, 0xff, 0xe3, 0x04, 0x1d,
+ 0x04, 0x9a, 0x00, 0x17, 0x00, 0x4d, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x07, 0x27, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x36, 0x37,
+ 0x17, 0x06, 0x02, 0xdb, 0x73, 0x7e, 0x1c, 0x32, 0x1a, 0x21, 0x1a, 0x0f,
+ 0x0c, 0x0a, 0x0e, 0x16, 0x17, 0x1f, 0x1d, 0x1b, 0x17, 0x40, 0x35, 0x42,
+ 0x20, 0xf0, 0x61, 0x72, 0x64, 0xee, 0x7f, 0x59, 0x44, 0x2f, 0x3b, 0x49,
+ 0x4c, 0x7a, 0x56, 0x74, 0x4a, 0x39, 0x52, 0x8d, 0x47, 0x44, 0x2c, 0x19,
+ 0x1c, 0x3e, 0x6a, 0x5c, 0x40, 0x24, 0x41, 0x2d, 0x3a, 0x2b, 0x25, 0x1b,
+ 0x1a, 0x1c, 0x29, 0x38, 0x48, 0x5b, 0x55, 0xbd, 0x81, 0x33, 0x26, 0x7a,
+ 0x31, 0x03, 0x44, 0x98, 0x16, 0x0b, 0x21, 0x1a, 0x20, 0x1b, 0x21, 0x20,
+ 0x15, 0x1c, 0x11, 0x14, 0x06, 0x05, 0x19, 0x14, 0x31, 0x18, 0x32, 0xc0,
+ 0xd4, 0xb0, 0x9c, 0x88, 0x2e, 0x23, 0x41, 0x93, 0x4c, 0x2e, 0x23, 0x5e,
+ 0x59, 0x7f, 0x8c, 0x71, 0x19, 0x17, 0x34, 0x2b, 0x26, 0x02, 0x01, 0x0a,
+ 0x07, 0x22, 0x1a, 0x48, 0x34, 0x42, 0x3b, 0x3b, 0x3d, 0x2f, 0x3f, 0x22,
+ 0x2b, 0x9f, 0x56, 0x68, 0x50, 0x92, 0x00, 0x00, 0x00, 0x01, 0x00, 0x47,
+ 0xfe, 0x56, 0x04, 0x8a, 0x05, 0xf6, 0x00, 0x21, 0x00, 0x00, 0x05, 0x06,
+ 0x23, 0x20, 0x01, 0x00, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x23, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x02, 0x01, 0x16, 0x33, 0x20, 0x37, 0x04, 0x7b, 0xe7, 0xf7,
+ 0xfe, 0xd0, 0xfe, 0xda, 0x02, 0x74, 0xa1, 0x62, 0x62, 0x59, 0x93, 0xa2,
+ 0x55, 0x1f, 0x16, 0xd8, 0x28, 0x4d, 0x93, 0xfc, 0xf7, 0x91, 0x92, 0x92,
+ 0xee, 0xfe, 0x48, 0x8d, 0xbf, 0x01, 0x0c, 0xd1, 0xec, 0xbe, 0x01, 0xa3,
+ 0x01, 0xf1, 0xdb, 0x84, 0x9c, 0x8d, 0x65, 0x5d, 0x92, 0x36, 0x3f, 0xa1,
+ 0x66, 0xc2, 0x90, 0x91, 0xf1, 0xd8, 0xb6, 0xfe, 0xf2, 0xfe, 0x85, 0xb5,
+ 0xb3, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0xfe, 0x56, 0x03, 0xf9,
+ 0x04, 0x7b, 0x00, 0x20, 0x00, 0x00, 0x01, 0x06, 0x23, 0x22, 0x01, 0x00,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x16,
+ 0x33, 0x32, 0x37, 0x03, 0xec, 0xc4, 0xd2, 0xf7, 0xfe, 0xfb, 0x02, 0x08,
+ 0x96, 0x53, 0x53, 0x4b, 0x7d, 0x8a, 0x48, 0x1b, 0x12, 0xb7, 0x21, 0x41,
+ 0x7e, 0xd6, 0xd1, 0xf8, 0x7c, 0x9e, 0xfe, 0x5e, 0x82, 0x98, 0xe4, 0xb1,
+ 0xfe, 0xef, 0x99, 0x01, 0x79, 0x01, 0x59, 0xc2, 0x6b, 0x7d, 0x6f, 0x53,
+ 0x4b, 0x75, 0x2c, 0x32, 0x81, 0x52, 0x9c, 0xe8, 0xc2, 0xa4, 0x9c, 0xc5,
+ 0xfe, 0xe0, 0xba, 0x90, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x05, 0x24,
+ 0x05, 0xef, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x25, 0x21, 0x09, 0x03,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x0f, 0x01, 0x35, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x1b, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x15, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x09, 0x01,
+ 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x21, 0x35, 0x33, 0x32, 0x37, 0x36,
+ 0x01, 0xab, 0x02, 0x2f, 0xfe, 0xec, 0xfe, 0x45, 0x01, 0x5a, 0xfe, 0xf9,
+ 0x11, 0x17, 0x1f, 0x39, 0x16, 0x14, 0x3e, 0x1e, 0x1c, 0x1c, 0x1a, 0x66,
+ 0x44, 0x27, 0x2b, 0xe8, 0xee, 0x2f, 0x23, 0x44, 0x66, 0x1a, 0x1b, 0x1d,
+ 0x1e, 0x3d, 0x15, 0x16, 0x36, 0x22, 0x11, 0x17, 0xfe, 0xf0, 0x01, 0x4f,
+ 0x05, 0x06, 0x1a, 0x3e, 0x40, 0xfb, 0x4a, 0x3f, 0x41, 0x18, 0x0a, 0xaa,
+ 0x01, 0xca, 0xfe, 0x68, 0x02, 0x3d, 0x01, 0xbb, 0x1d, 0x1a, 0x22, 0x04,
+ 0x0a, 0xbb, 0x0b, 0x05, 0x05, 0x43, 0x28, 0x46, 0xfe, 0x81, 0x01, 0x7f,
+ 0x4b, 0x23, 0x43, 0x05, 0x05, 0x0b, 0xbb, 0x0a, 0x04, 0x22, 0x11, 0x26,
+ 0xfe, 0x45, 0xfd, 0xc3, 0x09, 0x08, 0x21, 0xaa, 0xaa, 0x21, 0x0f, 0x00,
+ 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x04, 0x51, 0x04, 0x7b, 0x00, 0x02,
+ 0x00, 0x35, 0x00, 0x00, 0x25, 0x21, 0x03, 0x09, 0x01, 0x03, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x0f, 0x01, 0x35, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x1b, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x15, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x01, 0x16, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x21, 0x35, 0x33, 0x32, 0x37, 0x36, 0x01, 0x71,
+ 0x01, 0x9e, 0xcd, 0xfe, 0x85, 0x01, 0x1a, 0xd7, 0x13, 0x10, 0x1a, 0x30,
+ 0x13, 0x11, 0x35, 0x1a, 0x18, 0x17, 0x16, 0x76, 0x39, 0x22, 0x24, 0xb1,
+ 0xb1, 0x24, 0x22, 0x39, 0x76, 0x16, 0x17, 0x18, 0x1a, 0x35, 0x11, 0x13,
+ 0x30, 0x1a, 0x10, 0x13, 0xdd, 0x01, 0x0f, 0x05, 0x05, 0x16, 0x35, 0x41,
+ 0xfb, 0xe1, 0x41, 0x34, 0x17, 0x05, 0x9e, 0x01, 0x38, 0xfe, 0xee, 0x01,
+ 0xa4, 0x01, 0x3d, 0x1c, 0x0e, 0x19, 0x03, 0x07, 0x8d, 0x08, 0x04, 0x04,
+ 0x33, 0x1e, 0x35, 0xfe, 0xfa, 0x01, 0x06, 0x35, 0x1e, 0x33, 0x04, 0x04,
+ 0x08, 0x8d, 0x07, 0x03, 0x19, 0x0e, 0x1c, 0xfe, 0xb8, 0xfe, 0x67, 0x08,
+ 0x05, 0x19, 0x9e, 0x9e, 0x19, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa2, 0x06, 0x10, 0x00, 0x1d, 0x00, 0x2b, 0x00, 0x00,
+ 0x01, 0x24, 0x07, 0x06, 0x07, 0x36, 0x37, 0x36, 0x33, 0x32, 0x00, 0x10,
+ 0x00, 0x23, 0x20, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x21, 0x32, 0x37,
+ 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x12, 0x10, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x02, 0xd9, 0xfe, 0xf4,
+ 0x4f, 0x32, 0x14, 0x49, 0x4d, 0x6e, 0x75, 0xdd, 0x01, 0x13, 0xfe, 0xed,
+ 0xed, 0xfe, 0xed, 0x94, 0x92, 0x7d, 0x6f, 0x01, 0x85, 0x67, 0x87, 0x90,
+ 0x43, 0x54, 0x88, 0x62, 0x80, 0xb4, 0xa7, 0xa9, 0x5e, 0x5e, 0x5e, 0x5b,
+ 0xac, 0xa9, 0x58, 0x05, 0x2d, 0x02, 0x73, 0x4a, 0xa0, 0x56, 0x22, 0x31,
+ 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0x9c, 0x9b, 0x01, 0x50, 0x01, 0xde,
+ 0xd2, 0xbb, 0x0a, 0x0a, 0x27, 0xb1, 0x24, 0x08, 0x06, 0xfc, 0x41, 0x01,
+ 0x82, 0xe6, 0x73, 0x74, 0xc0, 0xbd, 0x78, 0x73, 0x73, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x03, 0xec, 0x06, 0x10, 0x00, 0x1f,
+ 0x00, 0x2f, 0x00, 0x00, 0x01, 0x26, 0x07, 0x06, 0x07, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11,
+ 0x10, 0x37, 0x36, 0x21, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06,
+ 0x13, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x02, 0x58, 0xcc, 0x42, 0x27, 0x12, 0x25, 0x5a,
+ 0x52, 0x6c, 0xb8, 0x72, 0x74, 0x74, 0x72, 0xc5, 0xe6, 0x7b, 0x7a, 0x68,
+ 0x5d, 0x01, 0x2d, 0x56, 0x53, 0x4a, 0x40, 0x53, 0x3f, 0x51, 0x98, 0x4b,
+ 0x4c, 0x83, 0x86, 0x4e, 0x4f, 0x4f, 0x4c, 0x88, 0x85, 0x4a, 0x4b, 0x05,
+ 0x37, 0x02, 0x78, 0x4a, 0xa9, 0x46, 0x36, 0x31, 0xa2, 0xa2, 0xfd, 0xf0,
+ 0xa2, 0xa2, 0x9c, 0x9b, 0x01, 0x50, 0x01, 0xde, 0xd2, 0xbb, 0x0a, 0x0a,
+ 0x27, 0xa7, 0x27, 0x05, 0x06, 0xfc, 0xf8, 0xcd, 0x72, 0x73, 0x73, 0x74,
+ 0xcb, 0xc7, 0x78, 0x73, 0x73, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x27,
+ 0xfe, 0x56, 0x04, 0x3f, 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x35, 0x23, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x04, 0x3e, 0xb6, 0xfa, 0xb6, 0xfa, 0xb6, 0x01, 0xb0, 0xb6,
+ 0x04, 0x60, 0xfe, 0xf2, 0x64, 0xfa, 0xa0, 0x05, 0x60, 0x64, 0x01, 0x0e,
+ 0x01, 0x75, 0xfe, 0x8b, 0x00, 0x01, 0x00, 0x31, 0xfe, 0x55, 0x03, 0xac,
+ 0x05, 0xcf, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x23, 0x35, 0x23, 0x11,
+ 0x23, 0x11, 0x23, 0x15, 0x23, 0x11, 0x21, 0x11, 0x33, 0x11, 0x03, 0xac,
+ 0x9c, 0xce, 0xa7, 0xce, 0x9b, 0x01, 0x69, 0xa7, 0x04, 0x5f, 0xff, 0x00,
+ 0x70, 0xfa, 0x86, 0x05, 0x7a, 0x70, 0x01, 0x00, 0x01, 0x70, 0xfe, 0x90,
+ 0x00, 0x01, 0x00, 0x64, 0xff, 0xf2, 0x04, 0x53, 0x04, 0x67, 0x00, 0x33,
+ 0x00, 0x00, 0x01, 0x02, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x01, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x35, 0x36, 0x33, 0x32, 0x17,
+ 0x04, 0x11, 0x14, 0x07, 0x37, 0x12, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14,
+ 0x01, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x15, 0x06, 0x23,
+ 0x22, 0x27, 0x24, 0x11, 0x34, 0x37, 0x01, 0xf1, 0x57, 0xb4, 0x31, 0x1f,
+ 0x31, 0x01, 0x07, 0x37, 0x0c, 0x18, 0x7f, 0x34, 0x52, 0x3a, 0x52, 0x17,
+ 0x19, 0x01, 0x00, 0x1a, 0xaa, 0x56, 0xb4, 0x32, 0x1f, 0x31, 0xfe, 0xf9,
+ 0x37, 0x0c, 0x18, 0x7f, 0x34, 0x51, 0x39, 0x52, 0x17, 0x19, 0xff, 0x00,
+ 0x1a, 0x01, 0x99, 0xfe, 0xf7, 0x7c, 0x22, 0x4f, 0x9a, 0x01, 0x09, 0x8a,
+ 0x7a, 0x3a, 0x36, 0x68, 0x6c, 0xe0, 0x30, 0x04, 0x25, 0xfe, 0xc1, 0x5b,
+ 0x4d, 0x6c, 0x01, 0x09, 0x7c, 0x22, 0x4f, 0x9a, 0xfe, 0xf7, 0x8a, 0x7a,
+ 0x3a, 0x36, 0x68, 0x6c, 0xe0, 0x30, 0x04, 0x25, 0x01, 0x3f, 0x5b, 0x4d,
+ 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x00, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x12, 0x29,
+ 0x01, 0x15, 0x21, 0x20, 0x11, 0x24, 0x10, 0x27, 0x26, 0x20, 0x07, 0x06,
+ 0x10, 0x17, 0x16, 0x20, 0x37, 0xa7, 0x51, 0x31, 0x8e, 0x35, 0xa4, 0xb8,
+ 0x72, 0x73, 0x73, 0x72, 0xb8, 0x6c, 0x52, 0x50, 0x34, 0x04, 0x01, 0x04,
+ 0x01, 0xc2, 0xfe, 0x4c, 0xfe, 0x43, 0x02, 0xda, 0x4a, 0x4c, 0xfe, 0xf9,
+ 0x4b, 0x4b, 0x4b, 0x4b, 0x01, 0x07, 0x4c, 0x02, 0x25, 0xd0, 0xa3, 0x62,
+ 0x5e, 0x23, 0xa2, 0xa2, 0xfd, 0xf0, 0xa2, 0xa2, 0x31, 0x30, 0x64, 0xfe,
+ 0x58, 0xaa, 0x02, 0xda, 0x34, 0x01, 0x96, 0x74, 0x73, 0x73, 0x74, 0xfe,
+ 0x6a, 0x74, 0x73, 0x73, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x12, 0x06, 0x00, 0x46, 0x00, 0x00, 0xff, 0xff, 0xff, 0xde,
+ 0xfe, 0x56, 0x01, 0x54, 0x06, 0x14, 0x12, 0x06, 0x00, 0x4d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x12, 0x06,
+ 0x01, 0x61, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x76,
+ 0x04, 0x7b, 0x00, 0x21, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x21, 0x15, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32, 0x3f,
+ 0x01, 0x15, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x03, 0x76, 0x22, 0x21, 0x59, 0x60, 0xa4, 0x5c,
+ 0x56, 0x10, 0x02, 0x62, 0xfd, 0x9e, 0x10, 0x56, 0x5c, 0xa4, 0x74, 0x45,
+ 0x43, 0x48, 0x5d, 0x60, 0xf2, 0x8c, 0x8d, 0x8d, 0x8c, 0xf2, 0x5b, 0x62,
+ 0x24, 0x24, 0x03, 0xae, 0x0d, 0x0a, 0x1a, 0x63, 0x5c, 0xa9, 0x90, 0xa9,
+ 0x5c, 0x63, 0x1a, 0x19, 0xa7, 0x12, 0x16, 0x9c, 0x9c, 0x02, 0x28, 0x9c,
+ 0x9c, 0x16, 0x08, 0x0c, 0x00, 0x01, 0x00, 0xb0, 0xff, 0xe3, 0x03, 0xc1,
+ 0x04, 0x7b, 0x00, 0x21, 0x00, 0x00, 0x13, 0x35, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x21, 0x35, 0x21, 0x26, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0xb0, 0x24, 0x24, 0x62, 0x5b, 0xf2, 0x8c, 0x8d,
+ 0x8d, 0x8c, 0xf2, 0x60, 0x5d, 0x48, 0x43, 0x45, 0x74, 0xa4, 0x5c, 0x56,
+ 0x10, 0xfd, 0x9e, 0x02, 0x62, 0x10, 0x56, 0x5c, 0xa4, 0x60, 0x59, 0x21,
+ 0x03, 0xae, 0xa3, 0x0c, 0x08, 0x16, 0x9c, 0x9c, 0xfd, 0xd8, 0x9c, 0x9c,
+ 0x16, 0x12, 0xa7, 0x19, 0x1a, 0x63, 0x5c, 0xa9, 0x90, 0xa9, 0x5c, 0x63,
+ 0x1a, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x19,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0xa0, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x12, 0x06, 0x00, 0xc0, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x12, 0x06,
+ 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83,
+ 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x21, 0x09, 0x01, 0x21, 0x11,
+ 0x23, 0x11, 0x01, 0x23, 0x01, 0x11, 0x23, 0xb5, 0x01, 0x0f, 0x01, 0x57,
+ 0x01, 0x58, 0x01, 0x0f, 0xb1, 0xfe, 0xa5, 0xb6, 0xfe, 0xa5, 0xb0, 0x05,
+ 0xd5, 0xfe, 0x21, 0x01, 0xdf, 0xfa, 0x2b, 0x05, 0x1f, 0xfe, 0x19, 0x01,
+ 0xe7, 0xfa, 0xe1, 0x00, 0x00, 0x01, 0x00, 0x72, 0xfe, 0x56, 0x04, 0x3b,
+ 0x04, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x21, 0x1b, 0x01, 0x21, 0x11,
+ 0x23, 0x11, 0x03, 0x23, 0x03, 0x11, 0x23, 0x72, 0x00, 0xff, 0xe5, 0xe6,
+ 0x00, 0xff, 0xa7, 0xf8, 0x8a, 0xf9, 0xa7, 0x04, 0x60, 0xfe, 0x7b, 0x01,
+ 0x85, 0xfb, 0xa0, 0x03, 0xb2, 0xfe, 0x60, 0x01, 0xa0, 0xfa, 0xa4, 0x00,
+ 0x00, 0x02, 0x00, 0x4c, 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x00, 0x1b,
+ 0x00, 0x27, 0x00, 0x00, 0x17, 0x11, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x11,
+ 0x21, 0x15, 0x21, 0x15, 0x23, 0x35, 0x23, 0x35, 0x00, 0x10, 0x27, 0x26,
+ 0x20, 0x07, 0x06, 0x10, 0x17, 0x16, 0x20, 0x37, 0xa7, 0x51, 0x37, 0x88,
+ 0x35, 0xa4, 0xb8, 0x72, 0x73, 0x73, 0x72, 0xb8, 0x6f, 0x4f, 0x50, 0x34,
+ 0x01, 0xb4, 0xfe, 0x4c, 0xa7, 0x5b, 0x03, 0x35, 0x4a, 0x4c, 0xfe, 0xf9,
+ 0x4b, 0x4b, 0x4b, 0x4b, 0x01, 0x07, 0x4c, 0x90, 0x02, 0xb5, 0xe7, 0x8c,
+ 0x66, 0x5a, 0x23, 0xa2, 0xa2, 0xfd, 0xf0, 0xa2, 0xa2, 0x31, 0x30, 0x64,
+ 0xfe, 0xc8, 0xaa, 0x70, 0x70, 0xaa, 0x01, 0xf4, 0x01, 0x96, 0x74, 0x73,
+ 0x73, 0x74, 0xfe, 0x6a, 0x74, 0x73, 0x73, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x12, 0x06, 0x01, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x12, 0x26,
+ 0x03, 0x8d, 0x00, 0x00, 0x10, 0x07, 0x00, 0x79, 0x01, 0xfb, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x10, 0x27,
+ 0x00, 0x79, 0x00, 0xcd, 0x00, 0x00, 0x12, 0x06, 0x03, 0x91, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x6b, 0x12, 0x26,
+ 0x03, 0xa9, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee, 0x04, 0x70, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x4e, 0x12, 0x26,
+ 0x03, 0xa9, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb, 0x04, 0x27, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfa, 0xfe, 0x66, 0x05, 0x1b,
+ 0x05, 0xd5, 0x00, 0x1b, 0x00, 0x00, 0x25, 0x10, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x23, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x21, 0x32, 0x16, 0x15, 0x05, 0x1b,
+ 0xb8, 0xcd, 0x44, 0x37, 0x79, 0x64, 0x70, 0x6f, 0xfe, 0xad, 0xb6, 0xfe,
+ 0x7d, 0x04, 0x16, 0xfe, 0x23, 0x01, 0x78, 0xa7, 0xc8, 0x68, 0xfe, 0xf2,
+ 0xf4, 0xaa, 0x96, 0xc2, 0x01, 0x22, 0x9f, 0x9e, 0xfd, 0x39, 0x05, 0x2b,
+ 0xaa, 0xaa, 0xfe, 0x46, 0xe9, 0xee, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xf9, 0x07, 0x6b, 0x12, 0x26, 0x03, 0xa7, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xec, 0x04, 0x36, 0x01, 0x75, 0x00, 0x01, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x00, 0x18, 0x00, 0x00, 0x01, 0x15,
+ 0x06, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x17, 0x15, 0x26,
+ 0x23, 0x22, 0x02, 0x07, 0x21, 0x15, 0x21, 0x16, 0x12, 0x33, 0x32, 0x04,
+ 0xa3, 0xbf, 0xf0, 0xfe, 0xd2, 0xfe, 0xa2, 0x01, 0x5e, 0x01, 0x2e, 0xf4,
+ 0xbb, 0xbe, 0xe6, 0xee, 0xd6, 0x14, 0x02, 0xce, 0xfd, 0x32, 0x14, 0xd6,
+ 0xee, 0xe6, 0x01, 0x46, 0xd3, 0x90, 0x01, 0x9f, 0x01, 0x68, 0x01, 0x67,
+ 0x01, 0x9f, 0x8e, 0xd5, 0xbd, 0xfe, 0xe3, 0xef, 0xaa, 0xef, 0xfe, 0xe4,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x2c, 0x05, 0xf0, 0x12, 0x06,
+ 0x00, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x6b,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x2c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0x00, 0x00, 0x02, 0x1c, 0x07, 0x4e, 0x10, 0x06, 0x00, 0x91, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xa0, 0xfe, 0x66, 0x01, 0x6b, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x4b, 0x00, 0x00, 0x07, 0x5e,
+ 0x05, 0xd5, 0x00, 0x14, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x21, 0x15, 0x10,
+ 0x02, 0x05, 0x35, 0x36, 0x12, 0x11, 0x35, 0x21, 0x11, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x21, 0x25, 0x20, 0x11, 0x34, 0x26, 0x2b, 0x01,
+ 0x11, 0x03, 0xfe, 0xfe, 0x4c, 0xb4, 0xfe, 0xb6, 0xc3, 0x86, 0x03, 0x1f,
+ 0xd3, 0xe2, 0xf5, 0xf5, 0xe2, 0xfe, 0x77, 0x01, 0x80, 0x01, 0x20, 0x8e,
+ 0x92, 0xca, 0x05, 0x2b, 0xb8, 0xfd, 0xca, 0xfd, 0xfb, 0x38, 0xaa, 0x2f,
+ 0x01, 0xa6, 0x02, 0x58, 0xfe, 0xfd, 0x9a, 0xda, 0xdd, 0xde, 0xda, 0xa6,
+ 0x01, 0x11, 0x8b, 0x87, 0xfd, 0xdd, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x07, 0x05, 0x05, 0xd5, 0x00, 0x12, 0x00, 0x1b, 0x00, 0x00,
+ 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11,
+ 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x01, 0x34, 0x26, 0x2b, 0x01,
+ 0x11, 0x33, 0x32, 0x36, 0x03, 0xa5, 0xfd, 0xc6, 0xb6, 0xb6, 0x02, 0x3a,
+ 0xb6, 0xd3, 0xe2, 0xf4, 0xf4, 0xe2, 0x01, 0x17, 0x8e, 0x92, 0xca, 0xca,
+ 0x90, 0x90, 0x02, 0xc7, 0xfd, 0x39, 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64,
+ 0xfd, 0x9a, 0xda, 0xde, 0xdd, 0xda, 0x01, 0xb7, 0x8b, 0x87, 0xfd, 0xdd,
+ 0x87, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfa, 0x00, 0x00, 0x05, 0x1b,
+ 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x11, 0x23,
+ 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x15,
+ 0x21, 0x11, 0x03, 0xac, 0xa7, 0xc8, 0xb5, 0x70, 0x6f, 0xfe, 0xad, 0xb6,
+ 0xfe, 0x7d, 0x04, 0x16, 0xfe, 0x23, 0x03, 0x71, 0xe9, 0xee, 0xfe, 0x66,
+ 0x01, 0x8a, 0x9f, 0x9e, 0xfd, 0x39, 0x05, 0x2b, 0xaa, 0xaa, 0xfe, 0x46,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xf9, 0x07, 0x6b, 0x12, 0x26,
+ 0x03, 0xae, 0x00, 0x00, 0x10, 0x07, 0x10, 0xec, 0x04, 0x70, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x07, 0x6b, 0x12, 0x26,
+ 0x03, 0xac, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee, 0x04, 0x68, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x44, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf2, 0x04, 0x00, 0x01, 0x75, 0x12, 0x06, 0x03, 0xb7, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x29, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x23, 0x02, 0x68, 0xfe, 0x4d, 0xb6, 0x02, 0x94, 0xb6, 0xfe, 0x4d,
+ 0x9a, 0x05, 0xd5, 0xfa, 0xd5, 0x05, 0x2b, 0xfa, 0x2b, 0xfe, 0xbf, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x15, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23,
+ 0x21, 0x11, 0x21, 0x32, 0x36, 0x13, 0x15, 0x21, 0x11, 0x21, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x03, 0xae, 0x8d, 0x93, 0xfe, 0xdd,
+ 0x01, 0x23, 0x93, 0x8d, 0x62, 0xfd, 0x5b, 0x01, 0x2c, 0xe2, 0xf5, 0xed,
+ 0xea, 0xfe, 0x1e, 0x01, 0xb7, 0x8b, 0x87, 0xfd, 0xdd, 0x87, 0x04, 0xa8,
+ 0xa6, 0xfe, 0x40, 0xda, 0xde, 0xdd, 0xda, 0x05, 0xd5, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x25, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0xb5, 0x03, 0x44, 0xfd, 0x72, 0x05, 0xd5, 0xaa, 0xfa, 0xd5, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5a, 0xfe, 0xbf, 0x05, 0x46, 0x05, 0xd5, 0x00, 0x07,
+ 0x00, 0x17, 0x00, 0x00, 0x25, 0x21, 0x11, 0x21, 0x15, 0x10, 0x03, 0x06,
+ 0x05, 0x36, 0x37, 0x12, 0x19, 0x01, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11,
+ 0x21, 0x11, 0x23, 0x11, 0x01, 0xa4, 0x02, 0x52, 0xfe, 0x4c, 0x65, 0x15,
+ 0xfe, 0xd3, 0x78, 0x23, 0x57, 0x03, 0x1f, 0x99, 0x99, 0xfc, 0x48, 0x99,
+ 0xaa, 0x04, 0x81, 0xd4, 0xfe, 0x0d, 0xfe, 0xb5, 0x44, 0x2b, 0x3f, 0x78,
+ 0x01, 0x34, 0x02, 0x26, 0x01, 0x1a, 0xfa, 0xd5, 0xfe, 0x15, 0x01, 0x41,
+ 0xfe, 0xbf, 0x01, 0xeb, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24,
+ 0x00, 0x00, 0x07, 0x9e, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x01, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x03, 0x11, 0x23, 0x11, 0x03,
+ 0x01, 0x23, 0x09, 0x01, 0x33, 0x01, 0x03, 0x86, 0xb6, 0x02, 0x65, 0xdd,
+ 0xfe, 0x15, 0x02, 0x0a, 0xbd, 0xfe, 0x44, 0xe8, 0xb6, 0xe8, 0xfe, 0x44,
+ 0xbe, 0x02, 0x0a, 0xfe, 0x16, 0xdc, 0x02, 0x66, 0x05, 0xd5, 0xfd, 0x1e,
+ 0x02, 0xe2, 0xfd, 0xb3, 0xfc, 0x78, 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16,
+ 0x01, 0xea, 0x01, 0x17, 0xfc, 0xff, 0x03, 0x88, 0x02, 0x4d, 0xfd, 0x1e,
+ 0x00, 0x01, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x25, 0x05, 0xf0, 0x00, 0x28,
+ 0x00, 0x00, 0x01, 0x32, 0x04, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15,
+ 0x14, 0x04, 0x23, 0x22, 0x24, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x02, 0x0e, 0xde, 0x01, 0x19,
+ 0x80, 0x76, 0x83, 0x92, 0xfe, 0xc1, 0xd7, 0x6d, 0xff, 0x00, 0x27, 0x89,
+ 0x98, 0x70, 0xa9, 0xbb, 0xa6, 0xb0, 0xb7, 0xbe, 0xa2, 0x8e, 0x93, 0xb2,
+ 0x79, 0x52, 0xb9, 0x66, 0xd4, 0x05, 0xf0, 0xd1, 0xb2, 0x7c, 0xab, 0x21,
+ 0x1f, 0xc4, 0x90, 0xe6, 0xe9, 0x42, 0x1c, 0xd0, 0x59, 0x2b, 0x90, 0x95,
+ 0x84, 0x95, 0xa6, 0x77, 0x70, 0x73, 0x7b, 0x18, 0x4d, 0xc5, 0x28, 0x22,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x05, 0xd5, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x23, 0x11, 0x33, 0x11, 0x01,
+ 0x04, 0xae, 0xb0, 0xfd, 0xac, 0xf5, 0xb0, 0x02, 0x54, 0x05, 0xd5, 0xfa,
+ 0x2b, 0x04, 0xe1, 0xfb, 0x1f, 0x05, 0xd5, 0xfb, 0x1f, 0x04, 0xe1, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x07, 0x6d, 0x12, 0x26,
+ 0x03, 0xac, 0x00, 0x00, 0x11, 0x07, 0x10, 0xf2, 0x04, 0x76, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xf9,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x01, 0x33, 0x09,
+ 0x01, 0x23, 0x01, 0x03, 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x89, 0xea, 0xfd,
+ 0xf8, 0x02, 0x23, 0xc6, 0xfe, 0x2d, 0xf5, 0xb6, 0x05, 0xd5, 0xfd, 0x1e,
+ 0x02, 0xe2, 0xfd, 0xb2, 0xfc, 0x79, 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16,
+ 0x00, 0x01, 0x00, 0x4b, 0x00, 0x00, 0x04, 0xb5, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, 0x12, 0x11, 0x35, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x15, 0x10, 0x03, 0x06, 0x4c, 0xc3, 0x38, 0x4e, 0x03, 0x1f,
+ 0xb6, 0xfe, 0x4c, 0x5c, 0x58, 0xaa, 0x2f, 0xa4, 0x01, 0x02, 0x02, 0x58,
+ 0xfe, 0xfa, 0x2b, 0x05, 0x2b, 0xb8, 0xfd, 0xca, 0xfe, 0xf8, 0xfd, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x12, 0x06, 0x00, 0x32, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x04, 0xb5,
+ 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfa, 0x2b, 0x05, 0x2b, 0xfa, 0xd5,
+ 0x05, 0xd5, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x19,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x33, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x12, 0x06, 0x00, 0x26, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x04, 0x6c, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x37, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x44,
+ 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x25, 0x06, 0x07, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x3f, 0x01, 0x01, 0x33, 0x09, 0x01, 0x33,
+ 0x02, 0x4e, 0x13, 0x1d, 0x47, 0xe2, 0x45, 0x38, 0x6b, 0x2a, 0x19, 0x10,
+ 0x29, 0xfe, 0x51, 0xc3, 0x01, 0x4e, 0x01, 0x4f, 0xc4, 0xb5, 0x32, 0x26,
+ 0x5d, 0xaa, 0x1b, 0x11, 0x2a, 0x6a, 0x04, 0x6b, 0xfc, 0x94, 0x03, 0x6c,
+ 0x00, 0x03, 0x00, 0x6c, 0x00, 0x00, 0x05, 0xc6, 0x05, 0xd5, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x15, 0x14, 0x16,
+ 0x17, 0x33, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x03, 0x24, 0x00, 0x11,
+ 0x10, 0x00, 0x25, 0x35, 0x33, 0x15, 0x04, 0x00, 0x11, 0x10, 0x00, 0x05,
+ 0x15, 0x23, 0x02, 0xbf, 0xc3, 0xcf, 0xcf, 0xc3, 0xb7, 0xc3, 0xcd, 0xcd,
+ 0xc3, 0xb7, 0xfe, 0xe3, 0xfe, 0xcb, 0x01, 0x35, 0x01, 0x1d, 0xb7, 0x01,
+ 0x1d, 0x01, 0x33, 0xfe, 0xcd, 0xfe, 0xe3, 0xb7, 0x04, 0xa2, 0x14, 0xcc,
+ 0xc5, 0xc5, 0xcb, 0x14, 0x14, 0xcb, 0xc5, 0xc5, 0xcc, 0x14, 0xfc, 0x10,
+ 0x17, 0x01, 0x2b, 0x01, 0x09, 0x01, 0x09, 0x01, 0x2d, 0x17, 0x8b, 0x8b,
+ 0x17, 0xfe, 0xd5, 0xfe, 0xf5, 0xfe, 0xf7, 0xfe, 0xd5, 0x17, 0xb2, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x12, 0x06,
+ 0x00, 0x3b, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x4f,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x29, 0x01, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x04, 0xb5, 0xfc, 0x00, 0xb6, 0x02,
+ 0x94, 0xb6, 0x99, 0x99, 0x05, 0xd5, 0xfa, 0xd5, 0x05, 0x2b, 0xfa, 0xd5,
+ 0xfe, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x04, 0x3b,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x21, 0x11, 0x21, 0x22, 0x26, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x21, 0x11, 0x33, 0x11, 0x03, 0x84,
+ 0xfe, 0x89, 0xa8, 0xc7, 0xb4, 0x70, 0x70, 0x01, 0x52, 0xb7, 0x02, 0x64,
+ 0xe9, 0xee, 0x01, 0x9a, 0xfe, 0x76, 0x9f, 0x9e, 0x02, 0xc7, 0xfa, 0x2b,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x06, 0xff, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x25, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x04, 0x34, 0x02, 0x14, 0xb6, 0xf9, 0xb7, 0xb6, 0x02, 0x14,
+ 0xb5, 0xaa, 0x05, 0x2b, 0xfa, 0x2b, 0x05, 0xd5, 0xfa, 0xd5, 0x05, 0x2b,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x07, 0x98, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x29, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x06, 0xfe, 0xf9, 0xb7, 0xb6, 0x02,
+ 0x14, 0xb5, 0x02, 0x14, 0xb6, 0x99, 0x99, 0x05, 0xd5, 0xfa, 0xd5, 0x05,
+ 0x2b, 0xfa, 0xd5, 0x05, 0x2b, 0xfa, 0xd5, 0xfe, 0x15, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x05, 0x7c, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x17, 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x01, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11,
+ 0x21, 0x32, 0x37, 0x36, 0x01, 0xc3, 0xfe, 0x73, 0x02, 0x43, 0x01, 0x2c,
+ 0xe2, 0xf5, 0xf5, 0xe2, 0x01, 0x17, 0x47, 0x46, 0x93, 0xfe, 0xdd, 0x01,
+ 0x23, 0x91, 0x48, 0x47, 0x05, 0x2b, 0xaa, 0xfd, 0x9a, 0xda, 0xde, 0xdd,
+ 0xda, 0x01, 0xb7, 0x8b, 0x44, 0x43, 0xfd, 0xdd, 0x44, 0x43, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0xa6, 0x05, 0xd5, 0x10, 0x26,
+ 0x03, 0xc0, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c, 0x04, 0x3b, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x0a,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x21,
+ 0x32, 0x37, 0x36, 0x01, 0x33, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x21, 0x03, 0xae, 0x47, 0x46, 0x93, 0xfe, 0xdd, 0x01, 0x23, 0x93,
+ 0x46, 0x47, 0xfd, 0x07, 0xb6, 0x01, 0x2c, 0xe2, 0xf5, 0xf5, 0xe2, 0xfe,
+ 0x1e, 0x01, 0xb7, 0x8b, 0x44, 0x43, 0xfd, 0xdd, 0x44, 0x43, 0x04, 0xa8,
+ 0xfd, 0x9a, 0xda, 0xde, 0xdd, 0xda, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe3, 0x04, 0xa0, 0x05, 0xf0, 0x00, 0x18, 0x00, 0x00, 0x13, 0x16,
+ 0x33, 0x32, 0x12, 0x37, 0x21, 0x35, 0x21, 0x26, 0x02, 0x23, 0x22, 0x07,
+ 0x35, 0x36, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x22, 0x27, 0x64,
+ 0xbe, 0xe6, 0xee, 0xd6, 0x14, 0xfd, 0x32, 0x02, 0xce, 0x14, 0xd6, 0xee,
+ 0xe6, 0xbe, 0xbb, 0xf4, 0x01, 0x2d, 0x01, 0x60, 0xfe, 0xa0, 0xfe, 0xd3,
+ 0xf0, 0xbf, 0x01, 0x46, 0xbd, 0x01, 0x1c, 0xef, 0xaa, 0xef, 0x01, 0x1d,
+ 0xbd, 0xd5, 0x8e, 0xfe, 0x61, 0xfe, 0x99, 0xfe, 0x98, 0xfe, 0x61, 0x90,
+ 0x00, 0x02, 0x00, 0xbd, 0xff, 0xe3, 0x07, 0x5f, 0x05, 0xf0, 0x00, 0x0f,
+ 0x00, 0x26, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x11, 0x10, 0x27, 0x26, 0x01, 0x12, 0x37, 0x36,
+ 0x21, 0x20, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26,
+ 0x03, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x04, 0xf1, 0xc6, 0x74, 0x75,
+ 0x75, 0x74, 0xc6, 0xc6, 0x74, 0x74, 0x74, 0x74, 0xfc, 0xce, 0x0d, 0xa2,
+ 0xa2, 0x01, 0x1b, 0x01, 0x1b, 0xa9, 0xa9, 0xa9, 0xa9, 0xfe, 0xe5, 0xfe,
+ 0xe5, 0xa2, 0xa2, 0x0d, 0xfe, 0xef, 0xb6, 0xb6, 0x05, 0x4c, 0xa4, 0xa4,
+ 0xfe, 0xe5, 0xfe, 0xe6, 0xa4, 0xa4, 0xa4, 0xa4, 0x01, 0x1a, 0x01, 0x1b,
+ 0xa4, 0xa4, 0xfd, 0xf3, 0x01, 0x18, 0xcd, 0xcc, 0xd2, 0xd3, 0xfe, 0x9e,
+ 0xfe, 0x9f, 0xd2, 0xd3, 0xcd, 0xcd, 0x01, 0x18, 0xfd, 0x6b, 0x05, 0xd5,
+ 0xfd, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x04, 0x4c,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x16, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33,
+ 0x21, 0x11, 0x21, 0x22, 0x06, 0x03, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x33, 0x21, 0x11, 0x23, 0x11, 0x23, 0x01, 0x01, 0x72, 0x86, 0x83, 0x01,
+ 0x1b, 0xfe, 0xe5, 0x83, 0x86, 0xf8, 0x01, 0x70, 0x5a, 0xe7, 0xea, 0xe8,
+ 0x01, 0xd1, 0xb6, 0xf3, 0xfe, 0x9d, 0x04, 0x27, 0x83, 0x87, 0x02, 0x12,
+ 0x85, 0xfb, 0x56, 0x02, 0x8d, 0x1a, 0xa9, 0xd7, 0xce, 0xe0, 0xfa, 0x2b,
+ 0x02, 0x77, 0xfd, 0x89, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x04, 0x7b, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64,
+ 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x37, 0x00, 0x1d, 0x00, 0x29, 0x00, 0x00,
+ 0x01, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x03, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x24, 0x37, 0x36, 0x37, 0x17, 0x06, 0x0f, 0x01,
+ 0x06, 0x07, 0x06, 0x0f, 0x01, 0x36, 0x17, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x02, 0x3d, 0xd8, 0xf7, 0xf7, 0xd8,
+ 0xd9, 0xef, 0x06, 0x06, 0x04, 0x34, 0x52, 0x01, 0x1b, 0xee, 0x6e, 0x30,
+ 0x2e, 0x2c, 0x28, 0xe1, 0x72, 0x44, 0xb3, 0x11, 0x07, 0x75, 0xbe, 0x85,
+ 0x9b, 0x9a, 0x86, 0x85, 0x9a, 0x9a, 0x04, 0x7b, 0xfe, 0xc8, 0xfe, 0xec,
+ 0xfe, 0xed, 0xfe, 0xc7, 0x01, 0x30, 0x01, 0x1c, 0xe5, 0x77, 0x29, 0xa0,
+ 0x76, 0xb9, 0xa0, 0x02, 0x01, 0x11, 0x92, 0x14, 0x01, 0x11, 0x09, 0x2c,
+ 0x75, 0x99, 0x38, 0x77, 0x9c, 0xe7, 0xc9, 0xc9, 0xe7, 0xe8, 0xc8, 0xc7,
+ 0xe9, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xd2,
+ 0x04, 0x60, 0x00, 0x08, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x03, 0x11, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x25, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x01, 0x4d, 0xec, 0x71, 0x77,
+ 0x77, 0x71, 0xec, 0xda, 0x5d, 0x77, 0x77, 0x5d, 0xfe, 0x80, 0x01, 0x8b,
+ 0xb1, 0xbf, 0x62, 0x5f, 0x72, 0x7e, 0xcf, 0xc1, 0xfe, 0x66, 0x02, 0x04,
+ 0xfe, 0x8f, 0x5f, 0x5a, 0x5a, 0x5e, 0x01, 0xc9, 0xfe, 0xca, 0x53, 0x4a,
+ 0x4a, 0x4f, 0x93, 0x90, 0x85, 0x67, 0x79, 0x0f, 0x18, 0x98, 0x72, 0x96,
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x6f,
+ 0x04, 0x60, 0x00, 0x05, 0x00, 0x00, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0xa7, 0x02, 0xc7, 0xfd, 0xe0, 0x04, 0x60, 0x93, 0xfc, 0x33, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x60, 0xfe, 0xe5, 0x04, 0x9b, 0x04, 0x60, 0x00, 0x06,
+ 0x00, 0x16, 0x00, 0x00, 0x25, 0x21, 0x11, 0x21, 0x15, 0x10, 0x07, 0x05,
+ 0x36, 0x37, 0x36, 0x11, 0x35, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21,
+ 0x11, 0x23, 0x11, 0x01, 0x8f, 0x01, 0xe0, 0xfe, 0xa4, 0x6a, 0xfe, 0xf5,
+ 0x52, 0x24, 0x58, 0x02, 0xaa, 0x84, 0x84, 0xfc, 0xcf, 0x85, 0x93, 0x03,
+ 0x3a, 0x8c, 0xfe, 0x64, 0xdc, 0x36, 0x28, 0x55, 0xd3, 0x01, 0xa9, 0xd4,
+ 0xfc, 0x33, 0xfe, 0x52, 0x01, 0x1b, 0xfe, 0xe5, 0x01, 0xae, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x06,
+ 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3f, 0x00, 0x00, 0x06, 0x3e,
+ 0x04, 0x60, 0x00, 0x13, 0x00, 0x00, 0x01, 0x33, 0x11, 0x01, 0x33, 0x09,
+ 0x01, 0x23, 0x01, 0x07, 0x11, 0x23, 0x11, 0x27, 0x01, 0x23, 0x09, 0x01,
+ 0x33, 0x01, 0x02, 0xec, 0xa5, 0x01, 0xb8, 0xc0, 0xfe, 0x97, 0x01, 0x9e,
+ 0xb2, 0xfe, 0xad, 0xa8, 0xa5, 0xa8, 0xfe, 0xac, 0xb1, 0x01, 0x9e, 0xfe,
+ 0x96, 0xc1, 0x01, 0xb8, 0x04, 0x60, 0xfd, 0xf2, 0x02, 0x0e, 0xfe, 0x51,
+ 0xfd, 0x4f, 0x02, 0x36, 0xc9, 0xfe, 0x93, 0x01, 0x6d, 0xc9, 0xfd, 0xca,
+ 0x02, 0xb1, 0x01, 0xaf, 0xfd, 0xf2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x04, 0x7c, 0x00, 0x28, 0x00, 0x00, 0x01, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x02, 0x7b, 0x70, 0x7c, 0xe8, 0xd6, 0x48, 0x98, 0x51,
+ 0x40, 0x99, 0x53, 0x88, 0x98, 0x87, 0x7b, 0x85, 0x8b, 0x69, 0x79, 0x7d,
+ 0x6b, 0x40, 0x91, 0x57, 0x58, 0x99, 0x45, 0xb0, 0xcc, 0x6c, 0x02, 0x5c,
+ 0x18, 0x92, 0x6c, 0xad, 0xb6, 0x1c, 0x1c, 0xab, 0x25, 0x25, 0x70, 0x5a,
+ 0x58, 0x6b, 0x98, 0x59, 0x46, 0x40, 0x5c, 0x1a, 0x1d, 0xa7, 0x18, 0x18,
+ 0x9d, 0x8d, 0x5d, 0x81, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x23,
+ 0x11, 0x33, 0x11, 0x01, 0x04, 0x06, 0xa4, 0xfe, 0x1a, 0xd5, 0xa5, 0x01,
+ 0xe5, 0x04, 0x60, 0xfb, 0xa0, 0x03, 0x83, 0xfc, 0x7d, 0x04, 0x60, 0xfc,
+ 0x7f, 0x03, 0x81, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07,
+ 0x06, 0x14, 0x12, 0x26, 0x03, 0xcc, 0x00, 0x00, 0x11, 0x07, 0x02, 0x9a,
+ 0x00, 0x8a, 0xff, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x1d, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x07, 0x11, 0x23, 0xa7, 0xa5,
+ 0x01, 0xd3, 0xcc, 0xfe, 0x7e, 0x01, 0xb3, 0xb9, 0xfe, 0x9a, 0xb1, 0xa5,
+ 0x04, 0x60, 0xfd, 0xf2, 0x02, 0x0e, 0xfe, 0x4f, 0xfd, 0x51, 0x02, 0x35,
+ 0xc8, 0xfe, 0x93, 0x00, 0x00, 0x01, 0x00, 0x44, 0x00, 0x00, 0x04, 0x02,
+ 0x04, 0x60, 0x00, 0x0f, 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, 0x36, 0x11,
+ 0x35, 0x21, 0x11, 0x23, 0x11, 0x21, 0x15, 0x10, 0x07, 0x06, 0x44, 0xa4,
+ 0x33, 0x3d, 0x02, 0xa9, 0xa5, 0xfe, 0xa1, 0x4f, 0x54, 0x99, 0x1c, 0x7e,
+ 0xb1, 0x01, 0xc5, 0xb7, 0xfb, 0xa0, 0x03, 0xcd, 0x6f, 0xfe, 0x50, 0xc2,
+ 0xcf, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc8,
+ 0x04, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x11,
+ 0x23, 0x11, 0x01, 0x23, 0x01, 0x11, 0x23, 0xa7, 0xf3, 0x01, 0x1e, 0x01,
+ 0x1f, 0xf0, 0xa6, 0xfe, 0xe9, 0xa5, 0xfe, 0xe9, 0xa7, 0x04, 0x60, 0xfd,
+ 0x12, 0x02, 0xee, 0xfb, 0xa0, 0x03, 0xb0, 0xfd, 0x27, 0x02, 0xd9, 0xfc,
+ 0x50, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x0e,
+ 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0xa7, 0xa7, 0x02, 0x19, 0xa7, 0xa7,
+ 0xfd, 0xe7, 0xa7, 0x04, 0x60, 0xfe, 0x37, 0x01, 0xc9, 0xfb, 0xa0, 0x02,
+ 0x04, 0xfd, 0xfc, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x04, 0x7b, 0x12, 0x06, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x0e, 0x04, 0x60, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x04, 0x0e, 0xa7, 0xfd, 0xe7, 0xa7,
+ 0x04, 0x60, 0xfb, 0xa0, 0x03, 0xcd, 0xfc, 0x33, 0x04, 0x60, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x12, 0x06,
+ 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x12, 0x06, 0x00, 0x46, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x03, 0xfc, 0x04, 0x60, 0x00, 0x07, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x36, 0x03, 0xc6, 0xfe, 0x6e, 0xa3,
+ 0xfe, 0x6f, 0x04, 0x60, 0x93, 0xfc, 0x33, 0x03, 0xcd, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x04, 0x60, 0x12, 0x06,
+ 0x00, 0x5c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x64, 0xfe, 0x56, 0x05, 0xc4,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x28, 0x00, 0x33, 0x00, 0x00, 0x01, 0x14,
+ 0x16, 0x33, 0x32, 0x37, 0x11, 0x26, 0x23, 0x22, 0x06, 0x01, 0x11, 0x0e,
+ 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x11,
+ 0x33, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22,
+ 0x26, 0x27, 0x11, 0x01, 0x34, 0x26, 0x23, 0x22, 0x07, 0x11, 0x16, 0x33,
+ 0x32, 0x36, 0x01, 0x11, 0x82, 0x6f, 0x58, 0x67, 0x67, 0x58, 0x6f, 0x82,
+ 0x01, 0xb0, 0x34, 0x75, 0x4b, 0x97, 0xd1, 0xd1, 0x97, 0x4b, 0x75, 0x34,
+ 0xa6, 0x33, 0x76, 0x4b, 0x96, 0xd2, 0xd2, 0x96, 0x4b, 0x76, 0x33, 0x01,
+ 0xb0, 0x82, 0x6f, 0x58, 0x67, 0x67, 0x58, 0x6f, 0x82, 0x02, 0x2f, 0xeb,
+ 0xc7, 0xa8, 0x02, 0x14, 0xa8, 0xc7, 0xfb, 0x3c, 0x02, 0x39, 0x5e, 0x4e,
+ 0x01, 0x35, 0x01, 0x13, 0x01, 0x13, 0x01, 0x3d, 0x4c, 0x5e, 0x02, 0x04,
+ 0xfd, 0xfc, 0x5e, 0x4c, 0xfe, 0xc3, 0xfe, 0xed, 0xfe, 0xed, 0xfe, 0xcb,
+ 0x4e, 0x5e, 0xfd, 0xc7, 0x03, 0xd9, 0xeb, 0xc7, 0xa8, 0xfd, 0xec, 0xa8,
+ 0xc7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x04, 0x07,
+ 0x04, 0x60, 0x12, 0x06, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0xe5, 0x04, 0x92, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x29, 0x01,
+ 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x04, 0x0e,
+ 0xfc, 0x99, 0xa7, 0x02, 0x19, 0xa7, 0x84, 0x84, 0x04, 0x60, 0xfc, 0x33,
+ 0x03, 0xcd, 0xfc, 0x33, 0xfe, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87,
+ 0x00, 0x00, 0x03, 0x9a, 0x04, 0x60, 0x00, 0x11, 0x00, 0x00, 0x21, 0x11,
+ 0x21, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x21, 0x11, 0x33, 0x11, 0x02, 0xf4, 0xfe, 0xcb, 0x89, 0x5c, 0x53, 0xa6,
+ 0x2e, 0x30, 0x5e, 0x01, 0x0b, 0xa6, 0x01, 0xd7, 0x5f, 0x56, 0xb8, 0x01,
+ 0x1c, 0xfe, 0xf5, 0x75, 0x3b, 0x3b, 0x01, 0xf6, 0xfb, 0xa0, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x05, 0xf0, 0x04, 0x60, 0x00, 0x0b,
+ 0x00, 0x00, 0x25, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x03, 0x9e, 0x01, 0xab, 0xa6, 0xfa, 0xb8, 0xa7, 0x01, 0xaa,
+ 0xa6, 0x93, 0x03, 0xcd, 0xfb, 0xa0, 0x04, 0x60, 0xfc, 0x33, 0x03, 0xcd,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x06, 0x74, 0x04, 0x60, 0x00, 0x0f,
+ 0x00, 0x00, 0x29, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x05, 0xef, 0xfa, 0xb8, 0xa7, 0x01,
+ 0xaa, 0xa6, 0x01, 0xab, 0xa6, 0x85, 0x85, 0x04, 0x60, 0xfc, 0x33, 0x03,
+ 0xcd, 0xfc, 0x33, 0x03, 0xcd, 0xfc, 0x33, 0xfe, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x04, 0xaa, 0x04, 0x60, 0x00, 0x0c,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21,
+ 0x11, 0x21, 0x35, 0x21, 0x11, 0x17, 0x23, 0x11, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x03, 0x19, 0xc1, 0xcf, 0xcf, 0xc1, 0xfe, 0x65, 0xfe, 0xba,
+ 0x01, 0xed, 0xed, 0xed, 0xed, 0x71, 0x76, 0x76, 0x02, 0x97, 0xa3, 0xa8,
+ 0xa8, 0xa4, 0x03, 0xcd, 0x93, 0xfe, 0x37, 0x93, 0xfe, 0x8f, 0x5f, 0x5a,
+ 0x5a, 0x5e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x05, 0x0c,
+ 0x04, 0x7b, 0x10, 0x27, 0x00, 0xf3, 0x03, 0xb8, 0x00, 0x00, 0x10, 0x06,
+ 0x03, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xd2,
+ 0x04, 0x60, 0x00, 0x08, 0x00, 0x13, 0x00, 0x00, 0x01, 0x34, 0x26, 0x2b,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x01, 0x33, 0x11, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x21, 0x03, 0x21, 0x76, 0x71, 0xec, 0xec, 0x71, 0x76,
+ 0xfd, 0x86, 0xa7, 0xf3, 0xc1, 0xcf, 0xcf, 0xc1, 0xfe, 0x66, 0x01, 0x4c,
+ 0x5a, 0x5e, 0xfe, 0x8f, 0x5f, 0x03, 0x6e, 0xfe, 0x37, 0xa3, 0xa8, 0xa8,
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x00, 0x18, 0x00, 0x00, 0x37, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x21, 0x35, 0x21, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x35, 0x36, 0x33, 0x32,
+ 0x00, 0x11, 0x10, 0x00, 0x23, 0x22, 0x27, 0x66, 0x8e, 0x8d, 0x85, 0xbc,
+ 0x12, 0xfe, 0x00, 0x01, 0xfa, 0x0b, 0x8f, 0xb3, 0x8a, 0x91, 0x8d, 0x95,
+ 0xec, 0x01, 0x0f, 0xfe, 0xf8, 0xe7, 0xaa, 0x84, 0xd5, 0x56, 0xab, 0xda,
+ 0x93, 0x69, 0xdf, 0x56, 0xac, 0x46, 0xfe, 0xc3, 0xfe, 0xf1, 0xfe, 0xf2,
+ 0xfe, 0xc2, 0x48, 0x00, 0x00, 0x02, 0x00, 0xad, 0xff, 0xe3, 0x05, 0xab,
+ 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x01, 0x36, 0x12, 0x33,
+ 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x27, 0x23, 0x11, 0x23,
+ 0x11, 0x33, 0x11, 0x03, 0xdc, 0x85, 0x9b, 0x9a, 0x86, 0x84, 0x9b, 0x9b,
+ 0xfd, 0xb3, 0x11, 0xe0, 0xd8, 0xd8, 0xf7, 0xf7, 0xd8, 0xd9, 0xec, 0x09,
+ 0xbb, 0xa5, 0xa5, 0x03, 0xdf, 0xe7, 0xc9, 0xc9, 0xe7, 0xe8, 0xc8, 0xc7,
+ 0xe9, 0xfe, 0xc2, 0xbe, 0x01, 0x1c, 0xfe, 0xc8, 0xfe, 0xec, 0xfe, 0xed,
+ 0xfe, 0xc7, 0x01, 0x2e, 0xf8, 0xfd, 0xf7, 0x04, 0x60, 0xfe, 0x41, 0x00,
+ 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x03, 0xb9, 0x04, 0x60, 0x00, 0x08,
+ 0x00, 0x16, 0x00, 0x00, 0x01, 0x14, 0x16, 0x3b, 0x01, 0x11, 0x23, 0x22,
+ 0x06, 0x03, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x21, 0x11, 0x23,
+ 0x11, 0x23, 0x01, 0x01, 0x54, 0x73, 0x6b, 0xe0, 0xe0, 0x6b, 0x73, 0xec,
+ 0x01, 0x34, 0x68, 0x8b, 0xc2, 0xc3, 0x01, 0x8a, 0xa6, 0xce, 0xfe, 0xd7,
+ 0x03, 0x1d, 0x53, 0x5e, 0x01, 0x61, 0x5c, 0xfc, 0x8f, 0x01, 0xeb, 0x1a,
+ 0x89, 0x8f, 0xa2, 0xa1, 0xfb, 0xa0, 0x01, 0xd9, 0xfe, 0x27, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x6b, 0x12, 0x26,
+ 0x03, 0xc9, 0x00, 0x00, 0x10, 0x06, 0x00, 0x43, 0x51, 0x05, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x10, 0x12, 0x26,
+ 0x03, 0xc9, 0x00, 0x00, 0x11, 0x07, 0x00, 0x6a, 0x00, 0x87, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2a, 0xfe, 0x56, 0x04, 0x1c,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x00, 0x13, 0x23, 0x35, 0x33, 0x11, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x11, 0x14,
+ 0x00, 0x07, 0x35, 0x36, 0x12, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0xc9, 0x9f, 0x9f, 0xa6, 0x01, 0xe7, 0xfe, 0x19, 0x3c, 0xa0,
+ 0x6a, 0xa4, 0xc2, 0xfe, 0xcb, 0xc1, 0x6e, 0xdc, 0x6f, 0x70, 0x8a, 0x97,
+ 0xa6, 0x03, 0xd1, 0x8f, 0x01, 0xb4, 0xfe, 0x4c, 0x8f, 0xfe, 0x6d, 0x65,
+ 0x64, 0xe9, 0xfe, 0xea, 0xe2, 0xfe, 0x59, 0x29, 0x8c, 0x16, 0x01, 0x2e,
+ 0xd2, 0xd0, 0x9f, 0xc4, 0x9e, 0xfe, 0xfb, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0x76, 0x06, 0x6d, 0x12, 0x26, 0x03, 0xc7, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x78, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x18, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x15, 0x26, 0x23, 0x22, 0x06, 0x07, 0x21, 0x15, 0x21, 0x1e, 0x01,
+ 0x33, 0x32, 0x37, 0x15, 0x06, 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x02,
+ 0x60, 0x96, 0x8d, 0x91, 0x8a, 0xb4, 0x8f, 0x0a, 0x01, 0xf9, 0xfe, 0x01,
+ 0x11, 0xbd, 0x85, 0x8d, 0x8e, 0x84, 0xaa, 0xe8, 0xfe, 0xf9, 0x01, 0x0f,
+ 0x04, 0x7b, 0x46, 0xac, 0x56, 0xdf, 0x69, 0x93, 0xda, 0xab, 0x56, 0xaa,
+ 0x48, 0x01, 0x3e, 0x01, 0x0e, 0x01, 0x0f, 0x01, 0x3d, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67, 0x04, 0x7b, 0x12, 0x06,
+ 0x00, 0x56, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x01, 0x54,
+ 0x06, 0x14, 0x12, 0x06, 0x00, 0x4c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf5,
+ 0x00, 0x00, 0x02, 0x0c, 0x06, 0x10, 0x10, 0x06, 0x00, 0xb1, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xde, 0xfe, 0x56, 0x01, 0x54, 0x06, 0x14, 0x12, 0x06,
+ 0x00, 0x4d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x44, 0x00, 0x00, 0x06, 0x13,
+ 0x04, 0x60, 0x00, 0x16, 0x00, 0x1f, 0x00, 0x00, 0x33, 0x35, 0x36, 0x37,
+ 0x36, 0x11, 0x35, 0x21, 0x11, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x21, 0x11, 0x21, 0x15, 0x10, 0x07, 0x06, 0x25, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x11, 0x44, 0xa4, 0x33, 0x3d, 0x02, 0x8f, 0x9a, 0xc1,
+ 0xd0, 0xd0, 0xc0, 0xfe, 0xbe, 0xfe, 0xbe, 0x4f, 0x55, 0x03, 0x20, 0x71,
+ 0x77, 0x77, 0x71, 0x93, 0x99, 0x1c, 0x7e, 0xb1, 0x01, 0xc5, 0xb7, 0xfe,
+ 0x37, 0xa3, 0xa8, 0xa8, 0xa4, 0x03, 0xcd, 0x6f, 0xfe, 0x50, 0xc2, 0xcf,
+ 0x76, 0x5f, 0x5a, 0x5a, 0x5e, 0xfe, 0x8f, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0x00, 0x00, 0x06, 0x0c, 0x04, 0x60, 0x00, 0x12, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x21,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x01, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x11, 0x03, 0xe0, 0x9a, 0xc0, 0xd1, 0xd0, 0xc0, 0xfe,
+ 0xbe, 0xfe, 0x15, 0xa7, 0xa7, 0x01, 0xeb, 0x01, 0x39, 0x72, 0x77, 0x77,
+ 0x72, 0x92, 0x04, 0x60, 0xfe, 0x37, 0xa3, 0xa8, 0xa8, 0xa4, 0x02, 0x04,
+ 0xfd, 0xfc, 0x04, 0x60, 0xfe, 0x37, 0x01, 0xc9, 0xfc, 0x33, 0x5f, 0x5a,
+ 0x5a, 0x5e, 0xfe, 0x8f, 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x04, 0x15,
+ 0x06, 0x14, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x23, 0x35, 0x33, 0x11, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11,
+ 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0xc9, 0x9f,
+ 0x9f, 0xa6, 0x01, 0xe7, 0xfe, 0x19, 0x3c, 0xa1, 0x69, 0xaa, 0xb6, 0xa6,
+ 0x6f, 0x70, 0x89, 0x98, 0xa6, 0x03, 0xd1, 0x8f, 0x01, 0xb4, 0xfe, 0x4c,
+ 0x8f, 0xfe, 0x6d, 0x65, 0x64, 0xea, 0xed, 0xfe, 0xd0, 0x01, 0x2a, 0x9f,
+ 0x9e, 0xc1, 0xa1, 0xfe, 0xfb, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x1d, 0x06, 0x6d, 0x12, 0x26, 0x03, 0xce, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x64, 0x07, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x07, 0x06, 0x6b, 0x12, 0x26, 0x03, 0xcc, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x43, 0x54, 0x05, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36,
+ 0xfe, 0x56, 0x04, 0x0c, 0x06, 0x14, 0x12, 0x26, 0x03, 0xd7, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x9a, 0x55, 0xcc, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0xe5, 0x04, 0x0e, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x29, 0x01,
+ 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x23, 0x02, 0x18,
+ 0xfe, 0x8f, 0xa7, 0x02, 0x19, 0xa7, 0xfe, 0x8f, 0x85, 0x04, 0x60, 0xfc,
+ 0x33, 0x03, 0xcd, 0xfb, 0xa0, 0xfe, 0xe5, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xff, 0xe3, 0x06, 0x52, 0x05, 0xd5, 0x00, 0x34, 0x00, 0x00, 0x05, 0x22,
+ 0x27, 0x26, 0x11, 0x34, 0x13, 0x36, 0x37, 0x33, 0x06, 0x03, 0x06, 0x15,
+ 0x10, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x11, 0x34, 0x27, 0x02, 0x27, 0x33,
+ 0x16, 0x17, 0x12, 0x15, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x06, 0x07, 0x06, 0x02, 0x01, 0xbe, 0x6d, 0x6e, 0x5a, 0x35, 0x53, 0xe0,
+ 0x4b, 0x7a, 0x3c, 0x41, 0x42, 0x70, 0x67, 0x40, 0x40, 0xb3, 0x3f, 0x3f,
+ 0x69, 0x78, 0x3b, 0x40, 0x3c, 0x7a, 0x4c, 0xe1, 0x56, 0x32, 0x5a, 0x6e,
+ 0x6f, 0xbc, 0x84, 0x5a, 0x5a, 0x24, 0x23, 0x5a, 0x5b, 0x1d, 0xb1, 0xb4,
+ 0x01, 0x98, 0xc9, 0x01, 0x0e, 0x9f, 0x7f, 0x46, 0xfe, 0xbf, 0x9f, 0xb7,
+ 0xfe, 0xcd, 0x6b, 0x6d, 0x69, 0x68, 0xc6, 0xf1, 0xf1, 0xc6, 0x68, 0x69,
+ 0x6d, 0x77, 0x01, 0x27, 0xb7, 0x9f, 0x01, 0x41, 0x46, 0x82, 0x9c, 0xfe,
+ 0xe7, 0xbe, 0xfe, 0x66, 0xb2, 0xb1, 0x5e, 0x5e, 0xad, 0xad, 0x5e, 0x5e,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a, 0x04, 0x60, 0x10, 0x06,
+ 0x03, 0x5d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x00, 0x05, 0x20,
+ 0x05, 0xd5, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x15, 0x21, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x21, 0x35, 0x21, 0x35, 0x33,
+ 0x15, 0x21, 0x15, 0x13, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x21, 0x32,
+ 0x37, 0x36, 0x02, 0x1c, 0x01, 0x2d, 0xe1, 0xf5, 0xf5, 0xe1, 0xfe, 0x1d,
+ 0xfe, 0xb5, 0x01, 0x4b, 0xb6, 0x01, 0x4c, 0xf8, 0x48, 0x46, 0x92, 0xfe,
+ 0xdc, 0x01, 0x24, 0x92, 0x46, 0x48, 0x04, 0x51, 0xe2, 0xda, 0xde, 0xdd,
+ 0xda, 0x04, 0x51, 0xa4, 0xe0, 0xe0, 0xa4, 0xfd, 0x66, 0x8b, 0x44, 0x43,
+ 0xfd, 0xdd, 0x44, 0x43, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x00, 0x04, 0x6a,
+ 0x06, 0x14, 0x00, 0x07, 0x00, 0x19, 0x00, 0x00, 0x24, 0x34, 0x26, 0x2b,
+ 0x01, 0x11, 0x33, 0x32, 0x05, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x33, 0x32, 0x16, 0x10, 0x06, 0x23, 0x03, 0xb9,
+ 0x76, 0x71, 0xec, 0xec, 0x71, 0xfd, 0xfd, 0xfe, 0xdb, 0x01, 0x25, 0xa6,
+ 0x01, 0x7e, 0xfe, 0x82, 0xf3, 0xc1, 0xd0, 0xd0, 0xc1, 0xf2, 0xb4, 0x5e,
+ 0xfe, 0x8f, 0x93, 0x03, 0xcd, 0x93, 0x01, 0xb4, 0xfe, 0x4c, 0x93, 0xfe,
+ 0xca, 0xa3, 0xfe, 0xb0, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xbd,
+ 0xff, 0xe3, 0x06, 0x66, 0x05, 0xf0, 0x00, 0x2b, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x33, 0x11, 0x33, 0x12, 0x37, 0x36, 0x21, 0x32, 0x17, 0x16,
+ 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x21, 0x15,
+ 0x21, 0x12, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07,
+ 0x06, 0x23, 0x20, 0x27, 0x26, 0x03, 0x01, 0x74, 0xb6, 0xb6, 0xbd, 0x1b,
+ 0x8d, 0xaf, 0x01, 0x32, 0x78, 0x6a, 0x6c, 0x5d, 0x5c, 0x67, 0x69, 0x75,
+ 0xe6, 0x7a, 0x5d, 0x17, 0x02, 0x6d, 0xfd, 0x8c, 0x07, 0x74, 0x7b, 0xe5,
+ 0x75, 0x69, 0x67, 0x5c, 0x5f, 0x6b, 0x6b, 0x76, 0xfe, 0xce, 0xaf, 0xa7,
+ 0x08, 0x02, 0xc7, 0xfd, 0x39, 0x05, 0xd5, 0xfd, 0x9c, 0x01, 0x08, 0xa7,
+ 0xd0, 0x24, 0x23, 0x47, 0xd5, 0x5f, 0x2f, 0x2f, 0x9c, 0x77, 0xc6, 0xaa,
+ 0xfe, 0xf3, 0x94, 0x9d, 0x2f, 0x2f, 0x5f, 0xd3, 0x48, 0x24, 0x24, 0xcf,
+ 0xc6, 0x01, 0x4f, 0x00, 0x00, 0x01, 0x00, 0xad, 0xff, 0xe3, 0x04, 0xf5,
+ 0x04, 0x7b, 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x17, 0x15, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x21, 0x15, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x15, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x23, 0x11, 0x23, 0x11,
+ 0x33, 0x11, 0x33, 0x36, 0x37, 0x36, 0x03, 0xd1, 0x96, 0x8d, 0x91, 0x8a,
+ 0xcf, 0x53, 0x1f, 0x0b, 0x01, 0x9e, 0xfe, 0x5b, 0x0c, 0x8e, 0x4d, 0x6c,
+ 0x8d, 0x8e, 0x84, 0xa9, 0xf3, 0x85, 0x6e, 0x09, 0x85, 0xa5, 0xa5, 0x89,
+ 0x15, 0x6e, 0x87, 0x04, 0x7b, 0x46, 0xac, 0x56, 0xb4, 0x41, 0x57, 0x8f,
+ 0xf4, 0x5e, 0x33, 0x56, 0xaa, 0x48, 0xad, 0x90, 0xe4, 0xfd, 0xfc, 0x04,
+ 0x60, 0xfe, 0x33, 0xca, 0x80, 0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e,
+ 0x00, 0x00, 0x06, 0x46, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x00,
+ 0x21, 0x23, 0x03, 0x23, 0x11, 0x23, 0x11, 0x23, 0x03, 0x23, 0x01, 0x33,
+ 0x13, 0x09, 0x01, 0x06, 0x46, 0xcb, 0xfa, 0xfb, 0xb6, 0xfd, 0xfa, 0xcb,
+ 0x02, 0xb5, 0xcf, 0x9f, 0xfe, 0xf9, 0xfe, 0xf9, 0x02, 0x1b, 0xfd, 0xe5,
+ 0x02, 0x1b, 0xfd, 0xe5, 0x05, 0xd5, 0xfc, 0xf3, 0x02, 0x37, 0xfd, 0xc9,
+ 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x05, 0x76, 0x04, 0x60, 0x00, 0x0b,
+ 0x00, 0x0e, 0x00, 0x00, 0x21, 0x23, 0x03, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x03, 0x23, 0x01, 0x33, 0x13, 0x0b, 0x01, 0x05, 0x76, 0xb0, 0xd4, 0xcc,
+ 0xa6, 0xce, 0xd5, 0xaf, 0x02, 0x4c, 0xb0, 0x82, 0xda, 0xdb, 0x01, 0x95,
+ 0xfe, 0x6b, 0x01, 0x95, 0xfe, 0x6b, 0x04, 0x60, 0xfd, 0xb9, 0x01, 0xa1,
+ 0xfe, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x08, 0x2c,
+ 0x05, 0xd5, 0x00, 0x13, 0x00, 0x16, 0x00, 0x00, 0x21, 0x23, 0x03, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x03, 0x23, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x21, 0x01, 0x33, 0x13, 0x09, 0x01, 0x08, 0x2c, 0xcb, 0xfa, 0xfb,
+ 0xb6, 0xfd, 0xfa, 0xcb, 0x01, 0x4b, 0xfe, 0x2c, 0xb6, 0xb6, 0x02, 0x22,
+ 0x01, 0x1c, 0xcf, 0x9f, 0xfe, 0xf9, 0xfe, 0xf9, 0x02, 0x1b, 0xfd, 0xe5,
+ 0x02, 0x1b, 0xfd, 0xe5, 0x02, 0xc7, 0xfd, 0x39, 0x05, 0xd5, 0xfd, 0x9c,
+ 0x02, 0x64, 0xfc, 0xf3, 0x02, 0x37, 0xfd, 0xc9, 0x00, 0x02, 0x00, 0xad,
+ 0x00, 0x00, 0x07, 0x08, 0x04, 0x60, 0x00, 0x13, 0x00, 0x16, 0x00, 0x00,
+ 0x21, 0x23, 0x03, 0x23, 0x11, 0x23, 0x11, 0x23, 0x03, 0x23, 0x01, 0x21,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x01, 0x33, 0x13, 0x0b, 0x01, 0x07,
+ 0x08, 0xb0, 0xd4, 0xcc, 0xa6, 0xce, 0xd4, 0xb0, 0x01, 0x00, 0xfe, 0x93,
+ 0xa5, 0xa5, 0x01, 0xb8, 0x01, 0x02, 0xaf, 0x83, 0xdb, 0xdb, 0x01, 0x95,
+ 0xfe, 0x6b, 0x01, 0x95, 0xfe, 0x6b, 0x01, 0xe7, 0xfe, 0x19, 0x04, 0x60,
+ 0xfe, 0x17, 0x01, 0xe9, 0xfd, 0xb9, 0x01, 0xa1, 0xfe, 0x5f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x05, 0x44, 0x05, 0xd5, 0x00, 0x17,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x11,
+ 0x23, 0x10, 0x37, 0x36, 0x37, 0x01, 0x21, 0x01, 0x16, 0x17, 0x16, 0x11,
+ 0x23, 0x10, 0x27, 0x26, 0x27, 0x01, 0x21, 0x03, 0x30, 0xb6, 0x84, 0x5a,
+ 0x75, 0xbf, 0xaa, 0x6c, 0x99, 0xfe, 0x7c, 0x04, 0x90, 0xfe, 0x7b, 0x94,
+ 0x68, 0xa9, 0xbf, 0x74, 0x56, 0xdf, 0x01, 0x1e, 0xfd, 0xc3, 0x02, 0x59,
+ 0xfd, 0xa7, 0x02, 0x59, 0x1c, 0x7e, 0xa4, 0xfe, 0xe5, 0x01, 0x62, 0xd2,
+ 0x86, 0x31, 0x02, 0xea, 0xfd, 0x13, 0x32, 0x82, 0xd2, 0xfe, 0x9e, 0x01,
+ 0x1e, 0xa1, 0x7a, 0xca, 0x02, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x60,
+ 0x00, 0x00, 0x04, 0x09, 0x04, 0x60, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x21, 0x13, 0x09, 0x01, 0x16, 0x17, 0x16, 0x11, 0x23, 0x34, 0x27,
+ 0x26, 0x27, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x15, 0x23, 0x10, 0x37,
+ 0x36, 0x37, 0x01, 0x02, 0xf1, 0xfe, 0x87, 0xbc, 0x01, 0xd4, 0xfe, 0xdc,
+ 0x60, 0x44, 0x7b, 0xb0, 0x4d, 0x34, 0x4e, 0xa5, 0x4b, 0x32, 0x4e, 0xae,
+ 0x7b, 0x43, 0x61, 0xfe, 0xdb, 0x03, 0xb6, 0xfe, 0x96, 0x02, 0x14, 0xfd,
+ 0xcc, 0x26, 0x56, 0x9c, 0xfe, 0xec, 0xc7, 0x74, 0x4f, 0x1a, 0xfe, 0x5c,
+ 0x01, 0xa2, 0x1a, 0x4b, 0x74, 0xc9, 0x01, 0x14, 0x9c, 0x55, 0x27, 0x02,
+ 0x34, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x06, 0xfe,
+ 0x05, 0xd5, 0x00, 0x1e, 0x00, 0x21, 0x00, 0x00, 0x09, 0x01, 0x21, 0x01,
+ 0x16, 0x17, 0x16, 0x11, 0x23, 0x10, 0x27, 0x26, 0x27, 0x11, 0x23, 0x11,
+ 0x06, 0x07, 0x06, 0x11, 0x23, 0x10, 0x37, 0x36, 0x37, 0x21, 0x11, 0x23,
+ 0x11, 0x33, 0x11, 0x05, 0x01, 0x21, 0x03, 0x8a, 0xfe, 0xc3, 0x04, 0x90,
+ 0xfe, 0x7b, 0x94, 0x68, 0xa9, 0xbf, 0x74, 0x56, 0x8a, 0xb6, 0x84, 0x5a,
+ 0x75, 0xc0, 0xab, 0x4c, 0x63, 0xfd, 0xf0, 0xb6, 0xb6, 0x03, 0x2a, 0x01,
+ 0x1e, 0xfd, 0xc3, 0x03, 0x71, 0x02, 0x64, 0xfd, 0x13, 0x32, 0x82, 0xd2,
+ 0xfe, 0x9e, 0x01, 0x1e, 0xa1, 0x7a, 0x20, 0xfd, 0xa7, 0x02, 0x59, 0x1c,
+ 0x7e, 0xa4, 0xfe, 0xe5, 0x01, 0x62, 0xd2, 0x5f, 0x34, 0xfd, 0x39, 0x05,
+ 0xd5, 0xfd, 0x9c, 0x6e, 0x02, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0xad,
+ 0x00, 0x00, 0x05, 0x90, 0x04, 0x60, 0x00, 0x1e, 0x00, 0x21, 0x00, 0x00,
+ 0x01, 0x03, 0x21, 0x01, 0x16, 0x17, 0x16, 0x11, 0x23, 0x34, 0x27, 0x26,
+ 0x27, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x15, 0x23, 0x10, 0x37, 0x36,
+ 0x37, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x21, 0x13, 0x02, 0xe5,
+ 0xfd, 0x03, 0xa8, 0xfe, 0xdb, 0x61, 0x43, 0x7b, 0xaf, 0x4d, 0x35, 0x4d,
+ 0xa6, 0x4a, 0x33, 0x4d, 0xaf, 0x7b, 0x19, 0x1c, 0xfe, 0xb6, 0xa5, 0xa5,
+ 0x03, 0x26, 0xfe, 0x87, 0xbc, 0x02, 0x77, 0x01, 0xe9, 0xfd, 0xcc, 0x26,
+ 0x56, 0x9c, 0xfe, 0xec, 0xc7, 0x74, 0x4f, 0x1a, 0xfe, 0x5c, 0x01, 0xa2,
+ 0x1a, 0x4b, 0x74, 0xc9, 0x01, 0x14, 0x9c, 0x1f, 0x18, 0xfe, 0x19, 0x04,
+ 0x60, 0xfe, 0x17, 0x01, 0x3f, 0xfe, 0x96, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xfe, 0x56, 0x04, 0x02, 0x07, 0x7a, 0x00, 0x53, 0x00, 0x00, 0x01, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x23, 0x22, 0x15, 0x14, 0x33, 0x32, 0x37,
+ 0x36, 0x17, 0x16, 0x17, 0x15, 0x26, 0x23, 0x22, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x35, 0x32, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x21, 0x22, 0x07, 0x35, 0x36, 0x37, 0x03, 0x33, 0x13, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x15, 0x27, 0x26, 0x23, 0x22, 0x0f,
+ 0x01, 0x16, 0x17, 0x16, 0x15, 0x10, 0x07, 0x16, 0x17, 0x16, 0x04, 0x01,
+ 0x67, 0x89, 0xb2, 0x3e, 0xa7, 0x20, 0x56, 0xc6, 0x3b, 0x73, 0x68, 0x1d,
+ 0x58, 0x4c, 0x3d, 0x69, 0x35, 0xe3, 0x36, 0x70, 0x43, 0x92, 0x2f, 0x39,
+ 0x69, 0x01, 0x3c, 0x5e, 0x3f, 0x3a, 0xa8, 0x4f, 0xe0, 0x10, 0x4d, 0x15,
+ 0x93, 0x49, 0x6a, 0xfe, 0xe4, 0x94, 0xc8, 0x90, 0x74, 0x8f, 0x67, 0x90,
+ 0x60, 0x1b, 0x0d, 0x15, 0x15, 0x1f, 0x3c, 0x17, 0x1f, 0x23, 0x09, 0x0e,
+ 0x1f, 0x2d, 0x51, 0x96, 0x58, 0x67, 0xf6, 0x7f, 0x4a, 0x4c, 0x01, 0xbe,
+ 0xcf, 0x67, 0x88, 0x08, 0x82, 0x72, 0x0c, 0x0b, 0x02, 0x07, 0x25, 0xa7,
+ 0x27, 0x1b, 0x2c, 0x61, 0x92, 0x7a, 0x51, 0x5e, 0x58, 0x52, 0x6a, 0xbd,
+ 0x37, 0x19, 0xa6, 0x02, 0x26, 0x36, 0x8d, 0xee, 0x4a, 0xb4, 0x2d, 0x0d,
+ 0x01, 0x83, 0xfe, 0x83, 0xde, 0x40, 0x18, 0x27, 0x12, 0x1b, 0x0a, 0x57,
+ 0x05, 0x02, 0x6f, 0xca, 0x18, 0x57, 0x64, 0xa7, 0xfe, 0xfd, 0x45, 0x1e,
+ 0x5c, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51, 0xfe, 0x74, 0x03, 0x68,
+ 0x06, 0x06, 0x00, 0x4f, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x23, 0x22, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x36, 0x33, 0x32,
+ 0x17, 0x15, 0x26, 0x23, 0x22, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x10,
+ 0x33, 0x21, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x22, 0x23, 0x35,
+ 0x32, 0x17, 0x32, 0x33, 0x20, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x35, 0x36, 0x37, 0x03, 0x33, 0x13, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x15, 0x26, 0x23, 0x22, 0x0f, 0x01, 0x04, 0x15, 0x14, 0x07, 0x16,
+ 0x17, 0x16, 0x03, 0x67, 0x6a, 0x62, 0x92, 0x3d, 0x97, 0x17, 0x48, 0x58,
+ 0x1e, 0x23, 0x28, 0xa0, 0x29, 0x59, 0x4f, 0x35, 0x59, 0x2c, 0xbd, 0x2d,
+ 0x5e, 0x39, 0x7b, 0xb0, 0x01, 0x0e, 0x51, 0x63, 0x46, 0x36, 0x66, 0x05,
+ 0xa0, 0x0a, 0x1d, 0x1d, 0x13, 0x01, 0x16, 0x54, 0x41, 0x53, 0x82, 0xa6,
+ 0x71, 0x5c, 0x8f, 0x68, 0x90, 0x5f, 0x2a, 0x13, 0x27, 0x49, 0x17, 0x20,
+ 0x2d, 0x0e, 0x1e, 0x2e, 0x51, 0x01, 0x11, 0xd1, 0x64, 0x40, 0x48, 0x01,
+ 0x52, 0x9e, 0x5e, 0x56, 0x08, 0x81, 0x61, 0x1b, 0x09, 0x24, 0x27, 0x8b,
+ 0x22, 0x17, 0x25, 0x52, 0x97, 0x01, 0x0c, 0x60, 0x59, 0x4c, 0x38, 0x2b,
+ 0x08, 0x98, 0x01, 0xa0, 0x51, 0x2a, 0x21, 0x37, 0xa7, 0x1f, 0x0b, 0x01,
+ 0x83, 0xfe, 0x83, 0xde, 0x63, 0x17, 0x32, 0x0a, 0x57, 0x07, 0x6f, 0xca,
+ 0x2f, 0xf2, 0xc4, 0x32, 0x16, 0x40, 0x49, 0x00, 0x00, 0x01, 0x00, 0x0e,
+ 0x00, 0x00, 0x06, 0x15, 0x05, 0xd5, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x01, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x01, 0x33, 0x01, 0x33, 0x11, 0x33, 0x11, 0x33, 0x13, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x06, 0x14, 0x34, 0x17, 0x1c, 0x22, 0x1a, 0x3b, 0x36,
+ 0xff, 0x00, 0xe1, 0xb6, 0xe1, 0xfe, 0x86, 0xb0, 0x01, 0x3b, 0x70, 0xb6,
+ 0x71, 0xd0, 0x47, 0x5d, 0x3c, 0x74, 0x2e, 0x32, 0x05, 0x14, 0x07, 0x03,
+ 0x19, 0x38, 0xa1, 0xfd, 0x0a, 0xfe, 0xca, 0x01, 0x36, 0x04, 0x60, 0xfc,
+ 0x54, 0x03, 0xeb, 0xfc, 0x13, 0x02, 0x72, 0xd4, 0x50, 0x33, 0x10, 0x00,
+ 0x00, 0x01, 0x00, 0x2d, 0xfe, 0x56, 0x06, 0x22, 0x06, 0x1e, 0x00, 0x1c,
+ 0x00, 0x00, 0x01, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x01, 0x33, 0x01, 0x33, 0x11, 0x33, 0x11, 0x33,
+ 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x06, 0x22, 0x35, 0x16, 0x1d,
+ 0x21, 0x1a, 0x3c, 0x36, 0xff, 0xe1, 0xa5, 0xe1, 0xfe, 0x86, 0xaf, 0x01,
+ 0x3c, 0x70, 0xa5, 0x70, 0xd1, 0x46, 0x5e, 0x3b, 0x74, 0x2e, 0x33, 0x03,
+ 0xde, 0x07, 0x03, 0x19, 0x38, 0xa1, 0xfd, 0x0a, 0xfe, 0x56, 0x01, 0xaa,
+ 0x04, 0x60, 0xfc, 0x54, 0x05, 0x6a, 0xfa, 0x94, 0x02, 0x72, 0xd4, 0x50,
+ 0x33, 0x10, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x05, 0xf0, 0x12, 0x06, 0x01, 0x61, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x12, 0x06, 0x02, 0x37, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x8a, 0x05, 0xf0, 0x00, 0x12,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x15, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x01, 0x23, 0x01, 0x33, 0x09, 0x01, 0x12, 0x36, 0x05, 0x18, 0x39,
+ 0x39, 0x3e, 0x14, 0x16, 0x42, 0x1e, 0x40, 0x4c, 0xfe, 0xa8, 0xcf, 0xfd,
+ 0xff, 0xbe, 0x01, 0xaa, 0x01, 0x19, 0x67, 0x9d, 0x05, 0xf0, 0x15, 0xbb,
+ 0x0a, 0x04, 0x22, 0x43, 0xdd, 0xfc, 0x14, 0x05, 0xd5, 0xfb, 0x17, 0x03,
+ 0x3d, 0x01, 0x32, 0x95, 0x00, 0x01, 0x00, 0x2d, 0x00, 0x00, 0x04, 0x9c,
+ 0x04, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x01, 0x32, 0x17, 0x15, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x07, 0x01, 0x23, 0x01, 0x33, 0x01, 0x13, 0x36,
+ 0x37, 0x36, 0x04, 0x3c, 0x2e, 0x32, 0x34, 0x11, 0x23, 0x21, 0x1a, 0x3b,
+ 0x36, 0xff, 0x00, 0xe1, 0xfe, 0x86, 0xaf, 0x01, 0x3c, 0xd0, 0x48, 0x5c,
+ 0x3c, 0x04, 0x7b, 0x10, 0x8d, 0x07, 0x03, 0x19, 0x37, 0xa2, 0xfd, 0x0a,
+ 0x04, 0x60, 0xfc, 0x54, 0x02, 0x70, 0xd5, 0x4f, 0x33, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x8a, 0x07, 0x70, 0x10, 0x27,
+ 0x10, 0xf5, 0x04, 0x67, 0x01, 0x7a, 0x12, 0x06, 0x04, 0x08, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x2d, 0x00, 0x00, 0x04, 0x9c, 0x06, 0x66, 0x10, 0x27,
+ 0x02, 0xc0, 0x04, 0x48, 0x00, 0x00, 0x12, 0x06, 0x04, 0x09, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x67, 0xfe, 0x56, 0x06, 0xee, 0x05, 0xf0, 0x00, 0x11,
+ 0x00, 0x1e, 0x00, 0x2c, 0x00, 0x00, 0x09, 0x01, 0x06, 0x07, 0x06, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x13, 0x01, 0x33, 0x1b, 0x01,
+ 0x01, 0x10, 0x07, 0x02, 0x20, 0x03, 0x26, 0x10, 0x37, 0x12, 0x20, 0x13,
+ 0x16, 0x03, 0x10, 0x27, 0x26, 0x20, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x06, 0xee, 0xfe, 0x45, 0x4a, 0x3f, 0x42, 0x70, 0x84,
+ 0x61, 0x44, 0x26, 0x22, 0x32, 0x6f, 0xfe, 0xc6, 0xaf, 0xe4, 0xe3, 0xfd,
+ 0x86, 0x56, 0x71, 0xfe, 0x33, 0x72, 0x56, 0x56, 0x72, 0x01, 0xcd, 0x71,
+ 0x56, 0xc0, 0x19, 0x32, 0xfe, 0xbc, 0x35, 0x19, 0x1a, 0x34, 0x01, 0x44,
+ 0x33, 0x18, 0x04, 0x60, 0xfb, 0x38, 0xcb, 0x3a, 0x3d, 0x9a, 0x24, 0x21,
+ 0x89, 0x01, 0x37, 0x03, 0x6b, 0xfd, 0x8a, 0x02, 0x76, 0xfe, 0x8a, 0xfe,
+ 0xdd, 0xd0, 0xfe, 0xec, 0x01, 0x13, 0xd1, 0x02, 0x44, 0xd1, 0x01, 0x14,
+ 0xfe, 0xed, 0xd1, 0xfe, 0xde, 0x01, 0x06, 0x72, 0xea, 0xea, 0x74, 0xfe,
+ 0xfb, 0xfe, 0xfc, 0x74, 0xea, 0xea, 0x72, 0x00, 0x00, 0x03, 0x00, 0x65,
+ 0xfe, 0x56, 0x06, 0x4c, 0x04, 0x7b, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x25,
+ 0x00, 0x00, 0x09, 0x01, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x37, 0x13, 0x01, 0x33, 0x1b, 0x01, 0x00, 0x10, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x02, 0x10,
+ 0x23, 0x22, 0x10, 0x33, 0x06, 0x4c, 0xfe, 0x45, 0x4a, 0x3f, 0x42, 0x70,
+ 0x84, 0x61, 0x44, 0x26, 0x22, 0x32, 0x6f, 0xfe, 0xc6, 0xaf, 0xe4, 0xe3,
+ 0xfd, 0xb6, 0x55, 0x67, 0xb8, 0xba, 0x68, 0x56, 0x56, 0x68, 0xba, 0xb8,
+ 0x67, 0x5a, 0xc5, 0xca, 0xca, 0x04, 0x60, 0xfb, 0x38, 0xcb, 0x3a, 0x3d,
+ 0x9a, 0x24, 0x21, 0x89, 0x01, 0x37, 0x03, 0x6b, 0xfd, 0x8a, 0x02, 0x76,
+ 0xfe, 0xab, 0xfe, 0x48, 0xa7, 0xc9, 0xc8, 0xa6, 0x01, 0xbc, 0xa6, 0xc8,
+ 0xc9, 0xfc, 0xcd, 0x03, 0x60, 0xfc, 0xa0, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0xff, 0xe3, 0x06, 0x76, 0x05, 0xf0, 0x00, 0x29, 0x00, 0x52, 0x00, 0x00,
+ 0x25, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x07, 0x23, 0x20, 0x27, 0x26, 0x10,
+ 0x37, 0x36, 0x21, 0x33, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x33, 0x20, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x21,
+ 0x23, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03,
+ 0xed, 0x1b, 0xd4, 0x66, 0x74, 0x74, 0x66, 0xd4, 0x1b, 0x0a, 0x0d, 0x14,
+ 0x18, 0x18, 0x37, 0x18, 0x18, 0x14, 0x0e, 0x09, 0x2a, 0xd3, 0x67, 0x75,
+ 0x75, 0x67, 0xd3, 0x2a, 0x09, 0x0e, 0x14, 0x18, 0x18, 0x37, 0x18, 0x18,
+ 0x14, 0x0e, 0xe4, 0x2a, 0xfe, 0xc4, 0x88, 0xaa, 0xaa, 0x88, 0x01, 0x3c,
+ 0x29, 0x0a, 0x0e, 0x14, 0x18, 0x18, 0x37, 0x18, 0x1c, 0x10, 0x0e, 0x0a,
+ 0x1a, 0x01, 0x3b, 0x89, 0xa9, 0xa9, 0x89, 0xfe, 0xc5, 0x1a, 0x09, 0x0f,
+ 0x14, 0x18, 0x18, 0x37, 0x18, 0x1c, 0x10, 0x0e, 0xc2, 0x91, 0xa4, 0xf2,
+ 0xf3, 0xa4, 0x91, 0x14, 0x0e, 0x15, 0x0c, 0x0b, 0x0b, 0x0c, 0x15, 0x10,
+ 0x12, 0x91, 0xa4, 0xf3, 0xf2, 0xa4, 0x91, 0x12, 0x10, 0x15, 0x0c, 0x0b,
+ 0x0b, 0x0c, 0x15, 0x10, 0xa1, 0xaa, 0xd2, 0x02, 0x74, 0xd3, 0xaa, 0x15,
+ 0x0f, 0x15, 0x0c, 0x0b, 0x0b, 0x0e, 0x13, 0x11, 0x13, 0xaa, 0xd3, 0xfe,
+ 0xc6, 0xfe, 0xc7, 0xd2, 0xab, 0x13, 0x11, 0x15, 0x0c, 0x0b, 0x0b, 0x0e,
+ 0x13, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x05, 0x11,
+ 0x04, 0x7b, 0x00, 0x26, 0x00, 0x50, 0x00, 0x00, 0x25, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x06, 0x07, 0x0e, 0x01, 0x22,
+ 0x26, 0x27, 0x26, 0x27, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x3b, 0x01, 0x36, 0x37, 0x3e, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x07,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x03, 0x1a, 0x28, 0x91, 0x41, 0x4d, 0x4d,
+ 0x39, 0x99, 0x28, 0x06, 0x0a, 0x10, 0x27, 0x2f, 0x28, 0x10, 0x09, 0x06,
+ 0x29, 0x92, 0x40, 0x4e, 0x4d, 0x41, 0x92, 0x29, 0x06, 0x09, 0x10, 0x28,
+ 0x2f, 0x13, 0x19, 0x0b, 0x09, 0xb5, 0x2a, 0xe7, 0x6c, 0x7b, 0x7b, 0x68,
+ 0xeb, 0x2a, 0x06, 0x08, 0x0c, 0x18, 0x14, 0x2f, 0x13, 0x19, 0x0b, 0x09,
+ 0x06, 0x29, 0xe8, 0x6c, 0x7b, 0x7b, 0x69, 0xeb, 0x29, 0x06, 0x09, 0x0b,
+ 0x19, 0x13, 0x2f, 0x14, 0x18, 0x0c, 0x08, 0xa4, 0x60, 0x74, 0xb7, 0xa7,
+ 0x83, 0x61, 0x0b, 0x0a, 0x11, 0x14, 0x14, 0x11, 0x0a, 0x0b, 0x5f, 0x74,
+ 0xb8, 0xbc, 0x70, 0x5f, 0x0b, 0x0a, 0x11, 0x14, 0x0a, 0x0c, 0x0f, 0x0a,
+ 0x93, 0x89, 0x9c, 0xee, 0xe9, 0xa2, 0x88, 0x0a, 0x0a, 0x0f, 0x0c, 0x0a,
+ 0x0a, 0x0c, 0x0f, 0x0a, 0x0a, 0x88, 0x9c, 0xef, 0xe8, 0xa2, 0x89, 0x0a,
+ 0x0a, 0x0f, 0x0c, 0x0a, 0x0a, 0x0c, 0x0f, 0x0a, 0x00, 0x03, 0x00, 0x6a,
+ 0xff, 0xe3, 0x08, 0x15, 0x07, 0x74, 0x00, 0x34, 0x00, 0x3d, 0x00, 0x4b,
+ 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x23, 0x22, 0x0f, 0x01, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, 0x15, 0x10, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x11, 0x34,
+ 0x27, 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x01, 0x10, 0x23, 0x35, 0x16,
+ 0x35, 0x23, 0x35, 0x33, 0x17, 0x23, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07,
+ 0x35, 0x36, 0x37, 0x36, 0x33, 0x20, 0x08, 0x14, 0x5c, 0x68, 0xd3, 0x51,
+ 0x64, 0x57, 0x56, 0x6e, 0x6c, 0x6e, 0x6f, 0xae, 0x63, 0x52, 0xd3, 0x68,
+ 0x5c, 0x3c, 0x40, 0x64, 0xe0, 0x71, 0x52, 0x4c, 0xe6, 0x7c, 0x54, 0x44,
+ 0x44, 0x5c, 0x8d, 0x8b, 0x5a, 0x44, 0x43, 0x53, 0x7c, 0xe7, 0x4d, 0x52,
+ 0x71, 0xe1, 0x64, 0x3f, 0x3c, 0xfc, 0xa2, 0xda, 0x79, 0x78, 0xd9, 0xe4,
+ 0x6a, 0x15, 0x92, 0x54, 0x52, 0x84, 0x7a, 0x7d, 0x42, 0x6c, 0x70, 0x01,
+ 0x07, 0x01, 0xfe, 0xf2, 0x8b, 0x9e, 0x44, 0x40, 0x40, 0x44, 0x44, 0x80,
+ 0x44, 0x9d, 0x8b, 0xf2, 0xc6, 0xe2, 0xec, 0x98, 0x6b, 0xf3, 0xe2, 0xb6,
+ 0xfe, 0xba, 0x36, 0x33, 0x33, 0x36, 0x36, 0x33, 0x33, 0x36, 0x01, 0x46,
+ 0xb6, 0xe2, 0xf3, 0x6b, 0x98, 0xec, 0xe2, 0x03, 0x0a, 0xfe, 0xf5, 0x67,
+ 0x03, 0x9d, 0x9e, 0x11, 0x9b, 0x2f, 0x4b, 0x17, 0x86, 0x27, 0x2a, 0x43,
+ 0x00, 0x03, 0x00, 0x88, 0xff, 0xe3, 0x06, 0xde, 0x06, 0x10, 0x00, 0x21,
+ 0x00, 0x2a, 0x00, 0x38, 0x00, 0x00, 0x01, 0x12, 0x11, 0x10, 0x21, 0x22,
+ 0x24, 0x22, 0x04, 0x23, 0x20, 0x11, 0x10, 0x13, 0x33, 0x02, 0x15, 0x10,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x11, 0x34, 0x03, 0x25, 0x10, 0x23, 0x35, 0x16, 0x35, 0x23, 0x35,
+ 0x33, 0x17, 0x23, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37,
+ 0x36, 0x33, 0x20, 0x06, 0x62, 0x7c, 0xfe, 0x9a, 0x4c, 0xfe, 0xf3, 0xd8,
+ 0xfe, 0xf2, 0x4a, 0xfe, 0x9a, 0x7c, 0xb2, 0x83, 0xbb, 0x38, 0x41, 0x6c,
+ 0x13, 0x5a, 0xe3, 0x5a, 0x12, 0x6d, 0x42, 0x39, 0xbb, 0x84, 0xfe, 0x7b,
+ 0xd9, 0x78, 0x77, 0xd8, 0xe4, 0x6a, 0x15, 0x91, 0x54, 0x52, 0x84, 0x7b,
+ 0x7d, 0x43, 0x6b, 0x70, 0x01, 0x07, 0x03, 0xc5, 0xfe, 0xe3, 0xfe, 0xeb,
+ 0xfe, 0x50, 0xe2, 0xe2, 0x01, 0xb1, 0x01, 0x14, 0x01, 0x1d, 0xfe, 0xb9,
+ 0xfa, 0xfe, 0xfb, 0x38, 0x5b, 0x0c, 0x37, 0x37, 0x0c, 0x5b, 0x38, 0x01,
+ 0x07, 0xf8, 0x01, 0x47, 0xa4, 0xfe, 0xf5, 0x67, 0x03, 0x9d, 0x9e, 0x11,
+ 0x9b, 0x2f, 0x4b, 0x17, 0x86, 0x27, 0x2a, 0x43, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x06, 0x52, 0x07, 0x33, 0x10, 0x27, 0x11, 0xb5, 0x00, 0x59,
+ 0x01, 0x53, 0x10, 0x06, 0x03, 0xf4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x05, 0xe0, 0x10, 0x26, 0x11, 0xb5, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xfe, 0x56, 0x04, 0xa4, 0x05, 0xf0, 0x00, 0x1d, 0x00, 0x00, 0x21, 0x23,
+ 0x20, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x21, 0x32, 0x17, 0x16, 0x17,
+ 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16,
+ 0x33, 0x21, 0x11, 0x23, 0x03, 0x94, 0x9c, 0xfe, 0xc7, 0xa8, 0xaf, 0xaf,
+ 0xaf, 0x01, 0x32, 0x78, 0x6a, 0x6c, 0x5d, 0x5c, 0x67, 0x69, 0x75, 0xe6,
+ 0x7a, 0x7b, 0x7b, 0x88, 0xd8, 0x01, 0x47, 0xb5, 0xc6, 0xd0, 0x01, 0x53,
+ 0x01, 0x68, 0xcf, 0xd0, 0x24, 0x23, 0x47, 0xd5, 0x5f, 0x2f, 0x2f, 0x9c,
+ 0x9d, 0xfe, 0xd8, 0xfe, 0xd3, 0x82, 0x94, 0xfd, 0xb0, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x65, 0xfe, 0x56, 0x03, 0x84, 0x04, 0x7b, 0x00, 0x1d,
+ 0x00, 0x00, 0x21, 0x22, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x3b, 0x01, 0x11, 0x23, 0x11, 0x02, 0x56, 0xeb, 0x7f,
+ 0x86, 0x88, 0x87, 0xeb, 0x4d, 0x49, 0x49, 0x44, 0x46, 0x47, 0x46, 0x48,
+ 0xa2, 0x59, 0x59, 0x59, 0x59, 0xa2, 0xdc, 0xb5, 0x96, 0x9f, 0xfa, 0x01,
+ 0x12, 0x9d, 0x9d, 0x11, 0x12, 0x23, 0xac, 0x2b, 0x16, 0x15, 0x71, 0x72,
+ 0xcd, 0xb9, 0x72, 0x71, 0xfd, 0xc3, 0x01, 0xaa, 0x00, 0x01, 0x00, 0x35,
+ 0xff, 0xa5, 0x03, 0x69, 0x03, 0xa7, 0x00, 0x13, 0x00, 0x00, 0x01, 0x07,
+ 0x27, 0x07, 0x17, 0x07, 0x27, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x37,
+ 0x27, 0x37, 0x17, 0x37, 0x17, 0x07, 0x03, 0x69, 0x5a, 0xc2, 0x5f, 0xc2,
+ 0x5a, 0xc2, 0x70, 0x9d, 0x71, 0xc3, 0x5a, 0xc3, 0x5e, 0xc2, 0x5a, 0xc2,
+ 0x5e, 0x9d, 0x5e, 0x02, 0x11, 0xae, 0x7d, 0xb5, 0x7d, 0xae, 0x7d, 0xd8,
+ 0x64, 0xd8, 0x7d, 0xae, 0x7d, 0xb5, 0x7d, 0xae, 0x7d, 0xb5, 0x64, 0xb5,
+ 0x00, 0x01, 0xfc, 0x44, 0x04, 0xde, 0xff, 0x55, 0x06, 0x7a, 0x00, 0x2f,
+ 0x00, 0x00, 0x01, 0x21, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x21, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0xfe, 0xda, 0xfe, 0x61, 0x09, 0x0a, 0x11, 0x12, 0x17, 0x15,
+ 0x33, 0x15, 0x17, 0x12, 0x11, 0x0a, 0x09, 0x09, 0x0a, 0x11, 0x12, 0x17,
+ 0x15, 0x1a, 0x01, 0x9e, 0x09, 0x0a, 0x11, 0x12, 0x17, 0x15, 0x33, 0x15,
+ 0x17, 0x12, 0x12, 0x09, 0x09, 0x09, 0x0a, 0x11, 0x12, 0x17, 0x15, 0x05,
+ 0x67, 0x1b, 0x19, 0x1b, 0x12, 0x13, 0x0b, 0x0a, 0x0a, 0x0b, 0x13, 0x12,
+ 0x1b, 0x19, 0x1b, 0x1c, 0x19, 0x1b, 0x12, 0x13, 0x0b, 0x0a, 0x1b, 0x19,
+ 0x1b, 0x12, 0x13, 0x0b, 0x0a, 0x0a, 0x0b, 0x13, 0x15, 0x18, 0x19, 0x1c,
+ 0x1b, 0x19, 0x1b, 0x12, 0x13, 0x0b, 0x0a, 0x00, 0x00, 0x01, 0xfd, 0x53,
+ 0x05, 0x29, 0x00, 0x09, 0x06, 0x4d, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x23,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33, 0x20,
+ 0x08, 0x6a, 0x15, 0x92, 0x53, 0x52, 0x84, 0x7b, 0x7d, 0x43, 0x6b, 0x70,
+ 0x01, 0x07, 0x05, 0x29, 0x9b, 0x2f, 0x4b, 0x17, 0x86, 0x27, 0x2a, 0x43,
+ 0x00, 0x01, 0xfd, 0xed, 0x04, 0xc2, 0xfe, 0xc8, 0x06, 0x61, 0x00, 0x08,
+ 0x00, 0x00, 0x01, 0x22, 0x11, 0x35, 0x33, 0x15, 0x23, 0x14, 0x37, 0xfe,
+ 0xc8, 0xda, 0xd9, 0x78, 0x79, 0x04, 0xc2, 0x01, 0x0b, 0x94, 0x9e, 0x9d,
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xed, 0x04, 0xc2, 0xfe, 0xc8,
+ 0x06, 0x61, 0x00, 0x08, 0x00, 0x00, 0x01, 0x10, 0x23, 0x35, 0x16, 0x35,
+ 0x23, 0x35, 0x33, 0xfe, 0xc8, 0xda, 0x78, 0x77, 0xd9, 0x05, 0xcd, 0xfe,
+ 0xf5, 0x67, 0x03, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfa, 0x69,
+ 0x04, 0xd9, 0x00, 0x09, 0x06, 0x4d, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x12,
+ 0x21, 0x32, 0x05, 0x04, 0x25, 0x15, 0x24, 0x27, 0x24, 0x27, 0x26, 0x07,
+ 0xfa, 0x69, 0x79, 0x01, 0x84, 0x67, 0x01, 0x25, 0x01, 0x13, 0x01, 0x03,
+ 0xfe, 0x89, 0xd7, 0xfe, 0xf6, 0x5c, 0xc6, 0x89, 0x05, 0x01, 0x01, 0x4c,
+ 0x7b, 0x74, 0x01, 0x86, 0x17, 0x5c, 0x71, 0x07, 0x0c, 0xcf, 0x00, 0x00,
+ 0x00, 0x08, 0xf8, 0xa7, 0xfe, 0x90, 0x02, 0xf3, 0x07, 0x60, 0x00, 0x0c,
+ 0x00, 0x19, 0x00, 0x26, 0x00, 0x33, 0x00, 0x40, 0x00, 0x4d, 0x00, 0x5a,
+ 0x00, 0x67, 0x00, 0x00, 0x01, 0x23, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07,
+ 0x23, 0x3e, 0x01, 0x20, 0x16, 0x01, 0x23, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x05, 0x23, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x01, 0x23, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x05, 0x23, 0x2e, 0x01,
+ 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x01, 0x23, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x05, 0x23,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16, 0x01,
+ 0x23, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x20, 0x16,
+ 0xfe, 0xe6, 0x6a, 0x0a, 0x57, 0x4e, 0x4e, 0x56, 0x0c, 0x6a, 0x09, 0x8e,
+ 0x01, 0x05, 0x8e, 0x02, 0xe6, 0x6a, 0x0a, 0x57, 0x4f, 0x4d, 0x57, 0x0b,
+ 0x6a, 0x08, 0x8f, 0x01, 0x05, 0x8e, 0xfa, 0x50, 0x6a, 0x0a, 0x58, 0x4e,
+ 0x4d, 0x57, 0x0c, 0x6a, 0x09, 0x8f, 0x01, 0x04, 0x8f, 0x05, 0xc2, 0x6a,
+ 0x0a, 0x57, 0x4f, 0x4d, 0x57, 0x0b, 0x6a, 0x08, 0x8f, 0x01, 0x05, 0x8e,
+ 0xfa, 0x50, 0x6a, 0x0a, 0x58, 0x4e, 0x4d, 0x57, 0x0c, 0x6a, 0x09, 0x8f,
+ 0x01, 0x04, 0x8f, 0x06, 0xf1, 0x6a, 0x0a, 0x57, 0x4f, 0x4d, 0x56, 0x0c,
+ 0x6a, 0x09, 0x8e, 0x01, 0x05, 0x8e, 0xf7, 0xf1, 0x6a, 0x0a, 0x57, 0x4e,
+ 0x4e, 0x56, 0x0c, 0x6a, 0x09, 0x8e, 0x01, 0x05, 0x8e, 0x04, 0x15, 0x6a,
+ 0x0a, 0x57, 0x4e, 0x4e, 0x56, 0x0c, 0x6a, 0x09, 0x8e, 0x01, 0x05, 0x8e,
+ 0x06, 0x41, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0xfe, 0x51, 0x4b,
+ 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0x8f, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f,
+ 0x90, 0x90, 0xfa, 0x01, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0x8f,
+ 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0x02, 0x29, 0x4b, 0x4b, 0x4a,
+ 0x4c, 0x8f, 0x90, 0x90, 0x8f, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90,
+ 0xfb, 0x98, 0x4b, 0x4b, 0x4a, 0x4c, 0x8f, 0x90, 0x90, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0xf9, 0x1c, 0xfd, 0xc3, 0x02, 0x7c, 0x08, 0x2d, 0x00, 0x05,
+ 0x00, 0x0b, 0x00, 0x11, 0x00, 0x17, 0x00, 0x1d, 0x00, 0x23, 0x00, 0x29,
+ 0x00, 0x2f, 0x00, 0x00, 0x27, 0x37, 0x17, 0x13, 0x07, 0x03, 0x01, 0x07,
+ 0x27, 0x03, 0x37, 0x13, 0x01, 0x27, 0x37, 0x25, 0x17, 0x05, 0x01, 0x17,
+ 0x07, 0x05, 0x27, 0x25, 0x01, 0x35, 0x33, 0x05, 0x15, 0x2d, 0x01, 0x15,
+ 0x23, 0x25, 0x35, 0x05, 0x01, 0x23, 0x35, 0x13, 0x33, 0x0b, 0x01, 0x33,
+ 0x15, 0x03, 0x23, 0x13, 0x60, 0x87, 0x6d, 0x64, 0x53, 0x98, 0xfb, 0xeb,
+ 0x87, 0x6d, 0x64, 0x53, 0x98, 0x04, 0x9c, 0x87, 0x6e, 0x01, 0x33, 0x53,
+ 0xff, 0x00, 0xfa, 0xde, 0x86, 0x6d, 0xfe, 0xcb, 0x52, 0x01, 0x00, 0x05,
+ 0xbd, 0x9a, 0x01, 0x20, 0xfe, 0xe0, 0xf9, 0x7c, 0x9b, 0xfe, 0xe0, 0x01,
+ 0x20, 0x03, 0xef, 0xbe, 0x94, 0x74, 0x4a, 0xbe, 0xbe, 0x93, 0x75, 0x4a,
+ 0x5a, 0x96, 0x79, 0xfe, 0xa9, 0x5c, 0x01, 0x1d, 0x05, 0xb5, 0x96, 0x79,
+ 0x01, 0x57, 0x5c, 0xfe, 0xe3, 0xfe, 0xf1, 0x95, 0x7a, 0x6e, 0x5b, 0xa9,
+ 0xfb, 0x77, 0x96, 0x79, 0x6f, 0x5c, 0xa8, 0x02, 0x18, 0xd4, 0xa4, 0x82,
+ 0x52, 0xd4, 0xd4, 0xa4, 0x82, 0x52, 0x02, 0xdf, 0xac, 0x01, 0x40, 0xfe,
+ 0xc0, 0xf8, 0xc2, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x56, 0x05, 0x63, 0x07, 0x6d, 0x10, 0x26, 0x11, 0xb6, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf2, 0x04, 0x76, 0x01, 0x75, 0xff, 0xff, 0x00, 0xad,
+ 0xfe, 0x56, 0x04, 0xb3, 0x06, 0x14, 0x10, 0x26, 0x11, 0xb7, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9a, 0x00, 0x90, 0xff, 0xcc, 0x00, 0x02, 0x00, 0x1d,
+ 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x21, 0x11, 0x23,
+ 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x01, 0x34, 0x27, 0x26, 0x23,
+ 0x21, 0x11, 0x21, 0x32, 0x37, 0x36, 0x01, 0x6b, 0x01, 0x2c, 0xe2, 0xf5,
+ 0xf5, 0xe2, 0xfe, 0x1e, 0x97, 0x97, 0xb6, 0x97, 0x01, 0xac, 0x47, 0x46,
+ 0x93, 0xfe, 0xdd, 0x01, 0x23, 0x93, 0x46, 0x47, 0x04, 0x51, 0xe2, 0xda,
+ 0xde, 0xdd, 0xda, 0x04, 0x51, 0xa4, 0xe0, 0xe0, 0xa4, 0xfd, 0x66, 0x8b,
+ 0x44, 0x43, 0xfd, 0xdd, 0x44, 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x22,
+ 0x00, 0x00, 0x03, 0xd8, 0x05, 0x9e, 0x00, 0x0a, 0x00, 0x1e, 0x00, 0x00,
+ 0x01, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x11, 0x33, 0x32, 0x37, 0x36, 0x01,
+ 0x11, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x21, 0x11, 0x23,
+ 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0x03, 0x27, 0x37, 0x3d, 0x73,
+ 0xed, 0xed, 0x74, 0x3c, 0x37, 0xfe, 0x2c, 0xf4, 0xbb, 0x6d, 0x69, 0x69,
+ 0x67, 0xc1, 0xfe, 0x67, 0x8c, 0x8c, 0xa5, 0x8e, 0x01, 0x4c, 0x5e, 0x2a,
+ 0x2e, 0xfe, 0x97, 0x2e, 0x2b, 0x02, 0xdf, 0xfe, 0xca, 0x55, 0x52, 0xfe,
+ 0xb0, 0x52, 0x52, 0x03, 0xd1, 0x8f, 0x01, 0x3e, 0xfe, 0xc2, 0x8f, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x65, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x1c, 0x00, 0x00, 0x01, 0x17, 0x07, 0x27, 0x06, 0x2b, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x27, 0x36, 0x37, 0x34,
+ 0x26, 0x2b, 0x01, 0x11, 0x33, 0x32, 0x37, 0x27, 0x37, 0x03, 0xe6, 0x7e,
+ 0x5f, 0x84, 0x71, 0xc1, 0xe4, 0xb6, 0x01, 0x9a, 0xe2, 0x73, 0x74, 0xcb,
+ 0x0b, 0x01, 0x8b, 0x7f, 0xe4, 0xe4, 0x67, 0x40, 0xc2, 0x60, 0x03, 0x23,
+ 0x75, 0x7e, 0x7b, 0x53, 0xfd, 0xa8, 0x05, 0xd5, 0x71, 0x72, 0xdb, 0x92,
+ 0x2d, 0x2c, 0x39, 0x86, 0x92, 0xfd, 0xcf, 0x2f, 0xb4, 0x7e, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x00, 0x10,
+ 0x00, 0x29, 0x00, 0x00, 0x25, 0x27, 0x37, 0x17, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x20, 0x07, 0x06, 0x10, 0x17, 0x16, 0x33, 0x32, 0x1f, 0x01, 0x07,
+ 0x27, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x11, 0x23, 0x11, 0x33, 0x15,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x02, 0xd9,
+ 0x7e, 0x63, 0x7c, 0x47, 0x4a, 0x4c, 0xfe, 0xf9, 0x4b, 0x4b, 0x4b, 0x4b,
+ 0x84, 0x3f, 0xfe, 0x85, 0x64, 0x86, 0x4f, 0x61, 0x6f, 0x4f, 0x50, 0x34,
+ 0xa7, 0xa7, 0x34, 0x50, 0x4f, 0x6f, 0xb8, 0x72, 0x73, 0x73, 0x0b, 0x98,
+ 0xa7, 0x5d, 0xa5, 0x73, 0xc5, 0xcb, 0x74, 0x73, 0x74, 0x73, 0xfe, 0x6a,
+ 0x74, 0x73, 0x14, 0xae, 0x5d, 0xb3, 0x2e, 0x30, 0x31, 0x64, 0xfd, 0xae,
+ 0x06, 0x0a, 0xaa, 0x64, 0x30, 0x31, 0xa2, 0xa2, 0xfd, 0xf0, 0xa2, 0x0f,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9, 0x07, 0x07, 0x00, 0x07,
+ 0x00, 0x00, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0xb5, 0x02,
+ 0xab, 0x99, 0xfd, 0x72, 0x05, 0xd5, 0x01, 0x32, 0xfe, 0x24, 0xfa, 0xd5,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x6f, 0x05, 0x9a, 0x00, 0x07,
+ 0x00, 0x00, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0xa7, 0x02,
+ 0x43, 0x84, 0xfd, 0xdf, 0x04, 0x60, 0x01, 0x3a, 0xfe, 0x33, 0xfc, 0x33,
+ 0x00, 0x01, 0x00, 0x3f, 0x00, 0x00, 0x04, 0x71, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x01, 0x2d, 0xed, 0xed, 0x03, 0x44, 0xfd, 0x71,
+ 0x01, 0xed, 0xfe, 0x13, 0x02, 0x94, 0xaa, 0x02, 0x97, 0xaa, 0xfe, 0x13,
+ 0xaa, 0xfd, 0x6c, 0x00, 0x00, 0x01, 0x00, 0x32, 0x00, 0x00, 0x03, 0xe7,
+ 0x04, 0x60, 0x00, 0x0d, 0x00, 0x00, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x1f, 0xed, 0xed,
+ 0x02, 0xc7, 0xfd, 0xdf, 0x01, 0x76, 0xfe, 0x8a, 0x01, 0xf4, 0xaa, 0x01,
+ 0xc2, 0x9d, 0xfe, 0xdb, 0xaa, 0xfe, 0x0c, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0xfe, 0x66, 0x04, 0x52, 0x05, 0xd5, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x34,
+ 0x26, 0x23, 0x01, 0x6b, 0xb6, 0x03, 0x44, 0xfd, 0x72, 0x01, 0x77, 0xa7,
+ 0x66, 0x62, 0xb7, 0xce, 0x44, 0x38, 0x78, 0x33, 0x31, 0x6f, 0x70, 0x02,
+ 0xc7, 0xfd, 0x39, 0x05, 0xd5, 0xaa, 0xfe, 0x46, 0x77, 0x72, 0xee, 0xfe,
+ 0xce, 0xfe, 0xf2, 0xf4, 0xaa, 0x4b, 0x4b, 0xc2, 0x01, 0x22, 0x9f, 0x9e,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xa4, 0x04, 0x60, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x32,
+ 0x17, 0x16, 0x15, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x11, 0x34, 0x27, 0x26, 0x23, 0x01, 0x4d, 0xa6, 0x02,
+ 0xc7, 0xfd, 0xdf, 0xe1, 0xed, 0x3f, 0x4a, 0x4a, 0x49, 0xa3, 0xae, 0x9b,
+ 0x63, 0x1e, 0x22, 0x22, 0x2c, 0x79, 0x01, 0xe7, 0xfe, 0x19, 0x04, 0x60,
+ 0xaa, 0xfe, 0xc1, 0x47, 0x51, 0xe5, 0xfe, 0xf2, 0xd6, 0x60, 0x60, 0x9c,
+ 0x30, 0x37, 0x93, 0x01, 0x08, 0xaa, 0x20, 0x29, 0x00, 0x01, 0x00, 0x24,
+ 0xfe, 0xbf, 0x07, 0xb6, 0x05, 0xd5, 0x00, 0x17, 0x00, 0x00, 0x01, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23, 0x11, 0x23, 0x01, 0x03,
+ 0x11, 0x23, 0x11, 0x03, 0x01, 0x23, 0x09, 0x01, 0x33, 0x01, 0x03, 0x86,
+ 0xb6, 0x02, 0x65, 0xdd, 0xfe, 0x15, 0x01, 0xa8, 0x7b, 0xb2, 0x24, 0xfe,
+ 0x44, 0xe8, 0xb6, 0xe8, 0xfe, 0x44, 0xbe, 0x02, 0x0a, 0xfe, 0x16, 0xdc,
+ 0x02, 0x66, 0x05, 0xd5, 0xfd, 0x1e, 0x02, 0xe2, 0xfd, 0xb3, 0xfd, 0x22,
+ 0xfe, 0x15, 0x01, 0x41, 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16, 0x01, 0xea,
+ 0x01, 0x17, 0xfc, 0xff, 0x03, 0x88, 0x02, 0x4d, 0xfd, 0x1e, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x3f, 0xfe, 0xe5, 0x06, 0x50, 0x04, 0x60, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23,
+ 0x11, 0x23, 0x01, 0x07, 0x11, 0x23, 0x11, 0x27, 0x01, 0x23, 0x09, 0x01,
+ 0x33, 0x01, 0x02, 0xec, 0xa5, 0x01, 0xb8, 0xc0, 0xfe, 0x97, 0x01, 0x42,
+ 0x6e, 0xa6, 0x1e, 0xfe, 0xad, 0xa8, 0xa5, 0xa8, 0xfe, 0xac, 0xb1, 0x01,
+ 0x9e, 0xfe, 0x96, 0xc1, 0x01, 0xb8, 0x04, 0x60, 0xfd, 0xf2, 0x02, 0x0e,
+ 0xfe, 0x51, 0xfd, 0xe8, 0xfe, 0x4c, 0x01, 0x1b, 0x02, 0x36, 0xc9, 0xfe,
+ 0x93, 0x01, 0x6d, 0xc9, 0xfd, 0xca, 0x02, 0xb1, 0x01, 0xaf, 0xfd, 0xf2,
+ 0xff, 0xff, 0x00, 0x79, 0xfe, 0x75, 0x04, 0x25, 0x05, 0xf0, 0x10, 0x26,
+ 0x00, 0x7a, 0x33, 0x00, 0x12, 0x06, 0x03, 0xab, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x77, 0xfe, 0x75, 0x03, 0x68, 0x04, 0x7c, 0x10, 0x26,
+ 0x00, 0x7a, 0xd3, 0x00, 0x12, 0x06, 0x03, 0xcb, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x22, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23,
+ 0x11, 0x23, 0x01, 0x03, 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x89, 0xea, 0xfd,
+ 0xf8, 0x01, 0xbc, 0x90, 0xb1, 0x3e, 0xfe, 0x2d, 0xf5, 0xb6, 0x05, 0xd5,
+ 0xfd, 0x1e, 0x02, 0xe2, 0xfd, 0xb2, 0xfd, 0x23, 0xfe, 0x15, 0x01, 0x41,
+ 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0xe5, 0x04, 0x3b, 0x04, 0x60, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23, 0x11, 0x23, 0x01, 0x07,
+ 0x11, 0x23, 0xa7, 0xa5, 0x01, 0xd3, 0xcc, 0xfe, 0x7e, 0x01, 0x52, 0x80,
+ 0xa6, 0x32, 0xfe, 0x9a, 0xb1, 0xa5, 0x04, 0x60, 0xfd, 0xf2, 0x02, 0x0e,
+ 0xfe, 0x4f, 0xfd, 0xea, 0xfe, 0x4c, 0x01, 0x1b, 0x02, 0x35, 0xc8, 0xfe,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xf9,
+ 0x05, 0xd5, 0x00, 0x12, 0x00, 0x00, 0x13, 0x33, 0x11, 0x37, 0x11, 0x33,
+ 0x15, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0x11, 0x07, 0x11,
+ 0x23, 0xb5, 0xb6, 0x9b, 0x5a, 0x01, 0x94, 0xea, 0xfd, 0xf8, 0x02, 0x23,
+ 0xc6, 0xfe, 0x2d, 0x5a, 0x9b, 0xb6, 0x05, 0xd5, 0xfd, 0x1e, 0xb1, 0x01,
+ 0x54, 0xee, 0x01, 0xcb, 0xfd, 0xb2, 0xfc, 0x79, 0x03, 0x01, 0xfe, 0x25,
+ 0x01, 0x75, 0xb1, 0xfe, 0x16, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x1d, 0x04, 0x60, 0x00, 0x12, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x37, 0x35, 0x33, 0x15, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0x35, 0x07, 0x11, 0x23, 0xa7, 0xa5, 0x56, 0x5b, 0x01, 0x22, 0xcc,
+ 0xfe, 0x7e, 0x01, 0xb3, 0xb9, 0xfe, 0x9a, 0x5b, 0x56, 0xa5, 0x04, 0x60,
+ 0xfd, 0xf2, 0x61, 0xdd, 0x76, 0x01, 0x46, 0xfe, 0x4f, 0xfd, 0x51, 0x02,
+ 0x35, 0xfe, 0xc5, 0xd4, 0x61, 0xfe, 0x93, 0x00, 0x00, 0x01, 0x00, 0x1d,
+ 0x00, 0x00, 0x04, 0xf9, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x03,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xb5, 0xb6, 0x97, 0x97, 0x02, 0x89,
+ 0xea, 0xfd, 0xf8, 0x02, 0x23, 0xc6, 0xfe, 0x2d, 0xf5, 0xb6, 0x97, 0x97,
+ 0x05, 0xd5, 0xe0, 0x90, 0xfe, 0x8e, 0x02, 0xe2, 0xfd, 0xb2, 0xfc, 0x79,
+ 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16, 0x04, 0x65, 0x90, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0x1d, 0x06, 0x14, 0x00, 0x13,
+ 0x00, 0x00, 0x13, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x01, 0x33, 0x09,
+ 0x01, 0x23, 0x01, 0x07, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xa7, 0xa5,
+ 0x01, 0x40, 0xfe, 0xc0, 0x01, 0xd3, 0xcc, 0xfe, 0x7e, 0x01, 0xb3, 0xb9,
+ 0xfe, 0x9a, 0xb1, 0xa5, 0x70, 0x70, 0x06, 0x14, 0x7a, 0x7d, 0xfd, 0x35,
+ 0x02, 0x0e, 0xfe, 0x4f, 0xfd, 0x51, 0x02, 0x35, 0xc8, 0xfe, 0x93, 0x05,
+ 0x1d, 0x7d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d, 0x00, 0x00, 0x06, 0x07,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x21, 0x11, 0x01, 0x33, 0x09,
+ 0x01, 0x23, 0x01, 0x03, 0x11, 0x23, 0x11, 0x21, 0x2d, 0x02, 0x4c, 0x02,
+ 0x89, 0xea, 0xfd, 0xf8, 0x02, 0x23, 0xc6, 0xfe, 0x2d, 0xf5, 0xb6, 0xfe,
+ 0x6a, 0x05, 0xd5, 0xfd, 0x1e, 0x02, 0xe2, 0xfd, 0xb2, 0xfc, 0x79, 0x03,
+ 0x01, 0xfe, 0xe9, 0xfe, 0x16, 0x05, 0x2b, 0x00, 0x00, 0x01, 0x00, 0x25,
+ 0x00, 0x00, 0x04, 0xf5, 0x04, 0x60, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x21,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x07, 0x11, 0x23, 0x11, 0x21,
+ 0x26, 0x01, 0xff, 0x01, 0xd3, 0xcc, 0xfe, 0x7e, 0x01, 0xb3, 0xb9, 0xfe,
+ 0x9a, 0xb1, 0xa5, 0xfe, 0xa6, 0x04, 0x60, 0xfd, 0xf2, 0x02, 0x0e, 0xfe,
+ 0x4f, 0xfd, 0x51, 0x02, 0x35, 0xc8, 0xfe, 0x93, 0x03, 0xc6, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x6a, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x94, 0xb6, 0xb5,
+ 0xb5, 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64, 0xfa,
+ 0xd5, 0xfe, 0x15, 0x01, 0x41, 0x02, 0xc7, 0xfd, 0x39, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0xe5, 0x04, 0xba, 0x04, 0x60, 0x00, 0x0f,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0xae, 0xa5, 0x02, 0x1b, 0xa6, 0xa6,
+ 0xa6, 0xa6, 0xfd, 0xe5, 0xa5, 0x04, 0x60, 0xfe, 0x33, 0x01, 0xcd, 0xfc,
+ 0x39, 0xfe, 0x4c, 0x01, 0x1b, 0x02, 0x04, 0xfd, 0xfc, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x07, 0x44, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x94, 0x03, 0x44, 0xfd, 0x72,
+ 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64, 0xaa, 0xfa,
+ 0xd5, 0x02, 0xc7, 0xfd, 0x39, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x06, 0x36, 0x04, 0x60, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23,
+ 0xae, 0xa5, 0x02, 0x1b, 0x02, 0xc7, 0xfd, 0xdf, 0xa6, 0xfd, 0xe5, 0xa5,
+ 0x04, 0x60, 0xfe, 0x33, 0x01, 0xcd, 0xaa, 0xfc, 0x4a, 0x02, 0x04, 0xfd,
+ 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x66, 0x07, 0x9c,
+ 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x11, 0x10, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23,
+ 0x04, 0xb5, 0xb6, 0xfd, 0x6c, 0xb6, 0x04, 0x00, 0x01, 0x77, 0xa8, 0x66,
+ 0x62, 0xb8, 0xcd, 0x45, 0x38, 0x79, 0x32, 0x32, 0x70, 0x6f, 0x02, 0xc7,
+ 0xfd, 0x39, 0x05, 0x2b, 0xfa, 0xd5, 0x05, 0xd5, 0xfd, 0x9c, 0x77, 0x72,
+ 0xee, 0xfe, 0xce, 0xfe, 0xf2, 0xf4, 0xaa, 0x4b, 0x4b, 0xc2, 0x01, 0x22,
+ 0x9f, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x06, 0x6b,
+ 0x04, 0x60, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x14, 0x07,
+ 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x34, 0x27,
+ 0x26, 0x07, 0x04, 0x14, 0xa6, 0xfd, 0xe5, 0xa5, 0x03, 0x66, 0xe1, 0xed,
+ 0x3f, 0x49, 0x49, 0x49, 0xa3, 0xae, 0x9b, 0x63, 0x1e, 0x22, 0x22, 0x2c,
+ 0x79, 0x01, 0xe7, 0xfe, 0x19, 0x03, 0xc6, 0xfc, 0x3a, 0x04, 0x60, 0xfe,
+ 0x17, 0x47, 0x51, 0xe5, 0xfe, 0xf2, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x37,
+ 0x93, 0x01, 0x08, 0xa4, 0x26, 0x2e, 0x05, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0xff, 0xe3, 0x06, 0x45, 0x05, 0xf1, 0x00, 0x41, 0x00, 0x59, 0x00, 0x00,
+ 0x25, 0x2e, 0x03, 0x35, 0x34, 0x3e, 0x04, 0x33, 0x32, 0x1e, 0x04, 0x15,
+ 0x14, 0x0e, 0x02, 0x07, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x2e, 0x02, 0x27, 0x0e, 0x01, 0x23, 0x22, 0x2e, 0x01,
+ 0x02, 0x35, 0x34, 0x12, 0x3e, 0x01, 0x37, 0x15, 0x0e, 0x03, 0x15, 0x14,
+ 0x1e, 0x02, 0x33, 0x32, 0x36, 0x37, 0x3e, 0x03, 0x35, 0x34, 0x2e, 0x04,
+ 0x23, 0x22, 0x0e, 0x04, 0x15, 0x14, 0x1e, 0x02, 0x03, 0xc0, 0x33, 0x61,
+ 0x4a, 0x2d, 0x11, 0x26, 0x3d, 0x57, 0x74, 0x4b, 0x46, 0x71, 0x57, 0x3f,
+ 0x29, 0x13, 0x18, 0x38, 0x60, 0x49, 0x22, 0x5e, 0x35, 0x38, 0x5b, 0x2e,
+ 0x2a, 0x6c, 0x37, 0x22, 0x49, 0x4c, 0x4f, 0x26, 0x3c, 0xaf, 0x6d, 0x99,
+ 0xf1, 0xa9, 0x59, 0x51, 0x9b, 0xde, 0x8e, 0x68, 0x9a, 0x64, 0x33, 0x36,
+ 0x6f, 0xab, 0x74, 0x4a, 0x73, 0x9f, 0x39, 0x4b, 0x2b, 0x12, 0x0a, 0x15,
+ 0x20, 0x2b, 0x38, 0x22, 0x2c, 0x41, 0x2e, 0x1e, 0x10, 0x06, 0x24, 0x3b,
+ 0x4c, 0xae, 0x31, 0x89, 0xaa, 0xc4, 0x6b, 0x42, 0x8a, 0x83, 0x74, 0x57,
+ 0x32, 0x32, 0x54, 0x70, 0x7b, 0x7f, 0x3a, 0x53, 0xb4, 0xb2, 0xaa, 0x4a,
+ 0x1a, 0x15, 0x13, 0x1a, 0xa8, 0x17, 0x12, 0x08, 0x14, 0x23, 0x1b, 0x26,
+ 0x34, 0x74, 0xcf, 0x01, 0x1d, 0xa8, 0xa0, 0x01, 0x10, 0xcb, 0x7d, 0x0e,
+ 0xa7, 0x16, 0x66, 0x9a, 0xcd, 0x7c, 0x7d, 0xde, 0xa7, 0x62, 0x19, 0x6d,
+ 0x3a, 0x86, 0x8e, 0x91, 0x45, 0x2f, 0x66, 0x63, 0x59, 0x43, 0x28, 0x2b,
+ 0x47, 0x5b, 0x60, 0x5f, 0x26, 0x62, 0xab, 0x8e, 0x6e, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0xec, 0x04, 0x7a, 0x00, 0x3f,
+ 0x00, 0x50, 0x00, 0x00, 0x13, 0x34, 0x3e, 0x02, 0x37, 0x15, 0x0e, 0x03,
+ 0x15, 0x14, 0x1e, 0x02, 0x33, 0x32, 0x36, 0x37, 0x2e, 0x03, 0x35, 0x34,
+ 0x3e, 0x02, 0x33, 0x32, 0x1e, 0x02, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01,
+ 0x33, 0x32, 0x3e, 0x02, 0x37, 0x15, 0x0e, 0x03, 0x23, 0x22, 0x26, 0x27,
+ 0x0e, 0x03, 0x23, 0x22, 0x2e, 0x02, 0x05, 0x3e, 0x03, 0x35, 0x34, 0x2e,
+ 0x02, 0x23, 0x22, 0x0e, 0x02, 0x15, 0x14, 0x66, 0x43, 0x81, 0xbc, 0x79,
+ 0x54, 0x7c, 0x52, 0x29, 0x2d, 0x57, 0x7c, 0x4f, 0x23, 0x4e, 0x19, 0x21,
+ 0x38, 0x2b, 0x18, 0x24, 0x48, 0x69, 0x45, 0x3b, 0x65, 0x48, 0x29, 0x53,
+ 0x56, 0x20, 0x3d, 0x1b, 0x18, 0x29, 0x25, 0x25, 0x16, 0x0f, 0x22, 0x28,
+ 0x33, 0x21, 0x31, 0x75, 0x3d, 0x1b, 0x3f, 0x41, 0x40, 0x1c, 0x7a, 0xbe,
+ 0x83, 0x44, 0x03, 0x00, 0x1f, 0x28, 0x18, 0x0a, 0x14, 0x1e, 0x24, 0x10,
+ 0x17, 0x28, 0x1e, 0x11, 0x02, 0x28, 0x83, 0xd8, 0x9c, 0x58, 0x03, 0x9b,
+ 0x06, 0x46, 0x72, 0x98, 0x58, 0x62, 0xa0, 0x72, 0x3e, 0x0b, 0x11, 0x25,
+ 0x67, 0x78, 0x82, 0x40, 0x5d, 0x9f, 0x73, 0x41, 0x39, 0x68, 0x92, 0x59,
+ 0x9b, 0xf1, 0x5e, 0x13, 0x0a, 0x04, 0x0a, 0x13, 0x0f, 0x9d, 0x0a, 0x11,
+ 0x0c, 0x07, 0x1c, 0x2c, 0x12, 0x1b, 0x12, 0x09, 0x54, 0x99, 0xd6, 0xb8,
+ 0x26, 0x5e, 0x64, 0x63, 0x2b, 0x4b, 0x69, 0x42, 0x1f, 0x26, 0x48, 0x69,
+ 0x43, 0xf7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xfe, 0x75, 0x04, 0xa4,
+ 0x05, 0xf0, 0x10, 0x27, 0x00, 0x7a, 0x01, 0x0f, 0x00, 0x00, 0x12, 0x06,
+ 0x03, 0xb5, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xfe, 0x75, 0x03, 0x84,
+ 0x04, 0x7b, 0x10, 0x27, 0x00, 0x7a, 0x00, 0x81, 0x00, 0x00, 0x12, 0x06,
+ 0x03, 0xd5, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfa, 0xfe, 0xbf, 0x04, 0x6c,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x33, 0x11, 0x23, 0x11, 0x23,
+ 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x02, 0x8e, 0xb5, 0xb5, 0xb6, 0xfe,
+ 0x23, 0x04, 0x70, 0xfe, 0x23, 0xaa, 0xfe, 0x15, 0x01, 0x41, 0x05, 0x2b,
+ 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36, 0xfe, 0xe5, 0x03, 0xfc,
+ 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x33, 0x11, 0x23, 0x11, 0x23,
+ 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x02, 0x6a, 0xa6, 0xa6, 0xa3, 0xfe,
+ 0x6f, 0x03, 0xc6, 0xfe, 0x6e, 0x99, 0xfe, 0x4c, 0x01, 0x1b, 0x03, 0xb6,
+ 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0xfe, 0x56, 0x04, 0x0c, 0x04, 0x60, 0x00, 0x08, 0x00, 0x00, 0x25, 0x11,
+ 0x23, 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x02, 0x7e, 0xaf, 0xfe, 0x68,
+ 0xaf, 0x01, 0x3b, 0x01, 0x3b, 0xb0, 0x12, 0xfe, 0x44, 0x01, 0xbc, 0x04,
+ 0x4e, 0xfc, 0x94, 0x03, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc,
+ 0x00, 0x00, 0x04, 0x6a, 0x05, 0xd5, 0x00, 0x10, 0x00, 0x00, 0x01, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x01, 0x33, 0x09, 0x01, 0x33,
+ 0x01, 0x15, 0x33, 0x03, 0x7c, 0xee, 0xb6, 0xed, 0xed, 0xfe, 0x24, 0xc4,
+ 0x01, 0x74, 0x01, 0x72, 0xc4, 0xfe, 0x24, 0xee, 0x01, 0x73, 0xfe, 0x8d,
+ 0x01, 0x73, 0xaa, 0xaa, 0x03, 0x0e, 0xfd, 0x9a, 0x02, 0x66, 0xfc, 0xf2,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x04, 0x60, 0x00, 0x10, 0x00, 0x00, 0x09, 0x01, 0x15, 0x33, 0x15, 0x23,
+ 0x15, 0x23, 0x35, 0x23, 0x35, 0x33, 0x35, 0x01, 0x33, 0x09, 0x01, 0x04,
+ 0x0c, 0xfe, 0x72, 0xec, 0xec, 0xaf, 0xf6, 0xf6, 0xfe, 0x68, 0xaf, 0x01,
+ 0x3b, 0x01, 0x3b, 0x04, 0x60, 0xfb, 0xb2, 0x58, 0xaa, 0xba, 0xba, 0xaa,
+ 0x58, 0x04, 0x4e, 0xfc, 0x94, 0x03, 0x6c, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0xfe, 0xbf, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x25, 0x33,
+ 0x11, 0x23, 0x11, 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x04, 0x50, 0x65, 0xb1, 0x12, 0xfe, 0x86, 0xfe, 0x83, 0xc4,
+ 0x01, 0xe0, 0xfe, 0x5d, 0xc3, 0x01, 0x4e, 0x01, 0x50, 0xc3, 0xfe, 0x50,
+ 0xaa, 0xfe, 0x15, 0x01, 0x41, 0x02, 0x7b, 0xfd, 0x85, 0x03, 0x1d, 0x02,
+ 0xb8, 0xfd, 0xd5, 0x02, 0x2b, 0xfd, 0x33, 0x00, 0x00, 0x01, 0x00, 0x35,
+ 0xfe, 0xe5, 0x04, 0x07, 0x04, 0x60, 0x00, 0x0f, 0x00, 0x00, 0x25, 0x33,
+ 0x11, 0x23, 0x11, 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x03, 0xa1, 0x65, 0xa5, 0x1e, 0xfe, 0xdb, 0xfe, 0xda, 0xc3,
+ 0x01, 0x88, 0xfe, 0x99, 0xc4, 0x01, 0x0b, 0x01, 0x0b, 0xc4, 0xfe, 0x93,
+ 0x99, 0xfe, 0x4c, 0x01, 0x1b, 0x01, 0xb8, 0xfe, 0x48, 0x02, 0x4a, 0x02,
+ 0x16, 0xfe, 0x71, 0x01, 0x8f, 0xfd, 0xdf, 0x00, 0x00, 0x01, 0xff, 0xfa,
+ 0xfe, 0xbf, 0x06, 0x8d, 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x25, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21,
+ 0x15, 0x21, 0x02, 0x8d, 0x02, 0x95, 0xb6, 0xb5, 0xb5, 0xfc, 0x00, 0xfe,
+ 0x23, 0x04, 0x70, 0xfe, 0x23, 0xaa, 0x05, 0x2b, 0xfa, 0xd5, 0xfe, 0x15,
+ 0x01, 0x41, 0x05, 0x2b, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04,
+ 0xfe, 0xe5, 0x05, 0xa2, 0x04, 0x60, 0x00, 0x0f, 0x00, 0x00, 0x25, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21,
+ 0x15, 0x21, 0x02, 0x39, 0x02, 0x1e, 0xa5, 0xa6, 0xa6, 0xfc, 0x9a, 0xfe,
+ 0x6e, 0x03, 0xc6, 0xfe, 0x6f, 0x99, 0x03, 0xc7, 0xfc, 0x39, 0xfe, 0x4c,
+ 0x01, 0x1b, 0x03, 0xb6, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0xfe, 0xbf, 0x04, 0xf0, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x00, 0x25, 0x33,
+ 0x11, 0x23, 0x11, 0x23, 0x11, 0x21, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33,
+ 0x11, 0x14, 0x16, 0x33, 0x21, 0x11, 0x33, 0x04, 0x3b, 0xb5, 0xb5, 0xb7,
+ 0xfe, 0x89, 0xa8, 0x65, 0x62, 0xb4, 0x70, 0x70, 0x01, 0x52, 0xb7, 0xaa,
+ 0xfe, 0x15, 0x01, 0x41, 0x02, 0xc7, 0x77, 0x72, 0xee, 0x01, 0x37, 0xfe,
+ 0xd9, 0x9f, 0x9e, 0x02, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87,
+ 0xfe, 0xe5, 0x04, 0x40, 0x04, 0x60, 0x00, 0x15, 0x00, 0x00, 0x25, 0x33,
+ 0x11, 0x23, 0x11, 0x23, 0x11, 0x21, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x33,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x21, 0x11, 0x33, 0x03, 0x9a, 0xa5, 0xa5,
+ 0xa6, 0xfe, 0xcb, 0x89, 0x5c, 0x53, 0xa6, 0x2e, 0x30, 0x5e, 0x01, 0x0b,
+ 0xa6, 0x99, 0xfe, 0x4c, 0x01, 0x1b, 0x02, 0x09, 0x5f, 0x56, 0xb8, 0xea,
+ 0xd3, 0x75, 0x3b, 0x3b, 0x01, 0xbe, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x00, 0x04, 0x3b, 0x05, 0xd5, 0x00, 0x18, 0x00, 0x00, 0x01, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x02,
+ 0x42, 0x35, 0xa8, 0x65, 0x62, 0xb4, 0x70, 0x70, 0x10, 0x81, 0xc1, 0xb7,
+ 0xb7, 0xc1, 0x81, 0x02, 0xc7, 0x77, 0x72, 0xee, 0x01, 0x37, 0xfe, 0xd9,
+ 0x9f, 0x9e, 0x01, 0x39, 0xfe, 0xc7, 0x02, 0x64, 0xfa, 0x2b, 0x02, 0xc7,
+ 0xfe, 0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87, 0x00, 0x00, 0x03, 0x9a,
+ 0x04, 0x60, 0x00, 0x18, 0x00, 0x00, 0x01, 0x35, 0x33, 0x15, 0x33, 0x11,
+ 0x33, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x35, 0x23, 0x22, 0x27, 0x26,
+ 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x01, 0xc6, 0x90, 0x9e, 0xa6,
+ 0xa6, 0x9e, 0x90, 0x07, 0x89, 0x5c, 0x53, 0xa6, 0x2e, 0x27, 0x02, 0xa4,
+ 0xc2, 0xc4, 0x01, 0xbe, 0xfb, 0xa0, 0x02, 0x09, 0xc4, 0xc4, 0x5f, 0x56,
+ 0xb8, 0xea, 0xd3, 0x75, 0x3b, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x00, 0x04, 0x3b, 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11,
+ 0x23, 0x11, 0x01, 0x54, 0x01, 0x78, 0xa7, 0xc8, 0xb5, 0x70, 0x6f, 0xfe,
+ 0xad, 0xb6, 0x05, 0xd5, 0xfd, 0x9c, 0xe9, 0xee, 0xfe, 0x66, 0x01, 0x8a,
+ 0x9f, 0x9e, 0xfd, 0x39, 0x05, 0xd5, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x06, 0x14, 0x12, 0x06, 0x00, 0x4b, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x12, 0xff, 0xe3, 0x06, 0x5f, 0x05, 0xf0, 0x00, 0x22,
+ 0x00, 0x2a, 0x00, 0x00, 0x01, 0x12, 0x37, 0x36, 0x21, 0x20, 0x17, 0x16,
+ 0x13, 0x21, 0x10, 0x12, 0x33, 0x32, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06,
+ 0x23, 0x20, 0x27, 0x26, 0x03, 0x06, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15,
+ 0x14, 0x17, 0x16, 0x25, 0x21, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x01,
+ 0x87, 0x1e, 0x87, 0xa9, 0x01, 0x1b, 0x01, 0x23, 0xa3, 0xa8, 0x01, 0xfb,
+ 0xe5, 0xf6, 0xf7, 0x7d, 0xe3, 0x65, 0x64, 0x76, 0x77, 0x83, 0xfe, 0xc4,
+ 0xb1, 0xa9, 0x09, 0x99, 0x6a, 0x6e, 0x99, 0x43, 0x3c, 0x01, 0x20, 0x03,
+ 0x4f, 0x16, 0x58, 0x75, 0xfe, 0x74, 0x73, 0x57, 0x03, 0x6d, 0x01, 0x0a,
+ 0xa7, 0xd2, 0xd2, 0xdb, 0xfe, 0x84, 0xfe, 0xf4, 0xfe, 0xce, 0x60, 0x5f,
+ 0xd7, 0x46, 0x24, 0x24, 0xcd, 0xc2, 0x01, 0x55, 0x01, 0x67, 0x6b, 0xdf,
+ 0x4c, 0x3e, 0xa0, 0x41, 0x39, 0x02, 0xbf, 0x7c, 0xa4, 0xa4, 0x7c, 0x00,
+ 0x00, 0x02, 0x00, 0x0d, 0xff, 0xe3, 0x04, 0xdc, 0x04, 0x7b, 0x00, 0x25,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x1d,
+ 0x01, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x01, 0x36, 0x82, 0x50, 0x56, 0x8c, 0x2b, 0x33, 0x43,
+ 0x17, 0x69, 0x83, 0xe6, 0xcb, 0x76, 0x77, 0xfd, 0x06, 0x0b, 0x5c, 0x5d,
+ 0xa4, 0x60, 0x5a, 0x59, 0x58, 0x5d, 0x5a, 0x63, 0x5b, 0xf2, 0x8c, 0x85,
+ 0x02, 0xf9, 0x02, 0x49, 0x4b, 0x7a, 0x8b, 0x54, 0x53, 0x0c, 0x02, 0x04,
+ 0x52, 0x5a, 0xac, 0x46, 0x31, 0x97, 0x21, 0x26, 0xc5, 0x82, 0xa1, 0x91,
+ 0x92, 0xfa, 0x5a, 0xbe, 0x64, 0x63, 0x1a, 0x1a, 0x34, 0xae, 0x2c, 0x14,
+ 0x16, 0x9c, 0x94, 0x01, 0x81, 0x97, 0x5a, 0x5a, 0x57, 0x57, 0x9e, 0x00,
+ 0x00, 0x02, 0x00, 0x12, 0xfe, 0x87, 0x06, 0x5f, 0x05, 0xf0, 0x00, 0x07,
+ 0x00, 0x2d, 0x00, 0x00, 0x01, 0x21, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06,
+ 0x07, 0x12, 0x37, 0x36, 0x21, 0x20, 0x17, 0x16, 0x13, 0x21, 0x10, 0x12,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x07, 0x11, 0x23, 0x11,
+ 0x26, 0x27, 0x26, 0x03, 0x06, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15, 0x14,
+ 0x17, 0x16, 0x02, 0x4a, 0x03, 0x4f, 0x16, 0x58, 0x75, 0xfe, 0x74, 0x73,
+ 0x57, 0xd9, 0x1e, 0x87, 0xa9, 0x01, 0x1b, 0x01, 0x23, 0xa3, 0xa8, 0x01,
+ 0xfb, 0xe5, 0xf6, 0xf7, 0x7d, 0xe3, 0x65, 0x64, 0x76, 0x62, 0x6c, 0xa0,
+ 0xe9, 0x90, 0xa9, 0x09, 0x99, 0x6a, 0x6e, 0x99, 0x43, 0x3c, 0x03, 0x6d,
+ 0xbf, 0x7c, 0xa4, 0xa4, 0x7c, 0xbf, 0x01, 0x0a, 0xa7, 0xd2, 0xd2, 0xdb,
+ 0xfe, 0x84, 0xfe, 0xf4, 0xfe, 0xce, 0x60, 0x5f, 0xd7, 0x46, 0x24, 0x1e,
+ 0x05, 0xfe, 0xa3, 0x01, 0x63, 0x20, 0xa6, 0xc3, 0x01, 0x54, 0x01, 0x67,
+ 0x6b, 0xdf, 0x4c, 0x3e, 0xa0, 0x41, 0x39, 0x00, 0x00, 0x02, 0x00, 0x0d,
+ 0xfe, 0xb7, 0x04, 0xdc, 0x04, 0x7b, 0x00, 0x08, 0x00, 0x31, 0x00, 0x00,
+ 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x0f, 0x01, 0x22, 0x27,
+ 0x26, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x07, 0x11, 0x23, 0x11, 0x26,
+ 0x27, 0x26, 0x04, 0x36, 0x02, 0x49, 0x4b, 0x7a, 0x8b, 0x54, 0x53, 0x0c,
+ 0xb2, 0x82, 0x50, 0x56, 0x8c, 0x2b, 0x33, 0x43, 0x17, 0x69, 0x83, 0xe6,
+ 0xcb, 0x76, 0x77, 0xfd, 0x06, 0x0b, 0x5c, 0x5d, 0xa4, 0x60, 0x5a, 0x59,
+ 0x58, 0x5d, 0x5a, 0x47, 0x42, 0x96, 0xae, 0x6f, 0x85, 0x02, 0x94, 0x97,
+ 0x5a, 0x5a, 0x57, 0x57, 0x9e, 0x8f, 0x52, 0x5a, 0xac, 0x46, 0x31, 0x97,
+ 0x21, 0x26, 0xc5, 0x82, 0xa1, 0x91, 0x92, 0xfa, 0x5a, 0xbe, 0x64, 0x63,
+ 0x1a, 0x1a, 0x34, 0xae, 0x2c, 0x14, 0x10, 0x04, 0xfe, 0xd2, 0x01, 0x33,
+ 0x1a, 0x7b, 0x94, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x6b,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x2c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x24,
+ 0x00, 0x00, 0x07, 0x9e, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf2, 0x05, 0xb8,
+ 0x01, 0x75, 0x12, 0x06, 0x03, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3f,
+ 0x00, 0x00, 0x06, 0x3e, 0x06, 0x48, 0x10, 0x27, 0x02, 0x9a, 0x01, 0x7e,
+ 0x00, 0x00, 0x12, 0x06, 0x03, 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0xfe, 0x66, 0x04, 0xb0, 0x05, 0xd5, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x01, 0x33, 0x02, 0x65, 0x7d, 0xa7, 0x66, 0x62, 0xb7, 0xce, 0x44,
+ 0x38, 0x78, 0x33, 0x31, 0x6f, 0x70, 0xfe, 0xae, 0xb6, 0xb6, 0x02, 0x5b,
+ 0xea, 0x03, 0x71, 0x77, 0x72, 0xee, 0xfe, 0xce, 0xfe, 0xf2, 0xf4, 0xaa,
+ 0x4b, 0x4b, 0xc2, 0x01, 0x22, 0x9f, 0x9e, 0xfd, 0x39, 0x05, 0xd5, 0xfd,
+ 0x89, 0x02, 0x77, 0x00, 0x00, 0x01, 0x00, 0xab, 0xfe, 0x56, 0x04, 0x14,
+ 0x04, 0x60, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x01,
+ 0x33, 0x02, 0x21, 0x12, 0xeb, 0x41, 0x4a, 0x4a, 0x49, 0xa3, 0xad, 0x9a,
+ 0x63, 0x1e, 0x22, 0x22, 0x27, 0x7e, 0xea, 0xa6, 0xa6, 0x01, 0xee, 0xd4,
+ 0x02, 0x77, 0x47, 0x51, 0xe5, 0xfe, 0xf2, 0xd6, 0x60, 0x60, 0x9c, 0x30,
+ 0x37, 0x93, 0x01, 0x08, 0xa6, 0x24, 0x29, 0xfe, 0x19, 0x04, 0x60, 0xfe,
+ 0x1d, 0x01, 0xe3, 0x00, 0x00, 0x01, 0x00, 0x30, 0xfe, 0x56, 0x05, 0x6a,
+ 0x05, 0xd5, 0x00, 0x14, 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x15, 0x10,
+ 0x03, 0x06, 0x05, 0x35, 0x36, 0x37, 0x12, 0x19, 0x01, 0x21, 0x11, 0x33,
+ 0x15, 0x01, 0x23, 0x04, 0xb4, 0xb6, 0xfe, 0x4c, 0x77, 0x58, 0xfe, 0xb6,
+ 0xbe, 0x3d, 0x69, 0x03, 0x1f, 0xb5, 0xfe, 0xb7, 0x79, 0x05, 0x2b, 0xd4,
+ 0xfe, 0x18, 0xfe, 0xaa, 0xfd, 0x38, 0xa7, 0x2e, 0xa8, 0x01, 0x25, 0x02,
+ 0x35, 0x01, 0x1a, 0xfa, 0xd5, 0xaa, 0xfe, 0x56, 0x00, 0x01, 0x00, 0x29,
+ 0xfe, 0x56, 0x04, 0xa7, 0x04, 0x60, 0x00, 0x14, 0x00, 0x00, 0x25, 0x33,
+ 0x15, 0x01, 0x23, 0x13, 0x23, 0x11, 0x21, 0x15, 0x10, 0x03, 0x06, 0x05,
+ 0x35, 0x36, 0x37, 0x36, 0x11, 0x35, 0x21, 0x04, 0x01, 0xa6, 0xfe, 0xfb,
+ 0x6f, 0xce, 0xa5, 0xfe, 0xa1, 0x6a, 0x54, 0xfe, 0xea, 0xa1, 0x36, 0x58,
+ 0x02, 0xa9, 0x99, 0x99, 0xfe, 0x56, 0x01, 0xaa, 0x03, 0xc7, 0x86, 0xfe,
+ 0x92, 0xfe, 0xfc, 0xcf, 0x1d, 0x99, 0x1b, 0x7f, 0xcf, 0x01, 0xa7, 0xd4,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x66, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x14,
+ 0x00, 0x00, 0x25, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x03,
+ 0xff, 0xfd, 0x6c, 0xb6, 0xb6, 0x02, 0x94, 0xb6, 0xb9, 0xcd, 0x44, 0x38,
+ 0x78, 0x33, 0x31, 0x68, 0x02, 0x5f, 0xfd, 0x39, 0x05, 0xd5, 0xfd, 0x9c,
+ 0x02, 0x64, 0xfa, 0x93, 0xfe, 0xf2, 0xf4, 0xaa, 0x4b, 0x4b, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x04, 0x14, 0x04, 0x60, 0x00, 0x15,
+ 0x00, 0x00, 0x05, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36,
+ 0x03, 0x6e, 0xfd, 0xe5, 0xa5, 0xa5, 0x02, 0x1b, 0xa6, 0x4a, 0x49, 0xa3,
+ 0xad, 0x9b, 0x62, 0x1e, 0x22, 0x14, 0x02, 0x18, 0xfd, 0xfc, 0x04, 0x60,
+ 0xfe, 0x33, 0x01, 0xcd, 0xfb, 0x8c, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x37,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x05, 0x6a, 0x05, 0xd5, 0x00, 0x10,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x15, 0x01, 0x23, 0x04, 0xb5, 0xb6, 0xfd, 0x6c,
+ 0xb6, 0xb6, 0x02, 0x94, 0xb6, 0xb5, 0xfe, 0xb7, 0x79, 0x02, 0xc7, 0xfd,
+ 0x39, 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64, 0xfa, 0xd5, 0xaa, 0xfe, 0x56,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x04, 0xba, 0x04, 0x60, 0x00, 0x10,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x15, 0x01, 0x23, 0x04, 0x14, 0xa6, 0xfd, 0xe5,
+ 0xa5, 0xa5, 0x02, 0x1b, 0xa6, 0xa6, 0xfe, 0xfb, 0x6f, 0x02, 0x04, 0xfd,
+ 0xfc, 0x04, 0x60, 0xfe, 0x33, 0x01, 0xcd, 0xfc, 0x39, 0x99, 0xfe, 0x56,
+ 0x00, 0x01, 0x00, 0x9d, 0xfe, 0xbf, 0x04, 0x3b, 0x05, 0xd5, 0x00, 0x14,
+ 0x00, 0x00, 0x25, 0x11, 0x21, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11,
+ 0x14, 0x16, 0x33, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x03,
+ 0x84, 0xfe, 0x89, 0xa8, 0x65, 0x62, 0xb4, 0x70, 0x70, 0x01, 0x52, 0xb7,
+ 0xb7, 0xb5, 0xaa, 0x02, 0x1d, 0x77, 0x72, 0xee, 0x01, 0x37, 0xfe, 0xd9,
+ 0x9f, 0x9e, 0x02, 0x64, 0xfa, 0x2b, 0xfe, 0xbf, 0x01, 0xeb, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x87, 0xfe, 0xe5, 0x03, 0x9a, 0x04, 0x60, 0x00, 0x15,
+ 0x00, 0x00, 0x25, 0x11, 0x21, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11,
+ 0x02, 0xf4, 0xfe, 0xcb, 0x89, 0x5c, 0x53, 0xa6, 0x2e, 0x30, 0x5e, 0x01,
+ 0x0b, 0xa6, 0xa6, 0xa6, 0x99, 0x01, 0x70, 0x5f, 0x56, 0xb8, 0xea, 0xd3,
+ 0x75, 0x3b, 0x3b, 0x01, 0xbe, 0xfb, 0xa0, 0xfe, 0xe5, 0x01, 0xb4, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x06, 0x38, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x25, 0x33, 0x15, 0x01, 0x23, 0x01, 0x23, 0x11, 0x01, 0x23,
+ 0x01, 0x11, 0x23, 0x11, 0x21, 0x09, 0x01, 0x21, 0x05, 0x82, 0xb5, 0xfe,
+ 0xb7, 0x79, 0x01, 0x0d, 0xb1, 0xfe, 0xa5, 0xb6, 0xfe, 0xa5, 0xb0, 0x01,
+ 0x0f, 0x01, 0x57, 0x01, 0x58, 0x01, 0x0f, 0xaa, 0xaa, 0xfe, 0x56, 0x01,
+ 0xaa, 0x05, 0x1f, 0xfc, 0x00, 0x04, 0x00, 0xfa, 0xe1, 0x05, 0xd5, 0xfc,
+ 0x08, 0x03, 0xf8, 0x00, 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x05, 0x67,
+ 0x04, 0x60, 0x00, 0x11, 0x00, 0x00, 0x25, 0x33, 0x15, 0x01, 0x23, 0x13,
+ 0x23, 0x11, 0x01, 0x23, 0x01, 0x11, 0x23, 0x11, 0x33, 0x09, 0x01, 0x33,
+ 0x04, 0xc1, 0xa5, 0xfe, 0xfb, 0x6e, 0xce, 0xa0, 0xfe, 0xe9, 0xa5, 0xfe,
+ 0xe9, 0xa0, 0xec, 0x01, 0x1e, 0x01, 0x1f, 0xea, 0x99, 0x99, 0xfe, 0x56,
+ 0x01, 0xaa, 0x03, 0xb0, 0xfd, 0x27, 0x02, 0xd9, 0xfc, 0x50, 0x04, 0x60,
+ 0xfd, 0x12, 0x02, 0xee, 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x01, 0x54,
+ 0x06, 0x14, 0x12, 0x06, 0x00, 0x4f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x92, 0x10, 0x27, 0x02, 0x9a, 0x00, 0xb9,
+ 0x01, 0x4a, 0x13, 0x06, 0x03, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x1f, 0x10, 0x26,
+ 0x02, 0x9a, 0x47, 0xd7, 0x13, 0x06, 0x03, 0xc4, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0x4e, 0x12, 0x26,
+ 0x03, 0xa4, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb, 0x04, 0x43, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x06, 0x10, 0x12, 0x26, 0x03, 0xc4, 0x00, 0x00, 0x11, 0x06, 0x00, 0x6a,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x07, 0x00, 0x00, 0x06, 0x8e,
+ 0x05, 0xd5, 0x12, 0x06, 0x00, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e,
+ 0xff, 0xe3, 0x06, 0xb1, 0x04, 0x7b, 0x12, 0x06, 0x00, 0xa8, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xf2, 0x04, 0x2a, 0x01, 0x75, 0x13, 0x06, 0x03, 0xa9, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c,
+ 0x06, 0x48, 0x10, 0x27, 0x02, 0x9a, 0x00, 0x87, 0x00, 0x00, 0x13, 0x06,
+ 0x03, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69,
+ 0xff, 0xe3, 0x05, 0x44, 0x05, 0xf0, 0x12, 0x06, 0x01, 0x51, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x06,
+ 0x02, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69, 0xff, 0xe3, 0x05, 0x44,
+ 0x07, 0x4e, 0x10, 0x27, 0x10, 0xeb, 0x04, 0x9d, 0x01, 0x75, 0x12, 0x06,
+ 0x04, 0x6c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c,
+ 0x06, 0x10, 0x10, 0x26, 0x00, 0x6a, 0x4c, 0x00, 0x12, 0x06, 0x04, 0x6d,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x24, 0x00, 0x00, 0x07, 0x9e,
+ 0x07, 0x4e, 0x10, 0x27, 0x10, 0xeb, 0x05, 0xaf, 0x01, 0x75, 0x12, 0x06,
+ 0x03, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x06, 0x3e,
+ 0x06, 0x10, 0x10, 0x27, 0x00, 0x6a, 0x01, 0x75, 0x00, 0x00, 0x12, 0x06,
+ 0x03, 0xca, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x25,
+ 0x07, 0x4e, 0x10, 0x27, 0x10, 0xeb, 0x04, 0x13, 0x01, 0x75, 0x12, 0x06,
+ 0x03, 0xab, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77, 0xff, 0xe3, 0x03, 0x68,
+ 0x06, 0x10, 0x10, 0x26, 0x00, 0x6a, 0x34, 0x00, 0x12, 0x06, 0x03, 0xcb,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x90, 0xff, 0xc1, 0x04, 0x79,
+ 0x05, 0xd5, 0x12, 0x06, 0x01, 0x79, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f,
+ 0xfe, 0x4c, 0x03, 0xc4, 0x04, 0x60, 0x12, 0x06, 0x02, 0x54, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0xdc, 0x01, 0x3b, 0x12, 0x06, 0x03, 0xac, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07, 0x05, 0xf5, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0x83, 0xff, 0xff, 0x12, 0x06, 0x03, 0xcc, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xeb, 0x04, 0x76, 0x01, 0x75, 0x12, 0x06, 0x03, 0xac, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07, 0x06, 0x10, 0x10, 0x27,
+ 0x00, 0x6a, 0x00, 0x83, 0x00, 0x00, 0x12, 0x06, 0x03, 0xcc, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x07, 0x4e, 0x12, 0x26,
+ 0x03, 0xb2, 0x00, 0x00, 0x11, 0x07, 0x10, 0xeb, 0x04, 0xa3, 0x01, 0x75,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x06, 0x10, 0x12, 0x26, 0x03, 0xd2, 0x00, 0x00, 0x11, 0x06, 0x00, 0x6a,
+ 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x05, 0xf0, 0x12, 0x06, 0x01, 0x61, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x12, 0x06, 0x02, 0x37, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x07, 0x4e, 0x12, 0x26,
+ 0x04, 0x7c, 0x00, 0x00, 0x10, 0x07, 0x10, 0xeb, 0x04, 0xa3, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x10, 0x12, 0x26,
+ 0x04, 0x7d, 0x00, 0x00, 0x10, 0x06, 0x00, 0x6a, 0x68, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x04, 0xa0, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xeb, 0x03, 0xf6, 0x01, 0x75, 0x12, 0x06, 0x03, 0xc1, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84, 0x06, 0x10, 0x10, 0x26,
+ 0x00, 0x6a, 0xe5, 0x00, 0x12, 0x06, 0x03, 0xe1, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x44, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0x67, 0x01, 0x3b, 0x12, 0x06, 0x03, 0xb7, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x05, 0xf5, 0x10, 0x26,
+ 0x00, 0x71, 0x55, 0xff, 0x12, 0x06, 0x03, 0xd7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x44, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xeb, 0x04, 0x00, 0x01, 0x75, 0x12, 0x06, 0x03, 0xb7, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x06, 0x10, 0x10, 0x26,
+ 0x00, 0x6a, 0x55, 0x00, 0x12, 0x06, 0x03, 0xd7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x1f, 0x00, 0x00, 0x04, 0x44, 0x07, 0x6b, 0x10, 0x27,
+ 0x10, 0xf4, 0x04, 0x00, 0x01, 0x75, 0x12, 0x06, 0x03, 0xb7, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c, 0x06, 0x66, 0x10, 0x26,
+ 0x02, 0x9f, 0x55, 0x00, 0x12, 0x06, 0x03, 0xd7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9d, 0x00, 0x00, 0x04, 0x3b, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xeb, 0x04, 0x51, 0x01, 0x75, 0x12, 0x06, 0x03, 0xbb, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x87, 0x00, 0x00, 0x03, 0x9a, 0x06, 0x10, 0x10, 0x26,
+ 0x00, 0x6a, 0x55, 0x00, 0x12, 0x06, 0x03, 0xdb, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x09,
+ 0x00, 0x00, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11,
+ 0xb5, 0x03, 0x44, 0xfd, 0x72, 0xb5, 0xb5, 0x05, 0xd5, 0xaa, 0xfb, 0x7f,
+ 0xfe, 0x15, 0x01, 0x41, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x03, 0x6f,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x33, 0x11, 0x23, 0x11, 0xa7, 0x02, 0xc7, 0xfd, 0xdf, 0xa6, 0xa6, 0x04,
+ 0x60, 0xaa, 0xfc, 0xe3, 0xfe, 0x4c, 0x01, 0x1b, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0xa6, 0x07, 0x4e, 0x12, 0x26, 0x03, 0xbf, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xeb, 0x05, 0x25, 0x01, 0x75, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x05, 0x0c, 0x06, 0x10, 0x12, 0x26, 0x03, 0xdf, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x6a, 0x00, 0xee, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3f,
+ 0xfe, 0x56, 0x04, 0x71, 0x05, 0xd5, 0x00, 0x19, 0x00, 0x00, 0x21, 0x11,
+ 0x23, 0x35, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35,
+ 0x01, 0x2d, 0xed, 0xed, 0x03, 0x44, 0xfd, 0x71, 0x01, 0xed, 0xfe, 0x13,
+ 0x01, 0x45, 0x40, 0x49, 0xac, 0xe5, 0xd2, 0x5e, 0x45, 0x02, 0x94, 0xaa,
+ 0x02, 0x97, 0xaa, 0xfe, 0x13, 0xaa, 0xfd, 0xec, 0x94, 0xc8, 0x60, 0x6e,
+ 0x9c, 0x61, 0xad, 0x00, 0x00, 0x01, 0x00, 0x32, 0xfe, 0x56, 0x03, 0xe7,
+ 0x04, 0x60, 0x00, 0x19, 0x00, 0x00, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x14, 0x07,
+ 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x01, 0x1f, 0xed, 0xed,
+ 0x02, 0xc7, 0xfd, 0xdf, 0x01, 0x76, 0xfe, 0x8a, 0x01, 0x49, 0x3f, 0x4a,
+ 0xad, 0xe4, 0xd2, 0x5f, 0x43, 0x01, 0xf4, 0xaa, 0x01, 0xc2, 0x9d, 0xfe,
+ 0xdb, 0xaa, 0xfe, 0x8c, 0x94, 0xc8, 0x60, 0x6e, 0x9c, 0x61, 0xad, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0xfe, 0x66, 0x04, 0xa6, 0x05, 0xd5, 0x00, 0x17,
+ 0x00, 0x00, 0x25, 0x16, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x37, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x04, 0xa6, 0x01, 0x02, 0x0e, 0x4a, 0x5c, 0xcd, 0x45, 0x38,
+ 0x7a, 0x31, 0x24, 0x0a, 0xfe, 0x88, 0xfe, 0x83, 0xc4, 0x01, 0xe0, 0xfe,
+ 0x5d, 0xc3, 0x01, 0x4e, 0x01, 0x50, 0xc3, 0xfe, 0x50, 0x1a, 0x02, 0x18,
+ 0xbe, 0x62, 0x7a, 0xaa, 0x4b, 0x35, 0x73, 0x02, 0x78, 0xfd, 0x85, 0x03,
+ 0x1d, 0x02, 0xb8, 0xfd, 0xd5, 0x02, 0x2b, 0xfd, 0x33, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x35, 0xfe, 0x56, 0x03, 0xf4, 0x04, 0x60, 0x00, 0x17,
+ 0x00, 0x00, 0x09, 0x02, 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35,
+ 0x32, 0x37, 0x3e, 0x01, 0x35, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09,
+ 0x01, 0x03, 0xf4, 0xfe, 0x93, 0x01, 0x47, 0x18, 0x3c, 0x49, 0xb1, 0xad,
+ 0xb0, 0x17, 0x47, 0x2f, 0xfe, 0xde, 0xfe, 0xda, 0xc3, 0x01, 0x88, 0xfe,
+ 0x99, 0xc4, 0x01, 0x0b, 0x01, 0x0b, 0x04, 0x60, 0xfd, 0xdf, 0xfe, 0x17,
+ 0x26, 0x39, 0xcd, 0x61, 0x73, 0x9c, 0x03, 0x0a, 0x6d, 0x98, 0x01, 0xb4,
+ 0xfe, 0x48, 0x02, 0x4a, 0x02, 0x16, 0xfe, 0x71, 0x01, 0x8f, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x01, 0x21, 0x15, 0x21, 0x01,
+ 0x23, 0x09, 0x01, 0x23, 0x01, 0x21, 0x35, 0x21, 0x74, 0xc3, 0x01, 0x4e,
+ 0x01, 0x50, 0xc3, 0xfe, 0x7a, 0x01, 0x4e, 0xfe, 0xb5, 0x01, 0xa0, 0xc3,
+ 0xfe, 0x86, 0xfe, 0x83, 0xc4, 0x01, 0xa5, 0xfe, 0xb1, 0x01, 0x6e, 0x05,
+ 0xd5, 0xfd, 0xd5, 0x02, 0x2b, 0xfd, 0x77, 0x90, 0xfd, 0x44, 0x02, 0x7b,
+ 0xfd, 0x85, 0x02, 0xbc, 0x90, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x35,
+ 0x00, 0x00, 0x04, 0x07, 0x04, 0x60, 0x00, 0x11, 0x00, 0x00, 0x09, 0x01,
+ 0x33, 0x09, 0x01, 0x33, 0x01, 0x33, 0x15, 0x21, 0x01, 0x23, 0x09, 0x01,
+ 0x23, 0x01, 0x21, 0x35, 0x01, 0x8b, 0xfe, 0xcb, 0xc4, 0x01, 0x0b, 0x01,
+ 0x0b, 0xc4, 0xfe, 0xcc, 0xf2, 0xfe, 0xfd, 0x01, 0x57, 0xc3, 0xfe, 0xdb,
+ 0xfe, 0xda, 0xc3, 0x01, 0x59, 0xfe, 0xfc, 0x02, 0x94, 0x01, 0xcc, 0xfe,
+ 0x71, 0x01, 0x8f, 0xfe, 0x34, 0x90, 0xfd, 0xfc, 0x01, 0xb8, 0xfe, 0x48,
+ 0x02, 0x04, 0x90, 0x00, 0x00, 0x02, 0x00, 0x82, 0x00, 0x00, 0x04, 0x3c,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x00, 0x01, 0x14, 0x17, 0x16,
+ 0x33, 0x21, 0x11, 0x21, 0x22, 0x07, 0x06, 0x01, 0x11, 0x21, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x21, 0x11, 0x01, 0x42, 0x47, 0x47, 0x92, 0x01,
+ 0x24, 0xfe, 0xdc, 0x92, 0x47, 0x47, 0x02, 0xfa, 0xfe, 0x1d, 0xe2, 0xf5,
+ 0xf5, 0xe2, 0x01, 0x2d, 0x01, 0xb7, 0x8a, 0x43, 0x44, 0x02, 0x23, 0x43,
+ 0x44, 0x03, 0x93, 0xfa, 0x2b, 0xda, 0xdd, 0xde, 0xda, 0x02, 0x66, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x03, 0x90, 0x04, 0x60, 0x00, 0x0a,
+ 0x00, 0x16, 0x00, 0x00, 0x01, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x11, 0x23,
+ 0x22, 0x07, 0x06, 0x01, 0x11, 0x21, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36,
+ 0x3b, 0x01, 0x11, 0x01, 0x16, 0x38, 0x3b, 0x74, 0xed, 0xed, 0x73, 0x3c,
+ 0x38, 0x02, 0x7a, 0xfe, 0x66, 0xc0, 0x68, 0x68, 0x68, 0x6d, 0xbb, 0xf4,
+ 0x01, 0x4c, 0x5a, 0x2b, 0x2e, 0x01, 0x69, 0x2e, 0x2a, 0x02, 0xb6, 0xfb,
+ 0xa0, 0x52, 0x52, 0x01, 0x50, 0x52, 0x55, 0x01, 0xc5, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x82, 0xff, 0xe3, 0x06, 0x8a, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x30, 0x00, 0x00, 0x01, 0x21, 0x22, 0x07, 0x06, 0x10, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x13, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x21, 0x11, 0x33, 0x11, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x03, 0x86, 0xfe, 0xdc, 0x92, 0x47, 0x47,
+ 0x47, 0x56, 0x74, 0xa2, 0x43, 0x4e, 0x1e, 0x0b, 0x0d, 0x2e, 0x5f, 0x55,
+ 0x63, 0xd6, 0x74, 0x7b, 0xf5, 0xe2, 0x01, 0x2d, 0xb5, 0x38, 0x2f, 0x65,
+ 0x5f, 0x35, 0x38, 0xb6, 0x63, 0x5e, 0xc1, 0xc3, 0x5c, 0x2c, 0x02, 0xc9,
+ 0x43, 0x44, 0xfe, 0xea, 0x50, 0x5f, 0x6d, 0x7d, 0x9f, 0xfe, 0xdd, 0x1d,
+ 0x1c, 0x60, 0x36, 0x31, 0x81, 0x89, 0xca, 0xde, 0xda, 0x02, 0x66, 0xfb,
+ 0xec, 0x8f, 0x5b, 0x4a, 0x4a, 0x4f, 0x9b, 0x02, 0x9f, 0xfd, 0x5a, 0xe0,
+ 0x7f, 0x78, 0x78, 0x39, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x05, 0xce,
+ 0x04, 0x60, 0x00, 0x0d, 0x00, 0x30, 0x00, 0x00, 0x01, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x13, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01,
+ 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x02, 0xea, 0xed,
+ 0x73, 0x3c, 0x38, 0x3b, 0x39, 0x60, 0x85, 0x53, 0x28, 0x2c, 0x3c, 0x54,
+ 0x54, 0x7b, 0x9b, 0x5b, 0x5b, 0x68, 0x6d, 0xbb, 0xf4, 0xa6, 0x38, 0x36,
+ 0x5f, 0x5d, 0x36, 0x38, 0xa6, 0x5a, 0x5e, 0xb9, 0xbe, 0x5a, 0x1c, 0x02,
+ 0x02, 0x2e, 0x2a, 0x5e, 0x5c, 0x3a, 0x39, 0x6d, 0x34, 0x9c, 0xfe, 0xf6,
+ 0x6c, 0x30, 0x31, 0x61, 0x60, 0xa6, 0xaa, 0x52, 0x55, 0x01, 0xc5, 0xfd,
+ 0x61, 0x9f, 0x50, 0x4f, 0x4f, 0x52, 0x9d, 0x01, 0x41, 0xfe, 0xb8, 0xec,
+ 0x73, 0x78, 0x78, 0x25, 0x00, 0x01, 0x00, 0xb4, 0xff, 0xe3, 0x06, 0x50,
+ 0x05, 0xf0, 0x00, 0x37, 0x00, 0x00, 0x01, 0x34, 0x27, 0x26, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x03, 0x4c, 0x53, 0x53, 0x95, 0x9c, 0xa3, 0x86, 0x48, 0x47,
+ 0x49, 0x4a, 0x89, 0x4b, 0xaa, 0x67, 0x67, 0x5a, 0x5b, 0x50, 0xcf, 0x79,
+ 0x79, 0x40, 0x40, 0x76, 0x82, 0x4a, 0x49, 0x39, 0x2f, 0x64, 0x5f, 0x35,
+ 0x39, 0xb6, 0x64, 0x5d, 0xc2, 0xc3, 0x5c, 0x2b, 0x19, 0x1e, 0x01, 0xb2,
+ 0x84, 0x4a, 0x4b, 0xa6, 0x3b, 0x3c, 0x70, 0x73, 0x3d, 0x3e, 0x24, 0x26,
+ 0xb4, 0x20, 0x10, 0x10, 0x68, 0x69, 0xb2, 0x7c, 0x55, 0x56, 0x21, 0x1f,
+ 0x62, 0x62, 0x90, 0x80, 0x5b, 0x4a, 0x4a, 0x4f, 0x9b, 0x02, 0x9f, 0xfd,
+ 0x5a, 0xe0, 0x7f, 0x78, 0x78, 0x38, 0x50, 0x61, 0x00, 0x01, 0x00, 0x99,
+ 0xff, 0xe3, 0x05, 0xa6, 0x04, 0x7c, 0x00, 0x35, 0x00, 0x00, 0x01, 0x34,
+ 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x02, 0xc4, 0x46, 0x41, 0x7b, 0x85, 0x8b, 0x69,
+ 0x3c, 0x3d, 0x3f, 0x3e, 0x6b, 0x40, 0x49, 0x48, 0x57, 0x58, 0x99, 0x45,
+ 0xb0, 0x66, 0x66, 0x36, 0x36, 0x65, 0x75, 0x39, 0x3e, 0x38, 0x37, 0x5e,
+ 0x5e, 0x36, 0x38, 0xa5, 0x5a, 0x5d, 0xba, 0xb3, 0x65, 0x58, 0x01, 0x38,
+ 0x66, 0x38, 0x33, 0x98, 0x2c, 0x2d, 0x46, 0x40, 0x2e, 0x2e, 0x0d, 0x0d,
+ 0x1d, 0xa7, 0x18, 0x18, 0x4e, 0x4f, 0x8d, 0x5d, 0x40, 0x41, 0x18, 0x19,
+ 0x48, 0x4f, 0x48, 0x58, 0x44, 0x45, 0x4f, 0x52, 0x9d, 0x01, 0x41, 0xfe,
+ 0xb8, 0xec, 0x73, 0x78, 0x75, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0xfe, 0x56, 0x04, 0xb6, 0x05, 0xf0, 0x00, 0x29, 0x00, 0x00, 0x21, 0x23,
+ 0x11, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15,
+ 0x11, 0x33, 0x11, 0x23, 0x04, 0x01, 0xb5, 0x53, 0x53, 0x95, 0x9c, 0xa3,
+ 0x86, 0x48, 0x47, 0x49, 0x4a, 0x89, 0x4b, 0xaa, 0x67, 0x67, 0x5a, 0x5b,
+ 0x50, 0xcf, 0x79, 0x79, 0x40, 0x40, 0x76, 0x82, 0x4a, 0x49, 0xb5, 0xb5,
+ 0x01, 0xb1, 0x85, 0x4a, 0x4b, 0xa6, 0x3b, 0x3c, 0x70, 0x73, 0x3d, 0x3e,
+ 0x24, 0x26, 0xb4, 0x20, 0x10, 0x10, 0x68, 0x69, 0xb2, 0x7c, 0x55, 0x56,
+ 0x21, 0x1f, 0x62, 0x61, 0x92, 0xfe, 0xf9, 0xfd, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x99, 0xfe, 0x56, 0x04, 0x10, 0x04, 0x7c, 0x00, 0x29,
+ 0x00, 0x00, 0x25, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x34, 0x27, 0x26,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x03, 0x67, 0xa9, 0xa6,
+ 0xa6, 0x46, 0x41, 0x7b, 0x85, 0x8b, 0x69, 0x3c, 0x3d, 0x3f, 0x3e, 0x6b,
+ 0x40, 0x49, 0x48, 0x57, 0x58, 0x99, 0x45, 0xb0, 0x66, 0x66, 0x36, 0x36,
+ 0x65, 0x72, 0x3c, 0x3e, 0x99, 0xfd, 0xbd, 0x01, 0xaa, 0x01, 0x46, 0x58,
+ 0x38, 0x33, 0x98, 0x2c, 0x2d, 0x46, 0x40, 0x2e, 0x2e, 0x0d, 0x0d, 0x1d,
+ 0xa7, 0x18, 0x18, 0x4e, 0x4f, 0x8d, 0x5d, 0x40, 0x41, 0x18, 0x18, 0x49,
+ 0x4b, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x30, 0xff, 0xe3, 0x07, 0x03,
+ 0x05, 0xd5, 0x00, 0x21, 0x00, 0x00, 0x01, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x11, 0x21, 0x15, 0x10, 0x03, 0x06, 0x05, 0x35, 0x36,
+ 0x37, 0x12, 0x19, 0x01, 0x04, 0xb4, 0x39, 0x2f, 0x64, 0x5f, 0x35, 0x39,
+ 0xb6, 0x63, 0x5e, 0xc2, 0xc0, 0x5f, 0x63, 0xfe, 0x4c, 0x77, 0x58, 0xfe,
+ 0xb6, 0xbe, 0x3d, 0x69, 0x05, 0xd5, 0xfb, 0xec, 0x8f, 0x5b, 0x4a, 0x4a,
+ 0x4f, 0x9b, 0x02, 0x9f, 0xfd, 0x5a, 0xe0, 0x7f, 0x78, 0x78, 0x7d, 0xe2,
+ 0x03, 0x71, 0xd4, 0xfe, 0x18, 0xfe, 0xaa, 0xfd, 0x38, 0xa7, 0x2e, 0xa8,
+ 0x01, 0x25, 0x02, 0x35, 0x01, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x29,
+ 0xff, 0xe3, 0x06, 0x3d, 0x04, 0x60, 0x00, 0x20, 0x00, 0x00, 0x01, 0x11,
+ 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x21, 0x15, 0x10, 0x03, 0x06,
+ 0x05, 0x35, 0x36, 0x37, 0x36, 0x11, 0x35, 0x04, 0x01, 0x6e, 0x5d, 0x5d,
+ 0x36, 0x38, 0xa6, 0x5a, 0x5e, 0xb9, 0xb4, 0x64, 0x58, 0xfe, 0xa1, 0x6a,
+ 0x54, 0xfe, 0xea, 0xa1, 0x36, 0x58, 0x04, 0x60, 0xfd, 0x04, 0x57, 0x8a,
+ 0x4f, 0x52, 0x9d, 0x01, 0x41, 0xfe, 0xb8, 0xec, 0x73, 0x78, 0x75, 0x65,
+ 0x7b, 0x02, 0x8f, 0x86, 0xfe, 0x92, 0xfe, 0xfc, 0xcf, 0x1d, 0x99, 0x1b,
+ 0x7f, 0xcf, 0x01, 0xa7, 0xd4, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xff, 0xe3, 0x07, 0x5c, 0x05, 0xd5, 0x12, 0x06, 0x01, 0xb8, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xff, 0xe3, 0x06, 0x50, 0x04, 0x60, 0x00, 0x1c,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x21,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x04, 0x14, 0x6e, 0x5c, 0x5e,
+ 0x36, 0x38, 0xa6, 0x5a, 0x5e, 0xba, 0xb3, 0x64, 0x59, 0xfd, 0xe5, 0xa5,
+ 0xa5, 0x02, 0x1b, 0x04, 0x60, 0xfd, 0x04, 0x57, 0x8a, 0x4f, 0x52, 0x9d,
+ 0x01, 0x41, 0xfe, 0xb8, 0xec, 0x73, 0x78, 0x75, 0x65, 0x7b, 0xcc, 0xfd,
+ 0xfc, 0x04, 0x60, 0xfe, 0x33, 0x01, 0xcd, 0x00, 0x00, 0x01, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xfc, 0x05, 0xf0, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x20, 0x27, 0x26, 0x10, 0x37, 0x36, 0x21,
+ 0x20, 0x17, 0x15, 0x26, 0x23, 0x20, 0x11, 0x10, 0x21, 0x32, 0x36, 0x35,
+ 0x11, 0x33, 0x04, 0xfb, 0x5a, 0x28, 0x7b, 0x70, 0x88, 0xfe, 0xbf, 0xb1,
+ 0xac, 0xab, 0xb2, 0x01, 0x41, 0x01, 0x0a, 0xca, 0xca, 0xfb, 0xfe, 0x12,
+ 0x01, 0xee, 0xc2, 0x6f, 0xb5, 0x01, 0xba, 0xe0, 0x7f, 0x39, 0x21, 0x1e,
+ 0xd2, 0xcc, 0x02, 0xd0, 0xcd, 0xd2, 0x8e, 0xd7, 0xbf, 0xfd, 0x9f, 0xfd,
+ 0xa0, 0x94, 0xa4, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0xd9, 0x04, 0x7b, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x10,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x15, 0x26, 0x23, 0x22, 0x07, 0x06, 0x10,
+ 0x17, 0x16, 0x33, 0x32, 0x11, 0x35, 0x33, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x66, 0x83, 0x87, 0xf0, 0xbc, 0xa7, 0xab, 0xb0, 0xaa, 0x59,
+ 0x51, 0x51, 0x59, 0xaa, 0xcb, 0xa6, 0xb5, 0xce, 0xea, 0x86, 0x80, 0x02,
+ 0x2f, 0x01, 0x0e, 0x9d, 0xa1, 0x6e, 0xaa, 0x7c, 0x7c, 0x72, 0xfe, 0x7c,
+ 0x72, 0x7c, 0x01, 0x3e, 0xbe, 0xc5, 0xec, 0xe7, 0xa6, 0x9e, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xfa, 0xff, 0xe3, 0x04, 0xdc, 0x05, 0xd5, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x02, 0x8e, 0x39, 0x2f, 0x64, 0x5e, 0x35, 0x39,
+ 0xb6, 0x63, 0x5e, 0xc1, 0xc1, 0x5e, 0x63, 0xfe, 0x23, 0x04, 0x70, 0x05,
+ 0x2b, 0xfc, 0x96, 0x8f, 0x5b, 0x4a, 0x4a, 0x4f, 0x9b, 0x02, 0x9f, 0xfd,
+ 0x5a, 0xe0, 0x7f, 0x78, 0x78, 0x7d, 0xe2, 0x03, 0x71, 0xaa, 0xaa, 0x00,
+ 0x00, 0x01, 0x00, 0x04, 0xff, 0xe3, 0x04, 0x77, 0x04, 0x60, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x02, 0x39, 0x38, 0x37, 0x5e, 0x5e, 0x36, 0x37,
+ 0xa6, 0x5a, 0x5e, 0xb9, 0xb3, 0x65, 0x58, 0xfe, 0x6e, 0x03, 0xc6, 0x03,
+ 0xb6, 0xfd, 0xae, 0x56, 0x46, 0x45, 0x4f, 0x52, 0x9d, 0x01, 0x41, 0xfe,
+ 0xb8, 0xec, 0x73, 0x78, 0x75, 0x65, 0x7b, 0x02, 0x7e, 0xaa, 0xaa, 0x00,
+ 0xff, 0xff, 0x00, 0x93, 0xff, 0xe3, 0x04, 0x09, 0x05, 0xf0, 0x12, 0x06,
+ 0x01, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77, 0xff, 0xe3, 0x03, 0x68,
+ 0x04, 0x7c, 0x12, 0x06, 0x03, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4b,
+ 0xfe, 0x66, 0x04, 0xb5, 0x05, 0xd5, 0x00, 0x18, 0x00, 0x00, 0x33, 0x35,
+ 0x36, 0x37, 0x36, 0x11, 0x35, 0x21, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x21, 0x15, 0x10, 0x03, 0x06, 0x4c,
+ 0xc7, 0x34, 0x4e, 0x03, 0x1f, 0xb8, 0xcd, 0x45, 0x39, 0x78, 0x32, 0x31,
+ 0xfe, 0x4c, 0x5c, 0x58, 0xaa, 0x30, 0xa3, 0xf6, 0x02, 0x64, 0xfe, 0xfa,
+ 0x93, 0xfe, 0xf2, 0xf4, 0xaa, 0x4b, 0x4c, 0xc1, 0x04, 0xc3, 0xb8, 0xfd,
+ 0xca, 0xfe, 0xf8, 0xfd, 0x00, 0x01, 0x00, 0x44, 0xfe, 0x56, 0x04, 0x02,
+ 0x04, 0x60, 0x00, 0x18, 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, 0x36, 0x11,
+ 0x35, 0x21, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x11, 0x21, 0x15, 0x10, 0x07, 0x06, 0x44, 0xa8, 0x2f, 0x3d, 0x02,
+ 0xa9, 0x93, 0xa2, 0x40, 0x2d, 0x57, 0x29, 0x23, 0xfe, 0xa1, 0x4f, 0x54,
+ 0x99, 0x1d, 0x7d, 0xa6, 0x01, 0xd0, 0xb7, 0xfb, 0x8c, 0xd6, 0xc0, 0x9c,
+ 0x30, 0x29, 0xa1, 0x03, 0xe1, 0x6f, 0xfe, 0x50, 0xc2, 0xcf, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4b, 0x00, 0x00, 0x08, 0x33, 0x05, 0xd5, 0x00, 0x17,
+ 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, 0x12, 0x11, 0x35, 0x21, 0x09, 0x01,
+ 0x33, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x21, 0x15, 0x10,
+ 0x03, 0x06, 0x4c, 0xc3, 0x38, 0x4e, 0x03, 0x20, 0x01, 0x4e, 0x01, 0x50,
+ 0xc3, 0xfe, 0x50, 0x01, 0xcd, 0xc3, 0xfe, 0x86, 0xfe, 0x83, 0xc4, 0x01,
+ 0xdf, 0xfe, 0xc4, 0xfd, 0xf2, 0x5c, 0x58, 0xaa, 0x2f, 0xa4, 0x01, 0x02,
+ 0x02, 0x58, 0xfe, 0xfd, 0xd5, 0x02, 0x2b, 0xfd, 0x33, 0xfc, 0xf8, 0x02,
+ 0x7b, 0xfd, 0x85, 0x03, 0x1d, 0x02, 0x0e, 0xb8, 0xfd, 0xca, 0xfe, 0xf8,
+ 0xfd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x44, 0x00, 0x00, 0x06, 0xed,
+ 0x04, 0x60, 0x00, 0x18, 0x00, 0x00, 0x09, 0x02, 0x23, 0x09, 0x01, 0x23,
+ 0x09, 0x01, 0x21, 0x15, 0x10, 0x07, 0x06, 0x05, 0x35, 0x36, 0x37, 0x36,
+ 0x11, 0x35, 0x21, 0x17, 0x09, 0x01, 0x06, 0xda, 0xfe, 0x94, 0x01, 0x7f,
+ 0xc3, 0xfe, 0xda, 0xfe, 0xdb, 0xc3, 0x01, 0x87, 0xfe, 0xfc, 0xfe, 0x5e,
+ 0x4f, 0x54, 0xfe, 0xea, 0xa4, 0x33, 0x3d, 0x02, 0xa9, 0x01, 0x01, 0x0a,
+ 0x01, 0x0b, 0x04, 0x60, 0xfd, 0xdf, 0xfd, 0xc1, 0x01, 0xb8, 0xfe, 0x48,
+ 0x02, 0x4a, 0x01, 0x83, 0x6f, 0xfe, 0x50, 0xc2, 0xcf, 0x1d, 0x99, 0x1c,
+ 0x7e, 0xb1, 0x01, 0xc5, 0xb7, 0x03, 0xfe, 0x74, 0x01, 0x8f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x06, 0x38, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x01, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21, 0x32, 0x16, 0x15,
+ 0x14, 0x07, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x6b, 0xe4, 0x7f, 0x8b,
+ 0x8b, 0x7f, 0x01, 0x6d, 0x73, 0xfa, 0xe4, 0xb6, 0x01, 0x9a, 0xe2, 0xe7,
+ 0x05, 0x01, 0x44, 0xc3, 0xfe, 0x50, 0x01, 0xcd, 0xc3, 0x05, 0x2f, 0xfd,
+ 0xcf, 0x92, 0x87, 0x86, 0x92, 0xfd, 0xb3, 0x8a, 0xfd, 0xa8, 0x05, 0xd5,
+ 0xe3, 0xdb, 0x30, 0x2a, 0x02, 0x18, 0xfd, 0x33, 0xfc, 0xf8, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xfe, 0x56, 0x05, 0xfe, 0x04, 0x7b, 0x00, 0x18,
+ 0x00, 0x20, 0x00, 0x00, 0x09, 0x02, 0x23, 0x01, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x26, 0x27, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x01, 0x00, 0x10, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20,
+ 0x05, 0xeb, 0xfe, 0x93, 0x01, 0x80, 0xc4, 0xfe, 0xea, 0x17, 0x53, 0x72,
+ 0xb8, 0x6f, 0x9f, 0x34, 0xa7, 0xa7, 0x34, 0x9f, 0x6f, 0xb8, 0x72, 0x4c,
+ 0x1a, 0x01, 0x07, 0xfe, 0x5a, 0x96, 0xfe, 0xf9, 0x96, 0x96, 0x01, 0x07,
+ 0x04, 0x60, 0xfd, 0xdf, 0xfd, 0xc1, 0x01, 0xa1, 0xa8, 0x74, 0xa2, 0x61,
+ 0x64, 0xfd, 0xae, 0x06, 0x0a, 0xaa, 0x64, 0x61, 0xa2, 0x6b, 0x97, 0x01,
+ 0x89, 0xfd, 0x04, 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x06, 0xf6, 0x05, 0xd5, 0x00, 0x15,
+ 0x00, 0x1d, 0x00, 0x00, 0x33, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x23, 0x01, 0x12, 0x10, 0x16, 0x33, 0x21, 0x11, 0x21, 0x22, 0x7a, 0x01,
+ 0x70, 0x5a, 0xe7, 0xea, 0xe8, 0x04, 0x6b, 0xfd, 0x66, 0x02, 0x7e, 0xfd,
+ 0x82, 0x02, 0xaa, 0xfc, 0x9e, 0xf1, 0xfe, 0x9d, 0x32, 0x86, 0x83, 0x01,
+ 0x19, 0xfe, 0xe7, 0x83, 0x02, 0x8d, 0x1a, 0xa9, 0xd7, 0xce, 0xe0, 0xaa,
+ 0xfe, 0x46, 0xaa, 0xfd, 0xe3, 0xaa, 0x02, 0x77, 0xfd, 0x89, 0x04, 0xaa,
+ 0xfe, 0xfa, 0x87, 0x02, 0x12, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x68,
+ 0xff, 0xe3, 0x06, 0xb8, 0x04, 0x7b, 0x00, 0x1f, 0x00, 0x26, 0x00, 0x2f,
+ 0x00, 0x00, 0x01, 0x15, 0x21, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x23, 0x01, 0x23, 0x01, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x33, 0x21, 0x36, 0x33, 0x32, 0x12, 0x07, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x25, 0x14, 0x16, 0x3b, 0x01, 0x11, 0x23,
+ 0x22, 0x06, 0x06, 0xb8, 0xfd, 0x06, 0x0b, 0xb9, 0xa4, 0x60, 0xb3, 0x58,
+ 0x59, 0xbb, 0x60, 0xf2, 0x8d, 0x89, 0x03, 0xce, 0xfe, 0xd7, 0xb3, 0x01,
+ 0x34, 0x68, 0x8b, 0xc2, 0xc3, 0x02, 0x28, 0x4d, 0x5d, 0xcb, 0xed, 0xa6,
+ 0x02, 0x94, 0x7a, 0x8b, 0xa7, 0x0c, 0xfd, 0x90, 0x73, 0x6b, 0xe0, 0xe0,
+ 0x6b, 0x73, 0x02, 0x5e, 0x5a, 0xbe, 0xc7, 0x34, 0x34, 0xae, 0x2a, 0x2c,
+ 0x9c, 0x98, 0xc2, 0xfe, 0x27, 0x01, 0xeb, 0x1a, 0x89, 0x8f, 0xa2, 0xa1,
+ 0x1b, 0xfe, 0xdd, 0xc4, 0x97, 0xb4, 0xae, 0x9e, 0x8a, 0x53, 0x5e, 0x01,
+ 0x61, 0x5c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xfe, 0xf8, 0x05, 0x44,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x34, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x54, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x04, 0x60, 0x10, 0x06, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xf9, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x00, 0x01, 0x33,
+ 0x17, 0x37, 0x33, 0x01, 0x17, 0x23, 0x27, 0x07, 0x01, 0x23, 0x01, 0x03,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x27, 0x02, 0x2c, 0x7a, 0x88, 0xc6,
+ 0xea, 0xfe, 0xc6, 0xb4, 0x80, 0x74, 0x8e, 0x02, 0x23, 0xc6, 0xfe, 0x2d,
+ 0xf5, 0xb6, 0xb6, 0x01, 0x84, 0xc5, 0x05, 0x8a, 0x97, 0xe2, 0xfe, 0x9b,
+ 0xc8, 0x80, 0xa1, 0xfc, 0x79, 0x03, 0x01, 0xfe, 0xe9, 0xfe, 0x16, 0x05,
+ 0xd5, 0xfd, 0x1e, 0x01, 0xb8, 0xdc, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x1d, 0x04, 0x60, 0x00, 0x13, 0x00, 0x00, 0x01, 0x33,
+ 0x17, 0x37, 0x33, 0x07, 0x17, 0x23, 0x27, 0x07, 0x01, 0x23, 0x01, 0x07,
+ 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x01, 0xfc, 0x7e, 0x3b, 0x6a, 0xcc,
+ 0xcf, 0x84, 0x80, 0x44, 0x73, 0x01, 0xb3, 0xb9, 0xfe, 0x9a, 0xb1, 0xa5,
+ 0xa5, 0x01, 0x2a, 0x04, 0x29, 0x40, 0x77, 0xe9, 0x93, 0x4c, 0x81, 0xfd,
+ 0x51, 0x02, 0x35, 0xc8, 0xfe, 0x93, 0x04, 0x60, 0xfd, 0xf2, 0x01, 0x50,
+ 0x00, 0x01, 0x00, 0x4b, 0xfe, 0x66, 0x07, 0x9b, 0x05, 0xd5, 0x00, 0x25,
+ 0x00, 0x00, 0x33, 0x35, 0x36, 0x37, 0x12, 0x11, 0x35, 0x21, 0x11, 0x21,
+ 0x32, 0x17, 0x16, 0x15, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x15, 0x10, 0x03, 0x06, 0x4c, 0xc3, 0x38, 0x4e, 0x03, 0x1f, 0x01, 0x78,
+ 0xa7, 0x66, 0x62, 0xb8, 0xcd, 0x44, 0x37, 0x79, 0x32, 0x32, 0x70, 0x6f,
+ 0xfe, 0xad, 0xb6, 0xfe, 0x4c, 0x5c, 0x58, 0xaa, 0x2f, 0xa4, 0x01, 0x02,
+ 0x02, 0x58, 0xfe, 0xfd, 0x9c, 0x77, 0x72, 0xee, 0xfe, 0xce, 0xfe, 0xf2,
+ 0xf4, 0xaa, 0x4b, 0x4b, 0xc2, 0x01, 0x22, 0x9f, 0x9e, 0xfd, 0x39, 0x05,
+ 0x2b, 0xb8, 0xfd, 0xca, 0xfe, 0xf8, 0xfd, 0x00, 0x00, 0x01, 0x00, 0x44,
+ 0xfe, 0x56, 0x06, 0x58, 0x04, 0x60, 0x00, 0x27, 0x00, 0x00, 0x33, 0x35,
+ 0x36, 0x37, 0x36, 0x11, 0x35, 0x21, 0x11, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21, 0x15, 0x10,
+ 0x07, 0x06, 0x44, 0xa4, 0x33, 0x3d, 0x02, 0xa9, 0xe1, 0xed, 0x3f, 0x4a,
+ 0x4a, 0x49, 0xa3, 0xae, 0x9b, 0x63, 0x1e, 0x22, 0x22, 0x28, 0x7d, 0xea,
+ 0xa5, 0xfe, 0xa1, 0x4f, 0x54, 0x99, 0x1c, 0x7e, 0xb1, 0x01, 0xc5, 0xb7,
+ 0xfe, 0x17, 0x47, 0x51, 0xe5, 0xfe, 0xf2, 0xd5, 0x61, 0x60, 0x9c, 0x30,
+ 0x37, 0x93, 0x01, 0x08, 0xa6, 0x24, 0x29, 0xfe, 0x19, 0x03, 0xcd, 0x6f,
+ 0xfe, 0x50, 0xc2, 0xcf, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x66, 0x07, 0x9c,
+ 0x05, 0xd5, 0x00, 0x21, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x11, 0x23, 0xb5, 0xb6, 0x02, 0x94, 0xb6, 0x01, 0x77, 0xa8,
+ 0x66, 0x62, 0xb8, 0xcd, 0x45, 0x38, 0x79, 0x32, 0x32, 0x70, 0x6f, 0xfe,
+ 0xad, 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64, 0xfd,
+ 0x9c, 0x77, 0x72, 0xee, 0xfe, 0xce, 0xfe, 0xf2, 0xf4, 0xaa, 0x4b, 0x4b,
+ 0xc2, 0x01, 0x22, 0x9f, 0x9e, 0xfd, 0x39, 0x02, 0xc7, 0xfd, 0x39, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x06, 0x65, 0x04, 0x60, 0x00, 0x23,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x11, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21,
+ 0x11, 0x23, 0xa7, 0xa7, 0x02, 0x19, 0xa7, 0xe1, 0xec, 0x3f, 0x4a, 0x4a,
+ 0x49, 0xa2, 0xae, 0x9b, 0x63, 0x1d, 0x23, 0x23, 0x27, 0x7d, 0xea, 0xa7,
+ 0xfd, 0xe7, 0xa7, 0x04, 0x60, 0xfe, 0x37, 0x01, 0xc9, 0xfe, 0x17, 0x47,
+ 0x51, 0xe5, 0xfe, 0xf2, 0xd5, 0x61, 0x60, 0x9c, 0x30, 0x37, 0x93, 0x01,
+ 0x08, 0xa6, 0x24, 0x29, 0xfe, 0x19, 0x02, 0x04, 0xfd, 0xfc, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x6a, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x33, 0x11,
+ 0x23, 0x11, 0x03, 0xff, 0xfd, 0x6c, 0xb6, 0x04, 0x00, 0xb5, 0xb5, 0x05,
+ 0x2b, 0xfa, 0xd5, 0x05, 0xd5, 0xfa, 0xd5, 0xfe, 0x15, 0x01, 0x41, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x04, 0xb4, 0x04, 0x60, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x04, 0x0e, 0xa5, 0xa5, 0xa7, 0xfd, 0xe7, 0xa7, 0x04, 0x60,
+ 0xfc, 0x39, 0xfe, 0x4c, 0x01, 0x1b, 0x03, 0xcd, 0xfc, 0x33, 0x04, 0x60,
+ 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c, 0x04, 0x60, 0x00, 0x07,
+ 0x00, 0x0a, 0x00, 0x00, 0x21, 0x23, 0x03, 0x21, 0x03, 0x23, 0x01, 0x33,
+ 0x01, 0x21, 0x03, 0x04, 0x0c, 0xb0, 0x5b, 0xfe, 0x41, 0x5c, 0xaf, 0x01,
+ 0x7a, 0xe1, 0xfe, 0xe3, 0x01, 0x59, 0xad, 0x01, 0x13, 0xfe, 0xed, 0x04,
+ 0x60, 0xfd, 0x47, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09,
+ 0x00, 0x00, 0x04, 0xd2, 0x04, 0x60, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00,
+ 0x33, 0x01, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x21, 0x03, 0x01, 0x03, 0x33, 0x11, 0x0a, 0x01, 0xaa, 0x03,
+ 0x12, 0xfe, 0x2a, 0x01, 0xc2, 0xfe, 0x3e, 0x01, 0xe2, 0xfd, 0x77, 0xfe,
+ 0xde, 0x68, 0x01, 0x71, 0xd1, 0xea, 0x04, 0x60, 0x94, 0xfe, 0xd3, 0x94,
+ 0xfe, 0x88, 0x93, 0x01, 0x13, 0xfe, 0xed, 0x03, 0xcd, 0xfd, 0xda, 0x02,
+ 0x26, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0xb1,
+ 0x04, 0x7b, 0x00, 0x34, 0x00, 0x3d, 0x00, 0x4a, 0x00, 0x00, 0x25, 0x0e,
+ 0x01, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x21, 0x2e, 0x01, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x25, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x1d,
+ 0x01, 0x03, 0xa0, 0x43, 0xbf, 0x76, 0xcc, 0x76, 0x77, 0x02, 0xf9, 0x0b,
+ 0xb7, 0xa5, 0x5e, 0x5a, 0x5a, 0x5a, 0x5a, 0xbc, 0x5f, 0x96, 0x70, 0x70,
+ 0x45, 0x41, 0xc3, 0x81, 0xaa, 0x5e, 0x5f, 0x73, 0x71, 0xe2, 0xe8, 0x4b,
+ 0x4b, 0x88, 0x57, 0xa3, 0x4c, 0x5b, 0x56, 0x55, 0x51, 0x80, 0x5f, 0x61,
+ 0xfd, 0x45, 0x01, 0x4b, 0x4a, 0x7b, 0x8a, 0x52, 0x54, 0x0d, 0x01, 0x45,
+ 0xc8, 0x9b, 0x3a, 0x3a, 0x64, 0x8a, 0x52, 0x54, 0x9b, 0x5a, 0x5e, 0x91,
+ 0x92, 0xfa, 0x5a, 0xbf, 0xc8, 0x1b, 0x1a, 0x35, 0xae, 0x2a, 0x2c, 0x3d,
+ 0x3c, 0x77, 0x78, 0x78, 0x5d, 0x5e, 0xa8, 0xbd, 0x60, 0x60, 0x12, 0x7f,
+ 0x46, 0x45, 0x2e, 0x2e, 0xaa, 0x27, 0x14, 0x13, 0x30, 0x30, 0x01, 0x87,
+ 0x97, 0x5a, 0x5a, 0x57, 0x57, 0x9e, 0x60, 0x66, 0x7b, 0x62, 0x3a, 0x39,
+ 0x6d, 0x6c, 0xb4, 0x29, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x03, 0xd2,
+ 0x04, 0x60, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x23, 0x00, 0x00, 0x25, 0x32,
+ 0x35, 0x34, 0x2b, 0x01, 0x15, 0x33, 0x15, 0x23, 0x15, 0x01, 0x34, 0x2b,
+ 0x01, 0x11, 0x33, 0x32, 0x37, 0x14, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06,
+ 0x23, 0x21, 0x35, 0x23, 0x35, 0x33, 0x11, 0x21, 0x32, 0x16, 0x02, 0x39,
+ 0xe8, 0xe8, 0xec, 0xc6, 0xc6, 0x01, 0xae, 0xd4, 0xda, 0xda, 0xd4, 0xa7,
+ 0xc1, 0x72, 0x7e, 0xcf, 0xc1, 0xfe, 0x66, 0x6f, 0x6f, 0x01, 0x8b, 0xb1,
+ 0xbf, 0x99, 0xb5, 0xb4, 0x66, 0xa4, 0x5f, 0x02, 0x9d, 0x91, 0xfe, 0xda,
+ 0xaa, 0xd0, 0x1f, 0x18, 0x98, 0x72, 0x96, 0xa4, 0xf8, 0xa4, 0x02, 0xc4,
+ 0x90, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x46, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf7, 0x04, 0x60, 0x00, 0x08, 0x00, 0x11, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x25, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x29, 0x01, 0x01, 0x4e, 0x7f, 0xc3, 0xb7, 0xb7,
+ 0xc3, 0xfe, 0xda, 0x01, 0x18, 0x01, 0x26, 0x01, 0x11, 0xfe, 0xed, 0xfe,
+ 0xdc, 0xfe, 0xe8, 0x03, 0xcd, 0xfc, 0xc7, 0xc7, 0xd6, 0xd5, 0xc7, 0x93,
+ 0xfe, 0xf1, 0xfe, 0xe0, 0xfe, 0xdf, 0xfe, 0xf0, 0x00, 0x02, 0x00, 0x20,
+ 0x00, 0x00, 0x03, 0xf7, 0x04, 0x60, 0x00, 0x0c, 0x00, 0x19, 0x00, 0x00,
+ 0x13, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x29, 0x01, 0x11, 0x23, 0x35,
+ 0x33, 0x21, 0x15, 0x23, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b,
+ 0x01, 0x11, 0xa7, 0x01, 0x18, 0x01, 0x26, 0x01, 0x11, 0xfe, 0xed, 0xfe,
+ 0xdc, 0xfe, 0xe8, 0x87, 0x87, 0x01, 0x55, 0xae, 0x7f, 0xc3, 0xb7, 0xb7,
+ 0xc3, 0x7f, 0x04, 0x60, 0xfe, 0xf1, 0xfe, 0xe0, 0xfe, 0xdf, 0xfe, 0xf0,
+ 0x01, 0xf5, 0xa4, 0xa4, 0xfe, 0x9f, 0xc7, 0xd6, 0xd5, 0xc7, 0xfe, 0xcc,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x31, 0x04, 0x60, 0x00, 0x0b,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0xa7, 0x02, 0x7e, 0xfe, 0x2a, 0x01, 0xc1, 0xfe, 0x3f, 0x01,
+ 0xe1, 0xfd, 0x77, 0x04, 0x60, 0x94, 0xfe, 0xd3, 0x94, 0xfe, 0x88, 0x93,
+ 0x00, 0x01, 0x00, 0x75, 0xff, 0xe3, 0x03, 0x65, 0x04, 0x7c, 0x00, 0x31,
+ 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x02, 0x79, 0x65, 0x36, 0x36, 0x67, 0x66, 0xb0,
+ 0x45, 0x99, 0x58, 0x57, 0x48, 0x49, 0x40, 0x6b, 0x3e, 0x40, 0x3e, 0x3c,
+ 0x68, 0x8c, 0x85, 0x7c, 0x40, 0x47, 0x4c, 0x4c, 0x88, 0x54, 0x4d, 0x4c,
+ 0x40, 0x51, 0x4c, 0x4c, 0x48, 0xd6, 0xe8, 0x7c, 0x02, 0x03, 0x18, 0x41,
+ 0x40, 0x5d, 0x8d, 0x4f, 0x4e, 0x18, 0x18, 0xa7, 0x1d, 0x0d, 0x0d, 0x2e,
+ 0x2e, 0x40, 0x46, 0x2d, 0x2c, 0x98, 0x33, 0x38, 0x58, 0x5a, 0x38, 0x38,
+ 0x12, 0x13, 0x25, 0xab, 0x1c, 0x0e, 0x0e, 0xb6, 0xad, 0x6c, 0x92, 0x00,
+ 0x00, 0x02, 0x00, 0xad, 0xfe, 0x4c, 0x01, 0x54, 0x04, 0x60, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0x11, 0x35, 0x33, 0x15,
+ 0xae, 0xa5, 0xa5, 0xa5, 0x04, 0x60, 0xfb, 0xa0, 0xfe, 0x4c, 0xe9, 0xe9,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0xe3, 0x02, 0x3c, 0x04, 0x60, 0x00, 0x10,
+ 0x00, 0x00, 0x3d, 0x01, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x10, 0x06, 0x23, 0x22, 0x26, 0x3d, 0x84, 0x46, 0x5d, 0x29,
+ 0x27, 0x88, 0x8f, 0xa7, 0x40, 0x81, 0x3d, 0xb9, 0x3c, 0x3d, 0x4d, 0x46,
+ 0xd7, 0x02, 0x79, 0xfd, 0x87, 0xfe, 0xe6, 0xea, 0x2c, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x26, 0x04, 0x60, 0x10, 0x06,
+ 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x03, 0x96,
+ 0x04, 0x7b, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33, 0x11, 0x37, 0x17, 0x07,
+ 0x11, 0x21, 0x15, 0x21, 0x11, 0x07, 0x27, 0x37, 0xa7, 0xa7, 0x7b, 0x45,
+ 0xc0, 0x02, 0x48, 0xfd, 0x11, 0x63, 0x42, 0xa5, 0x04, 0x7b, 0xfe, 0x64,
+ 0x61, 0x6a, 0x97, 0xfe, 0x6b, 0xaa, 0x01, 0xbc, 0x4e, 0x6a, 0x83, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc8, 0x04, 0x60, 0x10, 0x06,
+ 0x03, 0xd0, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x07,
+ 0x04, 0x60, 0x10, 0x06, 0x03, 0xcc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90, 0x04, 0x7b, 0x10, 0x06,
+ 0x02, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0x00, 0x2d, 0x04, 0x89,
+ 0x04, 0x31, 0x00, 0x0a, 0x00, 0x16, 0x00, 0x00, 0x01, 0x34, 0x26, 0x20,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x14, 0x00, 0x23, 0x22,
+ 0x00, 0x35, 0x34, 0x00, 0x33, 0x32, 0x00, 0x03, 0xfc, 0xd0, 0xfe, 0x96,
+ 0xd0, 0xd1, 0xb4, 0xb3, 0xd2, 0x8c, 0xfe, 0xe7, 0xf8, 0xf8, 0xfe, 0xe7,
+ 0x01, 0x19, 0xf8, 0xf8, 0x01, 0x19, 0x02, 0x2f, 0x94, 0xac, 0xab, 0x95,
+ 0x93, 0xac, 0xac, 0x93, 0xf0, 0xfe, 0xee, 0x01, 0x12, 0xf0, 0xf1, 0x01,
+ 0x11, 0xfe, 0xef, 0x00, 0x00, 0x01, 0x00, 0x65, 0x00, 0x74, 0x04, 0x89,
+ 0x03, 0xea, 0x00, 0x18, 0x00, 0x00, 0x25, 0x23, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x20, 0x06, 0x15, 0x14, 0x16, 0x17, 0x23, 0x2e, 0x01, 0x35, 0x34,
+ 0x00, 0x33, 0x32, 0x00, 0x11, 0x14, 0x06, 0x04, 0x49, 0x9b, 0x27, 0x27,
+ 0xcd, 0xfe, 0x8f, 0xcc, 0x27, 0x27, 0x9a, 0x20, 0x20, 0x01, 0x1e, 0xf3,
+ 0xf7, 0x01, 0x1a, 0x1f, 0x74, 0x4e, 0x9d, 0x50, 0xb3, 0xc6, 0xc6, 0xb3,
+ 0x50, 0x9d, 0x4e, 0x4d, 0xa5, 0x5d, 0xfd, 0x01, 0x2a, 0xfe, 0xd3, 0xfe,
+ 0xfa, 0x55, 0xa2, 0x00, 0x00, 0x03, 0x00, 0x2d, 0x00, 0x05, 0x04, 0xc6,
+ 0x04, 0x59, 0x00, 0x09, 0x00, 0x13, 0x00, 0x2b, 0x00, 0x00, 0x09, 0x01,
+ 0x0e, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x3e, 0x01, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x27, 0x3e, 0x01, 0x33, 0x32, 0x00,
+ 0x15, 0x14, 0x06, 0x07, 0x17, 0x07, 0x27, 0x0e, 0x01, 0x23, 0x22, 0x00,
+ 0x35, 0x34, 0x36, 0x37, 0x27, 0x37, 0x03, 0x53, 0xfd, 0xec, 0x26, 0x24,
+ 0xd1, 0xb4, 0x47, 0x69, 0x8b, 0x25, 0x24, 0xd3, 0xbe, 0x41, 0x63, 0x29,
+ 0x88, 0x45, 0xb1, 0x6c, 0xf8, 0x01, 0x19, 0x2e, 0x2f, 0x97, 0x47, 0xa1,
+ 0x45, 0xb2, 0x6c, 0xf8, 0xfe, 0xe6, 0x2f, 0x2e, 0x97, 0x46, 0x01, 0x18,
+ 0x01, 0xe7, 0x29, 0x67, 0x41, 0x93, 0xac, 0x14, 0x5c, 0x2a, 0x67, 0x3e,
+ 0x97, 0xa9, 0x13, 0x14, 0x7d, 0x36, 0x36, 0xfe, 0xef, 0xf1, 0x5d, 0x9f,
+ 0x43, 0x8b, 0x5f, 0x92, 0x35, 0x36, 0x01, 0x12, 0xf0, 0x60, 0xa1, 0x3f,
+ 0x8b, 0x60, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65, 0xff, 0xe3, 0x06, 0xfd,
+ 0x04, 0x7b, 0x00, 0x26, 0x00, 0x2f, 0x00, 0x3d, 0x00, 0x00, 0x13, 0x35,
+ 0x21, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x11, 0x10,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x0e, 0x01, 0x23, 0x22, 0x27,
+ 0x26, 0x37, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x01, 0x32,
+ 0x37, 0x36, 0x10, 0x27, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x66, 0x02, 0xf9, 0x0b, 0x5c, 0x5b, 0xa5, 0x5f, 0xb4, 0x59, 0x5a, 0xbc,
+ 0x5f, 0x90, 0xda, 0x49, 0x40, 0x5d, 0x5f, 0x7e, 0xd9, 0x7a, 0x7b, 0x7b,
+ 0x7a, 0xd9, 0x7e, 0x5f, 0x5f, 0x3c, 0x46, 0xd1, 0x80, 0xcc, 0x77, 0x76,
+ 0xa6, 0x02, 0x4a, 0x4a, 0x7b, 0x8a, 0x52, 0x54, 0x0d, 0x01, 0xd4, 0x85,
+ 0x4d, 0x4e, 0x4d, 0x4d, 0x86, 0x85, 0x9a, 0x4d, 0x4d, 0x02, 0x00, 0x5a,
+ 0xbe, 0x64, 0x63, 0x34, 0x34, 0xae, 0x2a, 0x2c, 0x6e, 0x6d, 0x6e, 0x36,
+ 0x37, 0x9d, 0x9c, 0xfe, 0xed, 0xfe, 0xec, 0x9c, 0x9c, 0x37, 0x38, 0x6c,
+ 0x6b, 0x70, 0x91, 0x92, 0xc4, 0x98, 0x5a, 0x59, 0x57, 0x57, 0x9e, 0xfe,
+ 0xb4, 0x73, 0x74, 0x01, 0x92, 0x74, 0x73, 0xe8, 0xc8, 0xc7, 0x74, 0x75,
+ 0x00, 0x01, 0x00, 0x65, 0x02, 0x2f, 0x04, 0x03, 0x04, 0x7b, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x23, 0x10, 0x12,
+ 0x33, 0x32, 0x12, 0x11, 0x03, 0x53, 0x9a, 0x85, 0x85, 0x9b, 0xae, 0xf5,
+ 0xd9, 0xd8, 0xf7, 0x02, 0x2f, 0xc7, 0xe9, 0xe7, 0xc9, 0x01, 0x14, 0x01,
+ 0x38, 0xfe, 0xc8, 0xfe, 0xec, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x02, 0x2f, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x35, 0x33, 0x10, 0x02, 0x23, 0x22, 0x02, 0x11,
+ 0x01, 0x15, 0x9b, 0x84, 0x86, 0x9a, 0xaf, 0xf6, 0xd9, 0xd8, 0xf6, 0x02,
+ 0x2f, 0xc7, 0xe9, 0xe7, 0xc9, 0xfe, 0xec, 0xfe, 0xc8, 0x01, 0x38, 0x01,
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x87, 0x00, 0x00, 0x03, 0x6b,
+ 0x04, 0x60, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x34, 0x26, 0x23, 0x25, 0x21, 0x32, 0x16, 0x10, 0x06, 0x2b, 0x01,
+ 0x11, 0x23, 0x01, 0x2d, 0xe7, 0x52, 0x59, 0x59, 0x52, 0xfe, 0x74, 0x01,
+ 0x8c, 0xa9, 0xae, 0xae, 0xa9, 0xe7, 0xa5, 0x03, 0xc5, 0xfe, 0x98, 0x5e,
+ 0xac, 0x5e, 0x9b, 0xaa, 0xfe, 0xb6, 0xaa, 0xfe, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x03, 0xa8, 0x04, 0x60, 0x00, 0x16,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x21, 0x11, 0x23, 0x11, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x23, 0x13,
+ 0x36, 0x37, 0x36, 0x01, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x3b, 0x01, 0x01, 0x89, 0x5f, 0x65, 0x60, 0x62, 0xc3, 0x01, 0x5d, 0xa6,
+ 0x99, 0x57, 0x35, 0x35, 0x39, 0x92, 0xaf, 0x9d, 0x2f, 0x2f, 0x30, 0x01,
+ 0xa9, 0xb3, 0x6b, 0x38, 0x3a, 0x3a, 0x38, 0x6b, 0xb3, 0x02, 0x0d, 0x1b,
+ 0x8c, 0x69, 0xa2, 0x51, 0x50, 0xfb, 0xa0, 0x01, 0xd9, 0x25, 0x24, 0x71,
+ 0xfe, 0xe1, 0x01, 0x32, 0x5e, 0x36, 0x36, 0x01, 0xc9, 0x2a, 0x2a, 0x54,
+ 0x53, 0x2b, 0x2b, 0x00, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x03, 0xa8,
+ 0x04, 0x60, 0x00, 0x16, 0x00, 0x21, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26,
+ 0x27, 0x03, 0x33, 0x13, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x11, 0x33, 0x11,
+ 0x21, 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x01, 0x11, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x01, 0x89, 0x31, 0x30, 0x2f, 0x2f,
+ 0x9d, 0xaf, 0x92, 0x39, 0x35, 0x35, 0x57, 0x99, 0xa6, 0xfe, 0xa3, 0xc3,
+ 0x62, 0x60, 0x65, 0x01, 0xd7, 0xb3, 0x6b, 0x38, 0x3a, 0x3a, 0x38, 0x6b,
+ 0x02, 0x53, 0x11, 0x36, 0x36, 0x5e, 0x01, 0x32, 0xfe, 0xe1, 0x71, 0x24,
+ 0x25, 0x01, 0xd9, 0xfb, 0xa0, 0x50, 0x51, 0xa2, 0x69, 0x8c, 0xfe, 0x63,
+ 0x01, 0x51, 0x2b, 0x2b, 0x53, 0x54, 0x2a, 0x2a, 0xff, 0xff, 0x00, 0x36,
+ 0x00, 0x00, 0x03, 0xfc, 0x04, 0x60, 0x10, 0x06, 0x03, 0xd6, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xff, 0xe0, 0x03, 0xac, 0x04, 0x60, 0x00, 0x0f,
+ 0x00, 0x00, 0x24, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x06, 0x20,
+ 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x01, 0xb5, 0xe9, 0x67, 0xa7, 0xc4,
+ 0xfe, 0x83, 0xc4, 0xa7, 0x7d, 0x8e, 0xa2, 0x02, 0xb3, 0xfd, 0x3b, 0xdb,
+ 0xe0, 0xe0, 0xdb, 0x02, 0xc5, 0xfd, 0x4d, 0xa2, 0x00, 0x01, 0x00, 0x9c,
+ 0x00, 0x4c, 0x04, 0xa7, 0x03, 0xf6, 0x00, 0x13, 0x00, 0x00, 0x25, 0x21,
+ 0x35, 0x21, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x21, 0x35, 0x21, 0x15,
+ 0x23, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x02, 0xff, 0xfd, 0x9e, 0x02, 0x5b,
+ 0x90, 0x8f, 0xab, 0x94, 0xfd, 0xc5, 0x03, 0xf0, 0x9b, 0x5c, 0x59, 0xd8,
+ 0x4c, 0xb8, 0x7c, 0x7c, 0x96, 0xac, 0xb8, 0xb8, 0x42, 0xb2, 0x74, 0xc2,
+ 0xc8, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x9c, 0x00, 0x4e, 0x06, 0x2c,
+ 0x03, 0xf8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x35,
+ 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x05, 0x21, 0x35, 0x21, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x21, 0x35, 0x21, 0x15, 0x23, 0x1e, 0x01, 0x15,
+ 0x14, 0x06, 0x9d, 0xb5, 0xb5, 0xb5, 0x03, 0x32, 0xfd, 0x9d, 0x02, 0x5c,
+ 0x8f, 0x90, 0xac, 0x93, 0xfd, 0xc4, 0x03, 0xf0, 0x9a, 0x5b, 0x5a, 0xd8,
+ 0x02, 0x78, 0xcc, 0xcc, 0xfe, 0x7a, 0xca, 0xca, 0xa4, 0xb8, 0x7c, 0x7c,
+ 0x94, 0xae, 0xb8, 0xb8, 0x44, 0xb0, 0x76, 0xc0, 0xc8, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x2a, 0xfe, 0x18, 0x04, 0x33, 0x04, 0x7b, 0x00, 0x26,
+ 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x23, 0x21, 0x35,
+ 0x21, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x21, 0x35, 0x21, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x21, 0x35, 0x21, 0x15, 0x23, 0x1e,
+ 0x01, 0x15, 0x14, 0x07, 0x06, 0x03, 0x59, 0x6f, 0x6b, 0x6e, 0x6f, 0xcb,
+ 0xfd, 0x9f, 0x02, 0x5b, 0x91, 0x8d, 0xab, 0x94, 0xfd, 0xc6, 0x02, 0x5b,
+ 0x92, 0x45, 0x47, 0x57, 0x55, 0x93, 0xfd, 0xc6, 0x03, 0xf0, 0x9c, 0x5c,
+ 0x59, 0x38, 0x38, 0x01, 0x0c, 0x45, 0xc0, 0x82, 0xaf, 0x5f, 0x5f, 0xb9,
+ 0x72, 0x75, 0x8f, 0xa6, 0xb9, 0x39, 0x39, 0x77, 0x8d, 0x53, 0x53, 0xb9,
+ 0xb9, 0x3f, 0xb0, 0x79, 0x7a, 0x56, 0x55, 0x00, 0xff, 0xff, 0x00, 0x36,
+ 0x00, 0x00, 0x04, 0x0c, 0x04, 0x60, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97, 0x04, 0x60, 0x10, 0x06,
+ 0x00, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x79,
+ 0x04, 0x60, 0x10, 0x06, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6c,
+ 0xff, 0xe3, 0x03, 0x5b, 0x04, 0x60, 0x00, 0x17, 0x00, 0x00, 0x37, 0x16,
+ 0x33, 0x32, 0x36, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x13, 0x25, 0x35, 0x21,
+ 0x15, 0x03, 0x32, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x20, 0x27, 0x7c, 0x91,
+ 0xbe, 0x73, 0x77, 0x6f, 0x63, 0x72, 0xef, 0xfe, 0x0c, 0x02, 0xb3, 0xef,
+ 0x3f, 0x88, 0x64, 0xce, 0xfe, 0xa4, 0xb5, 0xbd, 0x42, 0x64, 0xbb, 0x64,
+ 0x90, 0x01, 0x3e, 0x01, 0x93, 0x93, 0xfe, 0xc2, 0x4a, 0x9f, 0x6d, 0xa0,
+ 0xb6, 0x37, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa1, 0x00, 0x00, 0x03, 0x96,
+ 0x04, 0x7b, 0x00, 0x05, 0x00, 0x00, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0xa1, 0x02, 0xf5, 0xfd, 0xc1, 0x04, 0x7b, 0xaa, 0xfc, 0x2f, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c, 0x04, 0x60, 0x10, 0x06,
+ 0x02, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x87, 0x00, 0x00, 0x03, 0x88,
+ 0x04, 0x60, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x03, 0x88, 0xa4, 0xfe, 0x48, 0xa4, 0x04, 0x60, 0xfb, 0xa0,
+ 0x03, 0xb7, 0xfc, 0x49, 0x04, 0x60, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87,
+ 0x00, 0x00, 0x03, 0x6b, 0x04, 0x60, 0x10, 0x06, 0x04, 0xd1, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x51, 0x00, 0x00, 0x03, 0xef, 0x04, 0x60, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x36, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x10, 0x07, 0x06, 0x07, 0x15, 0x23, 0x35, 0x26, 0x27, 0x26, 0x19, 0x01,
+ 0x33, 0x11, 0x14, 0x17, 0x16, 0x17, 0x01, 0xcd, 0xa5, 0x4d, 0x33, 0x4e,
+ 0xae, 0x7a, 0x62, 0xa0, 0xa5, 0x9e, 0x62, 0x7c, 0xb0, 0x4e, 0x33, 0x4b,
+ 0x04, 0x60, 0xfd, 0x31, 0x1a, 0x4d, 0x73, 0xc9, 0x01, 0x2c, 0xfe, 0xd4,
+ 0xfe, 0xec, 0x9c, 0x7d, 0x19, 0xee, 0xee, 0x19, 0x7d, 0x9c, 0x01, 0x14,
+ 0x01, 0x2c, 0xfe, 0xd4, 0xc7, 0x75, 0x4d, 0x1a, 0xff, 0xff, 0x00, 0x44,
+ 0x00, 0x00, 0x04, 0x02, 0x04, 0x60, 0x10, 0x06, 0x03, 0xcf, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x09, 0x02, 0x9c, 0x03, 0x11, 0x05, 0xe0, 0x00, 0x02,
+ 0x00, 0x0a, 0x00, 0x00, 0x01, 0x03, 0x21, 0x03, 0x33, 0x01, 0x23, 0x27,
+ 0x21, 0x07, 0x23, 0x01, 0x8d, 0x9c, 0x01, 0x38, 0xdd, 0x82, 0x01, 0x43,
+ 0x77, 0x4d, 0xfe, 0x82, 0x4d, 0x79, 0x05, 0x71, 0xfe, 0x60, 0x02, 0x0f,
+ 0xfc, 0xbc, 0xd6, 0xd6, 0x00, 0x02, 0x00, 0x04, 0x02, 0x9c, 0x04, 0x21,
+ 0x05, 0xe0, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x01, 0x15, 0x21, 0x15,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x35, 0x21, 0x07, 0x23, 0x01,
+ 0x17, 0x03, 0x21, 0x11, 0x04, 0x16, 0xfe, 0x5c, 0x01, 0x93, 0xfe, 0x6d,
+ 0x01, 0xaf, 0xfd, 0xde, 0xfe, 0xd5, 0x5b, 0x75, 0x01, 0x63, 0x4e, 0xbb,
+ 0x01, 0x05, 0x05, 0xe0, 0x5f, 0xf8, 0x5f, 0xfe, 0xd1, 0x5f, 0xd6, 0xd6,
+ 0x03, 0x44, 0x58, 0xfe, 0x49, 0x01, 0xb7, 0x00, 0x00, 0x03, 0x00, 0x72,
+ 0x02, 0x9c, 0x02, 0xcb, 0x05, 0xe0, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x26,
+ 0x00, 0x00, 0x13, 0x11, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x23, 0x03, 0x15, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x25, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x23, 0x21, 0xe5, 0xb7, 0x5d, 0x2c, 0x2d, 0x2d, 0x2c,
+ 0x5d, 0xb7, 0xa9, 0x54, 0x29, 0x29, 0x29, 0x29, 0x54, 0xfe, 0xe4, 0x01,
+ 0x25, 0x82, 0x47, 0x48, 0x25, 0x24, 0x47, 0x55, 0x5e, 0x9b, 0x8e, 0xfe,
+ 0xd0, 0x04, 0x2b, 0xfe, 0xce, 0x26, 0x26, 0x4d, 0x4f, 0x25, 0x25, 0x01,
+ 0x58, 0xfc, 0x1f, 0x1f, 0x40, 0x3f, 0x20, 0x1f, 0x5d, 0x36, 0x35, 0x64,
+ 0x4c, 0x2e, 0x2d, 0x0b, 0x12, 0x72, 0x55, 0x70, 0x7a, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x72, 0x02, 0x9c, 0x03, 0x3a, 0x05, 0xe0, 0x00, 0x0a,
+ 0x00, 0x15, 0x00, 0x00, 0x13, 0x11, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x27, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x2b, 0x01, 0xe5, 0x8a, 0xaf, 0x52, 0x51, 0x51, 0x52, 0xaf, 0xfd, 0xeb,
+ 0xf7, 0x72, 0x73, 0x73, 0x74, 0xf5, 0xeb, 0x05, 0x83, 0xfd, 0x76, 0x4e,
+ 0x4f, 0xa9, 0xa8, 0x4e, 0x4e, 0x5d, 0x65, 0x65, 0xd7, 0xd8, 0x66, 0x65,
+ 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x02, 0x94, 0x05, 0xe0, 0x00, 0x0b,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x72, 0x02, 0x17, 0xfe, 0x5c, 0x01, 0x93, 0xfe, 0x6d, 0x01,
+ 0xaf, 0xfd, 0xde, 0x05, 0xe0, 0x5f, 0xf8, 0x5f, 0xfe, 0xd1, 0x5f, 0x00,
+ 0x00, 0x01, 0x00, 0x4a, 0x02, 0x9c, 0x02, 0x6d, 0x05, 0xe0, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x35,
+ 0x21, 0x35, 0x02, 0x6c, 0xfd, 0xdf, 0x01, 0xae, 0xfe, 0x6d, 0x01, 0x93,
+ 0xfe, 0x5c, 0x05, 0xe0, 0xfc, 0xbc, 0x5f, 0x01, 0x2f, 0x5f, 0xf8, 0x5f,
+ 0x00, 0x01, 0x00, 0x40, 0x02, 0x8c, 0x03, 0x25, 0x05, 0xef, 0x00, 0x24,
+ 0x00, 0x00, 0x01, 0x35, 0x23, 0x35, 0x21, 0x11, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x36, 0x02, 0xb3, 0xbb, 0x01, 0x2d, 0x43, 0x50, 0x4f, 0x5b,
+ 0xc7, 0x70, 0x70, 0x70, 0x70, 0xc7, 0x53, 0x4a, 0x4a, 0x3f, 0x3f, 0x48,
+ 0x47, 0x4e, 0x9c, 0x4e, 0x4e, 0x4e, 0x4e, 0x9c, 0x3c, 0x5f, 0x03, 0x13,
+ 0xe1, 0x5d, 0xfe, 0x99, 0x2f, 0x17, 0x18, 0x72, 0x73, 0xcc, 0xcd, 0x73,
+ 0x72, 0x14, 0x14, 0x27, 0x79, 0x35, 0x1b, 0x1b, 0x55, 0x56, 0xaa, 0xa9,
+ 0x56, 0x55, 0x14, 0x00, 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x02, 0xf8,
+ 0x05, 0xe0, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x72, 0x73, 0x01, 0x9f, 0x74, 0x74,
+ 0xfe, 0x61, 0x73, 0x05, 0xe0, 0xfe, 0xa9, 0x01, 0x57, 0xfc, 0xbc, 0x01,
+ 0x8e, 0xfe, 0x72, 0x00, 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x00, 0xe5,
+ 0x05, 0xe0, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0x72, 0x73,
+ 0x73, 0x05, 0xe0, 0xfc, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc3,
+ 0x01, 0xb6, 0x00, 0xe5, 0x05, 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x72,
+ 0x73, 0x3b, 0x3a, 0x80, 0x2c, 0x24, 0x4b, 0x3f, 0x05, 0xe0, 0xfc, 0xf6,
+ 0x97, 0x44, 0x45, 0x60, 0x54, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x72,
+ 0x02, 0x9c, 0x03, 0x12, 0x05, 0xe0, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0x72, 0x73, 0x01,
+ 0x7b, 0x94, 0xfe, 0x5c, 0x01, 0xc2, 0x97, 0xfe, 0x6a, 0x73, 0x05, 0xe0,
+ 0xfe, 0x9f, 0x01, 0x61, 0xfe, 0x7a, 0xfe, 0x42, 0x01, 0x93, 0xfe, 0x6d,
+ 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x02, 0x81, 0x05, 0xe0, 0x00, 0x05,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x15, 0x21, 0x72, 0x73, 0x01, 0x9c,
+ 0xfd, 0xf1, 0x05, 0xe0, 0xfd, 0x1b, 0x5f, 0x00, 0x00, 0x01, 0x00, 0x72,
+ 0x02, 0x9c, 0x03, 0x79, 0x05, 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33,
+ 0x1b, 0x01, 0x33, 0x11, 0x23, 0x11, 0x03, 0x23, 0x03, 0x11, 0x23, 0x72,
+ 0xaa, 0xd8, 0xda, 0xaa, 0x6f, 0xda, 0x73, 0xdb, 0x6f, 0x05, 0xe0, 0xfd,
+ 0xc7, 0x02, 0x39, 0xfc, 0xbc, 0x02, 0xde, 0xfd, 0xc3, 0x02, 0x3d, 0xfd,
+ 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x02, 0xf4,
+ 0x05, 0xe0, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33, 0x01, 0x11, 0x33, 0x11,
+ 0x23, 0x01, 0x11, 0x23, 0x72, 0x9a, 0x01, 0x78, 0x6f, 0x9b, 0xfe, 0x89,
+ 0x6f, 0x05, 0xe0, 0xfd, 0x45, 0x02, 0xbb, 0xfc, 0xbc, 0x02, 0xbb, 0xfd,
+ 0x45, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x72, 0x02, 0x9c, 0x02, 0xf4,
+ 0x05, 0xe0, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x23,
+ 0x11, 0x33, 0x11, 0x01, 0x02, 0xf3, 0x6f, 0xfe, 0x88, 0x9a, 0x6f, 0x01,
+ 0x77, 0x05, 0xe0, 0xfc, 0xbc, 0x02, 0xbb, 0xfd, 0x45, 0x03, 0x44, 0xfd,
+ 0x45, 0x02, 0xbb, 0x00, 0x00, 0x02, 0x00, 0x40, 0x02, 0x8c, 0x03, 0x51,
+ 0x05, 0xef, 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x24, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x20, 0x27, 0x26, 0x10,
+ 0x01, 0xc9, 0x7c, 0x4a, 0x49, 0x49, 0x4a, 0x7c, 0x7d, 0x49, 0x49, 0x49,
+ 0x49, 0xfe, 0xd1, 0x01, 0x64, 0x6b, 0x6b, 0x6b, 0x6b, 0xfe, 0x9c, 0x6b,
+ 0x6b, 0x05, 0x93, 0x5b, 0x5c, 0x9f, 0x9e, 0x5c, 0x5b, 0x5b, 0x5c, 0x9e,
+ 0x9f, 0x5c, 0x5b, 0x5c, 0x76, 0x76, 0xc6, 0xc5, 0x76, 0x76, 0x75, 0x76,
+ 0x01, 0x8c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0xeb,
+ 0x05, 0xef, 0x00, 0x0f, 0x00, 0x40, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x03, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x35, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x01, 0x95, 0x67, 0x3d, 0x3d, 0x3d, 0x3d, 0x67, 0x68, 0x3e, 0x3c,
+ 0x3c, 0x3c, 0x8a, 0x4a, 0x31, 0x30, 0x36, 0x22, 0x73, 0x5f, 0x36, 0x37,
+ 0x2b, 0x3e, 0x4a, 0x82, 0x54, 0x50, 0x31, 0x30, 0x56, 0x61, 0x36, 0x37,
+ 0x59, 0x57, 0xa6, 0xa5, 0xb0, 0x37, 0x37, 0x61, 0x61, 0x26, 0x31, 0x4a,
+ 0x42, 0x92, 0x04, 0x29, 0x2b, 0x2b, 0x4c, 0x4b, 0x2c, 0x2b, 0x2b, 0x2c,
+ 0x4b, 0x4c, 0x2b, 0x2b, 0x01, 0x35, 0x02, 0x23, 0x23, 0x2c, 0x26, 0x29,
+ 0x19, 0x24, 0x25, 0x4c, 0x59, 0x18, 0x2b, 0x04, 0x38, 0x3a, 0x36, 0x69,
+ 0x47, 0x32, 0x32, 0x12, 0x13, 0x37, 0x38, 0x50, 0x79, 0x41, 0x41, 0x82,
+ 0x79, 0x50, 0x38, 0x37, 0x13, 0x12, 0x27, 0x32, 0x31, 0x49, 0x2e, 0x2a,
+ 0x00, 0x02, 0x00, 0x72, 0x02, 0x9c, 0x02, 0x95, 0x05, 0xe0, 0x00, 0x09,
+ 0x00, 0x15, 0x00, 0x00, 0x13, 0x11, 0x33, 0x32, 0x37, 0x36, 0x34, 0x27,
+ 0x26, 0x23, 0x25, 0x21, 0x32, 0x17, 0x16, 0x14, 0x07, 0x06, 0x2b, 0x01,
+ 0x11, 0x23, 0xe5, 0x90, 0x50, 0x2b, 0x2c, 0x2c, 0x2b, 0x50, 0xfe, 0xfd,
+ 0x01, 0x03, 0x8e, 0x49, 0x49, 0x49, 0x49, 0x8e, 0x90, 0x73, 0x05, 0x83,
+ 0xfe, 0xc6, 0x29, 0x29, 0x96, 0x29, 0x29, 0x5d, 0x3f, 0x40, 0xf6, 0x40,
+ 0x3f, 0xfe, 0xb0, 0x00, 0x00, 0x02, 0x00, 0x72, 0x02, 0x9c, 0x03, 0x06,
+ 0x05, 0xe0, 0x00, 0x17, 0x00, 0x20, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16,
+ 0x1f, 0x01, 0x23, 0x27, 0x26, 0x27, 0x26, 0x2b, 0x01, 0x11, 0x23, 0x11,
+ 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x02, 0x04, 0x25, 0x22, 0x23, 0x23, 0x74,
+ 0x7a, 0x6d, 0x2a, 0x27, 0x28, 0x44, 0x7c, 0x73, 0x01, 0x03, 0x91, 0x48,
+ 0x47, 0x25, 0x26, 0xfe, 0x9b, 0x90, 0x52, 0x55, 0x55, 0x52, 0x04, 0x24,
+ 0x0c, 0x29, 0x28, 0x47, 0xe4, 0xd6, 0x54, 0x1c, 0x1b, 0xfe, 0x9f, 0x03,
+ 0x44, 0x3c, 0x3c, 0x79, 0x4f, 0x34, 0x34, 0x01, 0x4b, 0xfe, 0xd7, 0x4c,
+ 0x49, 0x4a, 0x4a, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x02, 0x9c, 0x02, 0xc9,
+ 0x05, 0xe0, 0x00, 0x07, 0x00, 0x00, 0x03, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x04, 0x02, 0xcd, 0xfe, 0xd3, 0x73, 0xfe, 0xd3, 0x05, 0xe0,
+ 0x5f, 0xfd, 0x1b, 0x02, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x64,
+ 0x02, 0x8c, 0x02, 0xed, 0x05, 0xe0, 0x00, 0x13, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x35, 0x65, 0x73, 0x63, 0x6e, 0x6f, 0x31,
+ 0x31, 0x73, 0x52, 0x52, 0xfe, 0xc0, 0x52, 0x52, 0x05, 0xe0, 0xfe, 0x04,
+ 0x86, 0x76, 0x3b, 0x3b, 0x86, 0x01, 0xfc, 0xfd, 0xf6, 0xa3, 0x54, 0x53,
+ 0x53, 0x54, 0xa3, 0x00, 0x00, 0x01, 0x00, 0x26, 0x02, 0x9c, 0x04, 0x57,
+ 0x05, 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33, 0x1b, 0x01, 0x33, 0x1b,
+ 0x01, 0x33, 0x03, 0x23, 0x0b, 0x01, 0x23, 0x27, 0x73, 0xb2, 0xb1, 0x81,
+ 0xb2, 0xb2, 0x75, 0xd6, 0x90, 0xb2, 0xb5, 0x90, 0x05, 0xe0, 0xfd, 0x3d,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0xc3, 0xfc, 0xbc, 0x02, 0xd6, 0xfd, 0x2a,
+ 0x00, 0x02, 0x00, 0x45, 0x02, 0x8c, 0x02, 0x5e, 0x05, 0x1e, 0x00, 0x0c,
+ 0x00, 0x2b, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x37, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x01, 0x8e, 0x7e, 0x31, 0x31, 0x4a, 0x3e, 0x57, 0x34, 0x35, 0x68, 0x68,
+ 0x24, 0x35, 0x36, 0x4c, 0x63, 0x73, 0x90, 0x8f, 0x92, 0x5f, 0x56, 0x36,
+ 0x34, 0x33, 0x30, 0x3a, 0x36, 0x35, 0x33, 0x8a, 0x44, 0x44, 0x03, 0xd7,
+ 0x1c, 0x1d, 0x45, 0x37, 0x40, 0x3d, 0x3d, 0x64, 0x17, 0x2b, 0xfe, 0x9a,
+ 0x5f, 0x39, 0x1b, 0x1b, 0x6c, 0x5b, 0x69, 0x6c, 0x0a, 0x47, 0x4e, 0x0d,
+ 0x0d, 0x1a, 0x60, 0x15, 0x0b, 0x0b, 0x46, 0x47, 0x00, 0x02, 0x00, 0x45,
+ 0x02, 0x8c, 0x02, 0x5e, 0x05, 0x1e, 0x00, 0x0c, 0x00, 0x2d, 0x00, 0x00,
+ 0x01, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x1d,
+ 0x01, 0x07, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x01, 0x16,
+ 0x7e, 0x31, 0x31, 0x4a, 0x3f, 0x56, 0x34, 0x35, 0x69, 0x69, 0x24, 0x35,
+ 0x36, 0x4c, 0x62, 0x3a, 0x39, 0x48, 0x47, 0x8f, 0x92, 0x5f, 0x56, 0x36,
+ 0x34, 0x33, 0x30, 0x3a, 0x36, 0x36, 0x32, 0x8a, 0x44, 0x45, 0x03, 0xd3,
+ 0x1c, 0x1d, 0x45, 0x37, 0x40, 0x3d, 0x3c, 0x65, 0x17, 0x2b, 0x01, 0x66,
+ 0x5f, 0x39, 0x1b, 0x1b, 0x36, 0x36, 0x5a, 0x6a, 0x36, 0x36, 0x0a, 0x47,
+ 0x4e, 0x0d, 0x0d, 0x1a, 0x60, 0x15, 0x0c, 0x0a, 0x46, 0x47, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x78, 0x05, 0x1e, 0x00, 0x13,
+ 0x00, 0x1f, 0x00, 0x00, 0x01, 0x35, 0x33, 0x11, 0x23, 0x35, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x04, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36, 0x34, 0x27, 0x26, 0x22, 0x07,
+ 0x02, 0x0f, 0x69, 0x69, 0x21, 0x31, 0x33, 0x46, 0x73, 0x49, 0x48, 0x48,
+ 0x49, 0x73, 0x46, 0x33, 0x31, 0xfe, 0xbe, 0x2f, 0x2f, 0xa6, 0x30, 0x2f,
+ 0x2f, 0x30, 0xa6, 0x2f, 0x04, 0xb0, 0x5f, 0xfd, 0x8d, 0x5e, 0x38, 0x1b,
+ 0x1b, 0x5a, 0x5b, 0x01, 0x28, 0x5b, 0x5a, 0x1b, 0x1b, 0xa1, 0xe4, 0x41,
+ 0x40, 0x40, 0x41, 0xe4, 0x41, 0x40, 0x40, 0x00, 0x00, 0x03, 0x00, 0x45,
+ 0x02, 0x8c, 0x04, 0x38, 0x05, 0x1e, 0x00, 0x33, 0x00, 0x3c, 0x00, 0x4a,
+ 0x00, 0x00, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x21,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x2b, 0x01, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x25, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x3f, 0x01, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x1d, 0x01, 0x02, 0x49, 0x2a, 0x79, 0x4b, 0x7f, 0x4b,
+ 0x4c, 0x01, 0xe0, 0x06, 0x3a, 0x3a, 0x68, 0x3a, 0x72, 0x39, 0x39, 0x3b,
+ 0x3b, 0x3b, 0x60, 0x46, 0x46, 0x2c, 0x29, 0x3d, 0x3d, 0x52, 0x6b, 0x77,
+ 0x48, 0x47, 0x8f, 0x92, 0x2f, 0x30, 0x55, 0x37, 0x67, 0x2f, 0x38, 0x6c,
+ 0x34, 0x50, 0x78, 0xfe, 0x47, 0x01, 0x2e, 0x2f, 0x4d, 0x57, 0x35, 0x34,
+ 0x08, 0xcd, 0x7f, 0x30, 0x31, 0x25, 0x24, 0x3f, 0x57, 0x35, 0x34, 0x02,
+ 0xf3, 0x33, 0x34, 0x51, 0x52, 0x8c, 0x32, 0x6b, 0x38, 0x38, 0x1e, 0x1d,
+ 0x61, 0x18, 0x0c, 0x0c, 0x22, 0x21, 0x43, 0x43, 0x22, 0x21, 0x68, 0x5e,
+ 0x6a, 0x36, 0x36, 0x0a, 0x47, 0x27, 0x27, 0x1a, 0x1a, 0x60, 0x15, 0x16,
+ 0x36, 0xda, 0x54, 0x32, 0x33, 0x31, 0x31, 0x58, 0x36, 0x1c, 0x1d, 0x45,
+ 0x37, 0x20, 0x20, 0x3d, 0x3c, 0x65, 0x17, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0x02, 0x8c, 0x02, 0xa2, 0x06, 0x03, 0x00, 0x0b, 0x00, 0x1d, 0x00, 0x00,
+ 0x00, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x14, 0x17, 0x16, 0x32, 0x37,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x15, 0x23, 0x11, 0x33, 0x02, 0x35, 0x2f, 0x2f, 0xa6, 0x30,
+ 0x2e, 0x2e, 0x30, 0xa6, 0x2f, 0xfe, 0xcd, 0x20, 0x65, 0x45, 0x74, 0x48,
+ 0x48, 0x48, 0x48, 0x74, 0x45, 0x65, 0x20, 0x6a, 0x6a, 0x03, 0x63, 0xe4,
+ 0x40, 0x41, 0x41, 0x40, 0xe4, 0x40, 0x41, 0x41, 0x01, 0x8d, 0x38, 0x36,
+ 0x5a, 0x5b, 0xfe, 0xd8, 0x5b, 0x5a, 0x36, 0x38, 0x5e, 0x03, 0x67, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x78, 0x06, 0x03, 0x00, 0x13,
+ 0x00, 0x1f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x23, 0x35, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x04, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36, 0x34, 0x27, 0x26, 0x22, 0x07,
+ 0x02, 0x0f, 0x69, 0x69, 0x21, 0x31, 0x33, 0x46, 0x73, 0x48, 0x49, 0x49,
+ 0x48, 0x73, 0x46, 0x33, 0x31, 0xfe, 0xbe, 0x2f, 0x2f, 0xa6, 0x30, 0x2f,
+ 0x2f, 0x30, 0xa6, 0x2f, 0x04, 0xb0, 0x01, 0x53, 0xfc, 0x99, 0x5e, 0x38,
+ 0x1b, 0x1b, 0x5a, 0x5b, 0x01, 0x28, 0x5b, 0x5a, 0x1b, 0x1b, 0xa1, 0xe4,
+ 0x40, 0x41, 0x41, 0x40, 0xe4, 0x40, 0x41, 0x41, 0x00, 0x02, 0x00, 0x3f,
+ 0x02, 0x8c, 0x02, 0x8d, 0x05, 0x1e, 0x00, 0x1a, 0x00, 0x23, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x07, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07,
+ 0x02, 0x8c, 0xfe, 0x21, 0x07, 0x3a, 0x3a, 0x68, 0x3c, 0x39, 0x37, 0x38,
+ 0x38, 0x3b, 0x3b, 0x3d, 0x98, 0x58, 0x59, 0x54, 0x54, 0x8f, 0x80, 0x4b,
+ 0x4a, 0x68, 0x01, 0x2f, 0x2e, 0x4e, 0x57, 0x34, 0x35, 0x08, 0x03, 0xef,
+ 0x32, 0x6a, 0x38, 0x38, 0x0f, 0x0e, 0x1d, 0x61, 0x18, 0x0c, 0x0c, 0x57,
+ 0x57, 0x95, 0x9a, 0x5b, 0x5a, 0x51, 0x52, 0x6d, 0x54, 0x33, 0x32, 0x31,
+ 0x30, 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x8d,
+ 0x05, 0x1e, 0x00, 0x14, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x35, 0x21, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x37, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37,
+ 0x40, 0x01, 0xe0, 0x07, 0x75, 0x67, 0x3d, 0x70, 0x38, 0x39, 0x76, 0x3c,
+ 0x98, 0xb1, 0xa8, 0x8f, 0x80, 0x95, 0x68, 0x01, 0x5e, 0x4d, 0x58, 0x69,
+ 0x07, 0x03, 0xbb, 0x32, 0x6b, 0x6f, 0x1d, 0x1d, 0x61, 0x18, 0x18, 0xae,
+ 0x95, 0x9a, 0xb5, 0xa3, 0x6d, 0x54, 0x65, 0x62, 0x58, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4b, 0x02, 0x8c, 0x02, 0x25, 0x05, 0x1f, 0x00, 0x32,
+ 0x00, 0x00, 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0xe0, 0x40, 0x22, 0x21, 0x41, 0x3f, 0x6f,
+ 0x2b, 0x31, 0x30, 0x37, 0x37, 0x5b, 0x28, 0x43, 0x28, 0x28, 0x27, 0x26,
+ 0x42, 0x58, 0x54, 0x4e, 0x29, 0x2c, 0x30, 0x30, 0x55, 0x35, 0x31, 0x2f,
+ 0x29, 0x33, 0x30, 0x30, 0x2e, 0x87, 0x91, 0x26, 0x28, 0x03, 0xee, 0x0e,
+ 0x24, 0x24, 0x34, 0x4f, 0x2c, 0x2c, 0x07, 0x07, 0x0d, 0x5e, 0x11, 0x0e,
+ 0x19, 0x1a, 0x24, 0x27, 0x19, 0x19, 0x55, 0x1d, 0x1f, 0x31, 0x33, 0x1f,
+ 0x20, 0x0b, 0x0a, 0x15, 0x60, 0x10, 0x07, 0x08, 0x66, 0x61, 0x3c, 0x29,
+ 0x29, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x49, 0x02, 0x8c, 0x02, 0x24,
+ 0x05, 0x1f, 0x00, 0x31, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x8f, 0x3f, 0x44,
+ 0x41, 0x40, 0x6e, 0x2b, 0x31, 0x30, 0x38, 0x37, 0x2d, 0x2e, 0x29, 0x43,
+ 0x4f, 0x26, 0x26, 0x42, 0x58, 0x54, 0x4d, 0x29, 0x2d, 0x30, 0x31, 0x55,
+ 0x34, 0x31, 0x30, 0x28, 0x33, 0x5f, 0x2e, 0x86, 0x4a, 0x49, 0x27, 0x27,
+ 0x03, 0xbc, 0x0d, 0x48, 0x34, 0x4f, 0x2d, 0x2b, 0x06, 0x07, 0x0e, 0x5d,
+ 0x10, 0x07, 0x08, 0x34, 0x24, 0x27, 0x19, 0x19, 0x55, 0x1c, 0x20, 0x31,
+ 0x32, 0x20, 0x1f, 0x0a, 0x0b, 0x14, 0x60, 0x0f, 0x10, 0x33, 0x33, 0x61,
+ 0x3c, 0x29, 0x29, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x01, 0xad, 0x02, 0x78,
+ 0x05, 0x1e, 0x00, 0x0d, 0x00, 0x31, 0x00, 0x00, 0x00, 0x34, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x17, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x35, 0x33, 0x02, 0x0f,
+ 0x2e, 0x2f, 0x55, 0x53, 0x2f, 0x2f, 0x2f, 0x2f, 0x53, 0x55, 0x2f, 0x97,
+ 0x48, 0x48, 0x95, 0x37, 0x31, 0x31, 0x2e, 0x2e, 0x2d, 0x2d, 0x2e, 0x67,
+ 0x33, 0x33, 0x20, 0x32, 0x33, 0x46, 0x75, 0x47, 0x48, 0x48, 0x47, 0x75,
+ 0x46, 0x33, 0x32, 0x20, 0x69, 0x03, 0x6d, 0xe0, 0x3d, 0x3e, 0x3e, 0x3d,
+ 0xe0, 0x3d, 0x3e, 0x3e, 0x46, 0xa0, 0x4e, 0x4f, 0x09, 0x08, 0x10, 0x65,
+ 0x19, 0x0c, 0x0b, 0x34, 0x35, 0x6b, 0x33, 0x37, 0x1c, 0x1b, 0x58, 0x58,
+ 0x01, 0x22, 0x58, 0x58, 0x1b, 0x1c, 0x37, 0x5f, 0x00, 0x02, 0x00, 0x6d,
+ 0x01, 0xa8, 0x00, 0xd7, 0x05, 0x0f, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x23, 0x15, 0x35, 0x33, 0x15, 0x6e, 0x68, 0x68, 0x68,
+ 0x05, 0x0f, 0xfd, 0x8d, 0xf4, 0x82, 0x82, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x02, 0x9c, 0x02, 0x9d, 0x06, 0x03, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0x69, 0x6a, 0x01,
+ 0x37, 0x85, 0xfe, 0xaf, 0x01, 0x5f, 0x88, 0xfe, 0xbe, 0x6a, 0x06, 0x03,
+ 0xfd, 0xfe, 0x01, 0x0e, 0xfe, 0xdb, 0xfe, 0xb2, 0x01, 0x32, 0xfe, 0xce,
+ 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x04, 0x09, 0x05, 0x1e, 0x00, 0x22,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x02, 0x6d, 0x68, 0x41, 0x44, 0x50, 0x5d, 0x6a, 0x6a, 0x23, 0x64,
+ 0x45, 0x44, 0x61, 0x18, 0x27, 0x6d, 0x49, 0x64, 0x6b, 0x68, 0x41, 0x43,
+ 0x50, 0x5f, 0x03, 0xfe, 0xfe, 0x9e, 0x01, 0x77, 0x5b, 0x57, 0x6b, 0x5c,
+ 0xfe, 0x9e, 0x02, 0x73, 0x61, 0x39, 0x37, 0x45, 0x42, 0x45, 0x42, 0x89,
+ 0x7e, 0xfe, 0x85, 0x01, 0x77, 0x5a, 0x58, 0x6b, 0x00, 0x01, 0x00, 0x69,
+ 0x01, 0xad, 0x02, 0x7e, 0x05, 0x1e, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x11,
+ 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x11, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x02, 0x7d, 0x2f, 0x2e, 0x66, 0x90, 0x84,
+ 0x3c, 0x2b, 0x46, 0x47, 0x54, 0x61, 0x6a, 0x6a, 0x25, 0x32, 0x33, 0x43,
+ 0x6d, 0x38, 0x38, 0x04, 0x17, 0xfe, 0x7a, 0x78, 0x36, 0x36, 0x58, 0x36,
+ 0x56, 0x01, 0x82, 0x59, 0x59, 0x6b, 0x5c, 0xfe, 0x9e, 0x02, 0x73, 0x61,
+ 0x38, 0x1c, 0x1c, 0x42, 0x44, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f,
+ 0x02, 0x8c, 0x02, 0x88, 0x05, 0x1e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x27, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x01, 0x64, 0x54, 0x62, 0x61, 0x55, 0x53, 0x61, 0x61, 0x53, 0x87, 0x9c,
+ 0x9c, 0x87, 0x89, 0x9b, 0x9b, 0x04, 0xc7, 0x81, 0x71, 0x71, 0x81, 0x82,
+ 0x70, 0x6f, 0x83, 0x57, 0xae, 0x9b, 0x9a, 0xaf, 0xaf, 0x9a, 0x9b, 0xae,
+ 0x00, 0x01, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x37, 0x05, 0x1e, 0x00, 0x20,
+ 0x00, 0x00, 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x40,
+ 0x2b, 0x2e, 0x2e, 0x31, 0x94, 0x55, 0x55, 0x54, 0x54, 0x90, 0x34, 0x30,
+ 0x2e, 0x2c, 0x2c, 0x2d, 0x2c, 0x2e, 0x65, 0x38, 0x38, 0x38, 0x38, 0x65,
+ 0x2e, 0x2c, 0x2d, 0x2c, 0x04, 0xf7, 0x14, 0x0a, 0x09, 0x58, 0x58, 0x99,
+ 0x97, 0x59, 0x59, 0x0a, 0x0a, 0x14, 0x5f, 0x18, 0x0c, 0x0c, 0x3f, 0x40,
+ 0xe6, 0x40, 0x3f, 0x0c, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3f,
+ 0x03, 0xd5, 0x02, 0x88, 0x05, 0x1e, 0x00, 0x10, 0x00, 0x00, 0x01, 0x34,
+ 0x27, 0x26, 0x22, 0x07, 0x06, 0x15, 0x23, 0x34, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x30, 0x02, 0x18, 0x30, 0x31, 0xa7, 0x31, 0x31, 0x6e, 0x9b,
+ 0x89, 0x87, 0x4f, 0x4d, 0x03, 0xd5, 0x6f, 0x42, 0x41, 0x41, 0x40, 0x71,
+ 0x9b, 0xae, 0x57, 0x57, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3f,
+ 0x02, 0x8c, 0x02, 0x88, 0x03, 0xd5, 0x00, 0x10, 0x00, 0x00, 0x13, 0x14,
+ 0x17, 0x16, 0x32, 0x37, 0x36, 0x35, 0x33, 0x14, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x35, 0x30, 0xaf, 0x30, 0x31, 0xa7, 0x31, 0x31, 0x6e, 0x9b, 0x88,
+ 0x88, 0x4e, 0x4e, 0x03, 0xd5, 0x6f, 0x42, 0x41, 0x41, 0x40, 0x71, 0x9b,
+ 0xae, 0x57, 0x57, 0x9b, 0x00, 0x02, 0x00, 0x69, 0x01, 0xad, 0x02, 0xa2,
+ 0x05, 0x1e, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x11, 0x23, 0x11,
+ 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06, 0x23,
+ 0x22, 0x26, 0x24, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x14, 0x17, 0x16,
+ 0x32, 0x37, 0xd3, 0x6a, 0x6a, 0x20, 0x65, 0x45, 0x74, 0x48, 0x48, 0x48,
+ 0x48, 0x74, 0x45, 0x65, 0x01, 0x42, 0x2f, 0x2f, 0xa6, 0x30, 0x2e, 0x2e,
+ 0x30, 0xa6, 0x2f, 0x02, 0xfa, 0xfe, 0xb3, 0x03, 0x62, 0x5f, 0x38, 0x36,
+ 0x5a, 0x5b, 0xfe, 0xd8, 0x5b, 0x5a, 0x36, 0xa1, 0xe4, 0x40, 0x41, 0x41,
+ 0x40, 0xe4, 0x40, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1f,
+ 0x02, 0x9c, 0x01, 0xac, 0x05, 0xc1, 0x00, 0x14, 0x00, 0x00, 0x13, 0x15,
+ 0x33, 0x15, 0x23, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x35, 0xd4, 0xd8, 0xd8, 0x2c, 0x40,
+ 0x6c, 0x6c, 0x78, 0x2e, 0x2e, 0x4c, 0x4c, 0x05, 0xc1, 0xb2, 0x50, 0xfe,
+ 0xac, 0x4d, 0x2c, 0x56, 0x2d, 0x2c, 0x76, 0x01, 0x54, 0x50, 0xb2, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0x02, 0x8c, 0x02, 0x77, 0x05, 0x0f, 0x00, 0x16,
+ 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x63, 0x68, 0x23, 0x24, 0x46, 0x54, 0x31, 0x31, 0x69, 0x69, 0x26,
+ 0x32, 0x32, 0x43, 0x6d, 0x71, 0x03, 0x94, 0x01, 0x7b, 0xfe, 0x88, 0x59,
+ 0x2c, 0x2d, 0x36, 0x35, 0x5c, 0x01, 0x63, 0xfd, 0x8d, 0x60, 0x39, 0x1c,
+ 0x1b, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0x02, 0xc7, 0x02, 0xee,
+ 0x04, 0xd4, 0x00, 0x16, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x21, 0x35, 0x21, 0x15, 0x23, 0x1e,
+ 0x01, 0x15, 0x14, 0x07, 0x06, 0x01, 0xe3, 0xfe, 0x80, 0x01, 0x7c, 0x5b,
+ 0x2d, 0x2d, 0x36, 0x36, 0x5d, 0xfe, 0x98, 0x02, 0x7b, 0x62, 0x3a, 0x38,
+ 0x44, 0x44, 0x02, 0xc7, 0x67, 0x23, 0x22, 0x46, 0x53, 0x31, 0x30, 0x67,
+ 0x67, 0x25, 0x64, 0x41, 0x6c, 0x38, 0x38, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x02, 0x8d, 0x04, 0x09, 0x05, 0x10, 0x00, 0x28, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x02, 0x16, 0x27, 0x36, 0x37, 0x4a, 0x63, 0x6c, 0x6a,
+ 0x20, 0x20, 0x42, 0x51, 0x30, 0x2f, 0x68, 0x20, 0x21, 0x43, 0x50, 0x2f,
+ 0x30, 0x68, 0x68, 0x24, 0x32, 0x32, 0x44, 0x46, 0x61, 0x03, 0x15, 0x45,
+ 0x21, 0x22, 0x8a, 0x7f, 0x01, 0x7a, 0xfe, 0x89, 0x5b, 0x2b, 0x2c, 0x36,
+ 0x34, 0x5c, 0x01, 0x63, 0xfe, 0x89, 0x5b, 0x2b, 0x2c, 0x36, 0x36, 0x5a,
+ 0x01, 0x63, 0xfd, 0x8d, 0x62, 0x3b, 0x1b, 0x1c, 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x22, 0x02, 0x9c, 0x02, 0x8d, 0x05, 0x0f, 0x00, 0x06,
+ 0x00, 0x00, 0x13, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x23, 0x22, 0x6f, 0xc7,
+ 0xc6, 0x6e, 0xed, 0x8e, 0x05, 0x0f, 0xfd, 0xf2, 0x02, 0x0e, 0xfd, 0x8d,
+ 0x00, 0x02, 0x00, 0x6c, 0x01, 0xad, 0x02, 0x92, 0x06, 0x0b, 0x00, 0x0e,
+ 0x00, 0x1c, 0x00, 0x00, 0x13, 0x11, 0x23, 0x11, 0x10, 0x33, 0x32, 0x17,
+ 0x16, 0x07, 0x16, 0x17, 0x12, 0x21, 0x26, 0x27, 0x16, 0x33, 0x32, 0x35,
+ 0x34, 0x05, 0x35, 0x16, 0x35, 0x34, 0x23, 0x22, 0x15, 0xd5, 0x68, 0xf1,
+ 0xf6, 0x01, 0x01, 0x63, 0x9e, 0x01, 0x01, 0xfe, 0xed, 0x77, 0x34, 0x3f,
+ 0x71, 0xa3, 0xfe, 0xf8, 0xcf, 0x85, 0x95, 0x02, 0xc3, 0xfe, 0xea, 0x03,
+ 0x5e, 0x01, 0x00, 0xd8, 0x99, 0x38, 0x33, 0x95, 0xfe, 0xf6, 0x01, 0xb8,
+ 0x61, 0xb0, 0x9e, 0x0c, 0x5f, 0x04, 0xb7, 0x7b, 0xaf, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x12, 0x01, 0xad, 0x02, 0x8d, 0x05, 0x0f, 0x00, 0x0e,
+ 0x00, 0x00, 0x1b, 0x02, 0x33, 0x01, 0x15, 0x23, 0x35, 0x03, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0xcc, 0x8c, 0xc6, 0x6e, 0xff, 0x00, 0x68, 0xa7,
+ 0x19, 0x36, 0x1c, 0x28, 0x6f, 0x04, 0xad, 0xfe, 0x7c, 0x01, 0xe6, 0xfd,
+ 0x8d, 0xef, 0xef, 0x01, 0xd4, 0x47, 0x58, 0x00, 0x00, 0x02, 0x00, 0x3f,
+ 0x02, 0x8c, 0x02, 0x88, 0x05, 0xef, 0x00, 0x1b, 0x00, 0x2b, 0x00, 0x00,
+ 0x01, 0x26, 0x23, 0x22, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x35,
+ 0x34, 0x33, 0x32, 0x17, 0x01, 0x06, 0x07, 0x06, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x02, 0x3a, 0x3b, 0x87,
+ 0x90, 0x96, 0x76, 0x42, 0x51, 0x4d, 0x4f, 0xfe, 0xf1, 0x4e, 0x4e, 0x4e,
+ 0x1e, 0x2a, 0x58, 0xfa, 0x7d, 0x45, 0xfe, 0xea, 0x26, 0x1f, 0x31, 0x30,
+ 0x31, 0x55, 0x53, 0x61, 0x33, 0x37, 0x48, 0x24, 0x05, 0x72, 0x28, 0x42,
+ 0x34, 0x1a, 0x15, 0x3f, 0x4b, 0x9c, 0x94, 0x57, 0x58, 0x58, 0x57, 0x9a,
+ 0x72, 0x5d, 0x24, 0x14, 0x2c, 0x4f, 0x98, 0x27, 0xfe, 0xf8, 0x11, 0x28,
+ 0x40, 0xe4, 0x3f, 0x41, 0x82, 0x6a, 0x70, 0x36, 0x39, 0x06, 0x04, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x01, 0xad, 0x02, 0xbc, 0x05, 0x14, 0x00, 0x0a,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x22, 0x15, 0x11, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x15, 0x23, 0x35, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x11, 0x34, 0x01, 0xd6,
+ 0x25, 0x37, 0x35, 0x31, 0x32, 0x28, 0x1e, 0x4f, 0x49, 0x4d, 0x4d, 0x49,
+ 0x74, 0x68, 0x71, 0x4b, 0x4d, 0x4d, 0x3a, 0x5d, 0x25, 0x21, 0x30, 0x30,
+ 0x2c, 0x3f, 0x04, 0xbc, 0x51, 0xfe, 0x7f, 0x3a, 0x35, 0x7d, 0x74, 0x3f,
+ 0x33, 0x58, 0x4a, 0x4f, 0xa5, 0x98, 0x5a, 0x55, 0xe2, 0xe1, 0x55, 0x58,
+ 0x9a, 0xa0, 0x52, 0x3d, 0x10, 0x5c, 0x0c, 0x2c, 0x41, 0x6a, 0x71, 0x40,
+ 0x3a, 0x01, 0x81, 0xa9, 0x00, 0x01, 0x00, 0x21, 0x01, 0xad, 0x02, 0x7e,
+ 0x05, 0x10, 0x00, 0x17, 0x00, 0x00, 0x01, 0x27, 0x03, 0x23, 0x13, 0x03,
+ 0x26, 0x2b, 0x01, 0x35, 0x17, 0x16, 0x1f, 0x01, 0x13, 0x33, 0x03, 0x13,
+ 0x16, 0x3b, 0x01, 0x15, 0x27, 0x26, 0x01, 0x9f, 0x55, 0xad, 0x7c, 0xf7,
+ 0x68, 0x1c, 0x57, 0x1c, 0x28, 0x93, 0x24, 0x54, 0xae, 0x7b, 0xf5, 0x66,
+ 0x1c, 0x57, 0x1c, 0x27, 0x93, 0x02, 0x10, 0xd7, 0xfe, 0xc6, 0x01, 0xbc,
+ 0x01, 0x07, 0x47, 0x58, 0x01, 0x04, 0x5d, 0xd7, 0x01, 0x3a, 0xfe, 0x44,
+ 0xfe, 0xf8, 0x46, 0x59, 0x02, 0x04, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6d,
+ 0x00, 0x00, 0x00, 0xd7, 0x03, 0x67, 0x12, 0x07, 0x07, 0xa1, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69, 0x00, 0x00, 0x01, 0xdd,
+ 0x02, 0x82, 0x12, 0x07, 0x02, 0x75, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xf0, 0x02, 0x77, 0x02, 0x73, 0x12, 0x07,
+ 0x05, 0x0e, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x22,
+ 0x00, 0x00, 0x02, 0x8d, 0x02, 0x73, 0x12, 0x07, 0x05, 0x11, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6c, 0xff, 0x11, 0x02, 0x92,
+ 0x03, 0x6f, 0x12, 0x07, 0x05, 0x12, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x12, 0xff, 0x11, 0x02, 0x8d, 0x02, 0x73, 0x12, 0x07,
+ 0x05, 0x13, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6c,
+ 0xff, 0x11, 0x02, 0xa4, 0x02, 0x82, 0x00, 0x10, 0x00, 0x1c, 0x00, 0x00,
+ 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x10, 0x06, 0x23, 0x22, 0x26,
+ 0x27, 0x11, 0x23, 0x11, 0x34, 0x05, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0xa0, 0x22, 0x56, 0x21, 0x68, 0x73, 0x90,
+ 0x90, 0x73, 0x47, 0x63, 0x22, 0x68, 0x01, 0xcb, 0x5f, 0x52, 0x52, 0x60,
+ 0x60, 0x52, 0x52, 0x5f, 0x02, 0x03, 0x39, 0x32, 0x14, 0xb5, 0xfe, 0xd8,
+ 0xb6, 0x37, 0x38, 0xfe, 0xb3, 0x02, 0x22, 0x81, 0x7b, 0x71, 0x82, 0x82,
+ 0x71, 0x72, 0x81, 0x81, 0xff, 0xff, 0x00, 0x3f, 0xff, 0x11, 0x02, 0xbc,
+ 0x02, 0x78, 0x12, 0x07, 0x05, 0x15, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x21, 0xff, 0x11, 0x02, 0x7e, 0x02, 0x74, 0x12, 0x07,
+ 0x05, 0x16, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2d, 0x04, 0x7b, 0x00, 0x1c, 0x00, 0x28, 0x00, 0x00,
+ 0x13, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x1d, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23,
+ 0x22, 0x26, 0x27, 0x15, 0x23, 0x13, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0xa7, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49,
+ 0x8e, 0x4a, 0xa3, 0xa2, 0x33, 0xa0, 0x70, 0xba, 0xe2, 0xe3, 0xb9, 0x70,
+ 0xa0, 0x33, 0xa6, 0xa6, 0x95, 0x86, 0x85, 0x94, 0x94, 0x85, 0x86, 0x95,
+ 0x02, 0x46, 0x01, 0x1e, 0x01, 0x17, 0x1d, 0x1e, 0xb3, 0x2c, 0x2a, 0xbd,
+ 0xbf, 0x5b, 0x63, 0x62, 0xfe, 0xc6, 0xfe, 0xfd, 0xfe, 0xfc, 0xfe, 0xc6,
+ 0x62, 0x63, 0xaa, 0x02, 0x23, 0xc8, 0xdc, 0xdc, 0xc8, 0xc7, 0xdc, 0xdc,
+ 0xff, 0xff, 0x00, 0x72, 0x02, 0x9c, 0x02, 0xf8, 0x05, 0xe0, 0x10, 0x06,
+ 0x04, 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x00, 0x02, 0x44,
+ 0x04, 0x60, 0x00, 0x13, 0x00, 0x00, 0x13, 0x35, 0x21, 0x15, 0x23, 0x11,
+ 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35,
+ 0x33, 0x11, 0x68, 0x01, 0xdc, 0x98, 0x98, 0x98, 0x98, 0xfe, 0x24, 0x9f,
+ 0x9f, 0x9f, 0x03, 0xbc, 0xa4, 0xa4, 0xfe, 0xac, 0xa4, 0xfe, 0xe0, 0xa4,
+ 0xa4, 0x01, 0x20, 0xa4, 0x01, 0x54, 0x00, 0x00, 0x00, 0x03, 0x00, 0x2d,
+ 0xfe, 0x56, 0x04, 0xa1, 0x04, 0x7b, 0x00, 0x19, 0x00, 0x22, 0x00, 0x2b,
+ 0x00, 0x00, 0x25, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x15,
+ 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x33, 0x15, 0x23, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x01, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x01, 0x21, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x01, 0x4e,
+ 0xa7, 0x7a, 0x7a, 0xa7, 0x34, 0x9f, 0x6f, 0xb7, 0x73, 0x5c, 0x13, 0x77,
+ 0x74, 0x0a, 0x68, 0x73, 0xb7, 0x6f, 0x9f, 0x01, 0xfe, 0xfd, 0xcf, 0x07,
+ 0x43, 0x4b, 0x84, 0x83, 0x4c, 0x42, 0xfd, 0xda, 0x02, 0x29, 0x0e, 0x37,
+ 0x4c, 0x83, 0x84, 0x4b, 0x38, 0xa8, 0xfd, 0xae, 0x03, 0xae, 0x90, 0x01,
+ 0xcc, 0xaa, 0x64, 0x61, 0xa2, 0x82, 0xc3, 0x90, 0xea, 0x95, 0xa2, 0x61,
+ 0x01, 0xc0, 0xae, 0x66, 0x74, 0x74, 0x66, 0x01, 0x3e, 0x84, 0x56, 0x74,
+ 0x74, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0x82, 0xfe, 0x56, 0x01, 0xf8,
+ 0x06, 0x14, 0x00, 0x10, 0x00, 0x00, 0x25, 0x15, 0x14, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x27, 0x37, 0x23, 0x11, 0x33, 0x11, 0x01,
+ 0xf7, 0x93, 0xa2, 0x40, 0x2c, 0x5f, 0x22, 0x26, 0x03, 0x01, 0xa5, 0xa5,
+ 0x9a, 0xae, 0xd6, 0xc0, 0x9c, 0x30, 0x36, 0x94, 0x14, 0x06, 0x14, 0xfa,
+ 0x86, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x78,
+ 0x05, 0x1e, 0x00, 0x13, 0x00, 0x1f, 0x00, 0x00, 0x13, 0x15, 0x23, 0x11,
+ 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x24, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x14,
+ 0x17, 0x16, 0x32, 0x37, 0xa8, 0x68, 0x68, 0x22, 0x32, 0x32, 0x46, 0x73,
+ 0x48, 0x49, 0x49, 0x48, 0x73, 0x46, 0x32, 0x32, 0x01, 0x42, 0x30, 0x2f,
+ 0xa5, 0x30, 0x30, 0x30, 0x30, 0xa5, 0x2f, 0x02, 0xfa, 0x5f, 0x02, 0x73,
+ 0x5e, 0x38, 0x1b, 0x1b, 0x5a, 0x5b, 0xfe, 0xd8, 0x5b, 0x5a, 0x1b, 0x1b,
+ 0xa1, 0xe4, 0x41, 0x40, 0x40, 0x41, 0xe4, 0x41, 0x40, 0x40, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x37, 0x05, 0x1e, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x02, 0x36, 0x2c, 0x2c,
+ 0x2d, 0x2d, 0x66, 0x38, 0x38, 0x38, 0x38, 0x66, 0x2d, 0x2d, 0x2c, 0x2c,
+ 0x2b, 0x5e, 0x35, 0x8f, 0xa9, 0xab, 0x94, 0x30, 0x2e, 0x2e, 0x04, 0xf7,
+ 0x60, 0x18, 0x0c, 0x0c, 0x40, 0x3f, 0xe6, 0x3f, 0x40, 0x0c, 0x0c, 0x18,
+ 0x5f, 0x14, 0x14, 0xb2, 0x97, 0x99, 0xb0, 0x09, 0x0a, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x02, 0x4b, 0x02, 0x37, 0x05, 0x1e, 0x00, 0x07,
+ 0x00, 0x2b, 0x00, 0x00, 0x01, 0x16, 0x33, 0x32, 0x35, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x07, 0x34, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x14, 0x17, 0x16, 0x17, 0x36, 0x33, 0x32, 0x17, 0x16, 0x23, 0x22,
+ 0x01, 0x37, 0x22, 0x2b, 0x53, 0x01, 0x4a, 0x3a, 0x2f, 0x04, 0x56, 0x07,
+ 0x20, 0x1c, 0x54, 0xab, 0x94, 0x2f, 0x2f, 0x2c, 0x2d, 0x2a, 0x2f, 0x2c,
+ 0x2d, 0x66, 0x38, 0x38, 0x38, 0x02, 0x06, 0x2f, 0x6f, 0xa9, 0x01, 0x01,
+ 0xbd, 0x2e, 0x02, 0xee, 0x0b, 0x20, 0x2a, 0x9a, 0x20, 0x26, 0x02, 0x3b,
+ 0x2f, 0x13, 0x1d, 0x5a, 0x96, 0x99, 0xb0, 0x09, 0x0a, 0x14, 0x60, 0x17,
+ 0x0d, 0x0c, 0x3f, 0x40, 0xe6, 0x40, 0x02, 0x05, 0x62, 0x8a, 0x69, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x88, 0x06, 0x03, 0x00, 0x11,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x37, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x27, 0x07, 0x27, 0x37, 0x27, 0x33, 0x17,
+ 0x37, 0x17, 0x07, 0x01, 0xdb, 0x1d, 0x18, 0x19, 0x17, 0x5f, 0x34, 0x35,
+ 0x63, 0x53, 0x51, 0x63, 0x0f, 0x0f, 0x05, 0x47, 0x21, 0x20, 0x51, 0x50,
+ 0x82, 0x84, 0xa0, 0x9c, 0x7e, 0x0a, 0x0f, 0x0e, 0x19, 0x5a, 0xb5, 0x13,
+ 0x9f, 0x67, 0x82, 0x48, 0xbc, 0x13, 0xa7, 0x04, 0x9c, 0x0a, 0x04, 0x05,
+ 0x3d, 0x3c, 0x6d, 0x6a, 0x7c, 0x7c, 0x6a, 0x44, 0x35, 0x34, 0xa5, 0x50,
+ 0x51, 0x50, 0x61, 0x8f, 0x57, 0x57, 0xae, 0x8f, 0x8c, 0xae, 0x02, 0x01,
+ 0x03, 0x65, 0x3c, 0x38, 0x33, 0x72, 0x51, 0x3e, 0x36, 0x37, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4b, 0x02, 0x8c, 0x02, 0x25, 0x05, 0x1f, 0x00, 0x31,
+ 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x06, 0x01, 0x90, 0x47, 0x26, 0x28, 0x49, 0x4a, 0x87,
+ 0x2d, 0x30, 0x30, 0x32, 0x28, 0x30, 0x30, 0x35, 0x55, 0x31, 0x2f, 0x2c,
+ 0x29, 0x4d, 0x54, 0x57, 0x42, 0x4d, 0x28, 0x27, 0x43, 0x29, 0x2e, 0x2d,
+ 0x37, 0x37, 0x61, 0x2b, 0x6f, 0x40, 0x41, 0x44, 0x03, 0xee, 0x0d, 0x29,
+ 0x29, 0x3c, 0x61, 0x33, 0x33, 0x08, 0x07, 0x10, 0x60, 0x15, 0x0a, 0x0b,
+ 0x20, 0x1f, 0x33, 0x31, 0x1f, 0x1d, 0x55, 0x32, 0x27, 0x24, 0x1a, 0x19,
+ 0x07, 0x07, 0x11, 0x5e, 0x0d, 0x0e, 0x2c, 0x2c, 0x4f, 0x34, 0x48, 0x00,
+ 0x00, 0x01, 0x00, 0x1b, 0x02, 0x9c, 0x01, 0xb0, 0x06, 0x03, 0x00, 0x15,
+ 0x00, 0x00, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x1d, 0x01, 0x33, 0x15,
+ 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x01, 0xaf, 0x64, 0x38, 0x16, 0x16, 0xac, 0xac, 0x69, 0x63, 0x63, 0x32,
+ 0x31, 0x6b, 0x06, 0x03, 0x55, 0x17, 0x16, 0x3a, 0x38, 0x50, 0xfd, 0xdd,
+ 0x02, 0x23, 0x50, 0x2c, 0x69, 0x2f, 0x30, 0x00, 0x00, 0x01, 0xff, 0xeb,
+ 0x01, 0xad, 0x01, 0x3a, 0x05, 0x0f, 0x00, 0x15, 0x00, 0x00, 0x13, 0x15,
+ 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01,
+ 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0xd6, 0x2f, 0x2d, 0x67,
+ 0x28, 0x1c, 0x3c, 0x15, 0x16, 0x67, 0x67, 0x68, 0x63, 0x02, 0x9c, 0x0b,
+ 0x78, 0x36, 0x36, 0x58, 0x1b, 0x1c, 0x55, 0x0b, 0x50, 0x02, 0x23, 0xfd,
+ 0xdd, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x01, 0xad, 0x02, 0x78,
+ 0x05, 0x0f, 0x00, 0x0c, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x35, 0x23, 0x22,
+ 0x07, 0x06, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x13, 0x11, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x02, 0x0f, 0xb2, 0x53, 0x2f, 0x2f, 0x2f,
+ 0x2f, 0x53, 0x55, 0x2f, 0x2e, 0x69, 0x48, 0x48, 0x95, 0x37, 0x31, 0x31,
+ 0x2e, 0x2e, 0x2d, 0x2d, 0x2e, 0x67, 0x33, 0x33, 0x20, 0x32, 0x33, 0x46,
+ 0x75, 0x47, 0x48, 0x48, 0x47, 0x75, 0x03, 0xdd, 0xeb, 0x3e, 0x3d, 0xe0,
+ 0x3d, 0x3e, 0x3e, 0x3d, 0x01, 0xa2, 0xfd, 0xdb, 0xa0, 0x4e, 0x4f, 0x08,
+ 0x09, 0x10, 0x65, 0x19, 0x0c, 0x0b, 0x34, 0x35, 0x6b, 0x33, 0x37, 0x1c,
+ 0x1b, 0x58, 0x58, 0x91, 0x82, 0x58, 0x58, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0x01, 0xad, 0x02, 0x77, 0x05, 0x0f, 0x00, 0x16, 0x00, 0x00, 0x13, 0x11,
+ 0x33, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x63, 0x68, 0x23,
+ 0x24, 0x46, 0x54, 0x31, 0x31, 0x69, 0x69, 0x26, 0x33, 0x31, 0x43, 0x6d,
+ 0x71, 0x03, 0x94, 0x01, 0x7b, 0xfe, 0x88, 0x59, 0x2c, 0x2d, 0x36, 0x35,
+ 0x5c, 0x01, 0x63, 0xfc, 0x9e, 0x01, 0x4f, 0x39, 0x1c, 0x1b, 0x86, 0x00,
+ 0x00, 0x02, 0x00, 0x41, 0x02, 0x9c, 0x01, 0x6e, 0x06, 0x03, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x13, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15,
+ 0x23, 0x15, 0x23, 0x35, 0x11, 0x33, 0x15, 0x23, 0x42, 0x66, 0x69, 0x5c,
+ 0x5c, 0x69, 0x69, 0x69, 0x03, 0x99, 0x5c, 0x01, 0x1a, 0xfe, 0xe6, 0x5c,
+ 0xfd, 0xfd, 0x02, 0x6a, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6d,
+ 0x02, 0x9c, 0x01, 0x58, 0x05, 0x0f, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x11,
+ 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0xd6,
+ 0x15, 0x15, 0x3d, 0x1b, 0x28, 0x66, 0x5c, 0x05, 0x0f, 0xfe, 0x70, 0x55,
+ 0x1c, 0x1b, 0x57, 0x6c, 0x77, 0x01, 0x90, 0x00, 0x00, 0x01, 0x00, 0x41,
+ 0x02, 0x9c, 0x01, 0x6e, 0x05, 0x0f, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x35,
+ 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x42, 0x01,
+ 0x2b, 0x5f, 0x5f, 0xfe, 0xd5, 0x64, 0x04, 0xb3, 0x5c, 0x5c, 0xfe, 0x45,
+ 0x5c, 0x5c, 0x01, 0xbb, 0x00, 0x01, 0x00, 0x41, 0x02, 0x9c, 0x01, 0x6e,
+ 0x05, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x13, 0x35, 0x21, 0x15, 0x23, 0x15,
+ 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x21, 0x35, 0x33, 0x35, 0x23, 0x35,
+ 0x33, 0x35, 0x42, 0x01, 0x2b, 0x5f, 0x5f, 0x5f, 0x5f, 0xfe, 0xd5, 0x64,
+ 0x64, 0x64, 0x04, 0xb3, 0x5c, 0x5c, 0xbe, 0x5c, 0xa1, 0x5c, 0x5c, 0xa1,
+ 0x5c, 0xbe, 0x00, 0x00, 0x00, 0x03, 0xff, 0x67, 0x01, 0xad, 0x01, 0x3d,
+ 0x06, 0x03, 0x00, 0x03, 0x00, 0x12, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x23, 0x03, 0x22, 0x35, 0x34, 0x3b, 0x01, 0x11, 0x33, 0x11, 0x33,
+ 0x15, 0x23, 0x06, 0x07, 0x06, 0x27, 0x23, 0x22, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x6e, 0x68, 0x68, 0x5b, 0xac, 0x99, 0x6e, 0x68, 0x67, 0x6d,
+ 0x0a, 0x1f, 0x2d, 0x12, 0x67, 0x44, 0x02, 0x02, 0x46, 0x3c, 0x15, 0x0a,
+ 0x06, 0x03, 0x82, 0xfc, 0x2c, 0x7c, 0x73, 0x02, 0x73, 0xfd, 0x8d, 0x57,
+ 0x3f, 0x23, 0x35, 0x98, 0x1d, 0x24, 0x1b, 0x0d, 0x00, 0x01, 0x00, 0x6d,
+ 0x01, 0xad, 0x01, 0x58, 0x06, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x11,
+ 0x33, 0x11, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x35, 0x6e, 0x68, 0x15, 0x15, 0x3d, 0x1b, 0x28, 0x66, 0x5c, 0x02, 0xe4,
+ 0x03, 0x1f, 0xfc, 0xe1, 0x53, 0x56, 0x1b, 0x1b, 0x58, 0x6c, 0x78, 0x00,
+ 0x00, 0x01, 0x00, 0x51, 0x01, 0xad, 0x01, 0x3d, 0x06, 0x03, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x27, 0x37, 0x23, 0x11, 0x33, 0x11, 0x01, 0x3d, 0x2e, 0x2f,
+ 0x66, 0x28, 0x1c, 0x3b, 0x16, 0x18, 0x03, 0x02, 0x68, 0x68, 0x02, 0xf2,
+ 0x61, 0x78, 0x36, 0x36, 0x58, 0x1b, 0x1e, 0x53, 0x0b, 0x03, 0x67, 0xfc,
+ 0xef, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x02, 0x9c, 0x02, 0x43,
+ 0x05, 0x1e, 0x00, 0x05, 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x15, 0x21,
+ 0x66, 0x72, 0x01, 0x6b, 0xfe, 0x23, 0x05, 0x1e, 0xfd, 0xdd, 0x5f, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x01, 0xad, 0x04, 0x09, 0x05, 0x1e, 0x00, 0x34,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x26, 0x37, 0x34,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x02, 0x5c, 0x27, 0x37, 0x36,
+ 0x49, 0x64, 0x35, 0x36, 0x5c, 0x66, 0x91, 0x84, 0x3c, 0x2b, 0x01, 0x01,
+ 0x41, 0x43, 0x50, 0x2f, 0x30, 0x68, 0x21, 0x20, 0x44, 0x50, 0x2f, 0x2e,
+ 0x6a, 0x6a, 0x23, 0x32, 0x32, 0x45, 0x44, 0x31, 0x30, 0x04, 0x97, 0x45,
+ 0x21, 0x21, 0x45, 0x44, 0x7e, 0xfe, 0x7a, 0x78, 0x6c, 0x58, 0x36, 0x56,
+ 0x30, 0xe8, 0x3d, 0x2d, 0x5a, 0x58, 0x35, 0x36, 0x5c, 0xfe, 0x9e, 0x01,
+ 0x77, 0x5b, 0x2c, 0x2b, 0x35, 0x36, 0x5c, 0xfe, 0x9e, 0x02, 0x73, 0x61,
+ 0x39, 0x1c, 0x1b, 0x22, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x01, 0xad, 0x04, 0x09, 0x05, 0x10, 0x00, 0x28, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x02, 0x16, 0x27, 0x36, 0x37, 0x4a, 0x63, 0x6c, 0x6a,
+ 0x20, 0x20, 0x42, 0x51, 0x30, 0x2f, 0x68, 0x20, 0x21, 0x43, 0x50, 0x2f,
+ 0x30, 0x68, 0x68, 0x24, 0x32, 0x32, 0x44, 0x46, 0x61, 0x03, 0x15, 0x45,
+ 0x22, 0x21, 0x8a, 0x7e, 0x01, 0x7b, 0xfe, 0x89, 0x5b, 0x2b, 0x2c, 0x35,
+ 0x35, 0x5c, 0x01, 0x63, 0xfe, 0x89, 0x5b, 0x2b, 0x2c, 0x36, 0x35, 0x5b,
+ 0x01, 0x63, 0xfc, 0x9d, 0x01, 0x51, 0x3a, 0x1b, 0x1c, 0x46, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xeb, 0x01, 0xad, 0x02, 0x82, 0x05, 0x1e, 0x00, 0x1f,
+ 0x00, 0x00, 0x13, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36,
+ 0x35, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x23, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0xd6, 0x2f,
+ 0x2d, 0x67, 0x28, 0x1c, 0x3c, 0x2b, 0x68, 0x26, 0x65, 0x42, 0x6e, 0x38,
+ 0x39, 0x69, 0x23, 0x24, 0x46, 0x55, 0x30, 0x31, 0x02, 0x91, 0x78, 0x36,
+ 0x36, 0x58, 0x36, 0x56, 0x02, 0x7e, 0x61, 0x38, 0x38, 0x42, 0x44, 0x81,
+ 0xfe, 0x85, 0x01, 0x77, 0x59, 0x2c, 0x2d, 0x35, 0x36, 0x5c, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x01, 0xad, 0x03, 0x00, 0x05, 0x1e, 0x00, 0x20,
+ 0x00, 0x00, 0x01, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11,
+ 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35, 0x02,
+ 0x15, 0x23, 0x23, 0x47, 0x54, 0x31, 0x30, 0x6a, 0x6a, 0x25, 0x32, 0x33,
+ 0x43, 0x6d, 0x38, 0x38, 0x2b, 0x3c, 0x1c, 0x28, 0x66, 0x2e, 0x2f, 0x04,
+ 0x13, 0x59, 0x2c, 0x2d, 0x35, 0x36, 0x5c, 0xfe, 0x9e, 0x02, 0x73, 0x61,
+ 0x38, 0x1c, 0x1c, 0x42, 0x44, 0x81, 0xfe, 0x7a, 0x56, 0x36, 0x58, 0x36,
+ 0x36, 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x65, 0x02, 0x9c, 0x02, 0x7e,
+ 0x05, 0x1e, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33, 0x01, 0x11, 0x33, 0x11,
+ 0x23, 0x01, 0x11, 0x23, 0x66, 0x9a, 0x01, 0x0e, 0x6f, 0x9a, 0xfe, 0xf1,
+ 0x6e, 0x05, 0x1e, 0xfe, 0x07, 0x01, 0xf9, 0xfd, 0x7e, 0x01, 0xfa, 0xfe,
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3f, 0x02, 0x8c, 0x02, 0x88,
+ 0x05, 0x1e, 0x00, 0x0f, 0x00, 0x17, 0x00, 0x20, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x16, 0x22, 0x07, 0x06, 0x07, 0x21, 0x26, 0x27, 0x17, 0x21,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x01, 0x64, 0x87, 0x4f, 0x4d,
+ 0x4d, 0x4f, 0x87, 0x89, 0x4d, 0x4e, 0x4e, 0x4d, 0xdc, 0xa7, 0x31, 0x2a,
+ 0x06, 0x01, 0x69, 0x06, 0x2a, 0x2c, 0xfe, 0x9e, 0x0a, 0x22, 0x31, 0x55,
+ 0x53, 0x31, 0x22, 0x05, 0x1e, 0x57, 0x57, 0x9b, 0x9a, 0x57, 0x58, 0x58,
+ 0x57, 0x9a, 0x9b, 0x57, 0x57, 0x57, 0x40, 0x39, 0x5c, 0x5b, 0x38, 0xef,
+ 0x45, 0x2d, 0x41, 0x41, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3f,
+ 0x01, 0xae, 0x02, 0x88, 0x06, 0x03, 0x00, 0x1d, 0x00, 0x26, 0x00, 0x2e,
+ 0x00, 0x00, 0x01, 0x23, 0x35, 0x21, 0x15, 0x23, 0x15, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x15, 0x33, 0x15, 0x21, 0x35, 0x33, 0x35,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x17, 0x11, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x03, 0x11, 0x06, 0x07, 0x06, 0x14, 0x17,
+ 0x16, 0x01, 0x2e, 0x88, 0x01, 0x78, 0x88, 0x65, 0x3f, 0x4d, 0x4d, 0x3f,
+ 0x65, 0x88, 0xfe, 0x88, 0x88, 0x64, 0x3c, 0x4e, 0x4e, 0x3c, 0x64, 0x68,
+ 0x30, 0x22, 0x30, 0x30, 0x22, 0x98, 0x2f, 0x20, 0x31, 0x30, 0x21, 0x05,
+ 0xa7, 0x5c, 0x5c, 0x8c, 0x0e, 0x46, 0x57, 0x9b, 0x9a, 0x57, 0x47, 0x0e,
+ 0x85, 0x5c, 0x5c, 0x86, 0x0e, 0x46, 0x57, 0x9a, 0x9b, 0x57, 0x45, 0x0f,
+ 0x5b, 0xfe, 0x2a, 0x0e, 0x2c, 0x41, 0x70, 0x6f, 0x41, 0x2d, 0xfe, 0x39,
+ 0x01, 0xd4, 0x0e, 0x2a, 0x41, 0xe2, 0x40, 0x2b, 0x00, 0x01, 0x00, 0x3f,
+ 0x01, 0xad, 0x02, 0x25, 0x05, 0x1e, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x15,
+ 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x02, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2f, 0x01, 0x2e,
+ 0x01, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x16, 0x02, 0x02, 0x2c, 0x60,
+ 0x32, 0x4e, 0x26, 0x28, 0x1c, 0x1c, 0x54, 0x24, 0x6e, 0x2f, 0x2f, 0x45,
+ 0x46, 0x7b, 0x33, 0x38, 0x0c, 0x2c, 0x3b, 0x84, 0x90, 0x66, 0x2e, 0x2f,
+ 0x3a, 0x38, 0x38, 0x37, 0x4a, 0x4f, 0x1c, 0x1d, 0x61, 0x25, 0x60, 0x56,
+ 0x3f, 0x3f, 0x75, 0x3a, 0x67, 0x04, 0xfd, 0x62, 0x17, 0x16, 0x17, 0x18,
+ 0x2f, 0x24, 0x15, 0x14, 0x12, 0x08, 0x18, 0x2b, 0x2a, 0x4d, 0x57, 0x33,
+ 0x33, 0x09, 0x03, 0x07, 0x56, 0x36, 0x58, 0x36, 0x36, 0x78, 0x22, 0x6a,
+ 0x1d, 0x0f, 0x0f, 0x32, 0x2d, 0x2a, 0x17, 0x16, 0x15, 0x08, 0x14, 0x54,
+ 0x49, 0x58, 0x30, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xeb,
+ 0x01, 0xad, 0x01, 0x9d, 0x06, 0x03, 0x00, 0x17, 0x00, 0x00, 0x13, 0x02,
+ 0x03, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x13, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x6e, 0x01,
+ 0x01, 0x32, 0x2d, 0x6e, 0x63, 0x64, 0x38, 0x15, 0x17, 0x02, 0x2f, 0x2d,
+ 0x67, 0x28, 0x1c, 0x3c, 0x2b, 0x02, 0x91, 0x01, 0x5d, 0x01, 0x4d, 0x65,
+ 0x33, 0x30, 0x55, 0x17, 0x16, 0x3a, 0xfd, 0x4a, 0x78, 0x36, 0x36, 0x58,
+ 0x36, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1f, 0x01, 0xad, 0x01, 0xac,
+ 0x05, 0xc1, 0x00, 0x1f, 0x00, 0x00, 0x13, 0x15, 0x33, 0x15, 0x23, 0x11,
+ 0x14, 0x16, 0x3b, 0x01, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x36, 0x3d, 0x01, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23, 0x35,
+ 0x33, 0x35, 0xd4, 0xd8, 0xd8, 0x2c, 0x40, 0x6c, 0x2f, 0x2e, 0x67, 0x27,
+ 0x1b, 0x3c, 0x2b, 0x03, 0x78, 0x2e, 0x2e, 0x4c, 0x4c, 0x05, 0xc1, 0xb2,
+ 0x50, 0xfe, 0xac, 0x4d, 0x2c, 0x61, 0x78, 0x36, 0x36, 0x58, 0x36, 0x56,
+ 0x0b, 0x2d, 0x2c, 0x76, 0x01, 0x54, 0x50, 0xb2, 0x00, 0x02, 0x00, 0x54,
+ 0x02, 0x8c, 0x03, 0x35, 0x05, 0x0f, 0x00, 0x17, 0x00, 0x21, 0x00, 0x00,
+ 0x13, 0x35, 0x33, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x15,
+ 0x23, 0x15, 0x23, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x3d, 0x01,
+ 0x29, 0x01, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x55, 0x63,
+ 0x68, 0x01, 0x43, 0x69, 0x69, 0x69, 0x69, 0x27, 0x32, 0x32, 0x42, 0x6d,
+ 0x71, 0x01, 0xaa, 0xfe, 0xbe, 0x23, 0x23, 0x46, 0x55, 0x31, 0x2c, 0x03,
+ 0x99, 0x5c, 0x01, 0x1a, 0xfe, 0xe6, 0x01, 0x1a, 0xfe, 0xe6, 0x5c, 0xfd,
+ 0x60, 0x39, 0x1c, 0x1b, 0x86, 0x82, 0x05, 0x02, 0x59, 0x2c, 0x2d, 0x36,
+ 0x2f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3f, 0x02, 0x8b, 0x02, 0x90,
+ 0x05, 0x0f, 0x00, 0x26, 0x00, 0x00, 0x13, 0x35, 0x33, 0x15, 0x06, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x27, 0x35, 0x33, 0x15, 0x23, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x40, 0xfb, 0x3e,
+ 0x24, 0x25, 0x32, 0x32, 0x51, 0x52, 0x31, 0x33, 0x26, 0x28, 0x38, 0xf6,
+ 0x85, 0x40, 0x20, 0x1f, 0x51, 0x50, 0xff, 0x00, 0x50, 0x51, 0x1e, 0x1e,
+ 0x43, 0x04, 0xb3, 0x5c, 0x7b, 0x27, 0x3a, 0x3f, 0x4b, 0x59, 0x37, 0x36,
+ 0x36, 0x37, 0x59, 0x52, 0x38, 0x3e, 0x23, 0x7b, 0x5c, 0x38, 0x3f, 0x3e,
+ 0x4c, 0x83, 0x52, 0x52, 0x51, 0x52, 0x80, 0x52, 0x3c, 0x3d, 0x3a, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x02, 0x8a, 0x02, 0x51, 0x05, 0x0f, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x16, 0x01, 0x5d,
+ 0x49, 0x41, 0x69, 0x3d, 0x3e, 0x78, 0x78, 0x3f, 0x3d, 0x6a, 0x40, 0x02,
+ 0xe2, 0x50, 0x5a, 0x01, 0x83, 0xfe, 0x73, 0x7b, 0x3e, 0x3f, 0x3f, 0x3e,
+ 0x7b, 0x01, 0x8d, 0xfe, 0x7d, 0x5a, 0x50, 0x00, 0x00, 0x01, 0x00, 0x6d,
+ 0x02, 0x9c, 0x02, 0x79, 0x05, 0x0f, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x33,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x22, 0x26, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3f, 0x01, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x26, 0x01, 0x43, 0xb7, 0x41, 0x1f, 0x1f, 0x50,
+ 0x51, 0x80, 0x28, 0x66, 0x5c, 0x68, 0x15, 0x17, 0x3b, 0x1d, 0x51, 0x32,
+ 0x31, 0x24, 0x2d, 0x35, 0x2b, 0x04, 0xc4, 0x38, 0x3f, 0x3e, 0x4c, 0x83,
+ 0x52, 0x52, 0x6c, 0x77, 0x01, 0x90, 0xfe, 0x70, 0x55, 0x1c, 0x1c, 0x01,
+ 0x01, 0x36, 0x37, 0x59, 0x51, 0x38, 0x43, 0x1f, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x22, 0x02, 0x9c, 0x02, 0x8d, 0x05, 0x0f, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x23, 0x0b, 0x01, 0x23, 0x13, 0x33, 0x02, 0x8c, 0x6e,
+ 0xc6, 0xc7, 0x6f, 0xef, 0x8e, 0x02, 0x9c, 0x02, 0x0e, 0xfd, 0xf2, 0x02,
+ 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31, 0x02, 0x9c, 0x02, 0x30,
+ 0x05, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x15,
+ 0x21, 0x35, 0x01, 0x21, 0x40, 0x01, 0xf0, 0xfe, 0x77, 0x01, 0x89, 0xfe,
+ 0x02, 0x01, 0x88, 0xfe, 0x86, 0x05, 0x0f, 0x5e, 0xfe, 0x3d, 0x52, 0x5e,
+ 0x01, 0xc3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31, 0x01, 0xad, 0x02, 0xb1,
+ 0x05, 0x0f, 0x00, 0x16, 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x15,
+ 0x23, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x3d,
+ 0x01, 0x21, 0x35, 0x01, 0x21, 0x40, 0x01, 0xf0, 0xfe, 0x77, 0x01, 0x89,
+ 0x01, 0x15, 0x15, 0x3d, 0x1a, 0x27, 0x67, 0x5c, 0xfe, 0x6c, 0x01, 0x88,
+ 0xfe, 0x86, 0x05, 0x0f, 0x5e, 0xfe, 0x3d, 0x52, 0x0b, 0x56, 0x1b, 0x1b,
+ 0x58, 0x6c, 0x78, 0x0b, 0x5e, 0x01, 0xc3, 0x00, 0x00, 0x02, 0x00, 0x31,
+ 0x02, 0x5e, 0x02, 0x30, 0x05, 0x0f, 0x00, 0x14, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x06, 0x15, 0x23, 0x34, 0x37, 0x23, 0x35, 0x01, 0x21, 0x35, 0x21,
+ 0x15, 0x01, 0x33, 0x36, 0x33, 0x32, 0x15, 0x14, 0x23, 0x27, 0x33, 0x32,
+ 0x35, 0x34, 0x23, 0x06, 0x01, 0x56, 0x02, 0x56, 0x02, 0xce, 0x01, 0x88,
+ 0xfe, 0x86, 0x01, 0xf0, 0xfe, 0x77, 0x63, 0x23, 0x7c, 0x81, 0xbd, 0x0b,
+ 0x0b, 0x63, 0x28, 0x32, 0x02, 0x9c, 0x1d, 0x21, 0x21, 0x1d, 0x5e, 0x01,
+ 0xc3, 0x52, 0x5e, 0xfe, 0x3d, 0xa2, 0x8a, 0x6a, 0x52, 0x1f, 0x33, 0x01,
+ 0x00, 0x01, 0x00, 0x31, 0x01, 0xa8, 0x02, 0x60, 0x05, 0x0f, 0x00, 0x21,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x13, 0x21, 0x35, 0x21, 0x15,
+ 0x01, 0x44, 0x3c, 0x49, 0x38, 0x31, 0x2e, 0x57, 0x56, 0x9f, 0x35, 0x39,
+ 0x38, 0x3c, 0x2f, 0x72, 0x3e, 0x6c, 0x37, 0x39, 0x34, 0x34, 0x5e, 0x63,
+ 0xf4, 0xfe, 0x86, 0x01, 0xef, 0x03, 0xa7, 0x20, 0x17, 0x3d, 0x3b, 0x4d,
+ 0x7c, 0x43, 0x44, 0x0a, 0x0b, 0x14, 0x6d, 0x1b, 0x1c, 0x2a, 0x2a, 0x50,
+ 0x4a, 0x2a, 0x29, 0x5d, 0x01, 0x18, 0x52, 0x5e, 0x00, 0x03, 0x00, 0x3f,
+ 0x02, 0x8f, 0x02, 0x88, 0x06, 0x0c, 0x00, 0x08, 0x00, 0x10, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x21, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x13, 0x32, 0x17, 0x16, 0x10,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x10, 0x37, 0x36, 0x02, 0x18, 0xfe, 0x97,
+ 0x05, 0x2a, 0x31, 0x55, 0x53, 0x31, 0x2a, 0x05, 0x09, 0x26, 0x31, 0xa7,
+ 0x31, 0x27, 0x08, 0xb4, 0x87, 0x4f, 0x4d, 0x4d, 0x4f, 0x87, 0x89, 0x9b,
+ 0x4d, 0x4e, 0x04, 0x2a, 0x80, 0x4d, 0x57, 0x58, 0x4d, 0xde, 0x6d, 0x47,
+ 0x59, 0x58, 0x46, 0x6f, 0x01, 0x83, 0x76, 0x77, 0xfe, 0x5e, 0x77, 0x77,
+ 0xee, 0x01, 0xa2, 0x77, 0x76, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0xb8,
+ 0x04, 0xee, 0xff, 0xaf, 0x06, 0x66, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x35, 0x21, 0x37, 0x33, 0xfe, 0xd2, 0xfd, 0xe6, 0x01, 0xe2, 0x97, 0x7d,
+ 0x04, 0xee, 0x94, 0xe4, 0x00, 0x01, 0xfc, 0xb8, 0x04, 0xee, 0xff, 0xaf,
+ 0x06, 0x66, 0x00, 0x05, 0x00, 0x00, 0x01, 0x03, 0x33, 0x17, 0x21, 0x15,
+ 0xfd, 0x95, 0xdd, 0x7d, 0x98, 0x01, 0xe1, 0x04, 0xee, 0x01, 0x78, 0xe4,
+ 0x94, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0xb8, 0x04, 0xee, 0xff, 0xaf,
+ 0x06, 0x66, 0x00, 0x05, 0x00, 0x00, 0x01, 0x13, 0x23, 0x27, 0x21, 0x35,
+ 0xfe, 0xd2, 0xdc, 0x7d, 0x97, 0xfe, 0x1e, 0x06, 0x66, 0xfe, 0x88, 0xe4,
+ 0x94, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0xb8, 0x04, 0xee, 0xff, 0xaf,
+ 0x06, 0x66, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x07, 0x23,
+ 0xfd, 0x95, 0x02, 0x19, 0xfe, 0x1f, 0x98, 0x7d, 0x06, 0x66, 0x94, 0xe4,
+ 0x00, 0x01, 0xfc, 0xa1, 0x04, 0xee, 0xff, 0xc5, 0x06, 0x66, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x33, 0x13, 0x23, 0x27, 0x07, 0x23, 0x03, 0x33, 0x17,
+ 0xfe, 0x63, 0x85, 0xdd, 0x7d, 0xa2, 0xa2, 0x86, 0xdc, 0x7d, 0xa2, 0x06,
+ 0x66, 0xfe, 0x88, 0xf5, 0xf5, 0x01, 0x78, 0xf5, 0x00, 0x01, 0xfc, 0xa1,
+ 0x04, 0xee, 0xff, 0xc5, 0x06, 0x66, 0x00, 0x09, 0x00, 0x00, 0x01, 0x17,
+ 0x37, 0x33, 0x03, 0x23, 0x27, 0x07, 0x23, 0x13, 0xfe, 0x04, 0xa2, 0xa2,
+ 0x7d, 0xdd, 0x85, 0xa2, 0xa2, 0x7d, 0xdc, 0x06, 0x66, 0xf5, 0xf5, 0xfe,
+ 0x88, 0xf5, 0xf5, 0x01, 0x78, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0xfe, 0x13, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd6, 0x04, 0x43,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x24, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e,
+ 0xfe, 0x13, 0x03, 0xc3, 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd6, 0x03, 0xe5,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x6e, 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x43,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x25, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa5,
+ 0xff, 0xe3, 0x04, 0x2e, 0x07, 0x52, 0x10, 0x27, 0x02, 0xb8, 0x02, 0xc7,
+ 0x01, 0x3e, 0x12, 0x06, 0x00, 0x45, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x04, 0x6e, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x25, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0x2e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x89, 0x04, 0x2e, 0x06, 0x14, 0x12, 0x26, 0x00, 0x45, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0x24, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0xc0, 0x04, 0x6e, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x25, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x8f, 0x00, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0xc0, 0x04, 0x2e, 0x06, 0x14, 0x12, 0x26, 0x00, 0x45, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x8f, 0x00, 0x81, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xfe, 0x75, 0x04, 0xa4, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0xc4,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x89, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x75, 0x03, 0x84, 0x06, 0x66, 0x12, 0x26, 0x00, 0xa9, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x76, 0x3c, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x1f, 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x6e,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x03, 0xeb, 0x07, 0x89, 0x10, 0x27, 0x02, 0xb8, 0x05, 0x65,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x8a, 0x05, 0x1f, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x6e,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x8a, 0x03, 0xeb, 0x06, 0x14, 0x10, 0x27, 0x02, 0xd4, 0x03, 0xf5,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0xc1, 0x05, 0x1f, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xe2, 0x04, 0x6e,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0xc1, 0x03, 0xeb, 0x06, 0x14, 0x10, 0x27, 0x02, 0xe2, 0x03, 0xf5,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x77, 0x05, 0x1f, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x27, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x7a, 0x52, 0x02, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x75, 0x03, 0xeb, 0x06, 0x14, 0x12, 0x26, 0x00, 0x47, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x7a, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x15, 0x05, 0x1f, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xde, 0x04, 0x6e,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x15, 0x03, 0xeb, 0x06, 0x14, 0x10, 0x27, 0x02, 0xde, 0x03, 0xf5,
+ 0x00, 0x01, 0x12, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x08, 0x5a, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x24, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x07, 0x5e, 0x10, 0x27, 0x11, 0x24, 0xff, 0xdd,
+ 0xff, 0x04, 0x12, 0x06, 0x00, 0x48, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x17, 0x08, 0x5a, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x23, 0xee, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x07, 0x5e, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x07, 0x11, 0x23, 0xff, 0xdb, 0xff, 0x04, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x4b, 0x04, 0x17, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xde, 0x04, 0x39, 0x00, 0x37, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x4b, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xde, 0x04, 0x38, 0x00, 0x37, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x76, 0x04, 0x17, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xb0, 0x00, 0xa1, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x76, 0x04, 0x0c, 0x04, 0x7b, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xb0, 0x00, 0x8c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x75, 0x04, 0x17, 0x07, 0x6d, 0x10, 0x27, 0x10, 0xf2, 0x04, 0x2a,
+ 0x01, 0x75, 0x12, 0x26, 0x00, 0x28, 0x00, 0x00, 0x10, 0x07, 0x00, 0x7a,
+ 0x00, 0xab, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xfe, 0x75, 0x04, 0x0c,
+ 0x06, 0x48, 0x12, 0x26, 0x00, 0x48, 0x00, 0x00, 0x10, 0x26, 0x02, 0x9a,
+ 0x7a, 0x00, 0x10, 0x06, 0x00, 0x7a, 0x44, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xba, 0x07, 0x4f, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x04,
+ 0x01, 0x74, 0x12, 0x06, 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0x2a,
+ 0x00, 0x00, 0x02, 0xac, 0x07, 0x89, 0x10, 0x27, 0x02, 0xb8, 0x03, 0x7d,
+ 0x01, 0x75, 0x12, 0x06, 0x00, 0x49, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xfe, 0x07, 0x18, 0x12, 0x26, 0x00, 0x2a, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x8b, 0x01, 0x13, 0x01, 0x22, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x05, 0xf6, 0x12, 0x26, 0x00, 0x4a, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x8b, 0x42, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xb6, 0x07, 0x4e, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x92,
+ 0x01, 0x73, 0x12, 0x06, 0x00, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa5,
+ 0x00, 0x00, 0x03, 0xf4, 0x07, 0x52, 0x10, 0x27, 0x02, 0xb8, 0x02, 0xc7,
+ 0x01, 0x3e, 0x12, 0x06, 0x00, 0x4b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x04, 0xb6, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x82,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x89, 0x03, 0xf4, 0x06, 0x14, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x1a,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x4b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xb6, 0x07, 0x50, 0x12, 0x26, 0x00, 0x2b, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x6a, 0x00, 0xee, 0x01, 0x40, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xf4, 0x07, 0x4e, 0x10, 0x27, 0x02, 0xb9, 0x02, 0xc7,
+ 0x01, 0x3e, 0x12, 0x06, 0x00, 0x4b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0f,
+ 0xfe, 0x74, 0x04, 0xb6, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2b, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x7a, 0xff, 0x09, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01,
+ 0xfe, 0x74, 0x03, 0xf4, 0x06, 0x14, 0x12, 0x26, 0x00, 0x4b, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x7a, 0xfe, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x39, 0x04, 0xb6, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2b, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xdf, 0x04, 0x89, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x39, 0x03, 0xf4, 0x06, 0x14, 0x12, 0x26, 0x00, 0x4b, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xdf, 0x04, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0xfe, 0x76, 0x02, 0x52, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xb0, 0xff, 0x5c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xd7,
+ 0xfe, 0x76, 0x02, 0x2a, 0x06, 0x14, 0x10, 0x27, 0x02, 0xb0, 0xff, 0x34,
+ 0x00, 0x00, 0x12, 0x06, 0x00, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x02, 0x1d, 0x08, 0x5a, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x11, 0x21, 0xfe, 0x9c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf5,
+ 0x00, 0x00, 0x02, 0x0c, 0x07, 0x16, 0x12, 0x26, 0x00, 0xf3, 0x00, 0x00,
+ 0x10, 0x07, 0x11, 0x21, 0xfe, 0x8a, 0xfe, 0xbc, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xe0, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0x65,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x2e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x26, 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x03, 0x04,
+ 0x01, 0x76, 0x12, 0x06, 0x00, 0x4e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x04, 0xe0, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2e, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0x60, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x89, 0x04, 0x26, 0x06, 0x14, 0x12, 0x26, 0x00, 0x4e, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0x1c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0xc0, 0x04, 0xe0, 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2e, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x8f, 0x00, 0xf2, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0xc0, 0x04, 0x26, 0x06, 0x14, 0x12, 0x26, 0x00, 0x4e, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x8f, 0x6a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x03, 0xf9, 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x24,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x01, 0x5e, 0x06, 0x14, 0x10, 0x27, 0x02, 0xd4, 0x02, 0xd6,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0x4f, 0x0a, 0x00, 0xff, 0xff, 0x00, 0x02,
+ 0xfe, 0x8a, 0x03, 0xf9, 0x07, 0x6b, 0x10, 0x27, 0x02, 0xb5, 0x02, 0xd9,
+ 0x01, 0x75, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x23, 0x00, 0x01, 0x12, 0x06,
+ 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0x89, 0x02, 0x18,
+ 0x07, 0x31, 0x10, 0x27, 0x00, 0x71, 0xff, 0x3e, 0x01, 0x3b, 0x10, 0x06,
+ 0x05, 0x87, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0xc0, 0x03, 0xf9,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x2f, 0x00, 0x00, 0x10, 0x07, 0x02, 0x8f,
+ 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf5, 0xfe, 0xc0, 0x02, 0x10,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0x8f, 0xff, 0x36, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x4f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x14, 0x03, 0xf9,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0x88, 0x00, 0x88, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1, 0xfe, 0x14, 0x02, 0x20,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0x88, 0xff, 0x34, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x4f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83,
+ 0x07, 0x6c, 0x10, 0x27, 0x10, 0xec, 0x04, 0xe8, 0x01, 0x76, 0x12, 0x06,
+ 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x67,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x50, 0x00, 0x00, 0x10, 0x07, 0x00, 0x76,
+ 0x01, 0x6c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83,
+ 0x07, 0x4f, 0x10, 0x27, 0x10, 0xf3, 0x04, 0xeb, 0x01, 0x74, 0x12, 0x06,
+ 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x67,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x05, 0x52, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x50, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x05, 0x83,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0xe8, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x89, 0x06, 0x67,
+ 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd4, 0x05, 0x4f, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x50, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae,
+ 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x76, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x03, 0xf4,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x04, 0x15, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x51, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x04, 0xae,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x7e, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x89, 0x03, 0xf4,
+ 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x1a, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x51, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0xc0, 0x04, 0xae,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x31, 0x00, 0x00, 0x10, 0x07, 0x02, 0x8f,
+ 0x00, 0xde, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0xc0, 0x03, 0xf4,
+ 0x04, 0x7b, 0x12, 0x26, 0x00, 0x51, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f,
+ 0x7e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x14, 0x04, 0xae,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0x88, 0x00, 0xe5, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x14, 0x03, 0xf4,
+ 0x04, 0x7b, 0x10, 0x27, 0x02, 0x88, 0x00, 0x86, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x51, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x08, 0x5a, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x29,
+ 0x5c, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x07, 0x0c, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00, 0x10, 0x07, 0x11, 0x29,
+ 0xff, 0xba, 0xfe, 0xb2, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x08, 0x56, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x27,
+ 0x61, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x07, 0x0f, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00, 0x10, 0x27, 0x00, 0x6a,
+ 0x00, 0x64, 0x00, 0xff, 0x10, 0x07, 0x10, 0xed, 0x04, 0x00, 0x00, 0x12,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x24, 0x5f, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x07, 0x5e, 0x10, 0x26,
+ 0x00, 0x52, 0x00, 0x00, 0x10, 0x07, 0x11, 0x24, 0xff, 0xbc, 0xff, 0x04,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x32, 0x00, 0x00, 0x10, 0x06, 0x11, 0x23, 0x5e, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x07, 0x5e, 0x10, 0x27,
+ 0x11, 0x23, 0xff, 0xc0, 0xff, 0x04, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x19, 0x07, 0x6c, 0x10, 0x27,
+ 0x10, 0xec, 0x04, 0x28, 0x01, 0x76, 0x12, 0x06, 0x00, 0x33, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0x53, 0x00, 0x00, 0x10, 0x06, 0x00, 0x76, 0x2d, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x19, 0x07, 0x4f, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0x10, 0x01, 0x74, 0x12, 0x06, 0x00, 0x33, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x04, 0x2f, 0x00, 0x00, 0x12, 0x06, 0x00, 0x53, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc, 0x07, 0x4e, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0x10, 0x01, 0x73, 0x12, 0x06, 0x00, 0x35, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x02, 0xf6, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x03, 0xae, 0x00, 0x00, 0x12, 0x06, 0x00, 0x55, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x04, 0xcc, 0x05, 0xd5, 0x10, 0x27,
+ 0x02, 0xd4, 0x04, 0x0a, 0x00, 0x00, 0x10, 0x06, 0x00, 0x35, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x89, 0x02, 0xf6, 0x04, 0x7b, 0x10, 0x27,
+ 0x02, 0xd4, 0x02, 0xd0, 0x00, 0x00, 0x10, 0x06, 0x00, 0x55, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x04, 0xcc, 0x07, 0x31, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0x70, 0x01, 0x3b, 0x10, 0x06, 0x05, 0xaa, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x89, 0x02, 0xf6, 0x05, 0xf5, 0x10, 0x26,
+ 0x00, 0x71, 0x15, 0xff, 0x10, 0x06, 0x05, 0xab, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0xc0, 0x04, 0xcc, 0x05, 0xd5, 0x12, 0x26,
+ 0x00, 0x35, 0x00, 0x00, 0x10, 0x07, 0x02, 0x8f, 0x00, 0xce, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x4b, 0xfe, 0xc0, 0x02, 0xf6, 0x04, 0x7b, 0x12, 0x26,
+ 0x00, 0x55, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f, 0x8c, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x2c, 0x07, 0x4f, 0x10, 0x27,
+ 0x10, 0xf3, 0x04, 0x3f, 0x01, 0x74, 0x12, 0x06, 0x00, 0x36, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67, 0x06, 0x14, 0x10, 0x27,
+ 0x02, 0xb8, 0x03, 0xbd, 0x00, 0x00, 0x12, 0x06, 0x00, 0x56, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xfe, 0x89, 0x04, 0x2c, 0x05, 0xf0, 0x10, 0x27,
+ 0x02, 0xd4, 0x04, 0x16, 0x00, 0x00, 0x10, 0x06, 0x00, 0x36, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xfe, 0x8a, 0x03, 0x67, 0x04, 0x7b, 0x10, 0x27,
+ 0x02, 0xd4, 0x03, 0xbb, 0x00, 0x01, 0x12, 0x06, 0x00, 0x56, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x2c, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xec, 0x04, 0x65, 0x01, 0x76, 0x10, 0x27, 0x10, 0xf3, 0x03, 0x47,
+ 0x01, 0x92, 0x12, 0x06, 0x00, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63,
+ 0xff, 0xe3, 0x03, 0x7f, 0x06, 0x66, 0x12, 0x26, 0x00, 0x56, 0x00, 0x00,
+ 0x10, 0x26, 0x02, 0x9b, 0x98, 0x56, 0x10, 0x07, 0x00, 0x76, 0x00, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x04, 0x2c,
+ 0x08, 0x57, 0x10, 0x26, 0x11, 0x28, 0xe7, 0x00, 0x12, 0x06, 0x00, 0x36,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67,
+ 0x07, 0xc9, 0x10, 0x27, 0x02, 0xb8, 0x03, 0xc2, 0x01, 0xb5, 0x12, 0x06,
+ 0x01, 0x23, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xfe, 0x89, 0x04, 0x2c,
+ 0x07, 0x4f, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x25, 0x01, 0x74, 0x12, 0x06,
+ 0x05, 0xb2, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63, 0xfe, 0x8a, 0x03, 0x67,
+ 0x05, 0xde, 0x10, 0x27, 0x02, 0xb8, 0x03, 0xbd, 0xff, 0xca, 0x12, 0x06,
+ 0x05, 0xb3, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x04, 0x6c,
+ 0x07, 0x4f, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x00, 0x01, 0x74, 0x12, 0x06,
+ 0x00, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31, 0x00, 0x00, 0x02, 0xa7,
+ 0x07, 0x89, 0x10, 0x27, 0x02, 0xb8, 0x02, 0xcb, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x57, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa, 0xfe, 0x89, 0x04, 0x6c,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x03, 0xff, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31, 0xfe, 0x89, 0x02, 0xa7,
+ 0x05, 0x9e, 0x10, 0x27, 0x02, 0xd4, 0x03, 0x84, 0x00, 0x00, 0x10, 0x06,
+ 0x00, 0x57, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa, 0xfe, 0xc0, 0x04, 0x6c,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x37, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f,
+ 0x58, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31, 0xfe, 0xc0, 0x02, 0xd0,
+ 0x05, 0x9e, 0x10, 0x26, 0x02, 0x8f, 0xf5, 0x00, 0x12, 0x06, 0x00, 0x57,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfa, 0xfe, 0x14, 0x04, 0x6c,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0x88, 0x00, 0x67, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31, 0xfe, 0x14, 0x02, 0xd6,
+ 0x05, 0x9e, 0x10, 0x27, 0x02, 0x88, 0xff, 0xea, 0xf9, 0x26, 0x12, 0x06,
+ 0x00, 0x57, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xfe, 0x89, 0x04, 0xa5,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd5, 0x04, 0x72, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x38, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xfe, 0x89, 0x03, 0xe9,
+ 0x04, 0x7b, 0x10, 0x27, 0x02, 0xd5, 0x04, 0x08, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xfe, 0x76, 0x04, 0xa5,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0xb0,
+ 0x00, 0xda, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xfe, 0x76, 0x03, 0xe9,
+ 0x04, 0x7b, 0x12, 0x26, 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x02, 0xb0,
+ 0x00, 0x81, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xfe, 0x4b, 0x04, 0xa5,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0xde,
+ 0x04, 0x63, 0x00, 0x37, 0xff, 0xff, 0x00, 0x9c, 0xfe, 0x4b, 0x03, 0xe9,
+ 0x04, 0x7b, 0x12, 0x26, 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x02, 0xde,
+ 0x04, 0x03, 0x00, 0x37, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x08, 0x5a, 0x10, 0x26, 0x11, 0x29, 0x29, 0x00, 0x12, 0x06, 0x00, 0x38,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x07, 0xec, 0x10, 0x26, 0x01, 0x2b, 0x00, 0x00, 0x10, 0x07, 0x00, 0x76,
+ 0x00, 0x87, 0x01, 0x86, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x08, 0x34, 0x10, 0x26, 0x11, 0x1f, 0x2d, 0x00, 0x12, 0x06, 0x00, 0x38,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x06, 0xf4, 0x10, 0x27, 0x11, 0x1f, 0xff, 0xce, 0xfe, 0xc0, 0x12, 0x06,
+ 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x07, 0x7d, 0x12, 0x26, 0x00, 0x39, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9e,
+ 0x00, 0xd5, 0x01, 0x46, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c,
+ 0x06, 0x37, 0x12, 0x26, 0x00, 0x59, 0x00, 0x00, 0x10, 0x06, 0x02, 0x9e,
+ 0x62, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e, 0xfe, 0x89, 0x04, 0xde,
+ 0x05, 0xd5, 0x10, 0x26, 0x00, 0x39, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x43, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x89, 0x04, 0x0c,
+ 0x04, 0x60, 0x10, 0x26, 0x00, 0x59, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x03, 0xee, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x07, 0x72, 0x10, 0x27, 0x10, 0xee, 0x05, 0x5c, 0x01, 0x7c, 0x12, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x06, 0x6b, 0x10, 0x27, 0x00, 0x43, 0x00, 0xee, 0x00, 0x05, 0x12, 0x06,
+ 0x00, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x07, 0x72, 0x10, 0x27, 0x10, 0xec, 0x05, 0x5c, 0x01, 0x7c, 0x12, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x06, 0x6d, 0x10, 0x27, 0x00, 0x76, 0x01, 0x5f, 0x00, 0x07, 0x12, 0x06,
+ 0x00, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x07, 0x4e, 0x10, 0x27, 0x00, 0x6a, 0x01, 0xc3, 0x01, 0x3e, 0x12, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x06, 0x10, 0x10, 0x27, 0x00, 0x6a, 0x01, 0x24, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3,
+ 0x07, 0x4e, 0x10, 0x27, 0x10, 0xf3, 0x05, 0x5c, 0x01, 0x73, 0x12, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x04, 0xc0, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x5a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3d, 0xfe, 0x89, 0x06, 0xe3,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x3a, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x05, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d, 0xfe, 0x89, 0x05, 0x97,
+ 0x04, 0x60, 0x12, 0x26, 0x00, 0x5a, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0xc3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6,
+ 0x07, 0x4f, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x4f, 0x01, 0x73, 0x12, 0x06,
+ 0x00, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x04, 0x07,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x03, 0xf2, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x5b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6,
+ 0x07, 0x4e, 0x12, 0x26, 0x00, 0x3b, 0x00, 0x00, 0x10, 0x07, 0x00, 0x6a,
+ 0x00, 0xb6, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x04, 0x07,
+ 0x06, 0x10, 0x12, 0x26, 0x00, 0x5b, 0x00, 0x00, 0x10, 0x06, 0x00, 0x6a,
+ 0x5c, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x07, 0x50, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x00, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x3c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x06, 0x14, 0x10, 0x27, 0x02, 0xb8, 0x03, 0xf0, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x5c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0x00, 0x00, 0x04, 0x9c,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xef, 0x04, 0x45, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f, 0x00, 0x00, 0x03, 0x79,
+ 0x06, 0x66, 0x12, 0x26, 0x00, 0x5d, 0x00, 0x00, 0x10, 0x06, 0x02, 0x88,
+ 0x17, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0xfe, 0x89, 0x04, 0x9c,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x3d, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x5d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f, 0xfe, 0x89, 0x03, 0x79,
+ 0x04, 0x60, 0x12, 0x26, 0x00, 0x5d, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x03, 0xc6, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0xfe, 0xc0, 0x04, 0x9c,
+ 0x05, 0xd5, 0x12, 0x26, 0x00, 0x3d, 0x00, 0x00, 0x10, 0x07, 0x02, 0x8f,
+ 0x00, 0xb3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f, 0xfe, 0xc0, 0x03, 0x79,
+ 0x04, 0x60, 0x12, 0x26, 0x00, 0x5d, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f,
+ 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0xc0, 0x03, 0xf4,
+ 0x06, 0x14, 0x12, 0x26, 0x00, 0x4b, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f,
+ 0x5c, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x02, 0xa7,
+ 0x07, 0x4e, 0x12, 0x26, 0x00, 0x57, 0x00, 0x00, 0x10, 0x07, 0x00, 0x6a,
+ 0xff, 0x42, 0x01, 0x3e, 0xff, 0xff, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x97,
+ 0x07, 0x06, 0x12, 0x26, 0x00, 0x5a, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9c,
+ 0x01, 0x22, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x07, 0x06, 0x12, 0x26, 0x00, 0x5c, 0x00, 0x00, 0x10, 0x06, 0x02, 0x9c,
+ 0x74, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x04, 0xd8,
+ 0x06, 0x14, 0x12, 0x26, 0x00, 0x44, 0x00, 0x00, 0x10, 0x07, 0x02, 0x80,
+ 0x03, 0x77, 0x00, 0x00, 0xff, 0xff, 0x00, 0x2a, 0x00, 0x00, 0x02, 0xac,
+ 0x07, 0x89, 0x10, 0x27, 0x02, 0xb8, 0x03, 0x7d, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0xac,
+ 0x06, 0x14, 0x00, 0x18, 0x00, 0x00, 0x21, 0x23, 0x11, 0x07, 0x27, 0x37,
+ 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x11, 0x37, 0x17, 0x05, 0x01, 0x6f, 0xa6, 0x85, 0x42,
+ 0xc7, 0x9f, 0x9f, 0x9c, 0xaa, 0x9d, 0x9e, 0x5a, 0x23, 0x22, 0xc1, 0x43,
+ 0xfe, 0xfc, 0x02, 0x14, 0x68, 0x6a, 0x9d, 0x01, 0x1e, 0x8f, 0x4e, 0xbb,
+ 0xab, 0x99, 0x28, 0x29, 0x67, 0xfe, 0x74, 0x98, 0x69, 0xcf, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x02, 0xac, 0x06, 0x14, 0x00, 0x17,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33,
+ 0x36, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06, 0x07, 0x33,
+ 0x15, 0x23, 0x01, 0x6f, 0xa6, 0x9f, 0x9f, 0x9f, 0xa1, 0x0c, 0x40, 0x4e,
+ 0xaa, 0x9d, 0x9e, 0x5a, 0x23, 0x1b, 0x05, 0xe4, 0xe6, 0x03, 0x45, 0x8f,
+ 0x8c, 0x8f, 0x89, 0x46, 0x56, 0x99, 0x28, 0x20, 0x44, 0x8f, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa0, 0xff, 0xe3, 0x05, 0x22, 0x05, 0xf2, 0x00, 0x37,
+ 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x0e, 0x03, 0x15, 0x11, 0x23, 0x11,
+ 0x34, 0x3e, 0x03, 0x33, 0x32, 0x04, 0x17, 0x22, 0x06, 0x15, 0x14, 0x1e,
+ 0x05, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x2e, 0x07, 0x35, 0x34, 0x36, 0x03, 0x9c, 0x62, 0x9c,
+ 0x3a, 0x5c, 0x55, 0x3a, 0x22, 0xb7, 0x34, 0x5a, 0x81, 0x95, 0x5a, 0xc3,
+ 0x01, 0x11, 0x32, 0xba, 0xe8, 0x3d, 0x5f, 0x74, 0x74, 0x60, 0x3c, 0xee,
+ 0xbe, 0xa2, 0xb5, 0x62, 0x9f, 0x64, 0x58, 0x88, 0x25, 0x3f, 0x52, 0x5a,
+ 0x5a, 0x52, 0x3f, 0x25, 0xc9, 0x04, 0xf4, 0x5a, 0x18, 0x40, 0x68, 0xa7,
+ 0x6f, 0xfc, 0x88, 0x03, 0x91, 0x83, 0xcf, 0x8b, 0x5c, 0x28, 0xc5, 0xbd,
+ 0x7d, 0x5f, 0x2d, 0x43, 0x2d, 0x2d, 0x3e, 0x54, 0x8c, 0x5c, 0xa4, 0xc9,
+ 0x5f, 0xd0, 0x45, 0x46, 0x76, 0x58, 0x35, 0x50, 0x33, 0x29, 0x20, 0x24,
+ 0x32, 0x42, 0x67, 0x43, 0x8f, 0xbb, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x05, 0xf0, 0x10, 0x06, 0x03, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0xfe, 0x89, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x27,
+ 0x02, 0xd4, 0x04, 0x3e, 0x00, 0x00, 0x12, 0x06, 0x00, 0x24, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xfe, 0x89, 0x03, 0xc3, 0x04, 0x7b, 0x10, 0x27,
+ 0x02, 0xd4, 0x03, 0xb7, 0x00, 0x00, 0x12, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0xf0, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba, 0x04, 0x43, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x06, 0x7b, 0x12, 0x26,
+ 0x00, 0x44, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba, 0x03, 0xe5, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x3a, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2a, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x04, 0x37, 0x06, 0xc5, 0x10, 0x27,
+ 0x11, 0x2a, 0xff, 0xa1, 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x3a, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2b, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x06, 0xc6, 0x10, 0x26,
+ 0x00, 0x44, 0x00, 0x00, 0x10, 0x07, 0x11, 0x2b, 0xff, 0x9f, 0xfe, 0x8c,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x5b, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x31, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x04, 0x27, 0x06, 0xe6, 0x10, 0x27,
+ 0x11, 0x31, 0xff, 0xa1, 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x75, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2c, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x07, 0x00, 0x10, 0x27,
+ 0x11, 0x2c, 0xff, 0xa1, 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0xfe, 0x89, 0x04, 0xde, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x84, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x04, 0x37, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xfe, 0x89, 0x03, 0xc3, 0x06, 0x66, 0x12, 0x26,
+ 0x00, 0xa4, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x03, 0xb8, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2e, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x07, 0x04, 0x10, 0x27,
+ 0x11, 0x2e, 0xff, 0x9c, 0xfe, 0xaa, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x5a, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2f, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x07, 0x04, 0x10, 0x27,
+ 0x11, 0x2f, 0xff, 0x9d, 0xfe, 0xaa, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x8b, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x30, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x07, 0x35, 0x10, 0x27,
+ 0x11, 0x30, 0xff, 0x9f, 0xfe, 0xaa, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x08, 0x59, 0x12, 0x26,
+ 0x00, 0x24, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2d, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3, 0x07, 0x03, 0x10, 0x26,
+ 0x00, 0x44, 0x00, 0x00, 0x10, 0x07, 0x11, 0x2d, 0xff, 0x9d, 0xfe, 0xaa,
+ 0xff, 0xff, 0x00, 0x0e, 0xfe, 0x89, 0x04, 0xde, 0x07, 0x92, 0x12, 0x26,
+ 0x00, 0xc4, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x04, 0x46, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6e, 0xfe, 0x89, 0x03, 0xc3, 0x06, 0x1f, 0x12, 0x26,
+ 0x00, 0xc5, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x03, 0xc8, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x04, 0x17, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x04, 0x28, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x89, 0x04, 0x0c, 0x04, 0x7b, 0x10, 0x26,
+ 0x00, 0x48, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x04, 0x17, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0xf0, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba, 0x04, 0x28, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x7b, 0x12, 0x26,
+ 0x00, 0x48, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba, 0x04, 0x18, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x07, 0x5e, 0x10, 0x27,
+ 0x10, 0xed, 0x04, 0x28, 0x01, 0x75, 0x12, 0x06, 0x00, 0x28, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0x37, 0x10, 0x27,
+ 0x02, 0x9e, 0x00, 0x88, 0x00, 0x00, 0x12, 0x06, 0x00, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x96, 0x08, 0x3a, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2a, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x6b, 0x06, 0xc5, 0x10, 0x27,
+ 0x11, 0x2a, 0xff, 0xd5, 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x08, 0x3a, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2b, 0xf0, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x06, 0xc6, 0x10, 0x27,
+ 0x11, 0x2b, 0xff, 0xd5, 0xfe, 0x8c, 0x10, 0x06, 0x00, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x77, 0x08, 0x5b, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x06, 0x11, 0x31, 0xf0, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x5c, 0x06, 0xe6, 0x10, 0x26,
+ 0x00, 0x48, 0x00, 0x00, 0x10, 0x07, 0x11, 0x31, 0xff, 0xd5, 0xfe, 0x8b,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x08, 0x75, 0x12, 0x26,
+ 0x00, 0x28, 0x00, 0x00, 0x10, 0x06, 0x11, 0x2c, 0xec, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x0c, 0x07, 0x00, 0x10, 0x27,
+ 0x11, 0x2c, 0xff, 0xd6, 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0x89, 0x04, 0x17, 0x07, 0x6d, 0x12, 0x26,
+ 0x00, 0x8c, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4, 0x04, 0x28, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0x89, 0x04, 0x0c, 0x06, 0x66, 0x10, 0x27,
+ 0x02, 0xd4, 0x04, 0x17, 0x00, 0x00, 0x10, 0x26, 0x06, 0x09, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x88, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x51,
+ 0x00, 0x00, 0x01, 0xe5, 0x07, 0xf0, 0x12, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xba, 0x02, 0xd3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x3d,
+ 0x00, 0x00, 0x01, 0xd1, 0x06, 0x7c, 0x12, 0x26, 0x00, 0xf3, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xba, 0x02, 0xbf, 0x00, 0x01, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x89, 0x01, 0x6b, 0x05, 0xd5, 0x10, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x00, 0xab,
+ 0xfe, 0x89, 0x01, 0x54, 0x06, 0x14, 0x10, 0x26, 0x00, 0x4c, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x02, 0xcd, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xfe, 0x89, 0x05, 0x44, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0xa3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x89, 0x04, 0x03, 0x04, 0x7b, 0x10, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x07, 0xf0, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xba, 0x04, 0xa3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x7b, 0x12, 0x26, 0x00, 0x52, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xba, 0x04, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x08, 0x3a, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x2a, 0x61, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x53, 0x06, 0xc5, 0x10, 0x27, 0x11, 0x2a, 0xff, 0xbd,
+ 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x08, 0x3a, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x2b, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0xc6, 0x10, 0x27, 0x11, 0x2b, 0xff, 0xbc,
+ 0xfe, 0x8c, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x08, 0x5b, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x31, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x44, 0x06, 0xe6, 0x10, 0x27, 0x11, 0x31, 0xff, 0xbd,
+ 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x05, 0x44, 0x08, 0x75, 0x12, 0x26, 0x00, 0x32, 0x00, 0x00,
+ 0x10, 0x06, 0x11, 0x2c, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x07, 0x00, 0x10, 0x27, 0x11, 0x2c, 0xff, 0xbd,
+ 0xfe, 0x8b, 0x10, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xfe, 0x89, 0x05, 0x44, 0x07, 0x6d, 0x12, 0x26, 0x00, 0x96, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x04, 0xa3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x89, 0x04, 0x03, 0x06, 0x66, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x01,
+ 0x00, 0x00, 0x10, 0x26, 0x06, 0x1d, 0x00, 0x00, 0x10, 0x06, 0x02, 0x88,
+ 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5c, 0xff, 0xe3, 0x05, 0x81,
+ 0x07, 0x6b, 0x10, 0x27, 0x10, 0xec, 0x04, 0xa3, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6a, 0xff, 0xe3, 0x04, 0x58,
+ 0x06, 0x66, 0x10, 0x26, 0x00, 0x76, 0x68, 0x00, 0x12, 0x06, 0x01, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5c, 0xff, 0xe3, 0x05, 0x81,
+ 0x07, 0x6b, 0x10, 0x27, 0x10, 0xee, 0x04, 0xa3, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6a, 0xff, 0xe3, 0x04, 0x58,
+ 0x06, 0x66, 0x10, 0x26, 0x00, 0x43, 0x68, 0x00, 0x12, 0x06, 0x01, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5c, 0xff, 0xe3, 0x05, 0x81,
+ 0x07, 0xf0, 0x12, 0x26, 0x01, 0x62, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0xa3, 0x01, 0x75, 0xff, 0xff, 0x00, 0x6a, 0xff, 0xe3, 0x04, 0x58,
+ 0x06, 0x7b, 0x12, 0x26, 0x01, 0x63, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5c, 0xff, 0xe3, 0x05, 0x81,
+ 0x07, 0x5e, 0x10, 0x27, 0x10, 0xed, 0x04, 0xa3, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6a, 0xff, 0xe3, 0x04, 0x58,
+ 0x06, 0x37, 0x10, 0x26, 0x02, 0x9e, 0x68, 0x00, 0x12, 0x06, 0x01, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5c, 0xfe, 0x89, 0x05, 0x81,
+ 0x06, 0x14, 0x12, 0x26, 0x01, 0x62, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0xa3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6a, 0xfe, 0x89, 0x04, 0x58,
+ 0x04, 0xeb, 0x12, 0x26, 0x01, 0x63, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xfe, 0x89, 0x04, 0xa5,
+ 0x05, 0xd5, 0x10, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x76, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xfe, 0x89, 0x03, 0xe9,
+ 0x04, 0x7b, 0x10, 0x26, 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x08, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x07, 0xf0, 0x12, 0x26, 0x00, 0x38, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x70, 0x01, 0x75, 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9,
+ 0x06, 0x7b, 0x12, 0x26, 0x00, 0x58, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9b, 0xff, 0xf7, 0x05, 0xbc,
+ 0x07, 0x6b, 0x10, 0x27, 0x10, 0xec, 0x04, 0x70, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x71, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9e, 0xff, 0xe3, 0x04, 0xdf,
+ 0x06, 0x66, 0x10, 0x26, 0x00, 0x76, 0x6f, 0x00, 0x12, 0x06, 0x01, 0x72,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9b, 0xff, 0xf7, 0x05, 0xbc,
+ 0x07, 0x6b, 0x10, 0x27, 0x10, 0xee, 0x04, 0x70, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x71, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9e, 0xff, 0xe3, 0x04, 0xdf,
+ 0x06, 0x66, 0x10, 0x26, 0x00, 0x43, 0x6f, 0x00, 0x12, 0x06, 0x01, 0x72,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9b, 0xff, 0xf7, 0x05, 0xbc,
+ 0x07, 0xf0, 0x12, 0x26, 0x01, 0x71, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x70, 0x01, 0x75, 0xff, 0xff, 0x00, 0x9e, 0xff, 0xe3, 0x04, 0xdf,
+ 0x06, 0x7b, 0x12, 0x26, 0x01, 0x72, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9b, 0xff, 0xf7, 0x05, 0xbc,
+ 0x07, 0x5e, 0x10, 0x27, 0x10, 0xed, 0x04, 0x70, 0x01, 0x75, 0x12, 0x06,
+ 0x01, 0x71, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9e, 0xff, 0xe3, 0x04, 0xdf,
+ 0x06, 0x37, 0x10, 0x26, 0x02, 0x9e, 0x73, 0x00, 0x12, 0x06, 0x01, 0x72,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9b, 0xfe, 0x89, 0x05, 0xbc,
+ 0x06, 0x14, 0x12, 0x26, 0x01, 0x71, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x76, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9e, 0xfe, 0x89, 0x04, 0xdf,
+ 0x04, 0xeb, 0x12, 0x26, 0x01, 0x72, 0x00, 0x00, 0x10, 0x07, 0x02, 0xd4,
+ 0x04, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x07, 0x72, 0x12, 0x26, 0x00, 0x3c, 0x00, 0x00, 0x10, 0x07, 0x10, 0xee,
+ 0x04, 0x00, 0x01, 0x7c, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x06, 0x6b, 0x12, 0x26, 0x00, 0x5c, 0x00, 0x00, 0x10, 0x06, 0x00, 0x43,
+ 0x1e, 0x05, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0x89, 0x04, 0x6a,
+ 0x05, 0xd5, 0x10, 0x27, 0x02, 0xd4, 0x04, 0x04, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x3c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x04, 0x60, 0x10, 0x27, 0x02, 0xd4, 0x04, 0xe8, 0x00, 0x00, 0x12, 0x06,
+ 0x00, 0x5c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x07, 0xf7, 0x12, 0x26, 0x00, 0x3c, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x04, 0x00, 0x01, 0x7c, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x06, 0x82, 0x12, 0x26, 0x00, 0x5c, 0x00, 0x00, 0x10, 0x07, 0x02, 0xba,
+ 0x03, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a,
+ 0x07, 0x5e, 0x10, 0x27, 0x10, 0xed, 0x04, 0x00, 0x01, 0x75, 0x12, 0x06,
+ 0x00, 0x3c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x06, 0x37, 0x10, 0x26, 0x02, 0x9e, 0x6b, 0x00, 0x12, 0x06, 0x00, 0x5c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x80,
+ 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x13, 0x33, 0x11, 0x33, 0x11, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0xb5, 0xb6, 0xd1, 0xb5, 0x02, 0x8f, 0xfb, 0x35,
+ 0x05, 0xd5, 0xfa, 0xd5, 0x05, 0x2b, 0xfa, 0xd5, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x03, 0x54, 0x06, 0x14, 0x00, 0x13,
+ 0x00, 0x00, 0x13, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xae, 0xa5,
+ 0xca, 0xa5, 0x91, 0x91, 0xa5, 0xca, 0xa5, 0x91, 0x91, 0x06, 0x14, 0x93,
+ 0x93, 0x93, 0x7d, 0xfa, 0xfc, 0x05, 0x04, 0xfa, 0xfc, 0x05, 0x04, 0x7d,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x06, 0xfc, 0x65, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x34, 0x41, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x07, 0x07, 0x09, 0x00, 0x85, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x77, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x0a, 0x77, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0x00, 0x90, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x0b, 0x6a, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x18, 0x3d, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x26, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xff, 0x39, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x26, 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0xff, 0x0e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x06, 0x42, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x26, 0x01, 0x64, 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x89, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0x00, 0x00, 0x06, 0x42, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x26, 0x01, 0x64, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x05, 0x7b, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x26, 0x00, 0x9d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x05, 0xb6,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x26, 0x00, 0xd8, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x17, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x05, 0x0a, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x26, 0x2c, 0x00,
+ 0x10, 0x07, 0x07, 0x0b, 0xff, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0x00, 0x00, 0x05, 0x4a, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x26, 0x6c, 0x00,
+ 0x10, 0x07, 0x07, 0x18, 0xff, 0x60, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x61, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x06, 0xfc, 0x3d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x61, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x34, 0x33, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x66, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x09, 0x1d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x66, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x16, 0x21, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x80, 0x06, 0x66, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x0a, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x9d, 0x06, 0x66, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x17, 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x04, 0xa9, 0x06, 0x61, 0x10, 0x27, 0x03, 0x2a, 0x00, 0x92,
+ 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x04, 0xa9, 0x06, 0x61, 0x10, 0x27,
+ 0x03, 0x2a, 0x00, 0x92, 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0xfe, 0xa7,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x06, 0x7f,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x2a, 0x02, 0x68, 0x00, 0x00, 0x10, 0x06,
+ 0x07, 0x09, 0x89, 0x00, 0xff, 0xff, 0x00, 0x05, 0x00, 0x00, 0x06, 0x8f,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x2a, 0x02, 0x78, 0x00, 0x00, 0x10, 0x06,
+ 0x07, 0x16, 0x94, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x2a, 0x01, 0xeb, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x0a, 0xff, 0x64, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0x00, 0x00, 0x06, 0x39, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2a, 0x02, 0x21,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0x00, 0x95, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0x00, 0x92, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x73, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x65, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x06, 0x07, 0x0a, 0x77, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0x00, 0x9d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0b, 0x00, 0x8c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x06, 0x07, 0x18, 0x7a, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x05, 0x52, 0x06, 0x61, 0x10, 0x27,
+ 0x03, 0x2c, 0x00, 0x9d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xfe, 0xa7,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x05, 0x4f,
+ 0x06, 0x61, 0x10, 0x27, 0x03, 0x2c, 0x00, 0x9a, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0x00, 0x00, 0x07, 0x1d, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2c, 0x02, 0x68,
+ 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x89, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0x00, 0x00, 0x07, 0x23, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2c, 0x02, 0x6d,
+ 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x06, 0xb0, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2c, 0x01, 0xfb,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x64, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x06, 0xdc, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x2c, 0x02, 0x27, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0xff, 0x7e,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04,
+ 0x07, 0x6d, 0x10, 0x27, 0x03, 0x2c, 0x01, 0x4f, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x0b, 0xff, 0x62, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0x00, 0x00, 0x06, 0x1d, 0x07, 0x6d, 0x10, 0x27, 0x03, 0x2c, 0x01, 0x67,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x18, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x8b, 0x00, 0x00, 0x02, 0x30, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xff, 0x2c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x82, 0x00, 0x00, 0x02, 0x30, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0xff, 0x24, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xb8, 0x00, 0x00, 0x02, 0x74, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x09, 0xff, 0x3d, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x02, 0x80, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x16, 0xff, 0x50, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x02, 0x9b, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x62, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xd7, 0x00, 0x00, 0x02, 0xa3, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0xff, 0x50, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x02, 0x30, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0b, 0xff, 0x2c, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xcb, 0x00, 0x00, 0x02, 0x30, 0x07, 0x6d, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x18, 0xff, 0x28, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x02, 0x08, 0x06, 0x61, 0x10, 0x27,
+ 0x03, 0x2e, 0x00, 0x9d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xfe, 0xa7,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x01, 0xfd,
+ 0x06, 0x61, 0x10, 0x27, 0x03, 0x2e, 0x00, 0x92, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0x00, 0x00, 0x03, 0xde, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2e, 0x02, 0x72,
+ 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x89, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0x00, 0x00, 0x03, 0xde, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2e, 0x02, 0x72,
+ 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x03, 0x67, 0x06, 0x66, 0x10, 0x27, 0x03, 0x2e, 0x01, 0xfc,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x64, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x03, 0x9d, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x2e, 0x02, 0x32, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0xff, 0x7e,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x02, 0xd2,
+ 0x07, 0x6d, 0x10, 0x27, 0x03, 0x2e, 0x01, 0x67, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x0b, 0xff, 0x62, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0x00, 0x00, 0x02, 0xd9, 0x07, 0x6d, 0x10, 0x27, 0x03, 0x2e, 0x01, 0x6d,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x18, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x06, 0x06, 0xfc, 0x6c, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x06, 0x07, 0x34, 0x63, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x5b, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x4c, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x06, 0x07, 0x0a, 0x7a, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x53, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0x00, 0x82, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0xff, 0xe3, 0x05, 0x63, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x34, 0x20, 0x00, 0x10, 0x07, 0x06, 0xfc, 0xfe, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0xff, 0xe3, 0x05, 0xb4, 0x06, 0x61, 0x10, 0x26,
+ 0x03, 0x34, 0x70, 0x00, 0x10, 0x07, 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0xff, 0xe3, 0x07, 0x7b, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x34, 0x02, 0x37, 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x89, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0xff, 0xe3, 0x07, 0x84, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x34, 0x02, 0x40, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0xff, 0xe3, 0x06, 0x5b, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x34, 0x01, 0x17, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04, 0xff, 0xe3, 0x06, 0x95,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x34, 0x01, 0x52, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x17, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x61, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x06, 0xfc, 0x37, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x61, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x34, 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x09, 0x23, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x16, 0x1e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x0a, 0x56, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x17, 0x4e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x0b, 0x32, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x18, 0x16, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x05, 0xa9, 0x06, 0x61, 0x10, 0x27, 0x03, 0x39, 0x01, 0x3f,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0x00, 0x00, 0x07, 0x33, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x39, 0x02, 0xc9, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x07, 0x4e, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x39, 0x02, 0xe4, 0x00, 0x00, 0x10, 0x07, 0x07, 0x17, 0xff, 0x7e,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x06, 0x7b,
+ 0x07, 0x6d, 0x10, 0x27, 0x03, 0x39, 0x02, 0x11, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x18, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x61, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfc, 0x01, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x61, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x34, 0x01, 0x32, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x09, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x16, 0x01, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x0a, 0x01, 0x7a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x17, 0x01, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x0b, 0x01, 0x40, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x05, 0x8a, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x18, 0x01, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x05, 0x81, 0x06, 0x61, 0x10, 0x26, 0x03, 0x3d, 0x46, 0x00,
+ 0x10, 0x07, 0x06, 0xfc, 0xfe, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x05, 0xcd, 0x06, 0x61, 0x10, 0x27, 0x03, 0x3d, 0x00, 0x92,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x07, 0x92, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x3d, 0x02, 0x57, 0x00, 0x00, 0x10, 0x06, 0x07, 0x09, 0x89, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0x00, 0x00, 0x07, 0x9d, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x3d, 0x02, 0x62, 0x00, 0x00, 0x10, 0x06, 0x07, 0x16, 0x94, 0x00,
+ 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x06, 0x8a, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x3d, 0x01, 0x4f, 0x00, 0x00, 0x10, 0x07, 0x07, 0x0a, 0xff, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x06, 0xba,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x3d, 0x01, 0x7f, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x17, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0x00, 0x00, 0x06, 0x5d, 0x07, 0x6d, 0x10, 0x27, 0x03, 0x3d, 0x01, 0x22,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x0b, 0xff, 0x62, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x06, 0x95, 0x07, 0x6d, 0x10, 0x27,
+ 0x03, 0x3d, 0x01, 0x5a, 0x00, 0x00, 0x10, 0x07, 0x07, 0x18, 0xff, 0x60,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x45, 0x00, 0x00, 0x10, 0x06, 0x07, 0x28,
+ 0x68, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x40, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x66, 0x10, 0x26, 0x03, 0x49, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x28, 0x4c, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x77,
+ 0xff, 0xe3, 0x03, 0x68, 0x06, 0x66, 0x10, 0x06, 0x03, 0x41, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0x00, 0xb2, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x06,
+ 0x03, 0x42, 0x00, 0x00, 0xff, 0xff, 0xff, 0x98, 0x00, 0x00, 0x02, 0x30,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28,
+ 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x95, 0x00, 0x00, 0x02, 0x56,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x43, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x26, 0x03, 0x53, 0x00, 0x00,
+ 0x10, 0x06, 0x07, 0x28, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x06, 0x66, 0x10, 0x06, 0x03, 0x60, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x26,
+ 0x03, 0x59, 0x00, 0x00, 0x10, 0x06, 0x07, 0x28, 0x2b, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x66, 0x10, 0x06,
+ 0x03, 0x61, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28,
+ 0x01, 0x2c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x61, 0x10, 0x26, 0x06, 0x4c, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x61, 0x10, 0x26, 0x06, 0x4d, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x06, 0x4e, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x06, 0x4f, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x06, 0x50, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x06, 0x51, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x52, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x53, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0xfe, 0x56, 0x04, 0xde, 0x06, 0x61, 0x10, 0x26, 0x06, 0x54, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0xfe, 0x56, 0x04, 0xde, 0x06, 0x61, 0x10, 0x26, 0x06, 0x55, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x06, 0x42, 0x06, 0x66, 0x10, 0x26, 0x06, 0x56, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0xfe, 0x56, 0x06, 0x42, 0x06, 0x66, 0x10, 0x26, 0x06, 0x57, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0x7b, 0x06, 0x66, 0x10, 0x26, 0x06, 0x58, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x05, 0xb6, 0x06, 0x66, 0x10, 0x26, 0x06, 0x59, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0x0a, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x5a, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x00, 0xd4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0xfe, 0x56, 0x05, 0x4a, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x5b, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x13, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x61, 0x10, 0x26, 0x06, 0x68, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x61, 0x10, 0x26, 0x06, 0x69, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26, 0x06, 0x6a, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26, 0x06, 0x6b, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26, 0x06, 0x6c, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x66, 0x10, 0x26, 0x06, 0x6d, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x6e, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x6f, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0x52, 0x06, 0x61, 0x10, 0x26, 0x06, 0x70, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x75, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0x4f, 0x06, 0x61, 0x10, 0x26, 0x06, 0x71, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x72, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x07, 0x1d, 0x06, 0x66, 0x10, 0x26, 0x06, 0x72, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x03, 0x40, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0xfe, 0x56, 0x07, 0x23, 0x06, 0x66, 0x10, 0x26, 0x06, 0x73, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x03, 0x45, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x06, 0xb0, 0x06, 0x66, 0x10, 0x26, 0x06, 0x74, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0xd3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x06, 0xdc, 0x06, 0x66, 0x10, 0x26, 0x06, 0x75, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x06, 0x04, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x76, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x27, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0xfe, 0x56, 0x06, 0x1d, 0x07, 0x6d, 0x10, 0x26, 0x06, 0x77, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x61, 0x10, 0x26, 0x06, 0xa0, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x61, 0x10, 0x26, 0x06, 0xa1, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x06, 0xa2, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x06, 0xa3, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x06, 0xa4, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x06, 0xa5, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x07, 0x6d, 0x10, 0x26, 0x06, 0xa6, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xfe, 0x56, 0x05, 0x8a, 0x07, 0x6d, 0x10, 0x26, 0x06, 0xa7, 0x00, 0x00,
+ 0x10, 0x07, 0x03, 0x16, 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0x81, 0x06, 0x61, 0x10, 0x26, 0x06, 0xa8, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x39, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x05, 0xcd, 0x06, 0x61, 0x10, 0x26, 0x06, 0xa9, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x01, 0x85, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x07, 0x92, 0x06, 0x66, 0x10, 0x26, 0x06, 0xaa, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x03, 0x4a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x05,
+ 0xfe, 0x56, 0x07, 0x9d, 0x06, 0x66, 0x10, 0x26, 0x06, 0xab, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x03, 0x55, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x06, 0x8a, 0x06, 0x66, 0x10, 0x26, 0x06, 0xac, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x42, 0x00, 0x00, 0xff, 0xff, 0x00, 0x04,
+ 0xfe, 0x56, 0x06, 0xba, 0x06, 0x66, 0x10, 0x26, 0x06, 0xad, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x72, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06,
+ 0xfe, 0x56, 0x06, 0x5d, 0x07, 0x6d, 0x10, 0x26, 0x06, 0xae, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x15, 0x00, 0x00, 0xff, 0xff, 0x00, 0x03,
+ 0xfe, 0x56, 0x06, 0x95, 0x07, 0x6d, 0x10, 0x26, 0x06, 0xaf, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x02, 0x4e, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe7, 0x04, 0x67, 0x06, 0x48, 0x10, 0x26, 0x03, 0x45, 0x00, 0x00,
+ 0x10, 0x06, 0x02, 0x9a, 0x6e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe7, 0x04, 0x67, 0x05, 0xf6, 0x10, 0x26, 0x03, 0x45, 0x00, 0x00,
+ 0x10, 0x06, 0x00, 0x71, 0x6d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x06, 0xb0, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x04, 0x79, 0x10, 0x26, 0x03, 0x45, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x66, 0x10, 0x26, 0x03, 0x40, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe7, 0x04, 0x67, 0x06, 0x37, 0x10, 0x26, 0x03, 0x45, 0x00, 0x00,
+ 0x10, 0x06, 0x06, 0xfd, 0x63, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x67, 0x06, 0x37, 0x10, 0x26, 0x06, 0xf3, 0x00, 0x00,
+ 0x10, 0x06, 0x03, 0x16, 0x41, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x26, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf2, 0x04, 0x41, 0x01, 0x75, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x07, 0x31, 0x10, 0x26, 0x03, 0x26, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x71, 0x00, 0xaa, 0x01, 0x3b, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x05, 0x19, 0x06, 0x66, 0x10, 0x26, 0x03, 0x26, 0x3b, 0x00,
+ 0x10, 0x07, 0x07, 0x28, 0xff, 0x63, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x06, 0x66, 0x10, 0x06, 0x03, 0x1d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0xfe, 0x56, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x26,
+ 0x03, 0x26, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfb, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x5f, 0x04, 0xc2, 0x02, 0x39, 0x06, 0x61, 0x10, 0x06,
+ 0x06, 0xfc, 0x00, 0x00, 0xff, 0xff, 0x01, 0x8a, 0xfe, 0x56, 0x02, 0x51,
+ 0xff, 0xa4, 0x10, 0x06, 0x03, 0x16, 0x00, 0x00, 0x00, 0x01, 0x01, 0x5f,
+ 0x04, 0xc2, 0x02, 0x39, 0x06, 0x61, 0x00, 0x08, 0x00, 0x00, 0x01, 0x10,
+ 0x23, 0x35, 0x16, 0x35, 0x23, 0x35, 0x33, 0x02, 0x39, 0xda, 0x79, 0x78,
+ 0xd9, 0x05, 0xcd, 0xfe, 0xf5, 0x67, 0x03, 0x9d, 0x9e, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa3, 0x05, 0x1d, 0x02, 0xf6, 0x06, 0x37, 0x10, 0x06,
+ 0x02, 0x9e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa3, 0x05, 0x46, 0x02, 0xf6,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xed, 0x03, 0x9a, 0x01, 0x84, 0x12, 0x06,
+ 0x00, 0x6a, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x06, 0x66, 0x10, 0x26, 0x06, 0xb4, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x04, 0x7b, 0x10, 0x26, 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x42, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x06, 0x37, 0x10, 0x26, 0x03, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfd,
+ 0x00, 0x82, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x06, 0x37, 0x10, 0x26, 0x07, 0x02, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0xff, 0x4c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x05, 0x56,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x2a, 0x01, 0x3f, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x28, 0xff, 0x63, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe9,
+ 0x00, 0x00, 0x04, 0xea, 0x06, 0x66, 0x10, 0x06, 0x03, 0x1f, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x05, 0xff, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x2c, 0x01, 0x49, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0xff, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x05, 0x83,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0xfe, 0x56, 0x04, 0xb6, 0x05, 0xd5, 0x10, 0x26, 0x03, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x00, 0xe6, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7b,
+ 0x04, 0xc2, 0x03, 0x37, 0x06, 0x66, 0x10, 0x27, 0x06, 0xfc, 0xff, 0x1c,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0x00, 0xee, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa2, 0x04, 0xc2, 0x03, 0x39, 0x06, 0x66, 0x10, 0x27,
+ 0x06, 0xfc, 0xff, 0x43, 0x00, 0x00, 0x10, 0x06, 0x07, 0x33, 0x3b, 0x00,
+ 0xff, 0xff, 0x00, 0xa3, 0x04, 0xc2, 0x02, 0xf6, 0x07, 0x6d, 0x10, 0x27,
+ 0x10, 0xed, 0x03, 0x9a, 0x01, 0x84, 0x10, 0x06, 0x06, 0xfc, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xed, 0x00, 0x00, 0x02, 0x30, 0x06, 0x48, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x02, 0x9a, 0xff, 0x3a, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xe5, 0x00, 0x00, 0x02, 0x30, 0x05, 0xf6, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x00, 0x71, 0xff, 0x26, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xdc, 0x00, 0x00, 0x02, 0x30, 0x07, 0xd2, 0x10, 0x26,
+ 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x07, 0x26, 0xff, 0x43, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x04, 0x00, 0x00, 0x02, 0x40, 0x07, 0xd2, 0x10, 0x06,
+ 0x03, 0x25, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x02, 0x39,
+ 0x06, 0x37, 0x10, 0x26, 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfd,
+ 0xff, 0x43, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe8, 0x00, 0x00, 0x02, 0x3b,
+ 0x07, 0x6d, 0x10, 0x26, 0x03, 0x4d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfe,
+ 0xff, 0x45, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x02, 0x2a,
+ 0x07, 0x6d, 0x10, 0x26, 0x03, 0x2e, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf2,
+ 0x02, 0xdd, 0x01, 0x75, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x02, 0x1d,
+ 0x07, 0x31, 0x10, 0x26, 0x03, 0x2e, 0x00, 0x00, 0x10, 0x07, 0x00, 0x71,
+ 0xff, 0x43, 0x01, 0x3b, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x02, 0xb7,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x2e, 0x01, 0x4c, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x28, 0xff, 0x63, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0x3e, 0x06, 0x66, 0x10, 0x06, 0x03, 0x21, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x71, 0x04, 0xc2, 0x03, 0x31, 0x06, 0x66, 0x10, 0x27,
+ 0x07, 0x34, 0xff, 0x12, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0x00, 0xe8,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0x04, 0xc2, 0x03, 0x53,
+ 0x06, 0x66, 0x10, 0x27, 0x07, 0x34, 0xff, 0x27, 0x00, 0x00, 0x10, 0x06,
+ 0x07, 0x33, 0x56, 0x00, 0xff, 0xff, 0x00, 0xa3, 0x04, 0xc2, 0x02, 0xf6,
+ 0x07, 0x6d, 0x10, 0x27, 0x10, 0xed, 0x03, 0x9a, 0x01, 0x84, 0x10, 0x06,
+ 0x07, 0x34, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0,
+ 0x06, 0x48, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00, 0x10, 0x06, 0x02, 0x9a,
+ 0x23, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0,
+ 0x05, 0xf6, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00, 0x10, 0x06, 0x00, 0x71,
+ 0x20, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0,
+ 0x07, 0xd2, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00, 0x10, 0x06, 0x07, 0x26,
+ 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86, 0xff, 0xe3, 0x03, 0xc0,
+ 0x07, 0xd2, 0x10, 0x06, 0x03, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x61, 0x10, 0x26, 0x03, 0x55, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfc, 0x00, 0xa8, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x61, 0x10, 0x26, 0x03, 0x55, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x34, 0x00, 0x9f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x06, 0x37, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x06, 0xfd, 0x23, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x86,
+ 0xff, 0xe3, 0x03, 0xc0, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x59, 0x00, 0x00,
+ 0x10, 0x06, 0x06, 0xfe, 0x17, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x04, 0x6a, 0x07, 0x6d, 0x10, 0x26, 0x03, 0x39, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf2, 0x04, 0x04, 0x01, 0x75, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x04, 0x6a, 0x07, 0x31, 0x10, 0x26, 0x03, 0x39, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x71, 0x00, 0x74, 0x01, 0x3b, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x06, 0x1a, 0x06, 0x66, 0x10, 0x27, 0x03, 0x39, 0x01, 0xb0,
+ 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0xff, 0x63, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xe4, 0x00, 0x00, 0x05, 0xe9, 0x06, 0x66, 0x10, 0x06,
+ 0x03, 0x23, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, 0x00, 0x00, 0x04, 0xb0,
+ 0x06, 0x61, 0x10, 0x27, 0x03, 0x36, 0x00, 0x97, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x34, 0xfe, 0xa7, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x05, 0x46, 0x02, 0xd9, 0x07, 0xd2, 0x12, 0x26, 0x00, 0x6a, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x28, 0x00, 0x00, 0x01, 0x6c, 0xff, 0xff, 0x00, 0xc1,
+ 0x05, 0x46, 0x02, 0xfd, 0x07, 0xd2, 0x10, 0x06, 0x03, 0x1c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x04, 0xf0, 0x02, 0x49, 0x06, 0x66, 0x10, 0x06,
+ 0x00, 0x43, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xfe, 0x56, 0x05, 0x8a,
+ 0x06, 0x66, 0x10, 0x26, 0x06, 0xbc, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xfe, 0x56, 0x05, 0x8a,
+ 0x04, 0x60, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xfe, 0x56, 0x05, 0x8a,
+ 0x06, 0x66, 0x10, 0x26, 0x03, 0x62, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a,
+ 0x06, 0x37, 0x10, 0x26, 0x03, 0x5d, 0x00, 0x00, 0x10, 0x07, 0x06, 0xfd,
+ 0x01, 0x2e, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79, 0xfe, 0x56, 0x05, 0x8a,
+ 0x06, 0x37, 0x10, 0x26, 0x07, 0x2c, 0x00, 0x00, 0x10, 0x07, 0x03, 0x16,
+ 0x01, 0x36, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xe3, 0x06, 0x5f,
+ 0x06, 0x66, 0x10, 0x27, 0x03, 0x34, 0x01, 0x1c, 0x00, 0x00, 0x10, 0x07,
+ 0x07, 0x28, 0xff, 0x63, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf3,
+ 0xff, 0xe3, 0x05, 0x68, 0x06, 0x66, 0x10, 0x06, 0x03, 0x22, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x06, 0x5e, 0x06, 0x66, 0x10, 0x27,
+ 0x03, 0x3d, 0x01, 0x24, 0x00, 0x00, 0x10, 0x07, 0x07, 0x28, 0xff, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xde, 0x00, 0x00, 0x05, 0x6b,
+ 0x06, 0x66, 0x10, 0x06, 0x03, 0x24, 0x00, 0x00, 0xff, 0xff, 0x00, 0x46,
+ 0xfe, 0x56, 0x05, 0x3b, 0x05, 0xe7, 0x10, 0x26, 0x03, 0x3d, 0x00, 0x00,
+ 0x10, 0x07, 0x06, 0xfb, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x01, 0x4d,
+ 0x04, 0xee, 0x02, 0xfd, 0x06, 0x66, 0x10, 0x06, 0x00, 0x76, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x5f, 0x04, 0xc2, 0x02, 0x39, 0x06, 0x61, 0x00, 0x08,
+ 0x00, 0x00, 0x01, 0x35, 0x33, 0x15, 0x23, 0x14, 0x37, 0x15, 0x22, 0x01,
+ 0x5f, 0xd9, 0x78, 0x79, 0xda, 0x05, 0xcd, 0x94, 0x9e, 0x9d, 0x03, 0x67,
+ 0x00, 0x01, 0x00, 0x5a, 0x01, 0xdf, 0x02, 0x40, 0x02, 0x83, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x5a, 0x01, 0xe5, 0xfe, 0x1b, 0x02,
+ 0x83, 0xa4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5a, 0x01, 0xdf, 0x02, 0x40,
+ 0x02, 0x83, 0x12, 0x06, 0x07, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x01, 0xe9, 0x04, 0x3b, 0x02, 0x79, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x5a, 0x03, 0xe1, 0xfc, 0x1f, 0x02, 0x79, 0x90, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x01, 0xe9, 0x03, 0x40, 0x02, 0x79, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x5a, 0x02, 0xe6, 0xfd, 0x1a, 0x02,
+ 0x79, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x01, 0xe9, 0x06, 0xda,
+ 0x02, 0x79, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x5a, 0x06,
+ 0x7f, 0xf9, 0x81, 0x02, 0x79, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x01, 0xe9, 0x07, 0x34, 0x02, 0x79, 0x00, 0x03, 0x00, 0x00, 0x11, 0x21,
+ 0x15, 0x21, 0x07, 0x33, 0xf8, 0xcd, 0x02, 0x79, 0x90, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xea, 0xfe, 0x1d, 0x02, 0xac, 0x06, 0x1d, 0x10, 0x26,
+ 0x00, 0x5f, 0x00, 0x00, 0x10, 0x07, 0x00, 0x5f, 0x01, 0x29, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xee, 0xfe, 0x1d, 0x03, 0xac, 0xff, 0xee, 0x10, 0x26,
+ 0x00, 0x42, 0x00, 0x00, 0x10, 0x07, 0x00, 0x42, 0x00, 0x00, 0x01, 0x42,
+ 0x00, 0x01, 0x00, 0x9c, 0x03, 0xe9, 0x01, 0xa5, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x23, 0x35, 0x13, 0x33, 0x03, 0x01, 0x5a, 0xbd, 0x93,
+ 0x74, 0x4a, 0x03, 0xe9, 0xad, 0x01, 0x3f, 0xfe, 0xc1, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa0, 0x03, 0xfe, 0x01, 0xa8, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x13, 0x33, 0x15, 0x03, 0x23, 0x13, 0xea, 0xbe, 0x94, 0x74,
+ 0x4a, 0x05, 0xd5, 0x98, 0xfe, 0xc1, 0x01, 0x3f, 0x00, 0x01, 0x00, 0x9c,
+ 0xff, 0x12, 0x01, 0xa5, 0x00, 0xfe, 0x00, 0x05, 0x00, 0x00, 0x37, 0x33,
+ 0x15, 0x03, 0x23, 0x13, 0xe6, 0xbe, 0x93, 0x74, 0x49, 0xfe, 0xac, 0xfe,
+ 0xc0, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0xa0, 0x03, 0xfe, 0x01, 0xa8,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x01, 0x15, 0x13, 0x23, 0x03, 0x35,
+ 0x01, 0x5e, 0x4a, 0x74, 0x94, 0x05, 0xd5, 0x98, 0xfe, 0xc1, 0x01, 0x3f,
+ 0x98, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9c, 0x03, 0xe9, 0x03, 0x16,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x23, 0x35, 0x13,
+ 0x33, 0x03, 0x05, 0x23, 0x35, 0x13, 0x33, 0x03, 0x01, 0x5a, 0xbd, 0x93,
+ 0x74, 0x4a, 0x01, 0x72, 0xbe, 0x93, 0x74, 0x49, 0x03, 0xe9, 0xad, 0x01,
+ 0x3f, 0xfe, 0xc1, 0xad, 0xad, 0x01, 0x3f, 0xfe, 0xc1, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9c, 0x03, 0xe9, 0x03, 0x16, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x15, 0x03, 0x23, 0x13, 0x25, 0x33,
+ 0x15, 0x03, 0x23, 0x13, 0xe6, 0xbe, 0x93, 0x74, 0x49, 0x01, 0x71, 0xbe,
+ 0x93, 0x74, 0x49, 0x05, 0xd5, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0xac, 0xac,
+ 0xfe, 0xc0, 0x01, 0x40, 0x00, 0x02, 0x00, 0x9c, 0xff, 0x12, 0x03, 0x16,
+ 0x00, 0xfe, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x33, 0x15, 0x03,
+ 0x23, 0x13, 0x25, 0x33, 0x15, 0x03, 0x23, 0x13, 0x02, 0x57, 0xbe, 0x93,
+ 0x74, 0x49, 0xfe, 0x8f, 0xbe, 0x93, 0x74, 0x49, 0xfe, 0xac, 0xfe, 0xc0,
+ 0x01, 0x40, 0xac, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0x00, 0x02, 0x00, 0x9c,
+ 0x03, 0xe9, 0x03, 0x16, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00,
+ 0x01, 0x15, 0x13, 0x23, 0x03, 0x35, 0x21, 0x15, 0x13, 0x23, 0x03, 0x35,
+ 0x01, 0x5a, 0x4a, 0x74, 0x93, 0x02, 0x2f, 0x49, 0x74, 0x93, 0x05, 0xd5,
+ 0xad, 0xfe, 0xc1, 0x01, 0x3f, 0xad, 0xad, 0xfe, 0xc1, 0x01, 0x3f, 0xad,
+ 0x00, 0x01, 0x00, 0x33, 0xff, 0x3b, 0x03, 0x67, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x35, 0x21, 0x01, 0x7e, 0x9e, 0x01, 0x4a, 0xfe, 0xb6, 0x9e, 0xfe, 0xb5,
+ 0x01, 0x4b, 0x05, 0xd5, 0xfe, 0x5c, 0x99, 0xfb, 0xa3, 0x04, 0x5d, 0x99,
+ 0x00, 0x01, 0x00, 0x33, 0xff, 0x3b, 0x03, 0x67, 0x05, 0xd5, 0x00, 0x13,
+ 0x00, 0x00, 0x25, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21,
+ 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x03, 0x66,
+ 0xfe, 0xb6, 0x9e, 0xfe, 0xb5, 0x01, 0x4b, 0xfe, 0xb5, 0x01, 0x4b, 0x9e,
+ 0x01, 0x4a, 0xfe, 0xb6, 0x01, 0x4a, 0xdf, 0xfe, 0x5c, 0x01, 0xa4, 0x9a,
+ 0x02, 0x1f, 0x99, 0x01, 0xa4, 0xfe, 0x5c, 0x99, 0xfd, 0xe1, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x14, 0x01, 0xd1, 0x03, 0x2b, 0x04, 0x21, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x01, 0x14, 0x9c, 0x71, 0x70, 0x9a, 0x9b, 0x70, 0x71, 0x9b,
+ 0x02, 0xfa, 0x7c, 0xab, 0xab, 0x7c, 0x7d, 0xac, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x14, 0x01, 0x81, 0x03, 0x73, 0x04, 0x71, 0x00, 0x02,
+ 0x00, 0x00, 0x01, 0x11, 0x01, 0x01, 0x14, 0x02, 0x5f, 0x01, 0x81, 0x02,
+ 0xf0, 0xfe, 0x88, 0x00, 0x00, 0x01, 0x00, 0xd4, 0x00, 0x00, 0x01, 0x95,
+ 0x00, 0xfe, 0x00, 0x03, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23, 0xd4, 0xc0,
+ 0xc0, 0xfe, 0xfe, 0x00, 0x00, 0x02, 0x00, 0xd4, 0x00, 0x00, 0x03, 0xfa,
+ 0x00, 0xfe, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23,
+ 0x25, 0x33, 0x15, 0x23, 0x03, 0x3a, 0xc0, 0xc0, 0xfd, 0x9a, 0xc0, 0xc0,
+ 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x03, 0x00, 0xd4, 0x00, 0x00, 0x06, 0x5f,
+ 0x00, 0xfe, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x33,
+ 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x03, 0x3a,
+ 0xbf, 0xbf, 0x02, 0x65, 0xc0, 0xc0, 0xfb, 0x35, 0xc0, 0xc0, 0xfe, 0xfe,
+ 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x01, 0x00, 0xc6, 0x02, 0x6b, 0x01, 0x84,
+ 0x03, 0x69, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0xc6, 0xbe,
+ 0xbe, 0x03, 0x69, 0xfe, 0x00, 0x07, 0x00, 0x65, 0xff, 0xe3, 0x09, 0x45,
+ 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x27, 0x00, 0x33,
+ 0x00, 0x3f, 0x00, 0x4b, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x21, 0x33, 0x01, 0x23, 0x13, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x01, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x17, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x08, 0x0f,
+ 0x4f, 0x5a, 0x5a, 0x4f, 0x4c, 0x59, 0x59, 0x4c, 0x8e, 0xa7, 0xa8, 0x8d,
+ 0x90, 0xa8, 0xa9, 0xfa, 0x1b, 0x8f, 0xa9, 0xa9, 0x8f, 0x8f, 0xa6, 0xa7,
+ 0x03, 0xbb, 0x90, 0xfc, 0xb7, 0x90, 0x1c, 0x4d, 0x59, 0x58, 0x4e, 0x4f,
+ 0x59, 0x5a, 0x03, 0x53, 0x8e, 0xa8, 0xa9, 0x8d, 0x90, 0xa7, 0xa8, 0x8f,
+ 0x4e, 0x59, 0x59, 0x4e, 0x4d, 0x59, 0x59, 0x02, 0x91, 0x94, 0x84, 0x82,
+ 0x95, 0x95, 0x82, 0x83, 0x95, 0x7f, 0xdc, 0xbb, 0xbb, 0xdb, 0xdb, 0xbb,
+ 0xbc, 0xdb, 0x02, 0xe0, 0xdb, 0xbb, 0xbd, 0xda, 0xdb, 0xbc, 0xba, 0xdc,
+ 0xf9, 0xf3, 0x05, 0x8e, 0x95, 0x82, 0x84, 0x94, 0x94, 0x84, 0x81, 0x96,
+ 0xfd, 0x9f, 0xdc, 0xbb, 0xbb, 0xdb, 0xdb, 0xbb, 0xbc, 0xdb, 0x7f, 0x94,
+ 0x84, 0x82, 0x95, 0x95, 0x82, 0x83, 0x95, 0x00, 0x00, 0x09, 0x00, 0x65,
+ 0xff, 0xe3, 0x0c, 0x1a, 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x22,
+ 0x00, 0x2d, 0x00, 0x37, 0x00, 0x3b, 0x00, 0x45, 0x00, 0x50, 0x00, 0x5c,
+ 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x27, 0x32, 0x16, 0x10, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x05, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x27, 0x32, 0x16, 0x10, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x00, 0x20, 0x16, 0x15, 0x14, 0x06, 0x20, 0x26, 0x35, 0x34, 0x25, 0x33,
+ 0x01, 0x23, 0x12, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34,
+ 0x01, 0x32, 0x16, 0x10, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x17,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x0a,
+ 0xe4, 0x4e, 0x5a, 0x5a, 0x4e, 0x4d, 0x59, 0x59, 0x4d, 0x8e, 0xa8, 0xa8,
+ 0x8e, 0x90, 0xa7, 0xa8, 0xfd, 0xba, 0x4f, 0x5a, 0x5a, 0x4f, 0x4c, 0x59,
+ 0x59, 0x4c, 0x8e, 0xa7, 0xa8, 0x8d, 0x90, 0xa8, 0xa9, 0xf9, 0x8d, 0x01,
+ 0x1d, 0xa9, 0xa9, 0xfe, 0xe2, 0xa6, 0x04, 0x62, 0x90, 0xfc, 0xb7, 0x90,
+ 0x6a, 0x9b, 0x59, 0x58, 0x9d, 0x59, 0x02, 0xf9, 0x8e, 0xa8, 0xa9, 0x8d,
+ 0x90, 0xa7, 0xa8, 0x8f, 0x4e, 0x59, 0x59, 0x4e, 0x4d, 0x59, 0x59, 0x02,
+ 0x91, 0x94, 0x84, 0x82, 0x95, 0x95, 0x82, 0x83, 0x95, 0x7f, 0xdc, 0xfe,
+ 0x8a, 0xdb, 0xdb, 0xbb, 0xbc, 0xdb, 0x7f, 0x94, 0x84, 0x82, 0x95, 0x95,
+ 0x82, 0x83, 0x95, 0x7f, 0xdc, 0xfe, 0x8a, 0xdb, 0xdb, 0xbb, 0xbc, 0xdb,
+ 0x02, 0xe0, 0xdb, 0xbb, 0xbd, 0xda, 0xdb, 0xbc, 0xba, 0xdc, 0xf9, 0xf3,
+ 0x05, 0x8e, 0x95, 0x82, 0x84, 0x94, 0x94, 0x84, 0x81, 0xfe, 0x35, 0xdc,
+ 0xfe, 0x8a, 0xdb, 0xdb, 0xbb, 0xbc, 0xdb, 0x7f, 0x94, 0x84, 0x82, 0x95,
+ 0x95, 0x82, 0x83, 0x95, 0x00, 0x01, 0x00, 0x24, 0x04, 0x60, 0x01, 0x77,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x1b, 0x01, 0x33, 0x01, 0x24, 0x9c,
+ 0xb6, 0xfe, 0xfc, 0x04, 0x60, 0x01, 0x75, 0xfe, 0x8b, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x24, 0x04, 0x60, 0x02, 0x85, 0x05, 0xd5, 0x10, 0x26,
+ 0x07, 0x67, 0x00, 0x00, 0x10, 0x07, 0x07, 0x67, 0x01, 0x0e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x24, 0x04, 0x60, 0x03, 0x93, 0x05, 0xd5, 0x10, 0x27,
+ 0x07, 0x67, 0x01, 0x0e, 0x00, 0x00, 0x10, 0x26, 0x07, 0x67, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x67, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24,
+ 0x04, 0x60, 0x01, 0x77, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x01, 0x23,
+ 0x01, 0x33, 0x01, 0x76, 0x4e, 0xfe, 0xfc, 0xb7, 0x04, 0x60, 0x01, 0x75,
+ 0xff, 0xff, 0x00, 0x24, 0x04, 0x60, 0x02, 0x85, 0x05, 0xd5, 0x10, 0x26,
+ 0x07, 0x6a, 0x00, 0x00, 0x10, 0x07, 0x07, 0x6a, 0x01, 0x0e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x24, 0x04, 0x60, 0x03, 0x93, 0x05, 0xd5, 0x10, 0x26,
+ 0x07, 0x6a, 0x00, 0x00, 0x10, 0x27, 0x07, 0x6a, 0x02, 0x1c, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x6a, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09,
+ 0xfe, 0x1d, 0x02, 0x67, 0xff, 0xc3, 0x00, 0x05, 0x00, 0x00, 0x01, 0x23,
+ 0x27, 0x07, 0x23, 0x01, 0x02, 0x67, 0x85, 0xa9, 0xa9, 0x86, 0x01, 0x30,
+ 0xfe, 0x1d, 0xf9, 0xf9, 0x01, 0xa6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8e,
+ 0x00, 0x8d, 0x02, 0x35, 0x04, 0x23, 0x00, 0x06, 0x00, 0x00, 0x01, 0x15,
+ 0x09, 0x01, 0x15, 0x01, 0x35, 0x02, 0x34, 0xfe, 0xf1, 0x01, 0x0f, 0xfe,
+ 0x5a, 0x04, 0x23, 0xbf, 0xfe, 0xf4, 0xfe, 0xf4, 0xbf, 0x01, 0xa2, 0x52,
+ 0x00, 0x01, 0x00, 0xad, 0x00, 0x8d, 0x02, 0x54, 0x04, 0x23, 0x00, 0x06,
+ 0x00, 0x00, 0x13, 0x01, 0x15, 0x01, 0x35, 0x09, 0x01, 0xae, 0x01, 0xa6,
+ 0xfe, 0x5a, 0x01, 0x0f, 0xfe, 0xf1, 0x04, 0x23, 0xfe, 0x5e, 0x52, 0xfe,
+ 0x5e, 0xbf, 0x01, 0x0c, 0x01, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xaf,
+ 0x00, 0x04, 0x05, 0x54, 0x05, 0xcc, 0x12, 0x26, 0x00, 0x99, 0x00, 0x4b,
+ 0x10, 0x27, 0x00, 0x11, 0xff, 0xea, 0x02, 0x4e, 0x10, 0x27, 0x00, 0x11,
+ 0x01, 0xe1, 0x00, 0x04, 0x10, 0x27, 0x00, 0x11, 0x03, 0xd0, 0x02, 0x4e,
+ 0x10, 0x07, 0x00, 0x11, 0x01, 0xe1, 0x04, 0xce, 0xff, 0xff, 0x00, 0x84,
+ 0x00, 0x00, 0x02, 0xfb, 0x05, 0xd5, 0x10, 0x27, 0x00, 0x04, 0xff, 0x6e,
+ 0x00, 0x00, 0x10, 0x07, 0x00, 0x04, 0x01, 0x2e, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x84, 0x00, 0x00, 0x03, 0x52, 0x05, 0xf0, 0x00, 0x17,
+ 0x00, 0x1b, 0x00, 0x24, 0x00, 0x00, 0x01, 0x23, 0x11, 0x06, 0x07, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x0f, 0x01,
+ 0x0e, 0x01, 0x07, 0x0e, 0x01, 0x15, 0x03, 0x33, 0x15, 0x23, 0x13, 0x11,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x27, 0x26, 0x02, 0x11, 0xac, 0x1c, 0x1d,
+ 0x50, 0x58, 0x55, 0xae, 0x5c, 0xa6, 0xc9, 0x41, 0x51, 0x4f, 0x2b, 0x23,
+ 0x07, 0x05, 0x06, 0xb1, 0xb7, 0xb7, 0xb1, 0x29, 0x33, 0x2e, 0x3b, 0x21,
+ 0x01, 0x91, 0x03, 0xad, 0x08, 0x0d, 0x23, 0x43, 0xbc, 0x39, 0x38, 0xc2,
+ 0x9f, 0x4c, 0x89, 0x56, 0x56, 0x2f, 0x35, 0x19, 0x15, 0x3c, 0x34, 0xfe,
+ 0xf2, 0xfe, 0x05, 0x42, 0xfe, 0x52, 0x2d, 0x35, 0x5e, 0x31, 0x59, 0x37,
+ 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x05, 0x7c, 0x03, 0xac,
+ 0x06, 0x0b, 0x10, 0x07, 0x00, 0x42, 0x00, 0x00, 0x07, 0x5f, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xaf, 0xfe, 0x1b, 0x06, 0x1a, 0xff, 0x85, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x32, 0x24, 0x37, 0x15, 0x06, 0x04, 0x23, 0x22, 0x24,
+ 0x27, 0x35, 0x16, 0x04, 0x02, 0xe4, 0xd0, 0x01, 0x97, 0xcf, 0xd4, 0xfe,
+ 0x67, 0xc9, 0xc9, 0xfe, 0x69, 0xd4, 0xcf, 0x01, 0x95, 0xfe, 0xb5, 0x68,
+ 0x68, 0x7e, 0x76, 0x76, 0x75, 0x77, 0x7e, 0x69, 0x67, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xaf, 0x06, 0x04, 0x06, 0x1a, 0x07, 0x6e, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x32, 0x04, 0x17, 0x15, 0x26, 0x24, 0x23, 0x22, 0x04,
+ 0x07, 0x35, 0x36, 0x24, 0x02, 0xe4, 0xc9, 0x01, 0x99, 0xd4, 0xcf, 0xfe,
+ 0x69, 0xd0, 0xd0, 0xfe, 0x6b, 0xcf, 0xd4, 0x01, 0x97, 0x07, 0x6e, 0x76,
+ 0x76, 0x7e, 0x68, 0x68, 0x67, 0x69, 0x7e, 0x77, 0x75, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xb2, 0xfe, 0x1d, 0x02, 0x0f, 0x01, 0xd5, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x33, 0x09, 0x01, 0x23, 0x0b, 0x01, 0x23, 0x01, 0xb6,
+ 0x58, 0xfe, 0xff, 0x01, 0x01, 0x58, 0xd5, 0xd5, 0x59, 0x01, 0xd5, 0xfe,
+ 0x24, 0xfe, 0x24, 0x01, 0x8a, 0xfe, 0x76, 0x00, 0xff, 0xff, 0x00, 0x36,
+ 0xff, 0xc5, 0x06, 0xfd, 0x06, 0x83, 0x10, 0x27, 0x00, 0x0d, 0x00, 0x00,
+ 0xfd, 0x7b, 0x10, 0x27, 0x00, 0x0d, 0x03, 0x9a, 0xfd, 0x7b, 0x10, 0x07,
+ 0x00, 0x0d, 0x01, 0xcd, 0x00, 0x93, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc6,
+ 0x02, 0x81, 0x02, 0xe2, 0x03, 0x5f, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0xc7, 0x02, 0x1a, 0xfd, 0xe6, 0x03, 0x5f, 0xde, 0x00, 0x00,
+ 0x00, 0x01, 0xfe, 0xae, 0xff, 0xe3, 0x02, 0x86, 0x05, 0xf0, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, 0x01, 0xf5, 0x90, 0xfc, 0xb9, 0x90,
+ 0x05, 0xf0, 0xf9, 0xf3, 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0x1c,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x01, 0x44, 0xd8, 0xfe, 0x82, 0x01,
+ 0x7e, 0xd8, 0xd8, 0x02, 0x5e, 0xfd, 0x23, 0x8f, 0x07, 0x22, 0x8f, 0xfd,
+ 0x23, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0x1c,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x35, 0x33, 0x11, 0x23, 0x35,
+ 0x21, 0x11, 0x21, 0x35, 0x33, 0x11, 0x9e, 0xd8, 0xd8, 0x01, 0x7e, 0xfe,
+ 0x82, 0xd8, 0x02, 0x5e, 0x4a, 0x02, 0xdd, 0x8f, 0xf8, 0xde, 0x8f, 0x02,
+ 0xdd, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x42, 0x00, 0x00, 0x06, 0x62,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x22, 0xbe, 0x00, 0x10, 0x07, 0x00, 0x22,
+ 0x03, 0x10, 0x00, 0x00, 0xff, 0xff, 0x00, 0x84, 0x00, 0x00, 0x04, 0xc3,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x22, 0x00, 0x00, 0x10, 0x07, 0x00, 0x04,
+ 0x02, 0xf6, 0x00, 0x00, 0xff, 0xff, 0x00, 0x84, 0x00, 0x00, 0x04, 0xc3,
+ 0x05, 0xf0, 0x10, 0x27, 0x00, 0x04, 0xff, 0x6e, 0x00, 0x00, 0x10, 0x07,
+ 0x00, 0x22, 0x01, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0xff, 0x05, 0x03, 0x3b, 0x04, 0x5d, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x16,
+ 0x33, 0x32, 0x37, 0x07, 0x01, 0x23, 0x13, 0x06, 0x20, 0x27, 0x5a, 0x8b,
+ 0xd2, 0xe2, 0xa1, 0x07, 0xfe, 0xfd, 0x89, 0xee, 0x6a, 0xfe, 0xe3, 0xb4,
+ 0x04, 0x5d, 0x10, 0x10, 0x80, 0xfb, 0x28, 0x04, 0xae, 0x0f, 0x0f, 0x00,
+ 0x00, 0x01, 0x00, 0xd4, 0xff, 0x3b, 0x04, 0x14, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x11, 0x23, 0x11,
+ 0x23, 0x11, 0x23, 0x11, 0x02, 0x68, 0xc1, 0xea, 0xd3, 0xc2, 0x80, 0xab,
+ 0x7f, 0x05, 0xd5, 0xe8, 0xbe, 0xb8, 0xdd, 0x11, 0xfc, 0xb2, 0x06, 0x1f,
+ 0xf9, 0xe1, 0x06, 0x9a, 0x00, 0x02, 0x00, 0xc2, 0x01, 0xc2, 0x02, 0xd8,
+ 0x04, 0x12, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33, 0x11, 0x07,
+ 0x2b, 0x01, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x02, 0x3a, 0x9d, 0x9d,
+ 0x6a, 0x02, 0x71, 0x9b, 0x9c, 0x72, 0x04, 0x12, 0xfd, 0xb1, 0x01, 0xac,
+ 0x7d, 0x7c, 0xab, 0x00, 0x00, 0x02, 0x00, 0xc2, 0x01, 0xc2, 0x02, 0xd8,
+ 0x04, 0x12, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x27, 0x11, 0x3b,
+ 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x01, 0x60, 0x9e, 0x9e,
+ 0x6a, 0x72, 0x9b, 0x9b, 0x70, 0x02, 0x01, 0xc2, 0x01, 0x02, 0x4f, 0xab,
+ 0x7c, 0x7d, 0xac, 0x00, 0xff, 0xff, 0x00, 0x36, 0xff, 0xc5, 0x03, 0x63,
+ 0x03, 0x6b, 0x12, 0x07, 0x00, 0x0d, 0x00, 0x00, 0xfd, 0x7b, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x00, 0xff, 0x12, 0x02, 0x09, 0x04, 0x23, 0x00, 0x03,
+ 0x00, 0x09, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x13, 0x15, 0x13, 0x23,
+ 0x03, 0x35, 0x01, 0xbe, 0xbe, 0xbe, 0x4a, 0x74, 0x94, 0x04, 0x23, 0xfe,
+ 0xfe, 0xfc, 0xdb, 0xac, 0xfe, 0xc0, 0x01, 0x40, 0xac, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xaf, 0xfe, 0x1b, 0x06, 0x1a, 0x07, 0x6e, 0x10, 0x26,
+ 0x07, 0x74, 0x00, 0x00, 0x10, 0x06, 0x07, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0xff, 0xf2, 0x03, 0x63, 0x07, 0x6f, 0x12, 0x27,
+ 0x00, 0x0d, 0x00, 0x00, 0xfd, 0xa8, 0x10, 0x07, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x82, 0xff, 0x42, 0x02, 0xf0,
+ 0x05, 0xd5, 0x10, 0x27, 0x00, 0x12, 0x00, 0x82, 0x00, 0x00, 0x10, 0x27,
+ 0x00, 0x11, 0x01, 0x66, 0x00, 0x00, 0x10, 0x07, 0x00, 0x11, 0xff, 0xdd,
+ 0x04, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x01, 0xd3, 0x06, 0xda,
+ 0x03, 0x31, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x06, 0xd9, 0x8e, 0xcf, 0x83, 0x86, 0xd4, 0x0e, 0x08, 0x09, 0x14, 0xd2,
+ 0x7e, 0x77, 0xc6, 0x85, 0x8e, 0xcf, 0x84, 0x9e, 0xbd, 0x0d, 0x07, 0x0b,
+ 0x13, 0xd1, 0x7e, 0x75, 0xc2, 0x03, 0x31, 0xb2, 0x4f, 0x44, 0x3b, 0x04,
+ 0x02, 0x02, 0x06, 0x3e, 0x4d, 0x53, 0xb2, 0x4f, 0x45, 0x3c, 0x04, 0x02,
+ 0x03, 0x05, 0x3e, 0x4c, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0x14, 0x06, 0x1a,
+ 0xff, 0x7e, 0x10, 0x07, 0x07, 0x75, 0x00, 0x00, 0xf8, 0x10, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x18, 0x00, 0xc8, 0x04, 0xf0, 0x05, 0x0d, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0x21, 0x35, 0x21,
+ 0x27, 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17, 0x07, 0x21, 0x15, 0x21,
+ 0x17, 0x07, 0x03, 0x4c, 0x90, 0xe0, 0x66, 0xe0, 0xfe, 0xc3, 0x01, 0x3d,
+ 0xe0, 0x65, 0xe1, 0x90, 0xe1, 0x66, 0xe1, 0x01, 0x3e, 0xfe, 0xc2, 0xe1,
+ 0x66, 0x02, 0x29, 0xfe, 0x9f, 0x01, 0x60, 0xf9, 0x72, 0xf9, 0xa0, 0xfa,
+ 0x72, 0xfb, 0x01, 0x62, 0xfe, 0x9e, 0xfa, 0x71, 0xfa, 0xa0, 0xf9, 0x72,
+ 0x00, 0x03, 0x00, 0xe1, 0x01, 0x32, 0x03, 0x57, 0x04, 0xb6, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x35, 0x33, 0x15, 0x01, 0x35,
+ 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0xe1, 0xb4, 0x01, 0x0e, 0xb4, 0xb4,
+ 0xb4, 0x02, 0x90, 0xc8, 0xc8, 0xfe, 0xa2, 0xc8, 0xc8, 0x02, 0xbc, 0xc8,
+ 0xc8, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x24, 0x04, 0x60, 0x04, 0xa1,
+ 0x05, 0xd5, 0x10, 0x27, 0x07, 0x67, 0x01, 0x0e, 0x00, 0x00, 0x10, 0x26,
+ 0x07, 0x67, 0x00, 0x00, 0x10, 0x27, 0x07, 0x67, 0x03, 0x2a, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x67, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x04, 0x01, 0x42,
+ 0x01, 0x00, 0x04, 0xc7, 0x04, 0xe8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x01, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15,
+ 0x01, 0x35, 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x01, 0x42, 0xb4, 0x02,
+ 0x1c, 0xb4, 0xfd, 0xe4, 0xb4, 0xb4, 0xb4, 0x02, 0x90, 0xc8, 0xc8, 0xc8,
+ 0xc8, 0xfe, 0x70, 0xc8, 0xc8, 0x03, 0x20, 0xc8, 0xc8, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x01, 0x42, 0x00, 0xf6, 0x04, 0xc7, 0x04, 0xde, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x01, 0x35,
+ 0x33, 0x15, 0x13, 0x35, 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x01, 0x35,
+ 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x02, 0xaa, 0xb4, 0xb4, 0xb4, 0xb4,
+ 0xb4, 0xfc, 0x8e, 0xb4, 0xc6, 0xb4, 0x02, 0x86, 0xc8, 0xc8, 0xfe, 0x70,
+ 0xc8, 0xc8, 0x03, 0x20, 0xc8, 0xc8, 0xfc, 0xf4, 0xc8, 0xc8, 0x03, 0x0c,
+ 0xc8, 0xc8, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x01, 0x83,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x23, 0xc5, 0xbe, 0xbe, 0xbe, 0xbe, 0x05, 0xd5, 0xfe,
+ 0xfc, 0x27, 0xfe, 0x00, 0x00, 0x04, 0x00, 0x5a, 0xfe, 0xe5, 0x05, 0x64,
+ 0x06, 0xef, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x13, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x01, 0x33, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x23, 0x5a, 0xbe, 0xbe, 0x04, 0x4c, 0xbe, 0xbe, 0xfd,
+ 0xda, 0xbe, 0xbe, 0xbe, 0xbe, 0x03, 0x69, 0xfe, 0xfe, 0xfe, 0x04, 0x84,
+ 0xfe, 0xf9, 0xf2, 0xfe, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x05, 0xa4,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x1b,
+ 0x00, 0x00, 0x25, 0x35, 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x01, 0x35,
+ 0x33, 0x15, 0x03, 0x35, 0x33, 0x15, 0x01, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x04, 0x12, 0xb4, 0xb4, 0xb4, 0xfc,
+ 0x8e, 0xb4, 0xc6, 0xb4, 0x01, 0x56, 0x90, 0xfd, 0xa9, 0x02, 0x57, 0x90,
+ 0x02, 0x58, 0xf6, 0xc8, 0xc8, 0x03, 0x20, 0xc8, 0xc8, 0xfc, 0xf4, 0xc8,
+ 0xc8, 0x03, 0x0c, 0xc8, 0xc8, 0xfe, 0x84, 0xfd, 0x66, 0x02, 0x9a, 0xa0,
+ 0x02, 0x9b, 0xfd, 0x65, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc5,
+ 0x00, 0x50, 0x01, 0x83, 0x05, 0x3e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x11, 0x33,
+ 0x15, 0x23, 0xc5, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x05, 0x3e, 0xfe,
+ 0xfd, 0x0e, 0xfe, 0x02, 0xf6, 0xfe, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc5,
+ 0x00, 0x11, 0x01, 0x83, 0x05, 0x77, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0xc5, 0xbe, 0xbe, 0xbe,
+ 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x02, 0x89, 0xfe, 0x03, 0xec, 0xfe, 0xfc,
+ 0x96, 0xfe, 0x03, 0xf0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x4e,
+ 0x02, 0x8d, 0x02, 0xa3, 0x05, 0xf0, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x00,
+ 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x2f, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x01, 0xd4, 0xb6, 0x2d, 0x2e, 0x2e, 0x2d, 0xb6, 0x2d, 0x2e,
+ 0x2e, 0x88, 0x91, 0x99, 0x99, 0x91, 0x92, 0x99, 0x99, 0x05, 0x97, 0x56,
+ 0x56, 0xac, 0xad, 0x56, 0x56, 0x56, 0x56, 0xad, 0xac, 0x56, 0xaf, 0xde,
+ 0xd3, 0xd4, 0xde, 0xde, 0xd4, 0xd3, 0xde, 0x00, 0x00, 0x02, 0x00, 0x6d,
+ 0x02, 0x9c, 0x00, 0xd7, 0x06, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x23, 0x11, 0x33, 0x15, 0x23, 0x6e, 0x68, 0x68, 0x68,
+ 0x68, 0x05, 0x0f, 0xfd, 0x8d, 0x03, 0x67, 0x82, 0x00, 0x02, 0x00, 0x38,
+ 0x02, 0x9c, 0x02, 0xa9, 0x05, 0xdf, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00,
+ 0x09, 0x01, 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35,
+ 0x21, 0x35, 0x01, 0xad, 0xfe, 0xea, 0x01, 0x16, 0x13, 0x95, 0x79, 0x79,
+ 0x82, 0xfe, 0x8c, 0x05, 0x66, 0xfe, 0x5d, 0x02, 0x1c, 0xfd, 0xe4, 0x6d,
+ 0xba, 0xba, 0x79, 0x00, 0x00, 0x01, 0x00, 0x5b, 0x02, 0x8d, 0x02, 0x8b,
+ 0x05, 0xdf, 0x00, 0x20, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x80, 0x01, 0xcb, 0xfe, 0xa0, 0x19, 0x1a, 0x19, 0x1a,
+ 0x90, 0x55, 0x55, 0x58, 0x56, 0x9e, 0x36, 0x72, 0x3b, 0x33, 0x38, 0x38,
+ 0x3e, 0x64, 0x75, 0x75, 0x64, 0x2f, 0x5e, 0x30, 0x05, 0xdf, 0x5f, 0xcc,
+ 0x09, 0x04, 0x04, 0x4d, 0x4c, 0x83, 0x87, 0x4b, 0x4a, 0x12, 0x12, 0x71,
+ 0x1b, 0x0e, 0x0d, 0x66, 0xae, 0x66, 0x14, 0x15, 0x00, 0x02, 0x00, 0x52,
+ 0x02, 0x8d, 0x02, 0xa8, 0x05, 0xf0, 0x00, 0x0f, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x13, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x07, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x01, 0x88, 0x50, 0x2e, 0x2e, 0x2e, 0x2e, 0x50, 0x4e, 0x2e, 0x2e, 0x2e,
+ 0x2e, 0x9a, 0x2c, 0x2d, 0x2d, 0x2c, 0x74, 0x3d, 0x3d, 0x09, 0x22, 0x33,
+ 0x35, 0x3d, 0x82, 0x4c, 0x4c, 0x50, 0x4e, 0x82, 0x97, 0x9e, 0x61, 0x61,
+ 0xa4, 0x2c, 0x2d, 0x2d, 0x04, 0x6d, 0x34, 0x35, 0x5b, 0x5a, 0x34, 0x35,
+ 0x35, 0x34, 0x5a, 0x5b, 0x35, 0x34, 0x01, 0x62, 0x67, 0x14, 0x0a, 0x0b,
+ 0x4b, 0x4c, 0x99, 0x31, 0x1a, 0x1a, 0x4c, 0x4d, 0x84, 0x7f, 0x4f, 0x4e,
+ 0xde, 0xd4, 0xc6, 0x75, 0x76, 0x08, 0x09, 0x00, 0x00, 0x01, 0x00, 0x61,
+ 0x02, 0x9c, 0x02, 0x8d, 0x05, 0xdf, 0x00, 0x06, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x01, 0x23, 0x01, 0x21, 0x61, 0x02, 0x2b, 0xfe, 0xc7, 0x7a, 0x01,
+ 0x27, 0xfe, 0x61, 0x05, 0xdf, 0x30, 0xfc, 0xed, 0x02, 0xe4, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x50, 0x02, 0x8d, 0x02, 0xa2, 0x05, 0xf0, 0x00, 0x0c,
+ 0x00, 0x2a, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x34, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x36, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x01, 0xcd, 0xa8, 0x2f, 0x30, 0x5f, 0x54,
+ 0x53, 0x30, 0x30, 0x30, 0xf8, 0x4c, 0x29, 0x2a, 0x93, 0x01, 0x02, 0x4a,
+ 0x48, 0x29, 0x2a, 0x4b, 0x51, 0x33, 0x2f, 0x4c, 0x4e, 0x8e, 0x8f, 0x4c,
+ 0x4e, 0x30, 0x31, 0x28, 0x2a, 0x2a, 0x4c, 0x49, 0x2c, 0x2b, 0x2b, 0x2a,
+ 0x4b, 0x4a, 0x2c, 0x2a, 0x04, 0x2a, 0x2c, 0x2b, 0x4b, 0x4c, 0x56, 0x2c,
+ 0x2b, 0x96, 0x2b, 0x5d, 0x12, 0x31, 0x32, 0x48, 0x64, 0x74, 0x3a, 0x3a,
+ 0x64, 0x4a, 0x30, 0x31, 0x12, 0x12, 0x3a, 0x37, 0x50, 0x79, 0x41, 0x41,
+ 0x41, 0x41, 0x79, 0x4e, 0x39, 0x38, 0xc6, 0x3f, 0x26, 0x25, 0x25, 0x24,
+ 0x41, 0x3f, 0x26, 0x25, 0x25, 0x24, 0x00, 0x00, 0x00, 0x02, 0x00, 0x4a,
+ 0x02, 0x8d, 0x02, 0x9f, 0x05, 0xf0, 0x00, 0x1f, 0x00, 0x2e, 0x00, 0x00,
+ 0x13, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x13, 0x32, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x82,
+ 0x2d, 0x2d, 0x2d, 0x2b, 0x74, 0x3d, 0x3c, 0x09, 0x1f, 0x36, 0x33, 0x3e,
+ 0x82, 0x97, 0x4e, 0x4f, 0x83, 0x96, 0x4e, 0x4f, 0x60, 0x61, 0xa4, 0x2c,
+ 0x2d, 0x2d, 0xb8, 0x4f, 0x5c, 0x2e, 0x2e, 0x4f, 0x4d, 0x30, 0x2e, 0x2e,
+ 0x2e, 0x02, 0xae, 0x67, 0x14, 0x0b, 0x0a, 0x4b, 0x4b, 0x9a, 0x2f, 0x1b,
+ 0x1a, 0x98, 0x84, 0x81, 0x4d, 0x4e, 0x6f, 0x6f, 0xd4, 0xc6, 0x75, 0x76,
+ 0x08, 0x09, 0x01, 0x72, 0x68, 0x5c, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a,
+ 0x5c, 0x34, 0x34, 0x00, 0x00, 0x01, 0x00, 0x7b, 0x02, 0x9c, 0x03, 0x52,
+ 0x05, 0x6b, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x02, 0x16, 0x01, 0x3c, 0xfe, 0xc4,
+ 0x5f, 0xfe, 0xc4, 0x01, 0x3c, 0x05, 0x6b, 0xfe, 0xc8, 0x5f, 0xfe, 0xc8,
+ 0x01, 0x38, 0x5f, 0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x7b,
+ 0x03, 0xd4, 0x03, 0x52, 0x04, 0x33, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x7b, 0x02, 0xd7, 0xfd, 0x29, 0x04, 0x33, 0x5f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x7b, 0x03, 0x61, 0x03, 0x52, 0x04, 0xa5, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x7b, 0x02, 0xd7, 0xfd, 0x29, 0x02, 0xd7, 0xfd, 0x29, 0x04, 0xa5, 0x5e,
+ 0x87, 0x5f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0x02, 0x05, 0x01, 0x68,
+ 0x06, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x10, 0x16, 0x17,
+ 0x23, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x01, 0x68, 0x4c, 0x49,
+ 0x49, 0x4c, 0x5b, 0x55, 0x2a, 0x2a, 0x2a, 0x2a, 0x55, 0x06, 0x02, 0x81,
+ 0xfc, 0xfe, 0xfe, 0xfe, 0x80, 0x83, 0x80, 0x7f, 0xfa, 0x7f, 0x7e, 0x84,
+ 0x00, 0x01, 0x00, 0x5c, 0x02, 0x05, 0x01, 0x61, 0x06, 0x02, 0x00, 0x0f,
+ 0x00, 0x00, 0x13, 0x33, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x23,
+ 0x36, 0x37, 0x36, 0x10, 0x27, 0x26, 0x5d, 0x5b, 0x55, 0x2a, 0x2a, 0x2a,
+ 0x2a, 0x55, 0x5b, 0x4b, 0x25, 0x26, 0x26, 0x25, 0x06, 0x02, 0x84, 0x7e,
+ 0x7f, 0xfa, 0x7f, 0x80, 0x83, 0x80, 0x7f, 0x7f, 0x01, 0x02, 0x7e, 0x7e,
+ 0x00, 0x01, 0x00, 0x69, 0x02, 0x9c, 0x02, 0x7e, 0x05, 0x1e, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x02, 0x7d,
+ 0x68, 0x46, 0x47, 0x54, 0x61, 0x6a, 0x6a, 0x25, 0x65, 0x43, 0x6d, 0x70,
+ 0x04, 0x17, 0xfe, 0x85, 0x01, 0x77, 0x59, 0x59, 0x6b, 0x5c, 0xfe, 0x9e,
+ 0x02, 0x73, 0x61, 0x38, 0x38, 0x86, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4e,
+ 0xff, 0xf1, 0x02, 0xa3, 0x03, 0x54, 0x12, 0x07, 0x07, 0xa0, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7b, 0x00, 0x00, 0x02, 0x7f,
+ 0x03, 0x43, 0x12, 0x07, 0x00, 0x7b, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x54, 0x00, 0x00, 0x02, 0x6f, 0x03, 0x54, 0x12, 0x07,
+ 0x00, 0x74, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x58,
+ 0xff, 0xf1, 0x02, 0x86, 0x03, 0x54, 0x12, 0x07, 0x00, 0x75, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x38, 0x00, 0x00, 0x02, 0xa9,
+ 0x03, 0x43, 0x12, 0x07, 0x07, 0xa2, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x5b, 0xff, 0xf1, 0x02, 0x8b, 0x03, 0x43, 0x12, 0x07,
+ 0x07, 0xa3, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x52,
+ 0xff, 0xf1, 0x02, 0xa8, 0x03, 0x54, 0x12, 0x07, 0x07, 0xa4, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x61, 0x00, 0x00, 0x02, 0x8d,
+ 0x03, 0x43, 0x12, 0x07, 0x07, 0xa5, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x50, 0xff, 0xf1, 0x02, 0xa2, 0x03, 0x54, 0x12, 0x07,
+ 0x07, 0xa6, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a,
+ 0xff, 0xf1, 0x02, 0x9f, 0x03, 0x54, 0x12, 0x07, 0x07, 0xa7, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7b, 0x00, 0x00, 0x03, 0x52,
+ 0x02, 0xcf, 0x12, 0x07, 0x07, 0xa8, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x7b, 0x01, 0x38, 0x03, 0x52, 0x01, 0x97, 0x12, 0x07,
+ 0x07, 0xa9, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7b,
+ 0x00, 0xc5, 0x03, 0x52, 0x02, 0x09, 0x12, 0x07, 0x07, 0xaa, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63, 0xff, 0x69, 0x01, 0x68,
+ 0x03, 0x66, 0x12, 0x07, 0x07, 0xab, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x5c, 0xff, 0x69, 0x01, 0x61, 0x03, 0x66, 0x12, 0x07,
+ 0x07, 0xac, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x45,
+ 0xff, 0xf0, 0x02, 0x5e, 0x02, 0x82, 0x12, 0x07, 0x04, 0xf9, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xf0, 0x02, 0x8d,
+ 0x02, 0x82, 0x12, 0x07, 0x04, 0xff, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x3f, 0xff, 0xf0, 0x02, 0x88, 0x02, 0x82, 0x12, 0x07,
+ 0x05, 0x08, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69,
+ 0x00, 0x00, 0x02, 0xd1, 0x02, 0x73, 0x12, 0x07, 0x02, 0xa5, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xf0, 0x02, 0x8d,
+ 0x02, 0x82, 0x12, 0x07, 0x05, 0x00, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0x00, 0x00, 0x02, 0x7e, 0x03, 0x67, 0x12, 0x07,
+ 0x02, 0x72, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69,
+ 0x00, 0x00, 0x02, 0x9d, 0x03, 0x67, 0x12, 0x07, 0x05, 0x05, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xd7,
+ 0x03, 0x67, 0x12, 0x07, 0x02, 0xa3, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0x00, 0x00, 0x04, 0x09, 0x02, 0x82, 0x12, 0x07,
+ 0x05, 0x06, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69,
+ 0x00, 0x00, 0x02, 0x7e, 0x02, 0x82, 0x12, 0x07, 0x07, 0xad, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x69, 0xff, 0x11, 0x02, 0xa2,
+ 0x02, 0x82, 0x12, 0x07, 0x05, 0x0c, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0x00, 0x00, 0x02, 0x4f, 0x02, 0x93, 0x12, 0x07,
+ 0x02, 0xa4, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x1f,
+ 0x00, 0x00, 0x01, 0xac, 0x03, 0x25, 0x12, 0x07, 0x05, 0x0d, 0x00, 0x00,
+ 0xfd, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4d, 0x00, 0x00, 0x06, 0x03,
+ 0x05, 0xd6, 0x00, 0x23, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x00,
+ 0x10, 0x00, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x10, 0x16, 0x33, 0x32, 0x36, 0x37, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x03, 0x7a, 0x47, 0xa0, 0x59, 0xe5,
+ 0xfe, 0xf8, 0x01, 0x08, 0xe5, 0x5b, 0x9f, 0x46, 0x44, 0x9c, 0x58, 0xad,
+ 0xb8, 0xb8, 0xad, 0x58, 0x9c, 0x44, 0x02, 0x7d, 0xfe, 0x0b, 0x01, 0xe1,
+ 0xfe, 0x1f, 0x02, 0x01, 0xfd, 0x77, 0x01, 0xb8, 0x36, 0x36, 0x01, 0x37,
+ 0x02, 0x1c, 0x01, 0x37, 0x35, 0x36, 0x9f, 0x47, 0x46, 0xea, 0xfe, 0x44,
+ 0xea, 0x46, 0x47, 0x02, 0x0a, 0x80, 0xfe, 0xb5, 0x80, 0xfe, 0x6b, 0x80,
+ 0x00, 0x03, 0x00, 0x67, 0xff, 0xa6, 0x04, 0x45, 0x06, 0x39, 0x00, 0x27,
+ 0x00, 0x2e, 0x00, 0x34, 0x00, 0x00, 0x01, 0x16, 0x17, 0x37, 0x33, 0x07,
+ 0x16, 0x17, 0x15, 0x26, 0x27, 0x01, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x27, 0x07, 0x23, 0x37, 0x26, 0x27, 0x07, 0x23, 0x37,
+ 0x26, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x3f, 0x01, 0x33, 0x07, 0x06,
+ 0x07, 0x06, 0x11, 0x14, 0x17, 0x01, 0x26, 0x27, 0x01, 0x16, 0x17, 0x03,
+ 0x11, 0x3a, 0x38, 0x1b, 0x8c, 0x2b, 0x24, 0x22, 0x35, 0x39, 0xfe, 0xe1,
+ 0x10, 0x6b, 0xbe, 0x54, 0x58, 0xc2, 0x6d, 0x18, 0x18, 0x10, 0x8b, 0x16,
+ 0x3a, 0x34, 0x22, 0x8b, 0x3a, 0x11, 0x0f, 0xa0, 0xa0, 0x90, 0xed, 0x13,
+ 0x8d, 0xcd, 0x82, 0x4f, 0x71, 0x4a, 0x01, 0xfc, 0x38, 0x3d, 0xfe, 0xe1,
+ 0x30, 0x3a, 0x05, 0xeb, 0x08, 0x13, 0x69, 0xa5, 0x16, 0x1c, 0xd5, 0x3c,
+ 0x29, 0xfb, 0x97, 0x5e, 0x5f, 0xd3, 0x48, 0x48, 0x02, 0x3f, 0x57, 0x12,
+ 0x1e, 0x87, 0xe6, 0x12, 0x15, 0xcf, 0x01, 0x67, 0x01, 0x68, 0xd0, 0xb9,
+ 0x14, 0x4b, 0xfc, 0x1f, 0x70, 0x9d, 0xfe, 0xd8, 0xee, 0x94, 0x03, 0xcb,
+ 0x13, 0x04, 0xfb, 0x95, 0x28, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x56,
+ 0xff, 0xe4, 0x04, 0x3b, 0x05, 0xf0, 0x00, 0x2c, 0x00, 0x00, 0x25, 0x36,
+ 0x37, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10,
+ 0x17, 0x16, 0x17, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x1f,
+ 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x02, 0xdd, 0x57, 0x4f, 0x5f,
+ 0x54, 0x57, 0xc3, 0x6d, 0xfe, 0xe9, 0xfe, 0xbe, 0x01, 0x42, 0x01, 0x17,
+ 0x6e, 0xc4, 0x55, 0x54, 0xbe, 0x6b, 0xd3, 0xe0, 0x70, 0x54, 0x8a, 0x89,
+ 0x2b, 0x8a, 0x63, 0x0e, 0x22, 0x15, 0x01, 0x18, 0x36, 0x20, 0x73, 0x7d,
+ 0x8a, 0x07, 0x27, 0x2f, 0x5f, 0xd3, 0x48, 0x47, 0x01, 0x9e, 0x01, 0x67,
+ 0x01, 0x68, 0x01, 0x9f, 0x47, 0x47, 0xd5, 0x5f, 0x5e, 0xfe, 0xc7, 0xfe,
+ 0xd8, 0xfe, 0xd9, 0x9c, 0x75, 0x1e, 0x03, 0x5d, 0x9d, 0x5c, 0x59, 0x04,
+ 0x05, 0xaa, 0x10, 0x0f, 0xb6, 0xab, 0x00, 0x00, 0x00, 0x01, 0x00, 0x77,
+ 0x00, 0x00, 0x04, 0x51, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x15, 0x23, 0x11,
+ 0x23, 0x11, 0x23, 0x35, 0x01, 0x4c, 0x03, 0x04, 0xfd, 0xb2, 0x02, 0x15,
+ 0xfd, 0xeb, 0xe1, 0xe1, 0xb6, 0xd4, 0x01, 0x7e, 0x04, 0x57, 0xaa, 0xfe,
+ 0x48, 0xaa, 0xfe, 0xb5, 0x45, 0xfe, 0xc7, 0x01, 0x39, 0x45, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x74, 0x00, 0x00, 0x03, 0xf2, 0x05, 0xf0, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35,
+ 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x10, 0x36, 0x33, 0x32, 0x16, 0x17,
+ 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x15,
+ 0x21, 0x15, 0x01, 0xfc, 0x01, 0xf6, 0xfc, 0x82, 0xd4, 0xab, 0xab, 0xb3,
+ 0xb3, 0xc1, 0xd1, 0x37, 0x88, 0x47, 0x45, 0x7a, 0x37, 0x85, 0x69, 0x01,
+ 0x60, 0xfe, 0xa0, 0x01, 0x68, 0x01, 0xec, 0xfe, 0xbe, 0xaa, 0xaa, 0x01,
+ 0x42, 0x8f, 0x8f, 0x8f, 0x5f, 0x01, 0x05, 0xf3, 0x1f, 0x1d, 0xb6, 0x29,
+ 0x29, 0x9b, 0xd4, 0x48, 0x8f, 0x8f, 0x8f, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0x42, 0x06, 0x67, 0x05, 0x1e, 0x00, 0x2b, 0x00, 0x00, 0x05, 0x23,
+ 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11,
+ 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x13, 0x33,
+ 0x07, 0x36, 0x33, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x02, 0x84, 0x99, 0x01, 0x49, 0x05,
+ 0x2e, 0x34, 0x6b, 0x7f, 0x4a, 0x4b, 0xa7, 0xa7, 0x38, 0x50, 0x4f, 0x6d,
+ 0x6e, 0x4c, 0x31, 0x21, 0x78, 0x99, 0x4f, 0x52, 0x6c, 0x9e, 0xab, 0xa7,
+ 0x66, 0x6a, 0x80, 0x96, 0xa6, 0xbe, 0x03, 0x78, 0x8d, 0x47, 0x4d, 0x5f,
+ 0x61, 0xa2, 0xfd, 0x87, 0x04, 0x60, 0xae, 0x66, 0x32, 0x31, 0x3e, 0x26,
+ 0x3e, 0x01, 0x45, 0xd6, 0x33, 0xf6, 0xe1, 0xfd, 0x5c, 0x02, 0x9e, 0xa1,
+ 0x9c, 0xbe, 0xa4, 0xfd, 0x87, 0x01, 0x1d, 0x00, 0x00, 0x05, 0x00, 0x69,
+ 0x00, 0x00, 0x04, 0xfa, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x06, 0x00, 0x22,
+ 0x00, 0x26, 0x00, 0x29, 0x00, 0x00, 0x01, 0x27, 0x15, 0x13, 0x27, 0x23,
+ 0x15, 0x03, 0x33, 0x13, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15,
+ 0x33, 0x15, 0x23, 0x11, 0x23, 0x03, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x35, 0x23, 0x35, 0x33, 0x05, 0x17, 0x33, 0x35, 0x03, 0x17, 0x35,
+ 0x02, 0x10, 0x47, 0xa4, 0x33, 0x71, 0xb1, 0xf5, 0xbe, 0xcf, 0xb0, 0xb0,
+ 0xb0, 0xb0, 0xb0, 0xf4, 0xbe, 0xcf, 0xb1, 0xaf, 0xaf, 0xaf, 0xaf, 0x01,
+ 0xde, 0x32, 0x72, 0x47, 0x47, 0x03, 0xaf, 0xce, 0xce, 0xfe, 0xf2, 0x93,
+ 0x93, 0x03, 0x34, 0xfd, 0xda, 0x02, 0x26, 0xfd, 0xda, 0x7b, 0x93, 0x7b,
+ 0xfd, 0xda, 0x02, 0x26, 0xfd, 0xda, 0x02, 0x26, 0x7b, 0x93, 0x7b, 0x7b,
+ 0x93, 0x93, 0xfe, 0xf2, 0xce, 0xce, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0xff, 0xe3, 0x08, 0xd3, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x50, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x01, 0x06, 0x07,
+ 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21, 0x32, 0x17, 0x16, 0x17, 0x33,
+ 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x27, 0x35, 0x23, 0x22, 0x26, 0x35, 0x11, 0x01, 0x60, 0xd7,
+ 0x78, 0x82, 0x82, 0x78, 0x01, 0xad, 0x05, 0x66, 0x6e, 0xd4, 0xd7, 0xab,
+ 0x01, 0x82, 0xd4, 0x6e, 0x4f, 0x15, 0x49, 0x9d, 0x01, 0x41, 0xfe, 0xbf,
+ 0x3f, 0x62, 0x9a, 0x56, 0xa8, 0x52, 0x6e, 0x77, 0x56, 0x91, 0x36, 0x90,
+ 0x81, 0xbe, 0xae, 0x57, 0x98, 0x41, 0x43, 0x8e, 0x4d, 0x74, 0x74, 0x54,
+ 0x7d, 0x35, 0xa7, 0x8b, 0xd2, 0xb6, 0x4d, 0xa5, 0x5b, 0x9a, 0xb5, 0x89,
+ 0x05, 0x2f, 0xfd, 0xcf, 0x92, 0x87, 0x86, 0x92, 0xfe, 0xcc, 0xc8, 0x6a,
+ 0x71, 0xfd, 0xa8, 0x05, 0xd5, 0x71, 0x52, 0x88, 0x01, 0x3e, 0xfe, 0xc2,
+ 0x8f, 0xfd, 0xa0, 0x89, 0x4e, 0x23, 0x35, 0x35, 0x59, 0x51, 0x4b, 0x50,
+ 0x25, 0x0f, 0x24, 0x95, 0x82, 0x9e, 0xac, 0x1e, 0x1e, 0xae, 0x28, 0x28,
+ 0x54, 0x54, 0x40, 0x49, 0x21, 0x0e, 0x2a, 0x99, 0x89, 0x9c, 0xb6, 0x23,
+ 0x23, 0x01, 0x9f, 0xd2, 0x02, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0xff, 0xe3, 0x07, 0x62, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23, 0x01, 0x17, 0x23, 0x03,
+ 0x2e, 0x01, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x07, 0x1e, 0x01, 0x1f, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32,
+ 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f,
+ 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x26, 0x01, 0x6b,
+ 0xe4, 0x84, 0x86, 0x86, 0x84, 0x02, 0x79, 0x04, 0xc4, 0xac, 0x42, 0x7d,
+ 0x6c, 0xc6, 0xb6, 0x01, 0x9a, 0xe7, 0xe2, 0x75, 0x71, 0x3b, 0x6e, 0x38,
+ 0x52, 0x58, 0x57, 0x59, 0x57, 0x75, 0x7e, 0x5b, 0x9a, 0x39, 0x9a, 0x89,
+ 0xca, 0xb9, 0x5c, 0xa2, 0x44, 0x46, 0x97, 0x51, 0x7c, 0x7b, 0x58, 0x86,
+ 0x38, 0xb1, 0x94, 0xde, 0xc3, 0x51, 0x57, 0x28, 0x05, 0x2f, 0xfd, 0xee,
+ 0x87, 0x01, 0x06, 0x85, 0xfa, 0xd8, 0x07, 0x01, 0x7f, 0x96, 0x62, 0xfd,
+ 0x89, 0x05, 0xd5, 0xd6, 0xd8, 0x8d, 0xba, 0x24, 0x16, 0x90, 0x7e, 0xb4,
+ 0x33, 0x19, 0x1b, 0x59, 0x51, 0x4b, 0x50, 0x25, 0x0f, 0x24, 0x95, 0x82,
+ 0x9e, 0xac, 0x1e, 0x1e, 0xae, 0x28, 0x28, 0x54, 0x54, 0x40, 0x49, 0x21,
+ 0x0e, 0x2a, 0x99, 0x89, 0x9c, 0xb6, 0x12, 0x08, 0x00, 0x06, 0x00, 0x35,
+ 0x00, 0x00, 0x06, 0xea, 0x05, 0xd5, 0x00, 0x1f, 0x00, 0x22, 0x00, 0x26,
+ 0x00, 0x29, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x00, 0x13, 0x27, 0x23, 0x35,
+ 0x33, 0x27, 0x33, 0x17, 0x21, 0x37, 0x33, 0x17, 0x21, 0x37, 0x33, 0x07,
+ 0x33, 0x15, 0x23, 0x07, 0x33, 0x15, 0x23, 0x03, 0x23, 0x03, 0x23, 0x03,
+ 0x23, 0x03, 0x23, 0x35, 0x05, 0x1b, 0x01, 0x01, 0x17, 0x21, 0x37, 0x01,
+ 0x1b, 0x02, 0x07, 0x33, 0x27, 0x21, 0x17, 0x21, 0x37, 0xa4, 0x1b, 0x54,
+ 0x34, 0x2c, 0xb8, 0x2b, 0x01, 0xde, 0x2b, 0xcc, 0x2c, 0x01, 0xdd, 0x2c,
+ 0xb8, 0x2c, 0x33, 0x53, 0x1a, 0x6d, 0x8e, 0xca, 0xe5, 0xc4, 0xb0, 0xc6,
+ 0xe4, 0xca, 0x8f, 0x04, 0x47, 0x94, 0x94, 0xfe, 0x9d, 0x1a, 0x01, 0x69,
+ 0x1a, 0xfb, 0x9d, 0x94, 0x95, 0xce, 0x1a, 0x70, 0x19, 0xfd, 0x91, 0x1a,
+ 0x01, 0x69, 0x1b, 0x04, 0x0f, 0x75, 0x8f, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2,
+ 0xc2, 0x8f, 0x75, 0x8f, 0xfc, 0x80, 0x03, 0x80, 0xfc, 0x80, 0x03, 0x80,
+ 0x8f, 0x8f, 0xfd, 0x67, 0x02, 0x99, 0x01, 0x04, 0x75, 0x75, 0xfe, 0xfc,
+ 0xfd, 0x67, 0x02, 0x99, 0x01, 0x04, 0x75, 0x75, 0x75, 0x75, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x55, 0xff, 0xe3, 0x05, 0x59, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x1b, 0x00, 0x00, 0x13, 0x25, 0x32, 0x12, 0x19, 0x01, 0x23, 0x11,
+ 0x34, 0x26, 0x23, 0x21, 0x11, 0x23, 0x29, 0x01, 0x22, 0x02, 0x19, 0x01,
+ 0x33, 0x11, 0x14, 0x16, 0x33, 0x21, 0x03, 0x33, 0x56, 0x01, 0xd3, 0xe5,
+ 0xec, 0xa6, 0x8d, 0x9e, 0xfe, 0xd2, 0xa5, 0x04, 0xff, 0xfe, 0x31, 0xe6,
+ 0xec, 0xa6, 0x8d, 0x9f, 0x01, 0x31, 0x04, 0xa6, 0x05, 0xd2, 0x03, 0xfe,
+ 0xd6, 0xfe, 0xdc, 0xfe, 0x91, 0x01, 0x56, 0xf0, 0xd3, 0xfa, 0xb2, 0x01,
+ 0x2a, 0x01, 0x24, 0x01, 0x6f, 0xfe, 0xaa, 0xf0, 0xd3, 0x05, 0x4e, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xfe, 0xc0, 0x04, 0x76, 0x06, 0x14, 0x10, 0x26,
+ 0x00, 0xd3, 0x00, 0x00, 0x10, 0x06, 0x02, 0x8f, 0x7c, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0xe3, 0x04, 0x1b, 0x05, 0xf0, 0x00, 0x31,
+ 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x21, 0x07,
+ 0x21, 0x06, 0x14, 0x15, 0x1c, 0x01, 0x17, 0x21, 0x07, 0x21, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x03, 0x23,
+ 0x37, 0x33, 0x34, 0x26, 0x35, 0x34, 0x36, 0x35, 0x23, 0x37, 0x33, 0x12,
+ 0x00, 0x33, 0x32, 0x16, 0x04, 0x1a, 0x52, 0x98, 0x5c, 0x8d, 0xb6, 0x1c,
+ 0x02, 0x07, 0x32, 0xfe, 0x1c, 0x02, 0x02, 0x01, 0x92, 0x33, 0xfe, 0xb0,
+ 0x1c, 0xb6, 0x8d, 0x5c, 0x98, 0x52, 0x50, 0xa6, 0x57, 0xd5, 0xfe, 0xea,
+ 0x24, 0xbe, 0x32, 0x7d, 0x01, 0x01, 0xaf, 0x32, 0x8c, 0x24, 0x01, 0x17,
+ 0xd4, 0x59, 0xa6, 0x05, 0x62, 0xd5, 0x69, 0x5a, 0xc8, 0xbb, 0x7b, 0x18,
+ 0x2e, 0x23, 0x20, 0x2e, 0x18, 0x7b, 0xbb, 0xca, 0x5a, 0x69, 0xd3, 0x48,
+ 0x48, 0x01, 0x22, 0x01, 0x03, 0x7b, 0x17, 0x2f, 0x20, 0x23, 0x2f, 0x17,
+ 0x7b, 0x01, 0x01, 0x01, 0x22, 0x47, 0x00, 0x00, 0x00, 0x01, 0x00, 0x24,
+ 0x00, 0x00, 0x04, 0x94, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x13, 0x11,
+ 0x33, 0x11, 0x01, 0x33, 0x01, 0x21, 0x15, 0x21, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0x11, 0x23, 0x35, 0xac, 0xaa, 0x02, 0x36, 0xdb, 0xfd, 0xc0, 0x01,
+ 0x7f, 0xfe, 0x83, 0x02, 0x6b, 0xe0, 0xfd, 0xa2, 0xaa, 0x88, 0x03, 0x54,
+ 0x02, 0x81, 0xfd, 0x89, 0x02, 0x77, 0xfd, 0x7f, 0x73, 0xfd, 0x1f, 0x02,
+ 0xcf, 0xfd, 0x31, 0x02, 0xe1, 0x73, 0x00, 0x00, 0x00, 0x01, 0x00, 0x12,
+ 0x00, 0x00, 0x04, 0x83, 0x05, 0xd5, 0x00, 0x17, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x37, 0x17, 0x05, 0x15, 0x37, 0x17,
+ 0x05, 0x11, 0x23, 0x11, 0x07, 0x27, 0x25, 0x35, 0x07, 0x27, 0x01, 0xef,
+ 0xfe, 0x23, 0x04, 0x71, 0xfe, 0x23, 0xce, 0x48, 0xfe, 0xea, 0xcf, 0x48,
+ 0xfe, 0xe9, 0xb7, 0xd0, 0x45, 0x01, 0x15, 0xd1, 0x45, 0x03, 0x8d, 0x01,
+ 0x9e, 0xaa, 0xaa, 0xfe, 0xf1, 0xa1, 0x6f, 0xd8, 0x88, 0xa2, 0x6f, 0xd9,
+ 0xfd, 0xb8, 0x01, 0xba, 0xa1, 0x6e, 0xd9, 0x88, 0xa2, 0x6e, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xbb, 0xfe, 0x39, 0x08, 0xae, 0x05, 0xf0, 0x00, 0x16,
+ 0x00, 0x2d, 0x00, 0x62, 0x00, 0x77, 0x00, 0x83, 0x00, 0x00, 0x01, 0x27,
+ 0x13, 0x36, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x13, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x05, 0x36, 0x37, 0x13,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x27, 0x3e, 0x01, 0x37, 0x36, 0x33,
+ 0x32, 0x04, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x2e, 0x01, 0x27, 0x26, 0x2f,
+ 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x01, 0x03, 0x06, 0x07, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x01, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x06, 0x54,
+ 0xa6, 0x91, 0x1f, 0x38, 0x2c, 0x87, 0x57, 0x43, 0x6e, 0x22, 0x3a, 0x2b,
+ 0x2c, 0x49, 0x52, 0x4e, 0x32, 0x37, 0x2b, 0x1b, 0xde, 0x4e, 0x2c, 0x0b,
+ 0x0e, 0x09, 0x15, 0x1c, 0x38, 0x21, 0x36, 0x15, 0x12, 0x11, 0x10, 0x1a,
+ 0x0b, 0x16, 0x12, 0xfa, 0x5a, 0x0b, 0x0a, 0xa2, 0x2a, 0x1d, 0x1f, 0x16,
+ 0x13, 0x0f, 0x9d, 0x18, 0x5a, 0x3c, 0x6b, 0x9e, 0xb6, 0x01, 0x0f, 0x55,
+ 0x4c, 0x4a, 0x19, 0x17, 0x3c, 0x20, 0x57, 0x37, 0x3e, 0x44, 0x56, 0x43,
+ 0x38, 0x29, 0x2e, 0x58, 0x1d, 0x3a, 0x0d, 0x0e, 0x10, 0x13, 0x46, 0x53,
+ 0x69, 0x45, 0x45, 0x77, 0x5e, 0x42, 0x01, 0xb4, 0xa0, 0x16, 0x13, 0x24,
+ 0x4b, 0x2e, 0x33, 0x30, 0x61, 0x8a, 0x34, 0x27, 0x1a, 0x15, 0x1b, 0x1c,
+ 0x32, 0x77, 0xfd, 0x8d, 0x24, 0x2b, 0x22, 0x0c, 0x0c, 0x15, 0x14, 0x1d,
+ 0x29, 0xfe, 0x39, 0x29, 0x02, 0xd0, 0x97, 0x69, 0x52, 0x6d, 0x3a, 0x33,
+ 0x58, 0x92, 0x77, 0x64, 0x67, 0x37, 0x3f, 0x20, 0x17, 0x32, 0x01, 0xf8,
+ 0x6a, 0x1a, 0x37, 0x23, 0x3d, 0x35, 0x28, 0x36, 0x24, 0x20, 0x1b, 0x36,
+ 0x32, 0x39, 0x54, 0x2f, 0x14, 0x0c, 0x0b, 0xb7, 0x28, 0x32, 0x03, 0x4d,
+ 0x0a, 0x14, 0x16, 0x21, 0x1d, 0x3a, 0x35, 0x53, 0x7d, 0x24, 0x40, 0x7b,
+ 0x6d, 0x62, 0xf5, 0x81, 0x71, 0x8c, 0x82, 0x7e, 0x45, 0x73, 0x2f, 0x34,
+ 0x18, 0x1d, 0x09, 0x0a, 0x2d, 0x13, 0x26, 0x0a, 0x0a, 0x22, 0x17, 0x54,
+ 0x41, 0x42, 0x60, 0x5d, 0x85, 0x03, 0x92, 0xfc, 0x9b, 0x7c, 0x40, 0x1b,
+ 0x38, 0x16, 0x19, 0x86, 0x6e, 0x52, 0x80, 0x6b, 0x63, 0x64, 0x5d, 0x61,
+ 0x43, 0x9c, 0xfb, 0xa0, 0x22, 0x0e, 0x0e, 0x0f, 0x18, 0x0f, 0x0e, 0x00,
+ 0x00, 0x02, 0x00, 0x29, 0xff, 0xe3, 0x04, 0x1a, 0x05, 0xf0, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x00, 0x13, 0x27, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x35, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x25, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0xa6, 0x7d,
+ 0x85, 0x64, 0x6f, 0x3a, 0x4f, 0x1f, 0x2b, 0x31, 0xcc, 0x48, 0x50, 0x7b,
+ 0x68, 0x57, 0x4c, 0x61, 0xa3, 0x71, 0x5f, 0xe3, 0x78, 0x52, 0x42, 0x6b,
+ 0x7b, 0x62, 0x66, 0x43, 0x2d, 0x30, 0x2d, 0x01, 0xf8, 0x3d, 0x18, 0x20,
+ 0x2d, 0x2f, 0x1e, 0x16, 0x02, 0x04, 0x60, 0xf0, 0x4e, 0x6b, 0x42, 0xb1,
+ 0xfe, 0xac, 0x58, 0x60, 0x60, 0x53, 0xb1, 0xe3, 0xab, 0xa3, 0xbf, 0xc2,
+ 0x86, 0x71, 0xa2, 0x4a, 0x3c, 0x93, 0x58, 0x72, 0x7e, 0x68, 0x46, 0xd9,
+ 0x6c, 0xaf, 0x56, 0x31, 0x3f, 0x3f, 0x30, 0x57, 0xa6, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x04, 0x2c, 0x05, 0xd5, 0x00, 0x1d,
+ 0x00, 0x24, 0x00, 0x2b, 0x00, 0x31, 0x00, 0x00, 0x13, 0x35, 0x23, 0x35,
+ 0x33, 0x11, 0x21, 0x32, 0x17, 0x16, 0x17, 0x33, 0x15, 0x23, 0x16, 0x14,
+ 0x07, 0x33, 0x15, 0x23, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11,
+ 0x23, 0x35, 0x05, 0x21, 0x15, 0x33, 0x32, 0x37, 0x36, 0x01, 0x21, 0x26,
+ 0x27, 0x26, 0x2b, 0x01, 0x05, 0x21, 0x15, 0x21, 0x36, 0x34, 0x88, 0x4a,
+ 0x4a, 0x01, 0x9a, 0xe2, 0x74, 0x45, 0x1c, 0x52, 0x40, 0x01, 0x01, 0x3f,
+ 0x50, 0x1c, 0x46, 0x74, 0xe2, 0xe4, 0xb6, 0x4b, 0x02, 0xcd, 0xfe, 0x34,
+ 0xe4, 0x7f, 0x45, 0x15, 0xfe, 0x43, 0x01, 0xcc, 0x0f, 0x15, 0x45, 0x7f,
+ 0xe4, 0x01, 0xec, 0xfe, 0x14, 0x01, 0xec, 0x02, 0x03, 0xec, 0x56, 0x74,
+ 0x01, 0x1f, 0x71, 0x44, 0x6a, 0x74, 0x15, 0x2c, 0x15, 0x74, 0x6b, 0x44,
+ 0x71, 0xfd, 0xa8, 0x03, 0x78, 0x74, 0x74, 0x7a, 0x49, 0x16, 0x01, 0x59,
+ 0x1b, 0x15, 0x49, 0xed, 0x56, 0x15, 0x2c, 0x00, 0x00, 0x02, 0x00, 0x53,
+ 0xff, 0x5b, 0x04, 0x39, 0x06, 0x78, 0x00, 0x24, 0x00, 0x2d, 0x00, 0x00,
+ 0x05, 0x23, 0x35, 0x26, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x37, 0x35,
+ 0x33, 0x15, 0x16, 0x17, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x27, 0x11,
+ 0x36, 0x37, 0x36, 0x37, 0x11, 0x23, 0x35, 0x21, 0x11, 0x06, 0x07, 0x06,
+ 0x07, 0x27, 0x11, 0x06, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16, 0x02, 0xad,
+ 0x7e, 0xc9, 0x7b, 0x97, 0x97, 0x7b, 0xc9, 0x7e, 0x5e, 0x57, 0x65, 0x54,
+ 0x55, 0x61, 0x58, 0x60, 0x46, 0x39, 0x41, 0x33, 0x6c, 0x01, 0x05, 0x59,
+ 0x6c, 0x5e, 0x69, 0x7e, 0x78, 0x47, 0x64, 0x64, 0x47, 0xa5, 0x8f, 0x1f,
+ 0xa7, 0xcc, 0x01, 0x6d, 0x01, 0x6e, 0xcd, 0xa6, 0x1f, 0x8f, 0x89, 0x04,
+ 0x1f, 0x24, 0x46, 0xd7, 0x5f, 0x30, 0x2c, 0x04, 0xfb, 0x3f, 0x02, 0x11,
+ 0x12, 0x27, 0x01, 0x91, 0xa6, 0xfd, 0x7f, 0x53, 0x2a, 0x25, 0x05, 0xb2,
+ 0x04, 0xa7, 0x20, 0x6c, 0x99, 0xfe, 0xd1, 0xfe, 0xd2, 0x99, 0x6c, 0x00,
+ 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x04, 0x85, 0x05, 0xd5, 0x00, 0x17,
+ 0x00, 0x1b, 0x00, 0x1e, 0x00, 0x00, 0x13, 0x35, 0x21, 0x13, 0x33, 0x13,
+ 0x21, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x13, 0x23, 0x03, 0x21, 0x03,
+ 0x23, 0x13, 0x23, 0x35, 0x33, 0x37, 0x33, 0x07, 0x21, 0x2f, 0x01, 0x33,
+ 0x03, 0x2e, 0x01, 0x12, 0xa3, 0xce, 0xa3, 0x01, 0x12, 0xeb, 0x40, 0xab,
+ 0x84, 0xa2, 0xbc, 0x9a, 0xfe, 0x39, 0x99, 0xc0, 0xa3, 0x83, 0xaa, 0x42,
+ 0xad, 0x3c, 0x01, 0x7f, 0x3e, 0xe1, 0xbd, 0x5e, 0x03, 0x52, 0x7b, 0x02,
+ 0x08, 0xfd, 0xf8, 0x7b, 0xcf, 0x7b, 0xfd, 0xf8, 0x02, 0x08, 0xfd, 0xf8,
+ 0x02, 0x08, 0x7b, 0xcf, 0xcf, 0xcf, 0x7b, 0x01, 0x41, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0xff, 0xe3, 0x05, 0x2a, 0x05, 0xf0, 0x00, 0x36,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x37, 0x21, 0x35, 0x21, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x07, 0x33, 0x15, 0x23, 0x06, 0x0f, 0x01, 0x21,
+ 0x15, 0x21, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x24, 0x35, 0x34, 0x37, 0x23, 0x35, 0x01, 0x39, 0x04,
+ 0x14, 0x42, 0x74, 0xfe, 0x62, 0x03, 0x37, 0x0b, 0x0b, 0x36, 0xa2, 0x94,
+ 0x56, 0xb7, 0x68, 0x67, 0xc4, 0x5f, 0xdc, 0xfb, 0x16, 0x9d, 0xe9, 0x5c,
+ 0xc3, 0x3c, 0x02, 0x44, 0xfc, 0xb2, 0x2d, 0xa9, 0x9c, 0x67, 0xd4, 0x6f,
+ 0x73, 0xd8, 0x5f, 0xfd, 0xfe, 0xfa, 0x11, 0x98, 0x02, 0xa1, 0x07, 0x16,
+ 0x4a, 0x2c, 0x7b, 0x08, 0x09, 0x2b, 0x6b, 0x76, 0x80, 0x36, 0x37, 0xc5,
+ 0x26, 0x26, 0xe4, 0xc6, 0x55, 0x42, 0x7b, 0x5c, 0x2a, 0x0d, 0x7b, 0x3b,
+ 0x5e, 0x7e, 0x88, 0x46, 0x45, 0xd0, 0x2f, 0x30, 0xe0, 0xd9, 0x4b, 0x3f,
+ 0x7b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x94, 0xfe, 0xd3, 0x04, 0x01,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x2a, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01,
+ 0x23, 0x11, 0x32, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x07, 0x11, 0x23,
+ 0x11, 0x26, 0x27, 0x26, 0x11, 0x35, 0x10, 0x37, 0x36, 0x37, 0x35, 0x33,
+ 0x15, 0x16, 0x17, 0x16, 0x01, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, 0x17,
+ 0x16, 0x17, 0x16, 0x04, 0x00, 0x53, 0x97, 0x5b, 0x5b, 0x97, 0x53, 0x51,
+ 0x53, 0x4f, 0x52, 0x5a, 0xa6, 0x69, 0xbe, 0xbf, 0x6d, 0xa0, 0x5b, 0x54,
+ 0x4f, 0x53, 0xfe, 0xb0, 0x01, 0x52, 0x3c, 0x6a, 0x0e, 0x0c, 0x0c, 0x17,
+ 0x61, 0x3c, 0x04, 0xa4, 0xd5, 0x69, 0x5a, 0xfb, 0xf1, 0x5a, 0x69, 0xd3,
+ 0x48, 0x24, 0x22, 0x02, 0xfe, 0xf0, 0x01, 0x15, 0x16, 0x76, 0xd6, 0x01,
+ 0x39, 0x11, 0x01, 0x42, 0xcb, 0x74, 0x17, 0xe8, 0xe2, 0x02, 0x22, 0x24,
+ 0xfb, 0xa4, 0x03, 0xf9, 0x16, 0x43, 0x75, 0xaa, 0xa1, 0x66, 0xb4, 0x6c,
+ 0x43, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x04, 0x83,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x12, 0x04, 0x71, 0xfb,
+ 0x8f, 0x04, 0x71, 0xfe, 0x23, 0xb7, 0xfe, 0x23, 0x05, 0xd5, 0xaa, 0x78,
+ 0xaa, 0xfb, 0xf7, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5f,
+ 0x00, 0x00, 0x04, 0x38, 0x05, 0xd5, 0x00, 0x26, 0x00, 0x00, 0x13, 0x37,
+ 0x21, 0x07, 0x21, 0x16, 0x17, 0x21, 0x07, 0x23, 0x06, 0x07, 0x06, 0x07,
+ 0x16, 0x17, 0x16, 0x17, 0x13, 0x23, 0x03, 0x26, 0x27, 0x26, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x21, 0x37, 0x21, 0x26, 0x27, 0x26,
+ 0x23, 0x5f, 0x32, 0x03, 0xa6, 0x31, 0xfe, 0xc1, 0x47, 0x13, 0x01, 0x16,
+ 0x31, 0xde, 0x05, 0x36, 0x3b, 0x70, 0x3a, 0x38, 0x34, 0x3b, 0xb8, 0xc3,
+ 0xac, 0x44, 0x3d, 0x3f, 0x6c, 0xc6, 0xe5, 0x83, 0x43, 0x3d, 0x06, 0xfd,
+ 0xf7, 0x32, 0x01, 0xcc, 0x10, 0x28, 0x43, 0x83, 0x05, 0x5a, 0x7b, 0x7b,
+ 0x4e, 0x81, 0x7b, 0x7e, 0x55, 0x5d, 0x24, 0x16, 0x48, 0x44, 0x82, 0xfe,
+ 0x68, 0x01, 0x7f, 0x97, 0x30, 0x31, 0xa6, 0x43, 0x3e, 0x72, 0x7b, 0x43,
+ 0x34, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x05, 0x04, 0xad,
+ 0x05, 0xda, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x10, 0x07, 0x06, 0x21, 0x23,
+ 0x11, 0x07, 0x27, 0x25, 0x35, 0x07, 0x27, 0x25, 0x11, 0x33, 0x11, 0x37,
+ 0x17, 0x05, 0x15, 0x37, 0x17, 0x05, 0x11, 0x20, 0x00, 0x11, 0x04, 0xad,
+ 0xb8, 0xb7, 0xfe, 0x7b, 0x9b, 0xcf, 0x46, 0x01, 0x15, 0xd1, 0x44, 0x01,
+ 0x15, 0xb6, 0xcf, 0x48, 0xfe, 0xe9, 0xd1, 0x48, 0xfe, 0xe7, 0x01, 0x16,
+ 0x01, 0x02, 0x02, 0xf1, 0xfe, 0x7e, 0xb5, 0xb5, 0x02, 0x1e, 0xa1, 0x6e,
+ 0xd8, 0x89, 0xa2, 0x6e, 0xd9, 0x01, 0xe4, 0xfe, 0xaa, 0xa2, 0x6f, 0xd9,
+ 0x88, 0xa3, 0x6f, 0xda, 0xfd, 0xfb, 0x01, 0x18, 0x01, 0x2e, 0x00, 0x00,
+ 0x00, 0x01, 0xfc, 0x76, 0x05, 0x15, 0xff, 0xd1, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x13, 0x33, 0x07, 0x21, 0x15, 0xfc, 0x77, 0xc4, 0x71,
+ 0x77, 0x02, 0x9b, 0x05, 0x15, 0x00, 0xff, 0x9b, 0x64, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xfc, 0x9d, 0x05, 0x15, 0xff, 0xf7, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x03, 0x21, 0x35, 0x21, 0x27, 0x33, 0x09, 0xfc, 0xa6, 0x02,
+ 0x9b, 0x77, 0x72, 0x05, 0x15, 0x64, 0x9b, 0x00, 0x00, 0x01, 0xfc, 0x9d,
+ 0x04, 0x7a, 0xff, 0xd1, 0x06, 0x14, 0x00, 0x08, 0x00, 0x00, 0x03, 0x21,
+ 0x17, 0x23, 0x27, 0x37, 0x33, 0x07, 0x21, 0x30, 0xfd, 0x65, 0x77, 0x71,
+ 0x9e, 0x9e, 0x71, 0x77, 0x02, 0x9b, 0x05, 0x15, 0x9b, 0xcd, 0xcd, 0x9b,
+ 0x00, 0x01, 0xfc, 0x9d, 0x04, 0x7a, 0xff, 0xd1, 0x06, 0x14, 0x00, 0x08,
+ 0x00, 0x00, 0x01, 0x35, 0x21, 0x27, 0x33, 0x17, 0x07, 0x23, 0x37, 0xfc,
+ 0x9d, 0x02, 0x9b, 0x77, 0x72, 0x9d, 0x9d, 0x72, 0x77, 0x05, 0x15, 0x64,
+ 0x9b, 0xcd, 0xcd, 0x9b, 0x00, 0x04, 0xfc, 0x77, 0x04, 0x7b, 0xff, 0xee,
+ 0x06, 0x10, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23,
+ 0x17, 0xfc, 0x78, 0xb6, 0xb6, 0x02, 0xbf, 0xb7, 0xb7, 0xfe, 0xa0, 0xb7,
+ 0xb7, 0x5c, 0x06, 0x10, 0xca, 0xca, 0xca, 0xca, 0xca, 0xcb, 0x00, 0x00,
+ 0x00, 0x05, 0xfb, 0xc8, 0x04, 0x7b, 0x00, 0x9f, 0x06, 0x10, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x10, 0x00, 0x00, 0x03, 0x33,
+ 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x25, 0x33,
+ 0x15, 0x23, 0x05, 0x18, 0xb6, 0xb6, 0xfb, 0xe0, 0xb7, 0xb7, 0x02, 0xc0,
+ 0xb6, 0xb6, 0xfe, 0xa0, 0xb7, 0xb7, 0x01, 0x0b, 0x06, 0x10, 0xca, 0xca,
+ 0xca, 0xca, 0xca, 0xca, 0xca, 0xcb, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x9d,
+ 0x04, 0x7a, 0xff, 0xd1, 0x06, 0x14, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x17,
+ 0x23, 0x27, 0x37, 0x33, 0x07, 0x21, 0x27, 0x33, 0x17, 0x07, 0x23, 0x37,
+ 0xfd, 0x35, 0x77, 0x71, 0x9e, 0x9e, 0x71, 0x77, 0x02, 0x03, 0x77, 0x72,
+ 0x9d, 0x9d, 0x72, 0x77, 0x05, 0x15, 0x9b, 0xcd, 0xcd, 0x9b, 0x9b, 0xcd,
+ 0xcd, 0x9b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3c, 0xff, 0xcf, 0x07, 0x10,
+ 0x06, 0x04, 0x00, 0x0a, 0x00, 0x24, 0x00, 0x28, 0x00, 0x42, 0x00, 0x00,
+ 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x37,
+ 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x17, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x25, 0x33, 0x01, 0x23, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x01, 0xda, 0x90, 0x64, 0x4a,
+ 0x41, 0x5c, 0x72, 0xa9, 0xa9, 0x03, 0x89, 0x62, 0x7f, 0x96, 0xb9, 0xb2,
+ 0x98, 0x64, 0x5d, 0x3d, 0x74, 0x59, 0x53, 0x85, 0x40, 0xaf, 0xad, 0x02,
+ 0x6c, 0xc2, 0xfc, 0xa4, 0xc3, 0x05, 0x18, 0x54, 0x64, 0x33, 0x6d, 0x7b,
+ 0x7b, 0x6d, 0x33, 0x64, 0x54, 0x41, 0x76, 0x41, 0xb6, 0xd4, 0xd6, 0xbc,
+ 0x3c, 0x73, 0x03, 0xf6, 0x42, 0x52, 0x43, 0x49, 0x94, 0x82, 0x0a, 0x4d,
+ 0xfe, 0x0d, 0x3e, 0x05, 0x4f, 0x9e, 0x81, 0x96, 0x9b, 0x06, 0x57, 0x5c,
+ 0x20, 0x37, 0xb2, 0x24, 0x1e, 0xca, 0xfa, 0xf9, 0xcb, 0x03, 0x84, 0xb2,
+ 0x34, 0x1e, 0x9c, 0x94, 0x93, 0x9d, 0x1f, 0x34, 0xb1, 0x22, 0x1b, 0xfa,
+ 0xd1, 0xd4, 0xf9, 0x1b, 0x00, 0x04, 0x00, 0x3c, 0xff, 0xcf, 0x07, 0x32,
+ 0x06, 0x04, 0x00, 0x20, 0x00, 0x2b, 0x00, 0x45, 0x00, 0x49, 0x00, 0x00,
+ 0x01, 0x2e, 0x01, 0x34, 0x36, 0x04, 0x17, 0x15, 0x27, 0x26, 0x23, 0x22,
+ 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x14, 0x06, 0x23, 0x26, 0x27,
+ 0x35, 0x17, 0x16, 0x33, 0x32, 0x35, 0x34, 0x26, 0x27, 0x01, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x37, 0x11, 0x23, 0x35,
+ 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x17, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x25, 0x33,
+ 0x01, 0x23, 0x05, 0xb4, 0x7a, 0x72, 0xa6, 0x01, 0x2d, 0x6e, 0x21, 0x64,
+ 0x74, 0xa2, 0x35, 0x5e, 0x2b, 0x8a, 0x7b, 0xb5, 0x99, 0x9e, 0x82, 0x21,
+ 0x84, 0x7d, 0xa0, 0x37, 0x6f, 0xfb, 0xfb, 0x90, 0x64, 0x4a, 0x41, 0x5c,
+ 0x72, 0xa9, 0xa9, 0x03, 0x89, 0x62, 0x7f, 0x96, 0xb9, 0xb2, 0x98, 0x64,
+ 0x5d, 0x3d, 0x74, 0x59, 0x53, 0x85, 0x40, 0xaf, 0xad, 0x02, 0x6c, 0xc2,
+ 0xfc, 0xa4, 0xc3, 0x01, 0x7d, 0x1c, 0x7c, 0xef, 0x8e, 0x01, 0x34, 0xbc,
+ 0x12, 0x39, 0x64, 0x24, 0x2c, 0x18, 0x0a, 0x21, 0x7f, 0xf3, 0x95, 0x06,
+ 0x35, 0xca, 0x13, 0x4c, 0x66, 0x2c, 0x31, 0x1b, 0x02, 0x84, 0x42, 0x52,
+ 0x43, 0x49, 0x94, 0x82, 0x0a, 0x4d, 0xfe, 0x0d, 0x3e, 0x05, 0x4f, 0x9e,
+ 0x81, 0x96, 0x9b, 0x06, 0x57, 0x5c, 0x20, 0x37, 0xb2, 0x24, 0x1e, 0xca,
+ 0xfa, 0xf9, 0xcb, 0x00, 0x00, 0x02, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4,
+ 0x05, 0xf0, 0x00, 0x18, 0x00, 0x21, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x07, 0x11, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01,
+ 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x01, 0x11, 0x06,
+ 0x07, 0x06, 0x11, 0x10, 0x17, 0x16, 0x04, 0xa3, 0x50, 0xd1, 0x88, 0x92,
+ 0x6d, 0x6d, 0x92, 0x88, 0xd1, 0x50, 0x5f, 0xd6, 0x76, 0xfe, 0xce, 0xfe,
+ 0xa2, 0x01, 0x5e, 0x01, 0x32, 0x78, 0xd6, 0xfd, 0x56, 0x1f, 0x1c, 0x8d,
+ 0x8d, 0x1c, 0x05, 0x62, 0x76, 0x41, 0x5a, 0x34, 0xfb, 0x2d, 0x34, 0x5a,
+ 0x42, 0x75, 0x48, 0x48, 0x01, 0x9f, 0x01, 0x67, 0x01, 0x68, 0x01, 0x9f,
+ 0x47, 0xfb, 0x13, 0x04, 0x5b, 0x1b, 0x21, 0xac, 0xfe, 0xba, 0xfe, 0xbb,
+ 0xac, 0x21, 0x00, 0x00, 0xff, 0xff, 0x00, 0xaf, 0xff, 0xe3, 0x07, 0x96,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x72, 0x00, 0x00, 0x10, 0x07, 0x00, 0x26,
+ 0x02, 0xf2, 0x00, 0x00, 0x00, 0x02, 0xff, 0xda, 0x00, 0x00, 0x04, 0x96,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x2b, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x17, 0x11, 0x35, 0x33, 0x15, 0x16, 0x17, 0x16,
+ 0x17, 0x15, 0x26, 0x27, 0x26, 0x27, 0x11, 0x36, 0x37, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x07, 0x15, 0x21, 0x15, 0x21, 0x35, 0x26, 0x27, 0x26,
+ 0x11, 0x10, 0x37, 0x36, 0x01, 0x52, 0x42, 0x2e, 0x59, 0x59, 0x2e, 0x42,
+ 0xb5, 0x33, 0x30, 0x49, 0x45, 0x47, 0x46, 0x31, 0x33, 0x33, 0x31, 0x46,
+ 0x47, 0x46, 0x4a, 0x2e, 0x33, 0x02, 0x8f, 0xfc, 0xbc, 0x91, 0x61, 0x86,
+ 0x88, 0x5f, 0x04, 0xb3, 0x1d, 0x3a, 0x72, 0xcd, 0xcd, 0x71, 0x3b, 0x1d,
+ 0x03, 0xd4, 0x7a, 0x6e, 0x04, 0x0b, 0x12, 0x23, 0xac, 0x2b, 0x16, 0x0f,
+ 0x04, 0xfc, 0xa4, 0x04, 0x10, 0x15, 0x2b, 0xaa, 0x24, 0x12, 0x0b, 0x04,
+ 0x2a, 0xaa, 0xde, 0x20, 0x72, 0x9f, 0x01, 0x0e, 0x01, 0x12, 0x9d, 0x6e,
+ 0x00, 0x04, 0x00, 0x36, 0xff, 0xcf, 0x07, 0x1b, 0x06, 0x04, 0x00, 0x19,
+ 0x00, 0x1d, 0x00, 0x28, 0x00, 0x32, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x25, 0x33,
+ 0x01, 0x23, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x10,
+ 0x26, 0x24, 0x20, 0x16, 0x15, 0x14, 0x06, 0x20, 0x26, 0x35, 0x34, 0x02,
+ 0xb9, 0x55, 0x64, 0x32, 0x6d, 0x7b, 0x7b, 0x6d, 0x32, 0x64, 0x55, 0x42,
+ 0x75, 0x42, 0xb6, 0xd4, 0xd6, 0xbc, 0x3d, 0x73, 0x02, 0x94, 0xc2, 0xfc,
+ 0xa4, 0xc3, 0x03, 0xfa, 0x57, 0x6a, 0x6a, 0x57, 0x56, 0x6b, 0x6b, 0xfe,
+ 0xfc, 0x01, 0x5c, 0xc4, 0xc4, 0xfe, 0xa4, 0xc3, 0x05, 0x97, 0xb2, 0x34,
+ 0x1e, 0x9c, 0x94, 0x93, 0x9d, 0x1f, 0x34, 0xb1, 0x22, 0x1d, 0xfc, 0xd1,
+ 0xd4, 0xf9, 0x1b, 0x4b, 0xf9, 0xcb, 0x03, 0x04, 0x9e, 0x92, 0x91, 0x9f,
+ 0xa0, 0x01, 0x20, 0xa0, 0x9d, 0xf8, 0xd5, 0xd4, 0xf8, 0xf8, 0xd4, 0xd5,
+ 0x00, 0x03, 0x00, 0x36, 0xff, 0xcf, 0x07, 0x79, 0x06, 0x04, 0x00, 0x13,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x25, 0x33, 0x01, 0x23, 0x04, 0xd3, 0xa9, 0x49,
+ 0x48, 0x59, 0x69, 0xa9, 0xa9, 0x05, 0x82, 0x56, 0x8e, 0x91, 0xfd, 0xe6,
+ 0x55, 0x64, 0x32, 0x6d, 0x7b, 0x7b, 0x6d, 0x32, 0x64, 0x55, 0x42, 0x75,
+ 0x42, 0xb6, 0xd4, 0xd6, 0xbc, 0x3d, 0x73, 0x02, 0x94, 0xc2, 0xfc, 0xa4,
+ 0xc3, 0x01, 0x4c, 0x02, 0x10, 0xfd, 0xf5, 0x72, 0x69, 0x81, 0x75, 0x01,
+ 0xf0, 0xfc, 0x90, 0x44, 0x09, 0x50, 0xc1, 0x04, 0xff, 0xb2, 0x34, 0x1e,
+ 0x9c, 0x94, 0x93, 0x9d, 0x1f, 0x34, 0xb1, 0x22, 0x1d, 0xfc, 0xd1, 0xd4,
+ 0xf9, 0x1b, 0x4b, 0xf9, 0xcb, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x93,
+ 0xff, 0xe3, 0x04, 0x09, 0x05, 0xf0, 0x10, 0x06, 0x01, 0x52, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xfe, 0xd6, 0x04, 0xa0, 0x04, 0xe3, 0x10, 0x07,
+ 0x03, 0xc1, 0x00, 0x00, 0xfe, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x00, 0xaf,
+ 0x00, 0x00, 0x06, 0x6f, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x72, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x29, 0x02, 0xb6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41,
+ 0xff, 0xe3, 0x06, 0xcb, 0x05, 0xfb, 0x00, 0x6f, 0x00, 0x00, 0x01, 0x0f,
+ 0x01, 0x11, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x11, 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x21, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x19, 0x01, 0x22, 0x07, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x16, 0x03, 0x5f, 0x02, 0x61, 0x01, 0xc6, 0x24, 0x33, 0x3b, 0x44,
+ 0x59, 0x6f, 0x37, 0x12, 0x22, 0x19, 0x21, 0x12, 0x14, 0x1a, 0x21, 0x2b,
+ 0x2e, 0x1e, 0x24, 0x17, 0x14, 0x17, 0x24, 0x17, 0x1e, 0x27, 0x14, 0x32,
+ 0x1a, 0x2e, 0x33, 0x1c, 0x21, 0x31, 0x1a, 0x57, 0x61, 0x40, 0x35, 0x32,
+ 0x1a, 0x19, 0x0c, 0xfe, 0x44, 0x2d, 0x30, 0x53, 0x9c, 0xa6, 0x5e, 0x3c,
+ 0x2e, 0x27, 0x23, 0x30, 0x0e, 0x10, 0x0a, 0x14, 0x08, 0x23, 0x3b, 0x52,
+ 0x49, 0x3f, 0x20, 0x22, 0x7b, 0x53, 0x5a, 0x23, 0x40, 0x09, 0x01, 0x08,
+ 0x09, 0x11, 0x21, 0x1e, 0x15, 0x1a, 0x12, 0x09, 0x07, 0x71, 0x43, 0x67,
+ 0x71, 0x85, 0x27, 0x97, 0x05, 0xea, 0x1f, 0x31, 0xfd, 0xbc, 0xd1, 0x8c,
+ 0x98, 0x49, 0x67, 0x14, 0x29, 0x1d, 0x2a, 0x1a, 0x21, 0x1c, 0x26, 0x21,
+ 0x28, 0x44, 0x3b, 0x77, 0xd6, 0xfe, 0xbd, 0xa5, 0x82, 0x7d, 0x2c, 0x16,
+ 0x37, 0x35, 0x3b, 0x21, 0x5f, 0x27, 0x5d, 0x37, 0x3a, 0x79, 0x7d, 0xa9,
+ 0x5b, 0xb4, 0xcf, 0x9e, 0xa3, 0x5c, 0xae, 0x40, 0x34, 0x3e, 0x23, 0x2c,
+ 0x0f, 0x12, 0x21, 0x2c, 0x0b, 0x27, 0x51, 0x46, 0xaa, 0xa7, 0x00, 0xff,
+ 0x02, 0x6a, 0x16, 0x1a, 0x28, 0x4a, 0x47, 0x1f, 0x34, 0x10, 0x24, 0x24,
+ 0x2c, 0x10, 0x2a, 0x1d, 0x12, 0x29, 0x2f, 0x39, 0x84, 0x79, 0x4b, 0x23,
+ 0x25, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xfe, 0xf9, 0x04, 0xfe,
+ 0x05, 0xd9, 0x00, 0x50, 0x00, 0x00, 0x05, 0x37, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x16, 0x17, 0x16, 0x07, 0x02, 0x07, 0x26, 0x27, 0x26,
+ 0x22, 0x07, 0x27, 0x36, 0x33, 0x32, 0x17, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x16, 0x17, 0x16, 0x37, 0x36,
+ 0x37, 0x15, 0x0e, 0x02, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x36, 0x37, 0x32, 0x17, 0x16, 0x15, 0x10, 0x07, 0x02,
+ 0x23, 0x22, 0x02, 0xd9, 0x5f, 0x24, 0x4f, 0x21, 0x1c, 0x1f, 0x19, 0x17,
+ 0x10, 0x0c, 0x18, 0x19, 0x2d, 0x3f, 0x75, 0x4a, 0x9f, 0x3e, 0x2a, 0x0a,
+ 0x0c, 0x16, 0xb6, 0x47, 0x2a, 0x2f, 0x30, 0x3f, 0x69, 0x14, 0xaa, 0x48,
+ 0x4c, 0x52, 0x49, 0x3f, 0x52, 0x2b, 0x2b, 0x66, 0x62, 0xbe, 0x71, 0x8c,
+ 0x18, 0x1f, 0x05, 0x82, 0x43, 0x42, 0x70, 0x1e, 0x35, 0x42, 0x3f, 0x67,
+ 0x35, 0x1c, 0x1c, 0x63, 0x91, 0xd5, 0xda, 0x8d, 0x35, 0x55, 0xfc, 0x4b,
+ 0x55, 0xcd, 0x8c, 0x51, 0x1f, 0x1f, 0x37, 0x39, 0x7d, 0x77, 0xb2, 0x96,
+ 0x5e, 0x6c, 0x2e, 0x47, 0x89, 0x79, 0x72, 0x5c, 0x5b, 0x34, 0xfe, 0xfa,
+ 0x4f, 0x39, 0x25, 0x23, 0x69, 0x23, 0xde, 0x5e, 0x4d, 0x58, 0x3b, 0x80,
+ 0xa5, 0x79, 0x76, 0x40, 0x63, 0x8d, 0x84, 0x93, 0x7d, 0x07, 0x01, 0x1a,
+ 0x02, 0x65, 0x2e, 0x49, 0x44, 0x5c, 0x1a, 0x16, 0x37, 0x49, 0x3b, 0x3e,
+ 0x32, 0x56, 0xe7, 0xa7, 0x89, 0x75, 0xd3, 0xb0, 0xfe, 0xa2, 0xd3, 0xfe,
+ 0xfe, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x6a,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x25, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x04, 0x59, 0xb6, 0xfc, 0x00, 0xb6,
+ 0xfe, 0xf0, 0x01, 0x6a, 0x01, 0xe0, 0x01, 0x6a, 0xfe, 0x96, 0xfe, 0x20,
+ 0xfe, 0x96, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0xfa, 0xf3, 0x05, 0x0d,
+ 0x64, 0xfd, 0x88, 0x02, 0x78, 0xfa, 0x2b, 0x02, 0xdb, 0xfd, 0x25, 0x00,
+ 0x00, 0x01, 0x00, 0x40, 0x00, 0x00, 0x04, 0x14, 0x06, 0x14, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x03, 0x23, 0x13, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x03, 0x23, 0x01, 0x33, 0x03, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x04, 0x03, 0x76, 0xa7, 0x76, 0x08, 0x0a, 0x60,
+ 0x55, 0x86, 0xc3, 0x1d, 0x6d, 0xa5, 0x01, 0x11, 0xa5, 0x6b, 0x3f, 0xc4,
+ 0x6c, 0x85, 0x93, 0x08, 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x9d, 0x2f, 0x48,
+ 0x15, 0x54, 0x5e, 0xc8, 0xa6, 0xfd, 0x93, 0x06, 0x14, 0xfd, 0x9c, 0x5e,
+ 0x6d, 0xa0, 0x91, 0x24, 0x52, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51,
+ 0x00, 0x00, 0x04, 0x14, 0x06, 0x14, 0x00, 0x19, 0x00, 0x00, 0x01, 0x33,
+ 0x07, 0x25, 0x17, 0x05, 0x03, 0x36, 0x33, 0x32, 0x16, 0x07, 0x03, 0x23,
+ 0x13, 0x12, 0x23, 0x22, 0x06, 0x07, 0x03, 0x23, 0x13, 0x07, 0x27, 0x37,
+ 0x01, 0x61, 0xa6, 0x28, 0x01, 0x65, 0x0d, 0xfe, 0x7b, 0x2f, 0x99, 0xd0,
+ 0xae, 0x88, 0x29, 0x76, 0xa5, 0x75, 0x37, 0xdf, 0x86, 0xbc, 0x1d, 0x6e,
+ 0xa7, 0xc9, 0xbc, 0x0d, 0xdd, 0x06, 0x14, 0xea, 0x7c, 0x61, 0x88, 0xfe,
+ 0xf5, 0xc9, 0xef, 0xe8, 0xfd, 0x5c, 0x02, 0x9e, 0x01, 0x3d, 0xbe, 0xa4,
+ 0xfd, 0x87, 0x04, 0x7f, 0x42, 0x63, 0x4c, 0x00, 0x00, 0x01, 0x00, 0x35,
+ 0xff, 0xe1, 0x03, 0x1c, 0x05, 0xf0, 0x00, 0x39, 0x00, 0x00, 0x01, 0x0f,
+ 0x01, 0x11, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x11, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x14, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x03, 0x1c, 0x1b, 0x5e,
+ 0xae, 0x75, 0x80, 0x63, 0x36, 0x32, 0x0f, 0x17, 0x1f, 0x19, 0x1c, 0x07,
+ 0x0a, 0x0a, 0x18, 0x12, 0x35, 0x43, 0x49, 0x38, 0x1e, 0x1c, 0x70, 0x51,
+ 0x57, 0x28, 0x2f, 0x06, 0x12, 0x1c, 0x14, 0x15, 0x18, 0x14, 0x24, 0x50,
+ 0x45, 0x7d, 0x86, 0xa3, 0x1e, 0x70, 0x05, 0xe3, 0x2c, 0x16, 0xfc, 0xfe,
+ 0xfe, 0x86, 0xc2, 0x82, 0x3c, 0x37, 0x44, 0x39, 0x0f, 0x1b, 0x23, 0x07,
+ 0x37, 0x2e, 0x1b, 0x13, 0x4d, 0x3d, 0x86, 0x84, 0xbe, 0x03, 0x11, 0x1a,
+ 0x1d, 0x2e, 0x31, 0x3f, 0x1b, 0x16, 0x04, 0x40, 0x09, 0x27, 0x1f, 0x12,
+ 0x16, 0x28, 0x4d, 0x7f, 0x58, 0x49, 0x28, 0x27, 0x0d, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5f, 0xff, 0xe3, 0x04, 0xbf, 0x05, 0xf0, 0x00, 0x21,
+ 0x00, 0x32, 0x00, 0x00, 0x3f, 0x01, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x23, 0x22, 0x13, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x37, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x23, 0x22, 0x07, 0x5f, 0x7e, 0x64, 0x6a, 0x33,
+ 0x77, 0x81, 0x1e, 0x6d, 0x5a, 0x40, 0x38, 0x48, 0x48, 0xc0, 0x48, 0x48,
+ 0x2f, 0xb5, 0xa8, 0xda, 0x30, 0x74, 0x78, 0x32, 0x55, 0x63, 0x62, 0x7f,
+ 0x6f, 0x72, 0x6e, 0x73, 0x70, 0x71, 0xb4, 0x7d, 0x64, 0x81, 0xc0, 0x81,
+ 0x6e, 0x73, 0x5a, 0xa5, 0x27, 0x50, 0x56, 0x89, 0x61, 0x4b, 0x7e, 0x70,
+ 0x92, 0x6d, 0x64, 0xa0, 0x8c, 0x8b, 0x79, 0x6b, 0x94, 0x62, 0xbc, 0x5e,
+ 0xf2, 0xde, 0x4f, 0x50, 0x05, 0x36, 0x38, 0x31, 0x2f, 0x3a, 0xaa, 0x3a,
+ 0x62, 0x3a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3d, 0xff, 0xe3, 0x04, 0xe3,
+ 0x05, 0xf2, 0x00, 0x4a, 0x00, 0x00, 0x01, 0x17, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x37, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x23, 0x35, 0x22, 0x07, 0x06, 0x07,
+ 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x13, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x0e, 0x01, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x17, 0x33, 0x32, 0x01, 0xac, 0xe8,
+ 0x63, 0x51, 0x4a, 0x36, 0x5d, 0x4d, 0x3c, 0x08, 0x27, 0x16, 0x63, 0x6d,
+ 0x6d, 0x2f, 0x5b, 0x50, 0x80, 0xeb, 0x4a, 0x3d, 0x32, 0x2f, 0x0c, 0x30,
+ 0x42, 0x17, 0x2c, 0x22, 0x2b, 0x31, 0x0a, 0x05, 0x1f, 0x1e, 0x3a, 0x59,
+ 0xbc, 0x66, 0x40, 0x3c, 0x0d, 0x25, 0x1c, 0x27, 0x1a, 0x0c, 0x0a, 0x06,
+ 0x25, 0x2e, 0x33, 0x44, 0x29, 0x20, 0x20, 0x04, 0x03, 0x12, 0x14, 0x22,
+ 0x32, 0x3b, 0x02, 0x0e, 0x38, 0x01, 0x5f, 0x6e, 0x30, 0x18, 0x19, 0x56,
+ 0x42, 0x9a, 0x52, 0x1e, 0x0e, 0x84, 0x0e, 0xe4, 0x6e, 0x79, 0x23, 0x1f,
+ 0x48, 0x89, 0x08, 0x42, 0x3f, 0x84, 0x18, 0xc1, 0x58, 0x21, 0x24, 0x18,
+ 0x39, 0x42, 0x01, 0x7f, 0xa9, 0x84, 0x80, 0x4d, 0x77, 0x3e, 0x37, 0x6c,
+ 0x1a, 0x10, 0x2e, 0x1b, 0x0b, 0x3b, 0x37, 0x25, 0x2c, 0x3b, 0x28, 0xd3,
+ 0xa7, 0xbd, 0x75, 0x79, 0x2c, 0x44, 0x30, 0x03, 0x00, 0x02, 0xff, 0xe6,
+ 0xff, 0xe3, 0x02, 0x8a, 0x05, 0xf0, 0x00, 0x1c, 0x00, 0x26, 0x00, 0x00,
+ 0x01, 0x16, 0x33, 0x32, 0x37, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x07, 0x23, 0x36, 0x37, 0x26, 0x35, 0x34, 0x37, 0x12, 0x37, 0x36, 0x33,
+ 0x32, 0x15, 0x06, 0x07, 0x02, 0x01, 0x12, 0x13, 0x36, 0x35, 0x34, 0x23,
+ 0x06, 0x03, 0x06, 0x01, 0x12, 0x24, 0x4f, 0x34, 0x43, 0x78, 0x36, 0x3f,
+ 0x44, 0x3f, 0x8d, 0x38, 0x44, 0x8c, 0x61, 0x48, 0x09, 0x1c, 0x69, 0x5e,
+ 0x41, 0x6e, 0x71, 0x01, 0x10, 0x41, 0xfe, 0xd9, 0xa8, 0x33, 0x1b, 0x16,
+ 0x62, 0x58, 0x18, 0x01, 0x0c, 0xc8, 0x73, 0x66, 0x35, 0x39, 0x8b, 0x6e,
+ 0x93, 0x89, 0x4e, 0x55, 0x98, 0x98, 0x02, 0x3b, 0x75, 0x51, 0xad, 0x4e,
+ 0x5d, 0xfe, 0x83, 0xfe, 0xf7, 0x01, 0x5c, 0x01, 0x16, 0x93, 0x26, 0x45,
+ 0x57, 0xfd, 0xfa, 0x91, 0x00, 0x02, 0x00, 0x1c, 0xff, 0xe3, 0x05, 0x7f,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x27, 0x00, 0x00, 0x13, 0x33, 0x15, 0x33,
+ 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x12,
+ 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x11, 0x23, 0x35, 0x33, 0x00, 0x10, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20,
+ 0xae, 0xa5, 0xa6, 0xa6, 0x02, 0x6d, 0xfd, 0x93, 0x35, 0x9f, 0x6f, 0xb7,
+ 0xe6, 0xe6, 0xb7, 0x6f, 0x9f, 0x35, 0xa6, 0xa6, 0xa5, 0x91, 0x91, 0x04,
+ 0x25, 0x97, 0xfe, 0xfa, 0x97, 0x97, 0x01, 0x06, 0x06, 0x14, 0x93, 0x93,
+ 0x93, 0x7d, 0xfe, 0xb2, 0x64, 0x61, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc,
+ 0x61, 0x64, 0xa8, 0x05, 0x04, 0xfa, 0xfc, 0x05, 0x04, 0x7d, 0xfb, 0xe3,
+ 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0x00, 0x00, 0x02, 0x00, 0xb2,
+ 0x00, 0x00, 0x05, 0x12, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00,
+ 0x25, 0x01, 0x23, 0x09, 0x01, 0x21, 0x01, 0x11, 0x33, 0x11, 0x21, 0x01,
+ 0x11, 0x23, 0x04, 0x9c, 0xfd, 0x62, 0xd6, 0x02, 0x9e, 0xfc, 0xed, 0x01,
+ 0x7c, 0x02, 0x88, 0x5a, 0xfe, 0x84, 0xfd, 0x78, 0x5a, 0x64, 0x05, 0x0d,
+ 0xfa, 0xf3, 0x05, 0x71, 0xfb, 0x1f, 0x04, 0xe1, 0xfa, 0x2b, 0x04, 0xe1,
+ 0xfb, 0x1f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x06, 0xfb,
+ 0x05, 0xd5, 0x00, 0x13, 0x00, 0x1f, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x00,
+ 0x33, 0x35, 0x32, 0x35, 0x11, 0x33, 0x01, 0x11, 0x34, 0x36, 0x33, 0x15,
+ 0x22, 0x15, 0x11, 0x23, 0x01, 0x11, 0x14, 0x06, 0x01, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x37, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x03, 0x35, 0x21, 0x15,
+ 0x31, 0x84, 0xf5, 0x02, 0x54, 0x8d, 0xa7, 0x84, 0xf5, 0xfd, 0xac, 0x8d,
+ 0x04, 0x66, 0x82, 0x5c, 0x5d, 0x81, 0x81, 0x5d, 0x5c, 0x82, 0x7e, 0x33,
+ 0x2d, 0x2d, 0x33, 0x33, 0x2d, 0x2d, 0x33, 0x7e, 0x01, 0xbc, 0xaa, 0x6b,
+ 0x04, 0xc0, 0xfb, 0x1f, 0x03, 0xcc, 0x80, 0x95, 0xaa, 0x6b, 0xfb, 0x40,
+ 0x04, 0xe1, 0xfc, 0x34, 0x80, 0x95, 0x02, 0x6e, 0x8a, 0xbf, 0xbf, 0x8a,
+ 0x8a, 0xbf, 0xbf, 0x8a, 0x4e, 0x67, 0x67, 0x4e, 0x4e, 0x67, 0x67, 0xfd,
+ 0x44, 0x7b, 0x7b, 0x00, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x00, 0x06, 0x35,
+ 0x05, 0xca, 0x00, 0x0c, 0x00, 0x19, 0x00, 0x22, 0x00, 0x2d, 0x00, 0x00,
+ 0x01, 0x16, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00, 0x21,
+ 0x20, 0x06, 0x23, 0x22, 0x00, 0x11, 0x12, 0x00, 0x33, 0x32, 0x00, 0x11,
+ 0x10, 0x27, 0x05, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x25,
+ 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x05, 0x70,
+ 0xc4, 0xfe, 0x76, 0xfe, 0xf0, 0xfe, 0xed, 0xfe, 0x7d, 0x05, 0x01, 0x88,
+ 0x01, 0x13, 0x01, 0x13, 0x25, 0xee, 0xec, 0xfe, 0xac, 0x04, 0x01, 0x50,
+ 0xec, 0xec, 0x01, 0x54, 0xa9, 0xfe, 0x0b, 0xa0, 0x59, 0x61, 0x61, 0x59,
+ 0xfe, 0xe1, 0x01, 0x1f, 0x9f, 0xa2, 0xa2, 0x9f, 0xa0, 0x7f, 0x04, 0xf1,
+ 0xdb, 0xfe, 0xce, 0xfe, 0xd0, 0xfe, 0x4c, 0x01, 0xb4, 0x01, 0x30, 0x01,
+ 0x30, 0x01, 0xb6, 0x65, 0xfe, 0x85, 0xfe, 0xf9, 0xfe, 0xfb, 0xfe, 0x87,
+ 0x01, 0x79, 0x01, 0x05, 0x01, 0x09, 0xbb, 0x77, 0xfe, 0xaf, 0x58, 0x51,
+ 0x50, 0x58, 0x64, 0x89, 0x83, 0x85, 0x87, 0xfe, 0x98, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x63, 0xfe, 0x3b, 0x04, 0xbd, 0x03, 0xf6, 0x00, 0x30,
+ 0x00, 0x3c, 0x00, 0x00, 0x01, 0x06, 0x15, 0x14, 0x17, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x36,
+ 0x37, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22,
+ 0x01, 0x12, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x10,
+ 0x37, 0x26, 0x35, 0x34, 0x37, 0x03, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x01, 0xfc, 0x7a, 0x1c, 0x52, 0x9a, 0xc5,
+ 0x77, 0x76, 0x3f, 0x41, 0x8c, 0x6d, 0x9d, 0x5a, 0x45, 0x10, 0x08, 0x25,
+ 0x66, 0x6e, 0x54, 0x3e, 0x23, 0x1c, 0x43, 0xaa, 0xfe, 0xc2, 0x7a, 0x3e,
+ 0x50, 0x76, 0x66, 0x34, 0x39, 0xc9, 0x2a, 0xd1, 0x85, 0x74, 0x1c, 0x2b,
+ 0x29, 0x3b, 0x19, 0x1d, 0x03, 0xc6, 0x82, 0xbe, 0x4d, 0x6b, 0x65, 0x94,
+ 0xbd, 0x4c, 0x50, 0xab, 0xda, 0xd7, 0xa7, 0x3c, 0x2b, 0x1d, 0x28, 0x8c,
+ 0x68, 0xc3, 0x7c, 0x48, 0x3d, 0xfe, 0x79, 0xfe, 0xde, 0x7c, 0x9d, 0x6e,
+ 0x8e, 0x3d, 0x42, 0x86, 0x01, 0x0b, 0xfc, 0x9e, 0x7f, 0xee, 0xa4, 0xfc,
+ 0xef, 0xc6, 0x7b, 0x75, 0x2e, 0x46, 0x01, 0x2f, 0x34, 0x5f, 0x4e, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x16, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x21, 0x32, 0x37, 0x11, 0x26, 0x23, 0x25, 0x21, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x21, 0x01, 0x11, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x01, 0x0e, 0xb6, 0x5a, 0x01, 0x10, 0x15, 0x15,
+ 0x15, 0x15, 0xfd, 0x86, 0x02, 0x4f, 0xe1, 0xe8, 0xe8, 0xe2, 0xe4, 0xfe,
+ 0x96, 0x03, 0x02, 0x36, 0x29, 0x54, 0x53, 0x28, 0x05, 0x71, 0xfa, 0xf3,
+ 0x05, 0x0d, 0xfd, 0x6a, 0x02, 0x02, 0x92, 0x02, 0x64, 0xdb, 0xd3, 0xd5,
+ 0xda, 0xfd, 0x88, 0x05, 0x5a, 0xfd, 0x99, 0x16, 0x29, 0x56, 0x9f, 0x9e,
+ 0x56, 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x67, 0xfe, 0xf8, 0x05, 0x44,
+ 0x05, 0xf0, 0x00, 0x11, 0x00, 0x19, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00,
+ 0x25, 0x13, 0x23, 0x27, 0x07, 0x06, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x02, 0x25, 0x16, 0x32, 0x37, 0x11, 0x26,
+ 0x22, 0x07, 0x03, 0x11, 0x06, 0x07, 0x06, 0x10, 0x17, 0x16, 0x01, 0x11,
+ 0x36, 0x37, 0x36, 0x10, 0x27, 0x26, 0x03, 0xd5, 0xef, 0xdb, 0xc7, 0x2e,
+ 0x0f, 0x0f, 0xfe, 0xe5, 0xfe, 0xad, 0x01, 0x53, 0x01, 0x1b, 0x01, 0x1b,
+ 0x01, 0x52, 0xbc, 0xfd, 0x74, 0x61, 0xf5, 0x61, 0x61, 0xf5, 0x61, 0x5f,
+ 0x20, 0x1d, 0x8b, 0x8b, 0x1d, 0x02, 0x94, 0x20, 0x1c, 0x8b, 0x8b, 0x1c,
+ 0x1b, 0xfe, 0xdd, 0xef, 0x03, 0x01, 0x01, 0xa5, 0x01, 0x61, 0x01, 0x62,
+ 0x01, 0xa5, 0xfe, 0x5b, 0xfe, 0x9e, 0xfe, 0xfc, 0xfe, 0x8e, 0x0b, 0x32,
+ 0x32, 0x04, 0xd7, 0x32, 0x32, 0xfb, 0x6a, 0x04, 0x54, 0x1d, 0x25, 0xb6,
+ 0xfd, 0x9c, 0xb5, 0x25, 0x04, 0x35, 0xfb, 0xaf, 0x1d, 0x24, 0xb6, 0x02,
+ 0x63, 0xb6, 0x24, 0x00, 0x00, 0x02, 0x00, 0x3b, 0xff, 0xee, 0x05, 0x80,
+ 0x06, 0x32, 0x00, 0x0c, 0x00, 0x5f, 0x00, 0x00, 0x01, 0x11, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x13, 0x03, 0x27,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x11, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x1e,
+ 0x01, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x21, 0x36, 0x3f, 0x01, 0x15, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x17, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x02, 0xef, 0x1b, 0x37,
+ 0x81, 0x54, 0x5e, 0x4a, 0x19, 0x53, 0x50, 0x87, 0xb9, 0x4d, 0x1c, 0x2e,
+ 0x2b, 0x3f, 0x8f, 0xa7, 0x63, 0x32, 0x35, 0x18, 0x16, 0x20, 0x17, 0x14,
+ 0x18, 0x10, 0x13, 0x0f, 0x17, 0x3f, 0x5c, 0x4b, 0x33, 0x1e, 0x1d, 0xcf,
+ 0x75, 0x36, 0x09, 0x01, 0x0f, 0x1a, 0x20, 0x30, 0x1a, 0x27, 0x5d, 0xaa,
+ 0x01, 0x05, 0x1b, 0x35, 0x36, 0xa3, 0x7c, 0x76, 0x2e, 0x4f, 0x63, 0x5d,
+ 0x8b, 0x51, 0x4a, 0x6f, 0x17, 0x28, 0x1a, 0x1c, 0x1f, 0x10, 0x1c, 0x20,
+ 0x33, 0x38, 0x35, 0x44, 0x1d, 0x49, 0x05, 0xa1, 0xfd, 0x49, 0x07, 0x61,
+ 0x67, 0xc2, 0xa3, 0x53, 0x1b, 0x14, 0x0f, 0xfb, 0x16, 0x01, 0xe6, 0x09,
+ 0xc0, 0x88, 0x89, 0x44, 0xa3, 0x35, 0x40, 0x37, 0x2a, 0x1a, 0x18, 0x16,
+ 0x1a, 0x1f, 0x27, 0x10, 0x1a, 0x53, 0x3a, 0x79, 0x7d, 0x9e, 0x03, 0x2a,
+ 0x82, 0x37, 0x48, 0x19, 0x30, 0x09, 0x35, 0x0f, 0x23, 0x21, 0x1f, 0x18,
+ 0x2c, 0x49, 0x91, 0x6c, 0xbb, 0x0d, 0x1d, 0x1c, 0x40, 0x1c, 0x1f, 0x33,
+ 0x58, 0xa7, 0xbf, 0x6e, 0x68, 0x30, 0xde, 0xcd, 0x7b, 0x1f, 0x1f, 0x28,
+ 0x32, 0x18, 0x72, 0x3a, 0x3d, 0x1f, 0x4f, 0x00, 0x00, 0x02, 0x00, 0x4a,
+ 0xff, 0xe3, 0x05, 0xc8, 0x05, 0xf1, 0x00, 0x49, 0x00, 0x58, 0x00, 0x00,
+ 0x05, 0x26, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x0f, 0x01, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x16, 0x17, 0x14, 0x17, 0x16,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x14, 0x17, 0x16, 0x33, 0x17, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17,
+ 0x37, 0x17, 0x01, 0x16, 0x15, 0x11, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x04, 0x82, 0x4a, 0x14, 0x24, 0x47, 0x26,
+ 0x53, 0x6c, 0x5c, 0x5d, 0x7e, 0x7f, 0x5c, 0x5c, 0x28, 0x2a, 0x39, 0x3a,
+ 0x81, 0x39, 0x3a, 0x3a, 0x39, 0x52, 0x49, 0x3b, 0x39, 0x39, 0x3a, 0x4a,
+ 0x31, 0x88, 0x5c, 0x5c, 0x5c, 0x5c, 0x88, 0x92, 0x5b, 0x1b, 0x0e, 0xbe,
+ 0xa8, 0x65, 0x2a, 0x21, 0x71, 0x3a, 0x3c, 0x70, 0x34, 0x2c, 0x21, 0x18,
+ 0x1d, 0x28, 0x82, 0x26, 0xfc, 0xfa, 0x12, 0x8b, 0x82, 0x45, 0x43, 0x43,
+ 0x16, 0x1c, 0x39, 0x5c, 0x1d, 0xb7, 0x9f, 0x8c, 0x5b, 0xa6, 0x2b, 0x38,
+ 0xc7, 0xce, 0x76, 0x75, 0x75, 0x76, 0xb0, 0x0c, 0x0c, 0x7a, 0x56, 0x57,
+ 0x57, 0x57, 0x96, 0x02, 0x9b, 0x95, 0x58, 0x57, 0x57, 0x56, 0xca, 0x56,
+ 0x57, 0x5c, 0x75, 0x76, 0x9c, 0x9d, 0x75, 0x75, 0x75, 0x23, 0x20, 0x62,
+ 0x57, 0x0e, 0x31, 0xb1, 0x57, 0x7b, 0x7c, 0x5e, 0x31, 0x24, 0x68, 0x7b,
+ 0x83, 0x80, 0x76, 0x43, 0x5b, 0x04, 0x53, 0x4b, 0x5c, 0xfe, 0x95, 0x47,
+ 0x43, 0x68, 0x66, 0x79, 0x97, 0x20, 0x0a, 0x2f, 0x00, 0x05, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x94, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x26,
+ 0x00, 0x2e, 0x00, 0x32, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x2b, 0x01,
+ 0x16, 0x17, 0x13, 0x33, 0x03, 0x1e, 0x01, 0x17, 0x13, 0x21, 0x03, 0x2e,
+ 0x01, 0x2b, 0x01, 0x11, 0x21, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x01, 0x11, 0x21, 0x32, 0x37, 0x11, 0x26, 0x23, 0x17, 0x11, 0x36,
+ 0x37, 0x36, 0x10, 0x27, 0x26, 0x25, 0x11, 0x33, 0x11, 0x04, 0x7c, 0x45,
+ 0x3d, 0x3e, 0x6c, 0x29, 0x46, 0x5b, 0x80, 0xb3, 0xed, 0x2f, 0x66, 0x38,
+ 0xb8, 0xfe, 0x74, 0xab, 0x43, 0x7d, 0x6c, 0x12, 0xfe, 0x96, 0x02, 0x63,
+ 0xe7, 0xe2, 0x69, 0x2c, 0xfd, 0xd3, 0x01, 0x24, 0x16, 0x15, 0x15, 0x16,
+ 0x89, 0x3b, 0x26, 0x51, 0x50, 0x26, 0xfd, 0x07, 0xb6, 0x01, 0x7f, 0x97,
+ 0x30, 0x31, 0x2f, 0xc9, 0xfe, 0xe5, 0x02, 0x4f, 0x19, 0x84, 0x7e, 0xfe,
+ 0x68, 0x01, 0x7f, 0x96, 0x62, 0xfd, 0x89, 0x05, 0xd5, 0xd6, 0xd8, 0xd0,
+ 0x62, 0x29, 0x02, 0xa5, 0xfd, 0x6a, 0x02, 0x02, 0x92, 0x02, 0x17, 0xfd,
+ 0x99, 0x16, 0x29, 0x56, 0x01, 0x3e, 0x55, 0x29, 0x2d, 0xfa, 0xf3, 0x05,
+ 0x0d, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x98, 0x00, 0x00, 0x05, 0xdd,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x01, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11,
+ 0x21, 0x32, 0x16, 0x15, 0x14, 0x07, 0x17, 0x37, 0x33, 0x09, 0x01, 0x23,
+ 0x0b, 0x01, 0x23, 0x01, 0x01, 0x4e, 0xe4, 0x7f, 0x8b, 0x8b, 0x7f, 0x01,
+ 0x04, 0x68, 0x9c, 0xe4, 0xb6, 0x01, 0x9a, 0xe2, 0xe8, 0x46, 0x9c, 0xab,
+ 0xd1, 0xfe, 0xec, 0x01, 0x22, 0xd1, 0xbb, 0xbe, 0xd1, 0x01, 0x28, 0x05,
+ 0x2f, 0xfd, 0xcf, 0x92, 0x87, 0x86, 0x92, 0xfd, 0x5f, 0x36, 0xfd, 0xa8,
+ 0x05, 0xd5, 0xe3, 0xdb, 0xac, 0x6b, 0xdb, 0xea, 0xfe, 0x86, 0xfe, 0x6b,
+ 0x01, 0x04, 0xfe, 0xfc, 0x01, 0x95, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xff, 0x25, 0x04, 0xcc, 0x06, 0xc7, 0x00, 0x05, 0x00, 0x24, 0x00, 0x2b,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x11, 0x33, 0x13, 0x26, 0x23, 0x13, 0x16,
+ 0x17, 0x16, 0x17, 0x13, 0x23, 0x03, 0x26, 0x27, 0x26, 0x27, 0x01, 0x27,
+ 0x37, 0x23, 0x11, 0x21, 0x32, 0x17, 0x37, 0x25, 0x37, 0x05, 0x07, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x06, 0x0b, 0x01, 0x36, 0x37, 0x36, 0x35, 0x34,
+ 0x01, 0x13, 0x23, 0x01, 0x6b, 0xbc, 0xb4, 0x39, 0x53, 0xe3, 0x3b, 0x37,
+ 0x34, 0x3b, 0xb9, 0xc4, 0xac, 0x43, 0x3e, 0x30, 0x4d, 0xfe, 0xd0, 0x64,
+ 0x3f, 0x54, 0x01, 0x9a, 0x72, 0x55, 0x0a, 0xfe, 0xdb, 0x27, 0x01, 0x8a,
+ 0x32, 0x19, 0x14, 0x71, 0x75, 0x70, 0x96, 0x4b, 0x2e, 0x43, 0xfe, 0x12,
+ 0x80, 0x80, 0x05, 0x2f, 0xfd, 0xee, 0x01, 0xf8, 0x1a, 0xfd, 0x8d, 0x16,
+ 0x48, 0x44, 0x82, 0xfe, 0x68, 0x01, 0x7f, 0x97, 0x30, 0x26, 0x09, 0xfc,
+ 0xb0, 0x2c, 0xaf, 0x05, 0xd5, 0x1a, 0x1b, 0x82, 0x6f, 0xae, 0x8c, 0x10,
+ 0x13, 0x6b, 0xd8, 0x8d, 0xba, 0x01, 0xe7, 0xfe, 0x5d, 0x0f, 0x2d, 0x44,
+ 0x83, 0x62, 0xfc, 0x87, 0x01, 0x67, 0x00, 0x00, 0x00, 0x02, 0x00, 0xe9,
+ 0x03, 0x8b, 0x05, 0x8b, 0x05, 0xd8, 0x00, 0x27, 0x00, 0x34, 0x00, 0x00,
+ 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x37, 0x33, 0x1b, 0x01, 0x33, 0x11, 0x23, 0x11,
+ 0x03, 0x23, 0x03, 0x11, 0x23, 0x02, 0x9c, 0x4d, 0x4e, 0x23, 0x3b, 0x3f,
+ 0x2a, 0x3e, 0x32, 0x65, 0x5f, 0x82, 0x7e, 0x2f, 0x67, 0x40, 0x52, 0x5a,
+ 0x2a, 0x3e, 0x44, 0x32, 0x39, 0x32, 0x65, 0x59, 0x7c, 0x70, 0x2e, 0x5e,
+ 0xbb, 0xa6, 0x91, 0x92, 0xa5, 0x7c, 0x7e, 0x79, 0x7f, 0x7c, 0x05, 0xb7,
+ 0x59, 0x22, 0x13, 0x2a, 0x2f, 0x28, 0x20, 0x0b, 0x09, 0x12, 0x56, 0x41,
+ 0x4f, 0x5b, 0x13, 0x15, 0x60, 0x2a, 0x18, 0x2c, 0x32, 0x2c, 0x2a, 0x0a,
+ 0x09, 0x12, 0x4d, 0x3d, 0x48, 0x5c, 0x0f, 0x05, 0xfe, 0xac, 0x01, 0x54,
+ 0xfd, 0xc8, 0x01, 0x94, 0xfe, 0xd8, 0x01, 0x28, 0xfe, 0x6c, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xfc, 0x00, 0x00, 0x07, 0x5f, 0x04, 0x60, 0x00, 0x07,
+ 0x00, 0x13, 0x00, 0x19, 0x00, 0x00, 0x03, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x05, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x01, 0x33, 0x11, 0x21, 0x15, 0x21, 0x04, 0x03, 0x55, 0xfe,
+ 0x99, 0x88, 0xfe, 0x9a, 0x02, 0x97, 0x02, 0x31, 0xfe, 0x46, 0x01, 0xa7,
+ 0xfe, 0x59, 0x01, 0xc4, 0xfd, 0xc5, 0x02, 0xa4, 0x77, 0x01, 0xb0, 0xfd,
+ 0xd9, 0x04, 0x60, 0x80, 0xfc, 0x20, 0x03, 0xe0, 0x60, 0x66, 0xfe, 0xf7,
+ 0x66, 0xfe, 0xbb, 0x66, 0x03, 0x80, 0xfc, 0xe6, 0x66, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x09, 0x03, 0x93, 0x05, 0xa6, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x14, 0x00, 0x00, 0x01, 0x1b, 0x01, 0x33, 0x11, 0x23, 0x11, 0x03,
+ 0x23, 0x03, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x35, 0x03, 0xdc, 0x9d, 0x93, 0x99, 0x65, 0xb0, 0x31, 0xb7, 0x67, 0x65,
+ 0xb7, 0x67, 0xb4, 0x05, 0xd5, 0xff, 0x00, 0x01, 0x00, 0xfd, 0xbe, 0x01,
+ 0xe4, 0xfe, 0xd1, 0x01, 0x2f, 0xfe, 0x1c, 0x02, 0x42, 0x5e, 0xfe, 0x1c,
+ 0x01, 0xe4, 0x5e, 0x00, 0x00, 0x01, 0x00, 0x0e, 0xff, 0x22, 0x04, 0xde,
+ 0x06, 0xc4, 0x00, 0x10, 0x00, 0x00, 0x01, 0x13, 0x25, 0x37, 0x05, 0x01,
+ 0x13, 0x01, 0x33, 0x01, 0x23, 0x0b, 0x01, 0x27, 0x09, 0x01, 0x33, 0x01,
+ 0xa8, 0xe7, 0xfe, 0xdb, 0x27, 0x01, 0x8b, 0xfe, 0xc4, 0x96, 0x01, 0xab,
+ 0xbd, 0xfe, 0x00, 0xcf, 0x8e, 0xe3, 0x64, 0x01, 0x0f, 0xfe, 0xc5, 0xbe,
+ 0x03, 0x4d, 0x02, 0x86, 0x82, 0x6f, 0xae, 0xfc, 0x90, 0xfe, 0x46, 0x04,
+ 0xe9, 0xfa, 0x2b, 0x01, 0x9e, 0xfd, 0x84, 0x2c, 0x02, 0xf5, 0x03, 0x92,
+ 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x05, 0x0a, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x0d, 0x00, 0x00, 0x25, 0x01, 0x23, 0x01, 0x03, 0x21, 0x15, 0x01,
+ 0x21, 0x15, 0x21, 0x35, 0x01, 0x21, 0x01, 0x9a, 0x02, 0xe6, 0xd3, 0xfd,
+ 0x1b, 0x60, 0x04, 0x8d, 0xfd, 0x1a, 0x02, 0xfb, 0xfb, 0x49, 0x02, 0xe5,
+ 0xfd, 0x30, 0x64, 0x05, 0x0d, 0xfa, 0xf3, 0x05, 0x71, 0x64, 0xfa, 0xf3,
+ 0x64, 0x64, 0x05, 0x0d, 0x00, 0x01, 0x00, 0x4f, 0xfe, 0x4c, 0x03, 0xc4,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x00, 0x17, 0x16, 0x20, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x35, 0x01, 0x21, 0x35, 0x01, 0x21, 0x35, 0x21, 0x15,
+ 0x01, 0x21, 0x15, 0x01, 0x32, 0x1e, 0x01, 0x15, 0x10, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x4f, 0x99, 0x01, 0x79, 0xae, 0xa7, 0x94, 0xf5, 0x01, 0xc5,
+ 0xfe, 0x3b, 0x01, 0xc5, 0xfd, 0xfd, 0x02, 0xd4, 0xfe, 0x56, 0x01, 0xaa,
+ 0xfe, 0x56, 0x9a, 0xc9, 0x96, 0x7f, 0xa7, 0xe8, 0xa8, 0xbf, 0xa7, 0x63,
+ 0xa3, 0xcc, 0x86, 0x93, 0xa6, 0x01, 0x65, 0x93, 0x01, 0x65, 0x93, 0xa8,
+ 0xfe, 0xb0, 0xa8, 0xfe, 0xb0, 0x61, 0xd4, 0x8a, 0xfe, 0xd3, 0x66, 0x86,
+ 0x4a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x46, 0x00, 0x00, 0x05, 0x3b,
+ 0x05, 0xe7, 0x10, 0x06, 0x03, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x46,
+ 0xff, 0xe3, 0x05, 0x3b, 0x05, 0xca, 0x10, 0x06, 0x01, 0x73, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x15, 0xfe, 0xce, 0x04, 0x20, 0x06, 0x44, 0x00, 0x55,
+ 0x00, 0x00, 0x01, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x37, 0x33, 0x06, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x32, 0x36, 0x33, 0x32, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x17, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x10,
+ 0x03, 0x06, 0x21, 0x22, 0x27, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x27, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x01, 0x66, 0x56, 0x70, 0x6d, 0x5f, 0x1f, 0x2c,
+ 0x49, 0x16, 0x73, 0x87, 0x17, 0x53, 0x20, 0x16, 0x89, 0x1f, 0x1f, 0x1f,
+ 0x20, 0x75, 0x27, 0x4c, 0x0f, 0x40, 0x0f, 0x40, 0x53, 0x16, 0x36, 0x75,
+ 0x77, 0x61, 0x02, 0x40, 0x2c, 0xe2, 0x5b, 0x21, 0x9f, 0xd9, 0xfe, 0xf4,
+ 0x67, 0x58, 0x01, 0x04, 0x0e, 0x16, 0x20, 0x2b, 0x3e, 0x15, 0x43, 0x4f,
+ 0x49, 0x36, 0x45, 0x10, 0x0a, 0x16, 0x1b, 0x3a, 0x89, 0x69, 0x43, 0x22,
+ 0x23, 0x0f, 0x12, 0x1e, 0x5d, 0x9e, 0x61, 0x54, 0x02, 0xa8, 0x8a, 0x09,
+ 0x79, 0x6a, 0x8d, 0x2e, 0x23, 0x2e, 0x0b, 0x0b, 0x23, 0x19, 0x21, 0xd3,
+ 0x3c, 0x23, 0x21, 0x05, 0x06, 0x16, 0x18, 0x3b, 0x47, 0xa3, 0x81, 0x84,
+ 0x42, 0x03, 0x0e, 0x98, 0x77, 0x80, 0xfe, 0xeb, 0xfe, 0xfa, 0xc8, 0x18,
+ 0x87, 0x1c, 0x2c, 0x10, 0x18, 0x3c, 0x24, 0x3d, 0x2c, 0x23, 0x23, 0x16,
+ 0x77, 0x55, 0x19, 0x1e, 0x74, 0x4b, 0x79, 0x79, 0x98, 0x56, 0x3f, 0x40,
+ 0x21, 0x6a, 0x2e, 0x00, 0x00, 0x01, 0x00, 0x3d, 0x00, 0x00, 0x01, 0xd6,
+ 0x04, 0x60, 0x00, 0x0d, 0x00, 0x00, 0x21, 0x11, 0x34, 0x27, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x01, 0x2d, 0x1f, 0x20,
+ 0x62, 0x4f, 0x63, 0xa4, 0x48, 0x4a, 0x02, 0xd5, 0x91, 0x2e, 0x30, 0x9c,
+ 0x60, 0x62, 0xd4, 0xfd, 0x36, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x2e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde, 0x07, 0x6d, 0x10, 0x06,
+ 0x00, 0x87, 0x00, 0x00, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x05, 0x49,
+ 0x06, 0x2e, 0x00, 0x32, 0x00, 0x3f, 0x00, 0x52, 0x00, 0x00, 0x01, 0x17,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x29, 0x01, 0x37, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x11, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x14,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x3f, 0x01, 0x17, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x05, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23,
+ 0x11, 0x14, 0x03, 0x05, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x03, 0xff, 0x07,
+ 0x98, 0x55, 0x56, 0x6d, 0xc6, 0xfe, 0xd4, 0xfd, 0xb4, 0x36, 0x86, 0x79,
+ 0x33, 0x1a, 0x1c, 0xa6, 0x75, 0x45, 0x0a, 0x0b, 0x11, 0x1e, 0x27, 0x17,
+ 0x0f, 0x22, 0x65, 0x90, 0xee, 0x89, 0x08, 0xb2, 0x83, 0x80, 0x2c, 0x41,
+ 0x5c, 0x44, 0xfe, 0xaf, 0xb8, 0x66, 0x4a, 0x3e, 0x26, 0x5b, 0x61, 0x79,
+ 0xfc, 0x01, 0x39, 0x7b, 0x61, 0x5d, 0x2c, 0x4f, 0x4e, 0x29, 0x4c, 0x45,
+ 0x6a, 0x44, 0x41, 0x1c, 0x2a, 0x4f, 0x03, 0x54, 0x10, 0x61, 0x5e, 0x80,
+ 0xae, 0x7d, 0xda, 0x75, 0x86, 0x3b, 0x8b, 0x84, 0xd3, 0x02, 0x83, 0x82,
+ 0x49, 0x4d, 0x0b, 0x3d, 0x05, 0x2c, 0x0d, 0x33, 0x13, 0x21, 0x16, 0x23,
+ 0x56, 0x86, 0x74, 0x9f, 0x27, 0x49, 0x40, 0x1c, 0x1f, 0x33, 0x48, 0x6c,
+ 0x9a, 0x68, 0x4a, 0x33, 0x70, 0x52, 0x81, 0x75, 0x46, 0x2a, 0x1b, 0x18,
+ 0xfd, 0xc2, 0x1d, 0xfd, 0x28, 0x02, 0x1a, 0x1d, 0x30, 0x58, 0xb9, 0x72,
+ 0x56, 0x2c, 0x18, 0x18, 0x06, 0xec, 0x6e, 0xce, 0x00, 0x01, 0x00, 0x75,
+ 0xff, 0xe8, 0x04, 0xb2, 0x05, 0xf0, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x17,
+ 0x36, 0x25, 0x1e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x37, 0x15, 0x06, 0x07,
+ 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x1e, 0x01,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x27, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x37, 0x22, 0x07, 0x06, 0x15, 0x10, 0x17, 0x16, 0x25, 0x37, 0x15,
+ 0x06, 0x07, 0x06, 0x24, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x02, 0x10, 0x40, 0x89, 0x01, 0x11, 0x0a, 0x24, 0x0a, 0x0f, 0x0e, 0x14,
+ 0x5f, 0x7e, 0x5e, 0x35, 0x69, 0x25, 0x1b, 0x15, 0x0a, 0x03, 0x0d, 0x0d,
+ 0x0e, 0x3f, 0x67, 0xb3, 0x17, 0x51, 0x42, 0x1f, 0x29, 0x1e, 0x11, 0x70,
+ 0x42, 0x5f, 0x9f, 0xc8, 0x01, 0x46, 0xe8, 0xc2, 0x5b, 0xad, 0xfe, 0xb4,
+ 0x75, 0x53, 0x2a, 0x2b, 0x55, 0xac, 0x05, 0x35, 0x23, 0x6c, 0x72, 0x1c,
+ 0x77, 0x1f, 0x28, 0x0f, 0x16, 0x21, 0x2e, 0x44, 0x0e, 0x24, 0xbb, 0x0d,
+ 0x22, 0x1c, 0x39, 0x42, 0x47, 0x16, 0x33, 0x32, 0x4b, 0x25, 0x8d, 0x46,
+ 0x6e, 0x1f, 0x23, 0x16, 0x49, 0x23, 0x74, 0x33, 0xb9, 0x74, 0x52, 0x5d,
+ 0x86, 0xda, 0xfe, 0xb9, 0xb0, 0xe1, 0x26, 0x7f, 0x39, 0x88, 0x4b, 0x28,
+ 0x56, 0x82, 0x5c, 0x8f, 0x91, 0xb5, 0xd1, 0xbd, 0x93, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x70, 0xff, 0xe7, 0x05, 0xb7, 0x05, 0x2d, 0x00, 0x1a,
+ 0x00, 0x29, 0x00, 0x00, 0x25, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37,
+ 0x33, 0x06, 0x07, 0x06, 0x20, 0x24, 0x02, 0x35, 0x34, 0x12, 0x24, 0x33,
+ 0x32, 0x04, 0x12, 0x15, 0x21, 0x22, 0x15, 0x35, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x01, 0x68,
+ 0x3c, 0x54, 0x87, 0x01, 0x29, 0x89, 0x5f, 0x46, 0x63, 0x55, 0x80, 0xa1,
+ 0xfe, 0xa1, 0xfe, 0xbf, 0xb3, 0xb5, 0x01, 0x43, 0xac, 0xaa, 0x01, 0x43,
+ 0xb5, 0xfb, 0xc3, 0x11, 0x11, 0x03, 0x35, 0x12, 0x3f, 0x56, 0x88, 0x8f,
+ 0x90, 0x89, 0x56, 0x3d, 0xe4, 0x4d, 0x33, 0x54, 0x54, 0x3c, 0x60, 0x78,
+ 0x47, 0x5a, 0xb3, 0x01, 0x41, 0xaf, 0xb0, 0x01, 0x45, 0xae, 0xae, 0xfe,
+ 0xbb, 0xb0, 0x13, 0x49, 0x13, 0x13, 0x01, 0x70, 0x50, 0x33, 0x52, 0x51,
+ 0x34, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x4e, 0xff, 0xe3, 0x03, 0xf0,
+ 0x04, 0x44, 0x00, 0x1c, 0x00, 0x25, 0x00, 0x00, 0x01, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x00, 0x33, 0x20, 0x11, 0x14, 0x07,
+ 0x06, 0x37, 0x36, 0x35, 0x34, 0x23, 0x22, 0x06, 0x03, 0x20, 0x01, 0x0e,
+ 0x04, 0x1f, 0x35, 0x8e, 0x69, 0x33, 0x5c, 0x15, 0x7a, 0x24, 0x86, 0x5e,
+ 0xfe, 0x8d, 0x64, 0x46, 0x0e, 0x2c, 0x01, 0x30, 0xd8, 0x01, 0x60, 0xb8,
+ 0xbd, 0x61, 0x64, 0xcc, 0x78, 0xa8, 0x33, 0x01, 0x21, 0x01, 0x98, 0x26,
+ 0x22, 0x5e, 0x3e, 0x6e, 0x23, 0x3f, 0x51, 0x7f, 0x59, 0x3e, 0x99, 0x6b,
+ 0x9b, 0x44, 0x4d, 0xfd, 0x01, 0x34, 0xfe, 0xeb, 0xc7, 0x67, 0x69, 0xe0,
+ 0x4d, 0x71, 0xab, 0xcc, 0xfe, 0xed, 0x00, 0x00, 0x00, 0x01, 0x00, 0x91,
+ 0xff, 0xe3, 0x04, 0x13, 0x05, 0xf0, 0x00, 0x45, 0x00, 0x00, 0x01, 0x17,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x3f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x15, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x03, 0xbd, 0x55, 0x1c,
+ 0x0e, 0xa0, 0xe2, 0x81, 0x5e, 0x62, 0x3e, 0x55, 0x78, 0x62, 0xa1, 0x01,
+ 0x61, 0x37, 0x47, 0x59, 0x6f, 0xd9, 0x7a, 0x4c, 0x2e, 0x29, 0x2d, 0x1e,
+ 0x25, 0x15, 0x0c, 0x1a, 0x17, 0x21, 0x27, 0x5c, 0x57, 0x3a, 0x57, 0x48,
+ 0x2a, 0x51, 0x56, 0x70, 0x9a, 0x6f, 0x6b, 0x34, 0x62, 0x57, 0x51, 0xae,
+ 0x74, 0x6a, 0x38, 0x0b, 0x01, 0x49, 0x68, 0x41, 0x11, 0xac, 0x22, 0x25,
+ 0x40, 0x5f, 0xa9, 0xae, 0x8a, 0x6c, 0x18, 0x15, 0x24, 0x3d, 0x50, 0x94,
+ 0x8b, 0x63, 0x7a, 0x53, 0x32, 0x56, 0x4e, 0x2d, 0x32, 0x16, 0x0e, 0x21,
+ 0x1c, 0x24, 0x2b, 0x1f, 0x25, 0x24, 0x2b, 0x40, 0x65, 0x97, 0x7d, 0x4e,
+ 0x30, 0x17, 0x1a, 0x36, 0x1e, 0x1d, 0x39, 0x6e, 0x99, 0xa6, 0x61, 0x5b,
+ 0x75, 0x3e, 0x5f, 0x00, 0x00, 0x01, 0x00, 0x4b, 0xff, 0xdf, 0x05, 0x76,
+ 0x06, 0x0b, 0x00, 0x4d, 0x00, 0x00, 0x01, 0x17, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x11, 0x21, 0x07, 0x23, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x3d,
+ 0x01, 0x21, 0x37, 0x21, 0x11, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x1f, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x21, 0x32, 0x17, 0x37, 0x15, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x05, 0x56, 0x20, 0x50, 0x23, 0x34, 0x23, 0x31, 0xcb, 0x39, 0x01, 0x1d,
+ 0x37, 0xe6, 0x25, 0x26, 0x46, 0xb2, 0xf1, 0x73, 0x56, 0x2e, 0x1b, 0x18,
+ 0x29, 0x1c, 0x0c, 0x10, 0x14, 0x11, 0x18, 0x3c, 0x54, 0x61, 0x6f, 0x38,
+ 0x1a, 0x1e, 0xfe, 0xbb, 0x23, 0x01, 0x22, 0x57, 0x38, 0xae, 0x63, 0x40,
+ 0x06, 0x12, 0x16, 0x20, 0x17, 0x22, 0x20, 0x1c, 0x6c, 0x96, 0x01, 0x15,
+ 0x20, 0x3c, 0x8a, 0xa9, 0x80, 0x2c, 0x13, 0x2c, 0x1d, 0x05, 0xf2, 0x13,
+ 0xa3, 0x4b, 0x14, 0x3d, 0x19, 0xfd, 0xdc, 0x44, 0x63, 0x98, 0x84, 0x80,
+ 0x4b, 0xca, 0x5f, 0x34, 0x42, 0x28, 0x1f, 0x1a, 0x0b, 0x14, 0x30, 0x33,
+ 0x1a, 0x42, 0x7b, 0x3e, 0x63, 0x65, 0x82, 0xb9, 0x44, 0x02, 0x49, 0x18,
+ 0x6e, 0x46, 0x54, 0x3d, 0x1f, 0x49, 0x2c, 0x1a, 0x1f, 0x1f, 0x1f, 0x46,
+ 0xb4, 0x77, 0xa7, 0x08, 0x37, 0x4b, 0x2e, 0x16, 0x09, 0x30, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xba, 0x05, 0xd5, 0x00, 0x09,
+ 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33,
+ 0x03, 0xb9, 0xfc, 0xfc, 0x02, 0x4e, 0xfd, 0xeb, 0x02, 0x15, 0xb6, 0xaa,
+ 0x01, 0xb8, 0xaa, 0x02, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x33,
+ 0xff, 0xc7, 0x07, 0x6f, 0x06, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x01, 0x11,
+ 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x17, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x11, 0x34, 0x02, 0x37, 0x06,
+ 0x03, 0x02, 0x03, 0x07, 0x27, 0x02, 0x03, 0x26, 0x27, 0x26, 0x27, 0x11,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x36, 0x35, 0x11,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x0f, 0x01, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x33, 0x16, 0x13, 0x12, 0x13, 0x17, 0x12, 0x37, 0x12,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x06, 0x28,
+ 0x14, 0x14, 0x27, 0x18, 0x1a, 0x2f, 0x24, 0x2a, 0x23, 0x26, 0x23, 0x3f,
+ 0x56, 0x8f, 0x33, 0x32, 0x10, 0x05, 0x07, 0x05, 0x9d, 0x6d, 0x6e, 0x32,
+ 0x57, 0x12, 0x35, 0x5c, 0x32, 0x35, 0x38, 0x3f, 0x2e, 0x29, 0x55, 0x48,
+ 0x5a, 0x46, 0x3d, 0x26, 0x1a, 0x16, 0x1f, 0x32, 0x1a, 0x19, 0x3a, 0x27,
+ 0x60, 0x1e, 0x19, 0x41, 0x5e, 0x40, 0x36, 0x37, 0x12, 0x2a, 0x0e, 0x15,
+ 0x19, 0x21, 0x56, 0x6c, 0x81, 0x5f, 0x06, 0x94, 0x65, 0x65, 0x2e, 0x0a,
+ 0x4b, 0x71, 0x73, 0x8d, 0x88, 0xa0, 0x3c, 0x23, 0x1a, 0x10, 0x1b, 0x28,
+ 0x20, 0x07, 0x14, 0x06, 0x0a, 0x04, 0x16, 0x18, 0x1a, 0x17, 0x26, 0x05,
+ 0x1d, 0xfd, 0x35, 0xdc, 0x80, 0x81, 0x2f, 0x16, 0x2c, 0x2c, 0x40, 0x21,
+ 0x3b, 0x44, 0x61, 0x39, 0x37, 0x9e, 0x54, 0x02, 0x01, 0x1e, 0x01, 0x91,
+ 0x1f, 0xb3, 0xfe, 0xc4, 0xfe, 0xc9, 0xfe, 0x56, 0x4d, 0x0f, 0x01, 0xe6,
+ 0x01, 0x3b, 0xa9, 0x6e, 0x77, 0x46, 0xfe, 0x0f, 0xed, 0xbb, 0xb3, 0x5e,
+ 0x4f, 0x3f, 0x2f, 0x2c, 0x25, 0x21, 0x18, 0x3b, 0x3e, 0x6a, 0x79, 0x74,
+ 0x9f, 0x02, 0xd6, 0x58, 0x3c, 0x3b, 0x7d, 0x03, 0x66, 0x3f, 0x45, 0x27,
+ 0x5f, 0x6e, 0xa5, 0xfe, 0xfa, 0xfe, 0xf4, 0xfe, 0xb1, 0x0b, 0x01, 0x48,
+ 0xf4, 0x01, 0x02, 0x97, 0x98, 0x27, 0x1d, 0x1d, 0x27, 0x10, 0x23, 0x09,
+ 0x16, 0x0d, 0x1d, 0x04, 0x18, 0x16, 0x2e, 0x00, 0x00, 0x02, 0x00, 0x5d,
+ 0xff, 0xe7, 0x02, 0xf6, 0x03, 0x29, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x34, 0x26, 0x23, 0x22, 0x02, 0x15, 0x14, 0x16, 0x33, 0x32, 0x12,
+ 0x03, 0x32, 0x16, 0x15, 0x14, 0x02, 0x23, 0x22, 0x26, 0x35, 0x34, 0x12,
+ 0x02, 0x65, 0x4e, 0x47, 0x63, 0x7f, 0x4e, 0x48, 0x62, 0x7f, 0xaf, 0x89,
+ 0xb7, 0xc7, 0x92, 0x89, 0xb6, 0xc6, 0x01, 0xf7, 0x74, 0x7d, 0xfe, 0xfe,
+ 0xcf, 0x74, 0x7b, 0x01, 0x04, 0x01, 0xfd, 0xd8, 0xa3, 0xc6, 0xfe, 0xff,
+ 0xd8, 0xa3, 0xc6, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5c,
+ 0xff, 0xe3, 0x05, 0x21, 0x05, 0xf0, 0x00, 0x34, 0x00, 0x00, 0x09, 0x01,
+ 0x16, 0x15, 0x14, 0x07, 0x34, 0x27, 0x01, 0x07, 0x06, 0x1f, 0x01, 0x16,
+ 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x26,
+ 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x37, 0x14, 0x17, 0x01, 0x13,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x14, 0x1f, 0x01, 0x16, 0x15, 0x14, 0x07,
+ 0x34, 0x2f, 0x01, 0x03, 0x64, 0x01, 0x63, 0x59, 0x81, 0x2d, 0xfd, 0x48,
+ 0x8c, 0x37, 0x3b, 0x9b, 0x5a, 0x37, 0x4e, 0x3e, 0xdc, 0xb0, 0x2a, 0x58,
+ 0x30, 0x7e, 0x8b, 0xd9, 0x59, 0x81, 0x2d, 0x02, 0x2e, 0xfd, 0x68, 0x59,
+ 0x81, 0x2d, 0xa4, 0x59, 0x81, 0x2d, 0x11, 0x02, 0xd0, 0xfe, 0x75, 0x63,
+ 0x31, 0x82, 0x4c, 0x53, 0x32, 0x03, 0x05, 0x9c, 0x3f, 0x42, 0xac, 0x64,
+ 0xd6, 0x2c, 0x3e, 0x38, 0x3f, 0x5d, 0x1d, 0x2f, 0x63, 0x36, 0xbc, 0x8d,
+ 0x9b, 0xf1, 0x63, 0x31, 0x82, 0x4c, 0x53, 0x32, 0xfd, 0x96, 0x01, 0x19,
+ 0x74, 0x63, 0x31, 0x82, 0x4c, 0x53, 0x32, 0xb6, 0x63, 0x31, 0x82, 0x4c,
+ 0x53, 0x32, 0x12, 0x00, 0x00, 0x01, 0xff, 0xfb, 0xff, 0xe3, 0x04, 0xb4,
+ 0x05, 0xf1, 0x00, 0x30, 0x00, 0x00, 0x01, 0x11, 0x33, 0x16, 0x15, 0x14,
+ 0x0f, 0x01, 0x0e, 0x01, 0x23, 0x21, 0x22, 0x2e, 0x01, 0x35, 0x34, 0x3f,
+ 0x01, 0x3e, 0x01, 0x33, 0x21, 0x11, 0x34, 0x27, 0x2e, 0x01, 0x23, 0x21,
+ 0x22, 0x2e, 0x03, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x1e, 0x02,
+ 0x33, 0x21, 0x32, 0x16, 0x04, 0x45, 0x47, 0x27, 0x1b, 0x79, 0x0f, 0x12,
+ 0x1f, 0xfc, 0x5b, 0x13, 0x16, 0x15, 0x1e, 0x78, 0x0f, 0x12, 0x21, 0x03,
+ 0x2a, 0x12, 0x12, 0x22, 0x39, 0xfd, 0xbf, 0x35, 0x30, 0x41, 0x1a, 0x14,
+ 0x04, 0x0e, 0x12, 0x17, 0x0b, 0x0a, 0x26, 0x1c, 0x19, 0x02, 0x8e, 0x50,
+ 0x52, 0x04, 0xb6, 0xfc, 0x23, 0x04, 0x24, 0x14, 0x1b, 0x87, 0x12, 0x06,
+ 0x02, 0x14, 0x12, 0x10, 0x22, 0x86, 0x10, 0x06, 0x03, 0x78, 0x32, 0x0d,
+ 0x10, 0x06, 0x04, 0x18, 0x31, 0x5b, 0x47, 0x28, 0x20, 0x14, 0x20, 0x1e,
+ 0x1f, 0x04, 0x57, 0x00, 0x00, 0x01, 0x00, 0x18, 0xff, 0xb8, 0x02, 0xee,
+ 0x05, 0xf0, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x21, 0x32, 0x17, 0x16, 0x14,
+ 0x0e, 0x01, 0x07, 0x1e, 0x01, 0x12, 0x10, 0x07, 0x06, 0x23, 0x22, 0x26,
+ 0x2f, 0x01, 0x0e, 0x01, 0x23, 0x21, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x3e,
+ 0x01, 0x33, 0x21, 0x11, 0x21, 0x22, 0x26, 0x35, 0x34, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x01, 0x32, 0x01, 0x2e, 0x62, 0x1b, 0x11, 0x0b, 0x2b,
+ 0x22, 0x02, 0x02, 0x37, 0x09, 0x16, 0x28, 0x14, 0x10, 0x06, 0x0c, 0x5a,
+ 0x10, 0x28, 0xfe, 0x95, 0x3f, 0x1f, 0x78, 0x0f, 0x12, 0x20, 0x01, 0x5e,
+ 0xfe, 0xdb, 0x62, 0x40, 0x12, 0x29, 0x0a, 0x15, 0x2a, 0x0e, 0x05, 0x8f,
+ 0x37, 0x23, 0x2a, 0x28, 0x2f, 0x0a, 0x1a, 0x82, 0xfd, 0x24, 0xfe, 0xfb,
+ 0x22, 0x53, 0x1e, 0x1f, 0x61, 0x65, 0x0e, 0x28, 0x10, 0x21, 0x87, 0x10,
+ 0x06, 0x03, 0xcd, 0x71, 0x7e, 0x42, 0x19, 0x1e, 0x3b, 0x06, 0x02, 0x00,
+ 0x00, 0x01, 0x00, 0x4d, 0xff, 0xb8, 0x04, 0x41, 0x05, 0xf0, 0x00, 0x26,
+ 0x00, 0x00, 0x01, 0x21, 0x22, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32,
+ 0x17, 0x1e, 0x02, 0x33, 0x21, 0x32, 0x1e, 0x02, 0x15, 0x14, 0x0e, 0x01,
+ 0x07, 0x1e, 0x01, 0x17, 0x12, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26,
+ 0x27, 0x26, 0x35, 0x03, 0xa3, 0xfd, 0x4c, 0x62, 0x40, 0x04, 0x0e, 0x12,
+ 0x17, 0x0b, 0x0b, 0x25, 0x1c, 0x19, 0x02, 0xbd, 0x2f, 0x40, 0x18, 0x05,
+ 0x0b, 0x2b, 0x21, 0x02, 0x01, 0x04, 0x33, 0x09, 0x15, 0x29, 0x15, 0x10,
+ 0x0b, 0x0a, 0x04, 0xa6, 0x71, 0x7e, 0x28, 0x1f, 0x14, 0x1f, 0x1e, 0x20,
+ 0x04, 0x1f, 0x30, 0x1a, 0x0b, 0x10, 0x28, 0x2f, 0x0a, 0x1a, 0x82, 0x26,
+ 0xfd, 0x4a, 0x93, 0x73, 0x21, 0x53, 0x27, 0x44, 0x51, 0x49, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x3f, 0x00, 0x00, 0x02, 0x8f, 0x06, 0x14, 0x00, 0x0b,
+ 0x00, 0x15, 0x00, 0x00, 0x13, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x01, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23,
+ 0x35, 0x21, 0xa9, 0x65, 0x49, 0x47, 0x64, 0x64, 0x47, 0x49, 0x65, 0x01,
+ 0x5d, 0x88, 0xfd, 0xb1, 0x88, 0x88, 0x01, 0xc7, 0x05, 0x54, 0x51, 0x6f,
+ 0x6f, 0x51, 0x4f, 0x6f, 0x6e, 0xfb, 0x75, 0x79, 0x79, 0x03, 0x35, 0x79,
+ 0x00, 0x02, 0x00, 0x51, 0xff, 0xd5, 0x06, 0x97, 0x05, 0x3b, 0x00, 0x09,
+ 0x00, 0x1b, 0x00, 0x00, 0x12, 0x10, 0x00, 0x33, 0x32, 0x00, 0x10, 0x00,
+ 0x23, 0x22, 0x05, 0x01, 0x15, 0x07, 0x1e, 0x01, 0x15, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x04, 0xe5, 0x01, 0x27, 0xfe,
+ 0xfe, 0x01, 0x28, 0xfe, 0xd8, 0xfe, 0xfe, 0x03, 0x85, 0x01, 0x06, 0xd7,
+ 0x01, 0x02, 0xfe, 0x85, 0xfe, 0xc2, 0xfe, 0xc2, 0xfe, 0x85, 0x01, 0x7b,
+ 0x01, 0x3e, 0xea, 0x01, 0x4e, 0x03, 0x65, 0xfe, 0x48, 0xfe, 0xfd, 0x01,
+ 0x03, 0x01, 0xb8, 0x01, 0x01, 0xc2, 0x01, 0x0a, 0xf4, 0xdd, 0x21, 0x23,
+ 0x10, 0xfe, 0xc5, 0xfe, 0x87, 0x01, 0x79, 0x01, 0x3b, 0x01, 0x3a, 0x01,
+ 0x78, 0xd1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x87, 0x00, 0x00, 0x08, 0x5e,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x20, 0x00, 0x00,
+ 0x13, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x01, 0x03,
+ 0x21, 0x03, 0x33, 0x01, 0x23, 0x27, 0x21, 0x07, 0x23, 0x01, 0x33, 0x1b,
+ 0x01, 0x33, 0x09, 0x01, 0x23, 0x0b, 0x01, 0x23, 0x01, 0x88, 0x02, 0x43,
+ 0xfe, 0x45, 0x01, 0x8f, 0xfe, 0x71, 0x88, 0x03, 0x29, 0xa3, 0x01, 0x46,
+ 0xe6, 0x87, 0x01, 0x52, 0x7c, 0x51, 0xfe, 0x70, 0x51, 0x7e, 0x03, 0x74,
+ 0x81, 0xdc, 0xde, 0x81, 0xfe, 0xe3, 0x01, 0x30, 0x82, 0xf9, 0xfb, 0x82,
+ 0x01, 0x3d, 0x04, 0x60, 0x80, 0xfe, 0xb6, 0x7f, 0xfd, 0xe9, 0x03, 0x08,
+ 0xfe, 0x43, 0x02, 0x35, 0xfc, 0x80, 0xe6, 0xe6, 0x03, 0x80, 0xfe, 0xb3,
+ 0x01, 0x4d, 0xfe, 0x52, 0xfe, 0x2e, 0x01, 0x7d, 0xfe, 0x83, 0x01, 0xde,
+ 0x00, 0x03, 0x00, 0x20, 0xff, 0xf0, 0x04, 0xee, 0x04, 0x60, 0x00, 0x0f,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x00, 0x25, 0x35, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x11, 0x23, 0x11, 0x14, 0x16, 0x17, 0x16, 0x32, 0x03, 0x16,
+ 0x33, 0x32, 0x37, 0x15, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23,
+ 0x11, 0x21, 0x11, 0x23, 0x22, 0x06, 0x15, 0x23, 0x34, 0x36, 0x33, 0x21,
+ 0x15, 0x23, 0x11, 0x14, 0x01, 0x33, 0x11, 0x23, 0x04, 0x94, 0x7c, 0x27,
+ 0x17, 0x08, 0x0d, 0x79, 0x15, 0x12, 0x33, 0xcb, 0x50, 0x07, 0x61, 0x24,
+ 0x41, 0x69, 0x76, 0xe4, 0x26, 0x13, 0x96, 0xfe, 0xd3, 0x37, 0x51, 0x2d,
+ 0x5a, 0x67, 0x95, 0x03, 0xa7, 0xa4, 0xfd, 0x6a, 0x79, 0x79, 0x5a, 0x34,
+ 0x40, 0x27, 0x21, 0x38, 0xa2, 0x02, 0x0c, 0xfd, 0xd6, 0xa6, 0x7a, 0x19,
+ 0x45, 0x01, 0x42, 0xaf, 0x0a, 0xf1, 0x10, 0xca, 0x62, 0xfd, 0x01, 0xe3,
+ 0xfc, 0x04, 0x03, 0xfc, 0x4c, 0x73, 0xa8, 0x7b, 0x64, 0xfe, 0x12, 0x59,
+ 0xfe, 0xaf, 0x03, 0x98, 0x00, 0x02, 0x00, 0x00, 0xfe, 0x73, 0x04, 0xd1,
+ 0x04, 0x7b, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x16, 0x13, 0x12,
+ 0x11, 0x33, 0x10, 0x03, 0x02, 0x03, 0x10, 0x03, 0x02, 0x23, 0x22, 0x07,
+ 0x23, 0x34, 0x37, 0x36, 0x33, 0x20, 0x13, 0x12, 0x13, 0x33, 0x02, 0x03,
+ 0x02, 0x11, 0x01, 0xa8, 0x9c, 0x4d, 0x3e, 0x75, 0x3e, 0x61, 0x2f, 0x3f,
+ 0x7e, 0xb1, 0x98, 0x16, 0x5a, 0x40, 0x49, 0xdc, 0x01, 0x89, 0x7b, 0x63,
+ 0x90, 0x75, 0xb7, 0x3c, 0x3f, 0x04, 0x1d, 0xc1, 0xfe, 0x5c, 0xfe, 0xa7,
+ 0xfe, 0x78, 0x01, 0x9f, 0x01, 0x42, 0x01, 0xfd, 0xfa, 0xbe, 0x02, 0x1b,
+ 0x01, 0x2a, 0x02, 0x57, 0x9f, 0x62, 0x4f, 0x5a, 0xfd, 0x3d, 0x01, 0x9a,
+ 0x01, 0x0e, 0xfe, 0x8f, 0xfe, 0xc9, 0xfe, 0xbe, 0xfd, 0xfd, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xac, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x25, 0x15, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x0e, 0xb6, 0x02, 0xe7, 0xfd, 0x73, 0xfe, 0x96, 0x05,
+ 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0x64, 0xfa, 0x8f, 0x05, 0xd5, 0x00,
+ 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x68, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x01, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x04, 0x58,
+ 0xb5, 0xfc, 0x02, 0xb6, 0x03, 0xa2, 0xfe, 0x97, 0xfe, 0x21, 0xfe, 0x96,
+ 0x04, 0xb2, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0xfa, 0xf3, 0x05, 0x0d,
+ 0xfa, 0x8f, 0x05, 0x71, 0xfa, 0x8f, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x16,
+ 0xfe, 0x77, 0x05, 0xb2, 0x05, 0xc1, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00,
+ 0x09, 0x02, 0x23, 0x09, 0x02, 0x15, 0x21, 0x09, 0x01, 0x21, 0x15, 0x21,
+ 0x35, 0x09, 0x01, 0x35, 0x01, 0x7c, 0x02, 0xc1, 0xfd, 0x53, 0xea, 0x02,
+ 0xad, 0xfd, 0x3f, 0x05, 0x08, 0xfc, 0x7d, 0x02, 0xad, 0xfd, 0x3f, 0x03,
+ 0xae, 0xfa, 0x65, 0x02, 0xba, 0xfd, 0x62, 0xfe, 0xda, 0x03, 0x59, 0x03,
+ 0x2a, 0xfc, 0xd6, 0xfc, 0xa7, 0x06, 0xe7, 0x64, 0xfc, 0xd6, 0xfc, 0xa7,
+ 0x63, 0x63, 0x03, 0x53, 0x03, 0x15, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x92,
+ 0xff, 0xe3, 0x05, 0x29, 0x05, 0xf0, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x12, 0x11, 0x10,
+ 0x02, 0x23, 0x22, 0x06, 0x01, 0x47, 0x01, 0x29, 0xfe, 0x23, 0x69, 0xfe,
+ 0x90, 0x01, 0x3b, 0x01, 0x63, 0xfe, 0x9d, 0xfe, 0xc5, 0x84, 0xec, 0x64,
+ 0x65, 0xe2, 0x7d, 0xf7, 0xf8, 0xf8, 0xf7, 0x60, 0x97, 0x04, 0xfe, 0xfe,
+ 0x6f, 0xa6, 0x02, 0x81, 0x53, 0x55, 0xfe, 0x67, 0xfe, 0x93, 0xfe, 0x92,
+ 0xfe, 0x67, 0x48, 0x46, 0xd7, 0x5f, 0x60, 0x01, 0x32, 0x01, 0x2f, 0x01,
+ 0x2e, 0x01, 0x32, 0x25, 0x00, 0x01, 0x00, 0x07, 0x00, 0x00, 0x03, 0x4c,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x35, 0x21,
+ 0x03, 0x4b, 0xb5, 0xfd, 0x71, 0x03, 0x44, 0x05, 0x2b, 0xaa, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x03, 0x4b, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x03, 0x4a, 0xfc, 0xbc,
+ 0x02, 0x8f, 0x05, 0xd5, 0xfa, 0x2b, 0xaa, 0x05, 0x2b, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x04, 0x6a, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x00, 0x21, 0x23, 0x09, 0x01, 0x23, 0x01, 0x11, 0x33, 0x11, 0x04,
+ 0x6a, 0xc4, 0xfe, 0x8c, 0xfe, 0x8e, 0xc4, 0x01, 0xdc, 0xb6, 0x02, 0x66,
+ 0xfd, 0x9a, 0x03, 0x0e, 0x02, 0xc7, 0xfd, 0x39, 0x00, 0x04, 0x00, 0x4e,
+ 0x00, 0x00, 0x05, 0xa9, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x13, 0x00, 0x17,
+ 0x00, 0x22, 0x00, 0x00, 0x01, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, 0x02,
+ 0x00, 0x29, 0x01, 0x01, 0x05, 0x03, 0x33, 0x32, 0x37, 0x13, 0x26, 0x23,
+ 0x21, 0x03, 0x33, 0x13, 0x05, 0x03, 0x36, 0x37, 0x36, 0x13, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x03, 0x23, 0x01, 0x86, 0x98, 0x68, 0x15, 0x43, 0xfe,
+ 0x52, 0xfe, 0x7b, 0xfe, 0x30, 0x01, 0x05, 0x01, 0x59, 0xe2, 0x59, 0xdd,
+ 0x9b, 0xcc, 0x85, 0xdd, 0xfe, 0x97, 0xe2, 0xb6, 0xe2, 0x02, 0x6a, 0xb8,
+ 0x18, 0x17, 0xbb, 0x3a, 0x12, 0x5c, 0x10, 0x05, 0xd5, 0xb5, 0x7c, 0xdf,
+ 0x63, 0x76, 0xfe, 0x7e, 0xfe, 0x96, 0x05, 0xd5, 0x64, 0xfa, 0xf3, 0x41,
+ 0x04, 0x8b, 0x41, 0xfa, 0xf3, 0x05, 0x0d, 0x78, 0xfb, 0xe3, 0x10, 0x13,
+ 0x9d, 0x01, 0x50, 0x66, 0x55, 0xc2, 0x6d, 0x13, 0x00, 0x04, 0x00, 0x51,
+ 0xff, 0xe3, 0x05, 0x1c, 0x06, 0x14, 0x00, 0x0a, 0x00, 0x1f, 0x00, 0x23,
+ 0x00, 0x32, 0x00, 0x00, 0x13, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x13,
+ 0x06, 0x07, 0x06, 0x01, 0x21, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22, 0x02,
+ 0x35, 0x34, 0x37, 0x36, 0x00, 0x33, 0x32, 0x17, 0x16, 0x17, 0x13, 0x21,
+ 0x07, 0x03, 0x33, 0x13, 0x01, 0x03, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0xd0, 0x1c, 0x26, 0x1d, 0x30,
+ 0x9e, 0x3c, 0x32, 0x6b, 0x03, 0x1f, 0xfe, 0xd3, 0x1e, 0x46, 0x58, 0x58,
+ 0x70, 0xb7, 0x8e, 0x1f, 0x1f, 0x01, 0x1e, 0xb7, 0x70, 0x47, 0x47, 0x23,
+ 0x6a, 0x01, 0x2d, 0xe5, 0xee, 0x78, 0xef, 0xfd, 0x7a, 0xab, 0x16, 0x17,
+ 0x95, 0x6b, 0x6c, 0x1c, 0x1c, 0x33, 0x31, 0x95, 0x17, 0x02, 0x74, 0x9e,
+ 0x4b, 0x73, 0x4f, 0x3d, 0x20, 0x03, 0x86, 0x20, 0x3d, 0x82, 0xfc, 0xed,
+ 0xa8, 0x64, 0x30, 0x31, 0x01, 0x0c, 0x94, 0x50, 0xb2, 0xb2, 0x01, 0x44,
+ 0x31, 0x30, 0x64, 0x02, 0x5e, 0x64, 0xfa, 0xac, 0x05, 0x54, 0xfe, 0x64,
+ 0xfc, 0x36, 0x03, 0x82, 0x82, 0x9f, 0x9e, 0x4a, 0x74, 0x68, 0x69, 0x00,
+ 0x00, 0x03, 0x00, 0x51, 0xff, 0xe3, 0x04, 0x1e, 0x04, 0x7b, 0x00, 0x0a,
+ 0x00, 0x28, 0x00, 0x32, 0x00, 0x00, 0x13, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x13, 0x06, 0x07, 0x06, 0x13, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x12,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x0f, 0x01, 0x21, 0x37,
+ 0x21, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0xc4, 0x0b, 0x47,
+ 0x13, 0x1b, 0x91, 0x22, 0x1f, 0x90, 0x97, 0x40, 0x55, 0x6d, 0x72, 0x51,
+ 0x53, 0x15, 0x60, 0x61, 0x62, 0x60, 0xf2, 0x70, 0x51, 0x0d, 0x30, 0xa3,
+ 0xa1, 0xe3, 0xcd, 0x5c, 0x3f, 0x0e, 0x11, 0xfd, 0xce, 0x12, 0x01, 0xcd,
+ 0x0a, 0x34, 0x46, 0x98, 0x43, 0x3c, 0x02, 0x30, 0x3c, 0x37, 0x8d, 0x68,
+ 0x1d, 0x16, 0x03, 0x3a, 0x15, 0x1c, 0x82, 0xfd, 0x4a, 0x15, 0x1f, 0x16,
+ 0x28, 0x75, 0x2a, 0x16, 0x16, 0x9c, 0x6f, 0xa6, 0x44, 0x4d, 0x01, 0x13,
+ 0xa2, 0xa1, 0x91, 0x63, 0x93, 0x46, 0x50, 0x5a, 0x64, 0x38, 0x32, 0x76,
+ 0x52, 0x73, 0x11, 0x00, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x02, 0x41,
+ 0x06, 0x14, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33,
+ 0x07, 0x23, 0x03, 0x33, 0x13, 0x23, 0x13, 0x21, 0x13, 0x21, 0x01, 0x9b,
+ 0xa6, 0x29, 0xa6, 0xbf, 0x79, 0xa0, 0x79, 0x21, 0xfe, 0xd3, 0xc4, 0x01,
+ 0x2d, 0x06, 0x14, 0xe9, 0xfb, 0x39, 0x03, 0x98, 0xfc, 0x04, 0x04, 0x60,
+ 0x00, 0x03, 0xff, 0x2d, 0xfe, 0x56, 0x02, 0x41, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x0c, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x33, 0x07, 0x23, 0x03, 0x13,
+ 0x23, 0x03, 0x06, 0x07, 0x36, 0x37, 0x36, 0x05, 0x23, 0x37, 0x33, 0x32,
+ 0x37, 0x36, 0x37, 0x13, 0x21, 0x03, 0x06, 0x07, 0x06, 0x01, 0x9b, 0xa6,
+ 0x29, 0xa6, 0x5c, 0xb6, 0x79, 0xbb, 0x1f, 0x30, 0x41, 0x2d, 0x43, 0xfe,
+ 0xf9, 0xc6, 0x12, 0x2d, 0x5e, 0x2b, 0x2b, 0x1a, 0xd1, 0x01, 0x2d, 0xc8,
+ 0x25, 0x5a, 0x5b, 0x06, 0x14, 0xe9, 0xfa, 0xbf, 0x04, 0x12, 0xfb, 0xd0,
+ 0xb5, 0x54, 0x0f, 0x30, 0x48, 0xf4, 0x64, 0x30, 0x31, 0x99, 0x04, 0xac,
+ 0xfb, 0x8c, 0xd6, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35,
+ 0xff, 0xe3, 0x05, 0x26, 0x05, 0xf0, 0x00, 0x26, 0x00, 0x30, 0x00, 0x00,
+ 0x09, 0x01, 0x0e, 0x01, 0x15, 0x23, 0x34, 0x12, 0x37, 0x03, 0x33, 0x17,
+ 0x3e, 0x01, 0x33, 0x32, 0x00, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x03, 0x5b, 0xfe, 0x36, 0x35, 0x40, 0xa8, 0x68, 0x54, 0xfb, 0xe3,
+ 0x81, 0x5d, 0xcd, 0x76, 0xd9, 0x01, 0x14, 0x79, 0x79, 0x2c, 0x2d, 0xc8,
+ 0xa6, 0x4b, 0x94, 0x4c, 0x4e, 0x8e, 0x3d, 0x5f, 0x76, 0x36, 0x2e, 0x51,
+ 0x4d, 0xbf, 0x90, 0x55, 0x96, 0x42, 0x02, 0x40, 0x02, 0x08, 0x59, 0xcb,
+ 0x72, 0x84, 0x01, 0x02, 0x7e, 0x01, 0x1f, 0x95, 0x59, 0x57, 0xfe, 0xed,
+ 0xd7, 0x80, 0xe1, 0x63, 0x3f, 0x7d, 0x3c, 0xa2, 0xc5, 0x24, 0x24, 0xb6,
+ 0x2f, 0x31, 0x6f, 0x58, 0x33, 0x67, 0xce, 0x51, 0xa1, 0x58, 0x92, 0xc2,
+ 0x3f, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x48, 0x00, 0x00, 0x03, 0x2e,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x03, 0x2e, 0xfd, 0x1b, 0x02, 0x3f, 0xfe, 0x3a,
+ 0x01, 0xc6, 0x04, 0x60, 0xfb, 0xa0, 0x93, 0x01, 0x6f, 0x93, 0x01, 0xcb,
+ 0xff, 0xff, 0x00, 0x7b, 0xff, 0xe3, 0x06, 0xa4, 0x05, 0xf0, 0x10, 0x27,
+ 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0xa5, 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x7b,
+ 0xff, 0xe3, 0x06, 0xb6, 0x05, 0xf0, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3,
+ 0x00, 0x00, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa7,
+ 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x7b, 0xff, 0xe3, 0x09, 0x9d,
+ 0x05, 0xf0, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x26,
+ 0x00, 0x7b, 0x00, 0x00, 0x10, 0x27, 0x00, 0x7b, 0x04, 0x17, 0xfd, 0x64,
+ 0x10, 0x07, 0x07, 0xa0, 0x06, 0xfa, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x7b,
+ 0xff, 0xe3, 0x06, 0x9c, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00,
+ 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x00, 0x75,
+ 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x54, 0xff, 0xe3, 0x06, 0x9c,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x74, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79,
+ 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x00, 0x75, 0x04, 0x17, 0xfd, 0x64,
+ 0xff, 0xff, 0x00, 0x7b, 0xff, 0xe3, 0x06, 0xa2, 0x05, 0xf0, 0x10, 0x26,
+ 0x00, 0x7b, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0xa3, 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x54,
+ 0xff, 0xe3, 0x06, 0xa2, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x74, 0x00, 0x00,
+ 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa3,
+ 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x58, 0xff, 0xe3, 0x06, 0xa2,
+ 0x05, 0xf0, 0x10, 0x26, 0x00, 0x75, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79,
+ 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa3, 0x04, 0x17, 0xfd, 0x64,
+ 0xff, 0xff, 0x00, 0x38, 0xff, 0xe3, 0x06, 0xa2, 0x05, 0xf0, 0x10, 0x26,
+ 0x07, 0xa2, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0xa3, 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x7b,
+ 0xff, 0xe3, 0x06, 0xbf, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00,
+ 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa4,
+ 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x5b, 0xff, 0xe3, 0x06, 0xbf,
+ 0x05, 0xf0, 0x10, 0x26, 0x07, 0xa3, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79,
+ 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa4, 0x04, 0x17, 0xfd, 0x64,
+ 0xff, 0xff, 0x00, 0x7b, 0xff, 0xe3, 0x06, 0xb8, 0x05, 0xf0, 0x10, 0x26,
+ 0x00, 0x7b, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0xa6, 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x58,
+ 0xff, 0xe3, 0x06, 0xb8, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x75, 0x00, 0x00,
+ 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa6,
+ 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x5b, 0xff, 0xe3, 0x06, 0xb8,
+ 0x05, 0xf0, 0x10, 0x26, 0x07, 0xa3, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79,
+ 0x02, 0xe3, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa6, 0x04, 0x17, 0xfd, 0x64,
+ 0xff, 0xff, 0x00, 0x61, 0xff, 0xe3, 0x06, 0xb8, 0x05, 0xf0, 0x10, 0x26,
+ 0x07, 0xa5, 0x00, 0x00, 0x10, 0x27, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0xa6, 0x04, 0x17, 0xfd, 0x64, 0xff, 0xff, 0x00, 0x7b,
+ 0xff, 0xe3, 0x05, 0x69, 0x05, 0xf0, 0x10, 0x26, 0x00, 0x7b, 0x00, 0x00,
+ 0x10, 0x07, 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x01, 0x6b, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x2c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x02, 0xd7, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x2c, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c, 0x01, 0x6c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x42, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x2c, 0x00, 0x00, 0x10, 0x27, 0x00, 0x2c, 0x01, 0x6c, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x2c, 0x02, 0xd7, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x06, 0x96, 0x05, 0xd5, 0x10, 0x26, 0x00, 0x2c, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x39, 0x01, 0xb8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x05, 0xf0, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x39, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c, 0x04, 0x84, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x5b, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x39, 0x00, 0x00, 0x10, 0x27, 0x00, 0x2c, 0x04, 0x84, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x2c, 0x05, 0xf0, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x08, 0xc7, 0x05, 0xd5, 0x10, 0x26, 0x00, 0x39, 0x00, 0x00,
+ 0x10, 0x27, 0x00, 0x2c, 0x04, 0x84, 0x00, 0x00, 0x10, 0x27, 0x00, 0x2c,
+ 0x05, 0xf0, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c, 0x07, 0x5c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x06, 0x62, 0x05, 0xd5, 0x10, 0x26,
+ 0x00, 0x2c, 0x00, 0x00, 0x10, 0x07, 0x00, 0x3b, 0x01, 0xac, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x06, 0x03,
+ 0x05, 0xd5, 0x10, 0x26, 0x00, 0x3b, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c,
+ 0x04, 0x98, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x07, 0x6f,
+ 0x05, 0xd5, 0x10, 0x26, 0x00, 0x3b, 0x00, 0x00, 0x10, 0x27, 0x00, 0x2c,
+ 0x04, 0x98, 0x00, 0x00, 0x10, 0x07, 0x00, 0x2c, 0x06, 0x04, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x26, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x1f, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x27, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x01, 0x54,
+ 0x06, 0x14, 0x10, 0x06, 0x00, 0x4c, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0x00, 0x00, 0x02, 0x9f, 0x06, 0x14, 0x10, 0x26, 0x00, 0x4c, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x4c, 0x01, 0x4b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0x00, 0x00, 0x03, 0xea, 0x06, 0x14, 0x10, 0x26, 0x00, 0x4c, 0x00, 0x00,
+ 0x10, 0x27, 0x00, 0x4c, 0x01, 0x4b, 0x00, 0x00, 0x10, 0x07, 0x00, 0x4c,
+ 0x02, 0x96, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x05, 0xa1,
+ 0x06, 0x14, 0x10, 0x26, 0x00, 0x4c, 0x00, 0x00, 0x10, 0x07, 0x00, 0x59,
+ 0x01, 0x95, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c,
+ 0x04, 0x60, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36,
+ 0x00, 0x00, 0x05, 0x2b, 0x06, 0x14, 0x10, 0x26, 0x00, 0x59, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x4c, 0x03, 0xd7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36,
+ 0x00, 0x00, 0x06, 0x76, 0x06, 0x14, 0x10, 0x26, 0x00, 0x59, 0x00, 0x00,
+ 0x10, 0x27, 0x00, 0x4c, 0x03, 0xd7, 0x00, 0x00, 0x10, 0x07, 0x00, 0x4c,
+ 0x05, 0x22, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x07, 0xc1,
+ 0x06, 0x14, 0x10, 0x26, 0x00, 0x59, 0x00, 0x00, 0x10, 0x27, 0x00, 0x4c,
+ 0x03, 0xd7, 0x00, 0x00, 0x10, 0x27, 0x00, 0x4c, 0x05, 0x22, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x4c, 0x06, 0x6d, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0x00, 0x00, 0x05, 0xa9, 0x06, 0x14, 0x10, 0x26, 0x00, 0x4c, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x5b, 0x01, 0xa2, 0x00, 0x00, 0xff, 0xff, 0x00, 0x35,
+ 0x00, 0x00, 0x04, 0x07, 0x04, 0x60, 0x10, 0x06, 0x00, 0x5b, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x05, 0x3f, 0x06, 0x14, 0x10, 0x26,
+ 0x00, 0x5b, 0x00, 0x00, 0x10, 0x07, 0x00, 0x4c, 0x03, 0xec, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x06, 0x8a, 0x06, 0x14, 0x10, 0x26,
+ 0x00, 0x5b, 0x00, 0x00, 0x10, 0x27, 0x00, 0x4c, 0x03, 0xec, 0x00, 0x00,
+ 0x10, 0x07, 0x00, 0x4c, 0x05, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0xad,
+ 0x00, 0x00, 0x01, 0x54, 0x06, 0x14, 0x10, 0x06, 0x00, 0x4f, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x46, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0xeb,
+ 0x06, 0x14, 0x10, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x06, 0x67, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x50, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x6c, 0x00, 0x00, 0x08, 0x8b, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x16, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x29, 0x01, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x01, 0x33, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x23, 0x03, 0x11, 0x23, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x05, 0x96, 0x01, 0x87, 0x01, 0x6d, 0xfe, 0x91, 0xfe, 0x7b,
+ 0xfd, 0xcb, 0xfe, 0x7b, 0xfe, 0x91, 0x01, 0x6d, 0x01, 0x87, 0x01, 0x75,
+ 0xdc, 0x01, 0x16, 0x01, 0x02, 0xfe, 0xfe, 0xfe, 0xea, 0xdc, 0xb5, 0xdc,
+ 0xfe, 0xea, 0xfe, 0xfe, 0x01, 0x02, 0x01, 0x16, 0x05, 0xd5, 0xfe, 0x97,
+ 0xfe, 0x80, 0xfe, 0x7e, 0xfe, 0x96, 0x01, 0x6a, 0x01, 0x82, 0x01, 0x80,
+ 0x01, 0x69, 0xfa, 0xd1, 0x01, 0x18, 0x01, 0x2e, 0x01, 0x2c, 0x01, 0x17,
+ 0xfb, 0x77, 0x04, 0x89, 0xfe, 0xe9, 0xfe, 0xd4, 0xfe, 0xd2, 0xfe, 0xe8,
+ 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x1f, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x1a, 0x00, 0x23, 0x00, 0x00, 0x01, 0x15, 0x33, 0x20, 0x00, 0x11,
+ 0x10, 0x00, 0x21, 0x23, 0x15, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x03, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x03, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x29, 0x01, 0x01, 0x6b, 0xdb, 0x01, 0x16, 0x01,
+ 0x03, 0xfe, 0xfd, 0xfe, 0xea, 0xdb, 0x41, 0xe6, 0xd8, 0xd9, 0xe5, 0x41,
+ 0x46, 0x8f, 0x84, 0x84, 0x8f, 0xfc, 0x01, 0x75, 0x01, 0x87, 0x01, 0x6d,
+ 0xfe, 0x91, 0xfe, 0x7b, 0xfe, 0x8b, 0x01, 0x59, 0xb3, 0x01, 0x18, 0x01,
+ 0x2e, 0x01, 0x2c, 0x01, 0x17, 0xb2, 0xc2, 0xcf, 0xd0, 0xc3, 0x02, 0x9e,
+ 0xfd, 0xe8, 0x81, 0x8c, 0x8a, 0x81, 0x01, 0xde, 0xfe, 0x97, 0xfe, 0x80,
+ 0xfe, 0x7e, 0xfe, 0x96, 0x00, 0x05, 0x00, 0x6c, 0x00, 0x00, 0x08, 0x8b,
+ 0x05, 0xd5, 0x00, 0x11, 0x00, 0x1a, 0x00, 0x28, 0x00, 0x31, 0x00, 0x43,
+ 0x00, 0x00, 0x01, 0x15, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01,
+ 0x15, 0x33, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x03, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x2b, 0x01, 0x13, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x29, 0x01, 0x20, 0x00, 0x11, 0x10, 0x00, 0x01, 0x11, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x13, 0x35, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x33, 0x35, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x04, 0xd6,
+ 0x41, 0xe7, 0xd8, 0xd9, 0xe6, 0x41, 0xdc, 0x01, 0x16, 0x01, 0x02, 0xfe,
+ 0xfe, 0xfe, 0xea, 0xdc, 0x47, 0x8f, 0x84, 0x84, 0x8f, 0x47, 0xc0, 0xfd,
+ 0xcb, 0xfe, 0x7b, 0xfe, 0x91, 0x01, 0x6d, 0x01, 0x87, 0x02, 0x35, 0x01,
+ 0x87, 0x01, 0x6d, 0xfe, 0x91, 0xfd, 0x06, 0x47, 0x8f, 0x84, 0x84, 0x8f,
+ 0x47, 0xdc, 0xfe, 0xea, 0xfe, 0xfe, 0x01, 0x02, 0x01, 0x16, 0xdc, 0x41,
+ 0xe6, 0xd9, 0xd8, 0xe7, 0x05, 0x2f, 0xb2, 0xc2, 0xcf, 0xd0, 0xc3, 0xb3,
+ 0x01, 0x18, 0x01, 0x2e, 0x01, 0x2c, 0x01, 0x17, 0xfc, 0xb0, 0x81, 0x8c,
+ 0x8a, 0x81, 0xfc, 0x09, 0x01, 0x6a, 0x01, 0x82, 0x01, 0x80, 0x01, 0x69,
+ 0xfe, 0x97, 0xfe, 0x80, 0xfe, 0x7e, 0xfe, 0x96, 0x01, 0xdf, 0x02, 0x18,
+ 0x81, 0x8a, 0x8c, 0x81, 0x02, 0x9e, 0xb2, 0xfe, 0xe9, 0xfe, 0xd4, 0xfe,
+ 0xd2, 0xfe, 0xe8, 0xb3, 0xc3, 0xd0, 0xcf, 0xc2, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x10, 0x06, 0x01, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90, 0x04, 0x7b, 0x10, 0x06,
+ 0x02, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x67, 0xfe, 0x56, 0x04, 0xa4,
+ 0x05, 0xf0, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x36, 0x37, 0x11, 0x23, 0x11, 0x06,
+ 0x07, 0x06, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x04,
+ 0xa3, 0x5c, 0xd0, 0x75, 0xe6, 0xf5, 0xf5, 0xe6, 0x75, 0xd0, 0x5c, 0xb5,
+ 0x0a, 0x0b, 0x6b, 0x76, 0xfe, 0xce, 0xfe, 0xa2, 0x01, 0x5e, 0x01, 0x32,
+ 0x78, 0xd6, 0x05, 0x62, 0xd5, 0x5f, 0x5e, 0xfe, 0xc7, 0xfe, 0xd8, 0xfe,
+ 0xd9, 0xfe, 0xc7, 0x5e, 0x5f, 0xfd, 0x10, 0x01, 0xb9, 0x04, 0x04, 0x24,
+ 0x01, 0x9f, 0x01, 0x67, 0x01, 0x68, 0x01, 0x9f, 0x47, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x4e, 0xff, 0xe3, 0x06, 0x9c, 0x05, 0xf0, 0x10, 0x27,
+ 0x07, 0x79, 0x02, 0xe3, 0x00, 0x00, 0x10, 0x27, 0x00, 0x75, 0x04, 0x17,
+ 0xfd, 0x64, 0x10, 0x06, 0x07, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x09, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c,
+ 0xd2, 0x04, 0x49, 0xfb, 0xb7, 0xd2, 0x6c, 0x02, 0x55, 0x5a, 0x01, 0x89,
+ 0x78, 0xe9, 0xaa, 0xe9, 0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x79,
+ 0x00, 0x00, 0x04, 0x8e, 0x05, 0xdc, 0x00, 0x09, 0x00, 0x00, 0x01, 0x33,
+ 0x01, 0x07, 0x27, 0x11, 0x23, 0x11, 0x07, 0x27, 0x02, 0xdc, 0x51, 0x01,
+ 0x61, 0x6c, 0xd1, 0x99, 0xd3, 0x6c, 0x05, 0xdc, 0xfe, 0x76, 0x78, 0xea,
+ 0xfb, 0x3c, 0x04, 0xc4, 0xea, 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x09, 0x00, 0x00, 0x01, 0x15,
+ 0x01, 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x05, 0xae, 0xfe, 0x9f,
+ 0x6c, 0xd1, 0xfb, 0xb7, 0x04, 0x49, 0xd1, 0x6c, 0x02, 0xaf, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0xaa, 0xe9, 0x78, 0x00, 0x00, 0x00, 0x01, 0x01, 0x79,
+ 0xff, 0xf9, 0x04, 0x8e, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x05, 0x23,
+ 0x01, 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17, 0x03, 0x2d, 0x51, 0xfe,
+ 0x9d, 0x6c, 0xd3, 0x99, 0xd1, 0x6c, 0x07, 0x01, 0x8a, 0x78, 0xea, 0x04,
+ 0xc4, 0xfb, 0x3c, 0xea, 0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21,
+ 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x03, 0x5c, 0xd1, 0x6c, 0x01,
+ 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfc, 0xa4, 0xd2, 0x6c, 0x02, 0x55, 0x5a,
+ 0x01, 0x89, 0x78, 0xe9, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78,
+ 0xe9, 0xe9, 0x78, 0x00, 0x00, 0x01, 0x01, 0x79, 0xff, 0xef, 0x04, 0x8e,
+ 0x05, 0xdc, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x33, 0x01, 0x07, 0x27, 0x11,
+ 0x37, 0x17, 0x01, 0x23, 0x01, 0x37, 0x17, 0x11, 0x07, 0x27, 0x02, 0xdc,
+ 0x51, 0x01, 0x61, 0x6c, 0xd1, 0xd1, 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9d,
+ 0x6c, 0xd3, 0xd3, 0x6c, 0x05, 0xdc, 0xfe, 0x76, 0x78, 0xea, 0xfc, 0x43,
+ 0xea, 0x78, 0xfe, 0x76, 0x01, 0x8a, 0x78, 0xea, 0x03, 0xbd, 0xea, 0x78,
+ 0x00, 0x01, 0x01, 0x03, 0x00, 0x34, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x37, 0x21, 0x15, 0x21, 0x01, 0x07, 0x01, 0x11, 0x23,
+ 0x01, 0x03, 0x39, 0x01, 0xf4, 0xfe, 0xd7, 0x03, 0x08, 0x6c, 0xfc, 0xf8,
+ 0x98, 0x04, 0x74, 0x3f, 0xa9, 0xfc, 0xa2, 0x78, 0x03, 0x5e, 0xfe, 0xb6,
+ 0x00, 0x01, 0x01, 0x03, 0x00, 0x34, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x17, 0x11, 0x23, 0x11, 0x01, 0x27, 0x01, 0x21, 0x35,
+ 0x04, 0xd6, 0x39, 0x98, 0xfc, 0xf8, 0x6c, 0x03, 0x08, 0xfe, 0xd7, 0x04,
+ 0xb3, 0x3f, 0xfd, 0xd4, 0x01, 0x4a, 0xfc, 0xa2, 0x78, 0x03, 0x5e, 0xa9,
+ 0x00, 0x01, 0x01, 0x03, 0x00, 0x34, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x09,
+ 0x00, 0x00, 0x25, 0x07, 0x21, 0x35, 0x21, 0x01, 0x37, 0x01, 0x11, 0x33,
+ 0x05, 0x0f, 0x39, 0xfe, 0x0c, 0x01, 0x29, 0xfc, 0xf8, 0x6c, 0x03, 0x08,
+ 0x98, 0x73, 0x3f, 0xa9, 0x03, 0x5e, 0x78, 0xfc, 0xa2, 0x01, 0x4a, 0x00,
+ 0x00, 0x01, 0x01, 0x03, 0x00, 0x34, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x09,
+ 0x00, 0x00, 0x25, 0x27, 0x11, 0x33, 0x11, 0x01, 0x17, 0x01, 0x21, 0x15,
+ 0x01, 0x3c, 0x39, 0x98, 0x03, 0x08, 0x6c, 0xfc, 0xf8, 0x01, 0x29, 0x34,
+ 0x3f, 0x02, 0x2c, 0xfe, 0xb6, 0x03, 0x5e, 0x78, 0xfc, 0xa2, 0xa9, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x03, 0x27, 0x13, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01,
+ 0x17, 0x07, 0x21, 0x13, 0x17, 0x03, 0x21, 0x15, 0x03, 0xd5, 0xb4, 0x85,
+ 0x88, 0xfe, 0x32, 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x02,
+ 0x27, 0xb4, 0x85, 0x88, 0x01, 0x71, 0x02, 0x2d, 0xfe, 0xa5, 0x55, 0x01,
+ 0x06, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x01, 0x5b,
+ 0x55, 0xfe, 0xfa, 0xaa, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x11, 0x00, 0x00, 0x01, 0x13, 0x17, 0x03, 0x21, 0x27,
+ 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x03, 0x27, 0x13, 0x21, 0x35,
+ 0x02, 0x33, 0xb4, 0x86, 0x88, 0x01, 0xcd, 0xd1, 0x6c, 0x01, 0x61, 0xfe,
+ 0x9f, 0x6c, 0xd1, 0xfd, 0xda, 0xb4, 0x86, 0x88, 0xfe, 0x8f, 0x02, 0xd7,
+ 0x01, 0x5b, 0x55, 0xfe, 0xfa, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77,
+ 0x78, 0xe9, 0xfe, 0xa5, 0x55, 0x01, 0x06, 0xaa, 0x00, 0x01, 0x00, 0x27,
+ 0x00, 0xd3, 0x05, 0xf5, 0x03, 0x50, 0x00, 0x34, 0x00, 0x00, 0x01, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x11, 0x23, 0x11, 0x37,
+ 0x21, 0x15, 0x05, 0x01, 0xbc, 0x1f, 0x2b, 0x24, 0x33, 0x2f, 0x28, 0x2b,
+ 0x3f, 0x13, 0x1f, 0x36, 0x35, 0x46, 0x43, 0x4f, 0x52, 0x40, 0x49, 0x32,
+ 0x36, 0x1f, 0x8e, 0x13, 0x1f, 0x1e, 0x2d, 0x25, 0x32, 0x30, 0x27, 0x2b,
+ 0x20, 0x20, 0x13, 0x1b, 0x39, 0x2d, 0x4e, 0x40, 0x52, 0x4f, 0x43, 0x46,
+ 0x35, 0x90, 0x98, 0x38, 0x01, 0xf5, 0xfe, 0xd7, 0x01, 0xf4, 0x21, 0x15,
+ 0x13, 0x13, 0x15, 0x46, 0x30, 0x4f, 0x3c, 0x3a, 0x22, 0x20, 0x20, 0x25,
+ 0x37, 0x3c, 0x4f, 0x41, 0x30, 0x23, 0x21, 0x17, 0x13, 0x13, 0x14, 0x24,
+ 0x23, 0x30, 0x49, 0x42, 0x35, 0x27, 0x20, 0x20, 0x22, 0x3a, 0xa0, 0xfe,
+ 0xb6, 0x02, 0x2c, 0x3f, 0xa9, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x13,
+ 0x00, 0xd3, 0x05, 0xe1, 0x03, 0x50, 0x00, 0x34, 0x00, 0x00, 0x01, 0x37,
+ 0x25, 0x35, 0x21, 0x17, 0x11, 0x23, 0x11, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x27, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x04, 0x4d, 0x90, 0xfe, 0xd7, 0x01, 0xf4, 0x39, 0x98,
+ 0x90, 0x35, 0x47, 0x42, 0x4f, 0x52, 0x40, 0x4e, 0x2e, 0x38, 0x1c, 0x13,
+ 0x1f, 0x21, 0x2a, 0x28, 0x2f, 0x33, 0x25, 0x2d, 0x1d, 0x20, 0x13, 0x8d,
+ 0x1e, 0x36, 0x32, 0x4a, 0x40, 0x52, 0x4f, 0x42, 0x47, 0x35, 0x36, 0x1e,
+ 0x13, 0x3f, 0x2b, 0x28, 0x30, 0x32, 0x25, 0x2a, 0x01, 0xf4, 0xa0, 0x01,
+ 0xa9, 0x3f, 0xfd, 0xd4, 0x01, 0x4a, 0xa0, 0x3a, 0x22, 0x20, 0x20, 0x27,
+ 0x35, 0x42, 0x49, 0x30, 0x23, 0x24, 0x14, 0x13, 0x13, 0x17, 0x21, 0x23,
+ 0x30, 0x41, 0x4f, 0x3c, 0x37, 0x25, 0x20, 0x20, 0x22, 0x3a, 0x3c, 0x4f,
+ 0x30, 0x46, 0x15, 0x13, 0x13, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x11, 0x00, 0x00, 0x13, 0x01,
+ 0x17, 0x07, 0x33, 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x17, 0x07, 0x01,
+ 0x23, 0x17, 0x07, 0x01, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0xd8, 0x01, 0x3e,
+ 0x6c, 0xd2, 0x02, 0x99, 0xfd, 0x67, 0xd2, 0x6c, 0xfe, 0xc2, 0xd8, 0xd2,
+ 0x6c, 0xfe, 0x9e, 0x02, 0xaf, 0x01, 0x89, 0x78, 0xe9, 0x01, 0x61, 0x78,
+ 0xe9, 0xaa, 0xe9, 0x78, 0x01, 0x61, 0xe9, 0x78, 0x01, 0x89, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x7a, 0x00, 0x00, 0x04, 0x90, 0x05, 0xdc, 0x00, 0x11,
+ 0x00, 0x00, 0x09, 0x01, 0x07, 0x27, 0x15, 0x01, 0x07, 0x27, 0x11, 0x23,
+ 0x11, 0x07, 0x27, 0x01, 0x35, 0x07, 0x27, 0x01, 0x03, 0x2d, 0x01, 0x62,
+ 0x6c, 0xd2, 0x01, 0x3e, 0x6c, 0xd2, 0x99, 0xd1, 0x6c, 0x01, 0x3d, 0xd1,
+ 0x6c, 0x01, 0x61, 0x05, 0xdc, 0xfe, 0x76, 0x78, 0xea, 0xf0, 0xfe, 0x9e,
+ 0x78, 0xea, 0xfd, 0x1c, 0x02, 0xe4, 0xea, 0x78, 0x01, 0x62, 0xf0, 0xea,
+ 0x78, 0x01, 0x8a, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x11, 0x00, 0x00, 0x09, 0x01, 0x27, 0x37, 0x23, 0x01,
+ 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x01, 0x33, 0x27, 0x37, 0x01,
+ 0x05, 0xae, 0xfe, 0x9f, 0x6c, 0xd1, 0xd8, 0xfe, 0xc3, 0x6c, 0xd1, 0xfd,
+ 0x67, 0x02, 0x99, 0xd1, 0x6c, 0x01, 0x3d, 0xd8, 0xd1, 0x6c, 0x01, 0x61,
+ 0x02, 0x55, 0xfe, 0x77, 0x78, 0xe9, 0xfe, 0x9f, 0x78, 0xe9, 0xaa, 0xe9,
+ 0x78, 0xfe, 0x9f, 0xe9, 0x78, 0xfe, 0x77, 0x00, 0x00, 0x01, 0x01, 0x7a,
+ 0xff, 0xf9, 0x04, 0x90, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x05, 0x01,
+ 0x37, 0x17, 0x35, 0x01, 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17, 0x01,
+ 0x15, 0x37, 0x17, 0x01, 0x02, 0xde, 0xfe, 0x9d, 0x6c, 0xd3, 0xfe, 0xc1,
+ 0x6c, 0xd3, 0x98, 0xd1, 0x6c, 0xfe, 0xc3, 0xd1, 0x6c, 0xfe, 0x9f, 0x07,
+ 0x01, 0x8a, 0x78, 0xea, 0xf0, 0x01, 0x62, 0x78, 0xea, 0x02, 0xe4, 0xfd,
+ 0x1c, 0xea, 0x78, 0xfe, 0x9e, 0xf0, 0xea, 0x78, 0xfe, 0x76, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x0e,
+ 0x00, 0x00, 0x13, 0x35, 0x01, 0x17, 0x07, 0x21, 0x01, 0x17, 0x09, 0x01,
+ 0x07, 0x01, 0x21, 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x02, 0x9f,
+ 0x01, 0x3e, 0x6c, 0xfe, 0xe2, 0x01, 0x1e, 0x6c, 0xfe, 0xc2, 0xfd, 0x61,
+ 0xd2, 0x6c, 0x02, 0x55, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x01, 0x61, 0x78,
+ 0xfe, 0xc2, 0xfe, 0xc2, 0x78, 0x01, 0x61, 0xe9, 0x78, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x0e,
+ 0x00, 0x00, 0x09, 0x01, 0x27, 0x37, 0x21, 0x01, 0x27, 0x09, 0x01, 0x37,
+ 0x01, 0x21, 0x27, 0x37, 0x01, 0x05, 0xae, 0xfe, 0x9f, 0x6c, 0xd1, 0xfd,
+ 0x61, 0xfe, 0xc2, 0x6c, 0x01, 0x1f, 0xfe, 0xe1, 0x6c, 0x01, 0x3e, 0x02,
+ 0x9f, 0xd1, 0x6c, 0x01, 0x61, 0x02, 0x55, 0xfe, 0x77, 0x78, 0xe9, 0xfe,
+ 0x9f, 0x78, 0x01, 0x3e, 0x01, 0x3e, 0x78, 0xfe, 0x9f, 0xe9, 0x78, 0xfe,
+ 0x77, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0,
+ 0x04, 0x38, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x11, 0x23, 0x05, 0x06, 0xfc, 0x50,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x03, 0xb0, 0x99, 0x99,
+ 0x02, 0x2d, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x01,
+ 0x59, 0xfc, 0xa4, 0x00, 0x00, 0x01, 0x01, 0x7a, 0x00, 0x00, 0x04, 0x8e,
+ 0x05, 0xdc, 0x00, 0x0d, 0x00, 0x00, 0x25, 0x11, 0x07, 0x27, 0x01, 0x33,
+ 0x01, 0x07, 0x27, 0x11, 0x21, 0x15, 0x21, 0x35, 0x02, 0xb8, 0xd1, 0x6c,
+ 0x01, 0x61, 0x51, 0x01, 0x61, 0x6c, 0xd1, 0x01, 0x37, 0xfc, 0xfa, 0xaa,
+ 0x04, 0x1a, 0xea, 0x78, 0x01, 0x8a, 0xfe, 0x76, 0x78, 0xea, 0xfb, 0xe6,
+ 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x04, 0xb2, 0xfc, 0x50,
+ 0x99, 0x99, 0x03, 0xb0, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0x02,
+ 0x2d, 0xfe, 0xa7, 0x03, 0x5c, 0xfe, 0xa7, 0xe9, 0x78, 0xfe, 0x77, 0x5a,
+ 0xfe, 0x77, 0x78, 0x00, 0x00, 0x01, 0x01, 0x7a, 0xff, 0xf9, 0x04, 0x8e,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x15, 0x21,
+ 0x11, 0x37, 0x17, 0x01, 0x23, 0x01, 0x37, 0x17, 0x02, 0xb8, 0xfe, 0xca,
+ 0x03, 0x06, 0xfe, 0xc9, 0xd1, 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9f, 0x6c,
+ 0xd1, 0x05, 0x2b, 0xaa, 0xaa, 0xfb, 0xe6, 0xea, 0x78, 0xfe, 0x76, 0x01,
+ 0x8a, 0x78, 0xea, 0x00, 0x00, 0x01, 0x01, 0x7a, 0x00, 0x00, 0x04, 0x8e,
+ 0x05, 0xdc, 0x00, 0x13, 0x00, 0x00, 0x01, 0x37, 0x17, 0x01, 0x21, 0x15,
+ 0x21, 0x35, 0x21, 0x01, 0x37, 0x17, 0x11, 0x07, 0x27, 0x01, 0x33, 0x01,
+ 0x07, 0x27, 0x03, 0x51, 0xd1, 0x6c, 0xfe, 0x9f, 0x01, 0x5b, 0xfc, 0xfa,
+ 0x01, 0x5a, 0xfe, 0x9f, 0x6c, 0xd1, 0xd1, 0x6c, 0x01, 0x61, 0x51, 0x01,
+ 0x61, 0x6c, 0xd1, 0x01, 0xc2, 0xea, 0x78, 0xfe, 0x76, 0xaa, 0xaa, 0x01,
+ 0x8a, 0x78, 0xea, 0x03, 0x02, 0xea, 0x78, 0x01, 0x8a, 0xfe, 0x76, 0x78,
+ 0xea, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0x9f,
+ 0x04, 0x86, 0x00, 0x25, 0x00, 0x00, 0x01, 0x35, 0x32, 0x17, 0x16, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x21, 0x17,
+ 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x20, 0x37, 0x36, 0x37, 0x3e,
+ 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x04, 0x91, 0x38, 0x2f,
+ 0x2d, 0x2a, 0x27, 0x28, 0x26, 0x29, 0x23, 0x34, 0x2c, 0x1d, 0xfc, 0xa7,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x01, 0xaa, 0x01, 0xa9,
+ 0x14, 0x16, 0x11, 0x10, 0x12, 0x11, 0x11, 0x11, 0x16, 0x14, 0x03, 0xdc,
+ 0xaa, 0x16, 0x15, 0x2d, 0x29, 0x6f, 0x3d, 0x3c, 0x6a, 0x2e, 0x28, 0x1a,
+ 0x16, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x0a, 0x0a,
+ 0x12, 0x11, 0x31, 0x1a, 0x1b, 0x2e, 0x14, 0x12, 0x0a, 0x0a, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x6a, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x86, 0x00, 0x29,
+ 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x21, 0x27, 0x37, 0x01, 0x15,
+ 0x01, 0x27, 0x37, 0x21, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x01, 0x77, 0x18, 0x14,
+ 0x15, 0x12, 0x10, 0x09, 0x09, 0x09, 0x0b, 0x0e, 0x12, 0x15, 0x14, 0x18,
+ 0x03, 0x3b, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfc, 0xc5,
+ 0x3a, 0x2c, 0x35, 0x23, 0x28, 0x13, 0x14, 0x14, 0x15, 0x26, 0x2b, 0x2d,
+ 0x2f, 0x37, 0x03, 0xdc, 0x0a, 0x0a, 0x12, 0x11, 0x1a, 0x17, 0x1b, 0x1a,
+ 0x17, 0x1c, 0x0f, 0x12, 0x0a, 0x0a, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0x16, 0x1a, 0x28, 0x2e, 0x34, 0x36, 0x3c, 0x3d, 0x36,
+ 0x39, 0x29, 0x2d, 0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0x9f, 0x04, 0x86, 0x00, 0x18, 0x00, 0x3e, 0x00, 0x00,
+ 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x15, 0x07, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x2b, 0x01, 0x15, 0x23, 0x35, 0x21, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x04, 0x1c, 0x75, 0x18, 0x14, 0x16, 0x11, 0x10, 0x09,
+ 0x09, 0x09, 0x09, 0x10, 0x11, 0x16, 0x14, 0x30, 0x14, 0x16, 0x11, 0x0e,
+ 0x0b, 0x09, 0x98, 0x14, 0x14, 0x27, 0x2b, 0x2c, 0x2f, 0x38, 0x3b, 0x2c,
+ 0x34, 0x23, 0x29, 0x12, 0x14, 0x14, 0x14, 0x27, 0x2a, 0x2d, 0x2f, 0x38,
+ 0x75, 0x98, 0xfd, 0xd2, 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2,
+ 0x02, 0xd7, 0x0a, 0x0a, 0x12, 0x11, 0x1a, 0x17, 0x1a, 0x1b, 0x17, 0x1a,
+ 0x11, 0x12, 0x0a, 0x0a, 0x0a, 0x0a, 0x12, 0x0f, 0x1c, 0x17, 0x1b, 0x82,
+ 0x82, 0x3d, 0x36, 0x39, 0x29, 0x2d, 0x15, 0x16, 0x16, 0x1a, 0x28, 0x2e,
+ 0x34, 0x36, 0x3d, 0x3c, 0x36, 0x39, 0x29, 0x2d, 0x15, 0x16, 0xdc, 0xdc,
+ 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x6a, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x86, 0x00, 0x18,
+ 0x00, 0x3e, 0x00, 0x00, 0x01, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x29, 0x01, 0x27, 0x37, 0x01, 0x15, 0x01,
+ 0x27, 0x37, 0x21, 0x15, 0x23, 0x35, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x01, 0xec, 0x09, 0x0b, 0x0e,
+ 0x11, 0x16, 0x13, 0x31, 0x14, 0x15, 0x12, 0x10, 0x09, 0x09, 0x09, 0x09,
+ 0x10, 0x12, 0x15, 0x14, 0x18, 0x01, 0x0d, 0x02, 0x2e, 0xd1, 0x6c, 0x01,
+ 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfd, 0xd2, 0x98, 0x75, 0x37, 0x2f, 0x2d,
+ 0x2b, 0x26, 0x15, 0x14, 0x14, 0x13, 0x28, 0x23, 0x35, 0x2c, 0x3a, 0x38,
+ 0x2f, 0x2d, 0x2a, 0x27, 0x15, 0x13, 0x02, 0xd7, 0x82, 0x1b, 0x17, 0x1c,
+ 0x0f, 0x12, 0x0a, 0x0a, 0x0a, 0x0a, 0x12, 0x11, 0x1a, 0x17, 0x1b, 0x1a,
+ 0x17, 0x1a, 0x11, 0x12, 0x0a, 0x0a, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0xdc, 0xdc, 0x16, 0x15, 0x2d, 0x29, 0x39, 0x36, 0x3c,
+ 0x3d, 0x36, 0x34, 0x2e, 0x28, 0x1a, 0x16, 0x16, 0x15, 0x2d, 0x29, 0x39,
+ 0x36, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x58, 0x00, 0x00, 0x01, 0x23, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x32, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x32, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x3b, 0x01, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x5f, 0x09, 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x09, 0x2b,
+ 0x21, 0x1f, 0x20, 0x0a, 0x15, 0x18, 0x16, 0x09, 0x09, 0x05, 0x0e, 0x1d,
+ 0x1e, 0x22, 0x23, 0x28, 0x2b, 0x21, 0x23, 0x1d, 0x1d, 0x0e, 0x04, 0x09,
+ 0x09, 0x16, 0x18, 0x16, 0x09, 0x23, 0x1d, 0x23, 0x28, 0x09, 0xd1, 0x6c,
+ 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0x09, 0x0c, 0x0a, 0x0c, 0x09, 0x1c,
+ 0x24, 0x23, 0x51, 0x22, 0x24, 0x1c, 0x1e, 0x0e, 0x04, 0x09, 0x09, 0x0b,
+ 0x0a, 0x19, 0x0a, 0x0c, 0x09, 0x08, 0x05, 0x0d, 0x1f, 0x1c, 0x24, 0x22,
+ 0x51, 0x23, 0x24, 0x1c, 0x09, 0x0b, 0x0a, 0x02, 0x2d, 0xe9, 0x78, 0x01,
+ 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x12, 0x12, 0x24, 0x0a, 0x0c, 0x0c,
+ 0x0a, 0x0c, 0x0d, 0x2d, 0x23, 0x25, 0x11, 0x12, 0x12, 0x14, 0x22, 0x26,
+ 0x2a, 0x0d, 0x0c, 0x0a, 0x0c, 0x0c, 0x0a, 0x27, 0x0f, 0x12, 0xe9, 0x78,
+ 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0x06, 0x06, 0x0a, 0x22, 0x14,
+ 0x12, 0x12, 0x14, 0x22, 0x26, 0x2a, 0x0d, 0x0c, 0x0a, 0x06, 0x06, 0x06,
+ 0x06, 0x0a, 0x09, 0x10, 0x2a, 0x26, 0x22, 0x14, 0x12, 0x12, 0x14, 0x22,
+ 0x0a, 0x06, 0x06, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xbe, 0x05, 0xaf,
+ 0x04, 0x46, 0x00, 0x17, 0x00, 0x00, 0x25, 0x27, 0x13, 0x21, 0x17, 0x07,
+ 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x13, 0x17, 0x03, 0x21, 0x27, 0x37,
+ 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x02, 0xc2, 0x90, 0x64, 0xfe, 0xc0,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x01, 0x78, 0x79, 0x90,
+ 0x65, 0x01, 0x40, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe,
+ 0x88, 0xbe, 0x3a, 0x01, 0x35, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89,
+ 0x78, 0xe9, 0x01, 0x6f, 0x3a, 0xfe, 0xcb, 0xe9, 0x78, 0xfe, 0x77, 0x5a,
+ 0xfe, 0x77, 0x78, 0xe9, 0x00, 0x01, 0x01, 0x0c, 0xff, 0xfc, 0x05, 0x0e,
+ 0x05, 0xd8, 0x00, 0x0d, 0x00, 0x00, 0x09, 0x01, 0x13, 0x17, 0x03, 0x01,
+ 0x03, 0x37, 0x17, 0x01, 0x27, 0x01, 0x37, 0x13, 0x03, 0xa2, 0xfd, 0x6a,
+ 0x8e, 0x96, 0x55, 0x02, 0x96, 0xae, 0xf2, 0x58, 0xfe, 0x67, 0x50, 0xfe,
+ 0xe1, 0x7d, 0xab, 0x04, 0x08, 0xfe, 0x58, 0x03, 0x78, 0x1d, 0xfd, 0xee,
+ 0x01, 0xa8, 0xfb, 0xb8, 0xbe, 0x8b, 0xfe, 0xc0, 0x10, 0x01, 0xc8, 0x62,
+ 0xfe, 0xf1, 0x00, 0x00, 0x00, 0x01, 0x01, 0x37, 0x00, 0x00, 0x04, 0x89,
+ 0x05, 0xf2, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x17,
+ 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x04, 0x88, 0x99, 0xfe, 0x44, 0xd2,
+ 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x04, 0x91, 0xfb, 0x6f, 0x03,
+ 0xe7, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x81, 0x00, 0x00, 0x04, 0xd2, 0x05, 0xf2, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21,
+ 0x11, 0x23, 0x01, 0x81, 0x02, 0x55, 0xd2, 0x6c, 0x01, 0x62, 0xfe, 0x9e,
+ 0x6c, 0xd2, 0xfe, 0x44, 0x99, 0x04, 0x91, 0xe9, 0x78, 0xfe, 0x77, 0x5a,
+ 0xfe, 0x77, 0x78, 0xe9, 0xfc, 0x19, 0x00, 0x00, 0x00, 0x01, 0x01, 0x37,
+ 0xff, 0xe3, 0x04, 0x89, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21,
+ 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x04, 0x88,
+ 0xfd, 0xab, 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x01, 0xbc,
+ 0x99, 0x01, 0x44, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9,
+ 0x03, 0xe7, 0x00, 0x00, 0x00, 0x01, 0x01, 0x81, 0xff, 0xe3, 0x04, 0xd2,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x27,
+ 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x01, 0x81, 0x99, 0x01, 0xbc, 0xd2,
+ 0x6c, 0x01, 0x62, 0xfe, 0x9e, 0x6c, 0xd2, 0x01, 0x44, 0x04, 0x91, 0xfc,
+ 0x19, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xad, 0xff, 0xf9, 0x05, 0x79, 0x04, 0xd4, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x37, 0x17, 0x01, 0x23, 0x01, 0x37, 0x17, 0x11,
+ 0x21, 0x35, 0x04, 0x3b, 0xd1, 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9e, 0x6c,
+ 0xd2, 0xfe, 0x0b, 0x04, 0xd4, 0xfc, 0x3d, 0xe9, 0x78, 0xfe, 0x77, 0x01,
+ 0x89, 0x78, 0xe9, 0x03, 0x19, 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x04, 0xb9, 0x05, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21,
+ 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x04, 0xb9,
+ 0xfc, 0x9d, 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x02, 0xca,
+ 0x99, 0x02, 0x2d, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9,
+ 0x02, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x28, 0x01, 0xa0, 0x05, 0xc2,
+ 0x05, 0x58, 0x00, 0x26, 0x00, 0x00, 0x01, 0x37, 0x17, 0x01, 0x23, 0x01,
+ 0x37, 0x17, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x23, 0x34, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x02, 0x00, 0xd1,
+ 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9d, 0x6c, 0xd3, 0x29, 0x29, 0x53, 0x51,
+ 0x63, 0x61, 0xe6, 0x62, 0x63, 0x51, 0x52, 0x29, 0x29, 0x99, 0x3b, 0x3b,
+ 0x36, 0x4e, 0x42, 0xac, 0x46, 0x4a, 0x39, 0x3a, 0x1f, 0x1e, 0x02, 0xb8,
+ 0xea, 0x78, 0xfe, 0x76, 0x01, 0x8a, 0x78, 0xea, 0x32, 0x7f, 0x70, 0x6b,
+ 0x5f, 0x56, 0x31, 0x2e, 0x2e, 0x31, 0x56, 0x5f, 0x6b, 0x70, 0x7f, 0x5d,
+ 0xa2, 0x42, 0x3b, 0x27, 0x21, 0x21, 0x23, 0x3f, 0x40, 0x53, 0x51, 0x5d,
+ 0x00, 0x01, 0x00, 0x47, 0x01, 0xa0, 0x05, 0xe0, 0x05, 0x58, 0x00, 0x26,
+ 0x00, 0x00, 0x01, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x22,
+ 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x23, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x1d, 0x01, 0x37,
+ 0x17, 0x01, 0x23, 0x01, 0x37, 0x04, 0x08, 0x1d, 0x20, 0x39, 0x3a, 0x4a,
+ 0x46, 0xab, 0x43, 0x4d, 0x36, 0x3b, 0x3c, 0x99, 0x29, 0x29, 0x53, 0x51,
+ 0x63, 0x61, 0xe6, 0x62, 0x63, 0x51, 0x52, 0x29, 0x29, 0xd3, 0x6c, 0xfe,
+ 0x9d, 0x51, 0xfe, 0xa0, 0x6c, 0x02, 0xb8, 0x32, 0x5d, 0x51, 0x53, 0x40,
+ 0x3f, 0x23, 0x21, 0x21, 0x27, 0x3b, 0x42, 0xa2, 0x5d, 0x7f, 0x70, 0x6b,
+ 0x5f, 0x56, 0x31, 0x2e, 0x2e, 0x31, 0x56, 0x5f, 0x6b, 0x70, 0x7f, 0x32,
+ 0xea, 0x78, 0xfe, 0x76, 0x01, 0x8a, 0x78, 0x00, 0x00, 0x02, 0x00, 0xc7,
+ 0x00, 0x34, 0x05, 0xac, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00,
+ 0x13, 0x35, 0x21, 0x15, 0x05, 0x37, 0x21, 0x15, 0x21, 0x01, 0x07, 0x01,
+ 0x11, 0x23, 0xc8, 0x04, 0xe4, 0xfb, 0x57, 0x39, 0x01, 0xf4, 0xfe, 0xd7,
+ 0x03, 0x08, 0x6c, 0xfc, 0xf8, 0x98, 0x05, 0x72, 0x63, 0x63, 0xfe, 0x3f,
+ 0xa9, 0xfc, 0xa2, 0x78, 0x03, 0x5e, 0xfe, 0xb6, 0x00, 0x02, 0x00, 0x64,
+ 0xff, 0xa1, 0x05, 0xa4, 0x05, 0x63, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x00,
+ 0x13, 0x35, 0x21, 0x27, 0x37, 0x01, 0x11, 0x33, 0x11, 0x23, 0x11, 0x01,
+ 0x27, 0x37, 0x01, 0x21, 0x17, 0x07, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11,
+ 0x01, 0x17, 0x07, 0x21, 0x65, 0x03, 0xaa, 0xd3, 0x6c, 0x01, 0x63, 0x99,
+ 0x99, 0xfe, 0x9d, 0x6c, 0xd3, 0x01, 0x95, 0xfc, 0x56, 0xd2, 0x6c, 0xfe,
+ 0x9e, 0x99, 0x99, 0x01, 0x62, 0x6c, 0xd2, 0x03, 0xaa, 0x01, 0x01, 0xaa,
+ 0xe8, 0x78, 0xfe, 0x78, 0x01, 0x4e, 0xfd, 0x08, 0x01, 0x50, 0xfe, 0x78,
+ 0x78, 0xe8, 0x02, 0x58, 0xe8, 0x78, 0x01, 0x88, 0xfe, 0xb0, 0x02, 0xf8,
+ 0xfe, 0xb2, 0x01, 0x88, 0x78, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xbd,
+ 0x00, 0x7f, 0x05, 0x7d, 0x05, 0x70, 0x00, 0x36, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x27, 0x26, 0x2f, 0x01, 0x11, 0x23, 0x11,
+ 0x37, 0x21, 0x15, 0x21, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0xcf, 0x3e, 0x1c, 0x1e, 0x3b, 0x3c,
+ 0x36, 0x4d, 0x43, 0xab, 0x46, 0x4a, 0x39, 0x3c, 0x3b, 0x1e, 0x1e, 0x3c,
+ 0x1f, 0x99, 0x39, 0x01, 0xf5, 0xfe, 0xd7, 0x1f, 0x51, 0x2b, 0x29, 0x29,
+ 0x2b, 0x51, 0x4b, 0x69, 0x5c, 0x78, 0x73, 0x61, 0x65, 0x4f, 0x51, 0x2b,
+ 0x29, 0x29, 0x29, 0x53, 0x04, 0x2b, 0x42, 0x51, 0x51, 0x5d, 0x5a, 0xa2,
+ 0x42, 0x3b, 0x27, 0x21, 0x21, 0x23, 0x3f, 0x42, 0xa2, 0x5a, 0x5d, 0x51,
+ 0x51, 0x42, 0x23, 0xfe, 0xb6, 0x02, 0x2c, 0x40, 0xaa, 0x23, 0x5a, 0x70,
+ 0x70, 0x7f, 0x7c, 0x70, 0x71, 0x59, 0x53, 0x34, 0x2e, 0x2e, 0x30, 0x57,
+ 0x59, 0x71, 0x70, 0x7c, 0x7f, 0x70, 0x6b, 0x5f, 0x00, 0x01, 0x00, 0x8d,
+ 0x00, 0x7f, 0x05, 0x4d, 0x05, 0x70, 0x00, 0x36, 0x00, 0x00, 0x01, 0x37,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3f,
+ 0x01, 0x21, 0x35, 0x21, 0x17, 0x11, 0x23, 0x11, 0x07, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e,
+ 0x01, 0x35, 0x34, 0x27, 0x26, 0x04, 0x3c, 0x6c, 0x52, 0x29, 0x29, 0x29,
+ 0x2b, 0x50, 0x50, 0x64, 0x62, 0x73, 0x77, 0x5d, 0x69, 0x4b, 0x50, 0x2b,
+ 0x2a, 0x2a, 0x2a, 0x51, 0x1f, 0xfe, 0xd7, 0x01, 0xf5, 0x39, 0x99, 0x1f,
+ 0x3c, 0x1e, 0x1e, 0x3b, 0x3c, 0x3a, 0x49, 0x47, 0xaa, 0x43, 0x4d, 0x36,
+ 0x3c, 0x3b, 0x1d, 0x1d, 0x04, 0x2b, 0x78, 0x5f, 0x6b, 0x70, 0x7f, 0x7c,
+ 0x70, 0x71, 0x59, 0x57, 0x30, 0x2e, 0x2e, 0x34, 0x53, 0x59, 0x71, 0x70,
+ 0x7c, 0x7f, 0x70, 0x70, 0x5a, 0x23, 0xaa, 0x40, 0xfd, 0xd4, 0x01, 0x4a,
+ 0x23, 0x42, 0x51, 0x51, 0x5d, 0x5a, 0xa2, 0x42, 0x3f, 0x23, 0x21, 0x21,
+ 0x27, 0x3b, 0x42, 0xa2, 0x5a, 0x5d, 0x51, 0x51, 0x00, 0x01, 0x00, 0x5a,
+ 0x02, 0x2d, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x06, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x15, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x04, 0x49,
+ 0x02, 0x2d, 0x82, 0x01, 0x89, 0x78, 0xe9, 0xaa, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x02, 0xd7, 0x00, 0x06, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x17, 0x07, 0x01, 0x5a, 0x05, 0x45, 0xfb, 0xb7, 0xd2, 0x6c,
+ 0xfe, 0x9e, 0x02, 0xd7, 0xaa, 0xe9, 0x78, 0x01, 0x89, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xb7, 0x00, 0x00, 0x04, 0x8e, 0x05, 0xdc, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x33, 0x01, 0x07, 0x27, 0x11, 0x23, 0x02, 0xb8, 0x75,
+ 0x01, 0x61, 0x6c, 0xd1, 0x99, 0x05, 0xdc, 0xfe, 0x76, 0x78, 0xea, 0xfb,
+ 0x3c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x79, 0x00, 0x00, 0x03, 0x51,
+ 0x05, 0xdc, 0x00, 0x06, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x07, 0x27,
+ 0x01, 0x03, 0x51, 0x99, 0xd3, 0x6c, 0x01, 0x63, 0x05, 0xdc, 0xfa, 0x24,
+ 0x04, 0xc4, 0xea, 0x78, 0x01, 0x8a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x02, 0x2d, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x06, 0x00, 0x00, 0x01, 0x21,
+ 0x35, 0x21, 0x27, 0x37, 0x01, 0x05, 0xae, 0xfa, 0xbb, 0x04, 0x49, 0xd1,
+ 0x6c, 0x01, 0x61, 0x02, 0x2d, 0xaa, 0xe9, 0x78, 0xfe, 0x77, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x02, 0xd7, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x35, 0x05, 0xae, 0xfe,
+ 0x9f, 0x6c, 0xd1, 0xfb, 0xb7, 0x02, 0xd7, 0x82, 0xfe, 0x77, 0x78, 0xe9,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xb7, 0x00, 0x00, 0x04, 0x8e,
+ 0x05, 0xdc, 0x00, 0x06, 0x00, 0x00, 0x21, 0x11, 0x33, 0x11, 0x37, 0x17,
+ 0x01, 0x02, 0xb8, 0x99, 0xd1, 0x6c, 0xfe, 0x9f, 0x05, 0xdc, 0xfb, 0x3c,
+ 0xea, 0x78, 0xfe, 0x76, 0x00, 0x01, 0x01, 0x79, 0x00, 0x00, 0x03, 0x51,
+ 0x05, 0xdc, 0x00, 0x06, 0x00, 0x00, 0x21, 0x23, 0x01, 0x37, 0x17, 0x11,
+ 0x33, 0x03, 0x51, 0x75, 0xfe, 0x9d, 0x6c, 0xd3, 0x99, 0x01, 0x8a, 0x78,
+ 0xea, 0x04, 0xc4, 0x00, 0xff, 0xff, 0x00, 0x5a, 0xff, 0xa0, 0x05, 0xaf,
+ 0x05, 0x64, 0x10, 0x27, 0x08, 0x6c, 0x00, 0x00, 0xfe, 0xd4, 0x10, 0x07,
+ 0x08, 0x6e, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6b,
+ 0xff, 0xf9, 0x05, 0x9c, 0x05, 0xdc, 0x10, 0x27, 0x08, 0x6f, 0x01, 0x0e,
+ 0x00, 0x00, 0x10, 0x07, 0x08, 0x6d, 0xfe, 0xf2, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x5a, 0xff, 0xa0, 0x05, 0xaf, 0x05, 0x64, 0x10, 0x27,
+ 0x08, 0x6e, 0x00, 0x00, 0xfe, 0xd4, 0x10, 0x07, 0x08, 0x6c, 0x00, 0x00,
+ 0x01, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0xff, 0xa0, 0x05, 0xa0,
+ 0x05, 0x64, 0x00, 0x11, 0x00, 0x00, 0x01, 0x03, 0x35, 0x01, 0x17, 0x07,
+ 0x21, 0x15, 0x21, 0x17, 0x07, 0x21, 0x15, 0x21, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x40, 0xe6, 0x01, 0x62, 0x6c, 0xd2, 0x04, 0x49, 0xfb, 0xb7, 0xc2,
+ 0xc2, 0x04, 0x49, 0xfb, 0xb7, 0xd2, 0x6c, 0xfe, 0x9e, 0x02, 0x82, 0x00,
+ 0xff, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0xaa, 0xd7, 0xd7, 0xaa, 0xe9, 0x78,
+ 0x01, 0x89, 0x5a, 0x00, 0x00, 0x01, 0x00, 0x6c, 0x00, 0x00, 0x05, 0x9d,
+ 0x05, 0xdc, 0x00, 0x11, 0x00, 0x00, 0x01, 0x13, 0x33, 0x01, 0x07, 0x27,
+ 0x11, 0x23, 0x11, 0x07, 0x27, 0x11, 0x23, 0x11, 0x07, 0x27, 0x01, 0x33,
+ 0x03, 0x04, 0xe5, 0x51, 0x01, 0x62, 0x6c, 0xd2, 0x99, 0xc1, 0xc2, 0x99,
+ 0xd1, 0x6c, 0x01, 0x61, 0x51, 0x04, 0xdc, 0x01, 0x00, 0xfe, 0x76, 0x78,
+ 0xea, 0xfb, 0x3c, 0x04, 0xc4, 0xd8, 0xd8, 0xfb, 0x3c, 0x04, 0xc4, 0xea,
+ 0x78, 0x01, 0x8a, 0x00, 0x00, 0x01, 0x00, 0x6a, 0xff, 0xa0, 0x05, 0xb0,
+ 0x05, 0x64, 0x00, 0x11, 0x00, 0x00, 0x01, 0x17, 0x15, 0x01, 0x27, 0x37,
+ 0x21, 0x35, 0x21, 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x01, 0x15,
+ 0x04, 0xca, 0xe5, 0xfe, 0x9f, 0x6c, 0xd1, 0xfb, 0xb7, 0x04, 0x49, 0xc1,
+ 0xc1, 0xfb, 0xb7, 0x04, 0x49, 0xd1, 0x6c, 0x01, 0x61, 0x02, 0x82, 0xff,
+ 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xaa, 0xd7, 0xd7, 0xaa, 0xe9, 0x78, 0xfe,
+ 0x77, 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6c, 0xff, 0xf9, 0x05, 0x9d,
+ 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x25, 0x03, 0x23, 0x01, 0x37, 0x17,
+ 0x11, 0x33, 0x11, 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17, 0x01, 0x23,
+ 0x03, 0x04, 0xe6, 0x51, 0xfe, 0x9f, 0x6c, 0xd1, 0x99, 0xc2, 0xc1, 0x99,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x51, 0xf9, 0xff, 0x00, 0x01, 0x8a, 0x78, 0xea,
+ 0x04, 0xc4, 0xfb, 0x3c, 0xd8, 0xd8, 0x04, 0xc4, 0xfb, 0x3c, 0xea, 0x78,
+ 0xfe, 0x76, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5a, 0x00, 0x0e, 0x05, 0xaf,
+ 0x04, 0xf6, 0x10, 0x27, 0x08, 0x9d, 0x00, 0x00, 0xff, 0x42, 0x10, 0x07,
+ 0x08, 0x98, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x5a,
+ 0x00, 0x0e, 0x05, 0xaf, 0x04, 0xf6, 0x10, 0x27, 0x08, 0x99, 0x00, 0x00,
+ 0xff, 0x42, 0x10, 0x07, 0x08, 0x9c, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x04,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x21, 0x07, 0x17, 0x21, 0x25, 0x07, 0x21,
+ 0x15, 0x21, 0x07, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17,
+ 0x07, 0x21, 0x37, 0x17, 0x07, 0x21, 0x15, 0x03, 0x92, 0xfd, 0xd6, 0x5e,
+ 0x5e, 0x01, 0xbd, 0x01, 0x08, 0x6d, 0x01, 0xdf, 0xfd, 0xe3, 0x69, 0x75,
+ 0x42, 0xfe, 0xee, 0x54, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x54, 0x01,
+ 0xfc, 0x69, 0x75, 0x42, 0x01, 0x33, 0x02, 0xeb, 0x69, 0x69, 0xd2, 0xd2,
+ 0x78, 0xca, 0x4b, 0x7f, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78,
+ 0x5d, 0xca, 0x4b, 0x7f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x5a,
+ 0x00, 0xc1, 0x05, 0xaf, 0x04, 0x43, 0x00, 0x17, 0x00, 0x1c, 0x00, 0x21,
+ 0x00, 0x00, 0x25, 0x27, 0x37, 0x23, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17,
+ 0x07, 0x21, 0x37, 0x17, 0x07, 0x33, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27,
+ 0x37, 0x21, 0x13, 0x07, 0x21, 0x37, 0x27, 0x29, 0x01, 0x07, 0x17, 0x21,
+ 0x02, 0xba, 0x7f, 0x37, 0x9e, 0x54, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c,
+ 0x54, 0x01, 0x32, 0x49, 0x7f, 0x38, 0x9e, 0x53, 0x6c, 0x01, 0x61, 0xfe,
+ 0x9f, 0x6c, 0x53, 0xfe, 0xce, 0x6c, 0x44, 0x01, 0x76, 0x5f, 0x5f, 0xfe,
+ 0x3e, 0xfe, 0x8a, 0x5e, 0x5e, 0x01, 0x32, 0xc1, 0x34, 0xac, 0x5d, 0x78,
+ 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0x5d, 0xe0, 0x34, 0xac, 0x5d, 0x78,
+ 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0x5d, 0x01, 0x4a, 0xd2, 0x69, 0x69,
+ 0x69, 0x69, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x21, 0x37, 0x27,
+ 0x21, 0x05, 0x37, 0x21, 0x35, 0x21, 0x37, 0x17, 0x07, 0x21, 0x27, 0x37,
+ 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x07, 0x27, 0x37, 0x21, 0x35, 0x02,
+ 0x77, 0x02, 0x29, 0x5f, 0x5f, 0xfe, 0x44, 0xfe, 0xf7, 0x6d, 0xfe, 0x21,
+ 0x02, 0x1d, 0x6a, 0x74, 0x41, 0x01, 0x11, 0x53, 0x6c, 0x01, 0x61, 0xfe,
+ 0x9f, 0x6c, 0x53, 0xfe, 0x05, 0x69, 0x76, 0x42, 0xfe, 0xcd, 0x02, 0x19,
+ 0x69, 0x69, 0xd2, 0xd2, 0x78, 0xca, 0x4b, 0x7f, 0x5d, 0x78, 0xfe, 0x77,
+ 0x5a, 0xfe, 0x77, 0x78, 0x5d, 0xca, 0x4b, 0x7f, 0x78, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x0e,
+ 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17,
+ 0x07, 0x21, 0x15, 0x21, 0x07, 0x01, 0x68, 0x04, 0x37, 0xfc, 0x35, 0x54,
+ 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x54, 0x03, 0xcb, 0xfb, 0xc9, 0x5e,
+ 0x02, 0x19, 0x78, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0x5d,
+ 0x78, 0x69, 0x00, 0x00, 0x00, 0x01, 0x01, 0x7a, 0x00, 0x00, 0x04, 0x90,
+ 0x05, 0xdc, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x07, 0x27,
+ 0x01, 0x33, 0x01, 0x07, 0x27, 0x11, 0x23, 0x11, 0x27, 0x02, 0xa6, 0x6c,
+ 0x53, 0x6c, 0x01, 0x61, 0x51, 0x01, 0x62, 0x6c, 0x54, 0x6c, 0x5e, 0x04,
+ 0xb0, 0xfb, 0x50, 0x04, 0x38, 0x5e, 0x78, 0x01, 0x8a, 0xfe, 0x76, 0x78,
+ 0x5e, 0xfb, 0xc8, 0x04, 0xb0, 0x68, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x37,
+ 0x27, 0x21, 0x35, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21,
+ 0x35, 0x04, 0xa0, 0x5f, 0x5f, 0xfb, 0xc9, 0x03, 0xcb, 0x53, 0x6c, 0x01,
+ 0x61, 0xfe, 0x9f, 0x6c, 0x53, 0xfc, 0x35, 0x02, 0x19, 0x69, 0x69, 0x78,
+ 0x5d, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0x5d, 0x78, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x7a, 0xff, 0xf9, 0x04, 0x90, 0x05, 0xd5, 0x00, 0x0e,
+ 0x00, 0x00, 0x01, 0x17, 0x37, 0x11, 0x33, 0x11, 0x37, 0x17, 0x01, 0x23,
+ 0x01, 0x37, 0x17, 0x11, 0x33, 0x02, 0xa6, 0x5f, 0x5e, 0x6c, 0x54, 0x6c,
+ 0xfe, 0x9e, 0x51, 0xfe, 0x9f, 0x6c, 0x53, 0x6c, 0x01, 0x25, 0x68, 0x68,
+ 0x04, 0xb0, 0xfb, 0xc8, 0x5e, 0x78, 0xfe, 0x76, 0x01, 0x8a, 0x78, 0x5e,
+ 0x04, 0x38, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x01, 0x21, 0x37, 0x27,
+ 0x21, 0x07, 0x05, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21,
+ 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x01, 0x68, 0x03, 0x38, 0x5f, 0x5f,
+ 0xfc, 0xc8, 0x5e, 0x03, 0x2a, 0xfd, 0xa0, 0x54, 0x6c, 0xfe, 0x9e, 0x01,
+ 0x62, 0x6c, 0x54, 0x02, 0x60, 0x53, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c,
+ 0x02, 0x19, 0x69, 0x69, 0x69, 0xe1, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01,
+ 0x89, 0x78, 0x5d, 0x5d, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0x00,
+ 0x00, 0x02, 0x01, 0x7a, 0xff, 0xf0, 0x04, 0x8f, 0x05, 0xdc, 0x00, 0x05,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x11, 0x17, 0x37, 0x11, 0x27, 0x03, 0x11,
+ 0x07, 0x27, 0x01, 0x33, 0x01, 0x07, 0x27, 0x11, 0x37, 0x17, 0x01, 0x23,
+ 0x01, 0x37, 0x02, 0xa6, 0x5e, 0x5f, 0x5f, 0xca, 0x54, 0x6c, 0x01, 0x62,
+ 0x51, 0x01, 0x61, 0x6c, 0x53, 0x53, 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9e,
+ 0x6c, 0x04, 0xb0, 0xfc, 0x6c, 0x69, 0x69, 0x03, 0x94, 0x69, 0xfc, 0x7b,
+ 0x02, 0xa4, 0x5d, 0x78, 0x01, 0x89, 0xfe, 0x77, 0x78, 0x5d, 0xfd, 0x5c,
+ 0x5d, 0x78, 0xfe, 0x77, 0x01, 0x89, 0x78, 0x00, 0x00, 0x01, 0x01, 0x03,
+ 0xff, 0xd1, 0x05, 0x6a, 0x04, 0xb3, 0x00, 0x0e, 0x00, 0x00, 0x09, 0x01,
+ 0x07, 0x01, 0x15, 0x23, 0x11, 0x37, 0x21, 0x15, 0x23, 0x01, 0x07, 0x01,
+ 0x23, 0x01, 0x9b, 0x02, 0xfb, 0x4c, 0xfd, 0x51, 0x98, 0x39, 0x01, 0xf4,
+ 0x76, 0x02, 0xaf, 0x4c, 0xfd, 0x04, 0x86, 0x03, 0x76, 0xfc, 0xb0, 0x55,
+ 0x02, 0xfb, 0x84, 0x02, 0x2c, 0x3f, 0xa9, 0xfd, 0x05, 0x55, 0x03, 0x50,
+ 0x00, 0x01, 0x00, 0xa9, 0xff, 0xd1, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x0e,
+ 0x00, 0x00, 0x01, 0x35, 0x23, 0x01, 0x27, 0x01, 0x23, 0x35, 0x21, 0x17,
+ 0x11, 0x23, 0x35, 0x01, 0x27, 0x04, 0x77, 0x86, 0xfd, 0x05, 0x4d, 0x02,
+ 0xaf, 0x76, 0x01, 0xf4, 0x39, 0x98, 0xfd, 0x51, 0x4c, 0x03, 0x76, 0x94,
+ 0xfc, 0xb0, 0x55, 0x02, 0xfb, 0xa9, 0x3f, 0xfd, 0xd4, 0x84, 0xfd, 0x05,
+ 0x55, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa9, 0x00, 0x34, 0x05, 0x10,
+ 0x05, 0x16, 0x00, 0x0e, 0x00, 0x00, 0x09, 0x01, 0x37, 0x01, 0x35, 0x33,
+ 0x11, 0x07, 0x21, 0x35, 0x33, 0x01, 0x37, 0x01, 0x33, 0x04, 0x77, 0xfd,
+ 0x05, 0x4c, 0x02, 0xaf, 0x98, 0x39, 0xfe, 0x0c, 0x76, 0xfd, 0x51, 0x4d,
+ 0x02, 0xfb, 0x86, 0x01, 0x71, 0x03, 0x50, 0x55, 0xfd, 0x05, 0x84, 0xfd,
+ 0xd4, 0x3f, 0xa9, 0x02, 0xfb, 0x55, 0xfc, 0xb0, 0x00, 0x01, 0x01, 0x03,
+ 0x00, 0x34, 0x05, 0x6a, 0x05, 0x16, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x15,
+ 0x33, 0x01, 0x17, 0x01, 0x33, 0x15, 0x21, 0x27, 0x11, 0x33, 0x15, 0x01,
+ 0x17, 0x01, 0x9b, 0x86, 0x02, 0xfc, 0x4c, 0xfd, 0x51, 0x76, 0xfe, 0x0c,
+ 0x39, 0x98, 0x02, 0xaf, 0x4c, 0x01, 0x71, 0x94, 0x03, 0x50, 0x55, 0xfd,
+ 0x05, 0xa9, 0x3f, 0x02, 0x2c, 0x84, 0x02, 0xfb, 0x55, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x0f,
+ 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x17, 0x21, 0x15, 0x21, 0x07, 0x01,
+ 0x35, 0x01, 0x17, 0x21, 0x15, 0x21, 0x01, 0x40, 0x04, 0x5f, 0xfb, 0xa1,
+ 0x7c, 0x03, 0xe3, 0xfc, 0x89, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x03,
+ 0x77, 0xfc, 0x1d, 0x02, 0xbe, 0x78, 0x8a, 0x78, 0x78, 0x01, 0x89, 0x5a,
+ 0x01, 0x89, 0x78, 0x78, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x27, 0x21,
+ 0x35, 0x21, 0x37, 0x01, 0x15, 0x01, 0x27, 0x21, 0x35, 0x21, 0x04, 0xc9,
+ 0xfb, 0xa0, 0x04, 0x60, 0x7c, 0xfc, 0x1c, 0x03, 0x78, 0x6c, 0x01, 0x61,
+ 0xfe, 0x9f, 0x6c, 0xfc, 0x88, 0x03, 0xe4, 0x02, 0x46, 0x78, 0x8a, 0x78,
+ 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0x78, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x18, 0x00, 0x00, 0x01, 0x23,
+ 0x27, 0x07, 0x27, 0x07, 0x27, 0x07, 0x27, 0x23, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x33, 0x17, 0x37, 0x17, 0x37, 0x17, 0x37, 0x17, 0x05,
+ 0x9f, 0x24, 0x3f, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0x63, 0x59, 0xd2, 0x6c,
+ 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x7d, 0x3f, 0xa2, 0xa2, 0xa2, 0xa2,
+ 0xa2, 0x63, 0x02, 0x2d, 0x46, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x6e, 0xe9,
+ 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x46, 0xb4, 0xb4, 0xb4,
+ 0xb4, 0xb4, 0x6e, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x18, 0x00, 0x00, 0x13, 0x35, 0x37, 0x17, 0x37, 0x17,
+ 0x37, 0x17, 0x37, 0x33, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x23,
+ 0x07, 0x27, 0x07, 0x27, 0x07, 0x27, 0x07, 0x69, 0x63, 0xa2, 0xa2, 0xa2,
+ 0xa2, 0xa2, 0x3f, 0x7d, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1,
+ 0x59, 0x63, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0x3f, 0x02, 0x2d, 0xaa, 0x6e,
+ 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x46, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0x6e, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x46, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x79, 0x00, 0x00, 0x04, 0x8e, 0x05, 0xdc, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x33, 0x01, 0x07, 0x27, 0x11, 0x21, 0x15, 0x21, 0x15,
+ 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35,
+ 0x21, 0x11, 0x07, 0x27, 0x02, 0xdc, 0x51, 0x01, 0x61, 0x6c, 0xd1, 0x01,
+ 0x0a, 0xfe, 0xf6, 0x01, 0x0a, 0xfe, 0xf6, 0x99, 0xfe, 0xf7, 0x01, 0x09,
+ 0xfe, 0xf7, 0x01, 0x09, 0xd3, 0x6c, 0x05, 0xdc, 0xfe, 0x76, 0x78, 0xea,
+ 0xfe, 0x8e, 0xaa, 0xaa, 0xaa, 0xfe, 0xac, 0x01, 0x54, 0xaa, 0xaa, 0xaa,
+ 0x01, 0x72, 0xea, 0x78, 0x00, 0x01, 0x01, 0x79, 0xff, 0xf9, 0x04, 0x8e,
+ 0x05, 0xd5, 0x00, 0x19, 0x00, 0x00, 0x05, 0x23, 0x01, 0x37, 0x17, 0x11,
+ 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x37, 0x17, 0x03, 0x2b, 0x51, 0xfe,
+ 0x9f, 0x6c, 0xd1, 0xfe, 0xf6, 0x01, 0x0a, 0xfe, 0xf6, 0x01, 0x0a, 0x99,
+ 0x01, 0x09, 0xfe, 0xf7, 0x01, 0x09, 0xfe, 0xf7, 0xd3, 0x6c, 0x07, 0x01,
+ 0x8a, 0x78, 0xea, 0x01, 0x72, 0xaa, 0xaa, 0xaa, 0x01, 0x54, 0xfe, 0xac,
+ 0xaa, 0xaa, 0xaa, 0xfe, 0x8e, 0xea, 0x78, 0x00, 0x00, 0x03, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x35, 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x17, 0x07,
+ 0x01, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x5a, 0x01, 0x62, 0x6c,
+ 0xd2, 0x01, 0x4c, 0xfe, 0xb4, 0xd2, 0x6c, 0x01, 0x7f, 0xe6, 0x99, 0xe5,
+ 0x02, 0x55, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0xaa, 0xe9, 0x78, 0x01, 0x61,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x03, 0x01, 0x79, 0x00, 0x00, 0x04, 0x90,
+ 0x05, 0xdc, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00, 0x01, 0x33,
+ 0x01, 0x07, 0x27, 0x11, 0x23, 0x11, 0x07, 0x27, 0x01, 0x33, 0x15, 0x23,
+ 0x15, 0x33, 0x11, 0x23, 0x02, 0xdc, 0x51, 0x01, 0x62, 0x6c, 0xd2, 0x99,
+ 0xd3, 0x6c, 0x01, 0x3f, 0x99, 0x99, 0x99, 0x99, 0x05, 0xdc, 0xfe, 0x76,
+ 0x78, 0xea, 0xfe, 0x8e, 0x01, 0x72, 0xea, 0x78, 0xfe, 0x56, 0xfe, 0xaa,
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00, 0x09, 0x01,
+ 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x01, 0x25, 0x33, 0x15, 0x23,
+ 0x27, 0x15, 0x23, 0x35, 0x05, 0xae, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe, 0xb4,
+ 0x01, 0x4c, 0xd1, 0x6c, 0x01, 0x61, 0xfc, 0x3a, 0xe5, 0xe5, 0x99, 0xe6,
+ 0x02, 0x55, 0xfe, 0x77, 0x78, 0xe9, 0xaa, 0xe9, 0x78, 0xfe, 0x77, 0x28,
+ 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x03, 0x01, 0x79, 0xff, 0xf9, 0x04, 0x90,
+ 0x05, 0xd5, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00, 0x05, 0x01,
+ 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17, 0x01, 0x03, 0x35, 0x33, 0x15,
+ 0x03, 0x11, 0x33, 0x11, 0x02, 0xdc, 0xfe, 0x9d, 0x6c, 0xd3, 0x99, 0xd2,
+ 0x6c, 0xfe, 0x9e, 0x75, 0x99, 0x99, 0x99, 0x07, 0x01, 0x8a, 0x78, 0xea,
+ 0x01, 0x72, 0xfe, 0x8e, 0xea, 0x78, 0xfe, 0x76, 0x03, 0x34, 0xfe, 0xfe,
+ 0x01, 0xa8, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60,
+ 0x00, 0xcb, 0x05, 0xa0, 0x04, 0x39, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x15,
+ 0x21, 0x17, 0x07, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x17, 0x07,
+ 0x05, 0x9f, 0xfc, 0x56, 0xd3, 0x6c, 0xfe, 0x9d, 0x99, 0x99, 0x01, 0x63,
+ 0x6c, 0xd3, 0x02, 0xd7, 0xaa, 0xea, 0x78, 0x01, 0x8a, 0xfe, 0x7e, 0x03,
+ 0x5c, 0xfe, 0x80, 0x01, 0x8a, 0x78, 0xea, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0xcb, 0x05, 0xa9, 0x04, 0x39, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x21,
+ 0x27, 0x37, 0x01, 0x11, 0x33, 0x11, 0x23, 0x11, 0x01, 0x27, 0x37, 0x21,
+ 0x69, 0x03, 0xaa, 0xd3, 0x6c, 0x01, 0x63, 0x99, 0x99, 0xfe, 0x9d, 0x6c,
+ 0xd3, 0xfc, 0x56, 0x02, 0xd7, 0xea, 0x78, 0xfe, 0x76, 0x01, 0x80, 0xfc,
+ 0xa4, 0x01, 0x82, 0xfe, 0x76, 0x78, 0xea, 0x00, 0x00, 0x02, 0x00, 0x31,
+ 0x00, 0x86, 0x05, 0xa0, 0x04, 0x7e, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x03, 0x13, 0x35, 0x21, 0x11, 0x21, 0x13, 0x09, 0x01, 0x11, 0x21,
+ 0x11, 0x21, 0x01, 0xa1, 0xf0, 0xf0, 0x03, 0xa4, 0xfc, 0x5c, 0x5a, 0xfe,
+ 0x37, 0x01, 0xc9, 0x03, 0xa4, 0xfc, 0x5c, 0x03, 0x8c, 0xfe, 0xf6, 0xfe,
+ 0xf6, 0x83, 0x01, 0x0e, 0xfd, 0x7d, 0x01, 0xfc, 0x01, 0xfc, 0xfe, 0xef,
+ 0xfe, 0x2a, 0x00, 0x00, 0x00, 0x02, 0x01, 0x3b, 0x00, 0x00, 0x04, 0xce,
+ 0x06, 0x08, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x0b, 0x01, 0x33,
+ 0x11, 0x33, 0x11, 0x05, 0x09, 0x01, 0x23, 0x11, 0x21, 0x11, 0x03, 0xf4,
+ 0xf0, 0xef, 0x76, 0xf3, 0xfd, 0xbd, 0x01, 0xc9, 0x01, 0xc9, 0xf5, 0xfe,
+ 0x59, 0x04, 0x70, 0x01, 0x0a, 0xfe, 0xf6, 0xfb, 0xf4, 0x04, 0x0c, 0x64,
+ 0x01, 0xfc, 0xfe, 0x04, 0xfb, 0xf4, 0x04, 0x0c, 0x00, 0x02, 0x00, 0x40,
+ 0x00, 0x86, 0x05, 0xaf, 0x04, 0x7e, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x11, 0x21, 0x15, 0x13, 0x01, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x01, 0x04, 0x3f, 0xfc, 0x5c, 0x03, 0xa4, 0xf0, 0xfe, 0xb6, 0xfc,
+ 0x5c, 0x03, 0xa4, 0x01, 0xc9, 0x03, 0x8c, 0x83, 0xfe, 0xf2, 0x83, 0x01,
+ 0x0a, 0xfe, 0x04, 0x01, 0x11, 0x01, 0xd6, 0x01, 0x11, 0xfe, 0x04, 0x00,
+ 0x00, 0x02, 0x01, 0x3b, 0xff, 0xcd, 0x04, 0xce, 0x05, 0xd5, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x01, 0x23, 0x11, 0x23, 0x11, 0x23, 0x13, 0x01,
+ 0x33, 0x11, 0x21, 0x11, 0x33, 0x01, 0x03, 0xf4, 0x76, 0xf3, 0x76, 0xef,
+ 0xfe, 0x37, 0xf6, 0x01, 0xa7, 0xf5, 0xfe, 0x37, 0x01, 0x65, 0x04, 0x0c,
+ 0xfb, 0xf4, 0xfe, 0xf6, 0x01, 0x6e, 0x04, 0x0c, 0xfb, 0xf4, 0xfe, 0x04,
+ 0x00, 0x04, 0x01, 0x3b, 0x00, 0x00, 0x04, 0xce, 0x06, 0x08, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00, 0x01, 0x21, 0x11, 0x23,
+ 0x09, 0x01, 0x23, 0x03, 0x11, 0x33, 0x0b, 0x01, 0x33, 0x11, 0x01, 0x11,
+ 0x21, 0x11, 0x05, 0x23, 0x15, 0x33, 0x03, 0xd8, 0xfe, 0x59, 0xf6, 0x01,
+ 0xc9, 0x01, 0xc9, 0xf5, 0x5a, 0x76, 0xf0, 0xef, 0x76, 0x01, 0x4d, 0xfe,
+ 0x59, 0x01, 0x4d, 0xf3, 0xf3, 0x02, 0x24, 0x01, 0xe8, 0x01, 0xfc, 0xfe,
+ 0x04, 0xfe, 0x7c, 0x01, 0xe8, 0x01, 0x0a, 0xfe, 0xf6, 0xfe, 0x18, 0xfe,
+ 0xd4, 0xfe, 0xa4, 0x01, 0x5c, 0x64, 0x94, 0x00, 0x00, 0x02, 0x01, 0x3b,
+ 0x00, 0x00, 0x04, 0xce, 0x06, 0x08, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x00,
+ 0x29, 0x01, 0x11, 0x33, 0x11, 0x23, 0x09, 0x01, 0x23, 0x11, 0x33, 0x05,
+ 0x23, 0x15, 0x21, 0x35, 0x23, 0x11, 0x33, 0x0b, 0x01, 0x33, 0x04, 0x8c,
+ 0xfc, 0xf1, 0xb4, 0xf6, 0x01, 0xc9, 0x01, 0xc9, 0xf5, 0xb4, 0xfd, 0xff,
+ 0xb4, 0x02, 0x5b, 0xb4, 0x76, 0xf0, 0xef, 0x76, 0x01, 0x5c, 0x02, 0xb0,
+ 0x01, 0xfc, 0xfe, 0x04, 0xfd, 0x50, 0x64, 0x94, 0x94, 0x03, 0x78, 0x01,
+ 0x0a, 0xfe, 0xf6, 0x00, 0x00, 0x03, 0x01, 0x20, 0x00, 0x00, 0x04, 0xe9,
+ 0x06, 0x08, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x19, 0x00, 0x00, 0x25, 0x23,
+ 0x15, 0x21, 0x35, 0x23, 0x11, 0x33, 0x27, 0x21, 0x07, 0x33, 0x01, 0x21,
+ 0x11, 0x33, 0x11, 0x21, 0x09, 0x01, 0x21, 0x11, 0x33, 0x01, 0x33, 0x27,
+ 0x02, 0x8b, 0xb4, 0x02, 0x5b, 0xb4, 0x91, 0x5a, 0xfe, 0x9f, 0x5a, 0x91,
+ 0x02, 0x01, 0xfc, 0xf1, 0xb4, 0xfe, 0xef, 0x01, 0xe4, 0x01, 0xe4, 0xfe,
+ 0xf0, 0xb4, 0xfe, 0x10, 0xd1, 0x69, 0xf8, 0x94, 0x94, 0x03, 0x5a, 0x64,
+ 0x64, 0xfb, 0xae, 0x01, 0x5c, 0x02, 0x92, 0x02, 0x1a, 0xfd, 0xe6, 0xfd,
+ 0x6e, 0x03, 0xaa, 0x74, 0x00, 0x03, 0x01, 0x3b, 0x00, 0x00, 0x04, 0xce,
+ 0x06, 0x08, 0x00, 0x06, 0x00, 0x11, 0x00, 0x18, 0x00, 0x00, 0x25, 0x23,
+ 0x15, 0x21, 0x11, 0x07, 0x33, 0x01, 0x21, 0x11, 0x33, 0x11, 0x23, 0x09,
+ 0x01, 0x23, 0x11, 0x33, 0x01, 0x11, 0x21, 0x35, 0x23, 0x11, 0x33, 0x02,
+ 0x7d, 0xa6, 0x01, 0x00, 0xc2, 0x68, 0x02, 0x0f, 0xfc, 0xf1, 0xa6, 0xe8,
+ 0x01, 0xc9, 0x01, 0xc9, 0xe8, 0xa7, 0xfe, 0xa5, 0x01, 0x01, 0xa7, 0x69,
+ 0xf8, 0x94, 0x04, 0xe4, 0xd8, 0xfb, 0x90, 0x01, 0x5c, 0x02, 0xb0, 0x01,
+ 0xfc, 0xfe, 0x04, 0xfd, 0x50, 0x03, 0xec, 0xfb, 0x1c, 0x94, 0x03, 0x78,
+ 0x00, 0x03, 0x01, 0x3b, 0x00, 0x00, 0x04, 0xce, 0x06, 0x08, 0x00, 0x06,
+ 0x00, 0x11, 0x00, 0x17, 0x00, 0x00, 0x25, 0x11, 0x33, 0x0b, 0x01, 0x33,
+ 0x11, 0x05, 0x21, 0x11, 0x23, 0x13, 0x23, 0x09, 0x01, 0x23, 0x13, 0x23,
+ 0x03, 0x33, 0x0b, 0x01, 0x33, 0x37, 0x03, 0x7e, 0x76, 0xf0, 0xef, 0x76,
+ 0x01, 0x4d, 0xfe, 0x59, 0xf6, 0xfc, 0xfc, 0x01, 0xc9, 0x01, 0xc9, 0xfc,
+ 0xfc, 0xf5, 0x61, 0x7d, 0xf0, 0xef, 0x7c, 0x73, 0x64, 0x02, 0xf4, 0x01,
+ 0x0a, 0xfe, 0xf6, 0xfd, 0x0c, 0x64, 0x02, 0xf4, 0x01, 0x18, 0x01, 0xfc,
+ 0xfe, 0x04, 0xfe, 0xe8, 0x01, 0x7c, 0x01, 0x0a, 0xfe, 0xf6, 0x80, 0x00,
+ 0x00, 0x03, 0x01, 0x3b, 0x00, 0x00, 0x04, 0xce, 0x06, 0x08, 0x00, 0x0a,
+ 0x00, 0x19, 0x00, 0x1f, 0x00, 0x00, 0x25, 0x23, 0x15, 0x21, 0x35, 0x23,
+ 0x11, 0x33, 0x0b, 0x01, 0x33, 0x01, 0x21, 0x11, 0x33, 0x11, 0x23, 0x13,
+ 0x23, 0x09, 0x01, 0x23, 0x13, 0x23, 0x11, 0x33, 0x01, 0x33, 0x0b, 0x01,
+ 0x33, 0x37, 0x02, 0x8b, 0xb4, 0x02, 0x5b, 0xb4, 0x76, 0xf0, 0xef, 0x76,
+ 0x02, 0x01, 0xfc, 0xf1, 0xb4, 0xf6, 0xfc, 0xfc, 0x01, 0xc9, 0x01, 0xc9,
+ 0xfc, 0xfc, 0xf5, 0xb4, 0xfe, 0xeb, 0x7d, 0xf0, 0xef, 0x7c, 0x73, 0xf8,
+ 0x94, 0x94, 0x02, 0x60, 0x01, 0x0a, 0xfe, 0xf6, 0xfc, 0xa8, 0x01, 0x5c,
+ 0x01, 0x98, 0x01, 0x18, 0x01, 0xfc, 0xfe, 0x04, 0xfe, 0xe8, 0xfe, 0x68,
+ 0x03, 0x14, 0x01, 0x0a, 0xfe, 0xf6, 0x80, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0x00, 0x86, 0x05, 0xd7, 0x04, 0x7e, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x00,
+ 0x37, 0x11, 0x21, 0x15, 0x21, 0x11, 0x09, 0x01, 0x11, 0x21, 0x15, 0x03,
+ 0x35, 0x23, 0x11, 0x33, 0x35, 0x21, 0x15, 0x13, 0x03, 0x15, 0x69, 0x01,
+ 0x39, 0x02, 0x6c, 0x01, 0xc9, 0xfe, 0x37, 0xfd, 0x94, 0x5a, 0x85, 0x85,
+ 0x03, 0x20, 0xef, 0xef, 0xcf, 0x03, 0x66, 0xc8, 0x01, 0x11, 0xfe, 0x04,
+ 0xfe, 0x04, 0x01, 0x11, 0xc8, 0x02, 0x3a, 0xc8, 0xfd, 0x62, 0xc8, 0x83,
+ 0x01, 0x0a, 0x01, 0x0a, 0x83, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6d,
+ 0x00, 0x00, 0x05, 0xac, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x11, 0x23, 0x11, 0x01, 0x37, 0x21, 0x15, 0x21, 0x01,
+ 0x07, 0x01, 0x11, 0x23, 0x05, 0xac, 0xfb, 0x1b, 0x59, 0x01, 0x05, 0x39,
+ 0x01, 0xf4, 0xfe, 0xd7, 0x03, 0x08, 0x6c, 0xfc, 0xf8, 0x98, 0x05, 0xd5,
+ 0x63, 0xfa, 0x8e, 0x05, 0xd5, 0xfe, 0x9f, 0x3f, 0xa9, 0xfc, 0xa2, 0x78,
+ 0x03, 0x5e, 0xfe, 0xb6, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x05, 0xac,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x33, 0x35, 0x21, 0x11,
+ 0x33, 0x11, 0x01, 0x07, 0x21, 0x35, 0x21, 0x01, 0x37, 0x01, 0x11, 0x33,
+ 0x6e, 0x04, 0xe5, 0x59, 0xfe, 0xfb, 0x39, 0xfe, 0x0c, 0x01, 0x29, 0xfc,
+ 0xf8, 0x6c, 0x03, 0x08, 0x98, 0x63, 0x05, 0x72, 0xfa, 0x2b, 0x01, 0x61,
+ 0x3f, 0xa9, 0x03, 0x5e, 0x78, 0xfc, 0xa2, 0x01, 0x4a, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x3b, 0xff, 0xcd, 0x04, 0xce, 0x06, 0x08, 0x00, 0x09,
+ 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, 0x33, 0x0b, 0x01, 0x33, 0x11, 0x23,
+ 0x1b, 0x01, 0x27, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23, 0x09, 0x01, 0x23,
+ 0x03, 0x7e, 0x76, 0xf0, 0xef, 0x76, 0x76, 0xef, 0xf0, 0x1c, 0xf5, 0xfe,
+ 0x37, 0xfe, 0x37, 0xf6, 0xf6, 0x01, 0xc9, 0x01, 0xc9, 0xf5, 0x01, 0x65,
+ 0x03, 0x0b, 0x01, 0x0a, 0xfe, 0xf6, 0xfc, 0xf5, 0xfe, 0xf6, 0x01, 0x0a,
+ 0x64, 0xfe, 0x04, 0x01, 0xfc, 0x02, 0x43, 0x01, 0xfc, 0xfe, 0x04, 0x00,
+ 0x00, 0x03, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x41, 0x00, 0x00, 0x09, 0x01, 0x27, 0x37, 0x21, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x23, 0x35, 0x33, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x21, 0x27, 0x37, 0x01,
+ 0x24, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x26, 0x27, 0x26, 0x27,
+ 0x13, 0x21, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x05, 0xae, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe, 0xc4, 0x05, 0x09, 0x18, 0x2d,
+ 0x2c, 0x3a, 0x37, 0x84, 0x34, 0x3d, 0x29, 0x2d, 0x18, 0x09, 0x06, 0xab,
+ 0xab, 0x06, 0x09, 0x18, 0x2d, 0x2c, 0x3a, 0x37, 0x84, 0x34, 0x3c, 0x2a,
+ 0x2d, 0x18, 0x09, 0x05, 0x01, 0x3c, 0xd1, 0x6c, 0x01, 0x61, 0xfc, 0xbc,
+ 0x4a, 0x1f, 0x25, 0x16, 0x17, 0x0d, 0x01, 0x47, 0x0f, 0x16, 0x1a, 0x20,
+ 0x5d, 0xfe, 0xbc, 0x0d, 0x16, 0x1b, 0x20, 0x1f, 0x4a, 0x20, 0x20, 0x1a,
+ 0x17, 0x02, 0x55, 0xfe, 0x77, 0x78, 0xe9, 0x18, 0x18, 0x40, 0x32, 0x31,
+ 0x1b, 0x1a, 0x1a, 0x1e, 0x2e, 0x32, 0x40, 0x18, 0x18, 0xaa, 0x1a, 0x19,
+ 0x40, 0x32, 0x31, 0x1b, 0x1a, 0x1a, 0x1e, 0x2e, 0x32, 0x40, 0x19, 0x1a,
+ 0xe9, 0x78, 0xfe, 0x77, 0x9d, 0x0f, 0x12, 0x1a, 0x1c, 0x1e, 0x23, 0x17,
+ 0x1c, 0x10, 0xfe, 0xf0, 0x1d, 0x1a, 0x1c, 0x10, 0x0f, 0x0f, 0x10, 0x1c,
+ 0x1a, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6b, 0xff, 0xf9, 0x05, 0x9c,
+ 0x05, 0xdc, 0x10, 0x27, 0x08, 0x6d, 0x01, 0x0e, 0x00, 0x00, 0x10, 0x07,
+ 0x08, 0x6f, 0xfe, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0xfe, 0x74, 0x05, 0xaf, 0x06, 0x90, 0x00, 0x19, 0x00, 0x00, 0x01, 0x07,
+ 0x17, 0x15, 0x01, 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x21, 0x35,
+ 0x21, 0x27, 0x37, 0x21, 0x35, 0x21, 0x27, 0x37, 0x01, 0x15, 0x07, 0x17,
+ 0x05, 0xae, 0xe5, 0xe5, 0xfe, 0x9f, 0x6c, 0xd1, 0xfb, 0xb7, 0x04, 0x49,
+ 0xc1, 0xc1, 0xfb, 0xb7, 0x04, 0x49, 0xc1, 0xc1, 0xfb, 0xb7, 0x04, 0x49,
+ 0xd1, 0x6c, 0x01, 0x61, 0xe5, 0xe5, 0x02, 0x55, 0xff, 0xff, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0xaa, 0xd7, 0xd7, 0xaa, 0xd7, 0xd7, 0xaa, 0xe9, 0x78,
+ 0xfe, 0x77, 0x5a, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0xc0, 0x05, 0xa0, 0x04, 0x44, 0x00, 0x11, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x01, 0xfb, 0x99,
+ 0x01, 0xb5, 0xfe, 0x4b, 0x99, 0xfe, 0x05, 0xd2, 0x6c, 0x02, 0x55, 0x5a,
+ 0x01, 0x89, 0x78, 0xe9, 0x01, 0x6d, 0xfe, 0x93, 0xaa, 0xfe, 0x93, 0x01,
+ 0x6d, 0xe9, 0x78, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xc0, 0x05, 0xaf,
+ 0x04, 0x44, 0x00, 0x11, 0x00, 0x00, 0x09, 0x01, 0x27, 0x37, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x27, 0x37, 0x01,
+ 0x05, 0xae, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe, 0x06, 0x99, 0xfe, 0x4a, 0x01,
+ 0xb6, 0x99, 0x01, 0xfa, 0xd1, 0x6c, 0x01, 0x61, 0x02, 0x55, 0xfe, 0x77,
+ 0x78, 0xe9, 0xfe, 0x93, 0x01, 0x6d, 0xaa, 0x01, 0x6d, 0xfe, 0x93, 0xe9,
+ 0x78, 0xfe, 0x77, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xc0, 0x05, 0xaf,
+ 0x04, 0x44, 0x00, 0x17, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x27,
+ 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x11, 0x23, 0x11, 0x21, 0x17,
+ 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x02, 0xb8, 0x99, 0x01, 0x61, 0xd1,
+ 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe, 0x9f, 0x99, 0xfe, 0x9e,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x02, 0xd7, 0x01, 0x6d,
+ 0xfe, 0x93, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xfe,
+ 0x93, 0x01, 0x6d, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xc0, 0x05, 0xa0, 0x04, 0x44, 0x00, 0x19,
+ 0x00, 0x00, 0x13, 0x35, 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x11, 0x33,
+ 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x11, 0x21, 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x01, 0x7d, 0x99,
+ 0x99, 0x99, 0x01, 0x01, 0xfe, 0xff, 0x99, 0x99, 0x99, 0xfe, 0x83, 0xd2,
+ 0x6c, 0x02, 0x55, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x01, 0x6d, 0xfe, 0x93,
+ 0x01, 0x6d, 0xfe, 0x93, 0xaa, 0xfe, 0x93, 0x01, 0x6d, 0xfe, 0x93, 0x01,
+ 0x6d, 0xe9, 0x78, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xc0, 0x05, 0xaf,
+ 0x04, 0x44, 0x00, 0x19, 0x00, 0x00, 0x09, 0x01, 0x27, 0x37, 0x21, 0x11,
+ 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x21, 0x27, 0x37, 0x01, 0x05, 0xae, 0xfe, 0x9f,
+ 0x6c, 0xd1, 0xfe, 0x84, 0x99, 0x99, 0x99, 0xfe, 0xfe, 0x01, 0x02, 0x99,
+ 0x99, 0x99, 0x01, 0x7c, 0xd1, 0x6c, 0x01, 0x61, 0x02, 0x55, 0xfe, 0x77,
+ 0x78, 0xe9, 0xfe, 0x93, 0x01, 0x6d, 0xfe, 0x93, 0x01, 0x6d, 0xaa, 0x01,
+ 0x6d, 0xfe, 0x93, 0x01, 0x6d, 0xfe, 0x93, 0xe9, 0x78, 0xfe, 0x77, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xc0, 0x05, 0xaf, 0x04, 0x44, 0x00, 0x1f,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x27,
+ 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x11, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x02, 0x59,
+ 0x7e, 0x5a, 0x7e, 0x01, 0x03, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c,
+ 0xd1, 0xfe, 0xfd, 0x7e, 0x5a, 0x7e, 0xfe, 0xfd, 0xd2, 0x6c, 0xfe, 0x9e,
+ 0x01, 0x62, 0x6c, 0xd2, 0x02, 0xd7, 0x01, 0x6d, 0xfe, 0x93, 0x01, 0x6d,
+ 0xfe, 0x93, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xfe,
+ 0x93, 0x01, 0x6d, 0xfe, 0x93, 0x01, 0x6d, 0xe9, 0x78, 0x01, 0x89, 0x5a,
+ 0x01, 0x89, 0x78, 0xe9, 0x00, 0x02, 0x00, 0x31, 0x00, 0xc4, 0x05, 0xa0,
+ 0x04, 0x40, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x07, 0x05,
+ 0x11, 0x09, 0x01, 0x11, 0x21, 0x15, 0x01, 0x7b, 0xe1, 0x01, 0x29, 0xfe,
+ 0x6f, 0x01, 0x91, 0x03, 0xdc, 0x01, 0x88, 0x01, 0xf4, 0xfa, 0x41, 0xfe,
+ 0x83, 0x01, 0xbe, 0x01, 0xbe, 0xfe, 0x83, 0x82, 0x00, 0x02, 0x00, 0x69,
+ 0x00, 0xc4, 0x05, 0xd7, 0x04, 0x40, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00,
+ 0x01, 0x37, 0x27, 0x03, 0x21, 0x35, 0x21, 0x11, 0x09, 0x01, 0x04, 0x8e,
+ 0xe0, 0xe0, 0x48, 0xfc, 0x23, 0x03, 0xdd, 0x01, 0x91, 0xfe, 0x6f, 0x01,
+ 0x88, 0xfa, 0xfa, 0xfe, 0xc5, 0x82, 0x01, 0x7d, 0xfe, 0x42, 0xfe, 0x42,
+ 0x00, 0x03, 0x00, 0x31, 0x00, 0xc4, 0x05, 0xd7, 0x04, 0x40, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x37, 0x27, 0x01, 0x11, 0x07,
+ 0x05, 0x21, 0x11, 0x09, 0x01, 0x11, 0x21, 0x11, 0x09, 0x01, 0x04, 0x8e,
+ 0xe0, 0xe0, 0xfc, 0xed, 0xe1, 0x03, 0xac, 0xfd, 0x7d, 0xfe, 0x6f, 0x01,
+ 0x91, 0x02, 0x83, 0x01, 0x91, 0xfe, 0x6f, 0x01, 0x88, 0xfa, 0xfa, 0xfe,
+ 0x0c, 0x01, 0xf4, 0xfa, 0x41, 0xfe, 0x83, 0x01, 0xbe, 0x01, 0xbe, 0xfe,
+ 0x83, 0x01, 0x7d, 0xfe, 0x42, 0xfe, 0x42, 0x00, 0x00, 0x02, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00,
+ 0x25, 0x13, 0x21, 0x13, 0x01, 0x33, 0x13, 0x21, 0x13, 0x33, 0x01, 0x02,
+ 0x76, 0xf8, 0xfe, 0x11, 0x90, 0xfd, 0xff, 0xc0, 0x7a, 0x02, 0x5e, 0x7b,
+ 0xbd, 0xfe, 0x00, 0xc7, 0x02, 0xe7, 0xfc, 0x52, 0x05, 0xd5, 0xfe, 0x81,
+ 0x01, 0x7f, 0xfa, 0x2b, 0x00, 0x01, 0x00, 0x79, 0xff, 0xe3, 0x03, 0xfd,
+ 0x05, 0xf0, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x10, 0x12, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22, 0x02,
+ 0x7a, 0xee, 0xe2, 0xe2, 0x78, 0x3b, 0x1e, 0xb6, 0x10, 0x19, 0x47, 0x8d,
+ 0x8c, 0x8e, 0x8e, 0x8c, 0x8d, 0x47, 0x19, 0x10, 0xb6, 0x1e, 0x3b, 0x78,
+ 0xe2, 0xe2, 0xee, 0x02, 0xe9, 0x01, 0x7a, 0x01, 0x8d, 0xc6, 0x63, 0x90,
+ 0x49, 0x37, 0x99, 0xfe, 0xcd, 0xfe, 0xcc, 0xfe, 0xcc, 0xfe, 0xcd, 0x99,
+ 0x37, 0x49, 0x90, 0x63, 0xc5, 0x01, 0x8c, 0x00, 0x00, 0x02, 0x00, 0x55,
+ 0xff, 0xe3, 0x03, 0x64, 0x05, 0x4c, 0x00, 0x20, 0x00, 0x30, 0x00, 0x00,
+ 0x05, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x35, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x02, 0x07, 0x06, 0x01, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x01, 0x89, 0x7f, 0x52, 0x62, 0x56, 0x59, 0xa0, 0x69, 0x53, 0x31,
+ 0x21, 0x0c, 0x1d, 0x40, 0xa9, 0x40, 0x63, 0x68, 0x5e, 0xf1, 0x67, 0x30,
+ 0x17, 0x39, 0x92, 0x74, 0xfe, 0xe1, 0x28, 0x2a, 0x41, 0x3a, 0x2e, 0x40,
+ 0x30, 0x28, 0x14, 0x51, 0x8a, 0x77, 0x34, 0x21, 0x1d, 0x55, 0x65, 0xb7,
+ 0xbe, 0x94, 0x98, 0x49, 0x2b, 0x48, 0x51, 0x5c, 0x87, 0x4e, 0xad, 0x2c,
+ 0xa8, 0x1f, 0xf6, 0x74, 0xad, 0x71, 0x83, 0xfe, 0xb8, 0x9c, 0x7a, 0x01,
+ 0x53, 0x64, 0x36, 0x39, 0x2d, 0x3e, 0x65, 0x53, 0x59, 0xd7, 0xae, 0x6c,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x21, 0x35, 0x04, 0x17, 0xfc, 0x9e, 0x02, 0xac, 0xfd, 0x54, 0x02, 0xac,
+ 0xfd, 0x54, 0x05, 0xd5, 0xfa, 0x2b, 0xaa, 0x01, 0xec, 0xaa, 0x01, 0xeb,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4, 0xff, 0xa2, 0x04, 0x17,
+ 0x06, 0x35, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x07, 0x23, 0x37, 0x23, 0x35, 0x33, 0x13, 0x21, 0x35, 0x21, 0x13,
+ 0x21, 0x35, 0x21, 0x37, 0x33, 0x0f, 0x01, 0x03, 0x33, 0x11, 0x01, 0x03,
+ 0x21, 0x11, 0x04, 0x17, 0xfd, 0x90, 0x1a, 0x99, 0x1a, 0x59, 0x89, 0x88,
+ 0xfe, 0xef, 0x01, 0x40, 0x89, 0xfe, 0x37, 0x01, 0xf8, 0x1b, 0x99, 0x1b,
+ 0x2f, 0x89, 0xd3, 0xfe, 0xff, 0x89, 0x01, 0x8a, 0x05, 0xd5, 0xfa, 0x2b,
+ 0x5e, 0x5e, 0xaa, 0x01, 0xec, 0xaa, 0x01, 0xeb, 0xaa, 0x60, 0x60, 0xaa,
+ 0xfe, 0x15, 0x01, 0xeb, 0xfd, 0x6b, 0xfe, 0x14, 0x01, 0xec, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x8b, 0xff, 0xec, 0x05, 0xbb, 0x05, 0xae, 0x00, 0x1b,
+ 0x00, 0x28, 0x00, 0x36, 0x00, 0x00, 0x01, 0x37, 0x33, 0x07, 0x16, 0x17,
+ 0x16, 0x10, 0x02, 0x04, 0x23, 0x22, 0x27, 0x26, 0x27, 0x07, 0x23, 0x37,
+ 0x26, 0x27, 0x26, 0x10, 0x12, 0x24, 0x33, 0x32, 0x17, 0x16, 0x09, 0x01,
+ 0x27, 0x26, 0x23, 0x22, 0x04, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x09,
+ 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x24, 0x37, 0x36, 0x37, 0x26, 0x27,
+ 0x26, 0x04, 0x87, 0x50, 0x60, 0x73, 0x5e, 0x3e, 0x5a, 0xb4, 0xfe, 0xc3,
+ 0xa6, 0xa9, 0x9e, 0x32, 0x2c, 0x71, 0x5e, 0x99, 0x39, 0x2a, 0x59, 0xb2,
+ 0x01, 0x3c, 0xa9, 0xa6, 0x9f, 0x10, 0xfd, 0x1b, 0x02, 0xa9, 0x0d, 0x83,
+ 0x89, 0x8b, 0xfe, 0xfa, 0x4a, 0x48, 0x01, 0x01, 0x48, 0x21, 0x03, 0x10,
+ 0xfd, 0x51, 0x23, 0x29, 0x82, 0x8b, 0x89, 0x01, 0x06, 0x4a, 0x4a, 0x01,
+ 0x01, 0x4a, 0x34, 0x05, 0x3b, 0x6e, 0x9d, 0x53, 0x7a, 0xb2, 0xfe, 0x80,
+ 0xfe, 0x9d, 0xbe, 0x5f, 0x1e, 0x27, 0x9c, 0xd2, 0x42, 0x54, 0xb1, 0x01,
+ 0x80, 0x01, 0x63, 0xbe, 0x5f, 0x0a, 0xfb, 0xe9, 0x03, 0xa5, 0x08, 0x4e,
+ 0x9d, 0x93, 0x91, 0x9b, 0x9b, 0x91, 0x40, 0x03, 0x44, 0xfc, 0x52, 0x1f,
+ 0x18, 0x4f, 0x9d, 0x93, 0x91, 0x9b, 0x9b, 0x91, 0x67, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xfa, 0x00, 0x00, 0x04, 0xd7, 0x05, 0xc1, 0x00, 0x02,
+ 0x00, 0x06, 0x00, 0x00, 0x09, 0x01, 0x21, 0x01, 0x33, 0x01, 0x21, 0x02,
+ 0x68, 0xfe, 0x87, 0x02, 0xf1, 0xfe, 0x24, 0xc9, 0x02, 0x09, 0xfb, 0x25,
+ 0x04, 0xee, 0xfb, 0xc4, 0x05, 0x0f, 0xfa, 0x3f, 0x00, 0x02, 0xff, 0xfa,
+ 0x00, 0x00, 0x04, 0xd7, 0x05, 0xc1, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00,
+ 0x25, 0x01, 0x21, 0x09, 0x01, 0x21, 0x01, 0x02, 0x68, 0x01, 0x78, 0xfd,
+ 0x0f, 0x01, 0x15, 0xfd, 0xf7, 0x04, 0xdb, 0xfd, 0xf7, 0xd3, 0x04, 0x3c,
+ 0xfa, 0xf1, 0x05, 0xc1, 0xfa, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0xff, 0xec, 0x05, 0xa9, 0x05, 0xae, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x21, 0x15, 0x21, 0x22, 0x24, 0x02, 0x35,
+ 0x34, 0x12, 0x24, 0x33, 0x21, 0x15, 0x21, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x21, 0x15, 0x01, 0x35, 0x06, 0x39, 0x43, 0x7d, 0x7c, 0x85, 0x02,
+ 0x73, 0xfd, 0x8d, 0xad, 0xfe, 0xc0, 0xaa, 0xaa, 0x01, 0x40, 0xad, 0x02,
+ 0x73, 0xfd, 0x8d, 0x85, 0x7c, 0x7d, 0x43, 0x3a, 0x08, 0x04, 0x76, 0x02,
+ 0x73, 0x4a, 0x78, 0x8b, 0x4e, 0x4c, 0x01, 0x9f, 0xc6, 0x01, 0x60, 0xbb,
+ 0xb9, 0x01, 0x60, 0xc8, 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x78, 0x5d, 0xa0,
+ 0x00, 0x03, 0x00, 0x9d, 0xfe, 0xe5, 0x05, 0xa9, 0x06, 0xaf, 0x00, 0x1e,
+ 0x00, 0x26, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x17, 0x07, 0x21, 0x15, 0x21,
+ 0x03, 0x21, 0x15, 0x21, 0x03, 0x16, 0x33, 0x21, 0x15, 0x21, 0x22, 0x27,
+ 0x03, 0x27, 0x13, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x24, 0x3b,
+ 0x01, 0x01, 0x14, 0x17, 0x16, 0x17, 0x16, 0x17, 0x13, 0x37, 0x13, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x04, 0x5c, 0x87, 0x42, 0x01, 0x07,
+ 0xfe, 0xc5, 0xa6, 0x01, 0xe1, 0xfd, 0xea, 0x9e, 0x20, 0x21, 0x02, 0x73,
+ 0xfd, 0x8d, 0x3b, 0x38, 0x5a, 0x87, 0x56, 0x28, 0x27, 0xa0, 0xaa, 0xaa,
+ 0x01, 0x40, 0xad, 0xd2, 0xfd, 0x2e, 0x3f, 0x4c, 0x74, 0x1a, 0x1a, 0x90,
+ 0x36, 0xa5, 0x9e, 0x85, 0x7c, 0x70, 0x50, 0x42, 0x06, 0xaf, 0x37, 0xca,
+ 0x9f, 0xfe, 0x04, 0xa0, 0xfe, 0x1d, 0x05, 0x9f, 0x0b, 0xfe, 0xee, 0x37,
+ 0x01, 0x08, 0x13, 0x18, 0x63, 0x01, 0x60, 0xbb, 0xb9, 0x01, 0x60, 0xc8,
+ 0xfc, 0xc5, 0x4a, 0x78, 0x91, 0x48, 0x10, 0x0d, 0x01, 0xb8, 0xa0, 0x01,
+ 0xfc, 0x4e, 0x47, 0x92, 0x78, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x9b, 0x04, 0x68, 0x04, 0x67, 0x00, 0x16, 0x00, 0x00, 0x25, 0x20,
+ 0x24, 0x35, 0x34, 0x24, 0x29, 0x01, 0x15, 0x05, 0x06, 0x07, 0x06, 0x07,
+ 0x21, 0x15, 0x21, 0x16, 0x17, 0x16, 0x33, 0x21, 0x15, 0x02, 0xda, 0xfe,
+ 0xf6, 0xfe, 0xf3, 0x01, 0x0d, 0x01, 0x0a, 0x01, 0x8e, 0xfe, 0x72, 0xd1,
+ 0x5e, 0x46, 0x1b, 0x03, 0x1e, 0xfc, 0xe2, 0x21, 0x40, 0x67, 0xc8, 0x01,
+ 0x8e, 0x9b, 0xf6, 0xf0, 0xf0, 0xf6, 0x8e, 0x01, 0x01, 0x4f, 0x3a, 0x85,
+ 0x8e, 0x91, 0x30, 0x51, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0xff, 0xec, 0x05, 0xa9, 0x05, 0xae, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x21, 0x35, 0x21, 0x32, 0x04, 0x12, 0x15,
+ 0x14, 0x02, 0x04, 0x23, 0x21, 0x35, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x21, 0x35, 0x05, 0x11, 0x06, 0x39, 0x43, 0x7e, 0x7b, 0x85, 0xfd,
+ 0x8d, 0x02, 0x73, 0xad, 0x01, 0x3f, 0xab, 0xab, 0xfe, 0xc1, 0xad, 0xfd,
+ 0x8d, 0x02, 0x73, 0x85, 0x7b, 0x7d, 0x44, 0x3a, 0x08, 0xfb, 0x8a, 0x03,
+ 0x27, 0x4a, 0x78, 0x8b, 0x4e, 0x4c, 0x01, 0x9f, 0xc6, 0xfe, 0xa0, 0xbb,
+ 0xb9, 0xfe, 0xa0, 0xc8, 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x78, 0x5d, 0xa0,
+ 0x00, 0x03, 0x00, 0x9d, 0xfe, 0xe5, 0x05, 0xa9, 0x06, 0xaf, 0x00, 0x1e,
+ 0x00, 0x26, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x27, 0x37, 0x21, 0x35, 0x21,
+ 0x13, 0x21, 0x35, 0x21, 0x13, 0x26, 0x23, 0x21, 0x35, 0x21, 0x32, 0x17,
+ 0x13, 0x17, 0x03, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x04, 0x2b,
+ 0x01, 0x01, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x03, 0x07, 0x03, 0x33,
+ 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x01, 0xea, 0x87, 0x41, 0xfe, 0xfa,
+ 0x01, 0x3a, 0xa7, 0xfe, 0x1f, 0x02, 0x15, 0x9f, 0x21, 0x20, 0xfd, 0x8d,
+ 0x02, 0x73, 0x3a, 0x39, 0x5a, 0x87, 0x56, 0x27, 0x28, 0x9f, 0xab, 0xab,
+ 0xfe, 0xc1, 0xad, 0xd3, 0x02, 0xd3, 0x3f, 0x4c, 0x75, 0x1a, 0x1a, 0x90,
+ 0x35, 0xa6, 0x9f, 0x84, 0x7c, 0x71, 0x50, 0x42, 0xfe, 0xe5, 0x37, 0xca,
+ 0x9f, 0x01, 0xfc, 0xa0, 0x01, 0xe3, 0x05, 0x9f, 0x0b, 0x01, 0x12, 0x37,
+ 0xfe, 0xf8, 0x13, 0x18, 0x63, 0xfe, 0xa0, 0xbb, 0xb9, 0xfe, 0xa0, 0xc8,
+ 0x03, 0x3b, 0x4a, 0x78, 0x91, 0x48, 0x10, 0x0d, 0xfe, 0x48, 0xa0, 0xfe,
+ 0x04, 0x4e, 0x47, 0x92, 0x78, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x9b, 0x04, 0x68, 0x04, 0x67, 0x00, 0x16, 0x00, 0x00, 0x01, 0x20,
+ 0x04, 0x15, 0x14, 0x04, 0x29, 0x01, 0x35, 0x25, 0x32, 0x37, 0x36, 0x37,
+ 0x21, 0x35, 0x05, 0x26, 0x27, 0x26, 0x07, 0x21, 0x35, 0x02, 0x51, 0x01,
+ 0x0a, 0x01, 0x0d, 0xfe, 0xf3, 0xfe, 0xf6, 0xfe, 0x72, 0x01, 0x8e, 0xd1,
+ 0x5e, 0x46, 0x1b, 0xfc, 0xe2, 0x03, 0x1e, 0x22, 0x3f, 0x68, 0xc7, 0xfe,
+ 0x72, 0x04, 0x67, 0xf6, 0xf1, 0xef, 0xf6, 0x8e, 0x01, 0x50, 0x3a, 0x85,
+ 0x8e, 0x01, 0x91, 0x31, 0x52, 0x01, 0x8e, 0x00, 0x00, 0x01, 0x01, 0x0e,
+ 0x00, 0x00, 0x03, 0x87, 0x03, 0xe2, 0x00, 0x03, 0x00, 0x00, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x0e, 0x02, 0x79, 0x03, 0xe2, 0xfc, 0x1e, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x8c, 0xfe, 0x77, 0x04, 0xe6, 0x05, 0xc1, 0x00, 0x07,
+ 0x00, 0x00, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x8c, 0x04,
+ 0x5a, 0xd8, 0xfd, 0x56, 0xd8, 0x05, 0xc1, 0xf8, 0xb6, 0x06, 0x7d, 0xf9,
+ 0x83, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8c, 0xfe, 0x77, 0x04, 0xe6,
+ 0x05, 0xc1, 0x00, 0x07, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x8c, 0xd8, 0x02, 0xaa, 0xd8, 0xfe, 0x77, 0x07, 0x4a, 0xf9,
+ 0x83, 0x06, 0x7d, 0xf8, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x16,
+ 0xfe, 0x77, 0x04, 0xb6, 0x05, 0xc1, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x09, 0x01, 0x21, 0x15, 0x21, 0x35, 0x09, 0x01, 0x32, 0x04,
+ 0x6c, 0xfc, 0xa1, 0x02, 0x5c, 0xfd, 0x90, 0x03, 0x8a, 0xfb, 0x61, 0x02,
+ 0x8d, 0xfd, 0x8f, 0x05, 0xc1, 0xc1, 0xfd, 0x33, 0xfd, 0x04, 0xc0, 0x95,
+ 0x03, 0x21, 0x02, 0xe3, 0x00, 0x01, 0x00, 0xc3, 0x02, 0x2d, 0x05, 0x46,
+ 0x02, 0xd7, 0x00, 0x03, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0xc3, 0x04,
+ 0x82, 0xfb, 0x7e, 0x02, 0xd7, 0xaa, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x00, 0x05, 0x46, 0x05, 0x04, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x21, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21,
+ 0x01, 0x35, 0x21, 0x15, 0x03, 0x50, 0x97, 0xfe, 0x0a, 0x01, 0xf6, 0x97,
+ 0x01, 0xf5, 0xfe, 0x0b, 0xfd, 0x73, 0x04, 0x82, 0x01, 0x83, 0xaa, 0x01,
+ 0x83, 0xfe, 0x7d, 0xaa, 0x02, 0xd7, 0xaa, 0xaa, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x00, 0x05, 0x46, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x19,
+ 0x01, 0x33, 0x15, 0x23, 0x03, 0x50, 0x01, 0xf5, 0xfe, 0x0b, 0x97, 0xfe,
+ 0x0a, 0x01, 0xf6, 0x97, 0x97, 0x04, 0xa0, 0xfe, 0x05, 0xaa, 0xfe, 0x05,
+ 0x01, 0xfb, 0xaa, 0x01, 0xfb, 0x01, 0x35, 0xcc, 0xff, 0xff, 0x00, 0x00,
+ 0xff, 0x42, 0x02, 0x6d, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x12, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x62, 0xff, 0x92, 0x03, 0xd0, 0x06, 0x25, 0x10, 0x07,
+ 0x00, 0x3f, 0x01, 0x63, 0x00, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0xeb,
+ 0x00, 0x00, 0x05, 0x1e, 0x05, 0x04, 0x00, 0x11, 0x00, 0x00, 0x01, 0x25,
+ 0x37, 0x05, 0x11, 0x33, 0x11, 0x25, 0x17, 0x0d, 0x01, 0x07, 0x25, 0x11,
+ 0x23, 0x11, 0x05, 0x27, 0x02, 0x6c, 0xfe, 0x7f, 0x4d, 0x01, 0x81, 0x97,
+ 0x01, 0x81, 0x4c, 0xfe, 0x7f, 0x01, 0x81, 0x4c, 0xfe, 0x7f, 0x97, 0xfe,
+ 0x7f, 0x4d, 0x02, 0x82, 0xf7, 0x93, 0xf7, 0x01, 0xef, 0xfe, 0x11, 0xf7,
+ 0x93, 0xf7, 0xf7, 0x93, 0xf7, 0xfe, 0x11, 0x01, 0xef, 0xf7, 0x93, 0x00,
+ 0xff, 0xff, 0x01, 0x23, 0x01, 0x47, 0x03, 0x5f, 0x03, 0xc2, 0x10, 0x07,
+ 0x00, 0x72, 0x00, 0x74, 0xfd, 0xd2, 0x00, 0x00, 0xff, 0xff, 0x01, 0x35,
+ 0x01, 0x59, 0x03, 0x4d, 0x03, 0xa9, 0x10, 0x06, 0x07, 0x57, 0x21, 0x88,
+ 0x00, 0x01, 0x00, 0x36, 0xff, 0xd7, 0x04, 0x97, 0x06, 0x7d, 0x00, 0x0a,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x01, 0x23, 0x01, 0x07, 0x27, 0x25,
+ 0x13, 0x03, 0xec, 0xaa, 0x67, 0xfd, 0xe9, 0x3b, 0xfe, 0xe1, 0x71, 0x16,
+ 0x00, 0xff, 0xe6, 0x06, 0x7d, 0x60, 0xf9, 0xba, 0x03, 0x73, 0x2d, 0x50,
+ 0x62, 0xfd, 0x3b, 0x00, 0xff, 0xff, 0x00, 0x36, 0xff, 0xd7, 0x04, 0x97,
+ 0x07, 0x76, 0x12, 0x26, 0x08, 0xf6, 0x00, 0x00, 0x10, 0x07, 0x00, 0x75,
+ 0x00, 0x68, 0x01, 0x86, 0xff, 0xff, 0x00, 0x36, 0xff, 0xd7, 0x04, 0x97,
+ 0x07, 0x65, 0x12, 0x26, 0x08, 0xf6, 0x00, 0x00, 0x10, 0x07, 0x07, 0xa2,
+ 0x00, 0x68, 0x01, 0x86, 0x00, 0x02, 0x00, 0xc6, 0x00, 0xe5, 0x04, 0x5f,
+ 0x03, 0xe5, 0x00, 0x0b, 0x00, 0x31, 0x00, 0x00, 0x01, 0x32, 0x37, 0x02,
+ 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x05, 0x15, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x36,
+ 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07, 0x12, 0x33, 0x01, 0xda,
+ 0x95, 0x59, 0x72, 0x7c, 0x5a, 0x2e, 0x30, 0x30, 0x33, 0x02, 0xda, 0x46,
+ 0x41, 0x31, 0x31, 0x2e, 0x1c, 0x2c, 0x3d, 0x35, 0x41, 0x69, 0x79, 0x50,
+ 0x55, 0x55, 0x4a, 0x81, 0x42, 0x30, 0x39, 0x27, 0x24, 0x24, 0x3c, 0x35,
+ 0x42, 0x68, 0x44, 0x3a, 0x85, 0x68, 0x72, 0x7b, 0x01, 0x6b, 0xf0, 0x01,
+ 0x06, 0x48, 0x4d, 0x66, 0x70, 0x45, 0x46, 0x02, 0x84, 0x1e, 0x1b, 0x3f,
+ 0x24, 0x54, 0x78, 0x35, 0x40, 0x65, 0x6a, 0xaf, 0xa8, 0x72, 0x65, 0x1e,
+ 0x21, 0x39, 0x33, 0x45, 0x78, 0x35, 0x40, 0x83, 0xf0, 0xfe, 0xfa, 0x00,
+ 0x00, 0x03, 0x00, 0xc6, 0x00, 0xe5, 0x05, 0x3a, 0x03, 0xe5, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x25, 0x32, 0x37, 0x02, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x01, 0x22, 0x07, 0x12, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x03, 0x48, 0x1c, 0x2c, 0x3d, 0x35,
+ 0x42, 0x68, 0x79, 0x50, 0x55, 0x55, 0x4b, 0x80, 0x42, 0x30, 0x39, 0x27,
+ 0x24, 0x24, 0x3c, 0x35, 0x43, 0x67, 0x7a, 0x50, 0x54, 0x54, 0x4c, 0x80,
+ 0x41, 0x31, 0x31, 0xfe, 0x64, 0x95, 0x59, 0x72, 0x7c, 0x5a, 0x2e, 0x31,
+ 0x31, 0x33, 0x02, 0xa0, 0x86, 0x67, 0x71, 0x7c, 0x5a, 0x2e, 0x31, 0x31,
+ 0x32, 0x01, 0x5d, 0x24, 0x54, 0x78, 0x35, 0x40, 0x65, 0x6a, 0xaf, 0xa8,
+ 0x72, 0x65, 0x1e, 0x21, 0x39, 0x33, 0x45, 0x78, 0x35, 0x40, 0x65, 0x6a,
+ 0xaf, 0xa8, 0x72, 0x65, 0x1e, 0x1b, 0x4d, 0xf0, 0x01, 0x06, 0x48, 0x4d,
+ 0x66, 0x70, 0x45, 0x46, 0x01, 0xf4, 0xf0, 0xfe, 0xfa, 0x48, 0x4d, 0x66,
+ 0x70, 0x45, 0x46, 0x00, 0x00, 0x01, 0x00, 0xfe, 0x00, 0xcb, 0x05, 0x0a,
+ 0x05, 0x49, 0x00, 0x05, 0x00, 0x00, 0x25, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x05, 0x0a, 0xfb, 0xf5, 0x99, 0x03, 0x72, 0xcb, 0x04, 0x7e, 0xfc, 0x2c,
+ 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x25, 0x15, 0x21, 0x01, 0x33, 0x01, 0x05, 0xa8, 0xfa, 0xf6,
+ 0x03, 0x59, 0xda, 0xfd, 0x1d, 0xca, 0xca, 0x05, 0xd5, 0xfa, 0xf5, 0x00,
+ 0x00, 0x02, 0x00, 0x9d, 0xff, 0x94, 0x05, 0xa9, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x1b, 0x00, 0x00, 0x25, 0x26, 0x27, 0x26, 0x27, 0x01, 0x13, 0x01,
+ 0x33, 0x01, 0x16, 0x17, 0x16, 0x17, 0x21, 0x15, 0x21, 0x16, 0x15, 0x23,
+ 0x34, 0x27, 0x21, 0x01, 0x26, 0x27, 0x37, 0x16, 0x03, 0xf0, 0x23, 0x43,
+ 0x3a, 0x4e, 0xfe, 0xec, 0xcc, 0x01, 0x3d, 0xda, 0xfe, 0x78, 0x65, 0x4a,
+ 0x54, 0x26, 0x01, 0x36, 0xfe, 0xe8, 0x04, 0x7e, 0x05, 0xfc, 0x8d, 0x01,
+ 0xd8, 0x1b, 0x1c, 0x48, 0x1a, 0xca, 0x8b, 0x86, 0x73, 0x5e, 0xfe, 0x1e,
+ 0x02, 0xe3, 0x02, 0x28, 0xfd, 0x52, 0x73, 0x93, 0xa7, 0xb0, 0xca, 0x35,
+ 0x37, 0x37, 0x35, 0x03, 0x36, 0x15, 0x14, 0x75, 0x13, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xd5, 0xff, 0xfa, 0x05, 0x46, 0x05, 0xd1, 0x00, 0x17,
+ 0x00, 0x1d, 0x00, 0x00, 0x09, 0x01, 0x37, 0x01, 0x26, 0x27, 0x37, 0x16,
+ 0x17, 0x25, 0x15, 0x05, 0x16, 0x07, 0x15, 0x06, 0x07, 0x05, 0x15, 0x25,
+ 0x06, 0x07, 0x27, 0x36, 0x13, 0x09, 0x01, 0x36, 0x37, 0x36, 0x03, 0x1a,
+ 0xfd, 0xbb, 0x02, 0x02, 0x4d, 0x17, 0x1a, 0x7d, 0x1a, 0x17, 0x01, 0xa5,
+ 0xfe, 0xaf, 0x3f, 0x06, 0x06, 0x40, 0x01, 0x5e, 0xfe, 0x54, 0x19, 0x1b,
+ 0x78, 0x1c, 0x6c, 0xfe, 0x14, 0x01, 0xe4, 0x2f, 0x04, 0x06, 0x01, 0x34,
+ 0x01, 0x52, 0xc0, 0x01, 0x57, 0x21, 0x1e, 0x4c, 0x21, 0x24, 0xee, 0xd2,
+ 0xbe, 0xb3, 0xc6, 0x09, 0xa1, 0x93, 0xbf, 0xd2, 0xf1, 0x26, 0x21, 0x4c,
+ 0x20, 0x02, 0xe9, 0xfe, 0xe7, 0xfe, 0xf0, 0x7b, 0x81, 0x9e, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x84, 0xfe, 0x4a, 0x02, 0x15, 0x06, 0x2b, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x23, 0x01, 0x85, 0x90, 0x90, 0x06, 0x2b,
+ 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5b, 0xfe, 0x4a, 0x03, 0x3f,
+ 0x06, 0x2b, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x37, 0x17,
+ 0x05, 0x11, 0x23, 0x11, 0x07, 0x27, 0x01, 0x85, 0x90, 0xe2, 0x48, 0xfe,
+ 0xd6, 0x90, 0xe4, 0x45, 0x02, 0x56, 0x03, 0xd5, 0xfc, 0x9c, 0xb0, 0x6f,
+ 0xe7, 0xfc, 0x29, 0x03, 0x67, 0xb1, 0x6e, 0x00, 0x00, 0x02, 0x00, 0xf4,
+ 0xfe, 0x4a, 0x02, 0xa5, 0x06, 0x2b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23, 0xf5, 0x90, 0x90, 0x01,
+ 0x20, 0x90, 0x90, 0x06, 0x2b, 0xf8, 0x1f, 0x07, 0xe1, 0xf8, 0x1f, 0x00,
+ 0x00, 0x01, 0x00, 0x5b, 0xfe, 0x4a, 0x03, 0x3f, 0x06, 0x2b, 0x00, 0x13,
+ 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x37, 0x11, 0x33, 0x11, 0x37, 0x17,
+ 0x07, 0x11, 0x23, 0x11, 0x07, 0x11, 0x23, 0x11, 0x07, 0x27, 0xf5, 0x90,
+ 0x90, 0x90, 0x52, 0x48, 0x9a, 0x90, 0x90, 0x90, 0x54, 0x45, 0x01, 0xe6,
+ 0x04, 0x45, 0xfc, 0x2b, 0x71, 0x03, 0x64, 0xfd, 0x0c, 0x40, 0x6f, 0x78,
+ 0xfb, 0xba, 0x03, 0xd7, 0x70, 0xfc, 0x99, 0x02, 0xf7, 0x41, 0x6e, 0x00,
+ 0x00, 0x01, 0x00, 0xed, 0x00, 0x00, 0x04, 0x58, 0x04, 0xa2, 0x00, 0x06,
+ 0x00, 0x00, 0x33, 0x01, 0x33, 0x01, 0x23, 0x09, 0x01, 0xee, 0x01, 0x44,
+ 0xe2, 0x01, 0x44, 0xb0, 0xfe, 0xfb, 0xfe, 0xfa, 0x04, 0xa2, 0xfb, 0x5e,
+ 0x03, 0xac, 0xfc, 0x54, 0x00, 0x01, 0x00, 0xed, 0x00, 0x00, 0x04, 0x58,
+ 0x04, 0xa2, 0x00, 0x06, 0x00, 0x00, 0x13, 0x33, 0x09, 0x01, 0x33, 0x01,
+ 0x23, 0xee, 0xaf, 0x01, 0x06, 0x01, 0x05, 0xb0, 0xfe, 0xbc, 0xe2, 0x04,
+ 0xa2, 0xfc, 0x54, 0x03, 0xac, 0xfb, 0x5e, 0x00, 0x00, 0x01, 0x00, 0xed,
+ 0x00, 0x00, 0x04, 0x58, 0x04, 0xa2, 0x00, 0x11, 0x00, 0x00, 0x13, 0x10,
+ 0x12, 0x33, 0x32, 0x12, 0x19, 0x01, 0x23, 0x11, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x15, 0x11, 0x23, 0xee, 0xdc, 0xd9, 0xd8, 0xdd, 0x9b, 0x85, 0x95,
+ 0x95, 0x86, 0x9a, 0x02, 0x50, 0x01, 0x28, 0x01, 0x2a, 0xfe, 0xd6, 0xfe,
+ 0xd8, 0xfd, 0xb0, 0x02, 0x37, 0xf4, 0xd3, 0xd3, 0xf4, 0xfd, 0xc9, 0x00,
+ 0x00, 0x01, 0x00, 0xed, 0x00, 0x00, 0x04, 0x58, 0x04, 0xa2, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x11, 0x33, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0xee, 0x9a, 0x86, 0x95,
+ 0x95, 0x85, 0x9b, 0xdd, 0xd8, 0xd9, 0xdc, 0x02, 0x52, 0x02, 0x50, 0xfd,
+ 0xc9, 0xf4, 0xd3, 0xd3, 0xf4, 0x02, 0x37, 0xfd, 0xb0, 0xfe, 0xd8, 0xfe,
+ 0xd6, 0x01, 0x2a, 0x00, 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x15, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x32, 0x16, 0x17,
+ 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37,
+ 0x16, 0x33, 0x32, 0x37, 0x01, 0xb3, 0x07, 0x92, 0x88, 0x71, 0x12, 0x85,
+ 0x10, 0x33, 0x40, 0x07, 0x3a, 0x08, 0x91, 0x88, 0x72, 0x12, 0x85, 0x10,
+ 0x33, 0x40, 0x07, 0x04, 0xe2, 0xa7, 0x85, 0x7d, 0x8c, 0x0f, 0x82, 0xaf,
+ 0xfa, 0xb0, 0xa7, 0x85, 0x7d, 0x8c, 0x0f, 0x82, 0xaf, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0xfe, 0x4d, 0x05, 0x46, 0x06, 0x0e, 0x10, 0x26,
+ 0x09, 0x07, 0x00, 0x00, 0x10, 0x07, 0x09, 0x07, 0x01, 0xee, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x69, 0xfe, 0x4d, 0x07, 0x34, 0x06, 0x0e, 0x10, 0x26,
+ 0x09, 0x07, 0x00, 0x00, 0x10, 0x27, 0x09, 0x07, 0x01, 0xee, 0x00, 0x00,
+ 0x10, 0x07, 0x09, 0x07, 0x03, 0xdc, 0x00, 0x00, 0x00, 0x03, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x2d, 0x00, 0x36, 0x00, 0x3f,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x07,
+ 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x03, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x37, 0x16,
+ 0x33, 0x32, 0x37, 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x13, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x03, 0x13, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x01, 0xb3, 0x07, 0x4b, 0x47, 0x42,
+ 0x46, 0x40, 0x31, 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0c, 0x59, 0x3b,
+ 0x63, 0x63, 0x4d, 0x68, 0x0d, 0x08, 0x4a, 0x47, 0x43, 0x45, 0x40, 0x32,
+ 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64, 0x4b,
+ 0x69, 0x7c, 0x37, 0x28, 0x3e, 0x40, 0x21, 0x28, 0xaa, 0x14, 0x37, 0x28,
+ 0x40, 0x43, 0x21, 0x04, 0xe2, 0xa7, 0x44, 0x41, 0x46, 0x37, 0x8c, 0x0f,
+ 0x82, 0xaf, 0xfe, 0xd6, 0x18, 0x4b, 0x7c, 0x92, 0x9c, 0x6f, 0x55, 0x13,
+ 0xfe, 0xbe, 0xa7, 0x44, 0x41, 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0x01,
+ 0x31, 0x18, 0x49, 0x6f, 0x9b, 0x9c, 0x73, 0x56, 0x13, 0xfd, 0x9b, 0x10,
+ 0x2f, 0x48, 0x67, 0x6a, 0x47, 0x24, 0x12, 0xfe, 0x34, 0x01, 0xd6, 0x11,
+ 0x2e, 0x4a, 0x68, 0x67, 0x48, 0x24, 0x00, 0x00, 0x00, 0x04, 0x00, 0x69,
+ 0xfe, 0x4d, 0x05, 0x46, 0x06, 0x0e, 0x00, 0x4d, 0x00, 0x51, 0x00, 0x5a,
+ 0x00, 0x63, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x21, 0x13, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x03, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13, 0x21, 0x03,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x13, 0x21,
+ 0x13, 0x21, 0x03, 0x13, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x01,
+ 0x03, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0xb3, 0x07, 0x4b,
+ 0x47, 0x42, 0x46, 0x40, 0x31, 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0c,
+ 0x01, 0x57, 0x0e, 0x07, 0x4b, 0x47, 0x42, 0x46, 0x40, 0x31, 0x12, 0x85,
+ 0x0f, 0x34, 0x40, 0x07, 0x0c, 0x59, 0x3b, 0x63, 0x63, 0x4d, 0x68, 0x0d,
+ 0x08, 0x4a, 0x47, 0x43, 0x45, 0x40, 0x32, 0x12, 0x86, 0x0f, 0x33, 0x40,
+ 0x07, 0x0d, 0xfe, 0xa8, 0x0d, 0x08, 0x4a, 0x47, 0x43, 0x45, 0x40, 0x32,
+ 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64, 0x4b,
+ 0x69, 0x7b, 0x01, 0x58, 0x16, 0xfe, 0xa8, 0xab, 0x14, 0x37, 0x28, 0x40,
+ 0x43, 0x21, 0x02, 0xbf, 0x13, 0x36, 0x28, 0x3e, 0x40, 0x21, 0x04, 0xe2,
+ 0xa7, 0x44, 0x41, 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xe2, 0x01,
+ 0x37, 0xa7, 0x44, 0x41, 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xd6,
+ 0x18, 0x4b, 0x7c, 0x92, 0x9c, 0x6f, 0x55, 0x13, 0xfe, 0xbe, 0xa7, 0x44,
+ 0x41, 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0x01, 0x24, 0xfe, 0xc3, 0xa7,
+ 0x44, 0x41, 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0x01, 0x30, 0x19, 0x49,
+ 0x6f, 0x9b, 0x9c, 0x73, 0x56, 0x13, 0xfd, 0x92, 0x01, 0xf1, 0xfe, 0x21,
+ 0x01, 0xd6, 0x11, 0x2e, 0x4a, 0x68, 0x67, 0x48, 0x24, 0x01, 0xba, 0xfe,
+ 0x2b, 0x10, 0x2f, 0x48, 0x67, 0x6a, 0x47, 0x24, 0x00, 0x05, 0x00, 0x69,
+ 0xfe, 0x4d, 0x07, 0x34, 0x06, 0x0e, 0x00, 0x6d, 0x00, 0x71, 0x00, 0x75,
+ 0x00, 0x7e, 0x00, 0x87, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x21, 0x13, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07,
+ 0x03, 0x21, 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x07,
+ 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x03, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x37, 0x16,
+ 0x33, 0x32, 0x37, 0x13, 0x21, 0x03, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13, 0x21, 0x03, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x13, 0x21, 0x03,
+ 0x29, 0x01, 0x13, 0x21, 0x03, 0x13, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x01, 0x03, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0xb3,
+ 0x07, 0x4b, 0x47, 0x42, 0x46, 0x40, 0x31, 0x12, 0x85, 0x10, 0x33, 0x40,
+ 0x07, 0x0c, 0x01, 0x57, 0x0e, 0x07, 0x4b, 0x47, 0x42, 0x46, 0x40, 0x31,
+ 0x12, 0x85, 0x0f, 0x34, 0x40, 0x07, 0x0c, 0x01, 0x57, 0x0e, 0x07, 0x4b,
+ 0x47, 0x42, 0x46, 0x40, 0x32, 0x11, 0x85, 0x0f, 0x34, 0x3f, 0x08, 0x0c,
+ 0x59, 0x3b, 0x63, 0x63, 0x4d, 0x68, 0x0d, 0x07, 0x4b, 0x47, 0x43, 0x45,
+ 0x40, 0x32, 0x11, 0x85, 0x0f, 0x33, 0x40, 0x07, 0x0d, 0xfe, 0xa8, 0x0d,
+ 0x08, 0x4a, 0x47, 0x43, 0x45, 0x40, 0x32, 0x12, 0x86, 0x0f, 0x33, 0x40,
+ 0x07, 0x0d, 0xfe, 0xa8, 0x0d, 0x08, 0x4a, 0x47, 0x43, 0x45, 0x40, 0x32,
+ 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64, 0x4b,
+ 0x69, 0x03, 0xc1, 0x16, 0xfe, 0xa8, 0x15, 0xfe, 0x11, 0x01, 0x58, 0x16,
+ 0xfe, 0xa8, 0xab, 0x14, 0x37, 0x28, 0x40, 0x43, 0x21, 0x04, 0xad, 0x13,
+ 0x36, 0x28, 0x3e, 0x40, 0x21, 0x04, 0xe2, 0xa7, 0x44, 0x41, 0x46, 0x37,
+ 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xe2, 0x01, 0x37, 0xa7, 0x44, 0x41, 0x46,
+ 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xe2, 0x01, 0x37, 0xa7, 0x44, 0x41,
+ 0x46, 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xd6, 0x18, 0x4b, 0x7c, 0x92,
+ 0x9c, 0x6f, 0x55, 0x13, 0xfe, 0xbe, 0xa7, 0x44, 0x41, 0x46, 0x37, 0x8c,
+ 0x0f, 0x82, 0xaf, 0x01, 0x24, 0xfe, 0xc3, 0xa7, 0x44, 0x41, 0x46, 0x37,
+ 0x8c, 0x0f, 0x82, 0xaf, 0x01, 0x24, 0xfe, 0xc3, 0xa7, 0x44, 0x41, 0x46,
+ 0x37, 0x8c, 0x0f, 0x82, 0xaf, 0x01, 0x30, 0x19, 0x49, 0x6f, 0x9b, 0x9c,
+ 0x73, 0x56, 0x13, 0xfd, 0x92, 0x01, 0xf1, 0xfe, 0x0f, 0x01, 0xf1, 0xfe,
+ 0x21, 0x01, 0xd6, 0x11, 0x2e, 0x4a, 0x68, 0x67, 0x48, 0x24, 0x01, 0xba,
+ 0xfe, 0x2b, 0x10, 0x2f, 0x48, 0x67, 0x6a, 0x47, 0x24, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4c, 0x03, 0xc3, 0x06, 0x0f, 0x00, 0x33,
+ 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17, 0x16, 0x1d,
+ 0x01, 0x37, 0x17, 0x07, 0x23, 0x27, 0x37, 0x17, 0x35, 0x34, 0x27, 0x26,
+ 0x27, 0x03, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x06, 0x07, 0x06, 0x15, 0x23, 0x34, 0x37, 0x36, 0x37, 0x13,
+ 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x02, 0xd2, 0x10, 0x34, 0x3f, 0x07,
+ 0x0e, 0x50, 0x38, 0x6c, 0x54, 0x41, 0xab, 0x31, 0xa9, 0x41, 0x53, 0x47,
+ 0x2e, 0x28, 0x27, 0x08, 0x8f, 0x41, 0x47, 0x74, 0x12, 0x85, 0x10, 0x35,
+ 0x3e, 0x07, 0x27, 0x3a, 0x2a, 0x4d, 0x5c, 0x62, 0x4e, 0x61, 0x10, 0x07,
+ 0x90, 0x40, 0x48, 0x73, 0x12, 0x04, 0xf6, 0x82, 0xaf, 0xfe, 0xb3, 0x18,
+ 0x3f, 0x75, 0x9c, 0x1e, 0x5d, 0x48, 0xbd, 0xbd, 0x48, 0x5d, 0x1e, 0x73,
+ 0x4d, 0x33, 0x0b, 0xfc, 0x67, 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf,
+ 0x03, 0x88, 0x10, 0x2e, 0x56, 0x72, 0x9b, 0x6d, 0x56, 0x11, 0x01, 0x5f,
+ 0xa5, 0x87, 0x7a, 0x8f, 0x00, 0x03, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0xb4,
+ 0x06, 0x0e, 0x00, 0x08, 0x00, 0x11, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x13,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x25, 0x34, 0x27, 0x03, 0x3e,
+ 0x01, 0x37, 0x27, 0x37, 0x13, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17,
+ 0x16, 0x15, 0x37, 0x17, 0x07, 0x06, 0x07, 0x06, 0x07, 0x03, 0x0e, 0x01,
+ 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x01,
+ 0x8b, 0x14, 0x37, 0x28, 0x40, 0x43, 0x21, 0x01, 0x5a, 0x89, 0x14, 0x37,
+ 0x49, 0x08, 0x79, 0x41, 0x61, 0x10, 0x35, 0x3e, 0x07, 0x0c, 0x50, 0x44,
+ 0x62, 0x41, 0x41, 0x97, 0x17, 0x36, 0x4d, 0x68, 0x0d, 0x08, 0x8f, 0x89,
+ 0x73, 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64,
+ 0x4b, 0x69, 0x0e, 0x07, 0x8f, 0x89, 0x73, 0x12, 0x01, 0x4a, 0x01, 0xd6,
+ 0x11, 0x2e, 0x4a, 0x67, 0x68, 0x48, 0x24, 0xe6, 0x99, 0x3b, 0xfe, 0x2b,
+ 0x10, 0x65, 0x13, 0x88, 0x48, 0x02, 0x5d, 0x82, 0xaf, 0xfe, 0xd6, 0x16,
+ 0x4d, 0x6f, 0x7c, 0x48, 0x48, 0xa7, 0x43, 0x3f, 0x5a, 0x13, 0xfe, 0xbe,
+ 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf, 0x01, 0x31, 0x18, 0x49, 0x6f,
+ 0x9b, 0x9c, 0x73, 0x56, 0x13, 0x01, 0x3c, 0xa4, 0x88, 0x7a, 0x8f, 0x00,
+ 0x00, 0x03, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0xb6, 0x06, 0x0e, 0x00, 0x08,
+ 0x00, 0x12, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x13, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x01, 0x2e, 0x01, 0x27, 0x03, 0x3e, 0x01, 0x37, 0x07,
+ 0x27, 0x13, 0x26, 0x23, 0x22, 0x07, 0x03, 0x1e, 0x01, 0x1f, 0x01, 0x07,
+ 0x27, 0x14, 0x06, 0x07, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16,
+ 0x33, 0x32, 0x37, 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x01, 0x8b, 0x14, 0x37, 0x28, 0x40,
+ 0x43, 0x21, 0x01, 0x49, 0x20, 0x30, 0x28, 0x14, 0x37, 0x5f, 0x06, 0x4b,
+ 0x40, 0xa0, 0x10, 0x35, 0x3e, 0x07, 0x0c, 0x59, 0x7d, 0x10, 0x94, 0x41,
+ 0x44, 0xae, 0x68, 0x0d, 0x08, 0x8f, 0x89, 0x73, 0x12, 0x85, 0x10, 0x35,
+ 0x3e, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64, 0x4b, 0x69, 0x0e, 0x07, 0x8f,
+ 0x89, 0x73, 0x12, 0x01, 0x4a, 0x01, 0xd6, 0x11, 0x2e, 0x4a, 0x67, 0x68,
+ 0x48, 0x24, 0x01, 0x36, 0x42, 0x30, 0x12, 0xfe, 0x2b, 0x10, 0x82, 0x40,
+ 0x54, 0x48, 0x02, 0xef, 0x82, 0xaf, 0xfe, 0xd6, 0x18, 0x9d, 0x3f, 0xa4,
+ 0x48, 0x4b, 0x7c, 0xc0, 0x13, 0xfe, 0xbe, 0xa5, 0x87, 0x7a, 0x8f, 0x0f,
+ 0x82, 0xaf, 0x01, 0x31, 0x18, 0x49, 0x6f, 0x9b, 0x9c, 0x73, 0x56, 0x13,
+ 0x01, 0x3c, 0xa4, 0x88, 0x7a, 0x8f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6c,
+ 0x00, 0xcd, 0x04, 0x28, 0x04, 0xd5, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xa8,
+ 0xfe, 0x85, 0x10, 0x27, 0x09, 0xa1, 0x02, 0xa5, 0xfe, 0x85, 0x10, 0x07,
+ 0x09, 0xa1, 0x01, 0x26, 0x01, 0x8f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6c,
+ 0x00, 0xcd, 0x04, 0x28, 0x04, 0xd5, 0x10, 0x27, 0x09, 0xa1, 0x01, 0x26,
+ 0xfe, 0x85, 0x10, 0x27, 0x09, 0xa1, 0x02, 0xa5, 0x01, 0x8f, 0x10, 0x07,
+ 0x09, 0xa1, 0xff, 0xa8, 0x01, 0x8f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x90,
+ 0x00, 0xcd, 0x01, 0x4f, 0x04, 0xd6, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xcc,
+ 0x01, 0x90, 0x10, 0x07, 0x09, 0xa1, 0xff, 0xcc, 0xfe, 0x85, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x6c, 0x00, 0xcd, 0x04, 0x28, 0x04, 0xd5, 0x10, 0x27,
+ 0x09, 0xa1, 0x02, 0xa5, 0x01, 0x8f, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xa8,
+ 0x01, 0x8f, 0x10, 0x27, 0x09, 0xa1, 0x02, 0xa5, 0xfe, 0x85, 0x10, 0x07,
+ 0x09, 0xa1, 0xff, 0xa8, 0xfe, 0x85, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3,
+ 0x02, 0x2d, 0x05, 0x46, 0x04, 0x6a, 0x10, 0x27, 0x09, 0xa1, 0x01, 0xdf,
+ 0x01, 0x24, 0x10, 0x06, 0x08, 0xee, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0x00, 0x9f, 0x05, 0x46, 0x04, 0x6a, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x05, 0x21,
+ 0x15, 0x21, 0x04, 0x87, 0xbe, 0xbe, 0x01, 0xbe, 0xbe, 0xfc, 0x3b, 0x03,
+ 0x03, 0xfc, 0xfd, 0x01, 0x9d, 0xfe, 0x03, 0xcb, 0xfe, 0x95, 0xaa, 0x00,
+ 0xff, 0xff, 0x00, 0xc2, 0x00, 0x9f, 0x05, 0x46, 0x04, 0x6a, 0x10, 0x26,
+ 0x08, 0xee, 0x00, 0x00, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xfd, 0xfe, 0x57,
+ 0x10, 0x27, 0x09, 0xa1, 0xff, 0xfe, 0x01, 0x24, 0x10, 0x27, 0x09, 0xa1,
+ 0x03, 0xc2, 0xfe, 0x57, 0x10, 0x07, 0x09, 0xa1, 0x03, 0xc3, 0x01, 0x24,
+ 0xff, 0xff, 0x00, 0xc3, 0x00, 0x9f, 0x05, 0x46, 0x04, 0x6a, 0x10, 0x26,
+ 0x09, 0x18, 0x00, 0x00, 0x10, 0x27, 0x09, 0xa1, 0x01, 0xde, 0xfe, 0x57,
+ 0x10, 0x07, 0x09, 0xa1, 0x01, 0xdf, 0x01, 0x24, 0x00, 0x01, 0x00, 0xc3,
+ 0x01, 0xd3, 0x05, 0x46, 0x03, 0x32, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x36, 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x09,
+ 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63,
+ 0x85, 0x09, 0x05, 0x05, 0x0e, 0x8b, 0x55, 0x4d, 0x98, 0x03, 0x32, 0xb3,
+ 0x4e, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3, 0x4e,
+ 0x45, 0x3b, 0x05, 0x02, 0x02, 0x06, 0x3d, 0x4b, 0x00, 0x01, 0x00, 0xc3,
+ 0x01, 0xd3, 0x05, 0x46, 0x03, 0x32, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x1e,
+ 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16,
+ 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x27, 0xc3, 0x5d, 0x98, 0x4e, 0x54, 0x8c, 0x0d, 0x05,
+ 0x05, 0x0a, 0x84, 0x63, 0x58, 0xa1, 0x5e, 0x58, 0x9b, 0x4f, 0x55, 0x8b,
+ 0x0e, 0x05, 0x06, 0x09, 0x84, 0x63, 0x57, 0xa1, 0x5f, 0x03, 0x32, 0x55,
+ 0x4b, 0x3d, 0x06, 0x02, 0x02, 0x05, 0x3b, 0x45, 0x4e, 0xb3, 0x54, 0x4c,
+ 0x3d, 0x06, 0x02, 0x03, 0x04, 0x3b, 0x45, 0x4e, 0x00, 0x01, 0x00, 0x91,
+ 0x01, 0x31, 0x05, 0x77, 0x03, 0xd4, 0x00, 0x29, 0x00, 0x00, 0x01, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x15, 0x1e, 0x01, 0x33, 0x15, 0x22, 0x2e, 0x01,
+ 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x2e, 0x01, 0x23, 0x37, 0x32, 0x1e, 0x01, 0x15, 0x14, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x02, 0xe7, 0x49, 0x8f, 0x40, 0x4a, 0x5a, 0x01,
+ 0x5e, 0x46, 0x5f, 0x8c, 0x53, 0x5a, 0x80, 0x63, 0x6c, 0xaf, 0x37, 0x3a,
+ 0x9e, 0x41, 0x4a, 0x5a, 0x02, 0x5e, 0x46, 0x01, 0x5e, 0x8d, 0x53, 0x5a,
+ 0x80, 0x63, 0x6c, 0xb1, 0x02, 0x2e, 0x74, 0x74, 0x6c, 0x48, 0x3d, 0x59,
+ 0x9b, 0x4f, 0x9a, 0x48, 0x4c, 0xa2, 0x5c, 0x7d, 0x58, 0x5b, 0x8d, 0x6c,
+ 0x48, 0x3d, 0x59, 0x9b, 0x4f, 0x9a, 0x48, 0x4c, 0xa2, 0x5c, 0x7d, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x57, 0x05, 0x46, 0x04, 0xad, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x02, 0x23, 0x22, 0x03, 0x02, 0x27, 0x22, 0x03, 0x23,
+ 0x12, 0x33, 0x32, 0x13, 0x12, 0x17, 0x32, 0x13, 0x05, 0x45, 0x6f, 0xe2,
+ 0xcf, 0x59, 0x5c, 0x5c, 0x68, 0x50, 0x99, 0x6f, 0xe2, 0xcf, 0x5a, 0x5b,
+ 0x5c, 0x68, 0x50, 0x02, 0xd7, 0xfd, 0x80, 0x01, 0xd6, 0x01, 0xdc, 0x01,
+ 0xfe, 0x23, 0x02, 0x80, 0xfe, 0x2a, 0xfe, 0x24, 0x01, 0x01, 0xdd, 0x00,
+ 0x00, 0x01, 0x00, 0xbb, 0x00, 0x00, 0x01, 0xf8, 0x05, 0x02, 0x00, 0x1d,
+ 0x00, 0x00, 0x21, 0x23, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x35, 0x34, 0x26, 0x27, 0x33, 0x1e, 0x01, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x16, 0x01, 0xf8, 0xa2, 0x46,
+ 0x3d, 0x34, 0x03, 0x04, 0x02, 0x05, 0x36, 0x44, 0x4c, 0xa2, 0x46, 0x3e,
+ 0x35, 0x05, 0x02, 0x02, 0x05, 0x36, 0x43, 0x68, 0xb4, 0x60, 0x6e, 0x92,
+ 0x0a, 0x08, 0x06, 0x0e, 0x9c, 0x5e, 0x58, 0xac, 0x62, 0x6a, 0xb2, 0x62,
+ 0x6e, 0x92, 0x0c, 0x04, 0x06, 0x10, 0x9a, 0x5e, 0x56, 0xaa, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x9d, 0x05, 0x46, 0x04, 0x6c, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x13, 0x17, 0x03, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e,
+ 0x01, 0x23, 0x22, 0x27, 0x03, 0x27, 0x02, 0x9c, 0x5a, 0x3c, 0x50, 0x9a,
+ 0x59, 0x5f, 0xa1, 0x57, 0x54, 0x6c, 0x9c, 0x8b, 0x97, 0x5b, 0x3e, 0x4d,
+ 0x98, 0x5d, 0x5e, 0xa1, 0x58, 0x56, 0x6d, 0x9a, 0x8b, 0x02, 0x53, 0x20,
+ 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x2b, 0x01, 0x7e, 0x46, 0xfe, 0x8c, 0x20,
+ 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x2c, 0xfe, 0x85, 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x01, 0x10, 0x05, 0x46, 0x03, 0xa2, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x01, 0x21, 0x15,
+ 0x21, 0x05, 0x45, 0x5e, 0xa2, 0x57, 0x63, 0x83, 0x10, 0x05, 0x0d, 0x8c,
+ 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x09, 0x05, 0x05,
+ 0x0e, 0x8b, 0x55, 0x4d, 0x98, 0xfb, 0xdb, 0x04, 0x82, 0xfb, 0x7e, 0x02,
+ 0x6f, 0xb3, 0x4e, 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3,
+ 0x4e, 0x45, 0x3b, 0x05, 0x02, 0x02, 0x06, 0x3d, 0x4b, 0x01, 0x88, 0xa8,
+ 0x00, 0x02, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46, 0x03, 0xf4, 0x00, 0x1a,
+ 0x00, 0x1e, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x01, 0x21, 0x15, 0x21, 0x05, 0x45,
+ 0x5e, 0xa2, 0x57, 0x63, 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a,
+ 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55, 0x4d, 0x98,
+ 0xfb, 0xdb, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xf4, 0xb2, 0x4f, 0x45, 0x3b,
+ 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x09,
+ 0x3d, 0x4b, 0xfe, 0x6b, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x62, 0x05, 0x46, 0x04, 0xd3, 0x00, 0x25, 0x00, 0x26, 0x00, 0x00,
+ 0x01, 0x03, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x37, 0x23, 0x35, 0x21,
+ 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f,
+ 0x01, 0x13, 0x01, 0x04, 0x83, 0xb7, 0x1c, 0x21, 0x41, 0x53, 0x9d, 0x0b,
+ 0x5e, 0xa1, 0x58, 0x3b, 0x48, 0x82, 0x02, 0x5c, 0xfd, 0x3e, 0xa7, 0x7b,
+ 0x61, 0xff, 0x01, 0x70, 0xa6, 0x83, 0x50, 0x50, 0x9a, 0x59, 0x5f, 0xa1,
+ 0x57, 0x63, 0x85, 0x2d, 0xd7, 0xfd, 0xbe, 0x04, 0x6f, 0xfe, 0xe9, 0x0b,
+ 0x2d, 0x58, 0x22, 0xb2, 0x4f, 0x45, 0x16, 0xba, 0xaa, 0xfe, 0x64, 0x9a,
+ 0xaa, 0xf3, 0x38, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x16, 0x01, 0x49,
+ 0xfc, 0x8d, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0x00, 0xb8, 0x05, 0x46,
+ 0x04, 0xc1, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x00, 0x01, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36,
+ 0x01, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x05, 0x45, 0x5e, 0xa2,
+ 0x57, 0x63, 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f,
+ 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55, 0x4d, 0x98, 0xfb, 0xdb,
+ 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0xc1, 0xb2, 0x4f,
+ 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b,
+ 0x06, 0x07, 0x3f, 0x4b, 0xfe, 0x6b, 0xaa, 0xcb, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x18, 0x05, 0x46, 0x04, 0xc1, 0x00, 0x1a,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x01, 0x23, 0x35, 0x21, 0x37, 0x21,
+ 0x35, 0x21, 0x37, 0x17, 0x07, 0x33, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21,
+ 0x07, 0x27, 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x10, 0x05, 0x0d,
+ 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14,
+ 0x8b, 0x55, 0x4d, 0x98, 0xfc, 0xab, 0xd0, 0x01, 0x6d, 0xbc, 0xfd, 0xd7,
+ 0x02, 0xca, 0x7e, 0x64, 0x11, 0xe7, 0xfe, 0x77, 0xbb, 0x02, 0x44, 0xfd,
+ 0x1b, 0x95, 0x64, 0x04, 0xc1, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06,
+ 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x07, 0x3f, 0x4b, 0xfc,
+ 0x4c, 0xaa, 0xcb, 0xaa, 0x8a, 0x73, 0x17, 0xaa, 0xcb, 0xaa, 0xa0, 0x73,
+ 0x00, 0x01, 0x00, 0xc3, 0xff, 0xf6, 0x05, 0x46, 0x05, 0x42, 0x00, 0x2e,
+ 0x00, 0x00, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07,
+ 0x27, 0x37, 0x23, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x37, 0x27, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x01, 0x37,
+ 0x17, 0x03, 0xf2, 0x09, 0x08, 0x43, 0x57, 0x42, 0x66, 0x5e, 0xa1, 0x58,
+ 0x23, 0x27, 0x52, 0x01, 0xf3, 0xfd, 0xbb, 0x62, 0x02, 0xa7, 0xfd, 0x08,
+ 0x5e, 0x83, 0x37, 0xe0, 0x01, 0x32, 0x62, 0xfe, 0x6c, 0x01, 0xe6, 0x6a,
+ 0x2d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x59,
+ 0x78, 0x84, 0x04, 0x22, 0x01, 0x25, 0x1e, 0x5d, 0xb2, 0x4f, 0x45, 0x07,
+ 0xab, 0xaa, 0xcb, 0xaa, 0xc2, 0x4e, 0x74, 0xaa, 0xcb, 0xaa, 0xda, 0x14,
+ 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x25, 0xfa, 0x4e, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x01, 0x10, 0x05, 0x46, 0x03, 0xf4, 0x00, 0x1d,
+ 0x00, 0x3b, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x13, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x36, 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x09,
+ 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63,
+ 0x85, 0x09, 0x05, 0x05, 0x0e, 0x8b, 0x55, 0x4d, 0x98, 0x5d, 0x5e, 0xa1,
+ 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59,
+ 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x08, 0x05, 0x06, 0x0e, 0x8b, 0x55, 0x4d,
+ 0x98, 0x02, 0x6f, 0xb3, 0x4e, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d,
+ 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x3b, 0x05, 0x02, 0x02, 0x06, 0x3d, 0x4b,
+ 0x01, 0xda, 0xb2, 0x4f, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c,
+ 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x04, 0x02, 0x03, 0x06, 0x3d, 0x4b, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x05, 0x05, 0x46, 0x04, 0xff, 0x00, 0x34,
+ 0x00, 0x00, 0x01, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x2f, 0x01, 0x03, 0x27, 0x13, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x33, 0x32, 0x17, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x32, 0x1f, 0x01, 0x13, 0x17, 0x03, 0xa9, 0x33, 0x27, 0x4d,
+ 0x98, 0x5d, 0x5e, 0xa1, 0x58, 0x39, 0x45, 0x42, 0x84, 0x51, 0x4d, 0x98,
+ 0x5d, 0x5e, 0xa1, 0x58, 0x76, 0x70, 0x11, 0x7f, 0x94, 0x7c, 0x33, 0x27,
+ 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x3a, 0x45, 0x41, 0x83, 0x51, 0x50,
+ 0x9a, 0x59, 0x5f, 0xa1, 0xae, 0x91, 0x10, 0x7f, 0x93, 0x03, 0x61, 0x0d,
+ 0x4b, 0x55, 0xb2, 0x4f, 0x45, 0x14, 0xbb, 0x38, 0x4b, 0x55, 0xb3, 0x4e,
+ 0x45, 0x3b, 0x09, 0xfe, 0x98, 0x40, 0x01, 0x5e, 0x0d, 0x4c, 0x54, 0xb3,
+ 0x4e, 0x45, 0x14, 0xbb, 0x38, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x07,
+ 0x01, 0x66, 0x40, 0x00, 0x00, 0x03, 0x00, 0xc3, 0x00, 0xb8, 0x05, 0x46,
+ 0x04, 0xc9, 0x00, 0x1a, 0x00, 0x35, 0x00, 0x39, 0x00, 0x00, 0x01, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36,
+ 0x13, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33,
+ 0x32, 0x36, 0x01, 0x21, 0x15, 0x21, 0x05, 0x45, 0x5e, 0xa2, 0x57, 0x63,
+ 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57,
+ 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55, 0x4d, 0x98, 0x5d, 0x5e, 0xa2, 0x57,
+ 0x65, 0x81, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1,
+ 0x57, 0x63, 0x85, 0x0d, 0x14, 0xb2, 0x2e, 0x4d, 0x98, 0xfb, 0xdb, 0x04,
+ 0x82, 0xfb, 0x7e, 0x03, 0x4c, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06,
+ 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x07, 0x3f, 0x4b, 0x01,
+ 0xd2, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x53, 0xb2,
+ 0x4e, 0x45, 0x3b, 0x06, 0x07, 0x3f, 0x4b, 0xfc, 0xee, 0xaa, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0x00, 0x79, 0x05, 0x46, 0x04, 0xd1, 0x00, 0x1a,
+ 0x00, 0x35, 0x00, 0x50, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x13, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x13, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36,
+ 0x05, 0x45, 0x5e, 0xa2, 0x57, 0x63, 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54,
+ 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55,
+ 0x4d, 0x98, 0x5d, 0x5e, 0xa2, 0x57, 0x63, 0x83, 0x10, 0x05, 0x0d, 0x8c,
+ 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14, 0x8b,
+ 0x55, 0x4d, 0x98, 0x5d, 0x5e, 0xa2, 0x57, 0x65, 0x81, 0x10, 0x05, 0x0d,
+ 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x0d, 0x14,
+ 0xb2, 0x2e, 0x4d, 0x98, 0x01, 0xd7, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02,
+ 0x06, 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x07, 0x3f, 0x4b,
+ 0x01, 0xd2, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x53,
+ 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x07, 0x3f, 0x4b, 0x01, 0xd2, 0xb2, 0x4f,
+ 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b,
+ 0x06, 0x07, 0x3f, 0x4b, 0x00, 0x03, 0x00, 0xc3, 0x00, 0xb8, 0x05, 0x46,
+ 0x04, 0xc1, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x00, 0x13, 0x1e,
+ 0x01, 0x33, 0x32, 0x3f, 0x02, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e,
+ 0x01, 0x23, 0x22, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x23, 0x22, 0x26, 0x27,
+ 0x01, 0x15, 0x21, 0x35, 0x01, 0x15, 0x21, 0x35, 0xc3, 0x5d, 0x98, 0x4e,
+ 0x54, 0x8c, 0x13, 0x0e, 0x84, 0x63, 0x58, 0xa1, 0x5e, 0x58, 0x9b, 0x4f,
+ 0x55, 0x8b, 0x0e, 0x05, 0x0f, 0x84, 0x63, 0x57, 0xa1, 0x5f, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0xc1, 0x55, 0x4b, 0x3f, 0x07,
+ 0x06, 0x3b, 0x45, 0x4e, 0xb2, 0x53, 0x4c, 0x3d, 0x06, 0x02, 0x07, 0x3b,
+ 0x45, 0x4f, 0xfe, 0xc8, 0xaa, 0xaa, 0xfe, 0x8b, 0xaa, 0xaa, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc2, 0x00, 0xd7, 0x05, 0x46, 0x04, 0x2b, 0x00, 0x09,
+ 0x00, 0x13, 0x00, 0x00, 0x01, 0x20, 0x25, 0x35, 0x04, 0x05, 0x20, 0x25,
+ 0x15, 0x04, 0x05, 0x20, 0x05, 0x15, 0x24, 0x25, 0x04, 0x05, 0x35, 0x24,
+ 0x03, 0x05, 0xfe, 0xfe, 0xfe, 0xbf, 0x01, 0x43, 0x01, 0x00, 0x01, 0x09,
+ 0x01, 0x36, 0xfe, 0xc5, 0xfe, 0xfd, 0x01, 0x07, 0x01, 0x38, 0xfe, 0xc6,
+ 0xfe, 0xfb, 0xfe, 0xfd, 0xfe, 0xc0, 0x01, 0x44, 0x02, 0xd3, 0xa6, 0xb2,
+ 0x95, 0x11, 0xa6, 0xb2, 0x97, 0xb3, 0xa6, 0xb2, 0x97, 0x0f, 0x02, 0xa4,
+ 0xb2, 0x97, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x36, 0x05, 0x46,
+ 0x04, 0xce, 0x00, 0x1c, 0x00, 0x39, 0x00, 0x00, 0x25, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x21, 0x15, 0x23, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x23, 0x35, 0x21, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x13, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x35, 0x33, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x33, 0x15,
+ 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x03, 0x05, 0x3c, 0x29, 0x32, 0x1b,
+ 0x18, 0x04, 0x01, 0x72, 0xef, 0x0d, 0x1a, 0x31, 0x4d, 0x50, 0xb9, 0x51,
+ 0x4d, 0x31, 0x1b, 0x0b, 0xf0, 0x01, 0x73, 0x04, 0x18, 0x1b, 0x32, 0x29,
+ 0x3d, 0x3d, 0x29, 0x32, 0x1b, 0x18, 0x04, 0xfe, 0x8d, 0xf0, 0x0b, 0x1b,
+ 0x31, 0x4d, 0x51, 0xb9, 0x50, 0x4d, 0x31, 0x1a, 0x0d, 0xef, 0xfe, 0x8e,
+ 0x04, 0x18, 0x1b, 0x32, 0x29, 0xd9, 0x04, 0x1e, 0x2c, 0x43, 0x45, 0x5b,
+ 0xa8, 0x3c, 0x30, 0x5b, 0x32, 0x33, 0x33, 0x32, 0x5b, 0x33, 0x39, 0xa8,
+ 0x5c, 0x44, 0x44, 0x2b, 0x1e, 0x03, 0x4e, 0x04, 0x1e, 0x2b, 0x44, 0x44,
+ 0x5c, 0xa8, 0x39, 0x33, 0x5b, 0x32, 0x33, 0x33, 0x32, 0x5b, 0x30, 0x3c,
+ 0xa8, 0x5b, 0x45, 0x43, 0x2c, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x04, 0xce, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x00,
+ 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x35, 0x33, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x33, 0x15, 0x21,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x15, 0x21, 0x03, 0x05, 0x3d,
+ 0x29, 0x32, 0x1b, 0x18, 0x04, 0xfe, 0x8d, 0xf0, 0x0b, 0x1b, 0x31, 0x4d,
+ 0x51, 0xb9, 0x50, 0x4d, 0x31, 0x1a, 0x0d, 0xef, 0xfe, 0x8e, 0x04, 0x18,
+ 0x1b, 0x32, 0x29, 0xfd, 0x82, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x2b, 0x04,
+ 0x1e, 0x2b, 0x44, 0x44, 0x5c, 0xa8, 0x39, 0x33, 0x5b, 0x32, 0x33, 0x33,
+ 0x32, 0x5b, 0x30, 0x3c, 0xa8, 0x5b, 0x45, 0x43, 0x2c, 0x1e, 0xfd, 0xe3,
+ 0xaa, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46,
+ 0x04, 0xff, 0x10, 0x27, 0x09, 0xa1, 0x01, 0xe0, 0x01, 0xb9, 0x10, 0x06,
+ 0x00, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0x00, 0x02, 0x05, 0x46,
+ 0x04, 0xff, 0x10, 0x27, 0x09, 0xa1, 0x01, 0xde, 0xfd, 0xba, 0x10, 0x26,
+ 0x00, 0x20, 0x00, 0x00, 0x10, 0x07, 0x09, 0xa1, 0x01, 0xdf, 0x01, 0xb9,
+ 0xff, 0xff, 0x00, 0xc3, 0x00, 0x05, 0x05, 0x48, 0x04, 0xff, 0x10, 0x27,
+ 0x09, 0xa1, 0xff, 0xfe, 0x01, 0xb9, 0x10, 0x26, 0x00, 0x20, 0x00, 0x00,
+ 0x10, 0x07, 0x09, 0xa1, 0x03, 0xc5, 0xfd, 0xbd, 0xff, 0xff, 0x00, 0xc3,
+ 0x00, 0x05, 0x05, 0x47, 0x04, 0xff, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xfe,
+ 0xfd, 0xbd, 0x10, 0x26, 0x00, 0x20, 0x02, 0x00, 0x10, 0x07, 0x09, 0xa1,
+ 0x03, 0xc3, 0x01, 0xb9, 0xff, 0xff, 0x00, 0xba, 0x01, 0x36, 0x06, 0x7a,
+ 0x03, 0xcf, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xf5, 0xfe, 0xee, 0x10, 0x27,
+ 0x09, 0xa1, 0xff, 0xf5, 0x00, 0x89, 0x10, 0x07, 0x00, 0x20, 0x01, 0x35,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb8, 0x01, 0x36, 0x06, 0x7b,
+ 0x03, 0xcc, 0x10, 0x26, 0x00, 0x20, 0xf5, 0x00, 0x10, 0x27, 0x09, 0xa1,
+ 0x04, 0xf8, 0x00, 0x86, 0x10, 0x07, 0x09, 0xa1, 0x04, 0xf8, 0xfe, 0xee,
+ 0x00, 0x02, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46, 0x03, 0xa2, 0x00, 0x09,
+ 0x00, 0x1b, 0x00, 0x00, 0x01, 0x06, 0x15, 0x14, 0x17, 0x33, 0x36, 0x35,
+ 0x26, 0x27, 0x17, 0x21, 0x15, 0x21, 0x35, 0x21, 0x26, 0x35, 0x34, 0x37,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x16, 0x17, 0x14, 0x02, 0x9c, 0x2f, 0x2e,
+ 0xda, 0x2f, 0x01, 0x2e, 0x7e, 0x01, 0x52, 0xfb, 0x7e, 0x01, 0x58, 0x16,
+ 0x18, 0xfe, 0xa6, 0x04, 0x82, 0xfe, 0xaf, 0x17, 0x01, 0x02, 0xfa, 0x30,
+ 0x49, 0x47, 0x30, 0x30, 0x47, 0x47, 0x32, 0xf0, 0xaa, 0xaa, 0x3f, 0x38,
+ 0x3e, 0x3b, 0xa8, 0xa8, 0x1a, 0x5f, 0x38, 0x00, 0x00, 0x04, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x06, 0x15, 0x00, 0x03, 0x00, 0x07, 0x00, 0x11,
+ 0x00, 0x20, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x27, 0x32,
+ 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x45,
+ 0x41, 0x5a, 0x5a, 0x83, 0x5a, 0x5b, 0x41, 0x35, 0x60, 0x24, 0x25, 0x26,
+ 0x98, 0x6d, 0x6f, 0x93, 0x96, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x04, 0x44,
+ 0x62, 0x46, 0x45, 0x60, 0x60, 0x8b, 0x62, 0x71, 0x2b, 0x28, 0x28, 0x64,
+ 0x3a, 0x73, 0xa1, 0x9e, 0x76, 0x76, 0xa3, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x05, 0x4b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x11,
+ 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x01, 0x32,
+ 0x17, 0x15, 0x26, 0x23, 0x06, 0x07, 0x35, 0x36, 0xc3, 0x04, 0x82, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x42, 0xe7, 0xca, 0xca, 0xe7, 0xe5,
+ 0xce, 0xd2, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x03, 0xeb, 0x97, 0xb2, 0x97,
+ 0x02, 0x95, 0xb2, 0x97, 0x00, 0x03, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46,
+ 0x06, 0x7f, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x01, 0x13, 0x33, 0x13, 0x23, 0x0b,
+ 0x01, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x01, 0x07,
+ 0xea, 0xa2, 0xe9, 0x8f, 0xab, 0xa5, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x02,
+ 0x82, 0x02, 0x9d, 0xfd, 0x63, 0x01, 0xd9, 0xfe, 0x27, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46, 0x06, 0x7f, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x01, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x23, 0xc3, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x01, 0x07, 0x96, 0xa5, 0xab, 0x8f,
+ 0xe9, 0xa2, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x05, 0x1f, 0xfe, 0x27, 0x01,
+ 0xd9, 0xfd, 0x63, 0x00, 0x00, 0x03, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46,
+ 0x06, 0xca, 0x00, 0x03, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x13, 0x21, 0x1b, 0x01, 0x21, 0x07,
+ 0x13, 0x27, 0x07, 0x13, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb,
+ 0x7e, 0xe1, 0x01, 0x0d, 0x54, 0x55, 0x01, 0x0c, 0xda, 0x55, 0xdc, 0xdb,
+ 0x54, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x04, 0x4e, 0x01, 0x1c, 0xfe, 0xe4,
+ 0xb0, 0xfe, 0xe4, 0xb0, 0xb0, 0x01, 0x1c, 0x00, 0x00, 0x04, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x06, 0xd4, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0a,
+ 0x00, 0x0e, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x01, 0x03, 0x21, 0x03, 0x33, 0x01, 0x21, 0xc3, 0x04, 0x82, 0xfb, 0x7e,
+ 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x42, 0x95, 0x01, 0x2c, 0xc8, 0x64, 0x01,
+ 0x04, 0xfd, 0x94, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x04, 0xc0, 0xfe, 0x4e,
+ 0x02, 0x66, 0xfd, 0x1f, 0x00, 0x07, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46,
+ 0x06, 0x1c, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x30, 0x00, 0x37,
+ 0x00, 0x47, 0x00, 0x4f, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x33, 0x15, 0x23,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x33, 0x03, 0x15,
+ 0x21, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x07, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x15, 0x27, 0x35, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22,
+ 0x26, 0x34, 0x36, 0x33, 0x32, 0x16, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34,
+ 0x26, 0x22, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x2d, 0x38, 0x21, 0x18, 0x62, 0x62, 0x3c, 0x39, 0x39, 0x39, 0x3d, 0xd6,
+ 0xfe, 0xee, 0x46, 0x3b, 0x23, 0x41, 0x1f, 0x20, 0x43, 0x23, 0x57, 0x65,
+ 0x60, 0x52, 0x49, 0x55, 0x3c, 0x36, 0x2c, 0x31, 0x41, 0xb3, 0x3c, 0x3c,
+ 0x12, 0x3a, 0x28, 0x41, 0x53, 0x53, 0x41, 0x28, 0x3a, 0xb9, 0x36, 0x5f,
+ 0x36, 0x36, 0x5f, 0x03, 0xa2, 0xa8, 0xf0, 0xaa, 0x04, 0xbc, 0x37, 0x1e,
+ 0x24, 0x24, 0x33, 0xfe, 0xa0, 0x01, 0x60, 0x33, 0x1c, 0x44, 0x3d, 0xfe,
+ 0xaa, 0x20, 0x44, 0x48, 0x13, 0x12, 0x3e, 0x0f, 0x10, 0x70, 0x60, 0x63,
+ 0x74, 0x69, 0x47, 0x36, 0x42, 0x3f, 0x39, 0x69, 0xda, 0xfd, 0xd0, 0x3d,
+ 0x24, 0x23, 0x74, 0xbe, 0x75, 0x23, 0x67, 0x93, 0x53, 0x53, 0x93, 0x53,
+ 0x00, 0x03, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x23, 0x11,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x5c,
+ 0x1e, 0x54, 0x38, 0x4d, 0x52, 0x50, 0x32, 0x33, 0x3e, 0x49, 0x50, 0x32,
+ 0x34, 0x3d, 0x48, 0x51, 0x51, 0x1b, 0x4d, 0x35, 0x35, 0x4a, 0x03, 0xa2,
+ 0xa8, 0xf0, 0xaa, 0x04, 0x3d, 0x3d, 0x3a, 0x78, 0x6f, 0xfe, 0xb5, 0x01,
+ 0x48, 0x4f, 0x4d, 0x5d, 0x51, 0xfe, 0xca, 0x01, 0x48, 0x50, 0x4c, 0x5e,
+ 0x50, 0xfe, 0xca, 0x02, 0x25, 0x55, 0x32, 0x30, 0x3d, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xc3, 0x01, 0x60, 0x05, 0x46, 0x06, 0xda, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x2c, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0x01, 0x33, 0x15, 0x23, 0x37, 0x23, 0x35, 0x34,
+ 0x36, 0x3f, 0x01, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x0f, 0x01, 0x0e,
+ 0x01, 0x07, 0x0e, 0x01, 0x15, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfb, 0x7e, 0x01, 0xfc, 0x5b, 0x5b, 0x58, 0x56, 0x1a, 0x28, 0x29, 0x19,
+ 0x17, 0x3b, 0x30, 0x24, 0x50, 0x2c, 0x2a, 0x57, 0x2e, 0x53, 0x65, 0x21,
+ 0x28, 0x28, 0x15, 0x12, 0x03, 0x03, 0x03, 0x03, 0xa2, 0xa8, 0xf0, 0xaa,
+ 0x03, 0x01, 0x7f, 0xc8, 0x4e, 0x32, 0x41, 0x2b, 0x2c, 0x1b, 0x2f, 0x18,
+ 0x2d, 0x37, 0x23, 0x21, 0x5e, 0x1c, 0x1c, 0x61, 0x4f, 0x26, 0x45, 0x2b,
+ 0x2b, 0x17, 0x1b, 0x0d, 0x0a, 0x1e, 0x1a, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x27, 0x05, 0x46, 0x04, 0xdd, 0x00, 0x13, 0x00, 0x00, 0x13, 0x21,
+ 0x13, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x03, 0x27,
+ 0x37, 0x21, 0x35, 0x21, 0x37, 0x21, 0xc3, 0x02, 0xb7, 0xe6, 0x71, 0x9d,
+ 0x01, 0x11, 0xfe, 0x74, 0xaf, 0x02, 0x3b, 0xfd, 0x47, 0xe8, 0x70, 0x9c,
+ 0xfe, 0xf3, 0x01, 0x8b, 0xaf, 0xfd, 0xc6, 0x03, 0xa2, 0x01, 0x3b, 0x66,
+ 0xd5, 0xa8, 0xf0, 0xaa, 0xfe, 0xc7, 0x66, 0xd3, 0xaa, 0xf0, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0x00, 0xb8, 0x05, 0x46, 0x04, 0x4c, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x02, 0xd7, 0xaa, 0x02, 0x1f,
+ 0xaa, 0xfd, 0xc0, 0xaa, 0x00, 0x01, 0x00, 0xc3, 0xff, 0xce, 0x05, 0x46,
+ 0x05, 0x34, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x37, 0x17,
+ 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21,
+ 0x07, 0x27, 0x37, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x03, 0x39,
+ 0xfd, 0x8a, 0x02, 0xc9, 0x73, 0x8a, 0x49, 0x01, 0x05, 0xfe, 0xa7, 0x66,
+ 0x01, 0xbf, 0xfd, 0xf0, 0x63, 0x02, 0x73, 0xfd, 0x38, 0x74, 0x8a, 0x4a,
+ 0xfe, 0xfa, 0x01, 0x5b, 0x64, 0xfe, 0x41, 0x02, 0x11, 0x03, 0xa2, 0xaa,
+ 0xe8, 0x54, 0x94, 0xaa, 0xcb, 0xaa, 0xcb, 0xaa, 0xea, 0x54, 0x96, 0xaa,
+ 0xcb, 0xaa, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46,
+ 0x05, 0x09, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x13, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x21, 0x15, 0x21, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x94, 0xaa,
+ 0x02, 0x1f, 0xaa, 0xfc, 0x4b, 0xaa, 0x02, 0x1f, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x06,
+ 0x00, 0x0a, 0x00, 0x00, 0x09, 0x02, 0x15, 0x01, 0x35, 0x09, 0x01, 0x21,
+ 0x15, 0x21, 0x05, 0x45, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xf8, 0xfe, 0xeb, 0xfe, 0xee,
+ 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0xfc, 0x02, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x06,
+ 0x00, 0x0a, 0x00, 0x00, 0x13, 0x35, 0x01, 0x15, 0x01, 0x35, 0x09, 0x01,
+ 0x15, 0x21, 0x35, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x61, 0x01, 0x21,
+ 0xfb, 0x7e, 0x03, 0xf8, 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01,
+ 0x12, 0xfd, 0xc7, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc4,
+ 0xff, 0x56, 0x05, 0x46, 0x05, 0x1b, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e,
+ 0x00, 0x00, 0x33, 0x21, 0x15, 0x21, 0x09, 0x02, 0x15, 0x01, 0x35, 0x09,
+ 0x01, 0x21, 0x15, 0x21, 0xc4, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfc,
+ 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb,
+ 0x7e, 0xaa, 0x05, 0x15, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa,
+ 0x01, 0x6f, 0xfc, 0x02, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc4,
+ 0xff, 0x56, 0x05, 0x46, 0x05, 0x1b, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e,
+ 0x00, 0x00, 0x21, 0x15, 0x21, 0x35, 0x11, 0x35, 0x01, 0x15, 0x01, 0x35,
+ 0x09, 0x01, 0x15, 0x21, 0x35, 0x05, 0x46, 0xfb, 0x7e, 0x04, 0x82, 0xfb,
+ 0x7e, 0x03, 0x60, 0x01, 0x22, 0xfb, 0x7e, 0xaa, 0xaa, 0x04, 0x6b, 0xb0,
+ 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0xfd, 0xc7, 0xaa, 0xaa,
+ 0x00, 0x02, 0x00, 0xc4, 0xfe, 0xb1, 0x05, 0x46, 0x05, 0x1b, 0x00, 0x13,
+ 0x00, 0x1a, 0x00, 0x00, 0x05, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21,
+ 0x37, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x01, 0xf0, 0xfe, 0xd4, 0x01, 0xab,
+ 0x56, 0xfd, 0xff, 0x02, 0x81, 0x7b, 0x7c, 0x24, 0x01, 0x2e, 0xfe, 0x52,
+ 0x56, 0x02, 0x04, 0xfd, 0x7d, 0x7c, 0x7c, 0x03, 0x7b, 0xfc, 0xa0, 0x03,
+ 0x60, 0xfb, 0x7e, 0x04, 0x82, 0xaa, 0xaa, 0x73, 0xaa, 0xa4, 0x73, 0x31,
+ 0xaa, 0x73, 0xaa, 0xa5, 0x74, 0x05, 0x46, 0xfe, 0xeb, 0xfe, 0xee, 0xb2,
+ 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc4,
+ 0xfe, 0xb1, 0x05, 0x46, 0x05, 0x1b, 0x00, 0x13, 0x00, 0x1a, 0x00, 0x00,
+ 0x05, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x37, 0x17, 0x07, 0x21,
+ 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0x35, 0x01, 0x01, 0xf0, 0xfe, 0xd4, 0x01, 0xab, 0x56, 0xfd, 0xff,
+ 0x02, 0x81, 0x7b, 0x7c, 0x24, 0x01, 0x2e, 0xfe, 0x52, 0x56, 0x02, 0x04,
+ 0xfd, 0x7d, 0x7c, 0x7c, 0xfe, 0xf9, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60,
+ 0xaa, 0xaa, 0x73, 0xaa, 0xa4, 0x73, 0x31, 0xaa, 0x73, 0xaa, 0xa5, 0x74,
+ 0x05, 0x46, 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00,
+ 0x00, 0x02, 0x00, 0x85, 0x00, 0x2e, 0x07, 0x04, 0x04, 0xdf, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x05, 0x09,
+ 0x01, 0x15, 0x01, 0x35, 0x01, 0x07, 0x04, 0xfd, 0x19, 0x02, 0xe7, 0xfc,
+ 0x36, 0x03, 0xca, 0xfd, 0x4c, 0xfd, 0x18, 0x02, 0xe8, 0xfc, 0x36, 0x03,
+ 0xca, 0x04, 0x11, 0xfe, 0x70, 0xfe, 0x72, 0xc5, 0x02, 0x08, 0x9f, 0x02,
+ 0x0a, 0xce, 0xfe, 0x70, 0xfe, 0x72, 0xc5, 0x02, 0x08, 0x9f, 0x02, 0x0a,
+ 0x00, 0x02, 0x00, 0x85, 0x00, 0x2e, 0x07, 0x04, 0x04, 0xdf, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x13, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x03,
+ 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x86, 0x03, 0xca, 0xfc, 0x36, 0x02,
+ 0xe7, 0x33, 0x03, 0xca, 0xfc, 0x36, 0x02, 0xe7, 0x04, 0x11, 0xce, 0xfd,
+ 0xf6, 0x9f, 0xfd, 0xf8, 0xc5, 0x01, 0x8e, 0x01, 0x90, 0xce, 0xfd, 0xf6,
+ 0x9f, 0xfd, 0xf8, 0xc5, 0x01, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9e,
+ 0xfe, 0xf2, 0x02, 0xb9, 0x06, 0x12, 0x00, 0x19, 0x00, 0x27, 0x00, 0x00,
+ 0x01, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16,
+ 0x17, 0x21, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x26, 0x27, 0x13, 0x36, 0x37, 0x36, 0x10, 0x27, 0x26, 0x27, 0x06, 0x07,
+ 0x06, 0x10, 0x17, 0x16, 0x02, 0x3c, 0x26, 0x1f, 0x50, 0x2f, 0x43, 0x43,
+ 0x2f, 0x50, 0x1f, 0x26, 0xfe, 0xe0, 0x25, 0x1f, 0x50, 0x2f, 0x43, 0x43,
+ 0x2f, 0x50, 0x1f, 0x25, 0x90, 0x13, 0x0f, 0x3b, 0x3a, 0x10, 0x13, 0x14,
+ 0x10, 0x3a, 0x3b, 0x0f, 0x06, 0x12, 0x47, 0x46, 0xa3, 0x9e, 0xe2, 0xdf,
+ 0xe0, 0xe3, 0x9e, 0xa2, 0x47, 0x47, 0x47, 0x47, 0xa2, 0x9e, 0xe3, 0xe0,
+ 0xdf, 0xe2, 0x9e, 0xa3, 0x46, 0x47, 0xfa, 0x32, 0x3b, 0x3b, 0xe2, 0x01,
+ 0xce, 0xe1, 0x3b, 0x3c, 0x3c, 0x3b, 0xe1, 0xfe, 0x32, 0xe2, 0x3b, 0x00,
+ 0x00, 0x01, 0x00, 0xc2, 0x00, 0x1a, 0x05, 0x46, 0x04, 0xe8, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x35, 0x36, 0x3f, 0x01, 0x26, 0x25, 0x35,
+ 0x04, 0x37, 0x13, 0x17, 0x07, 0x36, 0x37, 0x15, 0x06, 0x0f, 0x01, 0x16,
+ 0x05, 0x15, 0x24, 0x07, 0x03, 0x27, 0x02, 0x1b, 0xa2, 0xb5, 0xee, 0xca,
+ 0x5b, 0xf0, 0xfe, 0xdc, 0x01, 0x86, 0xe6, 0xb1, 0x85, 0x79, 0xa4, 0xb5,
+ 0xec, 0xcd, 0x5a, 0xf5, 0x01, 0x1f, 0xfe, 0x79, 0xe6, 0xb0, 0x86, 0x01,
+ 0x5d, 0x29, 0x5d, 0xb2, 0x6f, 0x26, 0xb6, 0x0e, 0x97, 0xb2, 0xaf, 0x0a,
+ 0x01, 0x62, 0x52, 0xf4, 0x29, 0x60, 0xb2, 0x71, 0x25, 0xb5, 0x0d, 0x98,
+ 0xb2, 0xaf, 0x0b, 0xfe, 0x9f, 0x52, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x05, 0x05, 0x46, 0x05, 0x64, 0x00, 0x0f, 0x00, 0x12, 0x00, 0x00,
+ 0x01, 0x05, 0x15, 0x25, 0x03, 0x27, 0x13, 0x25, 0x35, 0x01, 0x13, 0x17,
+ 0x07, 0x25, 0x15, 0x05, 0x07, 0x0d, 0x01, 0x03, 0x40, 0x02, 0x05, 0xfd,
+ 0xbb, 0x8a, 0x7a, 0x85, 0xfe, 0x42, 0x02, 0xcc, 0x9b, 0x7b, 0x62, 0x01,
+ 0x02, 0xfe, 0xa1, 0xb4, 0xfe, 0x72, 0x01, 0x1d, 0x01, 0xdf, 0xcb, 0xb6,
+ 0xea, 0xfe, 0xbd, 0x40, 0x01, 0x36, 0xb4, 0xa6, 0x01, 0x20, 0x01, 0x6f,
+ 0x40, 0xe6, 0x68, 0xb6, 0x8b, 0x47, 0x9d, 0x70, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0xa0, 0x05, 0x46, 0x04, 0xff, 0x00, 0x0f, 0x00, 0x12, 0x00, 0x00,
+ 0x01, 0x25, 0x35, 0x05, 0x13, 0x17, 0x03, 0x05, 0x15, 0x01, 0x03, 0x27,
+ 0x37, 0x05, 0x35, 0x25, 0x37, 0x2d, 0x01, 0x02, 0xc8, 0xfd, 0xfb, 0x02,
+ 0x46, 0x89, 0x7a, 0x84, 0x01, 0xbd, 0xfd, 0x35, 0x9c, 0x7a, 0x62, 0xfe,
+ 0xfd, 0x01, 0x5f, 0xb4, 0x01, 0x8e, 0xfe, 0xe4, 0x03, 0x25, 0xcb, 0xb6,
+ 0xea, 0x01, 0x43, 0x40, 0xfe, 0xca, 0xb4, 0xa6, 0xfe, 0xe0, 0xfe, 0x91,
+ 0x40, 0xe6, 0x68, 0xb6, 0x8b, 0x47, 0x9d, 0x70, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x2f, 0x05, 0x46, 0x05, 0x56, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x0d, 0x01, 0x03, 0x21, 0x35, 0x21, 0x13, 0x25, 0x35, 0x25, 0x13,
+ 0x17, 0x07, 0x25, 0x15, 0x05, 0x03, 0x05, 0x15, 0x25, 0x03, 0x21, 0x15,
+ 0x21, 0x07, 0x27, 0x03, 0x37, 0xfe, 0xae, 0x01, 0x11, 0xdc, 0xfe, 0xa9,
+ 0x01, 0x91, 0x6c, 0xfe, 0x03, 0x02, 0xb6, 0x6a, 0x94, 0x41, 0x01, 0x0f,
+ 0xfe, 0xaf, 0x67, 0x01, 0xb8, 0xfe, 0x12, 0x5c, 0x02, 0x4a, 0xfd, 0x7d,
+ 0x45, 0x93, 0x03, 0x4f, 0x6c, 0x55, 0xfd, 0x72, 0xaa, 0x01, 0x43, 0xa2,
+ 0xaa, 0xdd, 0x01, 0x40, 0x3d, 0xc7, 0x56, 0xb0, 0x6c, 0xfe, 0xd1, 0x8c,
+ 0xb2, 0x9e, 0xfe, 0xed, 0xaa, 0xd1, 0x3d, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x2f, 0x05, 0x46, 0x05, 0x56, 0x00, 0x02, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x37, 0x27, 0x01, 0x23, 0x35, 0x21, 0x37, 0x05, 0x35, 0x25, 0x37,
+ 0x25, 0x35, 0x05, 0x13, 0x17, 0x03, 0x05, 0x15, 0x05, 0x03, 0x21, 0x15,
+ 0x21, 0x07, 0x27, 0x03, 0x36, 0xee, 0xc0, 0xfe, 0x4d, 0xee, 0x01, 0x27,
+ 0x4e, 0xfe, 0x8b, 0x01, 0xb7, 0x52, 0xfd, 0xf7, 0x02, 0x3f, 0x77, 0x94,
+ 0x73, 0x01, 0xab, 0xfd, 0xaf, 0x62, 0x02, 0xb3, 0xfd, 0x14, 0x46, 0x94,
+ 0x02, 0x97, 0x4c, 0x3e, 0xfc, 0xdf, 0xaa, 0xec, 0x77, 0xb2, 0x8b, 0xf5,
+ 0xa7, 0xb0, 0xb7, 0x01, 0x65, 0x3d, 0xfe, 0xa8, 0x88, 0xaa, 0xbd, 0xfe,
+ 0xd8, 0xaa, 0xd1, 0x3d, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x90, 0x05, 0x46,
+ 0x04, 0xa8, 0x00, 0x1d, 0x00, 0x24, 0x00, 0x00, 0x25, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x36, 0x13, 0x09, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f,
+ 0xa1, 0x57, 0x63, 0x84, 0x09, 0x06, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b,
+ 0x58, 0x5e, 0xa1, 0x58, 0x63, 0x84, 0x0a, 0x04, 0x06, 0x0d, 0x8c, 0x54,
+ 0x4e, 0x98, 0x5c, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0xf0,
+ 0xb4, 0x4e, 0x44, 0x3a, 0x04, 0x04, 0x02, 0x06, 0x3c, 0x4c, 0x54, 0xb4,
+ 0x4e, 0x44, 0x3a, 0x06, 0x02, 0x02, 0x06, 0x3c, 0x4a, 0x03, 0x5e, 0xfe,
+ 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc4, 0xff, 0xb0, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x1b,
+ 0x00, 0x22, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x2e,
+ 0x01, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x17, 0x1e, 0x01, 0x17, 0x16, 0x33, 0x32, 0x36, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1, 0x58, 0x63, 0x83, 0x09, 0x0b,
+ 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56, 0x63, 0x85, 0x09,
+ 0x0b, 0x0d, 0x8c, 0x55, 0x4d, 0x97, 0xfb, 0xdc, 0x04, 0x82, 0xfb, 0x7e,
+ 0x03, 0x61, 0x01, 0x0e, 0xb2, 0x4e, 0x46, 0x3c, 0x04, 0x04, 0x06, 0x3e,
+ 0x4c, 0x54, 0xb2, 0x4e, 0x46, 0x3c, 0x04, 0x04, 0x06, 0x3e, 0x4c, 0x03,
+ 0x3e, 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x29, 0x05, 0x46, 0x05, 0x50, 0x00, 0x31,
+ 0x00, 0x34, 0x00, 0x00, 0x25, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x13, 0x25, 0x35, 0x25, 0x13, 0x17, 0x07, 0x25,
+ 0x15, 0x05, 0x03, 0x05, 0x15, 0x25, 0x03, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x2f, 0x01, 0x07, 0x27, 0x01, 0x0d, 0x01, 0x02, 0x2d, 0x1b,
+ 0x0c, 0x4f, 0x9b, 0x58, 0x5e, 0xa1, 0x58, 0x22, 0x27, 0x60, 0xfd, 0xff,
+ 0x02, 0xbb, 0x69, 0x95, 0x3f, 0x01, 0x08, 0xfe, 0xb4, 0x67, 0x01, 0xb3,
+ 0xfe, 0x17, 0x60, 0x06, 0x0a, 0x04, 0x06, 0x0d, 0x8c, 0x54, 0x4e, 0x98,
+ 0x5d, 0x5f, 0xa1, 0x57, 0x63, 0x84, 0x09, 0x06, 0x05, 0x0e, 0x1f, 0x48,
+ 0x95, 0x01, 0x51, 0xfe, 0xaa, 0x01, 0x13, 0x2d, 0x03, 0x4c, 0x54, 0xb4,
+ 0x4e, 0x44, 0x07, 0x01, 0x1d, 0xa3, 0xaa, 0xde, 0x01, 0x39, 0x41, 0xbb,
+ 0x54, 0xb0, 0x6a, 0xfe, 0xcd, 0x8a, 0xb2, 0x9c, 0xfe, 0xe3, 0x02, 0x06,
+ 0x02, 0x02, 0x06, 0x3c, 0x4a, 0x56, 0xb4, 0x4e, 0x44, 0x3a, 0x04, 0x04,
+ 0x02, 0x06, 0x0d, 0xd8, 0x3c, 0x03, 0xec, 0x6e, 0x57, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x2f, 0x05, 0x46, 0x05, 0x56, 0x00, 0x31,
+ 0x00, 0x34, 0x00, 0x00, 0x01, 0x05, 0x15, 0x05, 0x07, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x03, 0x27, 0x37, 0x06,
+ 0x07, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x05, 0x35, 0x25,
+ 0x37, 0x25, 0x35, 0x05, 0x13, 0x17, 0x03, 0x37, 0x27, 0x03, 0xa1, 0x01,
+ 0xa4, 0xfd, 0xb6, 0x54, 0x2b, 0x30, 0x0a, 0x04, 0x06, 0x0d, 0x8c, 0x54,
+ 0x4e, 0x98, 0x5d, 0x5f, 0xa1, 0x57, 0x63, 0x84, 0x09, 0x06, 0x05, 0x0e,
+ 0x41, 0x34, 0x5e, 0x94, 0x4e, 0x32, 0x32, 0x4d, 0x58, 0x5e, 0x51, 0x45,
+ 0x4b, 0x36, 0xfe, 0x8a, 0x01, 0xb8, 0x55, 0xfd, 0xf3, 0x02, 0x43, 0x73,
+ 0x94, 0xd1, 0xe8, 0xb9, 0x03, 0xbf, 0x86, 0xaa, 0xbb, 0xf7, 0x0d, 0x16,
+ 0x04, 0x02, 0x02, 0x06, 0x3e, 0x4c, 0x54, 0xb2, 0x4e, 0x46, 0x3c, 0x04,
+ 0x02, 0x02, 0x06, 0x1d, 0x0f, 0xfe, 0xf1, 0x3d, 0xdf, 0x09, 0x18, 0x26,
+ 0x54, 0xb2, 0x4e, 0x23, 0x1e, 0x04, 0xa1, 0x77, 0xb2, 0x8b, 0xf4, 0xa8,
+ 0xb0, 0xb8, 0x01, 0x66, 0x3d, 0xfd, 0x80, 0x4a, 0x3b, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xbb, 0xff, 0x4e, 0x05, 0x46, 0x05, 0x7d, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x13, 0x35, 0x01, 0x15, 0x01, 0x35, 0x09, 0x03,
+ 0x15, 0x01, 0x35, 0x01, 0xc4, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0x01,
+ 0x19, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0x02, 0x27, 0xb0,
+ 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x03, 0xbb, 0xfe, 0xeb,
+ 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x02, 0x00, 0xbb,
+ 0xff, 0x4e, 0x05, 0x46, 0x05, 0x7d, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00,
+ 0x09, 0x02, 0x15, 0x01, 0x35, 0x09, 0x01, 0x35, 0x01, 0x15, 0x01, 0x35,
+ 0x01, 0x05, 0x3d, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0xfb,
+ 0x87, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0x02, 0x27, 0xfe, 0xeb, 0xfe,
+ 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x01, 0xf6, 0xb0, 0xfe, 0x91,
+ 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00, 0x00, 0x03, 0x00, 0xbb,
+ 0xfe, 0x6d, 0x05, 0x46, 0x06, 0x60, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x21,
+ 0x00, 0x00, 0x2d, 0x02, 0x03, 0x25, 0x35, 0x25, 0x13, 0x17, 0x03, 0x25,
+ 0x15, 0x05, 0x03, 0x05, 0x15, 0x25, 0x07, 0x05, 0x15, 0x05, 0x03, 0x27,
+ 0x13, 0x05, 0x35, 0x25, 0x13, 0x25, 0x35, 0x05, 0x13, 0x0d, 0x01, 0x02,
+ 0xf8, 0x01, 0x2c, 0xfe, 0xfa, 0x57, 0xfd, 0xf4, 0x02, 0x7c, 0x51, 0x95,
+ 0x3e, 0x01, 0x5e, 0xfe, 0x7a, 0x3a, 0x01, 0xc0, 0xfe, 0x1d, 0x1a, 0x02,
+ 0x06, 0xfd, 0x8c, 0x51, 0x96, 0x3e, 0xfe, 0x9b, 0x01, 0x8d, 0x39, 0xfe,
+ 0x3a, 0x01, 0xe9, 0x62, 0xfe, 0xce, 0x01, 0x0d, 0xb3, 0x5f, 0x54, 0x01,
+ 0x57, 0xa7, 0xaa, 0xca, 0x01, 0x88, 0x26, 0xfe, 0xd4, 0x6f, 0xb0, 0x7d,
+ 0xfe, 0xe4, 0x8e, 0xb2, 0x9a, 0x81, 0xa5, 0xaa, 0xc8, 0xfe, 0x77, 0x26,
+ 0x01, 0x2d, 0x72, 0xb2, 0x7e, 0x01, 0x18, 0x91, 0xb0, 0x9b, 0x01, 0xde,
+ 0x62, 0x55, 0x00, 0x00, 0x00, 0x03, 0x00, 0xbb, 0xfe, 0x6d, 0x05, 0x46,
+ 0x06, 0x60, 0x00, 0x02, 0x00, 0x05, 0x00, 0x21, 0x00, 0x00, 0x01, 0x07,
+ 0x17, 0x01, 0x37, 0x2f, 0x01, 0x25, 0x35, 0x05, 0x13, 0x17, 0x03, 0x05,
+ 0x15, 0x05, 0x07, 0x25, 0x15, 0x05, 0x07, 0x05, 0x15, 0x25, 0x03, 0x27,
+ 0x13, 0x25, 0x35, 0x25, 0x37, 0x05, 0x35, 0x25, 0x02, 0x7a, 0x9d, 0x89,
+ 0x01, 0x29, 0x95, 0x83, 0x94, 0xfd, 0xb7, 0x02, 0x6c, 0x58, 0x95, 0x5a,
+ 0x01, 0x83, 0xfe, 0x21, 0x1e, 0x01, 0xf4, 0xfd, 0xe5, 0x28, 0x02, 0x43,
+ 0xfd, 0x9b, 0x57, 0x96, 0x59, 0xfe, 0x77, 0x01, 0xe6, 0x1e, 0xfe, 0x05,
+ 0x02, 0x22, 0x01, 0x44, 0x32, 0x2c, 0x02, 0xa3, 0x2f, 0x2a, 0x2f, 0xbc,
+ 0xb0, 0xc5, 0x01, 0xa8, 0x26, 0xfe, 0x4f, 0x7b, 0xaa, 0x98, 0x94, 0x9f,
+ 0xb0, 0xad, 0xc2, 0xb8, 0xb2, 0xc4, 0xfe, 0x5b, 0x26, 0x01, 0xae, 0x7d,
+ 0xaa, 0x9a, 0x94, 0xa2, 0xb2, 0xad, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0xff, 0xb2, 0x05, 0x46, 0x05, 0x50, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x00,
+ 0x05, 0x04, 0x01, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x05, 0x45, 0xfe,
+ 0x9a, 0xfe, 0x27, 0x01, 0xd5, 0x01, 0x6a, 0xfe, 0x97, 0xfc, 0xe7, 0x03,
+ 0x1b, 0x01, 0x67, 0x04, 0x61, 0xfe, 0x81, 0x61, 0x5e, 0xfe, 0x7e, 0xef,
+ 0x02, 0x00, 0x7c, 0xa6, 0x7c, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0xff, 0xb2, 0x05, 0x46, 0x05, 0x50, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x35,
+ 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x00, 0x25, 0x24, 0xc3, 0x01, 0x67,
+ 0x03, 0x1b, 0xfc, 0xe7, 0xfe, 0x97, 0x01, 0x6a, 0x01, 0xd5, 0xfe, 0x27,
+ 0x04, 0x61, 0xef, 0xfe, 0x00, 0x7c, 0xa6, 0x7c, 0xfe, 0x00, 0xef, 0x01,
+ 0x82, 0x5e, 0x61, 0x00, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x29, 0x05, 0x46,
+ 0x05, 0x57, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x21, 0x15, 0x00, 0x25,
+ 0x35, 0x04, 0x01, 0x00, 0x05, 0x04, 0x01, 0x15, 0x00, 0x25, 0x35, 0x24,
+ 0x01, 0x05, 0x45, 0xfe, 0x90, 0xfc, 0xee, 0x03, 0x01, 0x01, 0x81, 0xfe,
+ 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x59, 0xfe, 0xa7, 0xfc, 0xd7, 0x03,
+ 0x29, 0x01, 0x59, 0xd7, 0x01, 0xbe, 0x91, 0xae, 0x85, 0x02, 0xdf, 0xfe,
+ 0xe5, 0x5d, 0x5d, 0xfe, 0xe5, 0xd7, 0x01, 0x78, 0x84, 0xa6, 0x7c, 0x01,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x29, 0x05, 0x46,
+ 0x05, 0x57, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x33, 0x00, 0x25, 0x15,
+ 0x04, 0x01, 0x11, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x00, 0x25,
+ 0x24, 0xc3, 0x01, 0x81, 0x03, 0x01, 0xfc, 0xee, 0xfe, 0x90, 0x01, 0x59,
+ 0x03, 0x29, 0xfc, 0xd7, 0xfe, 0xa7, 0x01, 0x59, 0x01, 0xac, 0xfe, 0x54,
+ 0x01, 0xa1, 0x85, 0xae, 0x91, 0xfe, 0x42, 0x05, 0x57, 0xd7, 0xfe, 0x80,
+ 0x7c, 0xa6, 0x84, 0xfe, 0x88, 0xd7, 0x01, 0x1b, 0x5d, 0x5d, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x52, 0x05, 0x46, 0x05, 0x57, 0x00, 0x1d,
+ 0x00, 0x28, 0x00, 0x00, 0x25, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x13, 0x00,
+ 0x05, 0x04, 0x01, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x05, 0x45, 0x5e,
+ 0xa1, 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a,
+ 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x09, 0x05, 0x05, 0x0e, 0x8b, 0x55,
+ 0x4d, 0x98, 0x5d, 0xfe, 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x59, 0xfe,
+ 0xa7, 0xfc, 0xd7, 0x03, 0x29, 0x01, 0x59, 0xb1, 0xb3, 0x4e, 0x45, 0x3b,
+ 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x3b, 0x05,
+ 0x02, 0x02, 0x06, 0x3d, 0x4b, 0x04, 0x24, 0xfe, 0xe5, 0x5d, 0x5d, 0xfe,
+ 0xe5, 0xd7, 0x01, 0x78, 0x84, 0xa6, 0x7c, 0x01, 0x80, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x52, 0x05, 0x46, 0x05, 0x57, 0x00, 0x1d,
+ 0x00, 0x28, 0x00, 0x00, 0x25, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x01, 0x35,
+ 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x00, 0x25, 0x24, 0x05, 0x45, 0x5e,
+ 0xa1, 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a,
+ 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x09, 0x05, 0x05, 0x0e, 0x8b, 0x55,
+ 0x4d, 0x98, 0xfb, 0xdb, 0x01, 0x59, 0x03, 0x29, 0xfc, 0xd7, 0xfe, 0xa7,
+ 0x01, 0x59, 0x01, 0xac, 0xfe, 0x54, 0xb1, 0xb3, 0x4e, 0x45, 0x3b, 0x04,
+ 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x3b, 0x05, 0x02,
+ 0x02, 0x06, 0x3d, 0x4b, 0x04, 0x24, 0xd7, 0xfe, 0x80, 0x7c, 0xa6, 0x84,
+ 0xfe, 0x88, 0xd7, 0x01, 0x1b, 0x5d, 0x5d, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x83, 0x05, 0x46, 0x06, 0x1d, 0x00, 0x15, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x26, 0x25, 0x35, 0x24, 0x25, 0x01, 0x17, 0x03, 0x36, 0x37, 0x15,
+ 0x06, 0x07, 0x03, 0x04, 0x17, 0x15, 0x02, 0x25, 0x03, 0x27, 0x01, 0x06,
+ 0x07, 0x16, 0x17, 0x02, 0xa3, 0xd8, 0xfe, 0xf8, 0x01, 0x96, 0x01, 0x25,
+ 0x01, 0x01, 0x76, 0xa7, 0x8e, 0x69, 0xa7, 0xc1, 0x7d, 0x01, 0x06, 0xdf,
+ 0xcc, 0xfe, 0xa8, 0xd3, 0x76, 0x01, 0x47, 0x88, 0x91, 0x71, 0x6a, 0x01,
+ 0xb0, 0x55, 0x29, 0xa6, 0x3f, 0xa5, 0x02, 0x65, 0x4b, 0xfe, 0x74, 0x75,
+ 0x95, 0xef, 0xb3, 0x75, 0xfe, 0xd4, 0x7f, 0xed, 0xef, 0x01, 0x22, 0xa6,
+ 0xfe, 0x09, 0x4b, 0x03, 0x0a, 0x39, 0x1e, 0x17, 0x27, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xe5, 0x05, 0x46, 0x05, 0x7f, 0x00, 0x15,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x16, 0x05, 0x15, 0x04, 0x05, 0x01, 0x27,
+ 0x13, 0x06, 0x07, 0x35, 0x36, 0x37, 0x13, 0x24, 0x27, 0x35, 0x12, 0x05,
+ 0x13, 0x17, 0x01, 0x36, 0x37, 0x26, 0x27, 0x03, 0x65, 0xd8, 0x01, 0x08,
+ 0xfe, 0x6a, 0xfe, 0xdc, 0xfe, 0xfe, 0x76, 0xa7, 0x8e, 0x69, 0xa8, 0xc0,
+ 0x7e, 0xfe, 0xf9, 0xdf, 0xcd, 0x01, 0x57, 0xd4, 0x75, 0xfe, 0xb9, 0x88,
+ 0x91, 0x70, 0x6a, 0x03, 0x52, 0x55, 0x29, 0xa6, 0x3f, 0xa5, 0xfd, 0x9b,
+ 0x4b, 0x01, 0x8c, 0x75, 0x95, 0xef, 0xb3, 0x75, 0x01, 0x2c, 0x7f, 0xed,
+ 0xef, 0xfe, 0xde, 0xa6, 0x01, 0xf7, 0x4b, 0xfc, 0xf6, 0x39, 0x1e, 0x17,
+ 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb7, 0x00, 0xa3, 0x05, 0x51,
+ 0x04, 0x5f, 0x00, 0x13, 0x00, 0x00, 0x25, 0x21, 0x22, 0x02, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x21, 0x15, 0x21, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x21, 0x05, 0x51, 0xfd, 0x15, 0xb6, 0xf8, 0x7c, 0x7c, 0xb4, 0x02,
+ 0xed, 0xfd, 0x13, 0x7a, 0xab, 0x54, 0x57, 0x7a, 0x02, 0xed, 0xa3, 0x01,
+ 0x16, 0xc8, 0xc6, 0x8d, 0x8b, 0x96, 0xc0, 0x88, 0x8a, 0x5e, 0x60, 0x00,
+ 0x00, 0x01, 0x00, 0xb7, 0x00, 0xa3, 0x05, 0x51, 0x04, 0x5f, 0x00, 0x13,
+ 0x00, 0x00, 0x37, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x21, 0x35, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x02, 0x23, 0xb8, 0x02,
+ 0xec, 0x7b, 0x56, 0x55, 0xab, 0x7b, 0xfd, 0x14, 0x02, 0xec, 0xb4, 0x7d,
+ 0x7c, 0xf9, 0xb5, 0xa3, 0x96, 0x60, 0x5e, 0x8a, 0x88, 0xc0, 0x96, 0x8b,
+ 0x8d, 0xc6, 0xc8, 0xfe, 0xea, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb7,
+ 0xff, 0x3b, 0x05, 0x51, 0x05, 0xcf, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00,
+ 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x1b, 0x01,
+ 0x33, 0x03, 0x21, 0x15, 0x21, 0x03, 0x21, 0x15, 0x21, 0x03, 0x23, 0x13,
+ 0x22, 0x02, 0x35, 0x34, 0x37, 0x36, 0x33, 0x03, 0x45, 0xe1, 0x7a, 0xab,
+ 0x54, 0x57, 0x7a, 0x2b, 0xdf, 0x67, 0x99, 0x67, 0x01, 0x4a, 0xfe, 0x8d,
+ 0xb6, 0x02, 0x29, 0xfd, 0xae, 0x65, 0x99, 0x65, 0xb4, 0xfa, 0x7c, 0x7c,
+ 0xb4, 0x03, 0xc9, 0xc0, 0x88, 0x8a, 0x5e, 0x60, 0x03, 0x26, 0x01, 0x70,
+ 0xfe, 0x90, 0x96, 0xfd, 0x70, 0x96, 0xfe, 0x98, 0x01, 0x68, 0x01, 0x16,
+ 0xc8, 0xc6, 0x8d, 0x8b, 0x00, 0x02, 0x00, 0xb7, 0xff, 0x33, 0x05, 0x51,
+ 0x05, 0xc7, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x0b, 0x01, 0x23, 0x13, 0x21, 0x35,
+ 0x21, 0x13, 0x21, 0x35, 0x21, 0x13, 0x33, 0x03, 0x32, 0x12, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x02, 0xc3, 0xe1, 0x7b, 0xab, 0x55, 0x56, 0x7b, 0x2b,
+ 0xdf, 0x67, 0x99, 0x67, 0xfe, 0xb7, 0x01, 0x72, 0xb6, 0xfd, 0xd8, 0x02,
+ 0x52, 0x64, 0x99, 0x64, 0xb4, 0xfa, 0x7c, 0x7d, 0xb4, 0x01, 0x39, 0xc0,
+ 0x88, 0x8a, 0x5e, 0x60, 0xfc, 0xda, 0xfe, 0x90, 0x01, 0x70, 0x96, 0x02,
+ 0x90, 0x96, 0x01, 0x68, 0xfe, 0x98, 0xfe, 0xea, 0xc8, 0xc6, 0x8d, 0x8b,
+ 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x05, 0x46, 0x04, 0xe8, 0x00, 0x03,
+ 0x00, 0x18, 0x00, 0x00, 0x37, 0x21, 0x15, 0x21, 0x01, 0x21, 0x22, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x21, 0x15, 0x21, 0x22, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x21, 0xda, 0x04, 0x6b, 0xfb, 0x95, 0x04, 0x6b,
+ 0xfd, 0x14, 0xb5, 0x7c, 0x7d, 0x7d, 0x7c, 0xb4, 0x02, 0xed, 0xfd, 0x13,
+ 0x7b, 0xab, 0x56, 0x56, 0x7a, 0x02, 0xed, 0x96, 0x96, 0x01, 0x2c, 0x8b,
+ 0x8b, 0xc8, 0xc6, 0x8d, 0x8b, 0x96, 0xc0, 0x88, 0x8a, 0x5e, 0x60, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x5e, 0x04, 0xe8, 0x00, 0x03,
+ 0x00, 0x18, 0x00, 0x00, 0x37, 0x21, 0x15, 0x21, 0x11, 0x35, 0x21, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x21, 0x35, 0x21, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0xc3, 0x04, 0x6c, 0xfb, 0x94, 0x02, 0xed,
+ 0x7a, 0x57, 0x55, 0xab, 0x7b, 0xfd, 0x13, 0x02, 0xed, 0xb4, 0x7c, 0x7d,
+ 0x7d, 0x7c, 0xb5, 0x96, 0x96, 0x01, 0x2c, 0x96, 0x60, 0x5e, 0x8a, 0x88,
+ 0xc0, 0x96, 0x8b, 0x8d, 0xc6, 0xc8, 0x8b, 0x8b, 0x00, 0x02, 0x00, 0xab,
+ 0xff, 0x13, 0x05, 0x46, 0x05, 0xd7, 0x00, 0x09, 0x00, 0x27, 0x00, 0x00,
+ 0x01, 0x21, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x02, 0x21, 0x15,
+ 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x37, 0x23, 0x35, 0x21, 0x37,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x21, 0x37, 0x17, 0x07,
+ 0x21, 0x15, 0x21, 0x03, 0x6f, 0xfe, 0xe9, 0x7b, 0xab, 0x56, 0x56, 0x7a,
+ 0x23, 0x8d, 0x02, 0x3d, 0xfd, 0x8b, 0x37, 0x02, 0xac, 0xfd, 0x1c, 0x58,
+ 0x79, 0x45, 0xfb, 0x01, 0x32, 0x38, 0xa7, 0x75, 0x7d, 0x7d, 0x7c, 0xb4,
+ 0x01, 0x4f, 0x58, 0x79, 0x44, 0x01, 0x11, 0xfe, 0xb7, 0x04, 0x52, 0xc0,
+ 0x88, 0x8a, 0x5e, 0x60, 0x96, 0x96, 0x96, 0xed, 0x35, 0xb8, 0x96, 0x96,
+ 0x08, 0x83, 0x8b, 0xc8, 0xc6, 0x8d, 0x8b, 0xef, 0x37, 0xb8, 0x96, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x13, 0x05, 0x5e, 0x05, 0xd7, 0x00, 0x09,
+ 0x00, 0x27, 0x00, 0x00, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x2f, 0x01, 0x21, 0x35, 0x21, 0x37, 0x17, 0x07, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x37, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x03, 0x08, 0xa8, 0x7a,
+ 0x57, 0x55, 0x55, 0x3b, 0x4e, 0x89, 0xfd, 0x54, 0x02, 0xe4, 0x58, 0x79,
+ 0x4c, 0x66, 0x4e, 0x7d, 0x7d, 0x7c, 0xb5, 0xde, 0x38, 0x02, 0x96, 0xfd,
+ 0x32, 0x58, 0x79, 0x45, 0xfe, 0xee, 0x01, 0x49, 0x38, 0xfe, 0x7f, 0x01,
+ 0xb8, 0x01, 0xc2, 0x60, 0x5e, 0x8a, 0x88, 0x60, 0x43, 0x14, 0x09, 0x96,
+ 0xef, 0x37, 0xcb, 0x20, 0x58, 0x8d, 0xc6, 0xc8, 0x8b, 0x8b, 0x96, 0x96,
+ 0xed, 0x35, 0xb8, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0xab,
+ 0xff, 0x6a, 0x05, 0x46, 0x04, 0xe9, 0x00, 0x0b, 0x00, 0x20, 0x00, 0x00,
+ 0x29, 0x01, 0x35, 0x21, 0x37, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x01, 0x21, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x21, 0x15,
+ 0x21, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x21, 0x02, 0x7d, 0xfe,
+ 0x5d, 0x02, 0x08, 0x66, 0x6c, 0x28, 0x01, 0xb9, 0xfd, 0xe1, 0x65, 0x6c,
+ 0x02, 0xf0, 0xfd, 0x14, 0xb5, 0x7c, 0x7d, 0x7d, 0x7c, 0xb4, 0x02, 0xed,
+ 0xfd, 0x13, 0x7b, 0xab, 0x56, 0x56, 0x7a, 0x02, 0xed, 0x96, 0x96, 0x5a,
+ 0x3c, 0x96, 0x96, 0x5a, 0x01, 0x69, 0x8b, 0x8b, 0xc8, 0xc6, 0x8d, 0x8b,
+ 0x96, 0xc0, 0x88, 0x8a, 0x5e, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0xab,
+ 0xff, 0x6a, 0x05, 0x46, 0x04, 0xe9, 0x00, 0x0b, 0x00, 0x20, 0x00, 0x00,
+ 0x29, 0x01, 0x35, 0x21, 0x37, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x21, 0x35,
+ 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x02, 0x7d, 0xfe,
+ 0x5d, 0x02, 0x08, 0x66, 0x6c, 0x28, 0x01, 0xb9, 0xfd, 0xe1, 0x65, 0x6c,
+ 0xfe, 0x56, 0x02, 0xed, 0x7a, 0x57, 0x55, 0xab, 0x7b, 0xfd, 0x13, 0x02,
+ 0xed, 0xb4, 0x7c, 0x7d, 0x7d, 0x7c, 0xb5, 0x96, 0x96, 0x5a, 0x3c, 0x96,
+ 0x96, 0x5a, 0x01, 0x69, 0x96, 0x60, 0x5e, 0x8a, 0x88, 0xc0, 0x96, 0x8b,
+ 0x8d, 0xc6, 0xc8, 0x8b, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xed,
+ 0x00, 0x00, 0x04, 0x58, 0x04, 0xa2, 0x00, 0x11, 0x00, 0x1b, 0x00, 0x00,
+ 0x13, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x37, 0x35, 0x37, 0x17, 0x07, 0x21,
+ 0x15, 0x21, 0x17, 0x07, 0xee, 0x9a, 0x86, 0x95, 0x95, 0x85, 0x9b, 0xdd,
+ 0xd8, 0xd9, 0xdc, 0xd6, 0xb0, 0x36, 0x68, 0x01, 0x3f, 0xfe, 0xc1, 0x68,
+ 0x36, 0x02, 0x52, 0x02, 0x50, 0xfd, 0xc9, 0xf4, 0xd3, 0xd3, 0xf4, 0x02,
+ 0x37, 0xfd, 0xb0, 0xfe, 0xd8, 0xfe, 0xd6, 0x01, 0x2a, 0xca, 0x2d, 0xc5,
+ 0x3c, 0x75, 0x55, 0x74, 0x3c, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xed,
+ 0x00, 0x00, 0x04, 0x58, 0x04, 0xa2, 0x10, 0x26, 0x09, 0x06, 0x00, 0x00,
+ 0x10, 0x07, 0x09, 0xa1, 0x01, 0x7e, 0xff, 0x33, 0x00, 0x02, 0x00, 0xed,
+ 0x00, 0x05, 0x04, 0x58, 0x04, 0xa7, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x00,
+ 0x13, 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x01, 0x15, 0x33, 0x15, 0x23, 0x15,
+ 0x23, 0x35, 0x23, 0x35, 0x33, 0x35, 0xee, 0x9a, 0x86, 0x95, 0x95, 0x85,
+ 0x9b, 0xdd, 0xd8, 0xd9, 0xdc, 0x01, 0xe2, 0x99, 0x99, 0x5b, 0x99, 0x99,
+ 0x02, 0x57, 0x02, 0x50, 0xfd, 0xc9, 0xf4, 0xd3, 0xd3, 0xf4, 0x02, 0x37,
+ 0xfd, 0xb0, 0xfe, 0xd8, 0xfe, 0xd6, 0x01, 0x2a, 0x01, 0xe1, 0xab, 0x64,
+ 0xab, 0xab, 0x64, 0xab, 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46,
+ 0x04, 0x8b, 0x00, 0x07, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0xc3, 0x04, 0x82, 0xfc, 0x17, 0x03, 0xe9, 0xfb, 0x7e, 0x04,
+ 0x8b, 0xaa, 0xfc, 0xc9, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x00, 0x05, 0x46, 0x04, 0x8b, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x05, 0x45, 0xfb, 0x7e, 0x03, 0xe9,
+ 0xfc, 0x17, 0x04, 0x8b, 0xfb, 0x75, 0xaa, 0x03, 0x37, 0xaa, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x56, 0x05, 0x46, 0x05, 0x0b, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0xc3, 0x04, 0x82, 0xfc, 0x17, 0x03, 0xe9, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x05, 0x0b, 0xaa, 0xfc, 0xc9, 0xaa, 0x80,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x56, 0x05, 0x46,
+ 0x05, 0x0b, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x21, 0x35, 0x01, 0x15, 0x21, 0x35, 0x05, 0x45, 0xfb, 0x7e,
+ 0x03, 0xe9, 0xfc, 0x17, 0x04, 0x82, 0xfb, 0x7e, 0x05, 0x0b, 0xfb, 0x75,
+ 0xaa, 0x03, 0x37, 0xaa, 0xfa, 0xf5, 0xaa, 0xaa, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x00, 0x04, 0xdb, 0x05, 0x02, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x04, 0xdb, 0x99, 0xfd, 0x1a, 0x99,
+ 0x05, 0x02, 0xfa, 0xfe, 0x04, 0x58, 0xfb, 0xa8, 0x05, 0x02, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x04, 0xdb, 0x05, 0x02, 0x00, 0x07,
+ 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0xc3, 0x99,
+ 0x02, 0xe6, 0x99, 0x05, 0x02, 0xfb, 0xa8, 0x04, 0x58, 0xfa, 0xfe, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x19,
+ 0x00, 0x33, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x05, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x03, 0x64,
+ 0xc0, 0x54, 0x53, 0x44, 0x45, 0x45, 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0,
+ 0x54, 0x53, 0x44, 0x46, 0x44, 0x44, 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8,
+ 0xd7, 0x58, 0x59, 0x2c, 0x2c, 0x2c, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6,
+ 0x58, 0x5a, 0x2c, 0x2c, 0x2c, 0x2c, 0x5a, 0x58, 0x01, 0x9f, 0x01, 0x40,
+ 0xfe, 0xc0, 0x99, 0xfe, 0xbf, 0x01, 0x41, 0x04, 0x8e, 0x27, 0x27, 0x4c,
+ 0x4d, 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c,
+ 0x4d, 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64, 0x62, 0x63,
+ 0x77, 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63,
+ 0x76, 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x84, 0xfe, 0x9b, 0xaa,
+ 0xfe, 0x9b, 0x01, 0x65, 0xaa, 0x01, 0x65, 0x00, 0x00, 0x03, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03, 0x00, 0x1d, 0x00, 0x37,
+ 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x77,
+ 0x03, 0x1a, 0xfc, 0xe6, 0x01, 0xed, 0xc0, 0x54, 0x53, 0x44, 0x45, 0x45,
+ 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44, 0x44,
+ 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c, 0x2c,
+ 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c, 0x2c,
+ 0x5a, 0x58, 0x02, 0xd7, 0xaa, 0x02, 0x61, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64, 0x62, 0x63, 0x77, 0x76,
+ 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x76, 0x77,
+ 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00, 0x00, 0x00, 0x03, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x19, 0x00, 0x33, 0x00, 0x3f,
+ 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x07, 0x17, 0x07, 0x27, 0x07,
+ 0x27, 0x37, 0x27, 0x37, 0x17, 0x37, 0x03, 0x64, 0xc0, 0x54, 0x53, 0x44,
+ 0x45, 0x45, 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46,
+ 0x44, 0x44, 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c,
+ 0x2c, 0x2c, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c,
+ 0x2c, 0x2c, 0x5a, 0x58, 0x02, 0xa2, 0xe4, 0xe3, 0x6c, 0xe3, 0xe3, 0x6d,
+ 0xe4, 0xe3, 0x6c, 0xe3, 0xe3, 0x04, 0x8e, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64, 0x62, 0x63, 0x77, 0x76,
+ 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x76, 0x77,
+ 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0xfe, 0xbe, 0xfc, 0xfc, 0x78, 0xfc,
+ 0xfd, 0x79, 0xfc, 0xfc, 0x78, 0xfc, 0xfd, 0x00, 0x00, 0x03, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03, 0x00, 0x1d, 0x00, 0x37,
+ 0x00, 0x00, 0x09, 0x01, 0x17, 0x01, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0xb5,
+ 0x02, 0x32, 0x6c, 0xfd, 0xce, 0x01, 0x43, 0xc0, 0x54, 0x53, 0x44, 0x45,
+ 0x45, 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44,
+ 0x44, 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c,
+ 0x2c, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c,
+ 0x2c, 0x5a, 0x58, 0x01, 0x86, 0x02, 0x70, 0x78, 0xfd, 0x90, 0x03, 0x80,
+ 0x27, 0x27, 0x4c, 0x4d, 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27,
+ 0x27, 0x27, 0x4c, 0x4d, 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd,
+ 0x64, 0x62, 0x63, 0x77, 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64,
+ 0x64, 0x62, 0x63, 0x76, 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x1d, 0x00, 0x37, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x12, 0x22,
+ 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27,
+ 0x24, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x02, 0xa5, 0xbe, 0xbe, 0xbf, 0xc0, 0x54, 0x53, 0x44, 0x45,
+ 0x45, 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44,
+ 0x44, 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c,
+ 0x2c, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c,
+ 0x2c, 0x5a, 0x58, 0x03, 0x01, 0xfe, 0x02, 0x8b, 0x27, 0x27, 0x4c, 0x4d,
+ 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c, 0x4d,
+ 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64, 0x62, 0x63, 0x77,
+ 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x76,
+ 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00, 0x00, 0x04, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x09, 0x00, 0x18, 0x00, 0x32,
+ 0x00, 0x4c, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36,
+ 0x34, 0x26, 0x27, 0x32, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01,
+ 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e,
+ 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26, 0x27,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x04, 0x48,
+ 0x63, 0x63, 0x90, 0x63, 0x64, 0x47, 0x3a, 0x6a, 0x27, 0x29, 0x2a, 0xa7,
+ 0x79, 0x79, 0xa2, 0xa5, 0xd8, 0xc0, 0x54, 0x53, 0x44, 0x45, 0x45, 0x45,
+ 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44, 0x44, 0x46,
+ 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c, 0x2c, 0x2c,
+ 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c, 0x2c, 0x5a,
+ 0x58, 0x03, 0x41, 0x6f, 0x50, 0x4f, 0x6d, 0x6d, 0x9e, 0x70, 0x81, 0x31,
+ 0x2e, 0x2d, 0x72, 0x42, 0x84, 0xb7, 0xb4, 0x87, 0x86, 0xba, 0xcc, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64,
+ 0x62, 0x63, 0x77, 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64,
+ 0x62, 0x63, 0x76, 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x11,
+ 0x00, 0x2b, 0x00, 0x45, 0x00, 0x00, 0x01, 0x0d, 0x01, 0x07, 0x25, 0x11,
+ 0x23, 0x11, 0x05, 0x27, 0x2d, 0x01, 0x37, 0x05, 0x11, 0x33, 0x11, 0x25,
+ 0x02, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27,
+ 0x26, 0x27, 0x24, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x04, 0x72, 0xfe, 0xdd, 0x01, 0x23, 0x2f, 0xfe,
+ 0xef, 0x5c, 0xfe, 0xf0, 0x2f, 0x01, 0x23, 0xfe, 0xdd, 0x2f, 0x01, 0x10,
+ 0x5c, 0x01, 0x11, 0xdf, 0xc0, 0x54, 0x53, 0x44, 0x45, 0x45, 0x45, 0x45,
+ 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44, 0x44, 0x46, 0x44,
+ 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c, 0x2c, 0x2c, 0x59,
+ 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c, 0x2c, 0x5a, 0x58,
+ 0x03, 0x31, 0xaf, 0xb0, 0x58, 0xb7, 0xfe, 0xad, 0x01, 0x53, 0xb7, 0x58,
+ 0xb0, 0xaf, 0x59, 0xb7, 0x01, 0x53, 0xfe, 0xad, 0xb7, 0x01, 0x04, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64,
+ 0x62, 0x63, 0x77, 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64,
+ 0x62, 0x63, 0x76, 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x21, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x15, 0x21, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0xe4, 0x02, 0x40,
+ 0xfd, 0xc0, 0x02, 0x40, 0xfd, 0xc0, 0x01, 0x80, 0xc0, 0x54, 0x53, 0x44,
+ 0x45, 0x45, 0x45, 0x45, 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46,
+ 0x44, 0x44, 0x46, 0x44, 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c,
+ 0x2c, 0x2c, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c,
+ 0x2c, 0x2c, 0x5a, 0x58, 0x03, 0x6a, 0x88, 0xc0, 0x88, 0x02, 0xf4, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27,
+ 0x27, 0x4c, 0x4d, 0xb8, 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64,
+ 0x62, 0x63, 0x77, 0x76, 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64,
+ 0x62, 0x63, 0x76, 0x77, 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x19,
+ 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x13, 0x21,
+ 0x15, 0x21, 0x03, 0x64, 0xc0, 0x54, 0x53, 0x44, 0x45, 0x45, 0x45, 0x45,
+ 0x44, 0x53, 0x54, 0xc0, 0x54, 0x53, 0x44, 0x46, 0x44, 0x44, 0x46, 0x44,
+ 0x53, 0xfe, 0xd0, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x2c, 0x2c, 0x2c, 0x59,
+ 0x58, 0xd7, 0xf8, 0xd6, 0x58, 0x5a, 0x2c, 0x2c, 0x2c, 0x2c, 0x5a, 0x58,
+ 0x32, 0x02, 0x41, 0xfd, 0xbf, 0x04, 0x8e, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6d, 0x6a, 0xb8, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c, 0x4d, 0xb8,
+ 0x6a, 0x6d, 0xb8, 0x4d, 0x4c, 0x27, 0xbd, 0x64, 0x62, 0x63, 0x77, 0x76,
+ 0x8c, 0x89, 0x77, 0x76, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x76, 0x77,
+ 0x89, 0x8c, 0x76, 0x77, 0x63, 0x62, 0xfe, 0x17, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x25, 0x21,
+ 0x11, 0x21, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x01, 0x2f, 0x03, 0xaa, 0xfb, 0xcf, 0x04, 0xb8, 0xfb, 0x48,
+ 0x02, 0xa9, 0x01, 0x40, 0xfe, 0xc0, 0x99, 0xfe, 0xbf, 0x01, 0x41, 0x04,
+ 0x89, 0xfb, 0xf0, 0x04, 0x10, 0x9b, 0xfa, 0xbf, 0x04, 0x59, 0xfe, 0x9b,
+ 0xaa, 0xfe, 0x9b, 0x01, 0x65, 0xaa, 0x01, 0x65, 0x00, 0x03, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x03, 0x11, 0x21, 0x11, 0x25, 0x21,
+ 0x11, 0x21, 0x01, 0x77, 0x03, 0x1a, 0xfc, 0xe6, 0x48, 0x03, 0xaa, 0xfb,
+ 0xcf, 0x04, 0xb8, 0xfb, 0x48, 0x02, 0xd7, 0xaa, 0x02, 0x5c, 0xfb, 0xf0,
+ 0x04, 0x10, 0x9b, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xa8,
+ 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13,
+ 0x00, 0x00, 0x09, 0x02, 0x07, 0x09, 0x01, 0x27, 0x09, 0x01, 0x37, 0x09,
+ 0x01, 0x25, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x04, 0xb7, 0xfe,
+ 0xb9, 0x01, 0x47, 0x6d, 0xfe, 0xba, 0xfe, 0xba, 0x6c, 0x01, 0x46, 0xfe,
+ 0xba, 0x6c, 0x01, 0x46, 0x01, 0x46, 0xfc, 0xe5, 0x03, 0xaa, 0xfb, 0xcf,
+ 0x04, 0xb8, 0xfb, 0x48, 0x03, 0xec, 0xfe, 0x96, 0xfe, 0x96, 0x78, 0x01,
+ 0x6a, 0xfe, 0x95, 0x79, 0x01, 0x6a, 0x01, 0x6a, 0x79, 0xfe, 0x95, 0x01,
+ 0x6b, 0x24, 0xfb, 0xf0, 0x04, 0x10, 0x9b, 0xfa, 0xbf, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x01, 0x11,
+ 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x02, 0xa5, 0xbe, 0xbe, 0xfe, 0x8a,
+ 0x03, 0xaa, 0xfb, 0xcf, 0x04, 0xb8, 0xfb, 0x48, 0x03, 0x01, 0xfe, 0x02,
+ 0x86, 0xfb, 0xf0, 0x04, 0x10, 0x9b, 0xfa, 0xbf, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x07, 0x00, 0x00, 0x33, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x9e, 0x72, 0x04, 0x99, 0xfb, 0x67,
+ 0x05, 0x9a, 0xfd, 0x75, 0x7f, 0xfd, 0x70, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x07, 0x00, 0x00, 0x21, 0x23,
+ 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x05, 0xa9, 0x72, 0xfb, 0x67, 0x04,
+ 0x99, 0x72, 0x02, 0x90, 0x7f, 0x02, 0x8b, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15,
+ 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x05, 0xa8, 0xfd, 0xb4, 0x73, 0xfd,
+ 0xb5, 0x05, 0x9a, 0x7f, 0xfa, 0xe5, 0x05, 0x1b, 0x7f, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x07,
+ 0x00, 0x00, 0x33, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x9e, 0x02,
+ 0x4b, 0x73, 0x02, 0x4c, 0x7f, 0x05, 0x1b, 0xfa, 0xe5, 0x7f, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x03, 0x23, 0x05, 0x9a, 0x00, 0x07,
+ 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x9e, 0x72,
+ 0x02, 0x13, 0xfd, 0xed, 0x05, 0x9a, 0xfd, 0x75, 0x7f, 0xfd, 0x70, 0x00,
+ 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x03, 0x23, 0x05, 0x9a, 0x00, 0x0b,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x01, 0x10, 0x72, 0x72, 0x02, 0x13, 0xfd, 0xed, 0x02, 0x13,
+ 0xfd, 0xed, 0x05, 0x9a, 0xfe, 0x24, 0x7f, 0xe4, 0x7f, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x0b,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x15, 0x21, 0x01, 0x10, 0x72, 0x72, 0x04, 0x99, 0xfb, 0x67, 0x04, 0x99,
+ 0xfb, 0x67, 0x05, 0x9a, 0xfe, 0x24, 0x7f, 0xe4, 0x7f, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x00, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x23, 0x11, 0x33, 0x01, 0xdd, 0x72, 0x03, 0x5a, 0xfc, 0xa6, 0xfe,
+ 0xc1, 0x72, 0x72, 0x05, 0x9a, 0xfd, 0x75, 0x7f, 0xfd, 0x70, 0x05, 0x9a,
+ 0x00, 0x03, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9, 0x05, 0x9a, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x21, 0x23, 0x11, 0x33, 0x01, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x23, 0x11, 0x33, 0x01, 0x10,
+ 0x72, 0x72, 0x02, 0x0c, 0x73, 0x02, 0x1a, 0xfd, 0xe6, 0xfe, 0xc0, 0x72,
+ 0x72, 0x05, 0x9a, 0xfa, 0x66, 0x05, 0x9a, 0xfd, 0x75, 0x7f, 0xfd, 0x70,
+ 0x05, 0x9a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d, 0x00, 0x00, 0x05, 0xa9,
+ 0x05, 0x9a, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x21, 0x23, 0x11, 0x33,
+ 0x01, 0x23, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x01, 0x10, 0x72, 0x72, 0x01, 0x3f, 0x72, 0x72, 0x03, 0x5a, 0xfc, 0xa6,
+ 0x03, 0x5a, 0xfc, 0xa6, 0x05, 0x9a, 0xfa, 0x66, 0x05, 0x9a, 0xfe, 0x24,
+ 0x7f, 0xe4, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x9d, 0xff, 0xaf, 0x05, 0xa9,
+ 0x05, 0xeb, 0x00, 0x0f, 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0x21, 0x01,
+ 0x17, 0x01, 0x21, 0x15, 0x21, 0x01, 0x27, 0x01, 0x21, 0x11, 0x9e, 0x72,
+ 0x01, 0xef, 0x01, 0x32, 0x67, 0xfe, 0xe5, 0x02, 0x2c, 0xfd, 0x9f, 0xfe,
+ 0xcd, 0x68, 0x01, 0x1d, 0xfe, 0x46, 0x05, 0x9a, 0xfd, 0x75, 0x02, 0xdc,
+ 0x35, 0xfd, 0x59, 0x7f, 0xfd, 0x1f, 0x36, 0x02, 0xab, 0xfd, 0x70, 0x00,
+ 0x00, 0x02, 0x00, 0x9d, 0xff, 0xaf, 0x05, 0xa9, 0x05, 0xeb, 0x00, 0x13,
+ 0x00, 0x17, 0x00, 0x00, 0x01, 0x17, 0x03, 0x21, 0x15, 0x21, 0x07, 0x21,
+ 0x15, 0x21, 0x03, 0x27, 0x13, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21,
+ 0x03, 0x37, 0x21, 0x15, 0x04, 0x31, 0x67, 0xd2, 0x01, 0xe3, 0xfd, 0xe8,
+ 0x5f, 0x02, 0x77, 0xfd, 0x54, 0xe8, 0x68, 0xd2, 0xfe, 0x91, 0x72, 0x72,
+ 0x02, 0x38, 0x94, 0x5f, 0xfd, 0xfd, 0x05, 0xeb, 0x35, 0xfe, 0x08, 0x7f,
+ 0xe4, 0x7f, 0xfd, 0xd3, 0x36, 0x01, 0xf7, 0xfe, 0x24, 0x05, 0x9a, 0xfe,
+ 0x24, 0xfe, 0x9d, 0xe4, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d,
+ 0xff, 0xaf, 0x05, 0xa9, 0x05, 0xeb, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00,
+ 0x01, 0x17, 0x01, 0x21, 0x15, 0x21, 0x01, 0x27, 0x01, 0x21, 0x11, 0x23,
+ 0x11, 0x33, 0x11, 0x21, 0x01, 0x23, 0x11, 0x33, 0x04, 0xf5, 0x67, 0xfe,
+ 0xe5, 0x01, 0x68, 0xfe, 0x63, 0xfe, 0xcd, 0x67, 0x01, 0x1d, 0xfe, 0xc0,
+ 0x72, 0x72, 0x01, 0x75, 0xfd, 0x4c, 0x72, 0x72, 0x05, 0xeb, 0x35, 0xfd,
+ 0x59, 0x7f, 0xfd, 0x1f, 0x36, 0x02, 0xab, 0xfd, 0x70, 0x05, 0x9a, 0xfd,
+ 0x75, 0xfc, 0xf1, 0x05, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x9d,
+ 0xff, 0xaf, 0x05, 0xa9, 0x05, 0xeb, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x33, 0x11, 0x21, 0x13, 0x17, 0x03, 0x21,
+ 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x03, 0x27, 0x13, 0x23, 0x01, 0x23,
+ 0x11, 0x33, 0x01, 0x37, 0x21, 0x15, 0x02, 0x4f, 0x72, 0x72, 0x01, 0xc2,
+ 0xe9, 0x67, 0xd2, 0x01, 0x1a, 0xfe, 0xb1, 0x5f, 0x01, 0xae, 0xfe, 0x1d,
+ 0xe8, 0x68, 0xd2, 0xf9, 0xfe, 0xc1, 0x72, 0x72, 0x02, 0x6d, 0x5f, 0xfe,
+ 0x73, 0x05, 0x9a, 0xfe, 0x24, 0x02, 0x2d, 0x35, 0xfe, 0x08, 0x7f, 0xe4,
+ 0x7f, 0xfd, 0xd3, 0x36, 0x01, 0xf7, 0xfe, 0x24, 0x05, 0x9a, 0xfc, 0xc1,
+ 0xe4, 0xe4, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3, 0xff, 0xa7, 0x05, 0x37,
+ 0x05, 0x5d, 0x00, 0x2a, 0x00, 0x00, 0x13, 0x35, 0x24, 0x25, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x27, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x05, 0x04, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x27, 0x37, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x24, 0xc3, 0x01, 0x72, 0x01, 0x20, 0xb4, 0x5b, 0x37, 0x45, 0x38, 0x48,
+ 0x32, 0x67, 0x51, 0x90, 0x7a, 0x9f, 0x85, 0xcd, 0xfe, 0xaf, 0x01, 0x51,
+ 0xcd, 0x85, 0x9f, 0x7a, 0x90, 0x51, 0x67, 0x32, 0x48, 0x38, 0x45, 0x37,
+ 0x5b, 0xb4, 0xfe, 0xe0, 0x02, 0x2e, 0xa8, 0x28, 0x59, 0x37, 0x4f, 0x30,
+ 0x3c, 0x30, 0x3a, 0x3e, 0x7e, 0x6a, 0xa0, 0x79, 0x9f, 0x5b, 0x8c, 0x3c,
+ 0x3c, 0x8c, 0x5b, 0x9f, 0x79, 0xa0, 0x6a, 0x7e, 0x3e, 0x3a, 0x30, 0x3c,
+ 0x30, 0x4f, 0x37, 0x59, 0x00, 0x01, 0x00, 0xc3, 0xff, 0xa7, 0x05, 0x37,
+ 0x05, 0x5d, 0x00, 0x2a, 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x25, 0x24, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32,
+ 0x17, 0x07, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x04,
+ 0x05, 0x05, 0x37, 0xfe, 0x8e, 0xfe, 0xe0, 0xb4, 0x5b, 0x37, 0x45, 0x38,
+ 0x48, 0x32, 0x67, 0x51, 0x90, 0x7a, 0x9f, 0x85, 0xcd, 0x01, 0x51, 0xfe,
+ 0xaf, 0xcd, 0x85, 0x9f, 0x7a, 0x90, 0x51, 0x67, 0x32, 0x48, 0x38, 0x45,
+ 0x37, 0x5b, 0xb4, 0x01, 0x20, 0x01, 0x72, 0x02, 0x2e, 0x28, 0x59, 0x37,
+ 0x4f, 0x30, 0x3c, 0x30, 0x3a, 0x3e, 0x7e, 0x6a, 0xa0, 0x79, 0x9f, 0x5b,
+ 0x8c, 0x3c, 0x3c, 0x8c, 0x5b, 0x9f, 0x79, 0xa0, 0x6a, 0x7e, 0x3e, 0x3a,
+ 0x30, 0x3c, 0x30, 0x4f, 0x37, 0x59, 0x28, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x1e, 0x05, 0x46, 0x04, 0xe6, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00,
+ 0x01, 0x11, 0x09, 0x02, 0x35, 0x01, 0x04, 0xac, 0xfc, 0xf8, 0x03, 0xa1,
+ 0xfb, 0x7e, 0x04, 0x82, 0x01, 0x20, 0x02, 0xc4, 0xfe, 0x9e, 0xfd, 0x9c,
+ 0x02, 0x11, 0xa6, 0x02, 0x11, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x1e, 0x05, 0x46, 0x04, 0xe6, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00,
+ 0x09, 0x02, 0x03, 0x11, 0x01, 0x15, 0x01, 0x5c, 0x03, 0x08, 0xfc, 0xf8,
+ 0x99, 0x04, 0x82, 0x01, 0x20, 0x01, 0x62, 0x01, 0x62, 0xfc, 0x3a, 0x04,
+ 0xc8, 0xfd, 0xef, 0xa6, 0x00, 0x03, 0x00, 0xc3, 0xff, 0x9e, 0x05, 0x46,
+ 0x05, 0x64, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x17, 0x35,
+ 0x21, 0x15, 0x03, 0x11, 0x09, 0x02, 0x35, 0x01, 0xc3, 0x04, 0x82, 0x99,
+ 0xfc, 0xf8, 0x03, 0xa1, 0xfb, 0x7e, 0x04, 0x82, 0x62, 0xaa, 0xaa, 0x02,
+ 0x00, 0x02, 0xc4, 0xfe, 0x9e, 0xfd, 0x9c, 0x02, 0x11, 0xa6, 0x02, 0x11,
+ 0x00, 0x03, 0x00, 0xc3, 0xff, 0x9e, 0x05, 0x46, 0x05, 0x64, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x17, 0x35, 0x21, 0x15, 0x09, 0x02,
+ 0x03, 0x11, 0x01, 0x15, 0xc3, 0x04, 0x82, 0xfc, 0x17, 0x03, 0x08, 0xfc,
+ 0xf8, 0x99, 0x04, 0x82, 0x62, 0xaa, 0xaa, 0x02, 0x00, 0x01, 0x62, 0x01,
+ 0x62, 0xfc, 0x3a, 0x04, 0xc8, 0xfd, 0xef, 0xa6, 0x00, 0x02, 0x00, 0x6c,
+ 0x01, 0x67, 0x06, 0xc7, 0x03, 0xa2, 0x00, 0x17, 0x00, 0x1f, 0x00, 0x00,
+ 0x01, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x27, 0x26, 0x27, 0x21, 0x06,
+ 0x07, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x16, 0x17, 0x21, 0x36,
+ 0x04, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x05, 0x0f, 0x4b, 0xd3,
+ 0x99, 0x96, 0xda, 0x49, 0x2e, 0x11, 0xfd, 0x96, 0x12, 0x2e, 0x4c, 0xd9,
+ 0x92, 0x95, 0xd4, 0x4e, 0x2f, 0x11, 0x02, 0x6a, 0x12, 0xfc, 0xc1, 0x67,
+ 0x47, 0x47, 0x68, 0x47, 0x03, 0x4f, 0x53, 0xa8, 0xef, 0xa4, 0x51, 0x33,
+ 0x43, 0x42, 0x33, 0x52, 0xa2, 0xf2, 0xa7, 0x55, 0x34, 0x43, 0x44, 0x0e,
+ 0x50, 0x72, 0x4f, 0x4f, 0x71, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6c,
+ 0x01, 0x67, 0x06, 0xc7, 0x03, 0xa2, 0x00, 0x17, 0x00, 0x1f, 0x00, 0x00,
+ 0x01, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x16, 0x17, 0x21, 0x36,
+ 0x37, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x27, 0x26, 0x27, 0x21, 0x06,
+ 0x24, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x02, 0x24, 0x4b, 0xd3,
+ 0x99, 0x96, 0xda, 0x49, 0x2e, 0x11, 0x02, 0x6a, 0x12, 0x2e, 0x4c, 0xd9,
+ 0x92, 0x95, 0xd4, 0x4e, 0x2f, 0x11, 0xfd, 0x96, 0x12, 0x03, 0x3f, 0x67,
+ 0x47, 0x47, 0x67, 0x48, 0x01, 0xba, 0x53, 0xa8, 0xef, 0xa4, 0x51, 0x33,
+ 0x43, 0x42, 0x33, 0x52, 0xa2, 0xf2, 0xa7, 0x55, 0x34, 0x43, 0x44, 0x0e,
+ 0x50, 0x72, 0x4f, 0x4f, 0x71, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x58,
+ 0x01, 0x67, 0x05, 0xb1, 0x03, 0xa2, 0x00, 0x0d, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x37, 0x21, 0x36, 0x37, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x58, 0x01,
+ 0x03, 0x60, 0x11, 0x2c, 0x52, 0xd4, 0x94, 0x92, 0xd9, 0x4b, 0x2f, 0x11,
+ 0x01, 0x71, 0x47, 0x68, 0x48, 0x48, 0x68, 0x47, 0x02, 0x2e, 0xa8, 0x44,
+ 0x2f, 0x59, 0xa7, 0xf2, 0xa2, 0x52, 0x33, 0x42, 0x8e, 0x50, 0x51, 0x71,
+ 0x4f, 0x4f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x6c, 0xff, 0xa0, 0x05, 0x9c,
+ 0x05, 0x64, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x33, 0x11, 0x23, 0x05, 0x21, 0x15, 0x21, 0x03, 0x23, 0x11, 0x33,
+ 0x25, 0x21, 0x35, 0x21, 0x02, 0xb9, 0x97, 0x97, 0x01, 0x0a, 0x01, 0xd9,
+ 0xfe, 0x27, 0x73, 0x97, 0x97, 0xfe, 0xf5, 0xfe, 0x28, 0x01, 0xd8, 0x05,
+ 0x64, 0xfd, 0xf3, 0x80, 0xaa, 0xfd, 0x73, 0x02, 0x0d, 0x80, 0xaa, 0x00,
+ 0x00, 0x01, 0x00, 0xd6, 0x00, 0x00, 0x02, 0xea, 0x05, 0x9b, 0x00, 0x07,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x02, 0x19,
+ 0x72, 0xd1, 0x02, 0x13, 0xd0, 0x05, 0x1c, 0x7f, 0x7f, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x92, 0x05, 0xec, 0x00, 0x03,
+ 0x00, 0x0a, 0x00, 0x00, 0x33, 0x35, 0x21, 0x15, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x23, 0xb4, 0x03, 0xdd, 0xfc, 0x5c, 0xb0, 0x01, 0x06, 0x01,
+ 0x05, 0xb0, 0xfe, 0xbb, 0xe1, 0xaa, 0xaa, 0x05, 0xec, 0xfc, 0x54, 0x03,
+ 0xac, 0xfb, 0x5e, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x92,
+ 0x05, 0xec, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x13, 0x01, 0x33, 0x01, 0x23, 0x09, 0x01, 0xb4, 0x03, 0xdd, 0xfc, 0x23,
+ 0x39, 0x01, 0x45, 0xe1, 0x01, 0x45, 0xb0, 0xfe, 0xfb, 0xfe, 0xfa, 0x05,
+ 0xec, 0xaa, 0xfa, 0xbe, 0x04, 0xa2, 0xfb, 0x5e, 0x03, 0xac, 0xfc, 0x54,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x92, 0x05, 0xec, 0x00, 0x03,
+ 0x00, 0x0a, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x17, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x23, 0xb4, 0x03, 0xdd, 0xfc, 0x23, 0x39, 0xb0, 0x01, 0x06,
+ 0x01, 0x05, 0xb0, 0xfe, 0xbb, 0xe1, 0x05, 0xec, 0xaa, 0xa0, 0xfc, 0x54,
+ 0x03, 0xac, 0xfb, 0x5e, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x00, 0x05, 0x0a,
+ 0x04, 0x7e, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00, 0x29, 0x01, 0x11, 0x33,
+ 0x11, 0x16, 0x17, 0x1e, 0x01, 0x17, 0x16, 0x17, 0x33, 0x01, 0x11, 0x21,
+ 0x26, 0x27, 0x2e, 0x01, 0x27, 0x26, 0x05, 0x0a, 0xfb, 0xf5, 0x99, 0x51,
+ 0x4d, 0x95, 0xd6, 0x3f, 0x21, 0x10, 0xf9, 0xfc, 0x8e, 0x02, 0x0b, 0x0e,
+ 0x18, 0x37, 0xba, 0x80, 0x39, 0x04, 0x7e, 0xfe, 0xeb, 0x12, 0x25, 0x46,
+ 0xee, 0xa4, 0x56, 0x5a, 0x02, 0x44, 0xfd, 0xbc, 0x41, 0x3f, 0x8f, 0xce,
+ 0x3d, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x00, 0x05, 0x0a,
+ 0x04, 0x7e, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x09, 0x01, 0x21, 0x05,
+ 0x35, 0x01, 0x33, 0x11, 0x04, 0x71, 0xfd, 0x27, 0x02, 0xd9, 0xfc, 0x8e,
+ 0x03, 0x72, 0x99, 0x03, 0xd4, 0xfc, 0xd6, 0xaa, 0xaa, 0x03, 0xd4, 0xfb,
+ 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfa, 0xfe, 0x77, 0x05, 0xee,
+ 0x05, 0xc1, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23,
+ 0x01, 0x03, 0x58, 0x02, 0x95, 0xb6, 0xfd, 0xbd, 0xfd, 0xbd, 0xb6, 0x02,
+ 0x93, 0x05, 0xc1, 0xf8, 0xb6, 0x06, 0x77, 0xf9, 0x89, 0x07, 0x4a, 0x00,
+ 0x00, 0x01, 0xff, 0xfa, 0xfe, 0x77, 0x05, 0xee, 0x05, 0xc1, 0x00, 0x06,
+ 0x00, 0x00, 0x09, 0x01, 0x33, 0x09, 0x01, 0x33, 0x01, 0x02, 0x90, 0xfd,
+ 0x6b, 0xb6, 0x02, 0x43, 0x02, 0x43, 0xb6, 0xfd, 0x6d, 0xfe, 0x77, 0x07,
+ 0x4a, 0xf9, 0x89, 0x06, 0x77, 0xf8, 0xb6, 0x00, 0x00, 0x01, 0x00, 0x7e,
+ 0xfe, 0x77, 0x05, 0x6a, 0x05, 0xc1, 0x00, 0x10, 0x00, 0x00, 0x01, 0x22,
+ 0x04, 0x15, 0x11, 0x23, 0x11, 0x10, 0x00, 0x20, 0x00, 0x19, 0x01, 0x23,
+ 0x11, 0x34, 0x24, 0x02, 0xf4, 0xc5, 0xfe, 0xea, 0x9b, 0x01, 0x90, 0x01,
+ 0xcc, 0x01, 0x90, 0x9b, 0xfe, 0xec, 0x05, 0x1d, 0xe3, 0xfc, 0xfb, 0x39,
+ 0x04, 0xe0, 0x01, 0x42, 0x01, 0x28, 0xfe, 0xd8, 0xfe, 0xbe, 0xfb, 0x20,
+ 0x04, 0xc7, 0xfa, 0xe5, 0x00, 0x01, 0x00, 0x7e, 0xfe, 0x77, 0x05, 0x6a,
+ 0x05, 0xc1, 0x00, 0x10, 0x00, 0x00, 0x05, 0x32, 0x24, 0x35, 0x11, 0x33,
+ 0x11, 0x10, 0x00, 0x20, 0x00, 0x19, 0x01, 0x33, 0x11, 0x14, 0x04, 0x02,
+ 0xf4, 0xc5, 0x01, 0x16, 0x9b, 0xfe, 0x70, 0xfe, 0x34, 0xfe, 0x70, 0x9b,
+ 0x01, 0x14, 0xe5, 0xe3, 0xfc, 0x04, 0xc7, 0xfb, 0x20, 0xfe, 0xbe, 0xfe,
+ 0xd8, 0x01, 0x28, 0x01, 0x42, 0x04, 0xe0, 0xfb, 0x39, 0xfa, 0xe5, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0xfe, 0x23, 0x03, 0x8a, 0x06, 0x75, 0x12, 0x06,
+ 0x0a, 0xf3, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc5, 0x02, 0x48, 0x01, 0x83,
+ 0x03, 0x46, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0xc5, 0xbe,
+ 0xbe, 0x03, 0x46, 0xfe, 0x00, 0x01, 0x00, 0xe0, 0x01, 0x31, 0x03, 0xa2,
+ 0x04, 0x19, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x1b, 0x01, 0x21, 0x07,
+ 0x13, 0x27, 0x07, 0x13, 0xe0, 0x01, 0x0d, 0x54, 0x55, 0x01, 0x0c, 0xda,
+ 0x54, 0xdb, 0xdb, 0x54, 0x02, 0xfd, 0x01, 0x1c, 0xfe, 0xe4, 0xb0, 0xfe,
+ 0xe4, 0xb0, 0xb0, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0x00, 0x1e, 0x05, 0x46, 0x04, 0xe7, 0x00, 0x03, 0x00, 0x07, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x03, 0x21,
+ 0x35, 0x21, 0x01, 0x37, 0x09, 0x01, 0x17, 0x01, 0x21, 0x15, 0x21, 0x01,
+ 0x07, 0x09, 0x01, 0x27, 0x02, 0x96, 0xdd, 0xdd, 0xdd, 0xdd, 0x4a, 0xfe,
+ 0x77, 0x01, 0x89, 0xfe, 0xb0, 0x6c, 0x01, 0x9c, 0x01, 0x9c, 0x6c, 0xfe,
+ 0xb1, 0x01, 0x88, 0xfe, 0x78, 0x01, 0x4f, 0x6c, 0xfe, 0x64, 0xfe, 0x64,
+ 0x6c, 0x01, 0x13, 0xf5, 0x04, 0xc9, 0xf6, 0xfe, 0x3c, 0xaa, 0x01, 0x75,
+ 0x78, 0xfe, 0x36, 0x01, 0xca, 0x78, 0xfe, 0x8b, 0xaa, 0xfe, 0x8b, 0x78,
+ 0x01, 0xca, 0xfe, 0x36, 0x78, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0b,
+ 0x00, 0x00, 0x17, 0x11, 0x09, 0x01, 0x11, 0x01, 0x27, 0x01, 0x11, 0x09,
+ 0x01, 0x11, 0xc3, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0x2a, 0x8c, 0xfe, 0x4e,
+ 0x02, 0xc9, 0x01, 0xb2, 0x3e, 0x05, 0x80, 0xfd, 0xb0, 0x02, 0x50, 0xfa,
+ 0x80, 0x02, 0x4e, 0x71, 0x01, 0x5e, 0xfd, 0x44, 0x01, 0x5e, 0xfe, 0xa2,
+ 0x02, 0xc6, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0xff, 0xc2, 0x06, 0x70,
+ 0x05, 0x42, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x15, 0x09, 0x01,
+ 0x11, 0x09, 0x01, 0x15, 0x01, 0x21, 0x01, 0x11, 0x06, 0x70, 0xfd, 0x2a,
+ 0xfd, 0x29, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0xb5, 0xfe, 0xe9, 0xfe, 0x4e,
+ 0xa2, 0xe0, 0x02, 0x4e, 0xfd, 0xb2, 0x05, 0x80, 0xfd, 0xb0, 0x02, 0x50,
+ 0xdd, 0xfe, 0x1c, 0x01, 0x5e, 0xfd, 0x44, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x00,
+ 0x13, 0x35, 0x09, 0x01, 0x11, 0x09, 0x01, 0x35, 0x01, 0x21, 0x01, 0x11,
+ 0xc3, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0x2a, 0xfd, 0x29, 0x02, 0x4b, 0x01,
+ 0x17, 0x01, 0xb2, 0x04, 0x62, 0xe0, 0xfd, 0xb2, 0x02, 0x4e, 0xfa, 0x80,
+ 0x02, 0x50, 0xfd, 0xb0, 0xdd, 0x01, 0xe4, 0xfe, 0xa2, 0x02, 0xbc, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x07,
+ 0x00, 0x00, 0x17, 0x35, 0x09, 0x01, 0x35, 0x01, 0x15, 0x01, 0xc3, 0x02,
+ 0x4b, 0xfd, 0xb5, 0x05, 0xad, 0xfd, 0x2a, 0x3e, 0xe0, 0x01, 0xe1, 0x01,
+ 0xe2, 0xdd, 0xfb, 0x5d, 0xdd, 0x02, 0x50, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x07, 0x00, 0x00, 0x05, 0x09,
+ 0x01, 0x35, 0x01, 0x15, 0x09, 0x01, 0x06, 0x70, 0xfd, 0x2a, 0xfd, 0x29,
+ 0x05, 0xad, 0xfd, 0xb5, 0x02, 0x4b, 0x3e, 0x02, 0x50, 0xfd, 0xb0, 0xdd,
+ 0x04, 0xa3, 0xdd, 0xfe, 0x1e, 0xfe, 0x1f, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x01, 0x60, 0x05, 0x46, 0x03, 0xf4, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x00,
+ 0x13, 0x1e, 0x01, 0x33, 0x32, 0x3f, 0x02, 0x36, 0x33, 0x32, 0x16, 0x17,
+ 0x15, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x01, 0x15, 0x21, 0x35, 0xc3, 0x5d, 0x98, 0x4e, 0x54, 0x8c,
+ 0x13, 0x0e, 0x84, 0x63, 0x58, 0xa1, 0x5e, 0x58, 0x9b, 0x4f, 0x55, 0x8b,
+ 0x0e, 0x05, 0x0f, 0x84, 0x63, 0x57, 0xa1, 0x5f, 0x04, 0x82, 0xfb, 0x7e,
+ 0x03, 0xf4, 0x55, 0x4b, 0x3d, 0x09, 0x06, 0x3b, 0x45, 0x4e, 0xb2, 0x53,
+ 0x4c, 0x3d, 0x06, 0x02, 0x07, 0x3b, 0x45, 0x4f, 0xfe, 0xc8, 0xaa, 0xaa,
+ 0x00, 0x01, 0x00, 0x59, 0x00, 0x00, 0x04, 0xed, 0x04, 0xa2, 0x00, 0x0a,
+ 0x00, 0x00, 0x13, 0x33, 0x00, 0x13, 0x12, 0x01, 0x33, 0x00, 0x03, 0x23,
+ 0x02, 0x59, 0xc2, 0x01, 0x4f, 0x39, 0x42, 0x01, 0x46, 0xc2, 0xfe, 0x65,
+ 0x5b, 0xa8, 0x5b, 0x04, 0xa2, 0xfe, 0x90, 0xfe, 0x25, 0x01, 0xda, 0x01,
+ 0x71, 0xfe, 0x81, 0xfc, 0xdd, 0x03, 0x23, 0x00, 0x00, 0x01, 0x00, 0x59,
+ 0x00, 0x00, 0x04, 0xed, 0x04, 0xa2, 0x00, 0x0a, 0x00, 0x00, 0x33, 0x00,
+ 0x13, 0x33, 0x12, 0x01, 0x23, 0x00, 0x03, 0x02, 0x01, 0x59, 0x01, 0x9b,
+ 0x5b, 0xa8, 0x5b, 0x01, 0x9b, 0xc2, 0xfe, 0xba, 0x42, 0x39, 0xfe, 0xb1,
+ 0x01, 0x7f, 0x03, 0x23, 0xfc, 0xdd, 0xfe, 0x81, 0x01, 0x71, 0x01, 0xda,
+ 0xfe, 0x25, 0xfe, 0x90, 0x00, 0x02, 0x00, 0xab, 0xff, 0xfa, 0x05, 0x46,
+ 0x05, 0x0a, 0x00, 0x13, 0x00, 0x29, 0x00, 0x00, 0x01, 0x21, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x36, 0x33, 0x21, 0x11, 0x21, 0x22, 0x27, 0x26, 0x11, 0x10, 0x37,
+ 0x36, 0x33, 0x21, 0x15, 0x21, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x21, 0x05, 0x45, 0xfd, 0xad, 0x34, 0x24, 0x24, 0x48, 0x34, 0x02,
+ 0x53, 0xfd, 0xac, 0x73, 0x51, 0x50, 0xa0, 0x74, 0x02, 0x54, 0xfd, 0xad,
+ 0xf4, 0xa9, 0xaa, 0xaa, 0xa7, 0xf4, 0x02, 0x55, 0xfd, 0xac, 0xb4, 0x7c,
+ 0x7d, 0x7d, 0x7c, 0xb5, 0x02, 0x53, 0x03, 0x0c, 0x28, 0x29, 0x39, 0x3a,
+ 0x50, 0xaa, 0x5a, 0x58, 0x82, 0x80, 0xb4, 0xfc, 0x44, 0xbd, 0xbe, 0x01,
+ 0x0d, 0x01, 0x0c, 0xbf, 0xbd, 0xaa, 0x8b, 0x8d, 0xc6, 0xc8, 0x8b, 0x8b,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0xfa, 0x05, 0x5e, 0x05, 0x0a, 0x00, 0x13,
+ 0x00, 0x29, 0x00, 0x00, 0x13, 0x35, 0x21, 0x32, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x21, 0x35, 0x21, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23,
+ 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x21,
+ 0x35, 0x21, 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0xc3, 0x02,
+ 0x54, 0x74, 0xa0, 0x50, 0x51, 0x73, 0xfd, 0xac, 0x02, 0x53, 0x34, 0x48,
+ 0x24, 0x24, 0x34, 0xfd, 0xad, 0x02, 0x53, 0xb5, 0x7c, 0x7d, 0x7d, 0x7c,
+ 0xb4, 0xfd, 0xac, 0x02, 0x55, 0xf4, 0xa7, 0xaa, 0xaa, 0xa9, 0xf4, 0x03,
+ 0x0c, 0xaa, 0xb4, 0x80, 0x82, 0x58, 0x5a, 0xaa, 0x50, 0x3a, 0x39, 0x29,
+ 0x28, 0xfc, 0xee, 0xaa, 0x8b, 0x8b, 0xc8, 0xc6, 0x8d, 0x8b, 0xaa, 0xbd,
+ 0xbf, 0xfe, 0xf4, 0xfe, 0xf3, 0xbe, 0xbd, 0x00, 0x00, 0x02, 0x00, 0xbd,
+ 0x00, 0x00, 0x05, 0x4c, 0x05, 0x4e, 0x00, 0x11, 0x00, 0x24, 0x00, 0x00,
+ 0x21, 0x11, 0x34, 0x26, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x16, 0x15, 0x11, 0x21, 0x11, 0x10, 0x00, 0x20, 0x17,
+ 0x16, 0x19, 0x01, 0x23, 0x11, 0x34, 0x27, 0x26, 0x20, 0x07, 0x06, 0x15,
+ 0x11, 0x03, 0x80, 0x48, 0x68, 0x48, 0x99, 0x51, 0x4f, 0x75, 0x73, 0xa2,
+ 0xfc, 0xa4, 0x01, 0x56, 0x01, 0xe2, 0xad, 0xa9, 0x99, 0x7c, 0x7e, 0xfe,
+ 0x98, 0x7c, 0x7e, 0x02, 0xc6, 0x3a, 0x50, 0x50, 0x3a, 0xfd, 0x3a, 0x02,
+ 0xc8, 0x80, 0x5a, 0x58, 0xb2, 0x80, 0xfd, 0x38, 0x02, 0xc6, 0x01, 0x10,
+ 0x01, 0x78, 0xbc, 0xba, 0xfe, 0xf0, 0xfd, 0x38, 0x02, 0xc8, 0xc8, 0x8a,
+ 0x8a, 0x8a, 0x8a, 0xca, 0xfd, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0xbd,
+ 0xff, 0xe3, 0x05, 0x4c, 0x05, 0x31, 0x00, 0x11, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x11, 0x14, 0x16, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x11, 0x21, 0x11, 0x10, 0x00, 0x20, 0x27,
+ 0x26, 0x19, 0x01, 0x33, 0x11, 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x35,
+ 0x11, 0x02, 0x88, 0x48, 0x68, 0x48, 0x99, 0x51, 0x4f, 0x75, 0x73, 0xa2,
+ 0x03, 0x5c, 0xfe, 0xaa, 0xfe, 0x1e, 0xad, 0xa9, 0x99, 0x7c, 0x7e, 0x01,
+ 0x68, 0x7c, 0x7e, 0x05, 0x31, 0xfd, 0x3a, 0x3a, 0x50, 0x50, 0x3a, 0x02,
+ 0xc6, 0xfd, 0x38, 0x80, 0x5a, 0x58, 0xb2, 0x80, 0x02, 0xc8, 0xfd, 0x3a,
+ 0xfe, 0xf0, 0xfe, 0x88, 0xbc, 0xba, 0x01, 0x10, 0x02, 0xc8, 0xfd, 0x38,
+ 0xc8, 0x8a, 0x8a, 0x8a, 0x8a, 0xca, 0x02, 0xc6, 0x00, 0x01, 0x01, 0x56,
+ 0x00, 0x00, 0x04, 0xb3, 0x05, 0xd5, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x34,
+ 0x27, 0x26, 0x27, 0x11, 0x23, 0x11, 0x06, 0x07, 0x06, 0x15, 0x11, 0x23,
+ 0x11, 0x34, 0x37, 0x36, 0x37, 0x11, 0x33, 0x11, 0x16, 0x17, 0x16, 0x15,
+ 0x11, 0x23, 0x04, 0x19, 0x51, 0x34, 0x43, 0x99, 0x44, 0x34, 0x51, 0x99,
+ 0x7e, 0x61, 0x83, 0x99, 0x84, 0x61, 0x7c, 0x99, 0x02, 0x9f, 0x80, 0x59,
+ 0x3a, 0x14, 0xfc, 0x3a, 0x03, 0xc6, 0x13, 0x3a, 0x5a, 0x80, 0xfd, 0x61,
+ 0x02, 0x9d, 0xc8, 0x8c, 0x6c, 0x17, 0x01, 0x61, 0xfe, 0x9f, 0x17, 0x6c,
+ 0x8a, 0xc8, 0xfd, 0x61, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x34, 0x05, 0x46,
+ 0x05, 0xd5, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x00, 0x05, 0x23, 0x11, 0x23,
+ 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33,
+ 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21,
+ 0x27, 0x35, 0x23, 0x15, 0x03, 0xea, 0x99, 0x99, 0x99, 0xfe, 0xa4, 0x01,
+ 0x5c, 0xfe, 0xa4, 0x01, 0x5c, 0x99, 0x99, 0x99, 0x01, 0x5b, 0xfe, 0xa5,
+ 0x01, 0x5b, 0xfe, 0xa5, 0x99, 0x99, 0xcc, 0x02, 0x2c, 0xfd, 0xd4, 0x02,
+ 0x2c, 0xaa, 0xf0, 0xa8, 0x02, 0x33, 0xfd, 0xcd, 0x02, 0x33, 0xfd, 0xcd,
+ 0xa8, 0xf0, 0xaa, 0xaa, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x5e, 0x05, 0x46, 0x04, 0xa6, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x04, 0x2d,
+ 0xbe, 0xbe, 0x01, 0x18, 0xfc, 0x5f, 0x03, 0xa1, 0xfb, 0x7e, 0x04, 0x82,
+ 0x03, 0x00, 0xfe, 0x01, 0xee, 0xfe, 0x91, 0xfe, 0x93, 0xb6, 0x01, 0xd1,
+ 0xa6, 0x01, 0xd1, 0x00, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x5e, 0x05, 0x46,
+ 0x04, 0xa6, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23,
+ 0x03, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x01, 0x1d, 0xbe, 0xbe, 0x5a,
+ 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x9f, 0x03, 0x00, 0xfe, 0x01, 0xee, 0xb6,
+ 0xfe, 0x2f, 0xa6, 0xfe, 0x2f, 0xb6, 0x01, 0x6d, 0x00, 0x03, 0x00, 0x85,
+ 0x00, 0x2e, 0x09, 0xb8, 0x04, 0xdf, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x14,
+ 0x00, 0x00, 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x05, 0x09, 0x01, 0x15,
+ 0x01, 0x35, 0x01, 0x05, 0x09, 0x01, 0x15, 0x01, 0x35, 0x01, 0x09, 0xb8,
+ 0xfd, 0x18, 0x02, 0xe8, 0xfc, 0x35, 0x03, 0xcb, 0xfd, 0x4c, 0xfd, 0x19,
+ 0x02, 0xe7, 0xfc, 0x36, 0x03, 0xca, 0xfd, 0x4b, 0xfd, 0x19, 0x02, 0xe7,
+ 0xfc, 0x36, 0x03, 0xca, 0x04, 0x11, 0xfe, 0x70, 0xfe, 0x72, 0xc5, 0x02,
+ 0x08, 0x9f, 0x02, 0x0a, 0xce, 0xfe, 0x70, 0xfe, 0x72, 0xc5, 0x02, 0x08,
+ 0x9f, 0x02, 0x0a, 0xce, 0xfe, 0x70, 0xfe, 0x72, 0xc5, 0x02, 0x08, 0x9f,
+ 0x02, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x85, 0x00, 0x2e, 0x09, 0xb8,
+ 0x04, 0xdf, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x14, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x15, 0x01, 0x35, 0x01, 0x03, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01,
+ 0x03, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x85, 0x03, 0xca, 0xfc, 0x36,
+ 0x02, 0xe8, 0x33, 0x03, 0xca, 0xfc, 0x36, 0x02, 0xe8, 0x35, 0x03, 0xcb,
+ 0xfc, 0x35, 0x02, 0xe8, 0x04, 0x11, 0xce, 0xfd, 0xf6, 0x9f, 0xfd, 0xf8,
+ 0xc5, 0x01, 0x8e, 0x01, 0x90, 0xce, 0xfd, 0xf6, 0x9f, 0xfd, 0xf8, 0xc5,
+ 0x01, 0x8e, 0x01, 0x90, 0xce, 0xfd, 0xf6, 0x9f, 0xfd, 0xf8, 0xc5, 0x01,
+ 0x8e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0xfe, 0x2e, 0x05, 0x46,
+ 0x06, 0xd4, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x00, 0x13, 0x09,
+ 0x01, 0x35, 0x01, 0x15, 0x09, 0x01, 0x21, 0x35, 0x21, 0x11, 0x09, 0x01,
+ 0x15, 0x01, 0x35, 0x01, 0xc3, 0x03, 0x61, 0xfc, 0x9f, 0x04, 0x82, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0xa0, 0x03, 0x60, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfe, 0xde, 0x01, 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90,
+ 0xaa, 0xfe, 0x91, 0x03, 0xfe, 0xaa, 0x03, 0x4e, 0xfe, 0xeb, 0xfe, 0xee,
+ 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0x2e, 0x05, 0x46, 0x06, 0xd4, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x15, 0x01, 0x35, 0x01, 0x15, 0x09, 0x01, 0x35, 0x21,
+ 0x15, 0x01, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x45, 0xfb, 0x7e,
+ 0x04, 0x82, 0xfc, 0x9f, 0xfe, 0xdf, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfb, 0x7e, 0x03, 0x60, 0xfe, 0xde, 0xb0, 0x01, 0x6f, 0xaa, 0x01, 0x70,
+ 0xb2, 0xfe, 0xee, 0x02, 0x39, 0xaa, 0xaa, 0x03, 0xf8, 0xb0, 0xfe, 0x91,
+ 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0x00, 0x00, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00,
+ 0x25, 0x15, 0x01, 0x35, 0x01, 0x15, 0x09, 0x01, 0x35, 0x21, 0x15, 0x05,
+ 0x45, 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0xa0, 0xfe, 0xde, 0x04, 0x82, 0xb0,
+ 0xb0, 0x01, 0x6f, 0xaa, 0x01, 0x70, 0xb2, 0xfe, 0xee, 0x02, 0x39, 0xaa,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46,
+ 0x04, 0xa8, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x37, 0x09, 0x01, 0x35,
+ 0x01, 0x15, 0x09, 0x01, 0x21, 0x35, 0x21, 0xc3, 0x03, 0x61, 0xfc, 0x9f,
+ 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xb0, 0x01,
+ 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90, 0xaa, 0xfe, 0x91, 0x03, 0xfe, 0xaa,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x29, 0x05, 0x46, 0x05, 0x57, 0x00, 0x05,
+ 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x05, 0x35, 0x24, 0x01, 0x11, 0x15,
+ 0x00, 0x25, 0x35, 0x24, 0x01, 0x15, 0x00, 0x05, 0x04, 0x05, 0x45, 0xfe,
+ 0x7f, 0xfc, 0xff, 0x03, 0x12, 0x01, 0x70, 0xfe, 0xa7, 0xfc, 0xd7, 0x03,
+ 0x29, 0x01, 0x59, 0xfe, 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x04, 0x80, 0xfe,
+ 0x5f, 0x85, 0xae, 0x91, 0x01, 0xbe, 0xfa, 0xa9, 0xd7, 0x01, 0x80, 0x7c,
+ 0xa6, 0x84, 0x01, 0x78, 0xd7, 0xfe, 0xe5, 0x5d, 0x5d, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0x29, 0x05, 0x46, 0x05, 0x57, 0x00, 0x05,
+ 0x00, 0x10, 0x00, 0x00, 0x13, 0x35, 0x00, 0x05, 0x15, 0x24, 0x01, 0x00,
+ 0x25, 0x24, 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0xc3, 0x01, 0x70,
+ 0x03, 0x12, 0xfc, 0xff, 0xfe, 0x7f, 0x01, 0x59, 0x01, 0xac, 0xfe, 0x54,
+ 0xfe, 0xa7, 0x01, 0x59, 0x03, 0x29, 0xfc, 0xd7, 0xfe, 0xa7, 0x04, 0x80,
+ 0xd7, 0xfe, 0x42, 0x91, 0xae, 0x85, 0xfd, 0x21, 0x01, 0x1b, 0x5d, 0x5d,
+ 0x01, 0x1b, 0xd7, 0xfe, 0x88, 0x84, 0xa6, 0x7c, 0xfe, 0x80, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x93, 0x05, 0x46, 0x06, 0x1d, 0x00, 0x21,
+ 0x00, 0x26, 0x00, 0x00, 0x21, 0x15, 0x02, 0x25, 0x01, 0x27, 0x13, 0x26,
+ 0x27, 0x35, 0x16, 0x17, 0x37, 0x26, 0x25, 0x35, 0x24, 0x25, 0x13, 0x17,
+ 0x03, 0x36, 0x37, 0x15, 0x06, 0x0f, 0x01, 0x04, 0x17, 0x15, 0x26, 0x25,
+ 0x07, 0x04, 0x01, 0x37, 0x06, 0x07, 0x16, 0x05, 0x45, 0xf2, 0xfe, 0x59,
+ 0xff, 0x00, 0x76, 0xf4, 0xa7, 0xc0, 0xe6, 0xc4, 0x39, 0xd8, 0xfe, 0xf5,
+ 0x01, 0x8a, 0x01, 0x1b, 0xde, 0x75, 0x95, 0xaa, 0x75, 0xb4, 0xcc, 0x5e,
+ 0x01, 0x01, 0xdd, 0xc4, 0xfe, 0xa6, 0x39, 0x01, 0x70, 0xfe, 0x88, 0x2b,
+ 0x66, 0x6b, 0x55, 0xd7, 0x01, 0x25, 0xa4, 0xfd, 0xa1, 0x4b, 0x02, 0x41,
+ 0x36, 0x23, 0xae, 0x28, 0x41, 0x87, 0x46, 0x2b, 0xa6, 0x3c, 0x7a, 0x02,
+ 0x0c, 0x4b, 0xfe, 0x9f, 0x64, 0x82, 0xd7, 0x94, 0x60, 0xdf, 0x67, 0xb6,
+ 0xd7, 0xd6, 0x87, 0x88, 0x94, 0x01, 0xe2, 0x66, 0x23, 0x17, 0x12, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x93, 0x05, 0x46, 0x06, 0x1d, 0x00, 0x21,
+ 0x00, 0x26, 0x00, 0x00, 0x13, 0x35, 0x16, 0x05, 0x13, 0x17, 0x03, 0x16,
+ 0x17, 0x15, 0x04, 0x0f, 0x01, 0x24, 0x25, 0x15, 0x04, 0x05, 0x03, 0x27,
+ 0x13, 0x06, 0x07, 0x35, 0x36, 0x3f, 0x01, 0x04, 0x07, 0x35, 0x36, 0x25,
+ 0x37, 0x24, 0x05, 0x07, 0x36, 0x37, 0x26, 0xc3, 0xe2, 0x01, 0xa8, 0xf9,
+ 0x75, 0xea, 0xac, 0xc8, 0xfe, 0xd9, 0xea, 0x50, 0x01, 0x0b, 0x01, 0x56,
+ 0xfe, 0x65, 0xfe, 0xd8, 0xd6, 0x76, 0x81, 0x8b, 0x69, 0x96, 0xce, 0x5a,
+ 0xfe, 0xea, 0xa8, 0xf7, 0x01, 0x22, 0x32, 0xfe, 0xc1, 0x01, 0xc4, 0x0c,
+ 0x21, 0x20, 0x1b, 0x04, 0x80, 0xd7, 0xfb, 0x8c, 0x02, 0x4d, 0x4b, 0xfd,
+ 0xd6, 0x2e, 0x1f, 0xa6, 0x30, 0x51, 0xbd, 0x74, 0x3b, 0xae, 0x4c, 0x9e,
+ 0xfe, 0x05, 0x4b, 0x01, 0x31, 0x67, 0x7f, 0xd7, 0xa2, 0x76, 0xd5, 0x7d,
+ 0xb7, 0xd7, 0xcb, 0x69, 0x77, 0x69, 0x90, 0x1b, 0x08, 0x07, 0x06, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xdf, 0x05, 0x46, 0x06, 0x23, 0x00, 0x17,
+ 0x00, 0x1b, 0x00, 0x00, 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x03, 0x21,
+ 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x03, 0x27, 0x37, 0x21, 0x35, 0x21,
+ 0x37, 0x21, 0x11, 0x21, 0x03, 0x13, 0x21, 0x11, 0x03, 0xdf, 0x90, 0x4f,
+ 0x01, 0x25, 0xfe, 0xa4, 0xc7, 0x02, 0x23, 0xfd, 0xa6, 0x2a, 0x02, 0x84,
+ 0xfd, 0x46, 0x62, 0x90, 0x4f, 0xfe, 0xdb, 0x01, 0x5c, 0x29, 0xfe, 0x7b,
+ 0x02, 0xba, 0xfe, 0xc7, 0xfe, 0x16, 0x06, 0x23, 0x3a, 0xf5, 0xaa, 0xfd,
+ 0x98, 0xaa, 0x80, 0xaa, 0xfe, 0xd1, 0x3a, 0xf5, 0xaa, 0x80, 0x03, 0xbc,
+ 0xfc, 0xee, 0x02, 0x68, 0xfd, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xfe, 0xdf, 0x05, 0x46, 0x06, 0x23, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x17, 0x07, 0x21, 0x11, 0x21, 0x07, 0x21, 0x15, 0x21, 0x03, 0x27,
+ 0x37, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x13, 0x21, 0x35, 0x21,
+ 0x17, 0x03, 0x21, 0x11, 0x03, 0xdf, 0x90, 0x4f, 0x01, 0x25, 0xfd, 0xa6,
+ 0x2a, 0x02, 0x84, 0xfd, 0x46, 0x62, 0x90, 0x4f, 0xfe, 0xdb, 0x01, 0x5c,
+ 0x29, 0xfe, 0x7b, 0x01, 0xbc, 0xc7, 0xfd, 0x7d, 0x02, 0xba, 0x6c, 0xc7,
+ 0x01, 0x8a, 0x06, 0x23, 0x3a, 0xf5, 0xfc, 0x44, 0x80, 0xaa, 0xfe, 0xd1,
+ 0x3a, 0xf5, 0xaa, 0x80, 0xaa, 0x02, 0x68, 0xaa, 0xaa, 0xfd, 0x98, 0x02,
+ 0x68, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3, 0xff, 0x3f, 0x05, 0x46,
+ 0x04, 0xf4, 0x00, 0x14, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x37, 0x21, 0x35,
+ 0x21, 0x37, 0x21, 0xc3, 0x04, 0x82, 0xfc, 0x17, 0x03, 0xe9, 0xfe, 0x80,
+ 0x18, 0x45, 0x01, 0xad, 0xfd, 0xe7, 0x84, 0x7d, 0x46, 0xfe, 0x52, 0x02,
+ 0x1a, 0x51, 0xfd, 0x95, 0x04, 0xf4, 0xaa, 0xfd, 0x98, 0xaa, 0x13, 0x6d,
+ 0xaa, 0xcf, 0x62, 0x6d, 0xaa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0xff, 0x3f, 0x05, 0x46, 0x04, 0xf4, 0x00, 0x14, 0x00, 0x00, 0x25, 0x15,
+ 0x21, 0x07, 0x27, 0x37, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x21, 0x17, 0x07, 0x05, 0x45, 0xfd, 0xe7, 0x84,
+ 0x7d, 0x46, 0xfe, 0x52, 0x02, 0x1a, 0x51, 0xfd, 0x95, 0x03, 0xe9, 0xfc,
+ 0x17, 0x04, 0x82, 0xfe, 0x80, 0x18, 0x45, 0xb8, 0xaa, 0xcf, 0x62, 0x6d,
+ 0xaa, 0x80, 0xaa, 0x02, 0x68, 0xaa, 0xfc, 0x44, 0x13, 0x6d, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xe5, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x1b,
+ 0x00, 0x22, 0x00, 0x00, 0x25, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07, 0x27, 0x09, 0x02, 0x15, 0x01,
+ 0x35, 0x01, 0x02, 0x9c, 0x59, 0x3d, 0x4f, 0x9b, 0x58, 0x5e, 0xa1, 0x58,
+ 0x54, 0x6c, 0x63, 0x8b, 0x5e, 0x5b, 0x3d, 0x4e, 0x98, 0x5d, 0x5f, 0xa1,
+ 0x57, 0x57, 0x6d, 0x61, 0x8c, 0x03, 0x07, 0xfc, 0xa0, 0x03, 0x60, 0xfb,
+ 0x7e, 0x04, 0x82, 0x11, 0x1f, 0x4c, 0x54, 0xb4, 0x4e, 0x44, 0x2a, 0xf3,
+ 0x46, 0xe9, 0x20, 0x4a, 0x56, 0xb4, 0x4e, 0x44, 0x2b, 0xf0, 0x46, 0x04,
+ 0xcd, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xe5, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x1b,
+ 0x00, 0x22, 0x00, 0x00, 0x25, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07, 0x27, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0x35, 0x01, 0x02, 0x9c, 0x59, 0x3d, 0x4f, 0x9b, 0x58, 0x5e, 0xa1,
+ 0x58, 0x54, 0x6c, 0x63, 0x8b, 0x5e, 0x5b, 0x3d, 0x4e, 0x98, 0x5d, 0x5f,
+ 0xa1, 0x57, 0x57, 0x6d, 0x61, 0x8c, 0xfe, 0x85, 0x04, 0x82, 0xfb, 0x7e,
+ 0x03, 0x60, 0x11, 0x1f, 0x4c, 0x54, 0xb4, 0x4e, 0x44, 0x2a, 0xf3, 0x46,
+ 0xe9, 0x20, 0x4a, 0x56, 0xb4, 0x4e, 0x44, 0x2b, 0xf0, 0x46, 0x04, 0xcd,
+ 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xa6, 0x05, 0x46, 0x05, 0x57, 0x00, 0x1b,
+ 0x00, 0x26, 0x00, 0x00, 0x05, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37,
+ 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07, 0x27, 0x01, 0x00, 0x05, 0x04,
+ 0x01, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x02, 0x9c, 0x5a, 0x3c, 0x50,
+ 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x54, 0x6c, 0x63, 0x8c, 0x5f, 0x5b, 0x3e,
+ 0x4d, 0x98, 0x5d, 0x5e, 0xa1, 0x58, 0x56, 0x6d, 0x62, 0x8b, 0x03, 0x07,
+ 0xfe, 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x59, 0xfe, 0xa7, 0xfc, 0xd7,
+ 0x03, 0x29, 0x01, 0x59, 0x2e, 0x20, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x2b,
+ 0xf3, 0x46, 0xe9, 0x20, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x2c, 0xf1, 0x46,
+ 0x05, 0x94, 0xfe, 0xe5, 0x5d, 0x5d, 0xfe, 0xe5, 0xd7, 0x01, 0x78, 0x84,
+ 0xa6, 0x7c, 0x01, 0x80, 0x00, 0x02, 0x00, 0xca, 0xfe, 0xa2, 0x05, 0x4d,
+ 0x05, 0x57, 0x00, 0x1b, 0x00, 0x26, 0x00, 0x00, 0x05, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16,
+ 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07, 0x27,
+ 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x00, 0x25, 0x24, 0x02,
+ 0xa3, 0x59, 0x3d, 0x4f, 0x9b, 0x59, 0x5f, 0xa1, 0x57, 0x54, 0x6d, 0x62,
+ 0x8c, 0x5f, 0x5b, 0x3e, 0x4e, 0x98, 0x5c, 0x5e, 0xa1, 0x58, 0x56, 0x6d,
+ 0x61, 0x8c, 0xfe, 0x85, 0x01, 0x59, 0x03, 0x29, 0xfc, 0xd7, 0xfe, 0xa7,
+ 0x01, 0x59, 0x01, 0xad, 0xfe, 0x53, 0x33, 0x20, 0x4c, 0x54, 0xb3, 0x4e,
+ 0x45, 0x2b, 0xf4, 0x46, 0xea, 0x20, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x2c,
+ 0xf0, 0x46, 0x05, 0x98, 0xd7, 0xfe, 0x80, 0x7c, 0xa6, 0x84, 0xfe, 0x88,
+ 0xd7, 0x01, 0x1b, 0x5d, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0xf6, 0x05, 0x46, 0x06, 0x0c, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x12,
+ 0x00, 0x00, 0x01, 0x17, 0x03, 0x37, 0x11, 0x25, 0x03, 0x27, 0x13, 0x25,
+ 0x35, 0x01, 0x13, 0x11, 0x07, 0x03, 0x27, 0x13, 0x05, 0x04, 0x6a, 0x8e,
+ 0x76, 0xc3, 0xfd, 0xf4, 0xc6, 0x8e, 0xc6, 0xfe, 0x18, 0x02, 0xf8, 0xf1,
+ 0x7d, 0xbb, 0x8e, 0x82, 0xfe, 0x3c, 0x06, 0x0c, 0x40, 0xfe, 0xc1, 0x59,
+ 0xfb, 0x38, 0xf0, 0xfd, 0xe8, 0x40, 0x02, 0x19, 0xe0, 0xa6, 0x01, 0x5c,
+ 0xfc, 0xef, 0x02, 0xc4, 0x39, 0xfe, 0x04, 0x40, 0x01, 0x61, 0xce, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xfe, 0xf6, 0x05, 0x46, 0x06, 0x0c, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x12, 0x00, 0x00, 0x01, 0x27, 0x13, 0x07, 0x11, 0x05,
+ 0x13, 0x17, 0x03, 0x05, 0x15, 0x01, 0x03, 0x11, 0x37, 0x13, 0x17, 0x03,
+ 0x25, 0x01, 0x9f, 0x8e, 0x75, 0xc3, 0x02, 0x0d, 0xc5, 0x8e, 0xc6, 0x01,
+ 0xe8, 0xfd, 0x09, 0xf2, 0x7d, 0xbc, 0x8e, 0x82, 0x01, 0xc3, 0xfe, 0xf6,
+ 0x40, 0x01, 0x3f, 0x59, 0x04, 0xc8, 0xf0, 0x02, 0x18, 0x40, 0xfd, 0xe7,
+ 0xe0, 0xa6, 0xfe, 0xa4, 0x03, 0x11, 0xfd, 0x3c, 0x39, 0x01, 0xfc, 0x40,
+ 0xfe, 0x9f, 0xce, 0x00, 0x00, 0x03, 0x00, 0xc3, 0xfe, 0x7d, 0x05, 0x46,
+ 0x06, 0x85, 0x00, 0x03, 0x00, 0x17, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x11,
+ 0x07, 0x03, 0x01, 0x35, 0x21, 0x13, 0x25, 0x35, 0x01, 0x13, 0x17, 0x03,
+ 0x37, 0x11, 0x25, 0x03, 0x21, 0x15, 0x21, 0x03, 0x27, 0x37, 0x01, 0x13,
+ 0x05, 0x04, 0xac, 0x7f, 0xbb, 0xfd, 0x51, 0x01, 0x56, 0x90, 0xfe, 0x1a,
+ 0x02, 0xf5, 0xae, 0x8e, 0x74, 0xc5, 0xfd, 0xf2, 0x78, 0x02, 0x86, 0xfd,
+ 0x3b, 0x6a, 0x8e, 0x52, 0x01, 0x0a, 0x81, 0xfe, 0x3f, 0x01, 0x9e, 0x02,
+ 0xc4, 0x3a, 0xfe, 0x05, 0xfd, 0x71, 0xaa, 0x01, 0x86, 0xdf, 0xa6, 0x01,
+ 0x5b, 0x01, 0xd7, 0x40, 0xfe, 0xc5, 0x5a, 0xfb, 0x38, 0xf1, 0xfe, 0xbb,
+ 0xaa, 0xfe, 0xdf, 0x40, 0xe1, 0x02, 0xd0, 0x01, 0x5f, 0xcd, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xbf, 0xfe, 0x7d, 0x05, 0x42, 0x06, 0x85, 0x00, 0x13,
+ 0x00, 0x17, 0x00, 0x1a, 0x00, 0x00, 0x37, 0x11, 0x01, 0x13, 0x17, 0x03,
+ 0x05, 0x15, 0x01, 0x03, 0x21, 0x15, 0x21, 0x03, 0x27, 0x37, 0x23, 0x35,
+ 0x33, 0x37, 0x13, 0x25, 0x11, 0x37, 0x01, 0x03, 0x25, 0xc0, 0x02, 0x61,
+ 0xd2, 0x8e, 0xd2, 0x01, 0x93, 0xfd, 0x80, 0x76, 0x02, 0xf6, 0xfc, 0xcb,
+ 0x6b, 0x8e, 0x53, 0xa7, 0xe6, 0x54, 0xec, 0xfe, 0x73, 0xf4, 0x01, 0x27,
+ 0x60, 0x01, 0x4c, 0x9c, 0x04, 0xc8, 0xfe, 0xe9, 0x02, 0x38, 0x40, 0xfd,
+ 0xc7, 0xb9, 0xa6, 0xfe, 0xdb, 0xfe, 0xc0, 0xaa, 0xfe, 0xdf, 0x40, 0xe1,
+ 0xaa, 0xe4, 0x02, 0x81, 0xb5, 0xfd, 0x3c, 0x70, 0x01, 0x5e, 0xfe, 0xfc,
+ 0x98, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x3a, 0xff, 0x42, 0x03, 0xf9,
+ 0x05, 0xb8, 0x10, 0x27, 0x09, 0xa1, 0x02, 0x75, 0xfc, 0xfa, 0x10, 0x27,
+ 0x09, 0xa1, 0x02, 0x75, 0x02, 0x72, 0x10, 0x07, 0x09, 0xa1, 0x02, 0x75,
+ 0xff, 0xb6, 0x00, 0x00, 0xff, 0xff, 0x00, 0xd4, 0x01, 0xfe, 0x06, 0x5e,
+ 0x02, 0xfc, 0x10, 0x26, 0x09, 0xa1, 0x0f, 0xb6, 0x10, 0x27, 0x09, 0xa1,
+ 0x02, 0x75, 0xff, 0xb6, 0x10, 0x07, 0x09, 0xa1, 0x04, 0xdb, 0xff, 0xb6,
+ 0xff, 0xff, 0x00, 0xd4, 0xff, 0x42, 0x06, 0x5e, 0x05, 0xb8, 0x10, 0x27,
+ 0x09, 0xa1, 0x00, 0x0f, 0xfc, 0xfa, 0x10, 0x27, 0x09, 0xa1, 0x04, 0xdb,
+ 0x02, 0x72, 0x10, 0x07, 0x09, 0xa1, 0x02, 0x75, 0xff, 0xb6, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xd4, 0xff, 0x42, 0x06, 0x5e, 0x05, 0xb8, 0x10, 0x27,
+ 0x09, 0xa1, 0x04, 0xdb, 0xfc, 0xfa, 0x10, 0x27, 0x09, 0xa1, 0x00, 0x0f,
+ 0x02, 0x72, 0x10, 0x07, 0x09, 0xa1, 0x02, 0x75, 0xff, 0xb6, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x4f, 0xff, 0xec, 0x06, 0xe4, 0x05, 0xae, 0x00, 0x21,
+ 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x36, 0x37, 0x36, 0x24, 0x33, 0x21,
+ 0x15, 0x21, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x15, 0x21, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x21, 0x15, 0x21, 0x22, 0x24, 0x27, 0x26,
+ 0x01, 0xdf, 0xfe, 0x70, 0x01, 0x8e, 0x0d, 0x46, 0x54, 0x01, 0x41, 0xad,
+ 0x02, 0x72, 0xfd, 0x8d, 0x85, 0x7c, 0x7c, 0x44, 0x3a, 0x07, 0x04, 0x75,
+ 0xfb, 0x8d, 0x06, 0x39, 0x43, 0x7d, 0x7c, 0x85, 0x02, 0x73, 0xfd, 0x8e,
+ 0xad, 0xfe, 0xbf, 0x54, 0x41, 0x02, 0x73, 0xa0, 0x94, 0x8f, 0xb0, 0xc8,
+ 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x78, 0x5d, 0xa0, 0x4a, 0x78, 0x8b, 0x4e,
+ 0x4c, 0x01, 0x9f, 0xc6, 0xb0, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0xff, 0xec, 0x05, 0xa9, 0x05, 0xae, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x16,
+ 0x12, 0x16, 0x17, 0x21, 0x15, 0x21, 0x22, 0x24, 0x02, 0x10, 0x12, 0x24,
+ 0x33, 0x21, 0x15, 0x21, 0x0e, 0x01, 0x02, 0x07, 0x21, 0x11, 0x33, 0x11,
+ 0x23, 0x11, 0x01, 0x35, 0x06, 0x7b, 0xfa, 0x85, 0x02, 0x73, 0xfd, 0x8d,
+ 0xad, 0xfe, 0xc0, 0xaa, 0xaa, 0x01, 0x40, 0xad, 0x02, 0x73, 0xfd, 0x8d,
+ 0x85, 0xf9, 0x7d, 0x08, 0x03, 0xe6, 0x90, 0x90, 0x02, 0x73, 0x4a, 0xfe,
+ 0xfd, 0x9a, 0x01, 0x9f, 0xc6, 0x01, 0x60, 0x01, 0x74, 0x01, 0x60, 0xc8,
+ 0x9f, 0x01, 0x9c, 0xfe, 0xfe, 0x5d, 0x01, 0x10, 0xfd, 0x40, 0x01, 0x10,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x9b, 0x04, 0x68, 0x04, 0x67, 0x00, 0x19,
+ 0x00, 0x00, 0x25, 0x20, 0x24, 0x10, 0x24, 0x29, 0x01, 0x15, 0x21, 0x22,
+ 0x07, 0x06, 0x07, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x16, 0x17,
+ 0x16, 0x33, 0x21, 0x15, 0x02, 0xda, 0xfe, 0xf6, 0xfe, 0xf3, 0x01, 0x0d,
+ 0x01, 0x0a, 0x01, 0x8e, 0xfe, 0x72, 0xcf, 0x60, 0x47, 0x1a, 0x02, 0x9e,
+ 0x80, 0x80, 0xfd, 0x62, 0x22, 0x3f, 0x66, 0xc9, 0x01, 0x8e, 0x9b, 0xf6,
+ 0x01, 0xe0, 0xf6, 0x8e, 0x51, 0x3b, 0x84, 0xac, 0xfe, 0x1a, 0xac, 0x91,
+ 0x30, 0x51, 0x8e, 0x00, 0xff, 0xff, 0x00, 0x9d, 0xff, 0xec, 0x05, 0xa9,
+ 0x07, 0x48, 0x10, 0x26, 0x08, 0xe4, 0x00, 0x00, 0x10, 0x07, 0x09, 0xa1,
+ 0x01, 0xff, 0x04, 0x02, 0x00, 0x02, 0x00, 0x9d, 0xff, 0xec, 0x05, 0xa9,
+ 0x06, 0xd2, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x21, 0x15, 0x21, 0x22, 0x24, 0x02, 0x35, 0x34, 0x12,
+ 0x24, 0x33, 0x21, 0x15, 0x21, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21,
+ 0x15, 0x11, 0x21, 0x35, 0x21, 0x01, 0x35, 0x06, 0x39, 0x43, 0x7d, 0x7c,
+ 0x85, 0x02, 0x73, 0xfd, 0x8d, 0xad, 0xfe, 0xc0, 0xaa, 0xaa, 0x01, 0x40,
+ 0xad, 0x02, 0x73, 0xfd, 0x8d, 0x85, 0x7c, 0x7d, 0x43, 0x3a, 0x08, 0x04,
+ 0x76, 0xfb, 0x2e, 0x04, 0xd2, 0x02, 0x73, 0x4a, 0x78, 0x8b, 0x4e, 0x4c,
+ 0x01, 0x9f, 0xc6, 0x01, 0x60, 0xbb, 0xb9, 0x01, 0x60, 0xc8, 0x9f, 0x01,
+ 0x4d, 0x4f, 0x8a, 0x78, 0x5d, 0xa0, 0x03, 0xbf, 0xa0, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x9b, 0x04, 0x68, 0x05, 0x7d, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x00, 0x25, 0x20, 0x24, 0x35, 0x34, 0x24, 0x29, 0x01,
+ 0x15, 0x05, 0x06, 0x07, 0x06, 0x07, 0x21, 0x15, 0x21, 0x16, 0x17, 0x16,
+ 0x33, 0x21, 0x15, 0x11, 0x21, 0x35, 0x21, 0x02, 0xda, 0xfe, 0xf6, 0xfe,
+ 0xf3, 0x01, 0x0d, 0x01, 0x0a, 0x01, 0x8e, 0xfe, 0x72, 0xd1, 0x5e, 0x46,
+ 0x1b, 0x03, 0x1e, 0xfc, 0xe2, 0x21, 0x40, 0x67, 0xc8, 0x01, 0x8e, 0xfc,
+ 0x7e, 0x03, 0x82, 0x9b, 0xf6, 0xf0, 0xf0, 0xf6, 0x8e, 0x01, 0x01, 0x4f,
+ 0x3a, 0x85, 0x8e, 0x91, 0x30, 0x51, 0x8e, 0x04, 0x56, 0x8c, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9d, 0xfe, 0xda, 0x05, 0xa9, 0x05, 0xae, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x21,
+ 0x15, 0x21, 0x22, 0x24, 0x02, 0x35, 0x34, 0x12, 0x24, 0x33, 0x21, 0x15,
+ 0x21, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x15, 0x11, 0x21, 0x35,
+ 0x21, 0x01, 0x35, 0x06, 0x39, 0x43, 0x7d, 0x7c, 0x85, 0x02, 0x73, 0xfd,
+ 0x8d, 0xad, 0xfe, 0xc0, 0xaa, 0xaa, 0x01, 0x40, 0xad, 0x02, 0x73, 0xfd,
+ 0x8d, 0x85, 0x7c, 0x7d, 0x43, 0x3a, 0x08, 0x04, 0x76, 0xfb, 0x2e, 0x04,
+ 0xd2, 0x02, 0x73, 0x4a, 0x78, 0x8b, 0x4e, 0x4c, 0x01, 0x9f, 0xc6, 0x01,
+ 0x60, 0xbb, 0xb9, 0x01, 0x60, 0xc8, 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x78,
+ 0x5d, 0xa0, 0xfc, 0x67, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0xff, 0xec, 0x05, 0xa9, 0x05, 0xae, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x21,
+ 0x15, 0x21, 0x17, 0x16, 0x17, 0x16, 0x17, 0x21, 0x15, 0x21, 0x22, 0x24,
+ 0x02, 0x35, 0x34, 0x12, 0x24, 0x33, 0x21, 0x15, 0x21, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x21, 0x15, 0x21, 0x01, 0x35, 0x04, 0x73, 0xfb, 0xbc,
+ 0x10, 0x43, 0x7d, 0x7c, 0x85, 0x02, 0x73, 0xfd, 0x8d, 0xad, 0xfe, 0xc0,
+ 0xaa, 0xaa, 0x01, 0x40, 0xad, 0x02, 0x73, 0xfd, 0x8d, 0x85, 0x7c, 0x7d,
+ 0x43, 0x0d, 0x0b, 0x04, 0x4c, 0xfb, 0x8d, 0x02, 0x73, 0xa0, 0x22, 0x8b,
+ 0x4e, 0x4c, 0x01, 0x9f, 0xc6, 0x01, 0x60, 0xbb, 0xb9, 0x01, 0x60, 0xc8,
+ 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x1b, 0x1a, 0xa0, 0x00, 0x01, 0x00, 0x4f,
+ 0xff, 0xec, 0x06, 0xe4, 0x05, 0xae, 0x00, 0x21, 0x00, 0x00, 0x01, 0x21,
+ 0x15, 0x21, 0x06, 0x07, 0x06, 0x04, 0x23, 0x21, 0x35, 0x21, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x21, 0x35, 0x21, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x21, 0x35, 0x21, 0x32, 0x04, 0x17, 0x16, 0x05, 0x54, 0x01, 0x90,
+ 0xfe, 0x72, 0x0d, 0x46, 0x54, 0xfe, 0xbf, 0xac, 0xfd, 0x8d, 0x02, 0x73,
+ 0x85, 0x7c, 0x7c, 0x44, 0x3a, 0x07, 0xfb, 0x8b, 0x04, 0x74, 0x07, 0x39,
+ 0x43, 0x7d, 0x7c, 0x85, 0xfd, 0x8d, 0x02, 0x73, 0xac, 0x01, 0x41, 0x54,
+ 0x41, 0x03, 0x27, 0xa0, 0x94, 0x8f, 0xb0, 0xc8, 0x9f, 0x01, 0x4d, 0x4f,
+ 0x8a, 0x78, 0x5d, 0xa0, 0x4a, 0x78, 0x8b, 0x4e, 0x4c, 0x01, 0x9f, 0xc6,
+ 0xb0, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d, 0xff, 0xec, 0x05, 0xa9,
+ 0x05, 0xae, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x26, 0x02, 0x26, 0x27, 0x21,
+ 0x35, 0x21, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x23, 0x21, 0x35, 0x21,
+ 0x3e, 0x01, 0x12, 0x37, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x05, 0x11,
+ 0x06, 0x7c, 0xf9, 0x85, 0xfd, 0x8d, 0x02, 0x73, 0xad, 0x01, 0x3f, 0xab,
+ 0xab, 0xfe, 0xc1, 0xad, 0xfd, 0x8d, 0x02, 0x73, 0x85, 0xf8, 0x7e, 0x08,
+ 0xfc, 0x1a, 0x90, 0x90, 0x03, 0x27, 0x4a, 0x01, 0x03, 0x9a, 0x01, 0x9f,
+ 0xc6, 0xfe, 0xa0, 0xfe, 0x8c, 0xfe, 0xa0, 0xc8, 0x9f, 0x01, 0x9c, 0x01,
+ 0x02, 0x5d, 0xfe, 0xf0, 0x02, 0xc0, 0xfe, 0xf0, 0x00, 0x01, 0x00, 0xc3,
+ 0x00, 0x9b, 0x04, 0x68, 0x04, 0x67, 0x00, 0x19, 0x00, 0x00, 0x01, 0x20,
+ 0x04, 0x10, 0x04, 0x29, 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x37, 0x21,
+ 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x26, 0x27, 0x26, 0x23, 0x25, 0x35,
+ 0x02, 0x51, 0x01, 0x0a, 0x01, 0x0d, 0xfe, 0xf3, 0xfe, 0xf6, 0xfe, 0x72,
+ 0x01, 0x8e, 0xcf, 0x60, 0x46, 0x1b, 0xfd, 0x62, 0x80, 0x80, 0x02, 0x9e,
+ 0x21, 0x40, 0x67, 0xc8, 0xfe, 0x72, 0x04, 0x67, 0xf6, 0xfe, 0x20, 0xf6,
+ 0x8e, 0x51, 0x3a, 0x85, 0xac, 0x01, 0xe6, 0xac, 0x91, 0x30, 0x50, 0x01,
+ 0x8e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d, 0xff, 0xec, 0x05, 0xa9,
+ 0x06, 0xd2, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x21, 0x35, 0x21, 0x32, 0x04, 0x12, 0x15, 0x14, 0x02,
+ 0x04, 0x23, 0x21, 0x35, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x21,
+ 0x35, 0x01, 0x21, 0x35, 0x21, 0x05, 0x11, 0x06, 0x39, 0x43, 0x7e, 0x7b,
+ 0x85, 0xfd, 0x8d, 0x02, 0x73, 0xad, 0x01, 0x3f, 0xab, 0xab, 0xfe, 0xc1,
+ 0xad, 0xfd, 0x8d, 0x02, 0x73, 0x85, 0x7b, 0x7d, 0x44, 0x3a, 0x08, 0xfb,
+ 0x8a, 0x04, 0xd1, 0xfb, 0x2f, 0x04, 0xd1, 0x03, 0x27, 0x4a, 0x78, 0x8b,
+ 0x4e, 0x4c, 0x01, 0x9f, 0xc6, 0xfe, 0xa0, 0xbb, 0xb9, 0xfe, 0xa0, 0xc8,
+ 0x9f, 0x01, 0x4d, 0x4f, 0x8a, 0x78, 0x5d, 0xa0, 0x03, 0x0b, 0xa0, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x9b, 0x04, 0x68, 0x05, 0x7d, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x00, 0x01, 0x20, 0x04, 0x15, 0x14, 0x04, 0x29, 0x01,
+ 0x35, 0x25, 0x32, 0x37, 0x36, 0x37, 0x21, 0x35, 0x05, 0x26, 0x27, 0x26,
+ 0x07, 0x21, 0x35, 0x25, 0x21, 0x35, 0x21, 0x02, 0x51, 0x01, 0x0a, 0x01,
+ 0x0d, 0xfe, 0xf3, 0xfe, 0xf6, 0xfe, 0x72, 0x01, 0x8e, 0xd1, 0x5e, 0x46,
+ 0x1b, 0xfc, 0xe2, 0x03, 0x1e, 0x22, 0x3f, 0x68, 0xc7, 0xfe, 0x72, 0x03,
+ 0x82, 0xfc, 0x7e, 0x03, 0x82, 0x04, 0x67, 0xf6, 0xf1, 0xef, 0xf6, 0x8e,
+ 0x01, 0x50, 0x3a, 0x85, 0x8e, 0x01, 0x91, 0x31, 0x52, 0x01, 0x8e, 0x8a,
+ 0x8c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x83,
+ 0x05, 0xc2, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x05, 0x82, 0xfb, 0xda, 0x04, 0x26,
+ 0xfb, 0x41, 0x04, 0xbf, 0xfb, 0xda, 0x04, 0x26, 0x02, 0x82, 0xfe, 0x28,
+ 0xaa, 0x05, 0xc2, 0xaa, 0xfe, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x42,
+ 0xff, 0xdc, 0x04, 0x15, 0x04, 0x1c, 0x00, 0x13, 0x00, 0x1b, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x15, 0x14, 0x00,
+ 0x23, 0x22, 0x27, 0x07, 0x27, 0x37, 0x26, 0x35, 0x34, 0x00, 0x05, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x1f, 0x01, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x27, 0x02, 0x2a, 0xa8, 0x80, 0x6a, 0x59, 0x6a, 0x63, 0xfe, 0xe3,
+ 0xc7, 0xa5, 0x7f, 0x6a, 0x59, 0x69, 0x64, 0x01, 0x1c, 0x01, 0x94, 0x5a,
+ 0x74, 0x91, 0xd2, 0x40, 0x59, 0x59, 0x71, 0x93, 0xd2, 0x3e, 0x04, 0x17,
+ 0x71, 0x76, 0x63, 0x76, 0x8d, 0xba, 0xdd, 0xfe, 0xc4, 0x6f, 0x76, 0x63,
+ 0x76, 0x8d, 0xba, 0xdf, 0x01, 0x3c, 0xd5, 0x48, 0xe9, 0xa5, 0x80, 0x63,
+ 0x62, 0x47, 0xe9, 0xa3, 0x80, 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x66,
+ 0x01, 0x4c, 0x03, 0xe4, 0x03, 0x8c, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x01, 0x35, 0x05, 0x11, 0x01, 0x15, 0x02, 0x5f, 0xfe, 0x08, 0x01, 0x84,
+ 0x01, 0xf8, 0x02, 0x7a, 0xfe, 0xd2, 0x01, 0x4a, 0xc2, 0xfa, 0x01, 0x2e,
+ 0xfe, 0xb6, 0xc2, 0x00, 0x00, 0x02, 0x00, 0x83, 0x00, 0x00, 0x04, 0x0f,
+ 0x04, 0xc4, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x33, 0x11, 0x09, 0x01,
+ 0x11, 0x25, 0x21, 0x11, 0x09, 0x01, 0x83, 0x01, 0xc6, 0x01, 0xc6, 0xfd,
+ 0x0a, 0x02, 0x60, 0xfe, 0xd0, 0xfe, 0xd0, 0x02, 0xa0, 0x02, 0x24, 0xfd,
+ 0xdc, 0xfd, 0x60, 0xaa, 0x01, 0xd5, 0x01, 0x79, 0xfe, 0x87, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x79, 0x03, 0xda, 0x04, 0x8e, 0x05, 0xdc, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x03, 0x27, 0x01, 0x33, 0x01, 0x07, 0x03, 0x02, 0xdc,
+ 0xf7, 0x6c, 0x01, 0x63, 0x51, 0x01, 0x61, 0x6c, 0xf5, 0x04, 0xea, 0xfe,
+ 0xf0, 0x78, 0x01, 0x8a, 0xfe, 0x76, 0x78, 0x01, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x79, 0x00, 0x00, 0x04, 0x8e, 0x02, 0x02, 0x00, 0x07,
+ 0x00, 0x00, 0x25, 0x33, 0x13, 0x17, 0x01, 0x23, 0x01, 0x37, 0x02, 0xdc,
+ 0x51, 0xf5, 0x6c, 0xfe, 0x9f, 0x51, 0xfe, 0x9d, 0x6c, 0xf2, 0x01, 0x10,
+ 0x78, 0xfe, 0x76, 0x01, 0x8a, 0x78, 0x00, 0x00, 0xff, 0xff, 0x01, 0x79,
+ 0x00, 0x00, 0x04, 0x8e, 0x03, 0x3f, 0x10, 0x26, 0x11, 0x49, 0x00, 0x00,
+ 0x10, 0x07, 0x09, 0xdf, 0x00, 0x00, 0xfc, 0x26, 0xff, 0xff, 0x01, 0x79,
+ 0x00, 0x00, 0x04, 0x8e, 0x04, 0x1b, 0x10, 0x27, 0x11, 0x49, 0x00, 0x00,
+ 0x00, 0xdc, 0x10, 0x26, 0x11, 0x49, 0x00, 0xd7, 0x10, 0x07, 0x09, 0xdf,
+ 0x00, 0x00, 0xfc, 0x26, 0x00, 0x01, 0x01, 0x1b, 0xff, 0xc5, 0x02, 0x69,
+ 0x06, 0x4e, 0x00, 0x19, 0x00, 0x00, 0x01, 0x17, 0x06, 0x14, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x14, 0x17, 0x16, 0x14, 0x07, 0x27, 0x36, 0x34, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x34, 0x27, 0x26, 0x34, 0x01, 0x8b, 0x6e, 0x45,
+ 0x45, 0x6f, 0x6f, 0x45, 0x45, 0x6f, 0x6f, 0x6e, 0x45, 0x45, 0x6f, 0x6f,
+ 0x45, 0x45, 0x6f, 0x06, 0x4e, 0x76, 0x4f, 0x70, 0x50, 0x81, 0xf8, 0x81,
+ 0x50, 0x6f, 0x50, 0x81, 0xf9, 0x81, 0x76, 0x4f, 0x70, 0x50, 0x81, 0xf8,
+ 0x81, 0x50, 0x70, 0x50, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9e,
+ 0xfe, 0xf2, 0x02, 0x1c, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x23, 0x11, 0x23, 0x9e, 0x01, 0x7e, 0xd8, 0xa6, 0x06, 0x14, 0x8f,
+ 0xf9, 0x6d, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb3, 0xfe, 0xf2, 0x02, 0x31,
+ 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x02, 0x31, 0xa6, 0xd8, 0x06, 0x14, 0xf8, 0xde, 0x06, 0x93, 0x8f, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0x1c, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x33, 0x15, 0x9e, 0xa6, 0xd8, 0xfe,
+ 0xf2, 0x07, 0x22, 0xf9, 0x6d, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb3,
+ 0xfe, 0xf2, 0x02, 0x31, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x35, 0x33, 0x11, 0x33, 0x02, 0x31, 0xfe, 0x82, 0xd8, 0xa6, 0xfe, 0xf2,
+ 0x8f, 0x06, 0x93, 0x00, 0x00, 0x02, 0x02, 0xa8, 0xff, 0x62, 0x05, 0x78,
+ 0x02, 0x82, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x11, 0x23,
+ 0x13, 0x35, 0x21, 0x15, 0x02, 0xa8, 0x82, 0x82, 0xb4, 0x02, 0x1c, 0x01,
+ 0xba, 0xfd, 0xa8, 0x02, 0x90, 0x90, 0x90, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0xff, 0x62, 0x03, 0x2a, 0x02, 0x82, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x15, 0x21, 0x35, 0x05, 0x33, 0x11, 0x23, 0x02, 0x76, 0xfd, 0xe4,
+ 0x02, 0x4e, 0x82, 0x82, 0x02, 0x82, 0x90, 0x90, 0xc8, 0xfd, 0xa8, 0x00,
+ 0x00, 0x02, 0x02, 0xa8, 0x01, 0xf2, 0x05, 0x78, 0x05, 0x12, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0x25, 0x23, 0x11, 0x33,
+ 0x03, 0x5c, 0x02, 0x1c, 0xfd, 0xb2, 0x82, 0x82, 0x01, 0xf2, 0x90, 0x90,
+ 0xc8, 0x02, 0x58, 0x00, 0x00, 0x02, 0x00, 0x5a, 0x01, 0xf2, 0x03, 0x2a,
+ 0x05, 0x12, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35,
+ 0x25, 0x23, 0x11, 0x33, 0x02, 0x76, 0xfd, 0xe4, 0x02, 0xd0, 0x82, 0x82,
+ 0x02, 0x82, 0x90, 0x90, 0x38, 0x02, 0x58, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x01, 0x1f, 0x05, 0x46, 0x03, 0x5e, 0x00, 0x05, 0x00, 0x00, 0x01, 0x15,
+ 0x21, 0x11, 0x23, 0x11, 0x05, 0x45, 0xfc, 0x15, 0x97, 0x03, 0x5e, 0xaa,
+ 0xfe, 0x6b, 0x02, 0x3f, 0x00, 0x02, 0x00, 0x05, 0x01, 0x02, 0x03, 0xad,
+ 0x05, 0x12, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x24, 0x05, 0x02,
+ 0x13, 0x04, 0x25, 0x12, 0x03, 0x12, 0x03, 0x04, 0x25, 0x02, 0x13, 0x24,
+ 0x7e, 0x01, 0x5a, 0x01, 0x5b, 0x7c, 0x7c, 0xfe, 0xa5, 0xfe, 0xa6, 0x7c,
+ 0xf5, 0xa6, 0xa6, 0x01, 0xd4, 0x01, 0xd3, 0xa5, 0xa5, 0xfe, 0x2c, 0x01,
+ 0x8a, 0x89, 0x89, 0x01, 0x80, 0x01, 0x82, 0x8a, 0x8a, 0xfe, 0x7e, 0xfd,
+ 0xf8, 0x01, 0xf4, 0x02, 0x1c, 0xb1, 0xb1, 0xfe, 0x0c, 0xfd, 0xe5, 0xb1,
+ 0x00, 0x06, 0x00, 0xde, 0x00, 0x01, 0x06, 0x55, 0x06, 0x13, 0x00, 0x03,
+ 0x00, 0x31, 0x00, 0x3b, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x59, 0x00, 0x00,
+ 0x01, 0x21, 0x11, 0x21, 0x11, 0x15, 0x14, 0x06, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x3b, 0x01, 0x11, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x32, 0x16,
+ 0x1d, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x2b, 0x01, 0x11, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x3d, 0x01, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x14, 0x16, 0x33,
+ 0x13, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x01,
+ 0x33, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x15, 0x11, 0x15, 0x14, 0x16,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x03, 0x14, 0x01, 0x0b, 0xfe, 0xf5,
+ 0xa6, 0xea, 0xa6, 0xa6, 0x72, 0x99, 0x99, 0x72, 0xa6, 0xa6, 0xea, 0xa6,
+ 0x01, 0x0b, 0xa6, 0x75, 0x76, 0xa5, 0xa5, 0x73, 0x99, 0x99, 0x73, 0xa5,
+ 0xa5, 0x76, 0x75, 0xa6, 0xfe, 0x70, 0x58, 0x3e, 0x3d, 0x58, 0x58, 0x3e,
+ 0x95, 0x95, 0x3e, 0x58, 0x58, 0x3e, 0x3d, 0x58, 0x02, 0x15, 0x96, 0x3e,
+ 0x58, 0x58, 0x7c, 0x58, 0x58, 0x7c, 0x58, 0x58, 0x3e, 0x02, 0x76, 0x01,
+ 0x28, 0xfe, 0x44, 0xaa, 0x80, 0xb7, 0xb8, 0x83, 0x80, 0xba, 0x01, 0x28,
+ 0xba, 0x81, 0x82, 0xb8, 0xb7, 0x80, 0xaa, 0xaa, 0x80, 0xb7, 0xb8, 0x82,
+ 0x81, 0xba, 0xfe, 0xd8, 0xba, 0x80, 0x83, 0xb8, 0xb7, 0x80, 0xaa, 0x02,
+ 0x50, 0xa7, 0x45, 0x61, 0x61, 0x8a, 0x62, 0xfd, 0xb0, 0x62, 0x44, 0x45,
+ 0x62, 0x62, 0x44, 0x02, 0xf7, 0x62, 0x8a, 0x61, 0x61, 0x45, 0xfd, 0x09,
+ 0xa7, 0x44, 0x62, 0x62, 0x45, 0x44, 0x62, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0x01, 0x1f, 0x05, 0x46, 0x03, 0x5e, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x33, 0x11, 0x21, 0x05, 0x45, 0xfb, 0x7e, 0x97, 0x03, 0xeb, 0x01,
+ 0x1f, 0x02, 0x3f, 0xfe, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9e,
+ 0x03, 0x67, 0x02, 0xe8, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x23, 0x11, 0x21, 0x02, 0xe7, 0xfe, 0x39, 0x82, 0x02, 0x49, 0x05,
+ 0x84, 0xfd, 0xe3, 0x02, 0xad, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x78,
+ 0x03, 0x67, 0x02, 0xc2, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x13, 0x35,
+ 0x21, 0x11, 0x23, 0x11, 0x79, 0x02, 0x49, 0x82, 0x05, 0x84, 0x90, 0xfd,
+ 0x53, 0x02, 0x1d, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xff, 0x70, 0x02, 0xe8,
+ 0x02, 0x1d, 0x00, 0x05, 0x00, 0x00, 0x21, 0x15, 0x21, 0x11, 0x33, 0x11,
+ 0x02, 0xe7, 0xfd, 0xb7, 0x82, 0x90, 0x02, 0xad, 0xfd, 0xe3, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x78, 0xff, 0x70, 0x02, 0xc2, 0x02, 0x1d, 0x00, 0x05,
+ 0x00, 0x00, 0x33, 0x21, 0x11, 0x33, 0x11, 0x21, 0x79, 0x01, 0xc7, 0x82,
+ 0xfd, 0xb7, 0x02, 0x1d, 0xfd, 0x53, 0x00, 0x00, 0x00, 0x01, 0x01, 0x83,
+ 0xfe, 0x00, 0x03, 0x95, 0x07, 0x6c, 0x00, 0x19, 0x00, 0x00, 0x01, 0x11,
+ 0x34, 0x37, 0x1a, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x03, 0x02, 0x15, 0x30, 0x11,
+ 0x01, 0x84, 0x03, 0x0a, 0xab, 0xb6, 0x48, 0x5a, 0x39, 0x32, 0x27, 0x19,
+ 0x15, 0x0e, 0x05, 0x08, 0x0f, 0x5d, 0x10, 0x07, 0xfe, 0x00, 0x05, 0x08,
+ 0x24, 0x81, 0x02, 0x03, 0x01, 0xbc, 0x54, 0x41, 0x36, 0x3f, 0x13, 0x10,
+ 0x26, 0x0f, 0x48, 0xfd, 0x95, 0xfe, 0xd3, 0x02, 0xfa, 0x98, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x25, 0xfe, 0x1a, 0x02, 0x37, 0x07, 0x89, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x11, 0x14, 0x07, 0x0a, 0x01, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x33, 0x32, 0x13,
+ 0x12, 0x35, 0x30, 0x11, 0x02, 0x36, 0x03, 0x0a, 0xab, 0xb6, 0x48, 0x5a,
+ 0x39, 0x32, 0x27, 0x19, 0x15, 0x0e, 0x05, 0x08, 0x0f, 0x5d, 0x10, 0x07,
+ 0x07, 0x89, 0xfa, 0xf5, 0x24, 0x81, 0xfd, 0xfd, 0xfe, 0x44, 0x54, 0x41,
+ 0x36, 0x3f, 0x13, 0x10, 0x26, 0x0f, 0x48, 0x02, 0x6b, 0x01, 0x2d, 0x02,
+ 0x05, 0x6b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x8c, 0x01, 0xd0, 0x07, 0xc0,
+ 0x04, 0x9a, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x09, 0x01,
+ 0x27, 0x01, 0x33, 0x01, 0x07, 0x01, 0x25, 0x21, 0x35, 0x29, 0x02, 0x15,
+ 0x21, 0x03, 0xfe, 0xfe, 0x55, 0x6c, 0x02, 0x17, 0x50, 0x02, 0x15, 0x6c,
+ 0xfe, 0x57, 0xfe, 0xb3, 0xfd, 0x8b, 0x02, 0x75, 0x02, 0x49, 0x02, 0x76,
+ 0xfd, 0x8a, 0x03, 0xa8, 0xfe, 0x28, 0x78, 0x02, 0x52, 0xfd, 0xae, 0x78,
+ 0x01, 0xd8, 0x48, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x8c,
+ 0x00, 0x00, 0x07, 0xc0, 0x04, 0x9a, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00,
+ 0x13, 0x21, 0x01, 0x21, 0x15, 0x21, 0x01, 0x21, 0x25, 0x21, 0x15, 0x21,
+ 0x8c, 0x02, 0x75, 0x02, 0x9a, 0x02, 0x25, 0xfd, 0x8b, 0xfd, 0x66, 0xfd,
+ 0xdb, 0x04, 0xbe, 0x02, 0x76, 0xfd, 0x8a, 0x04, 0x9a, 0xfc, 0x10, 0xaa,
+ 0x03, 0xf0, 0xaa, 0xaa, 0x00, 0x05, 0x00, 0x8c, 0x00, 0x00, 0x0a, 0x2e,
+ 0x06, 0x14, 0x00, 0x04, 0x00, 0x09, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x15,
+ 0x00, 0x00, 0x33, 0x11, 0x21, 0x09, 0x02, 0x11, 0x33, 0x09, 0x01, 0x29,
+ 0x01, 0x09, 0x01, 0x21, 0x09, 0x03, 0x33, 0x09, 0x01, 0x8c, 0x06, 0xe5,
+ 0x02, 0xbd, 0xfd, 0x43, 0xf9, 0xa1, 0x7e, 0x02, 0x38, 0xfd, 0xc8, 0x04,
+ 0x6f, 0xfc, 0x4f, 0x01, 0xd9, 0xfe, 0x27, 0x03, 0xb1, 0xfe, 0x28, 0x02,
+ 0x94, 0xfd, 0xc9, 0x02, 0x37, 0x7f, 0x02, 0x37, 0xfd, 0xc9, 0x06, 0x14,
+ 0xfc, 0xf6, 0xfc, 0xf6, 0x05, 0x80, 0xfb, 0x14, 0x02, 0x76, 0x02, 0x76,
+ 0xfd, 0xf3, 0xfd, 0x21, 0x02, 0x0d, 0x02, 0xdf, 0xfd, 0x8a, 0xfd, 0x8a,
+ 0x02, 0x74, 0x02, 0x78, 0x00, 0x05, 0x00, 0x8c, 0x00, 0x00, 0x07, 0xc0,
+ 0x06, 0x14, 0x00, 0x03, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x13,
+ 0x00, 0x00, 0x33, 0x11, 0x21, 0x11, 0x01, 0x11, 0x33, 0x09, 0x01, 0x29,
+ 0x01, 0x09, 0x01, 0x21, 0x09, 0x03, 0x33, 0x11, 0x8c, 0x07, 0x34, 0xf9,
+ 0x52, 0x7e, 0x02, 0x38, 0xfd, 0xc8, 0x04, 0x6f, 0xfc, 0x4f, 0x01, 0xd9,
+ 0xfe, 0x27, 0x03, 0xb1, 0xfe, 0x28, 0x02, 0x94, 0xfd, 0xc9, 0x02, 0x37,
+ 0x7f, 0x06, 0x14, 0xf9, 0xec, 0x05, 0x80, 0xfb, 0x14, 0x02, 0x76, 0x02,
+ 0x76, 0xfd, 0xf3, 0xfd, 0x21, 0x02, 0x0d, 0x02, 0xdf, 0xfd, 0x8a, 0xfd,
+ 0x8a, 0x04, 0xec, 0x00, 0x00, 0x2b, 0x00, 0x6c, 0x00, 0x00, 0x09, 0xf9,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b,
+ 0x00, 0x47, 0x00, 0x53, 0x00, 0x5f, 0x00, 0x6b, 0x00, 0x77, 0x00, 0x83,
+ 0x00, 0x8f, 0x00, 0x9b, 0x00, 0xa7, 0x00, 0xb3, 0x00, 0xbf, 0x00, 0xcb,
+ 0x00, 0xd7, 0x00, 0xe3, 0x00, 0xef, 0x00, 0xfb, 0x01, 0x07, 0x01, 0x13,
+ 0x01, 0x1f, 0x01, 0x2b, 0x01, 0x37, 0x01, 0x43, 0x01, 0x4f, 0x01, 0x5b,
+ 0x01, 0x67, 0x01, 0x73, 0x01, 0x7f, 0x01, 0x8b, 0x01, 0x97, 0x01, 0xa3,
+ 0x01, 0xaf, 0x01, 0xbb, 0x01, 0xc7, 0x01, 0xd3, 0x01, 0xe4, 0x01, 0xf0,
+ 0x01, 0xfc, 0x02, 0x08, 0x00, 0x00, 0x01, 0x21, 0x32, 0x15, 0x11, 0x14,
+ 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x21, 0x22, 0x13, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x25, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x05, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x05, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x05, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x25, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x27, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x27, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x05, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x07, 0x32, 0x15, 0x11, 0x14, 0x2b,
+ 0x01, 0x22, 0x3d, 0x01, 0x34, 0x23, 0x22, 0x3d, 0x01, 0x34, 0x33, 0x13,
+ 0x15, 0x14, 0x2b, 0x01, 0x22, 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x17,
+ 0x15, 0x14, 0x2b, 0x01, 0x22, 0x3d, 0x01, 0x34, 0x3b, 0x01, 0x32, 0x05,
+ 0x22, 0x3d, 0x01, 0x34, 0x33, 0x21, 0x32, 0x1d, 0x01, 0x14, 0x23, 0x01,
+ 0x33, 0x07, 0xff, 0xc6, 0xc6, 0xf8, 0x01, 0xc7, 0x84, 0x43, 0x07, 0xff,
+ 0x41, 0x41, 0xf8, 0x01, 0x43, 0xe9, 0x21, 0x42, 0x22, 0x22, 0x42, 0x21,
+ 0xc9, 0x21, 0x44, 0x20, 0x20, 0x44, 0x21, 0x01, 0x29, 0x21, 0x43, 0x21,
+ 0x21, 0x43, 0x21, 0xfe, 0x72, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7,
+ 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0x01, 0x8d, 0x21, 0x43, 0x21, 0x21,
+ 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43,
+ 0x21, 0x21, 0x43, 0x21, 0xc7, 0x22, 0x42, 0x21, 0x21, 0x42, 0x22, 0xc7,
+ 0x22, 0x42, 0x21, 0x21, 0x42, 0x22, 0x01, 0x66, 0x21, 0xe2, 0x22, 0x22,
+ 0xe2, 0x21, 0xf9, 0x09, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21,
+ 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x22, 0x42, 0x21, 0x21, 0x42, 0x22,
+ 0xc6, 0x22, 0x42, 0x21, 0x21, 0x42, 0x22, 0xc7, 0x22, 0x42, 0x21, 0x21,
+ 0x42, 0x22, 0xc7, 0x22, 0x42, 0x22, 0x22, 0x42, 0x22, 0xc6, 0x21, 0x42,
+ 0x22, 0x22, 0x42, 0x21, 0xc7, 0x21, 0x42, 0x22, 0x22, 0x42, 0x21, 0x20,
+ 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43,
+ 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21,
+ 0x21, 0x43, 0x21, 0xc6, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21,
+ 0x42, 0x22, 0x22, 0x42, 0x21, 0xc7, 0x21, 0x42, 0x22, 0x22, 0x42, 0x21,
+ 0xc6, 0x22, 0x42, 0x22, 0x22, 0x42, 0x22, 0x21, 0x21, 0x43, 0x21, 0x21,
+ 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43,
+ 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc6,
+ 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc7, 0x21, 0x43, 0x21, 0x21, 0x43,
+ 0x21, 0xc7, 0x22, 0x42, 0x22, 0x22, 0x42, 0x22, 0xc7, 0x22, 0x42, 0x22,
+ 0x22, 0x42, 0x22, 0xc7, 0x22, 0x42, 0x22, 0x22, 0x42, 0x22, 0x01, 0x01,
+ 0x21, 0x7e, 0x21, 0x21, 0x7e, 0x21, 0x21, 0x21, 0x21, 0xde, 0x26, 0x20,
+ 0x21, 0x21, 0x85, 0x21, 0x43, 0x21, 0x21, 0x43, 0x21, 0xc9, 0x21, 0x44,
+ 0x20, 0x20, 0x44, 0x21, 0xfa, 0x48, 0x22, 0x22, 0x03, 0x9d, 0x21, 0x21,
+ 0x05, 0xd5, 0xdd, 0xfb, 0xe5, 0xdd, 0xdd, 0x04, 0x1b, 0xdd, 0xdd, 0xfb,
+ 0xe5, 0x4a, 0x4a, 0x04, 0x1b, 0x4a, 0xfc, 0x1c, 0x49, 0x25, 0x25, 0x49,
+ 0x26, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0xb7, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0xb7, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0xb7, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0xb4, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0xdb, 0x25, 0xfe, 0xde, 0x25, 0x25, 0x95, 0x20, 0x25, 0x49, 0x25,
+ 0xfd, 0x48, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x25, 0x4a,
+ 0x25, 0x94, 0x25, 0x4a, 0x25, 0x25, 0x4a, 0x25, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x00, 0x09, 0xa2, 0x06, 0x14, 0x00, 0x04, 0x00, 0x09, 0x00, 0x0c,
+ 0x00, 0x0f, 0x00, 0x15, 0x00, 0x00, 0x29, 0x01, 0x09, 0x01, 0x21, 0x07,
+ 0x23, 0x09, 0x01, 0x33, 0x09, 0x02, 0x11, 0x09, 0x01, 0x03, 0x23, 0x09,
+ 0x01, 0x33, 0x01, 0x09, 0xa2, 0xf9, 0x1b, 0xfd, 0x44, 0x02, 0xbc, 0x06,
+ 0xe5, 0x85, 0x7f, 0xfd, 0xc9, 0x02, 0x37, 0x7f, 0xfb, 0x12, 0x01, 0xd9,
+ 0x01, 0xd8, 0xfe, 0x28, 0xfe, 0x27, 0xbb, 0x80, 0xfd, 0xc9, 0x02, 0x37,
+ 0x80, 0x02, 0x37, 0x03, 0x0a, 0x03, 0x0a, 0x94, 0xfd, 0x8a, 0xfd, 0x8a,
+ 0x04, 0xec, 0xfd, 0xf3, 0x02, 0x0d, 0xfb, 0x14, 0x02, 0x0d, 0xfd, 0xf3,
+ 0x04, 0xec, 0xfd, 0x88, 0xfd, 0x8c, 0x02, 0x76, 0x00, 0x05, 0x00, 0x87,
+ 0xff, 0x46, 0x05, 0xc3, 0x05, 0xfc, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x0f,
+ 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x13, 0x09, 0x01, 0x11, 0x09, 0x01,
+ 0x03, 0x11, 0x09, 0x01, 0x11, 0x01, 0x03, 0x37, 0x01, 0x07, 0x11, 0x17,
+ 0x01, 0x27, 0x01, 0x33, 0x11, 0x23, 0xee, 0x02, 0x37, 0x02, 0x37, 0xfd,
+ 0xc9, 0xfd, 0xc9, 0x67, 0x02, 0x9e, 0x02, 0x9d, 0xfd, 0x63, 0x23, 0x34,
+ 0x01, 0xae, 0x33, 0x33, 0xfe, 0x52, 0x34, 0xfe, 0x52, 0x67, 0x67, 0x01,
+ 0x35, 0xfe, 0x95, 0x01, 0x6b, 0x02, 0xd8, 0x01, 0x6b, 0xfe, 0x95, 0xfc,
+ 0xe6, 0x03, 0x5c, 0x01, 0xad, 0xfe, 0x53, 0xfc, 0xa4, 0xfe, 0x53, 0x05,
+ 0x41, 0x63, 0xfe, 0xec, 0x63, 0xfe, 0x5c, 0x63, 0xfe, 0xec, 0x63, 0x02,
+ 0xfa, 0xfd, 0xd8, 0x00, 0xff, 0xff, 0x00, 0x95, 0x00, 0x00, 0x02, 0x30,
+ 0x04, 0x60, 0x10, 0x06, 0x03, 0x4d, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x10, 0x06, 0x03, 0x55, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x79, 0xff, 0xe3, 0x05, 0x8a, 0x04, 0x60, 0x10, 0x06,
+ 0x03, 0x5d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe7, 0x04, 0x67,
+ 0x04, 0x79, 0x10, 0x06, 0x03, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17,
+ 0xfe, 0x2e, 0x05, 0x5d, 0x00, 0xd0, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x21, 0x15, 0x23, 0x11, 0x21, 0x11, 0x23, 0x35, 0x21, 0x01, 0x8c,
+ 0x02, 0x5c, 0x01, 0x74, 0xdc, 0xfc, 0x74, 0xdd, 0x01, 0x75, 0xfe, 0xd8,
+ 0x01, 0xf8, 0xaa, 0xfe, 0x08, 0x01, 0xf8, 0xaa, 0x00, 0x02, 0x00, 0x8c,
+ 0x00, 0x00, 0x07, 0xe5, 0x05, 0xfb, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00,
+ 0x01, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x01, 0x21,
+ 0x35, 0x21, 0x05, 0x35, 0x21, 0x15, 0x05, 0x4b, 0x01, 0x9d, 0xd1, 0x6c,
+ 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0xfe, 0xb3, 0xfd, 0x66, 0xfd, 0x8b,
+ 0x02, 0x25, 0x02, 0x99, 0x02, 0x76, 0x04, 0x9a, 0xe9, 0x78, 0xfe, 0x77,
+ 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xfc, 0x10, 0xaa, 0xaa, 0xaa, 0xaa, 0x00,
+ 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x06, 0x2a, 0x05, 0xd0, 0x00, 0x05,
+ 0x00, 0x0b, 0x00, 0x00, 0x25, 0x21, 0x09, 0x01, 0x21, 0x09, 0x03, 0x21,
+ 0x09, 0x01, 0x01, 0xdd, 0x02, 0x8f, 0x01, 0x48, 0xfe, 0xb8, 0xfd, 0x71,
+ 0xfe, 0xb8, 0x01, 0x0d, 0xfe, 0x7e, 0x01, 0x82, 0x03, 0x05, 0x01, 0x83,
+ 0xfe, 0x7e, 0x72, 0x02, 0x76, 0x02, 0x76, 0xfd, 0x8a, 0xfd, 0x18, 0x02,
+ 0xe8, 0x02, 0xe8, 0xfd, 0x18, 0xfd, 0x18, 0x00, 0x00, 0x01, 0x00, 0x9e,
+ 0xfd, 0xfc, 0x02, 0xfc, 0x07, 0x92, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x23,
+ 0x35, 0x10, 0x13, 0x12, 0x13, 0x33, 0x02, 0x03, 0x02, 0x11, 0x01, 0x4e,
+ 0xb0, 0x90, 0xa8, 0x95, 0x90, 0xea, 0x51, 0x72, 0xfd, 0xfc, 0xea, 0x03,
+ 0x97, 0x01, 0xe2, 0x02, 0x30, 0x01, 0x03, 0xfd, 0xf3, 0xfe, 0x86, 0xfd,
+ 0xee, 0xfc, 0xed, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xfd, 0xfc, 0x01, 0x4e,
+ 0x07, 0x89, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0x9e, 0xb0,
+ 0xb0, 0x07, 0x89, 0xf6, 0x73, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9e,
+ 0xfe, 0x14, 0x02, 0xfc, 0x07, 0x89, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x15,
+ 0x10, 0x13, 0x12, 0x13, 0x23, 0x02, 0x03, 0x02, 0x11, 0x35, 0x01, 0x4e,
+ 0x72, 0x84, 0xb7, 0x90, 0xbb, 0x82, 0x90, 0x07, 0x89, 0xea, 0xfc, 0xa5,
+ 0xfe, 0x57, 0xfe, 0x14, 0xfe, 0x65, 0x01, 0x45, 0x01, 0xee, 0x02, 0x26,
+ 0x03, 0x32, 0xea, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xfd, 0xfc, 0x02, 0xfc,
+ 0x07, 0x92, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x35, 0x10, 0x03, 0x02, 0x03,
+ 0x33, 0x12, 0x13, 0x12, 0x11, 0x15, 0x02, 0x4c, 0x73, 0x51, 0xea, 0x90,
+ 0x96, 0xa7, 0x90, 0xfd, 0xfc, 0xea, 0x03, 0x13, 0x02, 0x12, 0x01, 0x79,
+ 0x02, 0x0e, 0xfe, 0xfd, 0xfd, 0xd0, 0xfe, 0x1e, 0xfc, 0x69, 0xea, 0x00,
+ 0x00, 0x01, 0x02, 0x4b, 0xfd, 0xfc, 0x02, 0xfc, 0x07, 0x89, 0x00, 0x04,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x30, 0x02, 0xfb, 0xaf, 0x07, 0x89,
+ 0xf6, 0x73, 0x09, 0x8d, 0x00, 0x01, 0x00, 0x9e, 0xfe, 0x14, 0x02, 0xfc,
+ 0x07, 0x89, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33, 0x15, 0x10, 0x03, 0x02,
+ 0x03, 0x23, 0x12, 0x13, 0x12, 0x11, 0x02, 0x4c, 0xaf, 0x90, 0x81, 0xbc,
+ 0x90, 0xb7, 0x84, 0x73, 0x07, 0x89, 0xea, 0xfc, 0xcd, 0xfd, 0xdb, 0xfe,
+ 0x12, 0xfe, 0xbb, 0x01, 0x9b, 0x01, 0xec, 0x01, 0xa9, 0x03, 0x5b, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfd, 0xfc, 0x02, 0xfc, 0x07, 0x6d, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x21, 0x15, 0x21, 0x01, 0x4e, 0xb0, 0x02,
+ 0x5d, 0xfe, 0x53, 0xfd, 0xfc, 0x09, 0x71, 0xc3, 0x00, 0x01, 0x00, 0x9e,
+ 0xfd, 0xfc, 0x01, 0x4e, 0x07, 0x89, 0x00, 0x03, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x23, 0x9e, 0xb0, 0xb0, 0x07, 0x89, 0xf6, 0x73, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfe, 0x14, 0x02, 0xfc, 0x07, 0x89, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x4e, 0x01, 0xad,
+ 0xfd, 0xa3, 0x07, 0x89, 0xf7, 0x4e, 0xc3, 0x09, 0x75, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x9e, 0xfd, 0xfc, 0x02, 0xfc, 0x07, 0x6d, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x02, 0x4c, 0xfe, 0x52,
+ 0x02, 0x5d, 0xfd, 0xfc, 0x08, 0xae, 0xc3, 0xf6, 0x8f, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0x4b, 0xfd, 0xfc, 0x02, 0xfc, 0x07, 0x7a, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x23, 0x02, 0x4c, 0xaf, 0xaf, 0x07, 0x7a,
+ 0xf6, 0x82, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xfe, 0x14, 0x02, 0xfc,
+ 0x07, 0x7a, 0x00, 0x05, 0x00, 0x00, 0x01, 0x33, 0x11, 0x21, 0x35, 0x21,
+ 0x02, 0x4c, 0xaf, 0xfd, 0xa3, 0x01, 0xae, 0x07, 0x7a, 0xf6, 0x9a, 0xc3,
+ 0x00, 0x01, 0x02, 0x5f, 0xfd, 0xea, 0x04, 0xd0, 0x07, 0x6d, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x03, 0x07, 0xa7, 0x63, 0x6d, 0xa8, 0xf7, 0xfd,
+ 0x5b, 0x3d, 0x33, 0xfd, 0xea, 0x07, 0x75, 0xdf, 0x91, 0x9e, 0xb0, 0x66,
+ 0x57, 0x99, 0x00, 0x00, 0x00, 0x01, 0x00, 0x97, 0xfd, 0xfc, 0x03, 0x07,
+ 0x07, 0x86, 0x00, 0x18, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x19, 0x01,
+ 0x23, 0x11, 0x10, 0x27, 0x26, 0x2f, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36,
+ 0x19, 0x01, 0x33, 0x11, 0x10, 0x07, 0x06, 0x02, 0x52, 0x34, 0x26, 0x5b,
+ 0xa7, 0x64, 0x43, 0xeb, 0x37, 0x37, 0xe9, 0x45, 0x64, 0xa7, 0x5b, 0x24,
+ 0x02, 0xc1, 0x20, 0x3d, 0x93, 0xfe, 0x43, 0xfd, 0xe8, 0x02, 0x0c, 0x01,
+ 0xb7, 0x5f, 0x41, 0x04, 0x01, 0xbb, 0x45, 0x63, 0x01, 0xb3, 0x02, 0x0c,
+ 0xfd, 0xe8, 0xfe, 0x48, 0x98, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x02, 0x5f,
+ 0xfe, 0x14, 0x04, 0xd0, 0x07, 0x86, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11,
+ 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11,
+ 0x03, 0x07, 0x33, 0x3d, 0x5b, 0xfd, 0xf7, 0xa6, 0x6f, 0x63, 0x07, 0x86,
+ 0xf8, 0x94, 0x9a, 0x56, 0x66, 0xb0, 0x9e, 0x8f, 0xe1, 0x07, 0x64, 0x00,
+ 0x00, 0x01, 0x02, 0x5f, 0xfd, 0xf4, 0x03, 0x07, 0x07, 0x8c, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x23, 0x11, 0x33, 0x03, 0x07, 0xa7, 0xa7, 0xfd, 0xf4,
+ 0x09, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x97, 0xfd, 0xea, 0x03, 0x07,
+ 0x07, 0x6d, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x34, 0x27, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x02, 0x60, 0x34, 0x3d,
+ 0x5b, 0xfd, 0xf8, 0xa7, 0x6d, 0x64, 0xfd, 0xea, 0x07, 0x7d, 0x99, 0x57,
+ 0x66, 0xb0, 0x9e, 0x91, 0xdf, 0xf8, 0x8b, 0x00, 0x00, 0x01, 0x02, 0x5f,
+ 0xfd, 0xfc, 0x04, 0xd0, 0x07, 0x86, 0x00, 0x18, 0x00, 0x00, 0x01, 0x26,
+ 0x27, 0x26, 0x19, 0x01, 0x33, 0x11, 0x10, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x07, 0x06, 0x07, 0x06, 0x19, 0x01, 0x23, 0x11, 0x10, 0x37, 0x36, 0x03,
+ 0x14, 0x36, 0x24, 0x5a, 0xa7, 0x63, 0x45, 0xe9, 0x37, 0x37, 0xeb, 0x43,
+ 0x63, 0xa7, 0x5a, 0x26, 0x02, 0xc1, 0x21, 0x3c, 0x98, 0x01, 0xb8, 0x02,
+ 0x18, 0xfd, 0xf4, 0xfe, 0x4d, 0x63, 0x45, 0xbb, 0x01, 0x04, 0x41, 0x5f,
+ 0xfe, 0x49, 0xfd, 0xf4, 0x02, 0x18, 0x01, 0xbd, 0x93, 0x3d, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x97, 0xfe, 0x14, 0x03, 0x07, 0x07, 0x86, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x02, 0x60, 0xa7, 0x64, 0x6f, 0xa5, 0xf8, 0xfd,
+ 0x5b, 0x3d, 0x34, 0x07, 0x86, 0xf8, 0x9c, 0xe1, 0x8f, 0x9e, 0xb0, 0x66,
+ 0x56, 0x9a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x83, 0xfe, 0x00, 0x02, 0x37,
+ 0x07, 0x89, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x01, 0x84,
+ 0xb2, 0xfe, 0x00, 0x09, 0x89, 0xf6, 0x77, 0x00, 0x00, 0x02, 0x00, 0x31,
+ 0x00, 0x86, 0x05, 0xa0, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x11, 0x00, 0x00,
+ 0x25, 0x09, 0x01, 0x11, 0x21, 0x11, 0x21, 0x03, 0x21, 0x03, 0x35, 0x03,
+ 0x13, 0x35, 0x21, 0x13, 0x23, 0x03, 0x01, 0xfb, 0xfe, 0x37, 0x01, 0xc9,
+ 0x01, 0xfe, 0x01, 0xa7, 0x01, 0xfc, 0x5c, 0x5a, 0xf0, 0xf0, 0x03, 0xa4,
+ 0x01, 0xf3, 0x01, 0x86, 0x01, 0xfc, 0x01, 0xfc, 0xfe, 0xef, 0x02, 0x68,
+ 0xfb, 0xc2, 0x01, 0x72, 0x83, 0xfe, 0xf6, 0xfe, 0xf6, 0x83, 0x03, 0x76,
+ 0xfd, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x27,
+ 0x04, 0xc4, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x01, 0x21, 0x09, 0x01,
+ 0x21, 0x11, 0x21, 0x06, 0x26, 0xfa, 0x81, 0x02, 0xbf, 0x02, 0xc0, 0xfa,
+ 0x81, 0x05, 0x7f, 0x02, 0xa0, 0x02, 0x24, 0xfb, 0x3c, 0x01, 0xf8, 0x00,
+ 0x00, 0x04, 0x00, 0x87, 0xff, 0x46, 0x05, 0xc3, 0x05, 0xfc, 0x00, 0x05,
+ 0x00, 0x0b, 0x00, 0x1f, 0x00, 0x2b, 0x00, 0x00, 0x13, 0x09, 0x01, 0x11,
+ 0x09, 0x01, 0x03, 0x11, 0x09, 0x01, 0x11, 0x01, 0x00, 0x14, 0x17, 0x16,
+ 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27, 0x26, 0x27, 0x26,
+ 0x22, 0x07, 0x06, 0x07, 0x02, 0x10, 0x3e, 0x01, 0x32, 0x1e, 0x01, 0x10,
+ 0x0e, 0x01, 0x22, 0x26, 0xee, 0x02, 0x37, 0x02, 0x37, 0xfd, 0xc9, 0xfd,
+ 0xc9, 0x67, 0x02, 0x9e, 0x02, 0x9d, 0xfd, 0x63, 0xfe, 0x96, 0x30, 0x31,
+ 0x53, 0x53, 0xc5, 0x53, 0x53, 0x31, 0x30, 0x30, 0x31, 0x53, 0x53, 0xc5,
+ 0x53, 0x53, 0x31, 0x97, 0x7c, 0xd7, 0xfc, 0xd6, 0x7c, 0x7c, 0xd6, 0xfc,
+ 0xd7, 0x01, 0x35, 0xfe, 0x95, 0x01, 0x6b, 0x02, 0xd8, 0x01, 0x6b, 0xfe,
+ 0x95, 0xfc, 0xe6, 0x03, 0x5c, 0x01, 0xad, 0xfe, 0x53, 0xfc, 0xa4, 0xfe,
+ 0x53, 0x03, 0xc8, 0xda, 0x5d, 0x5c, 0x36, 0x36, 0x36, 0x36, 0x5c, 0x5d,
+ 0xda, 0x5d, 0x5c, 0x36, 0x36, 0x36, 0x36, 0x5c, 0xfe, 0xaa, 0x01, 0x18,
+ 0xee, 0x8a, 0x8a, 0xee, 0xfe, 0xe8, 0xee, 0x8a, 0x8a, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x05, 0x00, 0x9a, 0x05, 0x85, 0x03, 0x8e, 0x10, 0x06,
+ 0x0a, 0xda, 0x00, 0x00, 0x00, 0x03, 0x00, 0x50, 0xfe, 0xf7, 0x04, 0x54,
+ 0x02, 0x5a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x20, 0x00, 0x00, 0x00, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36, 0x35, 0x34, 0x2f,
+ 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x01, 0x11, 0x07, 0x35, 0x37, 0x33, 0x11, 0x03, 0x85, 0xb6, 0x2d, 0x2e,
+ 0x2e, 0x2d, 0xb6, 0x2d, 0x2e, 0x2e, 0x88, 0x91, 0x99, 0x99, 0x91, 0x92,
+ 0x99, 0x99, 0xfe, 0x81, 0xc9, 0xcf, 0x7b, 0x02, 0x01, 0x56, 0x56, 0xac,
+ 0xad, 0x56, 0x56, 0x56, 0x56, 0xad, 0xac, 0x56, 0xaf, 0xde, 0xd3, 0xd4,
+ 0xde, 0xde, 0xd4, 0xd3, 0xde, 0xfc, 0xac, 0x02, 0xd1, 0x29, 0x74, 0x27,
+ 0xfc, 0xbd, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8e, 0xff, 0xe3, 0x04, 0x2e,
+ 0x06, 0x14, 0x00, 0x17, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x33,
+ 0x32, 0x12, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x15, 0x23, 0x11, 0x07,
+ 0x27, 0x25, 0x35, 0x33, 0x15, 0x25, 0x17, 0x05, 0x00, 0x10, 0x26, 0x20,
+ 0x06, 0x10, 0x16, 0x20, 0x01, 0x4e, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5,
+ 0xb8, 0x6f, 0x9f, 0x34, 0xa7, 0xfa, 0x1e, 0x01, 0x18, 0xa7, 0x01, 0x06,
+ 0x1e, 0xfe, 0xdc, 0x02, 0x33, 0x96, 0xfe, 0xf9, 0x96, 0x96, 0x01, 0x07,
+ 0x03, 0xb6, 0x64, 0x61, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0x61, 0x64,
+ 0xa8, 0x04, 0xe6, 0x5d, 0x63, 0x68, 0xc0, 0x83, 0x61, 0x61, 0x6d, 0xfc,
+ 0x40, 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0x00, 0x01, 0x00, 0x83,
+ 0xfe, 0x2e, 0x04, 0x0f, 0x00, 0xd0, 0x00, 0x07, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x01, 0x1b, 0x02, 0x5c, 0x98, 0xfc,
+ 0x74, 0x98, 0xfe, 0xd8, 0x01, 0xf8, 0xfd, 0x5e, 0x02, 0xa2, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x1b, 0x00, 0x26, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x01, 0x33,
+ 0x11, 0x07, 0x35, 0x37, 0x33, 0x11, 0x33, 0x15, 0x21, 0x05, 0xec, 0xfe,
+ 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae,
+ 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00, 0x01,
+ 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x01, 0x56, 0xc3,
+ 0xd5, 0xe8, 0x91, 0xc4, 0xfd, 0xd5, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41,
+ 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8,
+ 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1,
+ 0xb1, 0xfe, 0xb9, 0xfd, 0xff, 0x02, 0x7e, 0x2b, 0x98, 0x2f, 0xfc, 0xe6,
+ 0x8e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec,
+ 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x38, 0x00, 0x00, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22,
+ 0x04, 0x02, 0x01, 0x21, 0x15, 0x21, 0x35, 0x3e, 0x01, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x07, 0x0e, 0x01, 0x05, 0xec, 0xfe, 0x6c, 0xfe,
+ 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c,
+ 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00, 0x01, 0x67, 0xa4,
+ 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x02, 0x13, 0x01, 0x89, 0xfd,
+ 0x9f, 0x4a, 0xec, 0x1e, 0x37, 0x2b, 0x56, 0x46, 0x35, 0x77, 0x67, 0x57,
+ 0x83, 0x36, 0x93, 0xb1, 0x2b, 0x38, 0x0f, 0xa0, 0x02, 0xea, 0xfe, 0xc1,
+ 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe,
+ 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01,
+ 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0xfd, 0xff, 0x8e, 0x81, 0x4d, 0xf1, 0x22,
+ 0x3f, 0x55, 0x28, 0x3f, 0x4e, 0x26, 0x3a, 0xab, 0x24, 0x1f, 0x97, 0x7d,
+ 0x3a, 0x69, 0x46, 0x12, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x44,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24,
+ 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x05, 0x1e, 0x01, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x05,
+ 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c,
+ 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01,
+ 0x00, 0x01, 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x03,
+ 0x59, 0x0c, 0x6a, 0xc2, 0xb0, 0x39, 0x7b, 0x4f, 0x52, 0x70, 0x3e, 0x69,
+ 0x67, 0x60, 0x59, 0x7e, 0x83, 0x50, 0x50, 0x53, 0x52, 0x2f, 0x6d, 0x60,
+ 0x55, 0x7b, 0x37, 0x91, 0xad, 0x5d, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41,
+ 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8,
+ 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1,
+ 0xb1, 0xfe, 0xb9, 0x96, 0x03, 0x81, 0x5d, 0x8d, 0x9c, 0x17, 0x1b, 0xa8,
+ 0x30, 0x1c, 0x4f, 0x4c, 0x47, 0x4e, 0x8c, 0x3c, 0x3a, 0x3c, 0x3f, 0x15,
+ 0x20, 0x97, 0x18, 0x14, 0x89, 0x73, 0x51, 0x72, 0x00, 0x04, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x1e,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x25, 0x03, 0x33, 0x03,
+ 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x21, 0x35, 0x05, 0xec,
+ 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab,
+ 0xae, 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00,
+ 0x01, 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x02, 0x78,
+ 0xf2, 0xf2, 0x15, 0xb9, 0x7f, 0x7f, 0xa4, 0xfe, 0x70, 0x02, 0xea, 0xfe,
+ 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6,
+ 0xfe, 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3,
+ 0x01, 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0x4f, 0xfe, 0x82, 0x02, 0x48, 0xfd,
+ 0xb8, 0x8d, 0xd3, 0xd3, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x39,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24,
+ 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x01, 0x21, 0x15, 0x21, 0x15, 0x06,
+ 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01,
+ 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff,
+ 0x01, 0x00, 0x01, 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3,
+ 0x01, 0x6f, 0x02, 0x03, 0xfe, 0x98, 0x03, 0x39, 0x1b, 0x9f, 0xba, 0xc0,
+ 0xab, 0x39, 0x78, 0x4f, 0x55, 0x6c, 0x3d, 0x5d, 0x6a, 0x6a, 0x5d, 0x2d,
+ 0x5b, 0x50, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f,
+ 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70,
+ 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0x01,
+ 0x19, 0x8e, 0xab, 0x01, 0x0a, 0xb0, 0x95, 0x98, 0xac, 0x14, 0x18, 0xac,
+ 0x2f, 0x1b, 0x61, 0x55, 0x56, 0x61, 0x14, 0x25, 0x00, 0x04, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x27,
+ 0x00, 0x40, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x05, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x13, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x06, 0x07, 0x06, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x12, 0x33, 0x32, 0x16, 0x05, 0xec, 0xfe,
+ 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae,
+ 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00, 0x01,
+ 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x02, 0x5d, 0x46,
+ 0x53, 0x53, 0x46, 0x46, 0x53, 0x53, 0xbf, 0x4b, 0x58, 0x2a, 0x6b, 0x72,
+ 0x05, 0x08, 0x73, 0x46, 0x90, 0xa8, 0xaf, 0x90, 0xa6, 0xad, 0xd2, 0xb4,
+ 0x30, 0x60, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f,
+ 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70,
+ 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0x9f,
+ 0x62, 0x5b, 0x5a, 0x62, 0x62, 0x5a, 0x5b, 0x62, 0x01, 0x9d, 0x9c, 0x23,
+ 0x16, 0x94, 0x50, 0x0b, 0x3d, 0xb1, 0x94, 0x91, 0xb3, 0xfd, 0xe7, 0xda,
+ 0x01, 0x0b, 0x13, 0x00, 0x00, 0x03, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec,
+ 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x22, 0x00, 0x00, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22,
+ 0x04, 0x02, 0x01, 0x21, 0x15, 0x01, 0x23, 0x01, 0x21, 0x05, 0xec, 0xfe,
+ 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae,
+ 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00, 0x01,
+ 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0x01, 0x46, 0x02,
+ 0x67, 0xfe, 0xb8, 0xad, 0x01, 0x2f, 0xfe, 0x5f, 0x02, 0xea, 0xfe, 0xc1,
+ 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe,
+ 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01,
+ 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0x01, 0x19, 0x4b, 0xfc, 0xa3, 0x03, 0x1a,
+ 0x00, 0x05, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x1b, 0x00, 0x27, 0x00, 0x3f, 0x00, 0x4b, 0x00, 0x00, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22,
+ 0x04, 0x02, 0x05, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x25, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c,
+ 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67,
+ 0x00, 0xff, 0x01, 0x00, 0x01, 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe,
+ 0xd9, 0xa3, 0x02, 0x6a, 0x4c, 0x55, 0x55, 0x4c, 0x4b, 0x56, 0x56, 0xfe,
+ 0xe6, 0x04, 0x5f, 0xa4, 0x8e, 0x8d, 0xa4, 0x5f, 0x03, 0x0d, 0x6a, 0xaa,
+ 0x9c, 0x9c, 0xab, 0x6a, 0x4f, 0x48, 0x46, 0x43, 0x4a, 0x4a, 0x43, 0x46,
+ 0x48, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6,
+ 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70, 0x01,
+ 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0xe6, 0x50,
+ 0x49, 0x49, 0x50, 0x51, 0x48, 0x49, 0x50, 0x49, 0x01, 0x76, 0x53, 0x74,
+ 0x88, 0x88, 0x74, 0x53, 0x76, 0x01, 0x03, 0x83, 0x5c, 0x8a, 0x97, 0x97,
+ 0x8a, 0x5c, 0x83, 0xc1, 0x3d, 0x42, 0x42, 0x3d, 0x3e, 0x42, 0x42, 0x00,
+ 0x00, 0x04, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x1b, 0x00, 0x34, 0x00, 0x40, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02,
+ 0x01, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x36, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x02, 0x23, 0x22,
+ 0x26, 0x13, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9,
+ 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00,
+ 0xff, 0x01, 0x00, 0x01, 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9,
+ 0xa3, 0x01, 0x68, 0x4c, 0x57, 0x2a, 0x6b, 0x72, 0x05, 0x09, 0x74, 0x47,
+ 0x8f, 0xa7, 0xae, 0x90, 0xa7, 0xac, 0xd2, 0xb4, 0x30, 0x60, 0xc3, 0x47,
+ 0x52, 0x52, 0x47, 0x46, 0x53, 0x53, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41,
+ 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xc8,
+ 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1,
+ 0xb1, 0xfe, 0xb9, 0xfd, 0x8b, 0x9c, 0x24, 0x15, 0x93, 0x4f, 0x0d, 0x3c,
+ 0xaf, 0x94, 0x91, 0xb4, 0xfd, 0xe8, 0xda, 0xfe, 0xf6, 0x13, 0x01, 0xb4,
+ 0x62, 0x5b, 0x5b, 0x62, 0x62, 0x5b, 0x5b, 0x62, 0x00, 0x05, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x26,
+ 0x00, 0x32, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x13, 0x33,
+ 0x11, 0x07, 0x35, 0x37, 0x33, 0x11, 0x33, 0x15, 0x21, 0x01, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x05, 0xec, 0xfe,
+ 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae,
+ 0x01, 0x4c, 0xb9, 0xfa, 0xe8, 0x01, 0x67, 0x00, 0xff, 0x01, 0x00, 0x01,
+ 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9c, 0xfe, 0xd9, 0xa3, 0xb8, 0x8e, 0x9b,
+ 0xaa, 0x69, 0x8f, 0xfe, 0x6b, 0x02, 0xb7, 0x3a, 0x3e, 0x3e, 0x3a, 0x39,
+ 0x3e, 0x3e, 0x39, 0x75, 0x7a, 0x7a, 0x75, 0x76, 0x7b, 0x7b, 0x02, 0xea,
+ 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6,
+ 0xc6, 0xfe, 0x90, 0xc8, 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c,
+ 0xb3, 0x01, 0x47, 0xb1, 0xb1, 0xfe, 0xb9, 0xfe, 0x3e, 0x02, 0x3e, 0x27,
+ 0x89, 0x2a, 0xfd, 0x36, 0x80, 0x02, 0xde, 0x97, 0xa3, 0xa2, 0x97, 0x97,
+ 0xa2, 0xa3, 0x97, 0x7b, 0xe4, 0xd1, 0xd0, 0xe4, 0xe4, 0xd0, 0xd1, 0xe4,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x15, 0x12, 0x04, 0x7a, 0x01, 0xf0, 0xac,
+ 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68,
+ 0x02, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x04,
+ 0x7a, 0x01, 0x9a, 0x01, 0x58, 0xfe, 0xa8, 0x00, 0x00, 0x01, 0x01, 0xe2,
+ 0xfd, 0x96, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x01, 0xe2, 0x90, 0xfd, 0x96, 0x0a, 0x32, 0xf5, 0xce, 0x00,
+ 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x01, 0x9a, 0x01, 0x20, 0xfd, 0x96,
+ 0x0a, 0x32, 0xf5, 0xce, 0x00, 0x03, 0xff, 0xee, 0x01, 0xf0, 0x04, 0x68,
+ 0x02, 0x9c, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x35,
+ 0x21, 0x15, 0x21, 0x35, 0x21, 0x15, 0x21, 0x35, 0x21, 0x15, 0x03, 0x52,
+ 0x01, 0x16, 0xfd, 0x3d, 0x01, 0x0b, 0xfd, 0x3e, 0x01, 0x15, 0x01, 0xf0,
+ 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x00, 0x00, 0x00, 0x03, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x03, 0x52, 0x01, 0x16, 0xfd, 0x3d, 0x01, 0x0b, 0xfd, 0x3e,
+ 0x01, 0x15, 0x01, 0x9a, 0x01, 0x58, 0xfe, 0xa8, 0x01, 0x58, 0xfe, 0xa8,
+ 0x01, 0x58, 0xfe, 0xa8, 0x00, 0x03, 0x01, 0xe2, 0xfd, 0x96, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x03, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11, 0x01, 0xe2,
+ 0x90, 0x90, 0x90, 0x90, 0x90, 0xfd, 0x96, 0x03, 0x0c, 0xfc, 0xf4, 0x03,
+ 0xc0, 0x02, 0xb2, 0xfd, 0x4e, 0x03, 0x66, 0x03, 0x0c, 0xfc, 0xf4, 0x00,
+ 0x00, 0x03, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11,
+ 0x21, 0x11, 0x01, 0x11, 0x21, 0x11, 0x01, 0x9a, 0x01, 0x20, 0xfe, 0xe0,
+ 0x01, 0x20, 0xfe, 0xe0, 0x01, 0x20, 0xfd, 0x96, 0x03, 0x0c, 0xfc, 0xf4,
+ 0x03, 0xc0, 0x02, 0xb2, 0xfd, 0x4e, 0x03, 0x66, 0x03, 0x0c, 0xfc, 0xf4,
+ 0x00, 0x04, 0xff, 0xed, 0x01, 0xf0, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x35, 0x33, 0x15,
+ 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15,
+ 0x13, 0xa9, 0xa2, 0xa1, 0xa2, 0xa1, 0xa2, 0xaa, 0x01, 0xf0, 0xac, 0xac,
+ 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x69, 0x02, 0xf2, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x03, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x12, 0xa9, 0xa2, 0xa1,
+ 0xa2, 0xa0, 0xa2, 0xab, 0x01, 0x9a, 0x01, 0x58, 0xfe, 0xa8, 0x01, 0x58,
+ 0xfe, 0xa8, 0x01, 0x58, 0xfe, 0xa8, 0x01, 0x58, 0xfe, 0xa8, 0x00, 0x00,
+ 0x00, 0x04, 0x01, 0xe2, 0xfd, 0x96, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x03, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11,
+ 0x01, 0xe2, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x05, 0x96, 0x02,
+ 0x32, 0xfd, 0xce, 0xf8, 0x00, 0x02, 0x32, 0xfd, 0xce, 0x05, 0x73, 0x01,
+ 0xd9, 0xfe, 0x27, 0xfd, 0x73, 0x01, 0xd9, 0xfe, 0x27, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x9a, 0x01, 0x20, 0xfe, 0xe0, 0x01, 0x20, 0xfe, 0xe0, 0x01, 0x20,
+ 0xfe, 0xe0, 0x01, 0x20, 0x05, 0x96, 0x02, 0x32, 0xfd, 0xce, 0xf8, 0x00,
+ 0x02, 0x32, 0xfd, 0xce, 0x05, 0x73, 0x01, 0xd9, 0xfe, 0x27, 0xfd, 0x73,
+ 0x01, 0xd9, 0xfe, 0x27, 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0x9c, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0xe2, 0x02, 0x86, 0xfe, 0x0a, 0xfd, 0x96, 0x05, 0x06, 0xac, 0xfb,
+ 0xa6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0xf2, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x01, 0xe2, 0x02, 0x86, 0xfe, 0x0a, 0xfd, 0x96, 0x05, 0x5c, 0xfe, 0xa8,
+ 0xfb, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0x9c, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0x9a, 0x02, 0xce, 0xfe, 0x52, 0xfd, 0x96, 0x05, 0x06, 0xac, 0xfb,
+ 0xa6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0xf2, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x01, 0x9a, 0x02, 0xce, 0xfe, 0x52, 0xfd, 0x96, 0x05, 0x5c, 0xfe, 0xa8,
+ 0xfb, 0xfc, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0x73,
+ 0x02, 0x9c, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x02, 0x84, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0xfa,
+ 0xfa, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0x73,
+ 0x02, 0xf2, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x02, 0x84, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58,
+ 0xfa, 0xa4, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0xbb,
+ 0x02, 0x9c, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x01, 0x9a, 0xfe, 0x54, 0x02, 0xcc, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0xfa,
+ 0xfa, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0xbb,
+ 0x02, 0xf2, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x01, 0x9a, 0xfe, 0x54, 0x02, 0xcc, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58,
+ 0xfa, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0x01, 0xf0, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x05, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x01, 0xe2, 0x90, 0x01, 0xf6, 0x01, 0xf0, 0x05, 0xd8, 0xfa, 0xd4, 0xac,
+ 0x00, 0x01, 0x01, 0xe2, 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x01, 0xe2, 0x90, 0x01,
+ 0xf6, 0x01, 0x9a, 0x06, 0x2e, 0xfb, 0x2a, 0xfe, 0xa8, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x9a, 0x01, 0xf0, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x15, 0x01, 0x9a, 0x01, 0x20,
+ 0x01, 0xae, 0x01, 0xf0, 0x05, 0xd8, 0xfa, 0xd4, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x9a, 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0x01, 0x20,
+ 0x01, 0xae, 0x01, 0x9a, 0x06, 0x2e, 0xfb, 0x2a, 0xfe, 0xa8, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x33, 0x11, 0x12, 0x01, 0xf4, 0x90,
+ 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfa, 0x28, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0x9a, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x05, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x12, 0x01, 0xf4, 0x90, 0x01, 0x9a, 0x01, 0x58,
+ 0x04, 0xd6, 0xf9, 0xd2, 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x02, 0xbb,
+ 0x07, 0xc8, 0x00, 0x05, 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x12, 0x01, 0xac, 0x01, 0x20, 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfa, 0x28,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x21, 0x11, 0x12, 0x01, 0xac, 0x01,
+ 0x20, 0x01, 0x9a, 0x01, 0x58, 0x04, 0xd6, 0xf9, 0xd2, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2,
+ 0x90, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96, 0x0a, 0x32, 0xfa, 0xd4, 0xac,
+ 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0xe2, 0x90, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96, 0x0a,
+ 0x32, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x00, 0x01, 0x01, 0x9a,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2, 0x48, 0x01,
+ 0x20, 0x01, 0xae, 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x5a, 0x05, 0xd8, 0xfa,
+ 0xd4, 0xac, 0xfb, 0xa6, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x01, 0x9a, 0x48, 0x90, 0x01, 0xf6, 0xfe, 0x52,
+ 0xfd, 0x96, 0x05, 0x06, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0xfb, 0xa6, 0x00,
+ 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x9a,
+ 0x01, 0x20, 0x01, 0xae, 0xfe, 0x52, 0xfd, 0x96, 0x0a, 0x32, 0xfa, 0xd4,
+ 0xac, 0xfb, 0xa6, 0x00, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x01, 0xe2, 0x48, 0x01, 0x20, 0x01, 0xae, 0xfe,
+ 0x0a, 0xfd, 0x96, 0x04, 0x04, 0x06, 0x2e, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb,
+ 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0x48, 0x90, 0x01, 0xf6, 0xfe, 0x52,
+ 0xfd, 0x96, 0x05, 0x5c, 0x04, 0xd6, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc,
+ 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a,
+ 0x01, 0x20, 0x01, 0xae, 0xfe, 0x52, 0xfd, 0x96, 0x0a, 0x32, 0xfb, 0x2a,
+ 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x33, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4, 0x90, 0xfd, 0x96, 0x04,
+ 0x5a, 0xac, 0x05, 0x2c, 0xf5, 0xce, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x33, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4,
+ 0x90, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xf5, 0xce, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xac, 0x01, 0x20, 0x48, 0xfd, 0x96, 0x04,
+ 0x5a, 0xac, 0x05, 0x2c, 0xfa, 0x28, 0xfb, 0xa6, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x01, 0x9a, 0xfe, 0x54,
+ 0x01, 0xf4, 0x90, 0x48, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x05, 0x2c, 0xfa,
+ 0xd4, 0xfa, 0xfa, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0xbb,
+ 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x20, 0xfd, 0x96,
+ 0x04, 0x5a, 0xac, 0x05, 0x2c, 0xf5, 0xce, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x01, 0xe2, 0xfe, 0x0c,
+ 0x01, 0xac, 0x01, 0x20, 0x48, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04,
+ 0xd6, 0xf9, 0xd2, 0xfb, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x01, 0x9a, 0xfe, 0x54,
+ 0x01, 0xf4, 0x90, 0x48, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6,
+ 0xfb, 0x2a, 0xfa, 0xa4, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0xbb,
+ 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x20, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xf5, 0xce, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x04, 0x7a,
+ 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0xac, 0xfb, 0xa6, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x02, 0x84, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0x56, 0xac, 0xfb, 0xa6, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c,
+ 0x01, 0xf4, 0x02, 0x86, 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x56,
+ 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0xf2, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x04, 0x7a, 0xfe, 0x0a, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x04, 0x7a,
+ 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0xac, 0xfb, 0xa6, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0x9a, 0xfe, 0x54, 0x02, 0xcc, 0x01, 0xae, 0xfe, 0x52, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0x56, 0xac, 0xfb, 0xa6, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54,
+ 0x01, 0xac, 0x02, 0xce, 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x56,
+ 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0xf2, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x04, 0x7a, 0xfe, 0x52, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0xf0, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x03, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x12, 0x01, 0xf4, 0x90, 0x01, 0xf6,
+ 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x12, 0x01, 0xf4, 0x90,
+ 0x01, 0xf6, 0xfe, 0x0a, 0x01, 0x9a, 0x01, 0x58, 0x04, 0xd6, 0xfa, 0xd4,
+ 0xac, 0x56, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x21, 0x35, 0x12, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfd, 0x7a,
+ 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfb, 0x2a, 0xfe, 0xa8, 0x56, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x12, 0x01,
+ 0xf4, 0x90, 0x01, 0xf6, 0x01, 0x9a, 0x01, 0x58, 0x04, 0xd6, 0xfb, 0x2a,
+ 0xfe, 0xa8, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x15, 0x12, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae, 0x01, 0xf0, 0xac,
+ 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x12, 0x01, 0xac, 0x01,
+ 0x20, 0x01, 0xae, 0xfe, 0x52, 0x01, 0x9a, 0x01, 0x58, 0x04, 0xd6, 0xfa,
+ 0xd4, 0xac, 0x56, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x35, 0x12, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae, 0xfd,
+ 0x32, 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfb, 0x2a, 0xfe, 0xa8, 0x56, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x12, 0x01,
+ 0xac, 0x01, 0x20, 0x01, 0xae, 0x01, 0x9a, 0x01, 0x58, 0x04, 0xd6, 0xfb,
+ 0x2a, 0xfe, 0xa8, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x02, 0x72, 0x90, 0xfe, 0x0c, 0x01,
+ 0xf4, 0x90, 0x01, 0xf6, 0x01, 0xf0, 0xfb, 0xa6, 0x04, 0x5a, 0xac, 0x05,
+ 0x2c, 0xfa, 0xd4, 0xac, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4,
+ 0x90, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04,
+ 0xd6, 0xfa, 0xd4, 0xac, 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0xe2,
+ 0xfe, 0x0c, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96, 0x04,
+ 0x5a, 0xac, 0x05, 0x2c, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfe,
+ 0x0a, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xfb, 0x2a, 0xfe,
+ 0xa8, 0xfb, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xac,
+ 0x01, 0x20, 0x01, 0xae, 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x05,
+ 0x2c, 0xfa, 0xd4, 0xac, 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x9a,
+ 0xfe, 0x54, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfe, 0x52, 0xfd, 0x96, 0x04,
+ 0x5a, 0xac, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0xfb, 0xa6, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae,
+ 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x05, 0x2c, 0xfa, 0xd4, 0xac,
+ 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x23, 0x11, 0x01, 0xe2, 0xfe, 0x0c,
+ 0x01, 0xac, 0x01, 0x20, 0x01, 0xae, 0xfe, 0x52, 0x48, 0xfd, 0x96, 0x04,
+ 0x04, 0x01, 0x58, 0x04, 0xd6, 0xfa, 0xd4, 0xac, 0x56, 0xfb, 0xfc, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x35, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x01, 0xe2, 0x48, 0xfe, 0x54, 0x01, 0xac, 0x01,
+ 0x20, 0x01, 0xae, 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x04, 0x56, 0xac, 0x05,
+ 0x2c, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xf4, 0x90, 0x48, 0x01, 0xae, 0xfe, 0x52,
+ 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xfb, 0x2a, 0x56, 0xac,
+ 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x35,
+ 0x33, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54,
+ 0x01, 0xac, 0x48, 0x90, 0x01, 0xf6, 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x5a,
+ 0xac, 0x56, 0x04, 0xd6, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae,
+ 0xfe, 0x0a, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xfb, 0x2a,
+ 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xf4,
+ 0x90, 0x01, 0xf6, 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58, 0x04,
+ 0xd6, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x9a,
+ 0xfe, 0x54, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae, 0xfe, 0x52, 0xfd, 0x96,
+ 0x04, 0x04, 0x01, 0x58, 0x04, 0xd6, 0xfa, 0xd4, 0xac, 0xfb, 0xa6, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x20, 0x01, 0xae,
+ 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x05, 0x2c, 0xfb, 0x2a, 0xfe,
+ 0xa8, 0xfb, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x01, 0x9a, 0xfe, 0x54, 0x01, 0xac,
+ 0x01, 0x20, 0x01, 0xae, 0xfe, 0x52, 0xfd, 0x96, 0x04, 0x04, 0x01, 0x58,
+ 0x04, 0xd6, 0xfb, 0x2a, 0xfe, 0xa8, 0xfb, 0xfc, 0x00, 0x02, 0xff, 0xee,
+ 0x01, 0xf0, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x03, 0x35, 0x21, 0x15, 0x33, 0x35, 0x21, 0x15, 0x12, 0x01, 0xf4, 0x90,
+ 0x01, 0xf6, 0x01, 0xf0, 0xac, 0xac, 0xac, 0xac, 0x00, 0x02, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x02, 0x72, 0x01, 0xf6,
+ 0xfb, 0x86, 0x01, 0xf4, 0x01, 0x9a, 0x01, 0x58, 0xfe, 0xa8, 0x01, 0x58,
+ 0xfe, 0xa8, 0x00, 0x00, 0x00, 0x02, 0x01, 0xe2, 0xfd, 0x96, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x03, 0x11, 0x33, 0x11, 0x01, 0xe2, 0x90, 0x90, 0x90, 0x02, 0xf2, 0x04,
+ 0xd6, 0xfb, 0x2a, 0xfa, 0xa4, 0x04, 0x04, 0xfb, 0xfc, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x9a, 0x01, 0x20, 0xfe, 0xe0, 0x01, 0x20, 0x02, 0xf2, 0x04, 0xd6,
+ 0xfb, 0x2a, 0xfa, 0xa4, 0x04, 0x04, 0xfb, 0xfc, 0x00, 0x02, 0xff, 0xee,
+ 0x01, 0x44, 0x04, 0x68, 0x03, 0x48, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x03, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x12, 0x04, 0x7a, 0xfb,
+ 0x86, 0x04, 0x7a, 0x02, 0x9c, 0xac, 0xac, 0xfe, 0xa8, 0xac, 0xac, 0x00,
+ 0x00, 0x02, 0x01, 0x52, 0xfd, 0x96, 0x03, 0x03, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x01, 0x52, 0x90, 0x90, 0x90, 0xfd, 0x96, 0x0a, 0x32, 0xf5, 0xce, 0x0a,
+ 0x32, 0xf5, 0xce, 0x00, 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68,
+ 0x03, 0x48, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x15,
+ 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2, 0x02, 0x86, 0xfe, 0x0a, 0x01, 0xf6,
+ 0xfe, 0x0a, 0xfd, 0x96, 0x05, 0xb2, 0xac, 0xac, 0xac, 0xfc, 0x52, 0x00,
+ 0x00, 0x01, 0x01, 0x52, 0xfd, 0x96, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11,
+ 0x01, 0x52, 0x03, 0x16, 0xfe, 0x9a, 0x90, 0x90, 0xfd, 0x96, 0x05, 0x06,
+ 0xac, 0xfb, 0xa6, 0x04, 0x5a, 0xfb, 0xa6, 0x00, 0x00, 0x02, 0x01, 0x52,
+ 0xfd, 0x96, 0x04, 0x68, 0x03, 0x48, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x01, 0x52, 0x03, 0x16, 0xfd, 0x7a, 0x90, 0x01, 0xf6, 0xfe, 0x9a, 0xfd,
+ 0x96, 0x05, 0xb2, 0xac, 0xfa, 0xfa, 0x04, 0x5a, 0xac, 0xfc, 0x52, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0x73, 0x03, 0x48, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4, 0xfe, 0x0c, 0x02, 0x84, 0xfd, 0x96,
+ 0x03, 0xae, 0xac, 0xac, 0xac, 0xfa, 0x4e, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x03, 0x03, 0x02, 0x9c, 0x00, 0x09, 0x00, 0x00, 0x03, 0x35,
+ 0x21, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x12, 0x03, 0x14, 0x90,
+ 0x90, 0x90, 0x01, 0xf0, 0xac, 0xfa, 0xfa, 0x04, 0x5a, 0xfb, 0xa6, 0x04,
+ 0x5a, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0xfd, 0x96, 0x03, 0x03,
+ 0x03, 0x48, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x02, 0x72, 0xfd, 0x7c,
+ 0x03, 0x14, 0xfe, 0x50, 0xfe, 0x9c, 0x01, 0xf4, 0xfd, 0x96, 0x05, 0x06,
+ 0xac, 0xfa, 0x4e, 0x03, 0xae, 0xac, 0xfb, 0xa6, 0x00, 0x01, 0x01, 0xe2,
+ 0x01, 0x44, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x01, 0xe2, 0x90, 0x01,
+ 0xf6, 0xfe, 0x0a, 0x01, 0xf6, 0x01, 0x44, 0x06, 0x84, 0xfb, 0x80, 0xac,
+ 0xac, 0xac, 0x00, 0x00, 0x00, 0x01, 0x01, 0x52, 0x01, 0xf0, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x01, 0x52, 0x90, 0x90, 0x90, 0x01, 0x66, 0x01,
+ 0xf0, 0x05, 0xd8, 0xfa, 0xd4, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x52, 0x01, 0x44, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x05,
+ 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x15, 0x01, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x02, 0x72, 0x90, 0x01, 0x66, 0xfc, 0xea, 0x90,
+ 0x02, 0x86, 0x02, 0x9c, 0x05, 0x2c, 0xfb, 0x80, 0xac, 0xfe, 0xa8, 0x06,
+ 0x84, 0xfa, 0x28, 0xac, 0x00, 0x01, 0xff, 0xee, 0x01, 0x44, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x09, 0x00, 0x00, 0x03, 0x35, 0x21, 0x35, 0x21, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x12, 0x01, 0xf4, 0xfe, 0x0c, 0x01, 0xf4, 0x90,
+ 0x01, 0x44, 0xac, 0xac, 0xac, 0x04, 0x80, 0xf9, 0x7c, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x03, 0x03, 0x07, 0xc8, 0x00, 0x09,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x12, 0x01, 0x64, 0x90, 0x90, 0x90, 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfa,
+ 0xd4, 0x05, 0x2c, 0xfa, 0x28, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x01, 0x44, 0x03, 0x03, 0x07, 0xc8, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00,
+ 0x03, 0x35, 0x21, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x12, 0x01, 0x64, 0x90, 0xfe, 0x0c, 0x02, 0x84, 0x90, 0x02, 0x9c, 0xac,
+ 0x04, 0x80, 0xfa, 0xd4, 0xfe, 0xa8, 0xac, 0x05, 0xd8, 0xf9, 0x7c, 0x00,
+ 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15,
+ 0x21, 0x11, 0x01, 0xe2, 0x90, 0x01, 0xf6, 0xfe, 0x0a, 0x01, 0xf6, 0xfe,
+ 0x0a, 0xfd, 0x96, 0x0a, 0x32, 0xfb, 0x80, 0xac, 0xac, 0xac, 0xfc, 0x52,
+ 0x00, 0x02, 0x01, 0x52, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x01, 0x52, 0x90, 0x90, 0x90, 0x01, 0x66, 0xfe,
+ 0x9a, 0xfd, 0x96, 0x0a, 0x32, 0xf5, 0xce, 0x0a, 0x32, 0xfa, 0xd4, 0xac,
+ 0xfb, 0xa6, 0x00, 0x00, 0x00, 0x03, 0x01, 0x52, 0xfd, 0x96, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x02, 0x72, 0x90, 0x01, 0x66, 0xfc, 0xea, 0x90, 0x90, 0x01,
+ 0xf6, 0xfe, 0x9a, 0x02, 0x9c, 0x05, 0x2c, 0xfb, 0x80, 0xac, 0xfa, 0xfa,
+ 0x0a, 0x32, 0xf5, 0xce, 0x04, 0x5a, 0xac, 0xfc, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x02, 0x73, 0x07, 0xc8, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11,
+ 0x33, 0x11, 0x01, 0xe2, 0xfe, 0x0c, 0x01, 0xf4, 0xfe, 0x0c, 0x01, 0xf4,
+ 0x90, 0xfd, 0x96, 0x03, 0xae, 0xac, 0xac, 0xac, 0x04, 0x80, 0xf5, 0xce,
+ 0x00, 0x02, 0xff, 0xee, 0xfd, 0x96, 0x03, 0x03, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x01, 0x52, 0xfe, 0x9c, 0x01, 0x64, 0x90, 0x90,
+ 0x90, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0x05, 0x2c, 0xf5, 0xce, 0x0a, 0x32,
+ 0xf5, 0xce, 0x00, 0x00, 0x00, 0x03, 0xff, 0xee, 0xfd, 0x96, 0x03, 0x03,
+ 0x07, 0xc8, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x03, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x12, 0x01, 0x64, 0x90, 0x90, 0xfe, 0x9c, 0x01, 0xf4, 0x90,
+ 0x90, 0x02, 0x9c, 0xac, 0x04, 0x80, 0xfa, 0xd4, 0xfa, 0xfa, 0x03, 0xae,
+ 0xac, 0xfb, 0xa6, 0x0a, 0x32, 0xf5, 0xce, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x03, 0x48, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0xe2, 0xfe, 0x0c, 0x04, 0x7a, 0xfe, 0x0a, 0xfd, 0x7c, 0x04, 0x7a,
+ 0xfd, 0x96, 0x03, 0xae, 0xac, 0xac, 0xfc, 0x52, 0x05, 0x06, 0xac, 0xac,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x0b,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x11, 0x12, 0x04, 0x7a, 0xfe, 0x9a, 0x90, 0x90, 0x90, 0x01, 0xf0,
+ 0xac, 0xac, 0xfb, 0xa6, 0x04, 0x5a, 0xfb, 0xa6, 0x04, 0x5a, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x03, 0x48, 0x00, 0x03,
+ 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x35, 0x21, 0x15, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x12, 0x04,
+ 0x7a, 0xfc, 0xea, 0xfe, 0x9c, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfe, 0x9a,
+ 0x02, 0x9c, 0xac, 0xac, 0xfa, 0xfa, 0x03, 0xae, 0xac, 0xfb, 0xa6, 0x04,
+ 0x5a, 0xac, 0xfc, 0x52, 0x00, 0x02, 0xff, 0xee, 0x01, 0x44, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x03, 0x35, 0x21, 0x15,
+ 0x01, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x12, 0x04, 0x7a, 0xfb,
+ 0x86, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0x01, 0x44, 0xac, 0xac, 0x01, 0x58,
+ 0xac, 0x04, 0x80, 0xfb, 0x80, 0xac, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0xf0, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x03, 0x35,
+ 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x15, 0x12, 0x01,
+ 0x64, 0x90, 0x90, 0x90, 0x01, 0x66, 0x01, 0xf0, 0xac, 0x05, 0x2c, 0xfa,
+ 0xd4, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0x00, 0x00, 0x00, 0x03, 0xff, 0xee,
+ 0x01, 0x44, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x03, 0x00, 0x09, 0x00, 0x0f,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x21, 0x15, 0x12, 0x04, 0x7a, 0xfb, 0x86, 0x01,
+ 0x64, 0x90, 0x90, 0x90, 0x01, 0x66, 0x01, 0x44, 0xac, 0xac, 0x01, 0x58,
+ 0xac, 0x04, 0x80, 0xfa, 0xd4, 0x05, 0x2c, 0xfb, 0x80, 0xac, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x01, 0xe2,
+ 0xfe, 0x0c, 0x01, 0xf4, 0xfe, 0x0c, 0x01, 0xf4, 0x90, 0x01, 0xf6, 0xfe,
+ 0x0a, 0x01, 0xf6, 0xfe, 0x0a, 0xfd, 0x96, 0x03, 0xae, 0xac, 0xac, 0xac,
+ 0x04, 0x80, 0xfb, 0x80, 0xac, 0xac, 0xac, 0xfc, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x13,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x12, 0x01,
+ 0x64, 0x90, 0x90, 0x90, 0x01, 0x66, 0xfe, 0x9a, 0x90, 0x90, 0x90, 0x01,
+ 0xf0, 0xac, 0x05, 0x2c, 0xfa, 0xd4, 0x05, 0x2c, 0xfa, 0xd4, 0xac, 0xfb,
+ 0xa6, 0x04, 0x5a, 0xfb, 0xa6, 0x04, 0x5a, 0x00, 0x00, 0x04, 0xff, 0xee,
+ 0xfd, 0x96, 0x04, 0x68, 0x07, 0xc8, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x11,
+ 0x00, 0x17, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x01, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x02, 0x72, 0x01, 0xf6, 0xfe, 0x9a, 0xfe, 0x50,
+ 0xfe, 0x9c, 0x01, 0xf4, 0xfe, 0x0c, 0x01, 0x64, 0x90, 0x90, 0x90, 0x01,
+ 0x66, 0xfd, 0x96, 0x04, 0x5a, 0xac, 0xfc, 0x52, 0x03, 0xae, 0xac, 0xfb,
+ 0xa6, 0x05, 0x06, 0xac, 0x04, 0x80, 0xfa, 0xd4, 0x05, 0x2c, 0xfb, 0x80,
+ 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x04, 0x68,
+ 0x02, 0x9c, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x11, 0x34, 0x37, 0x36, 0x33,
+ 0x21, 0x15, 0x21, 0x22, 0x06, 0x15, 0x11, 0x01, 0xe2, 0x49, 0x52, 0x97,
+ 0x01, 0x54, 0xfe, 0xac, 0x50, 0x52, 0xfd, 0x96, 0x03, 0x60, 0xa1, 0x7f,
+ 0x86, 0xac, 0x7e, 0x7c, 0xfc, 0xa0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfd, 0x96, 0x02, 0x73, 0x02, 0x9c, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11,
+ 0x34, 0x27, 0x26, 0x23, 0x21, 0x35, 0x21, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x01, 0xe2, 0x29, 0x29, 0x50, 0xfe, 0xae, 0x01, 0x52, 0x98, 0x51, 0x49,
+ 0xfd, 0x96, 0x03, 0x60, 0x7e, 0x3d, 0x3f, 0xac, 0x86, 0x78, 0xa8, 0xfc,
+ 0xa0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x0c, 0x00, 0x00, 0x03, 0x35, 0x21, 0x32, 0x36, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x12, 0x01, 0x52, 0x50, 0x52,
+ 0x90, 0x49, 0x51, 0x98, 0x01, 0xf0, 0xac, 0x7e, 0x7c, 0x04, 0x32, 0xfb,
+ 0xce, 0xa8, 0x78, 0x86, 0x00, 0x01, 0x01, 0xe2, 0x01, 0xf0, 0x04, 0x68,
+ 0x07, 0xc8, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x21, 0x22, 0x27, 0x26, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x21, 0x04, 0x68, 0xfe, 0xac, 0x97,
+ 0x52, 0x49, 0x90, 0x52, 0x50, 0x01, 0x54, 0x01, 0xf0, 0x86, 0x78, 0xa8,
+ 0x04, 0x32, 0xfb, 0xce, 0x7c, 0x7e, 0x00, 0x00, 0x00, 0x01, 0xff, 0x9d,
+ 0xfd, 0x96, 0x04, 0xb8, 0x07, 0xc8, 0x00, 0x03, 0x00, 0x00, 0x03, 0x01,
+ 0x33, 0x01, 0x62, 0x04, 0x7a, 0xa0, 0xfb, 0x86, 0xfd, 0x96, 0x0a, 0x32,
+ 0xf5, 0xce, 0x00, 0x00, 0x00, 0x01, 0xff, 0x9d, 0xfd, 0x96, 0x04, 0xb8,
+ 0x07, 0xc8, 0x00, 0x03, 0x00, 0x00, 0x01, 0x23, 0x01, 0x33, 0x04, 0xb8,
+ 0xa0, 0xfb, 0x86, 0xa0, 0xfd, 0x96, 0x0a, 0x32, 0x00, 0x01, 0xff, 0x9d,
+ 0xfd, 0x96, 0x04, 0xb8, 0x07, 0xc8, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x23,
+ 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01, 0x33, 0x01, 0x04, 0xb8,
+ 0xa0, 0xfe, 0x12, 0xfe, 0x14, 0xa0, 0x02, 0x3d, 0xfd, 0xc3, 0xa0, 0x01,
+ 0xec, 0x01, 0xee, 0xa0, 0xfd, 0xc3, 0xfd, 0x96, 0x04, 0x63, 0xfb, 0x9d,
+ 0x05, 0x19, 0x05, 0x19, 0xfb, 0x9d, 0x04, 0x63, 0xfa, 0xe7, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0xf0, 0x02, 0x3d, 0x02, 0x9c, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x35, 0x21, 0x15, 0x12, 0x02, 0x4e, 0x01, 0xf0, 0xac,
+ 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0x02, 0x46, 0x02, 0x73,
+ 0x07, 0xc8, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x01, 0xe2,
+ 0x90, 0x02, 0x46, 0x05, 0x82, 0xfa, 0x7e, 0x00, 0x00, 0x01, 0x02, 0x3c,
+ 0x01, 0xf0, 0x04, 0x68, 0x02, 0x9c, 0x00, 0x03, 0x00, 0x00, 0x01, 0x35,
+ 0x21, 0x15, 0x02, 0x3c, 0x02, 0x2c, 0x01, 0xf0, 0xac, 0xac, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xe2, 0xfd, 0x96, 0x02, 0x73, 0x02, 0x46, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x01, 0xe2, 0x90, 0xfd, 0x96, 0x04,
+ 0xb0, 0xfb, 0x50, 0x00, 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x02, 0x3d,
+ 0x02, 0xf2, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x02,
+ 0x4e, 0x01, 0x9a, 0x01, 0x58, 0xfe, 0xa8, 0x00, 0x00, 0x01, 0x01, 0x9a,
+ 0x02, 0x46, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x01, 0x9a, 0x01, 0x20, 0x02, 0x46, 0x05, 0x82, 0xfa, 0x7e,
+ 0x00, 0x01, 0x02, 0x3c, 0x01, 0x9a, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x02, 0x3c, 0x02, 0x2c, 0x01, 0x9a,
+ 0x01, 0x58, 0xfe, 0xa8, 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb,
+ 0x02, 0x46, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x01, 0x9a,
+ 0x01, 0x20, 0xfd, 0x96, 0x04, 0xb0, 0xfb, 0x50, 0x00, 0x01, 0xff, 0xee,
+ 0x01, 0x9a, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x07, 0x00, 0x00, 0x03, 0x35,
+ 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x12, 0x02, 0x4e, 0x02, 0x2c, 0xfd,
+ 0xd4, 0x01, 0xf0, 0xac, 0x56, 0xfe, 0xa8, 0x56, 0x00, 0x01, 0x01, 0x9a,
+ 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x01, 0x9a, 0x48, 0x90, 0x48, 0xfd,
+ 0x96, 0x04, 0xb0, 0x05, 0x82, 0xfa, 0x7e, 0xfb, 0x50, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x01, 0x9a, 0x04, 0x68, 0x02, 0xf2, 0x00, 0x07,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x12, 0x02,
+ 0x4e, 0x02, 0x2c, 0xfd, 0xd4, 0x01, 0x9a, 0x01, 0x58, 0x56, 0xac, 0x56,
+ 0x00, 0x01, 0x01, 0x9a, 0xfd, 0x96, 0x02, 0xbb, 0x07, 0xc8, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x01, 0xe2,
+ 0x48, 0x01, 0x20, 0x48, 0xfd, 0x96, 0x04, 0xb0, 0x05, 0x82, 0xfa, 0x7e,
+ 0xfb, 0x50, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x02, 0x14, 0x05, 0x9c,
+ 0x06, 0x28, 0x10, 0x07, 0x0a, 0xad, 0x00, 0x00, 0x04, 0x14, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c, 0xff, 0x05, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05, 0xae, 0xfe, 0x00, 0x01,
+ 0x05, 0xfe, 0xfb, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c,
+ 0xff, 0xf6, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05,
+ 0xae, 0xfe, 0x00, 0x01, 0xf6, 0xfe, 0x0a, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x9c, 0x01, 0x0f, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x12, 0x05, 0xae, 0xfe, 0x00, 0x03, 0x0f, 0xfc, 0xf1, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c, 0x02, 0x14, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05, 0xae, 0xfe, 0x00, 0x04,
+ 0x14, 0xfb, 0xec, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c,
+ 0x03, 0x19, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05,
+ 0xae, 0xfe, 0x00, 0x05, 0x19, 0xfa, 0xe7, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x9c, 0x04, 0x1e, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x12, 0x05, 0xae, 0xfe, 0x00, 0x06, 0x1e, 0xf9, 0xe2, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c, 0x05, 0x23, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05, 0xae, 0xfe, 0x00, 0x07,
+ 0x23, 0xf8, 0xdd, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c,
+ 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x05,
+ 0xae, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x04, 0xe6, 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x12, 0x04, 0xf8, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x04, 0x30, 0x06, 0x28, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x04, 0x42, 0xfe, 0x00, 0x08,
+ 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x03, 0x7b,
+ 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x03,
+ 0x8c, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x02, 0xc5, 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x12, 0x02, 0xd6, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x02, 0x0f, 0x06, 0x28, 0x00, 0x03,
+ 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x02, 0x20, 0xfe, 0x00, 0x08,
+ 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x01, 0x59,
+ 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x01,
+ 0x6b, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x00, 0xa3, 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x33, 0x11, 0x12, 0xb5, 0xfe, 0x00, 0x08, 0x28, 0xf7, 0xd8, 0x00, 0x00,
+ 0xff, 0xff, 0x02, 0xc4, 0xfe, 0x00, 0x05, 0x9b, 0x06, 0x28, 0x10, 0x07,
+ 0x0a, 0xb5, 0x02, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0xee,
+ 0xfe, 0x00, 0x04, 0xe6, 0x06, 0x28, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x23,
+ 0x00, 0x27, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x13, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11,
+ 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x13, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11,
+ 0x13, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x04, 0x30, 0xb6, 0xfc,
+ 0x73, 0xb5, 0xb6, 0xb6, 0xfc, 0x74, 0xb5, 0x03, 0x8d, 0xb6, 0xfc, 0x73,
+ 0xb5, 0xb6, 0xb6, 0xfc, 0x74, 0xb5, 0x03, 0x8d, 0xb6, 0xfc, 0x73, 0xb5,
+ 0xb6, 0xb6, 0xfc, 0x74, 0xb5, 0xfe, 0x00, 0x01, 0x05, 0xfe, 0xfb, 0x01,
+ 0x05, 0xfe, 0xfb, 0x01, 0x6d, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfe,
+ 0xfb, 0x01, 0x6e, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfe, 0xfb, 0x01,
+ 0x6d, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x6e, 0x01,
+ 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x6d, 0x01, 0x05, 0xfe,
+ 0xfb, 0x01, 0x05, 0xfe, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x20, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x96, 0x06, 0x28, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x17,
+ 0x00, 0x1f, 0x00, 0x27, 0x00, 0x2f, 0x00, 0x37, 0x00, 0x3f, 0x00, 0x47,
+ 0x00, 0x4f, 0x00, 0x57, 0x00, 0x5f, 0x00, 0x67, 0x00, 0x6f, 0x00, 0x77,
+ 0x00, 0x7f, 0x00, 0x87, 0x00, 0x8f, 0x00, 0x97, 0x00, 0x9f, 0x00, 0xa7,
+ 0x00, 0xaf, 0x00, 0xb7, 0x00, 0xbf, 0x00, 0xc7, 0x00, 0xcf, 0x00, 0xd7,
+ 0x00, 0xdf, 0x00, 0xe7, 0x00, 0xef, 0x00, 0xf7, 0x00, 0xff, 0x00, 0x00,
+ 0x13, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x01, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x01, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x01, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x01, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x01, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x01, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x01, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17,
+ 0x05, 0x07, 0x23, 0x27, 0x35, 0x37, 0x33, 0x17, 0x05, 0x07, 0x23, 0x27,
+ 0x35, 0x37, 0x33, 0x17, 0xa3, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01,
+ 0x6a, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x04,
+ 0x04, 0xac, 0x04, 0x01, 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0xfc,
+ 0x78, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x6a, 0x05, 0xac, 0x04,
+ 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0x01,
+ 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0xfb, 0x0e, 0x05, 0xac, 0x04,
+ 0x04, 0xac, 0x05, 0x01, 0x6a, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01,
+ 0x69, 0x04, 0xac, 0x04, 0x04, 0xac, 0x04, 0x01, 0x6a, 0x04, 0xac, 0x05,
+ 0x05, 0xac, 0x04, 0xfc, 0x78, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01,
+ 0x6a, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x05,
+ 0x05, 0xac, 0x04, 0x01, 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0xfb,
+ 0x0e, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x6a, 0x05, 0xac, 0x04,
+ 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x04, 0x04, 0xac, 0x04, 0x01,
+ 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0xfc, 0x78, 0x05, 0xac, 0x04,
+ 0x04, 0xac, 0x05, 0x01, 0x6a, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01,
+ 0x69, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0x01, 0x6a, 0x04, 0xac, 0x05,
+ 0x05, 0xac, 0x04, 0xfb, 0x0e, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01,
+ 0x6a, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x04,
+ 0x04, 0xac, 0x04, 0x01, 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0xfc,
+ 0x78, 0x05, 0xac, 0x04, 0x04, 0xac, 0x05, 0x01, 0x6a, 0x05, 0xac, 0x04,
+ 0x04, 0xac, 0x05, 0x01, 0x69, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0x01,
+ 0x6a, 0x04, 0xac, 0x05, 0x05, 0xac, 0x04, 0x05, 0x28, 0x05, 0x05, 0xfb,
+ 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb,
+ 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfe, 0x00, 0x05, 0x05,
+ 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05,
+ 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfe, 0x00, 0x05,
+ 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05,
+ 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfe, 0x00,
+ 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb,
+ 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfe,
+ 0x00, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05,
+ 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05,
+ 0xfe, 0x00, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05,
+ 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05,
+ 0x05, 0xfe, 0x00, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb,
+ 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb,
+ 0x05, 0x05, 0xfe, 0x00, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05,
+ 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05, 0xfb, 0x05, 0x05,
+ 0xfb, 0x05, 0x05, 0x00, 0x00, 0x07, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c,
+ 0x06, 0x28, 0x00, 0x19, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x25, 0x00, 0x29,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x00, 0x03, 0x11, 0x33, 0x11, 0x23, 0x11,
+ 0x33, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x19, 0x01, 0x33, 0x11, 0x23,
+ 0x01, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23,
+ 0x01, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23, 0x12, 0xb5, 0xb5, 0xb5,
+ 0xb5, 0xb5, 0x02, 0x21, 0xb6, 0x02, 0x22, 0xb6, 0xb6, 0xfd, 0xde, 0xb5,
+ 0xb5, 0xb5, 0x02, 0xd7, 0xb6, 0xb6, 0xfe, 0x94, 0xb6, 0xb6, 0xfe, 0x95,
+ 0xb5, 0xb5, 0x02, 0xd7, 0xb6, 0xb6, 0xfe, 0x94, 0xb6, 0xb6, 0xfe, 0x00,
+ 0x01, 0x6d, 0x01, 0x05, 0x01, 0xd6, 0x01, 0x05, 0x01, 0xd6, 0x01, 0x05,
+ 0xfe, 0xfb, 0x01, 0x05, 0xf7, 0xd8, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05,
+ 0xfe, 0xfb, 0x05, 0xb6, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfd, 0x8d,
+ 0x01, 0x05, 0xfd, 0x8e, 0x01, 0x05, 0xfe, 0xfb, 0x01, 0x05, 0xfd, 0x8d,
+ 0x01, 0x05, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x05, 0x23, 0x05, 0x9c,
+ 0x06, 0x28, 0x10, 0x07, 0x0a, 0xaa, 0x00, 0x00, 0x07, 0x23, 0x00, 0x00,
+ 0xff, 0xff, 0x04, 0xe5, 0xfe, 0x00, 0x05, 0x9b, 0x06, 0x28, 0x10, 0x07,
+ 0x0a, 0xb8, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x02, 0xc6, 0x02, 0x14, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x12, 0x02, 0xd7, 0xfe, 0x00, 0x04, 0x14, 0xfb, 0xec, 0x00,
+ 0x00, 0x01, 0x02, 0xc4, 0xfe, 0x00, 0x05, 0x9c, 0x02, 0x14, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x02, 0xc4, 0x02, 0xd8, 0xfe, 0x00,
+ 0x04, 0x14, 0xfb, 0xec, 0x00, 0x01, 0xff, 0xee, 0x02, 0x14, 0x02, 0xc6,
+ 0x06, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x11, 0x21, 0x11, 0x12, 0x02,
+ 0xd7, 0x02, 0x14, 0x04, 0x14, 0xfb, 0xec, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x21, 0x11, 0x21, 0x05, 0x9c, 0xfa, 0x52, 0x02, 0xd7, 0x02, 0xd7,
+ 0xfe, 0x00, 0x08, 0x28, 0xfb, 0xec, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x07, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x12, 0x02, 0xd7, 0x02, 0xd7, 0xfd,
+ 0x28, 0x02, 0x14, 0x04, 0x14, 0xfb, 0xec, 0xfb, 0xec, 0x04, 0x14, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x05, 0x9c, 0xfd, 0x29,
+ 0xfd, 0x29, 0x06, 0x28, 0xfb, 0xec, 0xfb, 0xec, 0x08, 0x28, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x05,
+ 0x00, 0x00, 0x03, 0x21, 0x11, 0x21, 0x11, 0x21, 0x12, 0x05, 0xae, 0xfd,
+ 0x28, 0xfd, 0x2a, 0x06, 0x28, 0xf7, 0xd8, 0x04, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xc4, 0x02, 0x14, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x02, 0xc4, 0x02, 0xd8, 0x02, 0x14,
+ 0x04, 0x14, 0xfb, 0xec, 0x00, 0x01, 0xff, 0xee, 0xfe, 0x00, 0x05, 0x9c,
+ 0x06, 0x28, 0x00, 0x07, 0x00, 0x00, 0x03, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x21, 0x12, 0x02, 0xd6, 0x02, 0xd8, 0xfd, 0x29, 0xfd, 0x29, 0x02,
+ 0x14, 0x04, 0x14, 0xfb, 0xec, 0xfb, 0xec, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0xfe, 0x00, 0x05, 0x9c, 0x06, 0x28, 0x00, 0x05, 0x00, 0x00, 0x03, 0x11,
+ 0x21, 0x11, 0x21, 0x11, 0x12, 0x02, 0xd6, 0x02, 0xd8, 0xfe, 0x00, 0x04,
+ 0x14, 0x04, 0x14, 0xf7, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x00, 0x17, 0x11,
+ 0x21, 0x11, 0xa7, 0x05, 0x7f, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x05, 0x21, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11,
+ 0x01, 0x0e, 0x04, 0xb2, 0xfb, 0x4e, 0x67, 0x05, 0x7f, 0x8a, 0x05, 0x3c,
+ 0xfa, 0x52, 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x25, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x21, 0x22, 0x15,
+ 0x03, 0x11, 0x10, 0x29, 0x01, 0x20, 0x19, 0x01, 0x10, 0x29, 0x01, 0x20,
+ 0x01, 0x0e, 0xcd, 0x03, 0x17, 0xce, 0xce, 0xfc, 0xe9, 0xcd, 0x67, 0x01,
+ 0x34, 0x03, 0x17, 0x01, 0x34, 0xfe, 0xcc, 0xfc, 0xe9, 0xfe, 0xcc, 0x5a,
+ 0xe4, 0xe4, 0x03, 0x74, 0xe4, 0xe4, 0xfc, 0x8c, 0x03, 0x74, 0x01, 0x56,
+ 0xfe, 0xaa, 0xfc, 0x8c, 0xfe, 0xaa, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x10, 0x27, 0x0a, 0xd3, 0x00, 0xf6,
+ 0x00, 0x00, 0x10, 0x06, 0x0a, 0xca, 0x00, 0x00, 0x00, 0x06, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11,
+ 0x25, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21,
+ 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0xa7, 0x05, 0x7f, 0xfa,
+ 0xe8, 0x04, 0xb2, 0xfb, 0x4e, 0x04, 0xb2, 0xfb, 0x4e, 0x04, 0xb2, 0xfb,
+ 0x4e, 0x04, 0xb2, 0xfb, 0x4e, 0x04, 0xb2, 0xfb, 0x4e, 0xfc, 0x06, 0x20,
+ 0xf9, 0xe0, 0x72, 0xb0, 0x72, 0xb2, 0x72, 0xb0, 0x72, 0xb2, 0x72, 0xb0,
+ 0x00, 0x06, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00,
+ 0x17, 0x11, 0x21, 0x11, 0x25, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23,
+ 0x01, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23, 0x01, 0x33, 0x11, 0x23,
+ 0xa7, 0x05, 0x7f, 0xfe, 0xfe, 0x9e, 0x9e, 0xfe, 0xf9, 0xa0, 0xa0, 0xfe,
+ 0xfb, 0x9e, 0x9e, 0xfe, 0xf9, 0xa0, 0xa0, 0xfe, 0xfb, 0x9f, 0x9f, 0xfc,
+ 0x06, 0x20, 0xf9, 0xe0, 0x74, 0x05, 0x38, 0xfa, 0xc8, 0x05, 0x38, 0xfa,
+ 0xc8, 0x05, 0x38, 0xfa, 0xc8, 0x05, 0x38, 0xfa, 0xc8, 0x05, 0x38, 0x00,
+ 0x00, 0x1a, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b,
+ 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33,
+ 0x00, 0x37, 0x00, 0x3b, 0x00, 0x3f, 0x00, 0x43, 0x00, 0x47, 0x00, 0x4b,
+ 0x00, 0x4f, 0x00, 0x53, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x67, 0x00, 0x00, 0x05, 0x33, 0x35, 0x23, 0x05, 0x33, 0x35, 0x23,
+ 0x05, 0x33, 0x35, 0x23, 0x01, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x01, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x11, 0x33, 0x35, 0x23, 0x01, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x01, 0x33, 0x35, 0x23,
+ 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x01, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23,
+ 0x11, 0x33, 0x35, 0x23, 0x11, 0x33, 0x35, 0x23, 0x01, 0x11, 0x21, 0x11,
+ 0x02, 0x11, 0xa0, 0xa0, 0x01, 0x07, 0x9e, 0x9e, 0x01, 0x05, 0xa0, 0xa0,
+ 0xfc, 0xf1, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d,
+ 0x01, 0x03, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0x01, 0x07,
+ 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x01, 0x05, 0xa0, 0xa0,
+ 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0x01, 0x07, 0x9c, 0x9c, 0x9c, 0x9c,
+ 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0xfb, 0x83, 0x05, 0x7f, 0x88, 0xae,
+ 0xae, 0xae, 0xae, 0xae, 0x03, 0xdc, 0xae, 0xfe, 0x2e, 0xb2, 0xfe, 0x2c,
+ 0xb0, 0xfe, 0x2c, 0xb2, 0xfe, 0x2e, 0xae, 0x03, 0xdc, 0xae, 0xfe, 0x2e,
+ 0xb2, 0xfe, 0x2c, 0xb0, 0xfe, 0x2c, 0xb2, 0x02, 0xb8, 0xae, 0xfe, 0x2e,
+ 0xb2, 0xfe, 0x2c, 0xb0, 0xfe, 0x2c, 0xb2, 0x02, 0xb8, 0xae, 0xfe, 0x2e,
+ 0xb2, 0xfe, 0x2c, 0xb0, 0xfe, 0x2c, 0xb2, 0x02, 0xb8, 0xae, 0xfe, 0x2e,
+ 0xb2, 0xfe, 0x2c, 0xb0, 0xfe, 0x2c, 0xb2, 0xfe, 0x2e, 0xae, 0xfe, 0xde,
+ 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x08, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x14,
+ 0x00, 0x18, 0x00, 0x1c, 0x00, 0x1f, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11,
+ 0x01, 0x15, 0x33, 0x03, 0x15, 0x01, 0x33, 0x01, 0x15, 0x01, 0x37, 0x01,
+ 0x15, 0x01, 0x37, 0x35, 0x01, 0x33, 0x01, 0x35, 0x01, 0x33, 0x01, 0x35,
+ 0x01, 0x33, 0x17, 0x35, 0xa7, 0x05, 0x7f, 0xfa, 0xe8, 0xcb, 0xcb, 0x01,
+ 0x5d, 0xe2, 0xfd, 0xc1, 0x02, 0xd1, 0xe2, 0xfc, 0x4d, 0x04, 0x45, 0x6d,
+ 0xfb, 0xbb, 0x92, 0x03, 0xb3, 0xfd, 0x2f, 0x91, 0x02, 0x40, 0xfe, 0xa2,
+ 0x92, 0xcc, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x01, 0x54, 0xe2, 0x02, 0x7f,
+ 0xfc, 0xfe, 0x7d, 0x04, 0x1c, 0xfc, 0xfc, 0xdf, 0x01, 0x05, 0x3c, 0x7f,
+ 0xfb, 0x42, 0x01, 0x7f, 0x04, 0xbd, 0xfb, 0xe4, 0xfc, 0x03, 0x20, 0xfd,
+ 0x81, 0xfc, 0x01, 0x83, 0xe2, 0xe2, 0x00, 0x00, 0x00, 0x08, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0a,
+ 0x00, 0x0e, 0x00, 0x14, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x1f, 0x00, 0x00,
+ 0x17, 0x11, 0x21, 0x11, 0x25, 0x33, 0x35, 0x05, 0x33, 0x01, 0x35, 0x01,
+ 0x17, 0x01, 0x35, 0x01, 0x17, 0x01, 0x35, 0x23, 0x01, 0x35, 0x01, 0x23,
+ 0x01, 0x35, 0x01, 0x23, 0x01, 0x35, 0x37, 0x23, 0xa7, 0x05, 0x7f, 0xfe,
+ 0xce, 0xcc, 0xfd, 0xc0, 0xe2, 0x01, 0x5e, 0xfc, 0x4d, 0xe2, 0x02, 0xd1,
+ 0xfb, 0x4e, 0x6d, 0x04, 0x45, 0x6d, 0xfb, 0xbb, 0x03, 0xb3, 0xe2, 0xfd,
+ 0x2f, 0x02, 0x3f, 0xe2, 0xfe, 0xa3, 0xcb, 0xcb, 0xfc, 0x06, 0x20, 0xf9,
+ 0xe0, 0x72, 0xe2, 0xe2, 0x01, 0x83, 0xfc, 0xfd, 0x81, 0x01, 0x03, 0x21,
+ 0xfc, 0xfb, 0xe4, 0x01, 0x04, 0xbe, 0x7f, 0xfb, 0x43, 0xa1, 0x04, 0x1c,
+ 0xfc, 0xe0, 0xa1, 0x02, 0x7f, 0xfe, 0x7d, 0xa1, 0xe2, 0x00, 0x00, 0x00,
+ 0x00, 0x1a, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x04,
+ 0x00, 0x09, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x17, 0x00, 0x1c, 0x00, 0x20,
+ 0x00, 0x24, 0x00, 0x28, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39,
+ 0x00, 0x3d, 0x00, 0x41, 0x00, 0x46, 0x00, 0x4b, 0x00, 0x4f, 0x00, 0x53,
+ 0x00, 0x57, 0x00, 0x5c, 0x00, 0x61, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x6f,
+ 0x00, 0x73, 0x00, 0x00, 0x01, 0x17, 0x37, 0x27, 0x23, 0x11, 0x17, 0x37,
+ 0x27, 0x07, 0x01, 0x17, 0x37, 0x27, 0x23, 0x03, 0x17, 0x37, 0x27, 0x03,
+ 0x17, 0x37, 0x27, 0x07, 0x01, 0x17, 0x37, 0x27, 0x23, 0x03, 0x17, 0x37,
+ 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17, 0x37,
+ 0x35, 0x23, 0x03, 0x17, 0x37, 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17,
+ 0x37, 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17, 0x37, 0x27, 0x03, 0x33,
+ 0x37, 0x27, 0x07, 0x01, 0x17, 0x37, 0x35, 0x27, 0x01, 0x17, 0x37, 0x27,
+ 0x01, 0x17, 0x37, 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17, 0x33, 0x37,
+ 0x27, 0x01, 0x17, 0x37, 0x35, 0x27, 0x01, 0x17, 0x37, 0x27, 0x01, 0x17,
+ 0x33, 0x37, 0x27, 0x05, 0x17, 0x33, 0x35, 0x27, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x0e, 0x2d, 0x70, 0x30, 0x6d, 0x2d, 0x71, 0x71, 0x2d, 0x01, 0x2e,
+ 0x71, 0x71, 0x2f, 0x84, 0xe8, 0x71, 0x70, 0x71, 0xe5, 0x2d, 0x71, 0x71,
+ 0x2d, 0x02, 0xa1, 0x72, 0x71, 0x30, 0x83, 0xe9, 0x71, 0x71, 0x71, 0xfe,
+ 0xd6, 0x71, 0x70, 0x71, 0xfe, 0xd6, 0x71, 0x72, 0x72, 0x03, 0x2f, 0x70,
+ 0x2d, 0x6d, 0xe9, 0x6f, 0x71, 0x6f, 0xfe, 0xd4, 0x70, 0x71, 0x6f, 0xfe,
+ 0xd6, 0x70, 0x70, 0x70, 0xfe, 0xd6, 0x70, 0x71, 0x6f, 0xfe, 0xd4, 0x71,
+ 0x70, 0x70, 0xe6, 0x6e, 0x2f, 0x70, 0x2d, 0x04, 0x14, 0x71, 0x2d, 0x2e,
+ 0xfe, 0xd6, 0x71, 0x71, 0x71, 0xfe, 0xd6, 0x72, 0x6f, 0x71, 0xfe, 0xd7,
+ 0x71, 0x72, 0x72, 0xfe, 0xd5, 0x2f, 0x85, 0x2e, 0x71, 0x02, 0x75, 0x70,
+ 0x2e, 0x2e, 0xfe, 0xd7, 0x71, 0x70, 0x71, 0xfe, 0xd6, 0x2f, 0x84, 0x30,
+ 0x71, 0x01, 0x02, 0x2f, 0x6e, 0x2e, 0xfb, 0x15, 0x05, 0x7f, 0x04, 0x33,
+ 0x31, 0x7c, 0x34, 0xfd, 0xe4, 0x32, 0x7e, 0x7e, 0x31, 0x01, 0x4f, 0x7e,
+ 0x7e, 0x34, 0xfe, 0xff, 0x7e, 0x7c, 0x7e, 0xfc, 0xcc, 0x31, 0x7e, 0x7d,
+ 0x31, 0x02, 0xec, 0x7e, 0x7e, 0x34, 0xfe, 0xfd, 0x7d, 0x7d, 0x7e, 0xfe,
+ 0xb5, 0x7e, 0x7d, 0x7d, 0xfe, 0xb6, 0x7e, 0x7e, 0x7e, 0x01, 0xec, 0x7c,
+ 0x31, 0x7f, 0xfe, 0xfd, 0x7c, 0x7e, 0x7c, 0xfe, 0xb4, 0x7d, 0x7e, 0x7c,
+ 0xfe, 0xb6, 0x7c, 0x7c, 0x7c, 0xfe, 0xb5, 0x7c, 0x7e, 0x7c, 0xfe, 0xb4,
+ 0x7c, 0x7d, 0x7d, 0xfe, 0x81, 0x34, 0x7c, 0x31, 0x02, 0xed, 0x7e, 0x32,
+ 0x99, 0x31, 0xfe, 0xb4, 0x7e, 0x7e, 0x7e, 0xfe, 0xb5, 0x7e, 0x7c, 0x7e,
+ 0xfe, 0xb5, 0x7e, 0x7e, 0x7e, 0xfe, 0xb4, 0x34, 0x34, 0x7e, 0x01, 0x1e,
+ 0x7e, 0x31, 0x99, 0x31, 0xfe, 0xb5, 0x7d, 0x7c, 0x7e, 0xfe, 0xb5, 0x34,
+ 0x34, 0x7e, 0x7e, 0x34, 0x7f, 0x31, 0xfe, 0xde, 0x06, 0x20, 0xf9, 0xe0,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x16, 0x04, 0x3a, 0x04, 0x12, 0x00, 0x03,
+ 0x00, 0x00, 0x37, 0x11, 0x21, 0x11, 0xa7, 0x03, 0x93, 0x16, 0x03, 0xfc,
+ 0xfc, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x16, 0x04, 0x3a,
+ 0x04, 0x12, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x25, 0x21, 0x11, 0x21,
+ 0x03, 0x11, 0x21, 0x11, 0x01, 0x0e, 0x02, 0xc5, 0xfd, 0x3b, 0x67, 0x03,
+ 0x93, 0x88, 0x03, 0x18, 0xfc, 0x76, 0x03, 0xfc, 0xfc, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0x00, 0x9a, 0x06, 0x27, 0x03, 0x8e, 0x00, 0x03,
+ 0x00, 0x00, 0x25, 0x21, 0x11, 0x21, 0x06, 0x26, 0xfa, 0x81, 0x05, 0x7f,
+ 0x9a, 0x02, 0xf4, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x9a, 0x06, 0x27,
+ 0x03, 0x8e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11,
+ 0x05, 0x21, 0x11, 0x21, 0x05, 0xc0, 0xfb, 0x4e, 0x05, 0x18, 0xfa, 0x81,
+ 0x05, 0x7f, 0x01, 0x0c, 0x02, 0x10, 0xfd, 0xf0, 0x72, 0x02, 0xf4, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xff, 0x06, 0x03, 0x4f, 0x05, 0x22, 0x00, 0x03,
+ 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0xa7, 0x02, 0xa8, 0xfa, 0x06, 0x1c,
+ 0xf9, 0xe4, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0xff, 0x06, 0x03, 0x4f,
+ 0x05, 0x22, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x05, 0x21, 0x11, 0x21,
+ 0x03, 0x11, 0x21, 0x11, 0x01, 0x0e, 0x01, 0xda, 0xfe, 0x26, 0x67, 0x02,
+ 0xa8, 0x88, 0x05, 0x38, 0xfa, 0x56, 0x06, 0x1c, 0xf9, 0xe4, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x9a, 0x05, 0x85, 0x03, 0x8e, 0x00, 0x03,
+ 0x00, 0x00, 0x25, 0x21, 0x01, 0x21, 0x04, 0x22, 0xfb, 0xe3, 0x01, 0x63,
+ 0x04, 0x1c, 0x9a, 0x02, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x9a, 0x05, 0x85, 0x03, 0x8e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x13, 0x21, 0x03, 0x05, 0x21, 0x01, 0x21, 0x03, 0xf2, 0xf5, 0xfc,
+ 0xb1, 0xf6, 0x03, 0x80, 0xfb, 0xe3, 0x01, 0x63, 0x04, 0x1c, 0x01, 0x0c,
+ 0x02, 0x10, 0xfd, 0xf0, 0x72, 0x02, 0xf4, 0x00, 0x00, 0x01, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02, 0x00, 0x00, 0x17, 0x09,
+ 0x01, 0x05, 0x02, 0xbf, 0x02, 0xc0, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x00,
+ 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x00, 0x17, 0x21, 0x09, 0x03, 0x9f, 0x04, 0x4b, 0xfd,
+ 0xda, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0x8a, 0x04, 0xca, 0xfa, 0xc4,
+ 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x00, 0x37, 0x09, 0x01, 0x05, 0x01, 0xca,
+ 0x01, 0xc9, 0x16, 0x03, 0xfc, 0xfc, 0x04, 0x00, 0x00, 0x02, 0x00, 0x05,
+ 0x00, 0x16, 0x03, 0x98, 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00,
+ 0x37, 0x21, 0x09, 0x03, 0x9f, 0x02, 0x5f, 0xfe, 0xd1, 0xfe, 0x36, 0x01,
+ 0xca, 0x01, 0xc9, 0x88, 0x02, 0xa6, 0xfc, 0xe8, 0x03, 0xfc, 0xfc, 0x04,
+ 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x00, 0x17, 0x11, 0x01, 0x05, 0x05, 0x7f, 0xfc, 0x06, 0x20, 0xfc,
+ 0xf0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x17, 0x09, 0x01, 0x03,
+ 0x11, 0x01, 0x6c, 0x04, 0x4b, 0xfb, 0xb5, 0x67, 0x05, 0x7f, 0x52, 0x02,
+ 0x66, 0x02, 0x66, 0xfa, 0x8a, 0x06, 0x20, 0xfc, 0xf0, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98, 0x04, 0x12, 0x00, 0x02,
+ 0x00, 0x00, 0x37, 0x11, 0x01, 0x05, 0x03, 0x93, 0x16, 0x03, 0xfc, 0xfe,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x37, 0x09, 0x01, 0x03,
+ 0x11, 0x01, 0x6c, 0x02, 0x5f, 0xfd, 0xa1, 0x67, 0x03, 0x93, 0xc1, 0x01,
+ 0x53, 0x01, 0x53, 0xfc, 0xaf, 0x03, 0xfc, 0xfe, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x05, 0x85, 0x04, 0x12, 0x00, 0x02,
+ 0x00, 0x00, 0x37, 0x11, 0x01, 0x05, 0x05, 0x7f, 0x16, 0x03, 0xfc, 0xfe,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x16, 0x05, 0x85,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x37, 0x09, 0x01, 0x03,
+ 0x11, 0x01, 0x6c, 0x04, 0x18, 0xfb, 0xe8, 0x67, 0x05, 0x7f, 0xc1, 0x01,
+ 0x53, 0x01, 0x53, 0xfc, 0xaf, 0x03, 0xfc, 0xfe, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x00, 0x13, 0x21, 0x01, 0x05, 0x05, 0x7f, 0xfd, 0x40, 0x05, 0x24,
+ 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x13, 0x09, 0x01, 0x25,
+ 0x21, 0x01, 0x9f, 0x02, 0x25, 0x02, 0x26, 0xfb, 0x1b, 0x05, 0x7f, 0xfd,
+ 0x40, 0x04, 0xb2, 0xfb, 0x36, 0x04, 0xca, 0x72, 0xf9, 0xe0, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98, 0x04, 0x12, 0x00, 0x02,
+ 0x00, 0x00, 0x13, 0x21, 0x01, 0x05, 0x03, 0x93, 0xfe, 0x37, 0x04, 0x12,
+ 0xfc, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x13, 0x09, 0x01, 0x25,
+ 0x21, 0x01, 0x9f, 0x01, 0x30, 0x01, 0x2f, 0xfd, 0x07, 0x03, 0x93, 0xfe,
+ 0x37, 0x03, 0xa0, 0xfd, 0x5a, 0x02, 0xa6, 0x72, 0xfc, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x00, 0x13, 0x01, 0x11, 0x05, 0x05, 0x7f, 0x02, 0x14, 0x03, 0x10,
+ 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x13, 0x01, 0x11, 0x09,
+ 0x01, 0x11, 0xd3, 0x04, 0x4b, 0xfa, 0xe7, 0x05, 0x7f, 0x02, 0x14, 0xfd,
+ 0x9a, 0x04, 0xcc, 0xfd, 0x9a, 0x03, 0x10, 0xf9, 0xe0, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98, 0x04, 0x12, 0x00, 0x02,
+ 0x00, 0x00, 0x13, 0x01, 0x11, 0x05, 0x03, 0x93, 0x02, 0x14, 0x01, 0xfe,
+ 0xfc, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x16, 0x03, 0x98,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x13, 0x01, 0x11, 0x09,
+ 0x01, 0x11, 0xd3, 0x02, 0x5e, 0xfc, 0xd4, 0x03, 0x93, 0x02, 0x14, 0xfe,
+ 0xad, 0x02, 0xa6, 0xfe, 0xad, 0x01, 0xfe, 0xfc, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0x00, 0x16, 0x05, 0x85, 0x04, 0x12, 0x00, 0x02,
+ 0x00, 0x00, 0x13, 0x01, 0x11, 0x05, 0x05, 0x7f, 0x02, 0x14, 0x01, 0xfe,
+ 0xfc, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0x00, 0x16, 0x05, 0x85,
+ 0x04, 0x12, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x09, 0x01, 0x11, 0x09,
+ 0x01, 0x11, 0x01, 0x06, 0x04, 0x18, 0xfa, 0xe7, 0x05, 0x7f, 0x02, 0x14,
+ 0xfe, 0xad, 0x02, 0xa6, 0xfe, 0xad, 0x01, 0xfe, 0xfc, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x09, 0x02, 0x05, 0x02, 0xbf, 0x02, 0xc0, 0xfd, 0x40,
+ 0x02, 0x14, 0x03, 0x10, 0xfc, 0xf0, 0xfc, 0xf0, 0x00, 0x02, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x09, 0x06, 0x8e, 0x02, 0x36, 0x02, 0x37, 0xfd, 0xc9, 0xfd, 0x41,
+ 0x02, 0xbf, 0x02, 0xc0, 0xfd, 0x40, 0x02, 0x14, 0xfd, 0x88, 0x02, 0x78,
+ 0x02, 0x78, 0xfd, 0x88, 0x03, 0x10, 0xfc, 0xf0, 0xfc, 0xf0, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x0b, 0x01, 0x1e, 0x01, 0xa6,
+ 0x01, 0xa6, 0xfe, 0x5a, 0xfd, 0xca, 0x02, 0x36, 0x02, 0x37, 0xfd, 0xc9,
+ 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0xfd, 0x40, 0x02, 0x14, 0x01, 0xd7,
+ 0xfe, 0x29, 0xfe, 0x29, 0x01, 0xd7, 0xfd, 0x88, 0x02, 0x78, 0x02, 0x78,
+ 0xfd, 0x88, 0x03, 0x10, 0xfc, 0xf0, 0xfc, 0xf0, 0x00, 0x03, 0x00, 0x64,
+ 0xfe, 0xff, 0x05, 0xe4, 0x05, 0x29, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x29,
+ 0x00, 0x00, 0x24, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x00, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24,
+ 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x00, 0x10, 0x25, 0x36, 0x33, 0x32,
+ 0x17, 0x04, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0x01, 0x5b, 0xe5, 0x71,
+ 0x73, 0x73, 0x71, 0xe5, 0xe5, 0x71, 0x73, 0x73, 0x71, 0xfe, 0x8e, 0x01,
+ 0x2c, 0x94, 0x96, 0x96, 0x94, 0x01, 0x2c, 0xfe, 0xd4, 0x94, 0x96, 0x96,
+ 0x94, 0xfe, 0x6b, 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01, 0x60, 0xfe,
+ 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0xef, 0x02, 0x4a, 0x92, 0x4a, 0x4a, 0x92,
+ 0xfd, 0xb6, 0x92, 0x4a, 0x4a, 0x03, 0x36, 0xfd, 0x02, 0xc0, 0x60, 0x60,
+ 0xc0, 0x02, 0xfe, 0xc0, 0x60, 0x60, 0xfb, 0xff, 0x03, 0x84, 0xe2, 0x71,
+ 0x71, 0xe2, 0xfc, 0x7c, 0xe2, 0x71, 0x71, 0x00, 0x00, 0x02, 0x00, 0x05,
+ 0xfe, 0x23, 0x03, 0x8a, 0x06, 0x75, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x09, 0x07, 0x01, 0xc7, 0xfe, 0xa6, 0x01, 0x5a, 0x01, 0x5b, 0xfe, 0xa5,
+ 0x01, 0xc2, 0xfe, 0x3e, 0xfe, 0x3e, 0x05, 0x81, 0xfc, 0xcf, 0xfc, 0xc7,
+ 0x03, 0x39, 0x04, 0x25, 0xfb, 0xdb, 0xfb, 0xd3, 0x04, 0x2d, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x64, 0xfe, 0xff, 0x05, 0xe4, 0x05, 0x29, 0x00, 0x0d,
+ 0x00, 0x1b, 0x00, 0x00, 0x12, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24,
+ 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x00, 0x10, 0x25, 0x36, 0x33, 0x32,
+ 0x17, 0x04, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0xce, 0x01, 0x2c, 0x94,
+ 0x96, 0x96, 0x94, 0x01, 0x2c, 0xfe, 0xd4, 0x94, 0x96, 0x96, 0x94, 0xfe,
+ 0x6b, 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01, 0x60, 0xfe, 0xa0, 0xb0,
+ 0xb0, 0xb0, 0xaf, 0x03, 0x93, 0xfd, 0x02, 0xc0, 0x60, 0x60, 0xc0, 0x02,
+ 0xfe, 0xc0, 0x60, 0x60, 0xfb, 0xff, 0x03, 0x84, 0xe2, 0x71, 0x71, 0xe2,
+ 0xfc, 0x7c, 0xe2, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x66,
+ 0xff, 0x01, 0x05, 0xe2, 0x05, 0x27, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1d,
+ 0x00, 0x27, 0x00, 0x2f, 0x00, 0x37, 0x00, 0x3f, 0x00, 0x47, 0x00, 0x00,
+ 0x25, 0x16, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x27, 0x05, 0x36,
+ 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x07, 0x13, 0x26, 0x27, 0x26,
+ 0x27, 0x37, 0x16, 0x17, 0x16, 0x17, 0x25, 0x06, 0x07, 0x06, 0x07, 0x27,
+ 0x36, 0x37, 0x36, 0x37, 0x13, 0x16, 0x32, 0x37, 0x17, 0x06, 0x22, 0x27,
+ 0x01, 0x36, 0x34, 0x27, 0x37, 0x16, 0x14, 0x07, 0x01, 0x26, 0x22, 0x07,
+ 0x27, 0x36, 0x32, 0x17, 0x01, 0x06, 0x14, 0x17, 0x07, 0x26, 0x34, 0x37,
+ 0x01, 0x39, 0x27, 0x35, 0x29, 0x33, 0x2c, 0x3f, 0x34, 0x43, 0x30, 0x03,
+ 0x78, 0x32, 0x29, 0x2f, 0x2d, 0x5a, 0x35, 0x3e, 0x33, 0x40, 0x8c, 0x27,
+ 0x35, 0x29, 0x32, 0x2b, 0x40, 0x33, 0x43, 0x30, 0xfc, 0x89, 0x33, 0x29,
+ 0x35, 0x27, 0x5a, 0x2c, 0x47, 0x34, 0x3f, 0xd5, 0x44, 0x8b, 0x44, 0x23,
+ 0x56, 0xad, 0x56, 0x02, 0xf6, 0x0e, 0x0e, 0x63, 0x12, 0x12, 0xfd, 0xdd,
+ 0x44, 0x8b, 0x44, 0x23, 0x56, 0xad, 0x56, 0xfd, 0x0c, 0x0f, 0x0f, 0x63,
+ 0x12, 0x12, 0x8f, 0x3c, 0x31, 0x26, 0x20, 0x6a, 0x28, 0x30, 0x3d, 0x4a,
+ 0x75, 0x20, 0x26, 0x2c, 0x41, 0x3d, 0x4e, 0x3a, 0x30, 0x28, 0x04, 0x27,
+ 0x3c, 0x31, 0x26, 0x20, 0x6a, 0x28, 0x30, 0x3d, 0x4a, 0x75, 0x20, 0x26,
+ 0x31, 0x3c, 0x3e, 0x45, 0x42, 0x30, 0x28, 0xfa, 0xd4, 0x16, 0x16, 0x6e,
+ 0x1b, 0x1b, 0x02, 0x5f, 0x49, 0xa0, 0x49, 0x27, 0x5b, 0xca, 0x5b, 0x03,
+ 0x4a, 0x16, 0x16, 0x6e, 0x1b, 0x1b, 0xfd, 0xa1, 0x49, 0xa0, 0x49, 0x27,
+ 0x5b, 0xca, 0x5b, 0x00, 0x00, 0x06, 0x00, 0x64, 0xfe, 0xff, 0x05, 0xe4,
+ 0x05, 0x29, 0x00, 0x0d, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x25, 0x00, 0x2f,
+ 0x00, 0x33, 0x00, 0x00, 0x36, 0x10, 0x25, 0x36, 0x33, 0x32, 0x17, 0x04,
+ 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0x13, 0x11, 0x16, 0x17, 0x16, 0x17,
+ 0x11, 0x06, 0x07, 0x06, 0x07, 0x06, 0x10, 0x17, 0x01, 0x11, 0x16, 0x33,
+ 0x32, 0x37, 0x11, 0x26, 0x23, 0x22, 0x17, 0x11, 0x36, 0x37, 0x36, 0x37,
+ 0x11, 0x26, 0x27, 0x26, 0x17, 0x11, 0x36, 0x10, 0x65, 0x01, 0x60, 0xaf,
+ 0xb0, 0xb0, 0xb0, 0x01, 0x60, 0xfe, 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0x0a,
+ 0x14, 0x17, 0x3a, 0x3b, 0x3b, 0x3a, 0x17, 0x7b, 0x9a, 0x9a, 0x01, 0x6d,
+ 0x28, 0x27, 0x28, 0x28, 0x28, 0x28, 0x27, 0xdd, 0x3b, 0x39, 0x18, 0x15,
+ 0x15, 0x18, 0x39, 0xcc, 0x99, 0x52, 0x03, 0x84, 0xe2, 0x71, 0x71, 0xe2,
+ 0xfc, 0x7c, 0xe2, 0x71, 0x71, 0x04, 0xc5, 0xfb, 0xbe, 0x0f, 0x0f, 0x25,
+ 0x17, 0x04, 0xf6, 0x17, 0x25, 0x0f, 0x6d, 0xb1, 0xfd, 0xdc, 0xb1, 0x04,
+ 0x5b, 0xfa, 0xd0, 0x07, 0x07, 0x05, 0x30, 0x07, 0x24, 0xfb, 0x0a, 0x17,
+ 0x25, 0x0f, 0x10, 0x04, 0x40, 0x10, 0x0f, 0x25, 0xa2, 0xfc, 0x7c, 0xb1,
+ 0x02, 0x22, 0x00, 0x00, 0x00, 0x04, 0x00, 0x64, 0xfe, 0xff, 0x05, 0xe4,
+ 0x05, 0x29, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x29, 0x00, 0x37, 0x00, 0x00,
+ 0x00, 0x10, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x10, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x02, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x10, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x00, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24,
+ 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x00, 0x10, 0x25, 0x36, 0x33, 0x32,
+ 0x17, 0x04, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0x02, 0x56, 0x67, 0x33,
+ 0x34, 0x34, 0x33, 0x67, 0x67, 0x33, 0x34, 0x34, 0x33, 0xd5, 0x9e, 0x4f,
+ 0x4f, 0x4f, 0x4f, 0x9e, 0x9e, 0x4f, 0x4f, 0x4f, 0x4f, 0xfe, 0x48, 0x01,
+ 0x2c, 0x94, 0x96, 0x96, 0x94, 0x01, 0x2c, 0xfe, 0xd4, 0x94, 0x96, 0x96,
+ 0x94, 0xfe, 0x6b, 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01, 0x60, 0xfe,
+ 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0x02, 0x98, 0xfe, 0xf8, 0x42, 0x21, 0x21,
+ 0x42, 0x01, 0x08, 0x42, 0x21, 0x21, 0xfe, 0x6f, 0x01, 0x96, 0x65, 0x33,
+ 0x33, 0x65, 0xfe, 0x6a, 0x65, 0x33, 0x33, 0x02, 0xaf, 0xfd, 0x02, 0xc0,
+ 0x60, 0x60, 0xc0, 0x02, 0xfe, 0xc0, 0x60, 0x60, 0xfb, 0xff, 0x03, 0x84,
+ 0xe2, 0x71, 0x71, 0xe2, 0xfc, 0x7c, 0xe2, 0x71, 0x71, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x17,
+ 0x00, 0x00, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x65, 0x5e, 0x5e, 0xa4, 0xa3, 0xbd, 0xbc, 0xa3, 0xa3, 0x5e,
+ 0x5f, 0x5f, 0x5e, 0xa3, 0xa3, 0xbc, 0xbd, 0xa3, 0xa4, 0x5e, 0x5e, 0x02,
+ 0x12, 0xd1, 0xb6, 0xb5, 0x69, 0x69, 0x69, 0x69, 0xb5, 0xb6, 0xd1, 0xd1,
+ 0xb6, 0xb5, 0x69, 0x69, 0x69, 0x69, 0xb5, 0xb6, 0x00, 0x02, 0x00, 0x64,
+ 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0d, 0x00, 0x15, 0x00, 0x00,
+ 0x12, 0x10, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x23,
+ 0x22, 0x24, 0x05, 0x32, 0x37, 0x24, 0x10, 0x25, 0x26, 0x23, 0x65, 0xbc,
+ 0x01, 0x47, 0xbd, 0xbc, 0x01, 0x46, 0xbd, 0xbd, 0xfe, 0xba, 0xbc, 0xbd,
+ 0xfe, 0xb9, 0x02, 0x03, 0x96, 0x94, 0x01, 0x2c, 0xfe, 0xd4, 0x94, 0x96,
+ 0x01, 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e,
+ 0xfe, 0x95, 0xd2, 0xd2, 0x61, 0x60, 0xc0, 0x02, 0xfe, 0xc0, 0x60, 0x00,
+ 0x00, 0x02, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0d,
+ 0x00, 0x15, 0x00, 0x00, 0x12, 0x10, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x10, 0x02, 0x04, 0x23, 0x22, 0x24, 0x01, 0x22, 0x07, 0x04, 0x10, 0x05,
+ 0x16, 0x33, 0x65, 0xbc, 0x01, 0x47, 0xbd, 0xbc, 0x01, 0x46, 0xbd, 0xbd,
+ 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x02, 0x03, 0x96, 0x94, 0xfe, 0xd4,
+ 0x01, 0x2c, 0x94, 0x96, 0x01, 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2,
+ 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2, 0x04, 0xdd, 0x60, 0xc0,
+ 0xfd, 0x02, 0xc0, 0x60, 0x00, 0x02, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4,
+ 0x05, 0x20, 0x00, 0x0d, 0x00, 0x16, 0x00, 0x00, 0x12, 0x10, 0x12, 0x24,
+ 0x33, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x23, 0x22, 0x24, 0x01, 0x10,
+ 0x25, 0x26, 0x23, 0x22, 0x07, 0x04, 0x11, 0x65, 0xbc, 0x01, 0x47, 0xbd,
+ 0xbc, 0x01, 0x46, 0xbd, 0xbd, 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x04,
+ 0x59, 0xfe, 0xd4, 0x94, 0x96, 0x96, 0x94, 0xfe, 0xd4, 0x01, 0x41, 0x01,
+ 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2,
+ 0xd2, 0x02, 0x3e, 0x01, 0x7f, 0xc0, 0x60, 0x60, 0xc0, 0xfe, 0x81, 0x00,
+ 0x00, 0x02, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0d,
+ 0x00, 0x16, 0x00, 0x00, 0x12, 0x10, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x10, 0x02, 0x04, 0x23, 0x22, 0x24, 0x03, 0x10, 0x05, 0x16, 0x33, 0x32,
+ 0x37, 0x24, 0x11, 0x65, 0xbc, 0x01, 0x47, 0xbd, 0xbc, 0x01, 0x46, 0xbd,
+ 0xbd, 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x53, 0x01, 0x2c, 0x94, 0x96,
+ 0x96, 0x94, 0x01, 0x2c, 0x01, 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2,
+ 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2, 0x02, 0x3e, 0xfe, 0x81,
+ 0xc0, 0x60, 0x60, 0xc0, 0x01, 0x7f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64,
+ 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0b, 0x00, 0x18, 0x00, 0x00,
+ 0x12, 0x10, 0x12, 0x24, 0x20, 0x04, 0x12, 0x10, 0x02, 0x04, 0x20, 0x24,
+ 0x01, 0x22, 0x07, 0x04, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24, 0x11,
+ 0x21, 0x65, 0xbc, 0x01, 0x47, 0x01, 0x79, 0x01, 0x46, 0xbd, 0xbd, 0xfe,
+ 0xba, 0xfe, 0x87, 0xfe, 0xb9, 0x02, 0x03, 0x96, 0x94, 0xfe, 0xd4, 0x01,
+ 0x2c, 0x94, 0x96, 0x96, 0x94, 0x01, 0x2c, 0xfd, 0xaa, 0x01, 0x41, 0x01,
+ 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2,
+ 0xd2, 0x04, 0xdd, 0x60, 0xc0, 0xfd, 0x02, 0xc0, 0x60, 0x60, 0xc0, 0x01,
+ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4,
+ 0x05, 0x20, 0x00, 0x0b, 0x00, 0x11, 0x00, 0x00, 0x12, 0x10, 0x12, 0x24,
+ 0x20, 0x04, 0x12, 0x10, 0x02, 0x04, 0x20, 0x24, 0x01, 0x22, 0x07, 0x04,
+ 0x11, 0x21, 0x65, 0xbc, 0x01, 0x47, 0x01, 0x79, 0x01, 0x46, 0xbd, 0xbd,
+ 0xfe, 0xba, 0xfe, 0x87, 0xfe, 0xb9, 0x02, 0x03, 0x96, 0x94, 0xfe, 0xd4,
+ 0x02, 0x56, 0x01, 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95,
+ 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2, 0x04, 0xdd, 0x60, 0xc0, 0xfe, 0x81,
+ 0x00, 0x01, 0x00, 0x64, 0xfe, 0xff, 0x03, 0x24, 0x05, 0x29, 0x00, 0x07,
+ 0x00, 0x00, 0x36, 0x10, 0x25, 0x36, 0x33, 0x11, 0x22, 0x27, 0x65, 0x01,
+ 0x60, 0xaf, 0xb0, 0xb0, 0xaf, 0x52, 0x03, 0x84, 0xe2, 0x71, 0xf9, 0xd6,
+ 0x71, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xff, 0x03, 0x67,
+ 0x05, 0x29, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x05, 0x06, 0x23, 0x11,
+ 0x32, 0x17, 0x03, 0x66, 0xfe, 0xa0, 0xaf, 0xb0, 0xb0, 0xaf, 0x03, 0xd6,
+ 0xfc, 0x7c, 0xe2, 0x71, 0x06, 0x2a, 0x71, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0xec, 0x05, 0x0b, 0x06, 0x28, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x00,
+ 0x01, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x01,
+ 0x11, 0x21, 0x11, 0x01, 0xce, 0x9a, 0xe2, 0x9a, 0x9a, 0x6f, 0x72, 0x9b,
+ 0xfe, 0xd9, 0x04, 0x64, 0x02, 0xfa, 0x7d, 0xac, 0xac, 0x7d, 0x7c, 0xab,
+ 0xab, 0xfc, 0x76, 0x06, 0x3c, 0xf9, 0xc4, 0x00, 0x00, 0x03, 0x00, 0xa7,
+ 0xfe, 0x00, 0x06, 0x55, 0x06, 0x28, 0x00, 0x0d, 0x00, 0x1b, 0x00, 0x1f,
+ 0x00, 0x00, 0x24, 0x10, 0x25, 0x36, 0x33, 0x32, 0x17, 0x04, 0x10, 0x05,
+ 0x06, 0x23, 0x22, 0x27, 0x00, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24,
+ 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x01, 0x11, 0x21, 0x11, 0x01, 0x28,
+ 0x01, 0x2c, 0x94, 0x96, 0x96, 0x94, 0x01, 0x2c, 0xfe, 0xd4, 0x94, 0x96,
+ 0x96, 0x94, 0xfe, 0x6b, 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01, 0x60,
+ 0xfe, 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0xfe, 0x88, 0x05, 0xae, 0x95, 0x02,
+ 0xfe, 0xc0, 0x60, 0x60, 0xc0, 0xfd, 0x02, 0xc0, 0x60, 0x60, 0x04, 0x01,
+ 0xfc, 0x7c, 0xe2, 0x71, 0x71, 0xe2, 0x03, 0x84, 0xe2, 0x71, 0x71, 0xf9,
+ 0x48, 0x08, 0x28, 0xf7, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0x02, 0x14, 0x06, 0x55, 0x06, 0x28, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x11, 0x21, 0x11, 0x23, 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x04,
+ 0x11, 0x29, 0x01, 0x10, 0x25, 0x36, 0x33, 0x32, 0x17, 0x04, 0xa7, 0x05,
+ 0xae, 0x17, 0xfe, 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0xfe, 0xa0, 0x05, 0x15,
+ 0xfb, 0x54, 0x01, 0x2c, 0x95, 0x95, 0x95, 0x95, 0x01, 0x2c, 0x02, 0x14,
+ 0x04, 0x14, 0xfb, 0xec, 0x01, 0xc2, 0xe2, 0x71, 0x71, 0xe2, 0xfe, 0x3e,
+ 0x01, 0x7e, 0xc1, 0x60, 0x60, 0xc1, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xfe, 0x00, 0x06, 0x55, 0x02, 0x14, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x11, 0x33, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24, 0x11, 0x33,
+ 0x11, 0x01, 0x21, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0x24, 0xa7, 0x18,
+ 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01, 0x60, 0x17, 0xfa, 0xd3, 0x04,
+ 0xac, 0xfe, 0xd4, 0x95, 0x95, 0x95, 0x95, 0xfe, 0xd4, 0xfe, 0x00, 0x04,
+ 0x14, 0xfe, 0x3e, 0xe2, 0x71, 0x71, 0xe2, 0x01, 0xc2, 0xfb, 0xec, 0x04,
+ 0x14, 0xfe, 0x82, 0xc1, 0x60, 0x60, 0xc1, 0x00, 0x00, 0x01, 0x00, 0x05,
+ 0x02, 0x14, 0x02, 0xc5, 0x05, 0x29, 0x00, 0x09, 0x00, 0x00, 0x13, 0x10,
+ 0x25, 0x36, 0x33, 0x15, 0x22, 0x07, 0x04, 0x11, 0x05, 0x01, 0x60, 0xb0,
+ 0xaf, 0x95, 0x95, 0xfe, 0xd5, 0x02, 0x14, 0x01, 0xc2, 0xe2, 0x71, 0x76,
+ 0x60, 0xc0, 0xfe, 0x81, 0x00, 0x01, 0x00, 0x05, 0x02, 0x14, 0x02, 0xc5,
+ 0x05, 0x29, 0x00, 0x09, 0x00, 0x00, 0x13, 0x32, 0x17, 0x04, 0x11, 0x23,
+ 0x10, 0x25, 0x26, 0x23, 0x05, 0xb0, 0xaf, 0x01, 0x60, 0x69, 0xfe, 0xd4,
+ 0x94, 0x96, 0x05, 0x29, 0x71, 0xe2, 0xfe, 0x3e, 0x01, 0x7f, 0xc0, 0x60,
+ 0x00, 0x01, 0x00, 0x05, 0xfe, 0xff, 0x02, 0xc5, 0x02, 0x14, 0x00, 0x09,
+ 0x00, 0x00, 0x13, 0x35, 0x32, 0x37, 0x24, 0x11, 0x33, 0x10, 0x05, 0x06,
+ 0x05, 0x96, 0x94, 0x01, 0x2c, 0x69, 0xfe, 0xa0, 0xaf, 0xfe, 0xff, 0x76,
+ 0x60, 0xc0, 0x01, 0x7f, 0xfe, 0x3e, 0xe2, 0x71, 0x00, 0x01, 0x00, 0x05,
+ 0xfe, 0xff, 0x02, 0xc5, 0x02, 0x14, 0x00, 0x09, 0x00, 0x00, 0x01, 0x22,
+ 0x27, 0x24, 0x11, 0x33, 0x10, 0x05, 0x16, 0x33, 0x02, 0xc4, 0xaf, 0xb0,
+ 0xfe, 0xa0, 0x6a, 0x01, 0x2b, 0x95, 0x95, 0xfe, 0xff, 0x71, 0xe2, 0x01,
+ 0xc2, 0xfe, 0x81, 0xc0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x64,
+ 0x02, 0x14, 0x05, 0xe4, 0x05, 0x29, 0x00, 0x11, 0x00, 0x00, 0x13, 0x10,
+ 0x25, 0x36, 0x33, 0x32, 0x17, 0x04, 0x11, 0x23, 0x10, 0x25, 0x26, 0x23,
+ 0x22, 0x07, 0x04, 0x11, 0x65, 0x01, 0x60, 0xaf, 0xb0, 0xb0, 0xb0, 0x01,
+ 0x60, 0x6a, 0xfe, 0xd4, 0x94, 0x96, 0x96, 0x94, 0xfe, 0xd4, 0x02, 0x14,
+ 0x01, 0xc2, 0xe2, 0x71, 0x71, 0xe2, 0xfe, 0x3e, 0x01, 0x7f, 0xc0, 0x60,
+ 0x60, 0xc0, 0xfe, 0x81, 0x00, 0x01, 0x00, 0x64, 0xfe, 0xff, 0x05, 0xe4,
+ 0x02, 0x14, 0x00, 0x12, 0x00, 0x00, 0x13, 0x30, 0x33, 0x10, 0x05, 0x16,
+ 0x33, 0x32, 0x37, 0x24, 0x11, 0x33, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27,
+ 0x24, 0x65, 0x69, 0x01, 0x2c, 0x94, 0x96, 0x96, 0x94, 0x01, 0x2c, 0x6a,
+ 0xfe, 0xa0, 0xb0, 0xb0, 0xb0, 0xaf, 0xfe, 0xa0, 0x02, 0x14, 0xfe, 0x81,
+ 0xc0, 0x60, 0x60, 0xc0, 0x01, 0x7f, 0xfe, 0x3e, 0xe2, 0x71, 0x71, 0xe2,
+ 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x00, 0x17, 0x01, 0x11, 0x05, 0x05, 0x7f, 0xfc, 0x06, 0x20, 0xf9,
+ 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x00, 0x17, 0x11, 0x01, 0x05, 0x05, 0x7f,
+ 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02, 0x00, 0x00, 0x17, 0x11,
+ 0x21, 0x05, 0x05, 0x7f, 0xfc, 0x06, 0x20, 0x00, 0x00, 0x01, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02, 0x00, 0x00, 0x13, 0x21,
+ 0x11, 0x05, 0x05, 0x7f, 0x05, 0x24, 0xf9, 0xe0, 0x00, 0x02, 0x01, 0x14,
+ 0x01, 0xd1, 0x03, 0x2b, 0x04, 0x21, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x00,
+ 0x01, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x01, 0x49,
+ 0x7d, 0xb4, 0x7c, 0x7c, 0x59, 0x5b, 0x7d, 0x35, 0x9c, 0x71, 0x70, 0x9a,
+ 0x9b, 0xe1, 0x9b, 0x02, 0xfa, 0x64, 0x8a, 0x8a, 0x64, 0x63, 0x89, 0x89,
+ 0x63, 0x7c, 0xab, 0xab, 0x7c, 0x7d, 0xac, 0xac, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x17, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0xa7, 0x05, 0x7f, 0xfd,
+ 0x40, 0x02, 0x5a, 0xfd, 0xa6, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x05,
+ 0x3c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11,
+ 0x25, 0x21, 0x11, 0x21, 0xa7, 0x05, 0x7f, 0xfa, 0xe8, 0x02, 0x58, 0xfd,
+ 0xa8, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x05, 0x3c, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0xa7,
+ 0x05, 0x7f, 0xfa, 0xe8, 0x04, 0xb2, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x72,
+ 0x05, 0x3c, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11,
+ 0x25, 0x01, 0x21, 0xa7, 0x05, 0x7f, 0xfa, 0xe8, 0x04, 0xb2, 0xfb, 0x4e,
+ 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x05, 0x3c, 0x00, 0x03, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x01, 0x21,
+ 0x11, 0x21, 0xa7, 0x05, 0x7f, 0xfd, 0x74, 0x02, 0x26, 0xfd, 0xda, 0xfd,
+ 0x74, 0x02, 0x25, 0xfd, 0xdb, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x05,
+ 0x3c, 0xfa, 0xc4, 0x05, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x0d,
+ 0x00, 0x00, 0x00, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x21,
+ 0x09, 0x03, 0x02, 0x3f, 0x4e, 0x70, 0x4d, 0x4d, 0x71, 0xfe, 0x13, 0x04,
+ 0x4b, 0xfd, 0xda, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0x01, 0x2c, 0x7c,
+ 0x56, 0x56, 0x7c, 0x56, 0xfe, 0xa0, 0x04, 0xca, 0xfa, 0xc4, 0x06, 0x20,
+ 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x05, 0x21, 0x09, 0x03,
+ 0x02, 0xc4, 0x02, 0x26, 0xfd, 0xda, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0,
+ 0x8a, 0x04, 0xca, 0xfa, 0xc4, 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x00, 0x17, 0x21, 0x11, 0x09, 0x02, 0x9f, 0x02, 0x25,
+ 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0x8a, 0x04, 0xca, 0xfa, 0xc4, 0x06,
+ 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x02, 0x00, 0x64, 0xfe, 0x00, 0x07, 0xaa,
+ 0x06, 0x28, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00, 0x12, 0x10, 0x01, 0x16,
+ 0x20, 0x37, 0x00, 0x10, 0x01, 0x26, 0x20, 0x07, 0x00, 0x10, 0x01, 0x36,
+ 0x20, 0x17, 0x00, 0x10, 0x01, 0x06, 0x20, 0x27, 0xd9, 0x01, 0x98, 0xcb,
+ 0x01, 0x97, 0xcb, 0x01, 0x98, 0xfe, 0x68, 0xcb, 0xfe, 0x69, 0xcb, 0xfd,
+ 0xf4, 0x01, 0xd1, 0xe9, 0x01, 0xd1, 0xe9, 0x01, 0xd1, 0xfe, 0x2f, 0xe9,
+ 0xfe, 0x2f, 0xe9, 0x04, 0x1e, 0xfb, 0xec, 0xfe, 0xfb, 0x83, 0x83, 0x01,
+ 0x05, 0x04, 0x14, 0x01, 0x05, 0x83, 0x83, 0xfa, 0x9d, 0x04, 0xa8, 0x01,
+ 0x2a, 0x96, 0x96, 0xfe, 0xd6, 0xfb, 0x58, 0xfe, 0xd6, 0x96, 0x96, 0x00,
+ 0x00, 0x03, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x05,
+ 0x00, 0x09, 0x00, 0x0d, 0x00, 0x00, 0x05, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x03, 0x11, 0x21, 0x11, 0x01, 0x21, 0x11, 0x21, 0x01, 0x0e, 0x04, 0xb2,
+ 0xfd, 0xda, 0xfd, 0x74, 0x67, 0x05, 0x7f, 0xfa, 0xe8, 0x02, 0x25, 0xfd,
+ 0xdb, 0x8a, 0x05, 0x3c, 0xfd, 0x29, 0xfd, 0x29, 0x06, 0x20, 0xf9, 0xe0,
+ 0x03, 0x49, 0x02, 0x65, 0x00, 0x03, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x21, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21,
+ 0x01, 0x0e, 0x02, 0x8c, 0x02, 0x26, 0xfb, 0x4e, 0x67, 0x05, 0x7f, 0xfa,
+ 0xe8, 0x02, 0x25, 0xfd, 0xdb, 0x02, 0x4d, 0xfd, 0x29, 0x05, 0x3c, 0xfa,
+ 0x52, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x02, 0x65, 0x00, 0x03, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0d,
+ 0x00, 0x00, 0x05, 0x21, 0x11, 0x21, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11,
+ 0x25, 0x21, 0x11, 0x21, 0x01, 0x0e, 0x02, 0x25, 0x02, 0x8d, 0xfb, 0x4e,
+ 0x67, 0x05, 0x7f, 0xfd, 0x74, 0x02, 0x26, 0xfd, 0xda, 0x8a, 0x02, 0xd7,
+ 0x02, 0x65, 0xfa, 0x52, 0x06, 0x20, 0xf9, 0xe0, 0x72, 0x02, 0x65, 0x00,
+ 0x00, 0x03, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x05,
+ 0x00, 0x09, 0x00, 0x0d, 0x00, 0x00, 0x05, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x03, 0x11, 0x21, 0x11, 0x01, 0x21, 0x11, 0x21, 0x01, 0x0e, 0x04, 0xb2,
+ 0xfd, 0x73, 0xfd, 0xdb, 0x67, 0x05, 0x7f, 0xfd, 0x74, 0x02, 0x26, 0xfd,
+ 0xda, 0x8a, 0x02, 0x65, 0x02, 0xd7, 0xfa, 0x52, 0x06, 0x20, 0xf9, 0xe0,
+ 0x03, 0x49, 0x02, 0x65, 0x00, 0x03, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4,
+ 0x05, 0x20, 0x00, 0x0d, 0x00, 0x13, 0x00, 0x20, 0x00, 0x00, 0x12, 0x10,
+ 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x23, 0x22, 0x24,
+ 0x01, 0x06, 0x07, 0x04, 0x03, 0x21, 0x05, 0x12, 0x05, 0x16, 0x33, 0x32,
+ 0x37, 0x24, 0x10, 0x25, 0x26, 0x27, 0x11, 0x65, 0xbc, 0x01, 0x47, 0xbd,
+ 0xbc, 0x01, 0x46, 0xbd, 0xbd, 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x01,
+ 0xcf, 0x7b, 0x7b, 0xfe, 0xeb, 0x15, 0x02, 0x20, 0xfd, 0xe0, 0x15, 0x01,
+ 0x15, 0x95, 0x95, 0x95, 0x95, 0x01, 0x2c, 0xfe, 0xd4, 0x7b, 0x7c, 0x01,
+ 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e, 0xfe,
+ 0x95, 0xd2, 0xd2, 0x04, 0xda, 0x0e, 0x4f, 0xb2, 0xfe, 0xac, 0x72, 0xfe,
+ 0xac, 0xb2, 0x60, 0x60, 0xc1, 0x02, 0xfc, 0xc1, 0x4f, 0x0e, 0xfd, 0x2b,
+ 0x00, 0x03, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0d,
+ 0x00, 0x1a, 0x00, 0x20, 0x00, 0x00, 0x12, 0x10, 0x12, 0x24, 0x33, 0x32,
+ 0x04, 0x12, 0x10, 0x02, 0x04, 0x23, 0x22, 0x24, 0x05, 0x36, 0x37, 0x24,
+ 0x10, 0x25, 0x26, 0x23, 0x22, 0x07, 0x04, 0x03, 0x21, 0x05, 0x12, 0x05,
+ 0x16, 0x17, 0x11, 0x65, 0xbc, 0x01, 0x47, 0xbd, 0xbc, 0x01, 0x46, 0xbd,
+ 0xbd, 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x02, 0x36, 0x7c, 0x7b, 0x01,
+ 0x2c, 0xfe, 0xd4, 0x95, 0x95, 0x95, 0x95, 0xfe, 0xeb, 0x15, 0x02, 0x87,
+ 0xfd, 0x79, 0x15, 0x01, 0x15, 0x7b, 0x7b, 0x01, 0x41, 0x01, 0xa2, 0x01,
+ 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2, 0x5e,
+ 0x0e, 0x4f, 0xc1, 0x02, 0xfc, 0xc1, 0x60, 0x60, 0xb2, 0xfe, 0xac, 0x72,
+ 0xfe, 0xac, 0xb2, 0x4f, 0x0e, 0x02, 0x63, 0x00, 0x00, 0x03, 0x00, 0x64,
+ 0xff, 0x04, 0x05, 0xe4, 0x05, 0x20, 0x00, 0x0d, 0x00, 0x1a, 0x00, 0x20,
+ 0x00, 0x00, 0x12, 0x10, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x10, 0x02,
+ 0x04, 0x23, 0x22, 0x24, 0x02, 0x10, 0x05, 0x16, 0x17, 0x11, 0x21, 0x02,
+ 0x25, 0x26, 0x23, 0x22, 0x07, 0x01, 0x36, 0x37, 0x24, 0x13, 0x21, 0x65,
+ 0xbc, 0x01, 0x47, 0xbd, 0xbc, 0x01, 0x46, 0xbd, 0xbd, 0xfe, 0xba, 0xbc,
+ 0xbd, 0xfe, 0xb9, 0x53, 0x01, 0x2c, 0x7b, 0x7b, 0x02, 0x88, 0x14, 0xfe,
+ 0xea, 0x95, 0x95, 0x95, 0x95, 0x01, 0x5d, 0x7c, 0x7b, 0x01, 0x16, 0x14,
+ 0xfd, 0xdf, 0x01, 0x41, 0x01, 0xa2, 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95,
+ 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2, 0x03, 0xbc, 0xfd, 0x04, 0xc1, 0x4f,
+ 0x0e, 0x02, 0xd5, 0x01, 0x54, 0xb2, 0x60, 0x60, 0xfb, 0x25, 0x0e, 0x4f,
+ 0xb2, 0x01, 0x54, 0x00, 0x00, 0x03, 0x00, 0x64, 0xff, 0x04, 0x05, 0xe4,
+ 0x05, 0x20, 0x00, 0x0d, 0x00, 0x1a, 0x00, 0x20, 0x00, 0x00, 0x12, 0x10,
+ 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x23, 0x22, 0x24,
+ 0x02, 0x10, 0x05, 0x16, 0x33, 0x32, 0x37, 0x24, 0x13, 0x21, 0x11, 0x06,
+ 0x07, 0x01, 0x02, 0x25, 0x26, 0x27, 0x11, 0x65, 0xbc, 0x01, 0x47, 0xbd,
+ 0xbc, 0x01, 0x46, 0xbd, 0xbd, 0xfe, 0xba, 0xbc, 0xbd, 0xfe, 0xb9, 0x53,
+ 0x01, 0x2c, 0x95, 0x95, 0x95, 0x95, 0x01, 0x16, 0x14, 0xfd, 0x78, 0x7b,
+ 0x7b, 0x03, 0x7e, 0x14, 0xfe, 0xea, 0x7b, 0x7c, 0x01, 0x41, 0x01, 0xa2,
+ 0x01, 0x6b, 0xd2, 0xd2, 0xfe, 0x95, 0xfe, 0x5e, 0xfe, 0x95, 0xd2, 0xd2,
+ 0x03, 0xbc, 0xfd, 0x04, 0xc1, 0x60, 0x60, 0xb2, 0x01, 0x54, 0x02, 0xd5,
+ 0x0e, 0x4f, 0xfd, 0xfa, 0x01, 0x54, 0xb2, 0x4f, 0x0e, 0xfd, 0x9d, 0x00,
+ 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x00, 0x37, 0x01, 0x21, 0x03, 0x11, 0x21, 0x6c, 0x04,
+ 0x18, 0xfb, 0xe8, 0x67, 0x05, 0x7f, 0x20, 0x04, 0x92, 0xfa, 0x52, 0x06,
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x09, 0x01, 0x11, 0x25,
+ 0x21, 0x11, 0x01, 0x06, 0x04, 0x18, 0xfa, 0xe7, 0x05, 0x7f, 0x04, 0xb2,
+ 0xfb, 0x6e, 0x04, 0x92, 0x72, 0xf9, 0xe0, 0x00, 0x00, 0x02, 0x00, 0x05,
+ 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00,
+ 0x17, 0x21, 0x01, 0x03, 0x11, 0x01, 0x6c, 0x04, 0x18, 0xfb, 0xe8, 0x67,
+ 0x05, 0x7f, 0x8a, 0x04, 0x92, 0xfa, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x79, 0x05, 0x53, 0x04, 0xaf, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x05, 0x21, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11,
+ 0x01, 0x0e, 0x03, 0xde, 0xfc, 0x22, 0x67, 0x04, 0xac, 0x15, 0x04, 0x52,
+ 0xfb, 0x3c, 0x05, 0x36, 0xfa, 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0x79, 0x05, 0x53, 0x04, 0xaf, 0x00, 0x03, 0x00, 0x00, 0x17, 0x11,
+ 0x21, 0x11, 0xa7, 0x04, 0xac, 0x87, 0x05, 0x36, 0xfa, 0xca, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0xdd, 0x04, 0x9f, 0x04, 0x4b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x25, 0x21, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11,
+ 0x01, 0x0e, 0x03, 0x2a, 0xfc, 0xd6, 0x67, 0x03, 0xf8, 0x4f, 0x03, 0x8a,
+ 0xfc, 0x04, 0x04, 0x6e, 0xfb, 0x92, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xff, 0xdd, 0x04, 0x9f, 0x04, 0x4b, 0x00, 0x03, 0x00, 0x00, 0x17, 0x11,
+ 0x21, 0x11, 0xa7, 0x03, 0xf8, 0x23, 0x04, 0x6e, 0xfb, 0x92, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x00, 0x05, 0x21, 0x11, 0x09, 0x01, 0x11, 0x01, 0x06,
+ 0x04, 0x18, 0xfa, 0xe7, 0x05, 0x7f, 0x8a, 0x04, 0x92, 0xfa, 0xfc, 0x06,
+ 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x09, 0x00, 0x99, 0x00, 0x00, 0x05, 0xda,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x0c, 0x00, 0x13, 0x00, 0x22, 0x00, 0x2a,
+ 0x00, 0x32, 0x00, 0x3a, 0x00, 0x41, 0x00, 0x49, 0x00, 0x00, 0x01, 0x33,
+ 0x17, 0x11, 0x07, 0x23, 0x27, 0x11, 0x05, 0x17, 0x15, 0x07, 0x27, 0x25,
+ 0x17, 0x07, 0x23, 0x26, 0x27, 0x35, 0x05, 0x32, 0x1f, 0x01, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x01, 0x21, 0x17,
+ 0x15, 0x07, 0x21, 0x27, 0x35, 0x25, 0x21, 0x17, 0x15, 0x07, 0x21, 0x27,
+ 0x35, 0x03, 0x33, 0x16, 0x17, 0x15, 0x07, 0x27, 0x35, 0x25, 0x33, 0x17,
+ 0x15, 0x07, 0x27, 0x35, 0x25, 0x33, 0x17, 0x11, 0x07, 0x23, 0x27, 0x11,
+ 0x03, 0x1b, 0x45, 0x05, 0x05, 0x45, 0x06, 0x01, 0xff, 0x34, 0xdf, 0x37,
+ 0xfd, 0x4a, 0xe3, 0x37, 0x03, 0xb4, 0x29, 0x01, 0xf8, 0xbc, 0x50, 0x0c,
+ 0xac, 0x3f, 0x2a, 0x9d, 0x58, 0x20, 0xa5, 0x3c, 0xfd, 0x90, 0x01, 0x31,
+ 0x06, 0x06, 0xfe, 0xcf, 0x05, 0x04, 0x03, 0x01, 0x36, 0x07, 0x07, 0xfe,
+ 0xca, 0x06, 0x3f, 0x02, 0x79, 0x66, 0x37, 0xdf, 0xfd, 0xf0, 0x03, 0x35,
+ 0xde, 0x37, 0x01, 0xe5, 0x45, 0x05, 0x05, 0x45, 0x06, 0x05, 0xd5, 0x06,
+ 0xfe, 0xa2, 0x06, 0x06, 0x01, 0x5e, 0x9b, 0x3f, 0x03, 0xfe, 0x3f, 0xee,
+ 0xfe, 0x40, 0xc7, 0x37, 0x04, 0xb5, 0xe1, 0x60, 0xbd, 0x64, 0x17, 0xa7,
+ 0x3f, 0x5c, 0xb5, 0x67, 0x1b, 0xfe, 0xed, 0x06, 0x4f, 0x06, 0x06, 0x4f,
+ 0x06, 0x06, 0x4f, 0x06, 0x06, 0x4f, 0xfe, 0xe8, 0x82, 0x79, 0x03, 0x3e,
+ 0xfd, 0x04, 0x2a, 0x3c, 0x03, 0xfe, 0x3f, 0x04, 0x76, 0x06, 0xfe, 0xa2,
+ 0x06, 0x06, 0x01, 0x5e, 0x00, 0x01, 0x00, 0x5d, 0xff, 0xfb, 0x06, 0xd5,
+ 0x02, 0xe1, 0x00, 0x22, 0x00, 0x00, 0x01, 0x33, 0x32, 0x1f, 0x01, 0x36,
+ 0x33, 0x16, 0x15, 0x14, 0x07, 0x16, 0x1d, 0x01, 0x06, 0x23, 0x21, 0x35,
+ 0x32, 0x37, 0x36, 0x3b, 0x01, 0x27, 0x34, 0x3f, 0x01, 0x17, 0x27, 0x34,
+ 0x3f, 0x01, 0x32, 0x17, 0x36, 0x04, 0x76, 0x14, 0xc3, 0x69, 0x13, 0x23,
+ 0x31, 0x7a, 0x1f, 0x5d, 0x11, 0x48, 0xf9, 0xe2, 0x33, 0x79, 0x29, 0x2f,
+ 0x1d, 0x0a, 0x90, 0x23, 0x26, 0x05, 0xb8, 0x3c, 0x2b, 0x2a, 0x6c, 0x02,
+ 0xe1, 0xe8, 0x56, 0x23, 0x1b, 0x6d, 0x31, 0x34, 0x17, 0x48, 0x1a, 0x65,
+ 0x09, 0xae, 0x27, 0x31, 0x6c, 0x31, 0x04, 0x04, 0x0c, 0x93, 0x5a, 0x08,
+ 0x2b, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x06, 0x1b,
+ 0x05, 0xd5, 0x00, 0x3f, 0x00, 0x00, 0x01, 0x33, 0x17, 0x15, 0x33, 0x20,
+ 0x13, 0x16, 0x1d, 0x01, 0x23, 0x26, 0x27, 0x26, 0x2b, 0x01, 0x22, 0x07,
+ 0x15, 0x14, 0x07, 0x27, 0x26, 0x23, 0x11, 0x14, 0x0f, 0x01, 0x22, 0x2f,
+ 0x01, 0x35, 0x37, 0x33, 0x17, 0x15, 0x16, 0x3b, 0x01, 0x32, 0x3f, 0x01,
+ 0x11, 0x22, 0x07, 0x06, 0x23, 0x27, 0x35, 0x37, 0x23, 0x26, 0x27, 0x23,
+ 0x22, 0x0f, 0x01, 0x23, 0x35, 0x36, 0x37, 0x36, 0x21, 0x35, 0x03, 0x30,
+ 0x34, 0x06, 0x02, 0x01, 0x8c, 0xfc, 0x26, 0x01, 0x14, 0x11, 0x20, 0x33,
+ 0x28, 0x87, 0x64, 0x08, 0x1d, 0x88, 0x7b, 0x5f, 0x1b, 0x52, 0x21, 0x02,
+ 0x05, 0x27, 0x05, 0x09, 0x38, 0x09, 0x32, 0x12, 0x05, 0xbe, 0x4d, 0x10,
+ 0x0c, 0x06, 0x06, 0x04, 0x3c, 0xb1, 0x3d, 0x59, 0x1e, 0x12, 0x03, 0x34,
+ 0xad, 0xd7, 0x01, 0x19, 0x05, 0xd5, 0x06, 0x7d, 0xfe, 0x1a, 0x56, 0x0d,
+ 0x08, 0x0f, 0x2e, 0x18, 0x65, 0x33, 0x0f, 0x02, 0x42, 0x3d, 0xfd, 0x53,
+ 0x65, 0x18, 0x02, 0x60, 0x1c, 0x1a, 0x06, 0x06, 0x0c, 0x65, 0x39, 0x2a,
+ 0x02, 0xa4, 0x3d, 0x39, 0x06, 0x0c, 0x33, 0x40, 0x1b, 0x3d, 0x12, 0x02,
+ 0x90, 0xda, 0xdf, 0x7d, 0x00, 0x1a, 0x00, 0x99, 0xff, 0xff, 0x05, 0xdc,
+ 0x07, 0x6b, 0x00, 0x0d, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x25, 0x00, 0x43,
+ 0x00, 0x60, 0x00, 0x8c, 0x00, 0xb7, 0x00, 0xe3, 0x01, 0x0e, 0x01, 0x3a,
+ 0x01, 0x64, 0x01, 0x90, 0x01, 0xbb, 0x01, 0xe6, 0x02, 0x0f, 0x02, 0x3b,
+ 0x02, 0x65, 0x02, 0x6d, 0x02, 0x75, 0x02, 0x7d, 0x02, 0xa9, 0x02, 0xd3,
+ 0x02, 0xfd, 0x03, 0x27, 0x03, 0x53, 0x00, 0x00, 0x01, 0x16, 0x33, 0x32,
+ 0x37, 0x33, 0x06, 0x07, 0x26, 0x27, 0x33, 0x16, 0x33, 0x32, 0x37, 0x26,
+ 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x07, 0x26, 0x27, 0x36, 0x37, 0x16,
+ 0x17, 0x06, 0x03, 0x26, 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x27, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x32,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x33, 0x06, 0x13, 0x36, 0x37, 0x32, 0x1f, 0x01, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x20, 0x24, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x34, 0x37, 0x01, 0x17, 0x27,
+ 0x26, 0x33, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f,
+ 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23,
+ 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27,
+ 0x26, 0x35, 0x34, 0x33, 0x32, 0x01, 0x17, 0x27, 0x26, 0x32, 0x0f, 0x01,
+ 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14,
+ 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06,
+ 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32,
+ 0x05, 0x17, 0x27, 0x26, 0x33, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32,
+ 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01,
+ 0x17, 0x16, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34,
+ 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x13, 0x17, 0x27, 0x26,
+ 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23, 0x22, 0x35,
+ 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35,
+ 0x34, 0x33, 0x32, 0x01, 0x17, 0x27, 0x26, 0x33, 0x32, 0x0f, 0x01, 0x37,
+ 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x2f, 0x01, 0x17, 0x14, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23,
+ 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x01,
+ 0x17, 0x27, 0x26, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14,
+ 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x14,
+ 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27,
+ 0x26, 0x35, 0x34, 0x33, 0x32, 0x05, 0x17, 0x27, 0x34, 0x33, 0x32, 0x15,
+ 0x07, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15,
+ 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23, 0x22, 0x35, 0x37, 0x07,
+ 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33,
+ 0x32, 0x03, 0x17, 0x27, 0x26, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32,
+ 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01,
+ 0x17, 0x16, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34,
+ 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x05, 0x17, 0x27, 0x26,
+ 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23, 0x22, 0x35,
+ 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35,
+ 0x34, 0x33, 0x32, 0x1f, 0x01, 0x27, 0x26, 0x32, 0x0f, 0x01, 0x37, 0x36,
+ 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x14, 0x23, 0x22, 0x2f,
+ 0x01, 0x17, 0x14, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x34,
+ 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x37, 0x17, 0x27, 0x34,
+ 0x33, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01,
+ 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x23, 0x22,
+ 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26,
+ 0x35, 0x34, 0x33, 0x32, 0x37, 0x17, 0x27, 0x26, 0x32, 0x0f, 0x01, 0x37,
+ 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x2f, 0x01, 0x17, 0x16, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22,
+ 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x13, 0x26,
+ 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x05, 0x26, 0x27, 0x36, 0x37, 0x16,
+ 0x17, 0x06, 0x17, 0x26, 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x01, 0x17,
+ 0x27, 0x26, 0x33, 0x32, 0x15, 0x07, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14,
+ 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16,
+ 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01,
+ 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x01, 0x17, 0x27, 0x26, 0x32, 0x0f,
+ 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15,
+ 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x14, 0x22, 0x35, 0x37, 0x07, 0x06,
+ 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32,
+ 0x05, 0x17, 0x27, 0x26, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32, 0x15,
+ 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17,
+ 0x16, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01,
+ 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x01, 0x17, 0x27, 0x26, 0x32, 0x0f,
+ 0x01, 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15,
+ 0x14, 0x23, 0x22, 0x2f, 0x01, 0x17, 0x16, 0x22, 0x35, 0x37, 0x07, 0x06,
+ 0x23, 0x22, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32,
+ 0x01, 0x17, 0x27, 0x26, 0x33, 0x32, 0x0f, 0x01, 0x37, 0x36, 0x33, 0x32,
+ 0x15, 0x14, 0x0f, 0x01, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x2f, 0x01,
+ 0x17, 0x16, 0x23, 0x22, 0x35, 0x37, 0x07, 0x06, 0x23, 0x22, 0x35, 0x34,
+ 0x3f, 0x01, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x03, 0x96, 0x07, 0x07,
+ 0x3c, 0x16, 0x17, 0x05, 0x73, 0x71, 0x08, 0x15, 0x21, 0x36, 0x07, 0x6e,
+ 0x26, 0x01, 0x03, 0x26, 0x23, 0x03, 0x03, 0xf9, 0x25, 0x02, 0x02, 0x27,
+ 0x24, 0x03, 0x03, 0x3a, 0x22, 0x02, 0x03, 0x23, 0x21, 0x01, 0x01, 0xb6,
+ 0x70, 0xde, 0x9e, 0x9c, 0xe0, 0x70, 0x5b, 0x7d, 0x02, 0x03, 0x36, 0x28,
+ 0x3b, 0x71, 0x54, 0x52, 0x7d, 0x3c, 0x28, 0x32, 0x82, 0x13, 0x17, 0x85,
+ 0x77, 0x2c, 0x02, 0x4a, 0x44, 0x12, 0x16, 0x64, 0x4e, 0x80, 0xff, 0xfe,
+ 0x92, 0xff, 0x00, 0x80, 0x53, 0x6a, 0x12, 0x12, 0x44, 0x44, 0xfd, 0xe5,
+ 0x25, 0x05, 0x01, 0x0d, 0x10, 0x02, 0x05, 0x24, 0x03, 0x04, 0x0e, 0x07,
+ 0x2b, 0x2a, 0x08, 0x0e, 0x04, 0x03, 0x24, 0x05, 0x01, 0x0f, 0x0c, 0x04,
+ 0x24, 0x02, 0x05, 0x0c, 0x08, 0x29, 0x2c, 0x06, 0x0d, 0x05, 0x01, 0x0a,
+ 0x21, 0x05, 0x02, 0x1b, 0x02, 0x05, 0x21, 0x04, 0x03, 0x0d, 0x06, 0x28,
+ 0x26, 0x06, 0x0b, 0x04, 0x03, 0x1f, 0x03, 0x01, 0x0c, 0x0c, 0x04, 0x20,
+ 0x03, 0x03, 0x0c, 0x07, 0x25, 0x26, 0x07, 0x0d, 0x03, 0x03, 0x0f, 0x21,
+ 0x05, 0x02, 0x0d, 0x0e, 0x01, 0x06, 0x21, 0x03, 0x05, 0x0b, 0x06, 0x27,
+ 0x25, 0x07, 0x0a, 0x06, 0x02, 0x20, 0x05, 0x01, 0x0e, 0x0b, 0x04, 0x20,
+ 0x03, 0x03, 0x0d, 0x08, 0x25, 0x26, 0x07, 0x0d, 0x03, 0x5c, 0x21, 0x06,
+ 0x01, 0x1b, 0x02, 0x06, 0x22, 0x03, 0x04, 0x0c, 0x06, 0x27, 0x25, 0x07,
+ 0x0b, 0x06, 0x01, 0x21, 0x05, 0x01, 0x0d, 0x0c, 0x05, 0x20, 0x03, 0x04,
+ 0x0b, 0x07, 0x25, 0x26, 0x07, 0x0c, 0x04, 0xfc, 0x37, 0x11, 0x02, 0x01,
+ 0x06, 0x07, 0x01, 0x02, 0x12, 0x01, 0x01, 0x08, 0x03, 0x16, 0x15, 0x04,
+ 0x08, 0x01, 0x01, 0x11, 0x01, 0x06, 0x05, 0x02, 0x11, 0x02, 0x03, 0x05,
+ 0x03, 0x15, 0x16, 0x02, 0x07, 0x01, 0x02, 0xc8, 0x12, 0x02, 0x01, 0x10,
+ 0x01, 0x03, 0x13, 0x02, 0x02, 0x08, 0x04, 0x17, 0x16, 0x04, 0x07, 0x02,
+ 0x02, 0x13, 0x03, 0x0e, 0x02, 0x12, 0x02, 0x02, 0x07, 0x03, 0x17, 0x17,
+ 0x04, 0x08, 0x02, 0xfd, 0x0e, 0x12, 0x04, 0x06, 0x08, 0x04, 0x11, 0x03,
+ 0x02, 0x07, 0x05, 0x14, 0x14, 0x04, 0x06, 0x02, 0x03, 0x11, 0x03, 0x01,
+ 0x08, 0x06, 0x04, 0x12, 0x02, 0x02, 0x06, 0x03, 0x14, 0x14, 0x04, 0x07,
+ 0x02, 0x53, 0x12, 0x04, 0x01, 0x0f, 0x01, 0x03, 0x11, 0x03, 0x02, 0x06,
+ 0x03, 0x15, 0x14, 0x04, 0x06, 0x02, 0x03, 0x11, 0x03, 0x01, 0x07, 0x07,
+ 0x03, 0x11, 0x02, 0x02, 0x07, 0x05, 0x13, 0x13, 0x05, 0x07, 0x02, 0x01,
+ 0x00, 0x11, 0x02, 0x01, 0x0f, 0x01, 0x03, 0x11, 0x01, 0x03, 0x07, 0x04,
+ 0x14, 0x13, 0x05, 0x07, 0x03, 0x01, 0x11, 0x03, 0x01, 0x08, 0x06, 0x02,
+ 0x11, 0x02, 0x01, 0x07, 0x04, 0x14, 0x15, 0x03, 0x07, 0x01, 0x64, 0x11,
+ 0x02, 0x02, 0x0f, 0x01, 0x03, 0x12, 0x01, 0x02, 0x07, 0x03, 0x15, 0x15,
+ 0x03, 0x07, 0x02, 0x01, 0x11, 0x02, 0x06, 0x06, 0x02, 0x11, 0x02, 0x03,
+ 0x05, 0x04, 0x13, 0x14, 0x03, 0x05, 0x03, 0xde, 0x13, 0x02, 0x06, 0x08,
+ 0x01, 0x03, 0x14, 0x01, 0x04, 0x07, 0x05, 0x17, 0x16, 0x06, 0x07, 0x04,
+ 0x02, 0x12, 0x02, 0x01, 0x08, 0x06, 0x02, 0x13, 0x02, 0x02, 0x07, 0x04,
+ 0x16, 0x17, 0x03, 0x07, 0x02, 0x52, 0x13, 0x02, 0x01, 0x10, 0x01, 0x04,
+ 0x14, 0x02, 0x02, 0x07, 0x03, 0x17, 0x16, 0x04, 0x07, 0x02, 0x02, 0x14,
+ 0x03, 0x01, 0x0e, 0x02, 0x13, 0x01, 0x03, 0x07, 0x04, 0x17, 0x18, 0x03,
+ 0x08, 0x02, 0x9c, 0x21, 0x02, 0x02, 0x25, 0x1f, 0x03, 0x03, 0xfe, 0xd8,
+ 0x22, 0x02, 0x03, 0x23, 0x21, 0x01, 0x01, 0xe3, 0x22, 0x02, 0x02, 0x25,
+ 0x1f, 0x03, 0x03, 0x01, 0x3d, 0x20, 0x05, 0x01, 0x0d, 0x0d, 0x06, 0x20,
+ 0x03, 0x05, 0x0b, 0x06, 0x26, 0x25, 0x07, 0x0b, 0x05, 0x03, 0x20, 0x04,
+ 0x02, 0x0d, 0x0c, 0x05, 0x20, 0x03, 0x04, 0x0d, 0x08, 0x26, 0x27, 0x07,
+ 0x0d, 0x04, 0xfc, 0xb3, 0x12, 0x02, 0x01, 0x10, 0x01, 0x04, 0x13, 0x03,
+ 0x02, 0x08, 0x04, 0x17, 0x16, 0x04, 0x07, 0x02, 0x03, 0x13, 0x04, 0x0e,
+ 0x02, 0x12, 0x02, 0x02, 0x07, 0x03, 0x17, 0x18, 0x03, 0x08, 0x02, 0xfe,
+ 0x7c, 0x14, 0x03, 0x01, 0x10, 0x01, 0x02, 0x13, 0x01, 0x02, 0x07, 0x02,
+ 0x18, 0x17, 0x03, 0x07, 0x02, 0x01, 0x13, 0x01, 0x01, 0x0e, 0x03, 0x14,
+ 0x01, 0x02, 0x08, 0x05, 0x16, 0x17, 0x04, 0x08, 0x02, 0x03, 0xc5, 0x14,
+ 0x03, 0x01, 0x10, 0x01, 0x03, 0x13, 0x02, 0x02, 0x07, 0x02, 0x18, 0x17,
+ 0x03, 0x07, 0x02, 0x02, 0x13, 0x02, 0x01, 0x0e, 0x03, 0x14, 0x01, 0x03,
+ 0x07, 0x05, 0x16, 0x17, 0x04, 0x08, 0x02, 0xfc, 0xa4, 0x22, 0x05, 0x02,
+ 0x0d, 0x0e, 0x02, 0x05, 0x21, 0x03, 0x05, 0x0b, 0x06, 0x27, 0x25, 0x07,
+ 0x0a, 0x06, 0x02, 0x20, 0x04, 0x01, 0x0d, 0x0b, 0x04, 0x21, 0x02, 0x03,
+ 0x0d, 0x07, 0x26, 0x26, 0x08, 0x0e, 0x03, 0x03, 0x89, 0x01, 0x26, 0x45,
+ 0x05, 0x07, 0x43, 0x26, 0x56, 0x02, 0x2a, 0x2c, 0x03, 0x03, 0x29, 0x2d,
+ 0x04, 0x02, 0x29, 0x2d, 0x03, 0x03, 0x2a, 0x2c, 0xfe, 0x12, 0x02, 0x25,
+ 0x26, 0x02, 0x02, 0x25, 0x26, 0x9e, 0x66, 0x93, 0x91, 0xd0, 0xd0, 0x91,
+ 0x93, 0x66, 0x55, 0x20, 0x33, 0x48, 0x68, 0x66, 0x65, 0x65, 0x66, 0x68,
+ 0x48, 0x32, 0x1e, 0x01, 0xd9, 0x70, 0x18, 0x75, 0x13, 0x5e, 0xe8, 0x51,
+ 0x18, 0x10, 0x1c, 0x46, 0x73, 0xa5, 0xa3, 0xe6, 0xe6, 0xa3, 0xa5, 0x73,
+ 0x4b, 0x1a, 0x0f, 0x16, 0x51, 0xe8, 0x47, 0xfd, 0x68, 0x21, 0x39, 0x0f,
+ 0x0f, 0x39, 0x21, 0x04, 0x11, 0x0b, 0x03, 0x15, 0x16, 0x03, 0x0c, 0x0f,
+ 0x02, 0x21, 0x37, 0x10, 0x10, 0x37, 0x21, 0x02, 0x0f, 0x0c, 0x03, 0x16,
+ 0x15, 0x03, 0x0b, 0x11, 0x01, 0xd1, 0x1f, 0x34, 0x0d, 0x0d, 0x34, 0x1f,
+ 0x03, 0x10, 0x07, 0x05, 0x14, 0x13, 0x03, 0x09, 0x0e, 0x02, 0x1e, 0x32,
+ 0x0f, 0x0f, 0x32, 0x1e, 0x02, 0x0e, 0x09, 0x03, 0x13, 0x14, 0x05, 0x07,
+ 0x10, 0x4b, 0x1f, 0x34, 0x0e, 0x0e, 0x34, 0x1f, 0x03, 0x10, 0x07, 0x03,
+ 0x15, 0x13, 0x04, 0x09, 0x0e, 0x02, 0x1e, 0x32, 0x0e, 0x0e, 0x32, 0x1e,
+ 0x02, 0x0e, 0x09, 0x04, 0x13, 0x15, 0x03, 0x07, 0x10, 0x01, 0x1b, 0x1e,
+ 0x32, 0x0e, 0x0e, 0x32, 0x1e, 0x02, 0x0e, 0x09, 0x04, 0x13, 0x14, 0x03,
+ 0x09, 0x0f, 0x03, 0x1d, 0x31, 0x0e, 0x0e, 0x31, 0x1d, 0x03, 0x0f, 0x09,
+ 0x03, 0x14, 0x13, 0x04, 0x09, 0x0e, 0x02, 0x9a, 0x10, 0x1c, 0x06, 0x06,
+ 0x1c, 0x10, 0x01, 0x07, 0x06, 0x02, 0x09, 0x0b, 0x02, 0x04, 0x08, 0x02,
+ 0x0e, 0x19, 0x07, 0x07, 0x19, 0x0e, 0x02, 0x08, 0x04, 0x02, 0x0b, 0x09,
+ 0x02, 0x06, 0x07, 0xfe, 0xe3, 0x11, 0x1d, 0x0a, 0x0a, 0x1d, 0x11, 0x03,
+ 0x0a, 0x05, 0x01, 0x0d, 0x0a, 0x03, 0x06, 0x07, 0x01, 0x11, 0x1e, 0x07,
+ 0x07, 0x1e, 0x11, 0x01, 0x07, 0x06, 0x03, 0x0a, 0x0d, 0x01, 0x05, 0x0a,
+ 0xa8, 0x10, 0x1c, 0x07, 0x07, 0x1c, 0x10, 0x02, 0x07, 0x06, 0x02, 0x09,
+ 0x0b, 0x02, 0x05, 0x08, 0x02, 0x0f, 0x1a, 0x08, 0x08, 0x1a, 0x0f, 0x02,
+ 0x08, 0x05, 0x02, 0x0b, 0x09, 0x02, 0x06, 0x07, 0x01, 0x18, 0x10, 0x1c,
+ 0x06, 0x06, 0x1c, 0x10, 0x02, 0x08, 0x04, 0x03, 0x0a, 0x0a, 0x02, 0x05,
+ 0x07, 0x01, 0x0f, 0x19, 0x08, 0x08, 0x19, 0x0f, 0x01, 0x07, 0x05, 0x02,
+ 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x18, 0x0f, 0x1b, 0x07, 0x07, 0x1b, 0x0f,
+ 0x02, 0x08, 0x05, 0x01, 0x0a, 0x0b, 0x01, 0x06, 0x07, 0x01, 0x10, 0x1b,
+ 0x08, 0x08, 0x1b, 0x10, 0x01, 0x07, 0x06, 0x01, 0x0b, 0x0a, 0x01, 0x06,
+ 0x07, 0xa1, 0x0f, 0x1b, 0x07, 0x07, 0x1b, 0x0f, 0x01, 0x07, 0x04, 0x01,
+ 0x0c, 0x0a, 0x01, 0x0c, 0x01, 0x0f, 0x1b, 0x07, 0x07, 0x1b, 0x0f, 0x01,
+ 0x0c, 0x01, 0x0a, 0x0c, 0x01, 0x04, 0x07, 0x37, 0x12, 0x1f, 0x07, 0x07,
+ 0x1f, 0x12, 0x01, 0x08, 0x05, 0x02, 0x0c, 0x0c, 0x02, 0x05, 0x08, 0x01,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x1d, 0x12, 0x01, 0x08, 0x05, 0x02, 0x0c, 0x0c,
+ 0x02, 0x05, 0x08, 0xd9, 0x12, 0x1f, 0x07, 0x07, 0x1f, 0x12, 0x01, 0x08,
+ 0x05, 0x02, 0x0b, 0x0c, 0x02, 0x05, 0x0a, 0x03, 0x10, 0x1c, 0x09, 0x09,
+ 0x1c, 0x10, 0x03, 0x0a, 0x05, 0x02, 0x0c, 0x0b, 0x02, 0x06, 0x07, 0xfa,
+ 0xe0, 0x02, 0x25, 0x26, 0x02, 0x02, 0x25, 0x26, 0xe2, 0x02, 0x25, 0x27,
+ 0x02, 0x03, 0x25, 0x26, 0x02, 0x02, 0x25, 0x27, 0x02, 0x03, 0x25, 0x26,
+ 0x01, 0x81, 0x1d, 0x32, 0x0e, 0x0e, 0x32, 0x1d, 0x03, 0x0f, 0x09, 0x03,
+ 0x13, 0x14, 0x03, 0x0a, 0x0e, 0x04, 0x1b, 0x2f, 0x0f, 0x0f, 0x2f, 0x1b,
+ 0x04, 0x0e, 0x0a, 0x03, 0x14, 0x13, 0x03, 0x09, 0x0f, 0x02, 0x67, 0x12,
+ 0x1e, 0x08, 0x08, 0x1e, 0x12, 0x01, 0x0a, 0x04, 0x02, 0x0b, 0x0c, 0x02,
+ 0x06, 0x08, 0x02, 0x11, 0x1d, 0x09, 0x09, 0x1d, 0x11, 0x02, 0x08, 0x06,
+ 0x02, 0x0c, 0x0b, 0x02, 0x04, 0x0a, 0xfb, 0x12, 0x1f, 0x07, 0x07, 0x1f,
+ 0x12, 0x01, 0x08, 0x05, 0x03, 0x0b, 0x0c, 0x02, 0x05, 0x09, 0x01, 0x12,
+ 0x1c, 0x0a, 0x0a, 0x1c, 0x12, 0x01, 0x09, 0x05, 0x02, 0x0c, 0x0b, 0x03,
+ 0x05, 0x08, 0x01, 0x82, 0x11, 0x1e, 0x08, 0x08, 0x1e, 0x11, 0x02, 0x08,
+ 0x07, 0x01, 0x0b, 0x0c, 0x02, 0x05, 0x09, 0x01, 0x11, 0x1c, 0x09, 0x09,
+ 0x1c, 0x11, 0x01, 0x09, 0x05, 0x02, 0x0c, 0x0b, 0x01, 0x07, 0x08, 0xfd,
+ 0x7f, 0x1f, 0x34, 0x0e, 0x0e, 0x34, 0x1f, 0x03, 0x10, 0x07, 0x04, 0x14,
+ 0x13, 0x03, 0x0a, 0x0e, 0x03, 0x1d, 0x32, 0x0e, 0x0e, 0x32, 0x1d, 0x03,
+ 0x0e, 0x0a, 0x03, 0x13, 0x14, 0x04, 0x07, 0x10, 0x00, 0x0f, 0x00, 0x75,
+ 0x00, 0x00, 0x05, 0xff, 0x07, 0x0b, 0x00, 0x17, 0x00, 0x2d, 0x00, 0x3e,
+ 0x00, 0x4f, 0x00, 0x60, 0x00, 0x71, 0x00, 0x82, 0x00, 0x93, 0x00, 0xa4,
+ 0x00, 0xb5, 0x00, 0xc6, 0x00, 0xd7, 0x00, 0xe8, 0x00, 0xf9, 0x01, 0x0a,
+ 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x2b,
+ 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x3f, 0x02, 0x36, 0x33, 0x32, 0x33,
+ 0x16, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x16, 0x33, 0x32,
+ 0x3f, 0x01, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x26, 0x23, 0x22, 0x07, 0x13,
+ 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01,
+ 0x35, 0x34, 0x37, 0x36, 0x13, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x13, 0x32, 0x17,
+ 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34,
+ 0x37, 0x36, 0x13, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x13, 0x32, 0x17, 0x16, 0x1d,
+ 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x3d, 0x01, 0x34, 0x37, 0x36,
+ 0x03, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f,
+ 0x01, 0x35, 0x34, 0x37, 0x36, 0x01, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x37, 0x32,
+ 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35,
+ 0x34, 0x37, 0x36, 0x13, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x01, 0x32, 0x17, 0x16,
+ 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x25, 0x32, 0x17, 0x16, 0x1d, 0x01,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x32, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01,
+ 0x35, 0x34, 0x37, 0x36, 0x02, 0x0a, 0x29, 0x17, 0x12, 0x2d, 0x13, 0x56,
+ 0x6f, 0x14, 0x2f, 0x22, 0x2a, 0x36, 0x25, 0x0b, 0x5a, 0x7b, 0x03, 0x03,
+ 0x38, 0xec, 0x47, 0x08, 0x05, 0x0c, 0x0d, 0x1b, 0x27, 0x2f, 0x41, 0x2e,
+ 0x4a, 0x04, 0x1d, 0x1c, 0x2c, 0x31, 0x44, 0xdf, 0x1a, 0x0d, 0x07, 0x18,
+ 0x0a, 0x0b, 0x21, 0x0b, 0x01, 0x17, 0x0c, 0x97, 0x1a, 0x0d, 0x07, 0x18,
+ 0x09, 0x0c, 0x21, 0x0b, 0x01, 0x17, 0x0c, 0x7c, 0x19, 0x0e, 0x06, 0x17,
+ 0x09, 0x0d, 0x1f, 0x0d, 0x01, 0x17, 0x0c, 0x8c, 0x19, 0x0d, 0x07, 0x18,
+ 0x09, 0x0c, 0x20, 0x0c, 0x01, 0x17, 0x0c, 0x02, 0x1a, 0x0d, 0x07, 0x18,
+ 0x09, 0x0d, 0x1f, 0x0d, 0x17, 0x0c, 0xab, 0x1b, 0x0d, 0x06, 0x17, 0x0a,
+ 0x0c, 0x20, 0x0c, 0x01, 0x18, 0x0c, 0x01, 0x62, 0x19, 0x0e, 0x06, 0x17,
+ 0x09, 0x0d, 0x1f, 0x0d, 0x01, 0x17, 0x0c, 0xaf, 0x1a, 0x0d, 0x07, 0x18,
+ 0x0a, 0x0b, 0x21, 0x0b, 0x01, 0x17, 0x0c, 0xae, 0x1a, 0x0e, 0x06, 0x17,
+ 0x0a, 0x0c, 0x20, 0x0c, 0x01, 0x18, 0x0b, 0xfd, 0x9a, 0x1a, 0x0d, 0x07,
+ 0x18, 0x0a, 0x0b, 0x21, 0x0b, 0x01, 0x17, 0x0c, 0xf6, 0x1a, 0x0d, 0x06,
+ 0x17, 0x09, 0x0d, 0x1f, 0x0d, 0x01, 0x18, 0x0b, 0x01, 0x05, 0x1b, 0x0d,
+ 0x06, 0x17, 0x0a, 0x0c, 0x20, 0x0c, 0x01, 0x18, 0x0b, 0xea, 0x19, 0x0d,
+ 0x06, 0x17, 0x09, 0x0c, 0x20, 0x0d, 0x01, 0x18, 0x0c, 0x02, 0x20, 0x37,
+ 0x51, 0x3d, 0x4b, 0x47, 0x3c, 0x1a, 0x73, 0x07, 0x2d, 0x38, 0x50, 0x5a,
+ 0x79, 0x39, 0x0e, 0x7a, 0x0c, 0x80, 0x5f, 0x65, 0x22, 0x22, 0x16, 0x10,
+ 0x12, 0x23, 0x2f, 0x32, 0x64, 0x74, 0x1a, 0x1b, 0x30, 0x26, 0x32, 0x01,
+ 0x6a, 0x1f, 0x0c, 0x0f, 0x06, 0x1f, 0x12, 0x07, 0x2c, 0x0e, 0x03, 0x1f,
+ 0x14, 0x08, 0x01, 0x3a, 0x1e, 0x0c, 0x0f, 0x07, 0x1e, 0x13, 0x08, 0x2e,
+ 0x0c, 0x05, 0x1e, 0x14, 0x08, 0x01, 0x34, 0x1f, 0x0c, 0x0e, 0x07, 0x1e,
+ 0x14, 0x07, 0x2e, 0x0c, 0x05, 0x1e, 0x14, 0x08, 0x01, 0x3d, 0x1f, 0x0c,
+ 0x0f, 0x06, 0x1f, 0x12, 0x07, 0x2c, 0x0d, 0x04, 0x1f, 0x14, 0x08, 0xfd,
+ 0x02, 0x1f, 0x0c, 0x0f, 0x06, 0x1f, 0x12, 0x07, 0x2c, 0x0e, 0x03, 0x20,
+ 0x13, 0x08, 0xfe, 0xfc, 0x1f, 0x0c, 0x0e, 0x06, 0x20, 0x12, 0x07, 0x2d,
+ 0x0d, 0x04, 0x1f, 0x13, 0x08, 0x02, 0x07, 0x1e, 0x0c, 0x0f, 0x07, 0x1e,
+ 0x13, 0x07, 0x2d, 0x0c, 0x05, 0x1e, 0x15, 0x07, 0xfa, 0x1e, 0x0c, 0x0f,
+ 0x07, 0x1e, 0x13, 0x07, 0x2d, 0x0c, 0x05, 0x1e, 0x15, 0x07, 0x01, 0x04,
+ 0x20, 0x0c, 0x0e, 0x06, 0x1f, 0x12, 0x08, 0x2d, 0x0d, 0x04, 0x1f, 0x13,
+ 0x09, 0xfb, 0x0c, 0x1e, 0x0c, 0x0f, 0x07, 0x1e, 0x13, 0x08, 0x2e, 0x0c,
+ 0x05, 0x1e, 0x14, 0x08, 0xd3, 0x1e, 0x0c, 0x0e, 0x07, 0x1e, 0x14, 0x07,
+ 0x2e, 0x0c, 0x05, 0x1e, 0x14, 0x07, 0xe7, 0x1f, 0x0c, 0x0e, 0x06, 0x20,
+ 0x12, 0x07, 0x2c, 0x0e, 0x03, 0x20, 0x13, 0x08, 0xca, 0x1f, 0x0c, 0x0e,
+ 0x06, 0x20, 0x12, 0x07, 0x2d, 0x0d, 0x03, 0x20, 0x13, 0x08, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x77, 0xff, 0xf7, 0x05, 0xfd, 0x05, 0xc9, 0x00, 0x09,
+ 0x00, 0x00, 0x13, 0x21, 0x1b, 0x01, 0x21, 0x01, 0x13, 0x09, 0x01, 0x13,
+ 0x78, 0x02, 0x1b, 0xa7, 0xa8, 0x02, 0x1b, 0xfe, 0x4c, 0xa7, 0xfe, 0x4a,
+ 0xfe, 0x4b, 0xa6, 0x03, 0x90, 0x02, 0x39, 0xfd, 0xc7, 0xfe, 0x9f, 0xfd,
+ 0xc8, 0x01, 0x60, 0xfe, 0xa0, 0x02, 0x38, 0x00, 0x00, 0x02, 0x00, 0x77,
+ 0xff, 0xf7, 0x05, 0xfd, 0x05, 0xc9, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00,
+ 0x13, 0x21, 0x1b, 0x01, 0x21, 0x01, 0x13, 0x09, 0x01, 0x13, 0x37, 0x03,
+ 0x09, 0x01, 0x03, 0x01, 0x21, 0x0b, 0x01, 0x21, 0x78, 0x02, 0x1b, 0xa7,
+ 0xa8, 0x02, 0x1b, 0xfe, 0x4c, 0xa7, 0xfe, 0x4a, 0xfe, 0x4b, 0xa6, 0x3d,
+ 0x7e, 0x01, 0x50, 0x01, 0x5a, 0x89, 0x01, 0x67, 0xfe, 0x4b, 0x83, 0x80,
+ 0xfe, 0x49, 0x03, 0x90, 0x02, 0x39, 0xfd, 0xc7, 0xfe, 0x9f, 0xfd, 0xc8,
+ 0x01, 0x60, 0xfe, 0xa0, 0x02, 0x38, 0x15, 0xfe, 0x4e, 0x01, 0x0c, 0xfe,
+ 0xe6, 0x01, 0xc2, 0x01, 0x18, 0x01, 0xb7, 0xfe, 0x49, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x99, 0x00, 0x04, 0x03, 0x87, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x16, 0x17, 0x14, 0x07, 0x09, 0x01, 0x37, 0x13, 0x25,
+ 0x37, 0x01, 0x26, 0x35, 0x34, 0x37, 0x01, 0x36, 0x03, 0x52, 0x33, 0x02,
+ 0x08, 0xfd, 0xbd, 0x01, 0xbc, 0x4e, 0x22, 0xfe, 0x65, 0xc9, 0xfe, 0x14,
+ 0x11, 0x3b, 0x02, 0x51, 0x09, 0x05, 0xd5, 0x02, 0x36, 0x24, 0x0c, 0xfd,
+ 0x85, 0xfd, 0xf4, 0xe6, 0xfe, 0x38, 0x27, 0x5e, 0x02, 0x34, 0x17, 0x17,
+ 0x1b, 0x3f, 0x02, 0x86, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdb, 0x05, 0xd9, 0x00, 0x19, 0x00, 0x00, 0x13, 0x21,
+ 0x32, 0x15, 0x14, 0x07, 0x09, 0x01, 0x37, 0x13, 0x25, 0x37, 0x01, 0x26,
+ 0x35, 0x34, 0x37, 0x01, 0x21, 0x11, 0x06, 0x07, 0x26, 0x27, 0x11, 0x36,
+ 0xd5, 0x04, 0xc2, 0x3a, 0x19, 0xfd, 0xfb, 0x01, 0xb6, 0x50, 0x21, 0xfe,
+ 0x60, 0xd0, 0xfe, 0x24, 0x0e, 0x2f, 0x01, 0xb4, 0xfc, 0x18, 0x01, 0x41,
+ 0x3f, 0x01, 0x01, 0x05, 0xd9, 0x53, 0x22, 0x1b, 0xfd, 0xc5, 0xfe, 0x1b,
+ 0xd5, 0xfe, 0x3d, 0x22, 0x6c, 0x02, 0x16, 0x10, 0x2d, 0x1c, 0x32, 0x01,
+ 0xdf, 0xfa, 0xfc, 0x44, 0x01, 0x01, 0x43, 0x05, 0x5b, 0x39, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd8, 0x00, 0x0d,
+ 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x05, 0x10, 0x00, 0x20,
+ 0x00, 0x11, 0x34, 0x02, 0x24, 0x20, 0x04, 0x02, 0x05, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x32, 0x1e, 0x01, 0x05, 0xdb, 0xfe,
+ 0x76, 0xfe, 0xe8, 0xfe, 0xea, 0xfe, 0x76, 0xb5, 0x01, 0x44, 0xa7, 0xaa,
+ 0x01, 0x44, 0xb4, 0xfb, 0x00, 0x01, 0x62, 0x01, 0xf8, 0x01, 0x63, 0xa2,
+ 0xfe, 0xdc, 0xfe, 0xce, 0xfe, 0xdd, 0xa2, 0x03, 0x07, 0x62, 0x46, 0x45,
+ 0x63, 0x2d, 0x51, 0x54, 0x52, 0x2c, 0x02, 0xec, 0xfe, 0xc9, 0xfe, 0x4b,
+ 0x01, 0xb5, 0x01, 0x37, 0xc2, 0x01, 0x69, 0xc1, 0xc1, 0xfe, 0x99, 0xc4,
+ 0xfe, 0xe8, 0xfe, 0x77, 0x01, 0x89, 0x01, 0x18, 0xb1, 0x01, 0x42, 0xae,
+ 0xae, 0xfe, 0xbe, 0xb1, 0x4e, 0x6d, 0x6d, 0x4e, 0x31, 0x5a, 0x30, 0x30,
+ 0x5a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, 0x05, 0xf6,
+ 0x05, 0xd1, 0x00, 0x0a, 0x00, 0x16, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x25, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x25, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x24, 0x20, 0x04, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16,
+ 0x10, 0x06, 0x23, 0x22, 0x26, 0x10, 0x37, 0x36, 0x37, 0x26, 0x35, 0x34,
+ 0x00, 0x21, 0x20, 0x00, 0x15, 0x14, 0x05, 0x1f, 0x85, 0x5d, 0x5d, 0x43,
+ 0x41, 0x5e, 0xfc, 0x0c, 0x41, 0x5e, 0x5e, 0x41, 0x43, 0x5d, 0x5d, 0x03,
+ 0xae, 0x17, 0x14, 0x52, 0xa4, 0x75, 0x74, 0xa4, 0x51, 0x49, 0x64, 0x6d,
+ 0xfe, 0xd2, 0xfe, 0x50, 0xfe, 0xd2, 0x6d, 0x71, 0x4e, 0x51, 0xa4, 0x75,
+ 0x73, 0xa5, 0x52, 0x11, 0x11, 0x6e, 0x01, 0x93, 0x01, 0x21, 0x01, 0x24,
+ 0x01, 0x93, 0x01, 0xe9, 0x67, 0x4a, 0x49, 0x67, 0x67, 0x49, 0x4a, 0x67,
+ 0x67, 0x4a, 0x49, 0x68, 0x68, 0x49, 0x4a, 0x67, 0x55, 0x11, 0x16, 0x5c,
+ 0x82, 0x81, 0xb7, 0xb7, 0x81, 0x82, 0x5c, 0x51, 0x09, 0x73, 0x99, 0xb4,
+ 0xfd, 0xfd, 0xb4, 0x99, 0x72, 0x04, 0x57, 0x5c, 0xfe, 0xfc, 0xb7, 0xb7,
+ 0x01, 0x04, 0x5c, 0x11, 0x0f, 0x8e, 0xb6, 0xf8, 0x01, 0x5e, 0xfe, 0xa2,
+ 0xf8, 0xb1, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, 0x05, 0xf6,
+ 0x05, 0xc9, 0x00, 0x0a, 0x00, 0x16, 0x00, 0x41, 0x00, 0x00, 0x01, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x25, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x01, 0x14, 0x00,
+ 0x21, 0x20, 0x00, 0x35, 0x34, 0x37, 0x26, 0x27, 0x26, 0x10, 0x36, 0x33,
+ 0x32, 0x16, 0x10, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x04, 0x20, 0x24,
+ 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x10, 0x36, 0x33, 0x32, 0x16, 0x10,
+ 0x07, 0x06, 0x07, 0x16, 0x05, 0x7c, 0x5e, 0x41, 0x43, 0x5d, 0x5d, 0x85,
+ 0x5d, 0xfc, 0xac, 0x5d, 0x43, 0x41, 0x5e, 0x5e, 0x41, 0x43, 0x5d, 0x03,
+ 0xb9, 0xfe, 0x6d, 0xfe, 0xdc, 0xfe, 0xdf, 0xfe, 0x6d, 0x6e, 0x11, 0x11,
+ 0x52, 0xa5, 0x73, 0x75, 0xa4, 0x51, 0x4e, 0x71, 0x6d, 0x01, 0x2e, 0x01,
+ 0xb0, 0x01, 0x2e, 0x6d, 0x64, 0x49, 0x51, 0xa4, 0x74, 0x75, 0xa4, 0x52,
+ 0x14, 0x17, 0x68, 0x04, 0x91, 0x49, 0x68, 0x68, 0x49, 0x4a, 0x67, 0x67,
+ 0x4a, 0x4a, 0x67, 0x67, 0x4a, 0x49, 0x67, 0x67, 0xfe, 0x0c, 0xf7, 0xfe,
+ 0xa3, 0x01, 0x5d, 0xf7, 0xb4, 0x8d, 0x0f, 0x12, 0x5b, 0x01, 0x02, 0xb6,
+ 0xb6, 0xfe, 0xfe, 0x5b, 0x58, 0x03, 0x72, 0x97, 0xb4, 0xfb, 0xfb, 0xb4,
+ 0x98, 0x71, 0x09, 0x51, 0x5c, 0x01, 0x02, 0xb6, 0xb6, 0xfe, 0xfe, 0x5c,
+ 0x16, 0x11, 0x8b, 0x00, 0x00, 0x02, 0x00, 0x70, 0xff, 0xfd, 0x04, 0x65,
+ 0x05, 0xc6, 0x00, 0x0b, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x37, 0x16, 0x17, 0x16,
+ 0x10, 0x00, 0x23, 0x22, 0x00, 0x10, 0x00, 0x33, 0x32, 0x17, 0x13, 0x17,
+ 0x02, 0x45, 0x80, 0xb5, 0xb5, 0x80, 0x80, 0xb5, 0xb3, 0xab, 0x11, 0x10,
+ 0x89, 0xfe, 0xed, 0xc4, 0xc1, 0xfe, 0xec, 0x01, 0x11, 0xc4, 0x57, 0x4b,
+ 0xf3, 0x8b, 0x03, 0x5f, 0xc8, 0x90, 0x8e, 0xc9, 0xc9, 0x8e, 0x90, 0xc8,
+ 0x3b, 0x10, 0x13, 0x99, 0xfe, 0x50, 0xfe, 0xcf, 0x01, 0x31, 0x01, 0xb0,
+ 0x01, 0x32, 0x1d, 0x01, 0xd3, 0x59, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70,
+ 0x00, 0x01, 0x06, 0xdb, 0x05, 0xc9, 0x00, 0x08, 0x00, 0x11, 0x00, 0x31,
+ 0x00, 0x00, 0x01, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x00,
+ 0x22, 0x06, 0x14, 0x16, 0x33, 0x32, 0x36, 0x34, 0x01, 0x16, 0x15, 0x14,
+ 0x02, 0x23, 0x22, 0x02, 0x35, 0x34, 0x12, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x37, 0x26, 0x35, 0x34, 0x12, 0x33, 0x32, 0x12, 0x15, 0x14, 0x02, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x01, 0xfb, 0x6c, 0x98, 0x98, 0xd8, 0x98, 0x97,
+ 0x03, 0x54, 0xda, 0x97, 0x97, 0x6d, 0x6c, 0x98, 0xfd, 0x11, 0x23, 0xe8,
+ 0xa4, 0xa3, 0xe8, 0xe6, 0xa5, 0xa6, 0x73, 0x02, 0x02, 0xc6, 0x19, 0xe5,
+ 0xa5, 0xa6, 0xe6, 0xe7, 0xa5, 0xa3, 0x74, 0x0a, 0x0a, 0x02, 0xda, 0xa9,
+ 0xf0, 0xa9, 0xa9, 0xf0, 0xa9, 0x02, 0x5a, 0xa9, 0xf0, 0xa9, 0xa9, 0xf0,
+ 0xfd, 0xe4, 0x54, 0x64, 0xb5, 0xfe, 0xff, 0x01, 0x01, 0xb5, 0xb7, 0x01,
+ 0x01, 0x80, 0x03, 0x02, 0x89, 0x49, 0x55, 0xb7, 0x01, 0x01, 0xfe, 0xff,
+ 0xb7, 0xb5, 0xfe, 0xff, 0x81, 0x0b, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x7e,
+ 0x00, 0x00, 0x08, 0x7a, 0x05, 0xd5, 0x00, 0x23, 0x00, 0x35, 0x00, 0x41,
+ 0x00, 0x4d, 0x00, 0x59, 0x00, 0x65, 0x00, 0x72, 0x00, 0x80, 0x00, 0x8d,
+ 0x00, 0x9a, 0x00, 0xa7, 0x00, 0xb5, 0x00, 0xc5, 0x00, 0xd9, 0x00, 0x00,
+ 0x01, 0x33, 0x04, 0x17, 0x16, 0x15, 0x06, 0x23, 0x22, 0x27, 0x25, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x35, 0x34, 0x27, 0x21, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x05, 0x06, 0x23, 0x22, 0x27, 0x34, 0x37, 0x36,
+ 0x01, 0x35, 0x33, 0x15, 0x14, 0x17, 0x16, 0x19, 0x01, 0x21, 0x11, 0x10,
+ 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x03, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x05, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x27, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x11, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x02, 0x16, 0x06, 0x07, 0x06, 0x26,
+ 0x27, 0x26, 0x36, 0x37, 0x36, 0x33, 0x32, 0x01, 0x16, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x27, 0x26, 0x36, 0x37, 0x36, 0x16, 0x01, 0x1e, 0x01,
+ 0x0e, 0x01, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x3e, 0x01, 0x04, 0x1e,
+ 0x01, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x24,
+ 0x36, 0x16, 0x17, 0x16, 0x06, 0x07, 0x06, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x25, 0x36, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x26, 0x27,
+ 0x26, 0x36, 0x01, 0x3e, 0x01, 0x17, 0x1e, 0x01, 0x07, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x2e, 0x01,
+ 0x35, 0x34, 0x04, 0x78, 0x08, 0x02, 0x1f, 0xe7, 0xf4, 0x20, 0x5d, 0x06,
+ 0x06, 0xfe, 0x92, 0x36, 0x0b, 0x3d, 0x1f, 0xfc, 0x0d, 0x1f, 0x3d, 0x0b,
+ 0x37, 0xfe, 0x92, 0x07, 0x05, 0x5c, 0x21, 0xf5, 0xe6, 0x02, 0xf8, 0x81,
+ 0xd9, 0xd0, 0xfa, 0x02, 0xd1, 0xd8, 0x82, 0x9a, 0xd4, 0x95, 0x97, 0xd3,
+ 0xd2, 0x98, 0x96, 0xd3, 0x02, 0x34, 0x76, 0x55, 0x54, 0x76, 0x76, 0x54,
+ 0x55, 0x76, 0x90, 0x1c, 0x16, 0x15, 0x1d, 0x1d, 0x15, 0x16, 0x1c, 0x1c,
+ 0x16, 0x15, 0x1d, 0x1d, 0x15, 0x16, 0x1c, 0xbc, 0x18, 0x06, 0x11, 0x11,
+ 0x29, 0x0d, 0x0c, 0x07, 0x11, 0x0d, 0x10, 0x04, 0x01, 0x72, 0x0d, 0x06,
+ 0x12, 0x0d, 0x10, 0x04, 0x18, 0x0e, 0x0c, 0x07, 0x11, 0x11, 0x29, 0xfe,
+ 0x3e, 0x16, 0x12, 0x0d, 0x26, 0x13, 0x14, 0x10, 0x02, 0x08, 0x25, 0x02,
+ 0x1c, 0x27, 0x0f, 0x02, 0x08, 0x24, 0x14, 0x14, 0x13, 0x06, 0x08, 0xfd,
+ 0xea, 0x27, 0x26, 0x07, 0x06, 0x12, 0x14, 0x15, 0x25, 0x08, 0x02, 0x02,
+ 0x3f, 0x14, 0x24, 0x08, 0x02, 0x0f, 0x14, 0x13, 0x27, 0x06, 0x06, 0x13,
+ 0xfe, 0x46, 0x0d, 0x29, 0x11, 0x11, 0x08, 0x0e, 0x0c, 0x19, 0x04, 0x10,
+ 0x0d, 0x11, 0x05, 0x01, 0x57, 0x0e, 0x18, 0x04, 0x10, 0x0d, 0x12, 0x04,
+ 0x0b, 0x0c, 0x18, 0x05, 0x10, 0x0d, 0x11, 0x04, 0x05, 0xd5, 0x11, 0x9b,
+ 0xa4, 0xaa, 0x99, 0x01, 0x8c, 0x12, 0x2b, 0x13, 0x19, 0x47, 0x20, 0x17,
+ 0x03, 0x03, 0x17, 0x20, 0x47, 0x18, 0x14, 0x2b, 0x12, 0x8c, 0x01, 0x99,
+ 0xaa, 0xa4, 0x99, 0xfe, 0x76, 0x4b, 0x98, 0x4b, 0x39, 0x5f, 0xfe, 0xe2,
+ 0xfe, 0x16, 0x01, 0xea, 0x01, 0x1e, 0x5f, 0x39, 0x4b, 0x98, 0x4b, 0xfd,
+ 0xdd, 0xa7, 0xea, 0xea, 0xa7, 0xa6, 0xec, 0xec, 0xa5, 0x5d, 0x84, 0x84,
+ 0x5d, 0x5f, 0x83, 0x83, 0xde, 0x16, 0x22, 0x22, 0x16, 0x18, 0x22, 0x22,
+ 0xfd, 0x73, 0x18, 0x21, 0x21, 0x18, 0x17, 0x22, 0x22, 0x02, 0x57, 0x26,
+ 0x2e, 0x0d, 0x0f, 0x07, 0x13, 0x14, 0x2d, 0x0f, 0x0a, 0xfd, 0xec, 0x13,
+ 0x2e, 0x0f, 0x0a, 0x04, 0x14, 0x13, 0x2d, 0x0e, 0x0d, 0x06, 0x01, 0x61,
+ 0x08, 0x29, 0x2c, 0x15, 0x06, 0x07, 0x22, 0x0d, 0x09, 0x09, 0x16, 0x15,
+ 0xc3, 0x0e, 0x22, 0x0d, 0x08, 0x09, 0x16, 0x15, 0x08, 0x07, 0x29, 0x17,
+ 0x16, 0x06, 0x0e, 0x14, 0x16, 0x18, 0x29, 0x08, 0x06, 0x15, 0x16, 0x09,
+ 0x08, 0x0d, 0xec, 0x07, 0x15, 0x16, 0x09, 0x08, 0x0d, 0x21, 0x08, 0x07,
+ 0x15, 0x16, 0x16, 0x29, 0xfe, 0x94, 0x12, 0x07, 0x0d, 0x0e, 0x2f, 0x11,
+ 0x14, 0x04, 0x0a, 0x0f, 0x1c, 0x05, 0x11, 0x02, 0x0c, 0x13, 0x04, 0x0a,
+ 0x0f, 0x1b, 0x04, 0x12, 0x10, 0x13, 0x04, 0x0c, 0x0d, 0x1c, 0x05, 0x11,
+ 0x00, 0x10, 0x00, 0x82, 0x00, 0x00, 0x08, 0x7f, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x1d, 0x00, 0x25, 0x00, 0x2d, 0x00, 0x35, 0x00, 0x41, 0x00, 0x4d,
+ 0x00, 0x59, 0x00, 0x64, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x88, 0x00, 0x94,
+ 0x00, 0xa6, 0x00, 0xca, 0x00, 0xf0, 0x00, 0x00, 0x01, 0x35, 0x23, 0x15,
+ 0x06, 0x07, 0x06, 0x15, 0x11, 0x21, 0x11, 0x34, 0x27, 0x26, 0x27, 0x35,
+ 0x23, 0x15, 0x07, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x16, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x02, 0x22,
+ 0x06, 0x14, 0x16, 0x32, 0x36, 0x34, 0x02, 0x22, 0x06, 0x14, 0x16, 0x32,
+ 0x36, 0x34, 0x03, 0x0e, 0x01, 0x17, 0x1e, 0x01, 0x37, 0x3e, 0x01, 0x27,
+ 0x2e, 0x01, 0x01, 0x0e, 0x01, 0x17, 0x1e, 0x01, 0x37, 0x3e, 0x01, 0x27,
+ 0x2e, 0x01, 0x01, 0x06, 0x16, 0x17, 0x16, 0x36, 0x37, 0x36, 0x26, 0x27,
+ 0x26, 0x06, 0x05, 0x06, 0x16, 0x17, 0x16, 0x3e, 0x01, 0x26, 0x27, 0x26,
+ 0x06, 0x05, 0x1e, 0x01, 0x37, 0x3e, 0x01, 0x27, 0x2e, 0x01, 0x07, 0x0e,
+ 0x01, 0x25, 0x1e, 0x01, 0x37, 0x3e, 0x01, 0x27, 0x2e, 0x01, 0x07, 0x0e,
+ 0x01, 0x01, 0x16, 0x36, 0x37, 0x36, 0x26, 0x27, 0x26, 0x06, 0x07, 0x06,
+ 0x16, 0x01, 0x16, 0x36, 0x37, 0x36, 0x26, 0x27, 0x26, 0x06, 0x07, 0x06,
+ 0x16, 0x13, 0x35, 0x33, 0x15, 0x14, 0x17, 0x16, 0x19, 0x01, 0x21, 0x11,
+ 0x10, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x25, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x05, 0x23, 0x22, 0x27, 0x36, 0x37, 0x36, 0x25,
+ 0x16, 0x32, 0x37, 0x04, 0x17, 0x16, 0x17, 0x06, 0x2b, 0x01, 0x25, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x35, 0x34, 0x27, 0x37, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x05, 0x16, 0x33, 0x32, 0x37, 0x26, 0x27, 0x24,
+ 0x25, 0x27, 0x15, 0x23, 0x04, 0x05, 0x06, 0x07, 0x16, 0x33, 0x32, 0x37,
+ 0x25, 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x03, 0x88, 0x2c,
+ 0x0e, 0xb7, 0xaf, 0x05, 0x0d, 0xb0, 0xb6, 0x07, 0x33, 0xeb, 0x95, 0xce,
+ 0xcf, 0x94, 0x93, 0xd0, 0xcf, 0xe6, 0xa5, 0x74, 0x74, 0xa5, 0x74, 0xa9,
+ 0x29, 0x1d, 0x1d, 0x29, 0x1d, 0x1d, 0x29, 0x1d, 0x1d, 0x29, 0x1d, 0xf3,
+ 0x10, 0x07, 0x0b, 0x0e, 0x28, 0x11, 0x11, 0x05, 0x0c, 0x0b, 0x29, 0x01,
+ 0x37, 0x11, 0x07, 0x0c, 0x0d, 0x28, 0x11, 0x11, 0x06, 0x0c, 0x0c, 0x28,
+ 0xfe, 0x2f, 0x06, 0x14, 0x13, 0x14, 0x24, 0x07, 0x06, 0x12, 0x15, 0x14,
+ 0x24, 0x02, 0x0c, 0x06, 0x12, 0x14, 0x13, 0x25, 0x0c, 0x12, 0x14, 0x12,
+ 0x25, 0xfd, 0xe6, 0x07, 0x24, 0x15, 0x14, 0x12, 0x06, 0x07, 0x24, 0x14,
+ 0x13, 0x14, 0x02, 0x19, 0x06, 0x26, 0x12, 0x14, 0x12, 0x06, 0x06, 0x25,
+ 0x13, 0x14, 0x12, 0xfe, 0x6b, 0x11, 0x29, 0x0b, 0x0e, 0x07, 0x11, 0x11,
+ 0x28, 0x0e, 0x0b, 0x07, 0x01, 0x58, 0x11, 0x28, 0x0c, 0x0c, 0x06, 0x11,
+ 0x11, 0x28, 0x0d, 0x0c, 0x07, 0x4d, 0x79, 0xca, 0xc2, 0xfa, 0x68, 0xc3,
+ 0xca, 0x79, 0xfe, 0xcb, 0x17, 0x43, 0x1a, 0x35, 0xfe, 0xaf, 0x09, 0x6d,
+ 0x3b, 0x0c, 0xdf, 0xe0, 0x02, 0x09, 0x15, 0x2b, 0x16, 0x02, 0x08, 0xe0,
+ 0xdf, 0x0b, 0x3a, 0x6c, 0x09, 0xfe, 0xae, 0x35, 0x1a, 0x43, 0x17, 0x17,
+ 0x23, 0x30, 0x1c, 0x1c, 0x01, 0x25, 0x0d, 0x0e, 0x42, 0x38, 0x09, 0xd4,
+ 0xfe, 0xe6, 0xfe, 0x54, 0x2b, 0x31, 0xfe, 0x53, 0xfe, 0xe6, 0xd4, 0x08,
+ 0x37, 0x43, 0x0d, 0x0e, 0x01, 0x25, 0x1c, 0x1c, 0x30, 0x22, 0x03, 0xc2,
+ 0x40, 0x8e, 0x40, 0x31, 0x41, 0xf1, 0xfe, 0x65, 0x01, 0x9b, 0xf1, 0x41,
+ 0x31, 0x40, 0x8e, 0x40, 0x48, 0xe7, 0xa3, 0xa4, 0xe6, 0xe6, 0xa4, 0xa3,
+ 0xe7, 0xad, 0x81, 0xb8, 0x80, 0x80, 0xb8, 0x01, 0x14, 0x20, 0x2e, 0x20,
+ 0x20, 0x2e, 0xfd, 0xb5, 0x20, 0x2e, 0x20, 0x20, 0x2e, 0x02, 0x45, 0x0d,
+ 0x2d, 0x13, 0x12, 0x08, 0x0d, 0x0f, 0x2d, 0x13, 0x11, 0x07, 0xfd, 0xff,
+ 0x0e, 0x2d, 0x13, 0x13, 0x07, 0x0f, 0x0d, 0x2c, 0x13, 0x13, 0x07, 0x01,
+ 0x31, 0x16, 0x29, 0x07, 0x07, 0x14, 0x17, 0x16, 0x29, 0x07, 0x07, 0x16,
+ 0xd5, 0x15, 0x29, 0x07, 0x07, 0x15, 0x2c, 0x28, 0x08, 0x07, 0x14, 0x39,
+ 0x17, 0x14, 0x07, 0x07, 0x29, 0x15, 0x16, 0x16, 0x07, 0x08, 0x28, 0xa9,
+ 0x15, 0x16, 0x07, 0x07, 0x29, 0x16, 0x15, 0x16, 0x07, 0x07, 0x29, 0xfe,
+ 0x75, 0x0f, 0x07, 0x13, 0x13, 0x2d, 0x0d, 0x0e, 0x07, 0x13, 0x13, 0x2c,
+ 0x01, 0xe6, 0x0d, 0x08, 0x12, 0x13, 0x2d, 0x0d, 0x0f, 0x08, 0x12, 0x13,
+ 0x2d, 0x01, 0x20, 0x47, 0x9c, 0x37, 0x37, 0x57, 0xfe, 0xf5, 0xfe, 0x36,
+ 0x01, 0xca, 0x01, 0x0b, 0x57, 0x37, 0x37, 0x9c, 0x47, 0xe5, 0x06, 0x12,
+ 0x20, 0x44, 0x26, 0x1a, 0x26, 0x0b, 0xa5, 0xcb, 0xc7, 0x65, 0x8b, 0x11,
+ 0x01, 0x01, 0x11, 0x8b, 0x65, 0xc7, 0xcb, 0xa5, 0x0b, 0x26, 0x1a, 0x26,
+ 0x44, 0x20, 0x12, 0x06, 0x1c, 0x12, 0x22, 0x28, 0x3d, 0x16, 0x15, 0x14,
+ 0x13, 0x88, 0x06, 0x97, 0x9d, 0x70, 0x81, 0x19, 0x01, 0x01, 0x19, 0x81,
+ 0x70, 0x9d, 0x97, 0x06, 0x88, 0x13, 0x14, 0x15, 0x16, 0x3d, 0x28, 0x22,
+ 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa5, 0x00, 0x00, 0x05, 0xd0,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x17, 0x11,
+ 0x07, 0x21, 0x27, 0x11, 0x17, 0x11, 0x21, 0x11, 0xab, 0x05, 0x1e, 0x07,
+ 0x07, 0xfa, 0xe2, 0x05, 0x63, 0x04, 0x63, 0x05, 0xd5, 0x07, 0xfa, 0x38,
+ 0x06, 0x06, 0x05, 0xc8, 0x68, 0xfb, 0x08, 0x04, 0xf8, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa4, 0x00, 0x00, 0x05, 0xd1, 0x05, 0xd5, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x22, 0x00, 0x00, 0x13, 0x21, 0x17, 0x11, 0x07, 0x21,
+ 0x27, 0x11, 0x17, 0x11, 0x21, 0x11, 0x07, 0x15, 0x06, 0x07, 0x00, 0x03,
+ 0x06, 0x23, 0x06, 0x23, 0x02, 0x2b, 0x01, 0x35, 0x37, 0x32, 0x17, 0x33,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0xaa, 0x05, 0x21, 0x06, 0x06, 0xfa, 0xdf,
+ 0x05, 0x64, 0x04, 0x63, 0x7a, 0x44, 0x25, 0xfe, 0xda, 0x38, 0x05, 0x0f,
+ 0x69, 0x0c, 0x5b, 0xb8, 0x15, 0x92, 0x88, 0x41, 0x06, 0x2e, 0x38, 0x59,
+ 0x8b, 0x57, 0x05, 0xd5, 0x06, 0xfa, 0x38, 0x07, 0x07, 0x05, 0xc8, 0x68,
+ 0xfb, 0x08, 0x04, 0xf8, 0x9e, 0x06, 0x41, 0x3a, 0xfe, 0x46, 0xfe, 0xbd,
+ 0x3b, 0x2f, 0x01, 0x02, 0x07, 0x49, 0x83, 0xa6, 0x74, 0xb3, 0xbb, 0x78,
+ 0x00, 0x03, 0x00, 0xa4, 0x00, 0x00, 0x05, 0xd1, 0x05, 0xd5, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x1a, 0x00, 0x00, 0x13, 0x21, 0x17, 0x11, 0x07, 0x21,
+ 0x27, 0x11, 0x17, 0x11, 0x21, 0x11, 0x05, 0x09, 0x01, 0x17, 0x09, 0x01,
+ 0x15, 0x07, 0x01, 0x23, 0x01, 0x23, 0x27, 0x09, 0x01, 0xaa, 0x05, 0x21,
+ 0x06, 0x06, 0xfa, 0xdf, 0x05, 0x64, 0x04, 0x63, 0xfc, 0x5e, 0x01, 0x72,
+ 0x01, 0x6e, 0x56, 0xfe, 0x91, 0x01, 0x6f, 0x52, 0xfe, 0x8e, 0x04, 0xfe,
+ 0x92, 0x04, 0x51, 0x01, 0x6e, 0xfe, 0x92, 0x05, 0xd5, 0x06, 0xfa, 0x38,
+ 0x07, 0x07, 0x05, 0xc8, 0x68, 0xfb, 0x08, 0x04, 0xf8, 0x86, 0xfe, 0x69,
+ 0x01, 0x97, 0x5b, 0xfe, 0x65, 0xfe, 0x66, 0x03, 0x5b, 0x01, 0x97, 0xfe,
+ 0x6c, 0x5b, 0x01, 0x9a, 0x01, 0x9b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8a,
+ 0x00, 0xa0, 0x03, 0x4a, 0x05, 0x40, 0x00, 0x14, 0x00, 0x00, 0x13, 0x33,
+ 0x01, 0x36, 0x13, 0x32, 0x37, 0x33, 0x17, 0x09, 0x01, 0x15, 0x07, 0x01,
+ 0x23, 0x01, 0x23, 0x27, 0x01, 0x00, 0x35, 0xd9, 0x04, 0x01, 0x0c, 0x0a,
+ 0xfd, 0x04, 0x05, 0x04, 0x4d, 0xfe, 0xf0, 0x01, 0x10, 0x4f, 0xfe, 0xf2,
+ 0x02, 0xfe, 0xf1, 0x03, 0x4e, 0x01, 0x12, 0xfe, 0xee, 0x05, 0x40, 0xfe,
+ 0x0b, 0x08, 0x01, 0xde, 0x0f, 0x55, 0xfe, 0x04, 0xfe, 0x07, 0x03, 0x53,
+ 0x01, 0xf7, 0xfe, 0x0b, 0x56, 0x01, 0xf9, 0x01, 0xf5, 0x07, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x5a, 0x00, 0x00, 0x06, 0x43, 0x07, 0x76, 0x00, 0x08,
+ 0x00, 0x11, 0x00, 0x1a, 0x00, 0x23, 0x00, 0x2c, 0x00, 0x35, 0x00, 0x3e,
+ 0x00, 0x7e, 0x00, 0x00, 0x01, 0x33, 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01,
+ 0x34, 0x01, 0x33, 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01, 0x34, 0x25, 0x33,
+ 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01, 0x34, 0x17, 0x33, 0x06, 0x2b, 0x01,
+ 0x26, 0x3d, 0x01, 0x34, 0x01, 0x33, 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01,
+ 0x34, 0x05, 0x33, 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01, 0x34, 0x17, 0x33,
+ 0x06, 0x2b, 0x01, 0x26, 0x3d, 0x01, 0x34, 0x25, 0x33, 0x17, 0x15, 0x33,
+ 0x20, 0x13, 0x16, 0x1d, 0x01, 0x23, 0x26, 0x27, 0x26, 0x2b, 0x01, 0x22,
+ 0x07, 0x15, 0x14, 0x07, 0x27, 0x26, 0x23, 0x11, 0x14, 0x0f, 0x01, 0x22,
+ 0x2f, 0x01, 0x35, 0x37, 0x33, 0x17, 0x15, 0x16, 0x3b, 0x01, 0x32, 0x3f,
+ 0x01, 0x11, 0x22, 0x07, 0x06, 0x23, 0x27, 0x35, 0x37, 0x23, 0x26, 0x27,
+ 0x23, 0x22, 0x0f, 0x01, 0x23, 0x35, 0x36, 0x37, 0x36, 0x21, 0x35, 0x01,
+ 0xa7, 0x03, 0x1b, 0x53, 0x06, 0x34, 0x02, 0x1a, 0x02, 0x1a, 0x53, 0x06,
+ 0x33, 0x01, 0xe8, 0x02, 0x1b, 0x53, 0x05, 0x34, 0xde, 0x04, 0x1b, 0x53,
+ 0x05, 0x35, 0x01, 0xe8, 0x03, 0x1a, 0x54, 0x05, 0x35, 0x01, 0x09, 0x02,
+ 0x19, 0x54, 0x06, 0x34, 0x52, 0x03, 0x1b, 0x53, 0x05, 0x34, 0xfd, 0xe6,
+ 0x34, 0x06, 0x02, 0x01, 0x8c, 0xfc, 0x26, 0x01, 0x14, 0x11, 0x20, 0x33,
+ 0x28, 0x87, 0x64, 0x08, 0x1d, 0x88, 0x7b, 0x5f, 0x1b, 0x52, 0x21, 0x02,
+ 0x05, 0x27, 0x05, 0x09, 0x38, 0x09, 0x32, 0x12, 0x05, 0xbe, 0x4d, 0x10,
+ 0x0c, 0x06, 0x06, 0x04, 0x3c, 0xb1, 0x3d, 0x59, 0x1e, 0x12, 0x03, 0x34,
+ 0xad, 0xd7, 0x01, 0x19, 0x06, 0x01, 0xcf, 0x0a, 0x23, 0x02, 0x38, 0x01,
+ 0x64, 0xcf, 0x08, 0x23, 0x03, 0x37, 0xe3, 0xcf, 0x08, 0x24, 0x03, 0x36,
+ 0xb9, 0xcf, 0x08, 0x24, 0x02, 0x38, 0x01, 0x3b, 0xce, 0x07, 0x24, 0x03,
+ 0x37, 0x69, 0xcf, 0x07, 0x24, 0x03, 0x37, 0xeb, 0xcf, 0x09, 0x23, 0x02,
+ 0x39, 0x9a, 0x05, 0x70, 0xfe, 0x50, 0x4c, 0x0c, 0x07, 0x0d, 0x29, 0x16,
+ 0x5a, 0x2e, 0x0d, 0x02, 0x3b, 0x36, 0xfd, 0x9f, 0x5a, 0x15, 0x02, 0x56,
+ 0x18, 0x17, 0x06, 0x06, 0x0a, 0x5a, 0x33, 0x25, 0x02, 0x59, 0x36, 0x33,
+ 0x05, 0x0b, 0x2e, 0x38, 0x19, 0x37, 0x10, 0x02, 0x80, 0xc2, 0xc6, 0x70,
+ 0x00, 0x09, 0x00, 0x88, 0x00, 0x00, 0x05, 0xeb, 0x05, 0xd9, 0x00, 0x0b,
+ 0x00, 0x11, 0x00, 0x1c, 0x00, 0x33, 0x00, 0x44, 0x00, 0x4d, 0x00, 0x79,
+ 0x00, 0x7f, 0x00, 0x8f, 0x00, 0x00, 0x01, 0x14, 0x15, 0x14, 0x17, 0x21,
+ 0x36, 0x37, 0x34, 0x23, 0x21, 0x06, 0x13, 0x16, 0x17, 0x21, 0x36, 0x3f,
+ 0x01, 0x06, 0x07, 0x36, 0x37, 0x36, 0x35, 0x34, 0x35, 0x26, 0x23, 0x27,
+ 0x06, 0x07, 0x33, 0x32, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x33,
+ 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x23, 0x01, 0x33,
+ 0x14, 0x06, 0x07, 0x14, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x27, 0x34,
+ 0x35, 0x34, 0x36, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x21, 0x16,
+ 0x05, 0x36, 0x37, 0x32, 0x17, 0x15, 0x14, 0x05, 0x07, 0x17, 0x14, 0x07,
+ 0x21, 0x26, 0x3d, 0x01, 0x37, 0x35, 0x24, 0x2f, 0x01, 0x35, 0x36, 0x33,
+ 0x16, 0x17, 0x26, 0x11, 0x34, 0x33, 0x21, 0x16, 0x15, 0x33, 0x32, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x27, 0x01, 0x16, 0x17, 0x21,
+ 0x36, 0x37, 0x01, 0x06, 0x07, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x35, 0x33, 0x1e, 0x01, 0x15, 0x01, 0x06, 0x0d, 0x04, 0x0e, 0x0a,
+ 0x03, 0x1b, 0xfc, 0x10, 0x19, 0x38, 0x05, 0x0e, 0x03, 0x8f, 0x0c, 0x08,
+ 0x41, 0x08, 0x34, 0x4e, 0x2c, 0x1a, 0x01, 0x1d, 0x33, 0x02, 0x01, 0x31,
+ 0x35, 0x3e, 0x28, 0x49, 0x1d, 0x2d, 0x07, 0x34, 0x22, 0x11, 0x61, 0x31,
+ 0x1a, 0x16, 0x6c, 0xfd, 0x78, 0x08, 0x58, 0x01, 0x7a, 0x04, 0x08, 0x11,
+ 0x62, 0x1e, 0x08, 0x63, 0xfe, 0xf9, 0xa5, 0xaa, 0x9d, 0x9f, 0x1f, 0x53,
+ 0xfc, 0x9e, 0x21, 0x02, 0xf2, 0xe4, 0x5c, 0x10, 0x06, 0xfe, 0xbc, 0x71,
+ 0x02, 0x0f, 0xfe, 0x26, 0x0f, 0x03, 0xfe, 0x8e, 0x2c, 0x03, 0x03, 0x11,
+ 0x4c, 0xc1, 0xb5, 0x30, 0x03, 0xf7, 0x1d, 0x31, 0x81, 0x4e, 0x1f, 0x65,
+ 0x30, 0x3c, 0x06, 0x10, 0xfc, 0x8d, 0x06, 0x09, 0x03, 0xd6, 0x0a, 0x03,
+ 0xfe, 0xbc, 0x05, 0x11, 0x39, 0x0a, 0x05, 0x02, 0x48, 0x33, 0x05, 0x09,
+ 0x39, 0x02, 0xb4, 0x06, 0x07, 0x37, 0x48, 0x34, 0x58, 0x16, 0x04, 0xfe,
+ 0xcd, 0x1a, 0x12, 0x16, 0x16, 0xc7, 0x6d, 0x86, 0x01, 0x4d, 0x37, 0x52,
+ 0x06, 0x05, 0x11, 0x56, 0x1c, 0x20, 0x2f, 0x82, 0x4d, 0x28, 0x01, 0x3d,
+ 0x48, 0x3a, 0x0d, 0x1f, 0x2c, 0x71, 0x4c, 0x55, 0x44, 0x03, 0x29, 0x38,
+ 0x88, 0x57, 0x71, 0x6b, 0xb1, 0x92, 0x65, 0x2d, 0x50, 0x05, 0x06, 0x65,
+ 0x78, 0xfa, 0xf3, 0x0d, 0x0b, 0x10, 0x97, 0x4e, 0x57, 0x18, 0x0a, 0x0a,
+ 0x0a, 0x10, 0x3d, 0x24, 0x0a, 0x0f, 0x08, 0x07, 0x10, 0x06, 0x02, 0x02,
+ 0x55, 0x12, 0x0d, 0x04, 0x0b, 0x09, 0x14, 0xfe, 0x01, 0x2f, 0x30, 0x02,
+ 0x18, 0x63, 0x9b, 0x99, 0x29, 0x16, 0x48, 0x04, 0x01, 0x3f, 0x1a, 0x12,
+ 0x13, 0x19, 0x01, 0xf5, 0x32, 0x1c, 0x40, 0x5b, 0x6e, 0x44, 0x46, 0x38,
+ 0x54, 0x24, 0x2e, 0x4a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9a,
+ 0x00, 0x01, 0x05, 0xdb, 0x05, 0xd9, 0x00, 0x07, 0x00, 0x0c, 0x00, 0x00,
+ 0x09, 0x01, 0x13, 0x07, 0x21, 0x27, 0x13, 0x09, 0x01, 0x03, 0x21, 0x03,
+ 0x01, 0x03, 0x41, 0x02, 0x4e, 0x4b, 0x02, 0xfa, 0xc8, 0x05, 0x4f, 0x02,
+ 0x55, 0xfe, 0x05, 0x44, 0x04, 0x75, 0x40, 0xfe, 0x07, 0x05, 0xd9, 0xfe,
+ 0x77, 0xfb, 0xb4, 0x03, 0x06, 0x04, 0x4c, 0x01, 0x86, 0xfe, 0x35, 0xfc,
+ 0x5f, 0x03, 0xa1, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9a,
+ 0x00, 0x00, 0x05, 0xdb, 0x05, 0xd0, 0x00, 0x09, 0x00, 0x00, 0x09, 0x01,
+ 0x13, 0x17, 0x07, 0x21, 0x27, 0x13, 0x00, 0x37, 0x03, 0x3f, 0x02, 0x4b,
+ 0x4e, 0x02, 0x02, 0xfa, 0xc8, 0x05, 0x51, 0x02, 0x3e, 0x12, 0x05, 0xd0,
+ 0xfe, 0x77, 0xfb, 0xbf, 0x03, 0x03, 0x06, 0x04, 0x44, 0x01, 0x80, 0x06,
+ 0x00, 0x01, 0x00, 0x8f, 0x00, 0x00, 0x05, 0xe6, 0x05, 0xd4, 0x00, 0x53,
+ 0x00, 0x00, 0x01, 0x03, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x16,
+ 0x32, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x03, 0x25, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x03, 0x16, 0x15, 0x10, 0x07, 0x23, 0x36, 0x11, 0x34, 0x27, 0x03,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36,
+ 0x35, 0x34, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x03, 0x1f, 0xc2, 0x43, 0x4f, 0x22, 0x22, 0x4f, 0x3b, 0x27,
+ 0x3c, 0x34, 0x53, 0x32, 0x0c, 0x52, 0xb3, 0x01, 0x24, 0x46, 0x40, 0x34,
+ 0x2f, 0x20, 0x1f, 0x3f, 0x06, 0x10, 0x61, 0x21, 0x0b, 0x0a, 0x1e, 0x33,
+ 0x39, 0x1e, 0x20, 0x5f, 0x44, 0xbb, 0x08, 0x64, 0x56, 0x84, 0x07, 0xb9,
+ 0x46, 0x5e, 0x20, 0x1e, 0x39, 0x32, 0x1f, 0x0b, 0x09, 0x21, 0x61, 0x11,
+ 0x06, 0x3f, 0x20, 0x1f, 0x30, 0x32, 0x41, 0x46, 0x03, 0x08, 0x01, 0x34,
+ 0x68, 0x6f, 0x6b, 0x40, 0x16, 0x52, 0x52, 0x72, 0x2a, 0x25, 0x7f, 0x74,
+ 0xfe, 0xeb, 0x65, 0x1c, 0x11, 0x0c, 0x1b, 0x42, 0x42, 0x15, 0x15, 0x39,
+ 0x27, 0x1d, 0x11, 0x37, 0x2a, 0x1f, 0x24, 0x25, 0x1b, 0x29, 0x0c, 0x22,
+ 0x66, 0x01, 0x16, 0x58, 0x53, 0xfe, 0xdd, 0xe7, 0xf2, 0x01, 0x35, 0x45,
+ 0x49, 0xfe, 0xea, 0x66, 0x22, 0x0c, 0x29, 0x1b, 0x25, 0x23, 0x1e, 0x2c,
+ 0x37, 0x11, 0x1d, 0x27, 0x39, 0x15, 0x14, 0x43, 0x42, 0x1b, 0x0c, 0x11,
+ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x99, 0x01, 0x1e, 0x05, 0xdb,
+ 0x04, 0x98, 0x00, 0x3e, 0x00, 0x45, 0x00, 0x00, 0x01, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x16, 0x13, 0x33, 0x17, 0x07, 0x23, 0x06, 0x07, 0x22,
+ 0x27, 0x34, 0x33, 0x16, 0x33, 0x32, 0x33, 0x32, 0x37, 0x26, 0x27, 0x23,
+ 0x22, 0x07, 0x16, 0x15, 0x06, 0x05, 0x24, 0x03, 0x34, 0x37, 0x16, 0x17,
+ 0x15, 0x07, 0x14, 0x17, 0x32, 0x37, 0x12, 0x25, 0x16, 0x1d, 0x01, 0x14,
+ 0x07, 0x36, 0x37, 0x32, 0x35, 0x36, 0x37, 0x36, 0x35, 0x34, 0x26, 0x03,
+ 0x06, 0x15, 0x14, 0x17, 0x35, 0x26, 0x05, 0x16, 0x64, 0x12, 0x42, 0x9f,
+ 0x12, 0xe7, 0x31, 0x18, 0x11, 0x29, 0x03, 0x0f, 0x89, 0x58, 0x16, 0x12,
+ 0x0e, 0x33, 0x02, 0x01, 0x45, 0x0c, 0xec, 0x06, 0x03, 0x76, 0x3d, 0x79,
+ 0x08, 0xfe, 0xd3, 0xfd, 0xd7, 0x28, 0x3b, 0x2e, 0x07, 0x0b, 0x65, 0x50,
+ 0x0c, 0x30, 0x01, 0x0c, 0xb0, 0x25, 0x53, 0x5a, 0x37, 0x41, 0x46, 0x34,
+ 0x22, 0x79, 0x01, 0xce, 0x1d, 0x04, 0x98, 0x05, 0x73, 0x57, 0x19, 0x24,
+ 0x2c, 0x1b, 0xfe, 0xf0, 0x4a, 0x0d, 0xae, 0x09, 0x5d, 0x54, 0x2d, 0x4d,
+ 0x4d, 0xf1, 0x6d, 0x40, 0x65, 0xf6, 0x10, 0x03, 0x01, 0x64, 0x3a, 0x09,
+ 0x03, 0x2c, 0x17, 0x27, 0x5a, 0x0c, 0x4d, 0x01, 0xde, 0x14, 0x06, 0xa0,
+ 0x08, 0x27, 0x63, 0x4d, 0x14, 0x26, 0x54, 0x29, 0x24, 0x24, 0x0d, 0x3c,
+ 0xfe, 0xa5, 0x08, 0x09, 0x84, 0x49, 0x03, 0xb5, 0x00, 0x01, 0x00, 0x9a,
+ 0x00, 0xe7, 0x05, 0xdb, 0x04, 0x8d, 0x00, 0x32, 0x00, 0x00, 0x25, 0x21,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x33, 0x37, 0x23, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x3b, 0x01, 0x37, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x21, 0x37, 0x21, 0x22, 0x26, 0x35,
+ 0x34, 0x3e, 0x01, 0x33, 0x21, 0x36, 0x37, 0x36, 0x33, 0x21, 0x32, 0x16,
+ 0x15, 0x05, 0x97, 0xfd, 0x95, 0x27, 0x37, 0x19, 0x17, 0x10, 0x11, 0x31,
+ 0x03, 0x7a, 0x2a, 0x17, 0x1c, 0x1a, 0x2d, 0x18, 0xa2, 0x01, 0xe8, 0x3d,
+ 0x38, 0x1b, 0x16, 0x12, 0x14, 0x01, 0x30, 0x02, 0xfd, 0x4f, 0x26, 0x38,
+ 0x1a, 0x2d, 0x17, 0x02, 0xdb, 0x07, 0x0f, 0x1c, 0x26, 0x01, 0x51, 0x26,
+ 0x37, 0xe7, 0x3e, 0x2b, 0x1b, 0x32, 0x0d, 0x0a, 0x03, 0x0c, 0x02, 0x1a,
+ 0x1e, 0x2c, 0x1b, 0x32, 0x1c, 0x0a, 0x3d, 0x2c, 0x1a, 0x32, 0x0e, 0x0b,
+ 0x02, 0x0a, 0x3d, 0x2c, 0x1b, 0x33, 0x1a, 0x16, 0x11, 0x1f, 0x3e, 0x2c,
+ 0x00, 0x01, 0x00, 0x9a, 0x00, 0xe7, 0x05, 0xdb, 0x04, 0x8d, 0x00, 0x32,
+ 0x00, 0x00, 0x13, 0x34, 0x36, 0x33, 0x21, 0x32, 0x17, 0x16, 0x17, 0x21,
+ 0x32, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x21, 0x17, 0x21, 0x16, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x15, 0x33, 0x32, 0x1e, 0x01,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x23, 0x17, 0x33, 0x16, 0x17, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x23, 0x21, 0x9b, 0x38, 0x25, 0x01, 0x51, 0x27, 0x1b,
+ 0x0f, 0x07, 0x02, 0xdb, 0x17, 0x2d, 0x1a, 0x37, 0x27, 0xfd, 0x50, 0x01,
+ 0x01, 0x31, 0x13, 0x12, 0x17, 0x19, 0x37, 0x3d, 0xe7, 0xa2, 0x18, 0x2d,
+ 0x19, 0x1b, 0x16, 0x2c, 0x79, 0x04, 0x30, 0x11, 0x10, 0x16, 0x1a, 0x37,
+ 0x26, 0xfd, 0x94, 0x04, 0x23, 0x2c, 0x3e, 0x1f, 0x11, 0x16, 0x1a, 0x33,
+ 0x1b, 0x2c, 0x3d, 0x0a, 0x02, 0x0b, 0x0e, 0x32, 0x1a, 0x2c, 0x3d, 0x0a,
+ 0x1c, 0x32, 0x1b, 0x2c, 0x1e, 0x1a, 0x02, 0x0c, 0x03, 0x0a, 0x0d, 0x32,
+ 0x1b, 0x2b, 0x3e, 0x00, 0x00, 0x02, 0x00, 0xa0, 0x00, 0xd4, 0x05, 0xd6,
+ 0x04, 0x8d, 0x00, 0x22, 0x00, 0x44, 0x00, 0x00, 0x25, 0x13, 0x34, 0x26,
+ 0x23, 0x21, 0x22, 0x07, 0x21, 0x30, 0x23, 0x22, 0x14, 0x33, 0x21, 0x07,
+ 0x21, 0x22, 0x15, 0x14, 0x33, 0x21, 0x07, 0x23, 0x22, 0x15, 0x14, 0x3b,
+ 0x01, 0x07, 0x23, 0x22, 0x15, 0x14, 0x33, 0x07, 0x26, 0x27, 0x36, 0x37,
+ 0x33, 0x37, 0x23, 0x26, 0x27, 0x36, 0x37, 0x33, 0x37, 0x21, 0x22, 0x27,
+ 0x36, 0x37, 0x21, 0x37, 0x21, 0x26, 0x27, 0x36, 0x33, 0x21, 0x36, 0x37,
+ 0x21, 0x32, 0x16, 0x15, 0x03, 0x05, 0x6e, 0x41, 0x2b, 0x1e, 0xfe, 0xc3,
+ 0x31, 0x15, 0xfd, 0x2a, 0x03, 0x48, 0x4b, 0x02, 0xb2, 0x0b, 0xfe, 0xc1,
+ 0x4b, 0x4b, 0x01, 0x1b, 0x08, 0xc7, 0x4b, 0x4b, 0x9c, 0x11, 0x38, 0x4a,
+ 0x4a, 0x19, 0x53, 0x01, 0x01, 0x53, 0x43, 0x03, 0x99, 0x54, 0x01, 0x01,
+ 0x54, 0xcd, 0x01, 0xfe, 0xe6, 0x54, 0x01, 0x01, 0x54, 0x01, 0x44, 0x04,
+ 0xfd, 0x50, 0x53, 0x01, 0x01, 0x53, 0x02, 0xdb, 0x1d, 0x3b, 0x01, 0x51,
+ 0x25, 0x38, 0x43, 0xf1, 0x03, 0x15, 0x25, 0x33, 0x39, 0x92, 0x4c, 0x4b,
+ 0x49, 0x4f, 0x4b, 0x48, 0x4c, 0x4b, 0x49, 0x1d, 0x01, 0x68, 0x67, 0x01,
+ 0x0e, 0x01, 0x68, 0x67, 0x01, 0x13, 0x68, 0x67, 0x01, 0x0f, 0x01, 0x68,
+ 0x67, 0x45, 0x02, 0x3f, 0x2d, 0xfc, 0xb3, 0x00, 0x00, 0x02, 0x00, 0x84,
+ 0x00, 0x00, 0x03, 0xde, 0x05, 0xca, 0x00, 0x21, 0x00, 0x44, 0x00, 0x00,
+ 0x37, 0x05, 0x32, 0x36, 0x35, 0x11, 0x34, 0x27, 0x11, 0x36, 0x23, 0x22,
+ 0x15, 0x11, 0x27, 0x11, 0x34, 0x23, 0x22, 0x15, 0x11, 0x27, 0x35, 0x34,
+ 0x23, 0x22, 0x1d, 0x01, 0x27, 0x35, 0x34, 0x23, 0x22, 0x15, 0x27, 0x36,
+ 0x37, 0x16, 0x17, 0x15, 0x17, 0x35, 0x36, 0x37, 0x16, 0x17, 0x15, 0x17,
+ 0x11, 0x34, 0x37, 0x16, 0x17, 0x11, 0x17, 0x11, 0x36, 0x37, 0x16, 0x15,
+ 0x11, 0x16, 0x17, 0x11, 0x14, 0x06, 0x23, 0x25, 0x13, 0x9f, 0x02, 0xc6,
+ 0x21, 0x2f, 0x35, 0x02, 0x42, 0x42, 0x44, 0x45, 0x41, 0x47, 0x43, 0x41,
+ 0x45, 0x43, 0x42, 0x1a, 0x01, 0x5e, 0x5c, 0x01, 0x0d, 0x01, 0x5d, 0x5d,
+ 0x01, 0x10, 0x5f, 0x5c, 0x01, 0x0e, 0x01, 0x5d, 0x5d, 0x3d, 0x02, 0x38,
+ 0x28, 0xfd, 0x06, 0x01, 0x73, 0x4a, 0x31, 0x20, 0x01, 0x62, 0x36, 0x16,
+ 0x03, 0x27, 0x53, 0x53, 0xfd, 0x02, 0x0d, 0x01, 0x63, 0x52, 0x52, 0xfe,
+ 0xc4, 0x09, 0xdf, 0x53, 0x53, 0xae, 0x12, 0x3f, 0x53, 0x53, 0x1c, 0x5c,
+ 0x01, 0x01, 0x5c, 0x4b, 0x04, 0xac, 0x5c, 0x01, 0x01, 0x5c, 0xe4, 0x03,
+ 0x01, 0x3b, 0x5c, 0x01, 0x01, 0x5c, 0xfe, 0x96, 0x04, 0x02, 0xfd, 0x5d,
+ 0x01, 0x01, 0x5d, 0xfc, 0xd4, 0x21, 0x41, 0xfe, 0x8a, 0x2a, 0x3e, 0x4b,
+ 0x02, 0x9b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9f, 0x00, 0xd3, 0x05, 0xd6,
+ 0x04, 0x8d, 0x00, 0x21, 0x00, 0x43, 0x00, 0x00, 0x25, 0x32, 0x35, 0x34,
+ 0x2b, 0x01, 0x27, 0x33, 0x32, 0x35, 0x34, 0x2b, 0x01, 0x27, 0x21, 0x32,
+ 0x35, 0x34, 0x23, 0x21, 0x27, 0x21, 0x32, 0x34, 0x2b, 0x01, 0x21, 0x26,
+ 0x23, 0x21, 0x22, 0x06, 0x15, 0x13, 0x07, 0x03, 0x34, 0x36, 0x33, 0x21,
+ 0x16, 0x17, 0x21, 0x32, 0x17, 0x06, 0x07, 0x21, 0x17, 0x21, 0x16, 0x17,
+ 0x06, 0x23, 0x21, 0x17, 0x33, 0x16, 0x17, 0x06, 0x07, 0x23, 0x17, 0x33,
+ 0x16, 0x17, 0x06, 0x07, 0x03, 0x61, 0x4b, 0x4b, 0x39, 0x10, 0x9d, 0x4a,
+ 0x4a, 0xc9, 0x08, 0x01, 0x1c, 0x4a, 0x4a, 0xfe, 0xc1, 0x0c, 0x02, 0xb1,
+ 0x4b, 0x47, 0x04, 0xfd, 0x2a, 0x14, 0x30, 0xfe, 0xc1, 0x1d, 0x2c, 0x43,
+ 0x24, 0x44, 0x38, 0x26, 0x01, 0x51, 0x3a, 0x1e, 0x02, 0xda, 0x54, 0x01,
+ 0x01, 0x54, 0xfd, 0x50, 0x04, 0x01, 0x45, 0x53, 0x01, 0x01, 0x53, 0xfe,
+ 0xe5, 0x03, 0xcd, 0x53, 0x01, 0x01, 0x53, 0x9b, 0x04, 0x43, 0x53, 0x01,
+ 0x01, 0x53, 0xf1, 0x49, 0x4b, 0x4c, 0x48, 0x4b, 0x4f, 0x49, 0x4b, 0x4c,
+ 0x92, 0x39, 0x33, 0x25, 0xfc, 0xeb, 0x1e, 0x03, 0x4e, 0x2d, 0x3f, 0x02,
+ 0x45, 0x67, 0x68, 0x01, 0x0f, 0x01, 0x67, 0x68, 0x13, 0x01, 0x67, 0x68,
+ 0x01, 0x0e, 0x01, 0x67, 0x69, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x84,
+ 0xff, 0xf9, 0x03, 0xde, 0x05, 0xc2, 0x00, 0x21, 0x00, 0x43, 0x00, 0x00,
+ 0x13, 0x14, 0x33, 0x32, 0x3d, 0x01, 0x37, 0x15, 0x14, 0x33, 0x32, 0x3d,
+ 0x01, 0x37, 0x11, 0x14, 0x33, 0x32, 0x35, 0x11, 0x37, 0x11, 0x14, 0x33,
+ 0x32, 0x27, 0x11, 0x36, 0x35, 0x11, 0x34, 0x26, 0x23, 0x05, 0x27, 0x25,
+ 0x32, 0x16, 0x15, 0x11, 0x06, 0x07, 0x11, 0x14, 0x07, 0x26, 0x27, 0x11,
+ 0x07, 0x11, 0x06, 0x07, 0x26, 0x35, 0x11, 0x07, 0x15, 0x06, 0x07, 0x26,
+ 0x27, 0x35, 0x07, 0x15, 0x06, 0x07, 0x26, 0x27, 0x9f, 0x42, 0x43, 0x45,
+ 0x41, 0x43, 0x47, 0x41, 0x45, 0x44, 0x42, 0x42, 0x02, 0x35, 0x2f, 0x21,
+ 0xfd, 0x3a, 0x1b, 0x02, 0xfa, 0x28, 0x38, 0x02, 0x3d, 0x5d, 0x5d, 0x01,
+ 0x0e, 0x01, 0x5c, 0x5f, 0x10, 0x01, 0x5d, 0x5d, 0x01, 0x0d, 0x01, 0x5c,
+ 0x5e, 0x01, 0x02, 0xb3, 0x53, 0x53, 0x3d, 0x14, 0xae, 0x53, 0x53, 0xdd,
+ 0x09, 0xfe, 0xc6, 0x53, 0x53, 0x01, 0x62, 0x0d, 0xfd, 0x01, 0x53, 0x53,
+ 0x03, 0x27, 0x17, 0x36, 0x01, 0x61, 0x21, 0x30, 0x4a, 0x29, 0x4b, 0x3e,
+ 0x2a, 0xfe, 0x8a, 0x42, 0x20, 0xfc, 0xd4, 0x5c, 0x01, 0x01, 0x5c, 0x02,
+ 0xfc, 0x04, 0xfe, 0x98, 0x5d, 0x01, 0x01, 0x5d, 0x01, 0x3a, 0x02, 0xe4,
+ 0x5d, 0x01, 0x01, 0x5d, 0xab, 0x04, 0x4a, 0x5d, 0x01, 0x01, 0x5d, 0x00,
+ 0x00, 0x1d, 0x00, 0x70, 0x00, 0x00, 0x06, 0x04, 0x05, 0xd8, 0x00, 0x4f,
+ 0x00, 0x80, 0x00, 0x8b, 0x00, 0x95, 0x00, 0xa4, 0x00, 0xb3, 0x00, 0xba,
+ 0x00, 0xc1, 0x00, 0xd6, 0x00, 0xdc, 0x00, 0xe3, 0x00, 0xe7, 0x00, 0xeb,
+ 0x00, 0xef, 0x00, 0xf3, 0x00, 0xf7, 0x00, 0xfb, 0x00, 0xff, 0x01, 0x03,
+ 0x01, 0x07, 0x01, 0x0b, 0x01, 0x1a, 0x01, 0x26, 0x01, 0x2a, 0x01, 0x2e,
+ 0x01, 0x32, 0x01, 0x36, 0x01, 0x3a, 0x01, 0x3e, 0x00, 0x00, 0x01, 0x20,
+ 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x17, 0x15, 0x14, 0x07, 0x33, 0x36,
+ 0x35, 0x36, 0x3b, 0x01, 0x32, 0x15, 0x16, 0x1d, 0x01, 0x06, 0x23, 0x27,
+ 0x06, 0x07, 0x15, 0x17, 0x37, 0x16, 0x15, 0x14, 0x07, 0x14, 0x2b, 0x01,
+ 0x22, 0x2f, 0x01, 0x06, 0x23, 0x22, 0x27, 0x06, 0x15, 0x06, 0x2b, 0x01,
+ 0x22, 0x35, 0x26, 0x35, 0x34, 0x37, 0x17, 0x37, 0x35, 0x25, 0x07, 0x22,
+ 0x27, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x1f, 0x01, 0x35, 0x27,
+ 0x37, 0x26, 0x35, 0x36, 0x37, 0x36, 0x01, 0x14, 0x17, 0x33, 0x35, 0x26,
+ 0x35, 0x36, 0x3b, 0x01, 0x17, 0x07, 0x17, 0x15, 0x07, 0x15, 0x14, 0x17,
+ 0x16, 0x1d, 0x01, 0x17, 0x33, 0x37, 0x34, 0x37, 0x36, 0x35, 0x27, 0x37,
+ 0x35, 0x27, 0x37, 0x16, 0x1d, 0x01, 0x07, 0x17, 0x36, 0x3d, 0x01, 0x34,
+ 0x27, 0x26, 0x2b, 0x01, 0x20, 0x07, 0x06, 0x05, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x2b, 0x01, 0x22, 0x27, 0x34, 0x21, 0x16, 0x17, 0x06, 0x23, 0x22,
+ 0x27, 0x34, 0x35, 0x34, 0x13, 0x33, 0x36, 0x33, 0x17, 0x36, 0x35, 0x26,
+ 0x35, 0x26, 0x23, 0x06, 0x07, 0x06, 0x15, 0x25, 0x06, 0x23, 0x06, 0x15,
+ 0x17, 0x37, 0x16, 0x17, 0x35, 0x34, 0x27, 0x26, 0x35, 0x26, 0x05, 0x17,
+ 0x15, 0x07, 0x26, 0x35, 0x34, 0x37, 0x16, 0x15, 0x14, 0x07, 0x27, 0x35,
+ 0x03, 0x16, 0x33, 0x36, 0x37, 0x26, 0x35, 0x34, 0x37, 0x06, 0x07, 0x06,
+ 0x2b, 0x01, 0x26, 0x27, 0x26, 0x27, 0x16, 0x15, 0x14, 0x37, 0x16, 0x17,
+ 0x33, 0x35, 0x26, 0x05, 0x15, 0x32, 0x3f, 0x01, 0x22, 0x07, 0x05, 0x15,
+ 0x17, 0x35, 0x25, 0x15, 0x37, 0x35, 0x05, 0x15, 0x17, 0x35, 0x33, 0x15,
+ 0x37, 0x27, 0x07, 0x15, 0x37, 0x27, 0x07, 0x15, 0x33, 0x35, 0x33, 0x15,
+ 0x33, 0x35, 0x07, 0x15, 0x17, 0x35, 0x17, 0x15, 0x33, 0x35, 0x07, 0x15,
+ 0x33, 0x35, 0x05, 0x27, 0x07, 0x15, 0x16, 0x15, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x26, 0x35, 0x06, 0x25, 0x07, 0x16, 0x15, 0x14, 0x17, 0x32,
+ 0x3f, 0x01, 0x26, 0x23, 0x07, 0x25, 0x07, 0x17, 0x35, 0x07, 0x15, 0x17,
+ 0x35, 0x27, 0x15, 0x17, 0x35, 0x17, 0x15, 0x37, 0x35, 0x37, 0x15, 0x37,
+ 0x35, 0x37, 0x15, 0x37, 0x35, 0x03, 0x4a, 0x01, 0x12, 0x83, 0x35, 0x5b,
+ 0x05, 0x16, 0x05, 0x90, 0x28, 0x20, 0x07, 0x39, 0x3f, 0x18, 0x38, 0x50,
+ 0xe0, 0x37, 0xd2, 0x3f, 0x56, 0x45, 0x3a, 0x05, 0x2e, 0x3e, 0xac, 0x44,
+ 0x9b, 0x9d, 0x41, 0xbc, 0x2e, 0x28, 0x0c, 0x33, 0x44, 0x50, 0x44, 0xce,
+ 0xfe, 0xee, 0x61, 0x3e, 0x07, 0x40, 0x03, 0x23, 0x1e, 0x2b, 0x36, 0x78,
+ 0x17, 0x0b, 0x60, 0x1f, 0xed, 0x5d, 0xfe, 0xbe, 0x3e, 0x07, 0x1c, 0x0a,
+ 0x0b, 0x0c, 0x11, 0x0b, 0x1c, 0x11, 0x8a, 0x3e, 0x5b, 0x50, 0x72, 0xb1,
+ 0x1d, 0x17, 0x1e, 0x0c, 0x1c, 0x17, 0x1c, 0x05, 0x40, 0xca, 0x73, 0x65,
+ 0x22, 0xfe, 0xcf, 0x5e, 0x12, 0x01, 0x4c, 0x29, 0x02, 0x32, 0x51, 0x06,
+ 0x46, 0x20, 0x01, 0xa0, 0xb7, 0x06, 0x22, 0x56, 0x3b, 0x3d, 0xd4, 0x05,
+ 0xfc, 0x16, 0x5c, 0x1c, 0x3f, 0x06, 0x12, 0x19, 0x2f, 0xe0, 0xfc, 0x85,
+ 0x0f, 0x0d, 0x2f, 0x2a, 0x55, 0x39, 0xd9, 0x5b, 0xb7, 0x16, 0x02, 0x27,
+ 0x0d, 0x2e, 0x22, 0x6e, 0x3f, 0x24, 0x2d, 0xf0, 0x29, 0xc0, 0xc4, 0x26,
+ 0x01, 0x1a, 0x21, 0x19, 0x44, 0x68, 0x32, 0xac, 0x0b, 0x06, 0x29, 0x14,
+ 0x0e, 0x12, 0x17, 0x05, 0x08, 0x01, 0x60, 0x0e, 0x02, 0x17, 0x0c, 0x15,
+ 0xfe, 0xba, 0x10, 0x01, 0x07, 0x17, 0xfe, 0xf4, 0x16, 0xb8, 0x18, 0x02,
+ 0x3f, 0x14, 0x02, 0x68, 0x1d, 0x12, 0x16, 0x94, 0x16, 0x68, 0x16, 0x45,
+ 0x1d, 0xfe, 0x2d, 0x67, 0x06, 0x3e, 0x05, 0x0d, 0x11, 0x3f, 0x8c, 0x1e,
+ 0x11, 0xa7, 0x02, 0xc0, 0x10, 0xcc, 0x2e, 0x12, 0x0b, 0x38, 0x05, 0x1c,
+ 0x56, 0xfd, 0xe0, 0x03, 0x1a, 0x16, 0x16, 0x65, 0x17, 0xb7, 0x19, 0x0d,
+ 0x17, 0x12, 0x17, 0x05, 0xd8, 0xc1, 0x6c, 0x54, 0x45, 0x72, 0x66, 0x5e,
+ 0x06, 0x35, 0x2e, 0x3e, 0x3d, 0x39, 0x7c, 0x35, 0x22, 0x18, 0x2d, 0x07,
+ 0x6c, 0x29, 0x12, 0x64, 0x0d, 0x12, 0x2c, 0x26, 0x3e, 0x76, 0x76, 0x5d,
+ 0x63, 0x63, 0x63, 0x19, 0x57, 0x70, 0x43, 0x2d, 0x2b, 0x0d, 0x0d, 0x64,
+ 0x12, 0x95, 0x07, 0x38, 0x0d, 0x1b, 0x42, 0x70, 0x70, 0x3e, 0x06, 0x57,
+ 0x5d, 0x6f, 0xd8, 0xe6, 0x61, 0x1d, 0xfe, 0x78, 0x76, 0x75, 0x50, 0x70,
+ 0x38, 0x32, 0x13, 0x2c, 0x8e, 0x44, 0xa8, 0x0c, 0x5e, 0x1e, 0x38, 0x2c,
+ 0x18, 0x0d, 0x1a, 0x5e, 0x42, 0x24, 0x4b, 0xbb, 0x9c, 0x12, 0x2b, 0x14,
+ 0x0b, 0x22, 0x31, 0xae, 0x18, 0x52, 0x5b, 0x2b, 0xd2, 0x65, 0x2a, 0xf1,
+ 0x3b, 0xd0, 0x0d, 0x32, 0x0b, 0x0d, 0x9b, 0x9b, 0x57, 0x0a, 0x51, 0x97,
+ 0x9b, 0x03, 0x02, 0x50, 0xfe, 0x12, 0x82, 0x05, 0x08, 0x0a, 0x49, 0x26,
+ 0x3f, 0x09, 0x67, 0x70, 0x13, 0xeb, 0x6f, 0x25, 0x19, 0x0b, 0x05, 0x12,
+ 0x77, 0x0d, 0x5e, 0x19, 0x53, 0x41, 0x24, 0x0d, 0x07, 0x9f, 0x32, 0x0c,
+ 0x39, 0x69, 0x2d, 0x35, 0x6e, 0x30, 0x08, 0x32, 0xa2, 0xfe, 0x86, 0xc7,
+ 0x0e, 0xbf, 0x0a, 0x0c, 0x41, 0x69, 0x26, 0xae, 0x49, 0x16, 0x59, 0x5e,
+ 0x50, 0x5d, 0x44, 0x13, 0x9b, 0x25, 0x88, 0x5c, 0x3f, 0x3f, 0x5c, 0x4f,
+ 0x57, 0x43, 0x0d, 0x2c, 0x05, 0x2c, 0x05, 0x31, 0x0a, 0x2f, 0x0f, 0x32,
+ 0x05, 0x31, 0x31, 0x08, 0x2f, 0x06, 0x3d, 0x02, 0x3b, 0x06, 0x37, 0x37,
+ 0x37, 0x37, 0x3d, 0x33, 0x05, 0x32, 0x0e, 0x31, 0x38, 0x07, 0x31, 0x31,
+ 0x7b, 0x05, 0x05, 0x13, 0x39, 0x30, 0x38, 0x68, 0x4e, 0x1d, 0x25, 0x1e,
+ 0x62, 0x5c, 0x44, 0x68, 0x2c, 0x0f, 0x29, 0x68, 0x3f, 0x12, 0x05, 0xcc,
+ 0x31, 0x06, 0x37, 0x49, 0x32, 0x06, 0x31, 0x21, 0x31, 0x07, 0x32, 0x18,
+ 0x32, 0x06, 0x32, 0x04, 0x32, 0x05, 0x33, 0x0a, 0x32, 0x07, 0x31, 0x00,
+ 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0x05, 0xdb, 0x05, 0xd8, 0x00, 0x26,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x01, 0x07, 0x14,
+ 0x17, 0x25, 0x32, 0x17, 0x15, 0x14, 0x23, 0x05, 0x22, 0x27, 0x26, 0x3d,
+ 0x01, 0x34, 0x37, 0x00, 0x37, 0x36, 0x35, 0x34, 0x27, 0x23, 0x05, 0x22,
+ 0x27, 0x35, 0x34, 0x37, 0x33, 0x03, 0xd5, 0x81, 0x65, 0x2f, 0x6f, 0xfd,
+ 0xae, 0x0a, 0x57, 0x03, 0x16, 0x46, 0x08, 0x5e, 0xfc, 0xf7, 0x91, 0x61,
+ 0x18, 0x7d, 0x02, 0x2f, 0x12, 0x0a, 0x58, 0x0a, 0xfd, 0x09, 0x33, 0x0a,
+ 0x58, 0x0d, 0x05, 0xd8, 0x8d, 0x4d, 0x4f, 0x8a, 0x62, 0xfd, 0xa0, 0x3e,
+ 0x59, 0x1a, 0xd1, 0x61, 0x03, 0x59, 0xc6, 0xae, 0x35, 0x38, 0x18, 0x8a,
+ 0x6c, 0x02, 0x37, 0x1b, 0x1b, 0x16, 0x50, 0x20, 0xcc, 0x50, 0x1e, 0x40,
+ 0x0c, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0xd8, 0x00, 0x11, 0x00, 0x24, 0x00, 0x30, 0x00, 0x3c, 0x00, 0x46,
+ 0x00, 0x58, 0x00, 0x00, 0x01, 0x20, 0x13, 0x16, 0x15, 0x10, 0x05, 0x06,
+ 0x2b, 0x01, 0x20, 0x03, 0x26, 0x3d, 0x01, 0x10, 0x01, 0x36, 0x05, 0x26,
+ 0x23, 0x20, 0x03, 0x06, 0x15, 0x10, 0x17, 0x16, 0x33, 0x20, 0x13, 0x36,
+ 0x3d, 0x01, 0x10, 0x25, 0x26, 0x01, 0x23, 0x22, 0x27, 0x13, 0x16, 0x3b,
+ 0x01, 0x32, 0x37, 0x13, 0x06, 0x01, 0x06, 0x1d, 0x01, 0x21, 0x35, 0x10,
+ 0x25, 0x36, 0x37, 0x13, 0x06, 0x25, 0x16, 0x17, 0x21, 0x26, 0x27, 0x26,
+ 0x27, 0x13, 0x16, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b,
+ 0x01, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x34, 0x37, 0x36, 0x03, 0x2e, 0x01,
+ 0x59, 0xee, 0x66, 0xfe, 0xe3, 0xae, 0xbf, 0x1d, 0xfe, 0xaa, 0xec, 0x59,
+ 0x01, 0x30, 0xa7, 0x01, 0xe8, 0x96, 0x96, 0xfe, 0xf2, 0xd4, 0x71, 0xfb,
+ 0xa0, 0xc9, 0x01, 0x33, 0xd2, 0x50, 0xfe, 0xce, 0x04, 0xfe, 0xf2, 0x19,
+ 0x97, 0x7f, 0xbc, 0x2b, 0x32, 0x08, 0x2d, 0x29, 0xbf, 0x7f, 0xfe, 0xfd,
+ 0x56, 0xfe, 0x82, 0x01, 0x02, 0x10, 0x11, 0xbd, 0x06, 0x02, 0x45, 0x56,
+ 0x03, 0xfe, 0x80, 0x01, 0x1c, 0x1e, 0x27, 0xbd, 0x71, 0xfe, 0x75, 0x49,
+ 0x33, 0x16, 0x3d, 0x25, 0x29, 0x07, 0x48, 0x33, 0x12, 0x41, 0x23, 0x05,
+ 0xd8, 0xfe, 0x8d, 0xaf, 0xd6, 0xfe, 0xb0, 0xfd, 0x93, 0x01, 0x83, 0xae,
+ 0xb2, 0x1c, 0x01, 0x53, 0x01, 0x02, 0x84, 0xac, 0x5d, 0xfe, 0xd9, 0xb1,
+ 0xc2, 0xfe, 0xc4, 0xe2, 0x8a, 0x01, 0x5a, 0x96, 0xa6, 0x0f, 0x01, 0x59,
+ 0xe0, 0x04, 0xfb, 0x48, 0x59, 0x01, 0x6f, 0x1f, 0x1d, 0xfe, 0x92, 0x58,
+ 0x03, 0x28, 0x49, 0x5f, 0x05, 0x10, 0x01, 0x20, 0xdb, 0x0d, 0x0c, 0xfe,
+ 0x92, 0x04, 0x8f, 0x91, 0xb0, 0x3b, 0x2e, 0x32, 0x19, 0x01, 0x6c, 0x4f,
+ 0xfe, 0xcf, 0x50, 0x25, 0x2e, 0x47, 0x36, 0x1f, 0x52, 0x25, 0x26, 0x05,
+ 0x49, 0x38, 0x1c, 0x00, 0x00, 0x06, 0x00, 0x5a, 0x00, 0x00, 0x06, 0x1b,
+ 0x05, 0xd8, 0x00, 0x0f, 0x00, 0x1d, 0x00, 0x29, 0x00, 0x4e, 0x00, 0x6c,
+ 0x00, 0x8d, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x35, 0x34, 0x27, 0x36, 0x37,
+ 0x16, 0x15, 0x14, 0x06, 0x07, 0x26, 0x35, 0x34, 0x03, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x26, 0x27, 0x36, 0x33, 0x32, 0x16, 0x17, 0x06, 0x01, 0x14,
+ 0x16, 0x17, 0x06, 0x07, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x16, 0x01, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x37, 0x16, 0x33,
+ 0x32, 0x37, 0x17, 0x06, 0x15, 0x14, 0x17, 0x1e, 0x01, 0x33, 0x32, 0x01,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x33, 0x16, 0x17, 0x16, 0x11, 0x15,
+ 0x2e, 0x01, 0x23, 0x06, 0x07, 0x27, 0x36, 0x35, 0x34, 0x27, 0x35, 0x36,
+ 0x37, 0x36, 0x35, 0x34, 0x26, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3b,
+ 0x01, 0x27, 0x26, 0x27, 0x12, 0x37, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x16,
+ 0x1f, 0x01, 0x06, 0x15, 0x14, 0x17, 0x07, 0x26, 0x2b, 0x01, 0x22, 0x23,
+ 0x22, 0x06, 0x03, 0xcc, 0x3d, 0x41, 0x01, 0x21, 0x20, 0x02, 0x6d, 0x4d,
+ 0x09, 0x0c, 0x39, 0x44, 0x07, 0x52, 0x37, 0x1e, 0x13, 0x4e, 0x69, 0x06,
+ 0x78, 0x42, 0x16, 0xfe, 0x57, 0x52, 0x3f, 0x03, 0x0e, 0x5e, 0x64, 0x02,
+ 0x26, 0x03, 0x61, 0x62, 0x96, 0x29, 0x2d, 0x94, 0x52, 0x01, 0x37, 0x6b,
+ 0x53, 0x57, 0x6f, 0x73, 0x4c, 0x48, 0x32, 0xa5, 0x34, 0x2b, 0x19, 0x3e,
+ 0x1f, 0x1d, 0x1c, 0x1a, 0x3a, 0x18, 0x32, 0x38, 0x90, 0x3e, 0x48, 0xfe,
+ 0xc9, 0x92, 0x53, 0x0f, 0x3e, 0x03, 0x5f, 0x6c, 0xaf, 0x0b, 0xbd, 0x65,
+ 0xa5, 0x75, 0x3f, 0x01, 0x39, 0xa3, 0x4c, 0x30, 0x16, 0xfb, 0xf9, 0x04,
+ 0x6d, 0x62, 0xa2, 0x10, 0x02, 0x27, 0x02, 0x0f, 0xf9, 0xa0, 0x1e, 0x22,
+ 0x5b, 0xac, 0x01, 0x3c, 0x02, 0x3a, 0x65, 0x96, 0x0c, 0x03, 0x04, 0x73,
+ 0xa0, 0x01, 0x91, 0x28, 0x8b, 0x41, 0x0c, 0x0c, 0x0e, 0x05, 0x13, 0x12,
+ 0x5f, 0xc3, 0x25, 0x18, 0x19, 0x0e, 0x02, 0x0d, 0x23, 0x04, 0x2b, 0x16,
+ 0x1c, 0x42, 0x05, 0x37, 0x21, 0xfe, 0xea, 0x4e, 0x8f, 0x20, 0x26, 0x22,
+ 0x2e, 0xcb, 0x4f, 0x10, 0x0f, 0x06, 0xfd, 0xb2, 0x53, 0x06, 0x24, 0xaa,
+ 0x02, 0x58, 0x45, 0x2f, 0x4b, 0x28, 0x41, 0x61, 0x5d, 0x64, 0x4c, 0x50,
+ 0x2a, 0x18, 0x17, 0x27, 0x46, 0x43, 0x61, 0x59, 0x72, 0x3d, 0x05, 0xa0,
+ 0x43, 0xd9, 0x34, 0x34, 0x6d, 0x6f, 0x0a, 0x43, 0x82, 0xfe, 0xff, 0x0a,
+ 0x9d, 0xb6, 0x0a, 0x93, 0x28, 0x07, 0x07, 0x46, 0x19, 0x4b, 0x1f, 0x9c,
+ 0x57, 0x59, 0x1a, 0x8e, 0xfc, 0x46, 0x18, 0x19, 0x95, 0xa1, 0x76, 0x02,
+ 0x62, 0x89, 0x01, 0x0e, 0x70, 0x68, 0xb4, 0x27, 0x55, 0x44, 0x98, 0x27,
+ 0x52, 0x1d, 0x3c, 0x09, 0x0a, 0x24, 0x88, 0x93, 0x00, 0x17, 0x00, 0x5a,
+ 0xff, 0xfc, 0x04, 0x77, 0x05, 0xd1, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x23,
+ 0x00, 0x2b, 0x00, 0x3f, 0x00, 0x56, 0x00, 0x6d, 0x00, 0x83, 0x00, 0xa2,
+ 0x00, 0xad, 0x00, 0xb2, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xc1, 0x00, 0xc9,
+ 0x00, 0xd0, 0x00, 0xd5, 0x00, 0xda, 0x00, 0xdf, 0x00, 0xe5, 0x00, 0xed,
+ 0x00, 0xf4, 0x01, 0x23, 0x00, 0x00, 0x01, 0x06, 0x15, 0x14, 0x33, 0x32,
+ 0x37, 0x26, 0x17, 0x22, 0x07, 0x06, 0x23, 0x22, 0x27, 0x37, 0x27, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x06, 0x07, 0x26, 0x27, 0x36, 0x35, 0x34,
+ 0x01, 0x06, 0x07, 0x23, 0x26, 0x37, 0x03, 0x16, 0x33, 0x32, 0x35, 0x34,
+ 0x27, 0x26, 0x13, 0x15, 0x06, 0x23, 0x22, 0x27, 0x35, 0x26, 0x35, 0x36,
+ 0x37, 0x16, 0x17, 0x06, 0x15, 0x14, 0x04, 0x07, 0x23, 0x26, 0x27, 0x15,
+ 0x27, 0x35, 0x26, 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x15, 0x14, 0x04,
+ 0x15, 0x14, 0x07, 0x27, 0x36, 0x35, 0x34, 0x27, 0x34, 0x03, 0x15, 0x27,
+ 0x35, 0x24, 0x27, 0x36, 0x37, 0x16, 0x17, 0x06, 0x15, 0x14, 0x17, 0x06,
+ 0x04, 0x17, 0x06, 0x07, 0x27, 0x36, 0x35, 0x34, 0x07, 0x26, 0x27, 0x36,
+ 0x37, 0x16, 0x17, 0x06, 0x15, 0x14, 0x04, 0x17, 0x06, 0x07, 0x26, 0x27,
+ 0x36, 0x35, 0x34, 0x27, 0x15, 0x27, 0x13, 0x15, 0x27, 0x35, 0x24, 0x35,
+ 0x36, 0x37, 0x33, 0x32, 0x17, 0x07, 0x17, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x23, 0x22, 0x15, 0x14, 0x04, 0x17, 0x06, 0x07, 0x26, 0x27, 0x36, 0x27,
+ 0x36, 0x01, 0x14, 0x1e, 0x01, 0x33, 0x26, 0x34, 0x37, 0x22, 0x0e, 0x01,
+ 0x05, 0x16, 0x17, 0x37, 0x26, 0x27, 0x16, 0x17, 0x37, 0x26, 0x27, 0x16,
+ 0x17, 0x37, 0x26, 0x27, 0x16, 0x07, 0x37, 0x26, 0x27, 0x14, 0x15, 0x14,
+ 0x07, 0x17, 0x35, 0x34, 0x27, 0x06, 0x07, 0x17, 0x36, 0x35, 0x34, 0x05,
+ 0x17, 0x36, 0x37, 0x06, 0x07, 0x17, 0x36, 0x37, 0x06, 0x07, 0x17, 0x36,
+ 0x37, 0x06, 0x1f, 0x01, 0x35, 0x34, 0x37, 0x06, 0x17, 0x37, 0x26, 0x35,
+ 0x34, 0x35, 0x06, 0x15, 0x3f, 0x01, 0x26, 0x27, 0x14, 0x15, 0x14, 0x17,
+ 0x15, 0x27, 0x35, 0x26, 0x23, 0x22, 0x07, 0x22, 0x27, 0x36, 0x25, 0x16,
+ 0x17, 0x16, 0x33, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01,
+ 0x32, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x31, 0x14, 0x31,
+ 0x15, 0x36, 0x37, 0x04, 0x17, 0x06, 0x23, 0x26, 0x23, 0x22, 0x03, 0x02,
+ 0x04, 0x0a, 0x0b, 0x16, 0x09, 0x47, 0x06, 0x07, 0x3c, 0x31, 0x17, 0x14,
+ 0x52, 0x61, 0x20, 0x37, 0x0a, 0x0c, 0xb8, 0x0b, 0x01, 0x7f, 0x3f, 0x8e,
+ 0xf7, 0xfe, 0xae, 0x56, 0x1c, 0x0d, 0x01, 0x4d, 0x5d, 0x18, 0x0c, 0x09,
+ 0x05, 0x1f, 0xd8, 0x0a, 0x18, 0x1e, 0x03, 0x9d, 0x04, 0x3a, 0x29, 0x28,
+ 0x37, 0x01, 0x17, 0x02, 0x0e, 0x17, 0x68, 0x43, 0xfc, 0x04, 0x02, 0x73,
+ 0x2f, 0x4e, 0x9d, 0x01, 0x8a, 0x65, 0x2c, 0x3e, 0x01, 0x48, 0x43, 0xfe,
+ 0xb7, 0x02, 0x04, 0x66, 0x45, 0x5f, 0xba, 0x01, 0x09, 0x02, 0x37, 0x02,
+ 0x04, 0x87, 0x5e, 0x93, 0xe4, 0xf2, 0x05, 0x01, 0x65, 0x41, 0x42, 0x93,
+ 0x01, 0xe0, 0x02, 0x03, 0x9d, 0x1e, 0x34, 0x9e, 0xaa, 0x43, 0x43, 0x43,
+ 0xfe, 0xa7, 0x0c, 0xb8, 0x08, 0x37, 0x2e, 0x62, 0x53, 0x15, 0x15, 0x33,
+ 0x3b, 0x07, 0x07, 0x25, 0x02, 0x89, 0x06, 0x06, 0x9d, 0x39, 0x64, 0xed,
+ 0x02, 0x0b, 0xfe, 0x9e, 0x10, 0x1d, 0x11, 0x0e, 0x0e, 0x10, 0x1e, 0x10,
+ 0x01, 0x8d, 0x69, 0x27, 0x19, 0x57, 0x88, 0x68, 0x22, 0x26, 0x56, 0x71,
+ 0x48, 0x0f, 0x2c, 0x37, 0x75, 0x30, 0x01, 0x37, 0x23, 0x5d, 0x13, 0x36,
+ 0x37, 0x2d, 0x2f, 0x36, 0x27, 0xfd, 0x5d, 0x19, 0x28, 0x68, 0x52, 0x28,
+ 0x26, 0x22, 0x68, 0x5a, 0x12, 0x2c, 0x0f, 0x48, 0x4b, 0x0e, 0x38, 0x2e,
+ 0x43, 0x3a, 0x37, 0x14, 0x23, 0x5d, 0x36, 0x2f, 0x2d, 0xce, 0x43, 0x29,
+ 0x40, 0x20, 0x26, 0xf0, 0x50, 0x4c, 0x01, 0x3c, 0x14, 0x50, 0x02, 0x01,
+ 0x03, 0x02, 0x12, 0x14, 0x14, 0x25, 0x26, 0x25, 0x15, 0x14, 0x12, 0x03,
+ 0x02, 0x4f, 0x15, 0x01, 0x3b, 0x4c, 0x50, 0xf0, 0x26, 0x21, 0x3d, 0x04,
+ 0x20, 0x08, 0x04, 0x09, 0x0a, 0x14, 0x3f, 0x02, 0x18, 0x05, 0x17, 0x19,
+ 0x3e, 0x02, 0x04, 0x7d, 0x3e, 0x20, 0x11, 0x09, 0x14, 0x2a, 0x30, 0xfc,
+ 0x74, 0x22, 0x3c, 0x48, 0x23, 0x03, 0xa6, 0x0b, 0x08, 0x05, 0x09, 0x09,
+ 0xfc, 0x2d, 0x38, 0x1a, 0x38, 0x29, 0x1e, 0x36, 0x31, 0x18, 0x0d, 0x06,
+ 0x15, 0x15, 0x29, 0x36, 0x66, 0x38, 0xad, 0x5a, 0x0d, 0x5c, 0x2b, 0x48,
+ 0x44, 0x20, 0x13, 0x09, 0x1a, 0x27, 0x2a, 0x3e, 0x4a, 0x2e, 0x0e, 0x0b,
+ 0x11, 0x1d, 0x05, 0x05, 0x17, 0x01, 0x99, 0x8c, 0x0d, 0x89, 0x26, 0x62,
+ 0x35, 0x16, 0x14, 0x07, 0x0f, 0x1d, 0x02, 0x02, 0x34, 0x43, 0x55, 0x45,
+ 0x20, 0x1b, 0x27, 0x1a, 0x27, 0xa4, 0x21, 0x60, 0x39, 0x1e, 0x0c, 0x07,
+ 0x21, 0x2c, 0x28, 0x4d, 0x54, 0x45, 0x15, 0x0f, 0x0b, 0x1e, 0x2a, 0x21,
+ 0x1d, 0x85, 0x0c, 0x02, 0x04, 0x7f, 0x08, 0x7d, 0x15, 0x71, 0x7e, 0x04,
+ 0x3d, 0x18, 0x17, 0x05, 0x18, 0x02, 0x2f, 0x2b, 0x29, 0x66, 0x5b, 0x14,
+ 0x10, 0x0f, 0x1c, 0x34, 0x1f, 0x02, 0x66, 0x12, 0x20, 0x11, 0x21, 0x42,
+ 0x22, 0x11, 0x20, 0x3c, 0x40, 0x30, 0x26, 0x39, 0x15, 0x63, 0x3f, 0x22,
+ 0x56, 0x2b, 0x80, 0x47, 0x13, 0x6f, 0x4d, 0x93, 0x4b, 0x08, 0x7e, 0x61,
+ 0x11, 0x0f, 0x84, 0x3f, 0x0b, 0x0c, 0x7d, 0x62, 0x89, 0x39, 0x19, 0x65,
+ 0x5c, 0x0d, 0x50, 0x26, 0x30, 0x40, 0x11, 0x6b, 0x22, 0x3f, 0x63, 0x2a,
+ 0x89, 0x13, 0x47, 0x80, 0x45, 0x89, 0x08, 0x06, 0x4a, 0x8e, 0x58, 0x8d,
+ 0x0b, 0x3f, 0x84, 0x0f, 0x11, 0x65, 0x7d, 0x04, 0x19, 0x39, 0x89, 0x0d,
+ 0x0d, 0x5c, 0xab, 0xce, 0x06, 0xc2, 0x34, 0x0c, 0xa5, 0x5c, 0x06, 0x36,
+ 0x1e, 0x01, 0x18, 0x01, 0x02, 0x0a, 0x27, 0x16, 0x15, 0x27, 0x16, 0x16,
+ 0x27, 0x15, 0x16, 0x27, 0x0a, 0x02, 0x01, 0x01, 0x16, 0x1e, 0x36, 0x06,
+ 0x5c, 0xa5, 0x0d, 0x00, 0x00, 0x02, 0x00, 0x99, 0x00, 0x00, 0x04, 0xc7,
+ 0x05, 0xd9, 0x00, 0x08, 0x00, 0x28, 0x00, 0x00, 0x01, 0x26, 0x27, 0x06,
+ 0x07, 0x16, 0x17, 0x36, 0x35, 0x03, 0x26, 0x27, 0x36, 0x37, 0x16, 0x17,
+ 0x15, 0x14, 0x07, 0x33, 0x32, 0x37, 0x11, 0x26, 0x2b, 0x02, 0x11, 0x14,
+ 0x17, 0x21, 0x36, 0x35, 0x11, 0x2b, 0x01, 0x22, 0x07, 0x11, 0x16, 0x33,
+ 0x03, 0x20, 0x02, 0x6d, 0x6d, 0x01, 0x07, 0x67, 0x6f, 0xb1, 0x6b, 0x0b,
+ 0x03, 0xb5, 0xb6, 0x03, 0x76, 0x93, 0xa3, 0x9c, 0x98, 0xa1, 0x05, 0x94,
+ 0x59, 0xfe, 0xc9, 0x59, 0x97, 0x06, 0xa1, 0x98, 0x9d, 0xa2, 0x04, 0xde,
+ 0xb1, 0x02, 0x02, 0xb1, 0x8e, 0x71, 0x58, 0x9f, 0xfe, 0xf1, 0x65, 0xb8,
+ 0xf3, 0x02, 0x02, 0xf3, 0x0e, 0xb7, 0x58, 0x63, 0xfe, 0xf7, 0x36, 0xfe,
+ 0x0c, 0xb5, 0xae, 0xae, 0xb5, 0x01, 0xf4, 0x36, 0x01, 0x09, 0x63, 0x00,
+ 0x00, 0x03, 0x00, 0x99, 0xff, 0xfd, 0x04, 0x14, 0x05, 0xd9, 0x00, 0x03,
+ 0x00, 0x20, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x15, 0x33, 0x35, 0x27, 0x35,
+ 0x33, 0x15, 0x33, 0x15, 0x23, 0x15, 0x33, 0x05, 0x15, 0x21, 0x11, 0x17,
+ 0x15, 0x27, 0x03, 0x23, 0x11, 0x27, 0x35, 0x17, 0x11, 0x21, 0x35, 0x21,
+ 0x35, 0x23, 0x35, 0x13, 0x33, 0x11, 0x33, 0x35, 0x23, 0x35, 0x23, 0x15,
+ 0x23, 0x15, 0x33, 0x01, 0xf5, 0xb6, 0xa5, 0x9a, 0x71, 0x71, 0x08, 0x01,
+ 0x6c, 0xfe, 0x8c, 0x81, 0x7a, 0x01, 0xa0, 0x79, 0x79, 0xfe, 0x93, 0x01,
+ 0x6d, 0x6a, 0x94, 0x40, 0xf1, 0xf1, 0x40, 0xf0, 0xf0, 0x05, 0x40, 0x3c,
+ 0x3c, 0x33, 0x66, 0x66, 0xa2, 0x58, 0x01, 0xaf, 0xfd, 0xe8, 0x8b, 0x9c,
+ 0x85, 0xfe, 0xee, 0x01, 0xbc, 0x86, 0x9b, 0x82, 0x01, 0x71, 0xb0, 0x58,
+ 0xa2, 0xfc, 0xcf, 0x01, 0xbb, 0x47, 0x63, 0x63, 0x47, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x99, 0x00, 0x00, 0x05, 0x0c, 0x07, 0x4a, 0x00, 0x07,
+ 0x00, 0x20, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23,
+ 0x01, 0x11, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x37,
+ 0x33, 0x09, 0x01, 0x23, 0x03, 0x11, 0x23, 0x11, 0x03, 0x23, 0x09, 0x01,
+ 0x33, 0x02, 0xd7, 0xbc, 0x69, 0x72, 0x72, 0x69, 0xfe, 0xb0, 0x01, 0x50,
+ 0xba, 0xbf, 0xbf, 0xba, 0xbc, 0xc4, 0xc6, 0xfe, 0x90, 0x01, 0x83, 0xc5,
+ 0xd7, 0x95, 0xe5, 0xc5, 0x01, 0x8b, 0xfe, 0x96, 0xc6, 0x06, 0xa7, 0xfd,
+ 0xd8, 0x90, 0x01, 0x08, 0x90, 0xfc, 0x04, 0x04, 0x9f, 0xdf, 0xd8, 0xd9,
+ 0xde, 0xfe, 0xcd, 0xed, 0xfe, 0x42, 0xfe, 0x28, 0x01, 0x06, 0xfe, 0xfa,
+ 0x01, 0x17, 0xfe, 0xe9, 0x01, 0xe1, 0x01, 0xb5, 0x00, 0x01, 0x00, 0x99,
+ 0x00, 0x00, 0x03, 0x54, 0x05, 0xd7, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x33,
+ 0x17, 0x15, 0x33, 0x17, 0x15, 0x07, 0x23, 0x15, 0x21, 0x17, 0x15, 0x07,
+ 0x21, 0x11, 0x07, 0x23, 0x27, 0x11, 0x21, 0x27, 0x35, 0x37, 0x21, 0x35,
+ 0x23, 0x27, 0x35, 0x37, 0x33, 0x35, 0x01, 0xa8, 0x9a, 0x05, 0x95, 0x04,
+ 0x04, 0x95, 0x01, 0x07, 0x05, 0x05, 0xfe, 0xf9, 0x05, 0x9a, 0x06, 0xfe,
+ 0xfc, 0x05, 0x05, 0x01, 0x04, 0x92, 0x05, 0x05, 0x92, 0x05, 0xd7, 0x05,
+ 0x9b, 0x06, 0x94, 0x06, 0x71, 0x06, 0x98, 0x05, 0xfc, 0x82, 0x05, 0x05,
+ 0x03, 0x7e, 0x05, 0x98, 0x06, 0x71, 0x06, 0x94, 0x06, 0x9b, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x99, 0xff, 0xfd, 0x05, 0xdc, 0x05, 0xd5, 0x00, 0x2b,
+ 0x00, 0x00, 0x01, 0x21, 0x17, 0x15, 0x07, 0x23, 0x11, 0x21, 0x35, 0x37,
+ 0x33, 0x17, 0x11, 0x07, 0x23, 0x27, 0x35, 0x21, 0x11, 0x33, 0x17, 0x15,
+ 0x07, 0x21, 0x27, 0x35, 0x37, 0x33, 0x11, 0x21, 0x15, 0x07, 0x23, 0x27,
+ 0x11, 0x37, 0x33, 0x17, 0x15, 0x21, 0x11, 0x23, 0x27, 0x35, 0x02, 0x75,
+ 0x01, 0x8a, 0x06, 0x06, 0x90, 0x02, 0x02, 0x06, 0x5f, 0x05, 0x05, 0x5f,
+ 0x06, 0xfd, 0xfe, 0x90, 0x06, 0x06, 0xfe, 0x76, 0x05, 0x05, 0x99, 0xfd,
+ 0xfd, 0x05, 0x68, 0x05, 0x05, 0x68, 0x05, 0x02, 0x03, 0x99, 0x05, 0x05,
+ 0xd5, 0x06, 0x77, 0x06, 0xfd, 0xd1, 0xa1, 0x06, 0x06, 0xfe, 0x49, 0x06,
+ 0x06, 0x9e, 0xfd, 0xc8, 0x06, 0x6a, 0x06, 0x06, 0x6a, 0x06, 0x02, 0x38,
+ 0x9e, 0x06, 0x06, 0x01, 0xb7, 0x06, 0x06, 0xa1, 0x02, 0x2f, 0x06, 0x77,
+ 0x00, 0x02, 0x00, 0xa0, 0x00, 0x00, 0x05, 0xd6, 0x05, 0xd8, 0x00, 0x1b,
+ 0x00, 0x2c, 0x00, 0x00, 0x01, 0x33, 0x32, 0x17, 0x23, 0x27, 0x20, 0x03,
+ 0x06, 0x15, 0x10, 0x05, 0x16, 0x33, 0x37, 0x15, 0x06, 0x07, 0x06, 0x2b,
+ 0x01, 0x20, 0x03, 0x26, 0x35, 0x10, 0x25, 0x36, 0x01, 0x33, 0x32, 0x17,
+ 0x33, 0x15, 0x07, 0x16, 0x15, 0x27, 0x07, 0x23, 0x35, 0x37, 0x27, 0x35,
+ 0x33, 0x03, 0x40, 0x12, 0xc7, 0xbd, 0x05, 0xd7, 0xfe, 0xcb, 0xbc, 0x55,
+ 0x01, 0x34, 0x7b, 0x8c, 0xe7, 0x90, 0x7c, 0x49, 0x30, 0x19, 0xfe, 0xb5,
+ 0xd6, 0x77, 0x01, 0x5f, 0x9b, 0x02, 0x3f, 0x03, 0x05, 0x38, 0xbc, 0x97,
+ 0x3a, 0x9f, 0x98, 0x03, 0x3c, 0x9b, 0xc0, 0x05, 0xd8, 0x92, 0x36, 0xfe,
+ 0xca, 0x9e, 0xb9, 0xfe, 0x92, 0xd6, 0x47, 0x32, 0x06, 0x6b, 0x1a, 0x0b,
+ 0x01, 0x3e, 0xc0, 0xe9, 0x01, 0xaa, 0xee, 0x59, 0xfe, 0x33, 0xc9, 0x03,
+ 0x7e, 0xbb, 0x11, 0x7c, 0x7c, 0x03, 0xc9, 0x7e, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdd, 0x05, 0xd9, 0x00, 0x16,
+ 0x00, 0x4f, 0x00, 0x62, 0x00, 0x73, 0x00, 0x00, 0x01, 0x16, 0x33, 0x32,
+ 0x37, 0x16, 0x33, 0x32, 0x37, 0x35, 0x33, 0x17, 0x15, 0x14, 0x0f, 0x01,
+ 0x22, 0x27, 0x06, 0x23, 0x22, 0x27, 0x34, 0x17, 0x33, 0x16, 0x17, 0x32,
+ 0x15, 0x03, 0x33, 0x24, 0x11, 0x34, 0x27, 0x35, 0x16, 0x11, 0x15, 0x10,
+ 0x07, 0x06, 0x07, 0x15, 0x16, 0x3b, 0x01, 0x15, 0x06, 0x2b, 0x01, 0x22,
+ 0x07, 0x27, 0x23, 0x22, 0x27, 0x35, 0x33, 0x32, 0x37, 0x35, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x10, 0x3f, 0x01, 0x15, 0x06, 0x15, 0x10, 0x05, 0x35,
+ 0x03, 0x35, 0x37, 0x32, 0x27, 0x15, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x15, 0x23, 0x26, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x34, 0x25,
+ 0x16, 0x17, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x07, 0x34, 0x37, 0x36,
+ 0x3d, 0x01, 0x10, 0x25, 0x02, 0x9f, 0x19, 0x39, 0x2a, 0x1d, 0x22, 0x27,
+ 0x3c, 0x13, 0x04, 0x02, 0x3e, 0x1b, 0x28, 0x1f, 0x1e, 0x28, 0x49, 0x0f,
+ 0xa0, 0x02, 0x2d, 0x1f, 0x07, 0x09, 0x02, 0x01, 0x07, 0x63, 0xc7, 0xc9,
+ 0x45, 0x2a, 0x48, 0x95, 0x17, 0x69, 0x41, 0x74, 0x14, 0x3e, 0x3d, 0x82,
+ 0x32, 0x7b, 0x36, 0x6d, 0x4e, 0x50, 0x70, 0x20, 0x5a, 0xb4, 0x1d, 0x69,
+ 0x01, 0x08, 0x10, 0x03, 0x1f, 0xe6, 0x55, 0x3b, 0x78, 0x83, 0x02, 0x8e,
+ 0x54, 0x22, 0xf1, 0x6d, 0x20, 0x02, 0x3b, 0x77, 0x75, 0x9e, 0x95, 0x50,
+ 0x1c, 0x31, 0x52, 0xfe, 0xf4, 0x05, 0xd9, 0x4b, 0x30, 0x30, 0x44, 0x07,
+ 0x28, 0x05, 0x3b, 0x1b, 0x04, 0x2c, 0x2c, 0x65, 0x22, 0x87, 0x40, 0x0b,
+ 0x05, 0xfc, 0x20, 0xe4, 0x01, 0x70, 0xc2, 0xcf, 0x03, 0xd7, 0xfe, 0xeb,
+ 0x24, 0xfe, 0xf1, 0xdd, 0x42, 0x16, 0x05, 0x28, 0x05, 0x21, 0x63, 0x63,
+ 0x1c, 0x05, 0x2a, 0x03, 0x40, 0x72, 0x4a, 0xb1, 0xb1, 0x01, 0x01, 0xe6,
+ 0x1f, 0x05, 0xc0, 0xe2, 0xfe, 0xa7, 0xf5, 0x02, 0x03, 0x26, 0x16, 0xa9,
+ 0x2a, 0x06, 0x45, 0x63, 0xcc, 0xef, 0xe9, 0xd6, 0x02, 0x4a, 0xe9, 0x6b,
+ 0x67, 0x01, 0x0c, 0xcd, 0x46, 0x04, 0x02, 0x1e, 0x70, 0xb7, 0xd8, 0x2f,
+ 0xd4, 0xb6, 0x51, 0x06, 0x07, 0x52, 0xaf, 0xbf, 0x02, 0x01, 0x6d, 0xf4,
+ 0x00, 0x03, 0x00, 0x99, 0x00, 0x00, 0x04, 0x85, 0x05, 0xd9, 0x00, 0x5b,
+ 0x00, 0x66, 0x00, 0x6e, 0x00, 0x00, 0x01, 0x32, 0x17, 0x0f, 0x01, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x17, 0x23, 0x15, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x37, 0x33, 0x16, 0x11, 0x10, 0x03, 0x26, 0x23, 0x22, 0x15,
+ 0x14, 0x17, 0x16, 0x15, 0x14, 0x15, 0x06, 0x23, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x15, 0x14, 0x15, 0x14, 0x17, 0x14, 0x23, 0x22, 0x35, 0x36,
+ 0x3d, 0x01, 0x06, 0x15, 0x06, 0x2b, 0x01, 0x22, 0x27, 0x34, 0x36, 0x35,
+ 0x34, 0x23, 0x22, 0x07, 0x02, 0x11, 0x34, 0x37, 0x33, 0x17, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x35, 0x23, 0x35, 0x26, 0x35, 0x34, 0x37, 0x2f,
+ 0x01, 0x36, 0x03, 0x14, 0x17, 0x33, 0x36, 0x35, 0x34, 0x27, 0x06, 0x07,
+ 0x06, 0x25, 0x06, 0x15, 0x14, 0x17, 0x36, 0x35, 0x34, 0x02, 0x8f, 0x3c,
+ 0x49, 0x11, 0x0d, 0x72, 0x2e, 0x32, 0xb8, 0x01, 0x6c, 0x6d, 0x80, 0x79,
+ 0x71, 0x13, 0x05, 0xd2, 0x86, 0x6c, 0x47, 0x32, 0x6c, 0x1b, 0x0c, 0x26,
+ 0x0a, 0x08, 0x28, 0x06, 0x35, 0x54, 0x48, 0x5e, 0x64, 0x48, 0x8a, 0x07,
+ 0x33, 0x05, 0x25, 0x0d, 0x87, 0x29, 0x4a, 0x68, 0x8b, 0xcd, 0x05, 0x13,
+ 0x71, 0xc1, 0x38, 0x6d, 0x6b, 0xb7, 0xd6, 0x16, 0x0e, 0x4e, 0xb9, 0x79,
+ 0x04, 0x3f, 0x1a, 0x50, 0x2e, 0x24, 0x01, 0x4b, 0x1f, 0x3b, 0x81, 0x05,
+ 0xd9, 0x4b, 0x0f, 0x7c, 0x2e, 0x50, 0x51, 0x55, 0xc7, 0x62, 0x4b, 0x78,
+ 0x81, 0x9d, 0xc6, 0xb0, 0x72, 0x13, 0xa5, 0xfe, 0xfe, 0xfe, 0xe0, 0xfe,
+ 0xc9, 0xae, 0x2d, 0x1c, 0x93, 0x26, 0x2a, 0x02, 0x03, 0x3b, 0x02, 0x22,
+ 0xee, 0x31, 0x96, 0x03, 0x04, 0x46, 0x71, 0x3b, 0x3c, 0x74, 0x4d, 0x92,
+ 0x5d, 0xbf, 0x23, 0x3b, 0x40, 0xa4, 0x22, 0x2b, 0xad, 0x01, 0x21, 0x01,
+ 0x4d, 0xe9, 0xa6, 0x13, 0x79, 0xae, 0xfb, 0xa3, 0x2f, 0x12, 0x78, 0x4b,
+ 0x5c, 0xcc, 0xbe, 0x67, 0x7c, 0x12, 0x48, 0xfd, 0xff, 0x92, 0x4a, 0x69,
+ 0x8b, 0x53, 0x7e, 0x19, 0x4a, 0x3f, 0xa2, 0x73, 0x63, 0x89, 0x66, 0x3d,
+ 0xa8, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdb,
+ 0x05, 0xd7, 0x00, 0x32, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x17, 0x07, 0x23, 0x27, 0x06, 0x23, 0x22, 0x27, 0x15, 0x03, 0x23,
+ 0x26, 0x27, 0x36, 0x01, 0x36, 0x33, 0x16, 0x33, 0x32, 0x37, 0x27, 0x07,
+ 0x23, 0x26, 0x27, 0x13, 0x04, 0x15, 0x07, 0x16, 0x17, 0x35, 0x36, 0x3d,
+ 0x01, 0x34, 0x27, 0x26, 0x2b, 0x01, 0x22, 0x07, 0x36, 0x03, 0x84, 0xd5,
+ 0xbc, 0x87, 0x70, 0xae, 0x7e, 0x02, 0xa7, 0x94, 0xc3, 0x9a, 0x80, 0xea,
+ 0x03, 0xb7, 0x04, 0x17, 0x01, 0x37, 0x15, 0x07, 0x65, 0x8f, 0xac, 0x87,
+ 0xc3, 0x61, 0x05, 0xa9, 0x08, 0xd2, 0x00, 0xff, 0x72, 0xcf, 0x1a, 0x3c,
+ 0xe2, 0x7c, 0x6b, 0x21, 0x58, 0x6c, 0x99, 0x05, 0xd7, 0xbd, 0x9b, 0xd7,
+ 0xc9, 0x8a, 0x94, 0x83, 0xaa, 0x6e, 0x58, 0x03, 0xfe, 0x31, 0x8d, 0x07,
+ 0x19, 0x01, 0x98, 0x1d, 0x55, 0x68, 0xc6, 0x73, 0x74, 0x0c, 0x01, 0x02,
+ 0x0e, 0x05, 0x9f, 0xaf, 0x0e, 0x02, 0x5a, 0x7c, 0x24, 0xfe, 0x65, 0x45,
+ 0x37, 0x8f, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0xd8, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x21,
+ 0x00, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x14, 0x17, 0x01, 0x03, 0x06, 0x00, 0x13, 0x16, 0x17,
+ 0x1b, 0x01, 0x36, 0x37, 0x09, 0x01, 0x36, 0x35, 0x34, 0x00, 0x27, 0x11,
+ 0x99, 0x01, 0x8a, 0x01, 0x17, 0x01, 0x18, 0x01, 0x89, 0xfe, 0x77, 0xfe,
+ 0xe8, 0xfe, 0xe9, 0xfe, 0x76, 0x89, 0x6d, 0x01, 0x7f, 0x02, 0xb0, 0xfe,
+ 0xc6, 0x9c, 0x9e, 0xad, 0x01, 0x56, 0xb8, 0x9a, 0xfe, 0xae, 0x01, 0x8f,
+ 0x65, 0xfe, 0xc4, 0xbd, 0x02, 0xea, 0x01, 0x37, 0x01, 0xb7, 0xfe, 0x49,
+ 0xfe, 0xc9, 0xfe, 0xca, 0xfe, 0x4c, 0x01, 0xb4, 0x01, 0x36, 0xe5, 0x78,
+ 0x01, 0xf5, 0x01, 0xc2, 0x04, 0xfe, 0xa3, 0xfd, 0x62, 0xb1, 0x06, 0x02,
+ 0x68, 0xfd, 0x96, 0x08, 0xa4, 0x01, 0xb6, 0xfe, 0x97, 0x70, 0xf5, 0xf9,
+ 0x01, 0x5d, 0x04, 0xfe, 0x42, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd8, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x28,
+ 0x00, 0x34, 0x00, 0x00, 0x01, 0x15, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x05,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x05,
+ 0x34, 0x26, 0x22, 0x06, 0x15, 0x14, 0x16, 0x32, 0x36, 0x25, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x3a, 0x09,
+ 0xb1, 0x82, 0x84, 0xb4, 0xfe, 0x8c, 0xff, 0x00, 0xfe, 0xfb, 0xfe, 0xa2,
+ 0x12, 0x16, 0x9f, 0x86, 0x81, 0xb2, 0x01, 0x9c, 0x37, 0x22, 0x26, 0x36,
+ 0x36, 0x26, 0x24, 0x35, 0xfd, 0x8b, 0x35, 0x4a, 0x34, 0x34, 0x4a, 0x35,
+ 0x03, 0x81, 0xfe, 0x77, 0xfe, 0xe8, 0xfe, 0xe9, 0xfe, 0x76, 0x01, 0x8a,
+ 0x01, 0x17, 0x01, 0x18, 0x01, 0x89, 0x02, 0xf8, 0x1a, 0x8e, 0xc1, 0xcf,
+ 0x9a, 0x01, 0x16, 0x01, 0x98, 0xfe, 0x7b, 0xfe, 0xc9, 0xac, 0xb2, 0xc0,
+ 0x9e, 0x29, 0x3a, 0x3a, 0x29, 0x2a, 0x3c, 0x3c, 0x2a, 0x2a, 0x3c, 0x3c,
+ 0x2a, 0x29, 0x3a, 0x3c, 0x27, 0xfe, 0xca, 0xfe, 0x4c, 0x01, 0xb4, 0x01,
+ 0x36, 0x01, 0x37, 0x01, 0xb7, 0xfe, 0x49, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0x10, 0x07, 0x0b, 0xb3,
+ 0x00, 0x00, 0x05, 0x0d, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdd,
+ 0x05, 0xd4, 0x12, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x01, 0x02, 0x85, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0c,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x85,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x85, 0x10, 0x07, 0x0b, 0xb4,
+ 0x00, 0x00, 0x05, 0x0d, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0xd5, 0x12, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x02, 0x85, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x26,
+ 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x85,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x85, 0x10, 0x07, 0x0b, 0xb3,
+ 0x00, 0x00, 0x05, 0x0d, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0xd5, 0x12, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x02, 0x85, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d,
+ 0x00, 0x0a, 0x00, 0x79, 0xff, 0xea, 0x05, 0xfb, 0x05, 0xe1, 0x00, 0x0c,
+ 0x00, 0x40, 0x00, 0x46, 0x00, 0x4c, 0x00, 0x52, 0x00, 0x58, 0x00, 0x5e,
+ 0x00, 0x64, 0x00, 0x6a, 0x00, 0x70, 0x00, 0x00, 0x00, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x36, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x05, 0x26, 0x34,
+ 0x37, 0x33, 0x36, 0x37, 0x27, 0x36, 0x37, 0x17, 0x36, 0x37, 0x35, 0x36,
+ 0x32, 0x17, 0x15, 0x16, 0x17, 0x37, 0x16, 0x17, 0x07, 0x16, 0x17, 0x33,
+ 0x16, 0x14, 0x07, 0x23, 0x06, 0x07, 0x17, 0x06, 0x07, 0x27, 0x06, 0x07,
+ 0x15, 0x06, 0x23, 0x27, 0x35, 0x26, 0x27, 0x07, 0x26, 0x27, 0x37, 0x26,
+ 0x27, 0x01, 0x36, 0x37, 0x03, 0x06, 0x07, 0x05, 0x16, 0x17, 0x37, 0x26,
+ 0x27, 0x01, 0x36, 0x37, 0x27, 0x06, 0x07, 0x25, 0x16, 0x17, 0x37, 0x26,
+ 0x27, 0x01, 0x26, 0x27, 0x07, 0x16, 0x17, 0x25, 0x06, 0x07, 0x17, 0x36,
+ 0x37, 0x05, 0x06, 0x07, 0x13, 0x36, 0x37, 0x25, 0x26, 0x27, 0x07, 0x16,
+ 0x17, 0x02, 0xa8, 0x2c, 0x2a, 0x3c, 0x3c, 0x54, 0x2b, 0x2a, 0x3b, 0x3c,
+ 0x2a, 0xfd, 0xbf, 0x19, 0x19, 0x65, 0x18, 0x60, 0x4c, 0x0e, 0x59, 0x4a,
+ 0x6f, 0xaf, 0x23, 0x46, 0x24, 0xa4, 0x7c, 0x47, 0x5b, 0x10, 0x4d, 0x5f,
+ 0x19, 0x65, 0x19, 0x19, 0x65, 0x12, 0x66, 0x4d, 0x10, 0x5b, 0x47, 0x7d,
+ 0xa3, 0x24, 0x23, 0x46, 0xa3, 0x7c, 0x49, 0x57, 0x10, 0x49, 0x5d, 0x18,
+ 0x01, 0xc8, 0x1e, 0x20, 0x0b, 0x80, 0x58, 0x01, 0x5a, 0x25, 0x1a, 0xa4,
+ 0x5a, 0x7e, 0xfe, 0xd1, 0x07, 0x14, 0xb7, 0x44, 0x15, 0x02, 0xab, 0x16,
+ 0x05, 0xf7, 0x11, 0x49, 0xfd, 0xad, 0x12, 0x09, 0xf5, 0x14, 0x44, 0x02,
+ 0x6e, 0x07, 0x14, 0xb8, 0x4a, 0x0f, 0xfe, 0x9c, 0x1e, 0x21, 0x0b, 0x7e,
+ 0x5a, 0xfe, 0xa5, 0x1a, 0x23, 0xa6, 0x5a, 0x7f, 0x03, 0x26, 0x84, 0x2f,
+ 0x2f, 0x5e, 0x84, 0x30, 0x30, 0x30, 0xc3, 0x27, 0x4e, 0x27, 0xb7, 0x7c,
+ 0x50, 0x5f, 0x10, 0x50, 0x66, 0x1e, 0x70, 0x1c, 0x1c, 0x70, 0x16, 0x6f,
+ 0x51, 0x0f, 0x60, 0x51, 0x79, 0xb9, 0x27, 0x4e, 0x27, 0xb0, 0x83, 0x50,
+ 0x5c, 0x0b, 0x51, 0x67, 0x1d, 0x70, 0x1c, 0x1c, 0x70, 0x17, 0x6d, 0x51,
+ 0x0b, 0x5c, 0x50, 0x79, 0xba, 0x01, 0x2c, 0x13, 0x0a, 0x01, 0x0d, 0x16,
+ 0x4d, 0xaa, 0x0a, 0x13, 0xc6, 0x4e, 0x15, 0xfe, 0x3e, 0x26, 0x1a, 0xab,
+ 0x60, 0x82, 0x37, 0x1e, 0x22, 0x0a, 0x7f, 0x62, 0xfe, 0x4b, 0x1e, 0x2a,
+ 0x11, 0x8c, 0x56, 0xf4, 0x26, 0x22, 0xac, 0x67, 0x7b, 0x89, 0x12, 0x0b,
+ 0xfe, 0xf0, 0x1e, 0x4d, 0xa5, 0x09, 0x14, 0xc2, 0x4d, 0x1e, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0a,
+ 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x36, 0x37, 0x36,
+ 0x20, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x07,
+ 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08,
+ 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f,
+ 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x20, 0x2e, 0xa4, 0x01, 0xd0,
+ 0xa4, 0x2d, 0x21, 0x67, 0x1a, 0x23, 0x80, 0xfe, 0x94, 0x80, 0x23, 0x1a,
+ 0x03, 0xfd, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b, 0x51, 0x51,
+ 0x3b, 0x3a, 0x53, 0x53, 0xd9, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe,
+ 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfd,
+ 0x25, 0x38, 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x8d,
+ 0x28, 0x2b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3d,
+ 0x00, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x13, 0x37, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34,
+ 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc,
+ 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe,
+ 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d,
+ 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x67,
+ 0x1a, 0x23, 0x80, 0x01, 0x6c, 0x80, 0x23, 0x1a, 0x67, 0x21, 0x2d, 0xa4,
+ 0xfe, 0x30, 0xa4, 0x2e, 0x03, 0xfd, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53,
+ 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xd9, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01,
+ 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfd, 0xaa, 0x47, 0x2b, 0x27, 0x8e, 0x8e, 0x27, 0x2c,
+ 0x48, 0x38, 0x33, 0xb5, 0xb5, 0x33, 0x00, 0x00, 0x00, 0x04, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x21,
+ 0x00, 0x31, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x05, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x22, 0x06, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x25, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x27, 0x06,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x49, 0x35, 0x34, 0x4b, 0x4b, 0x68,
+ 0x4a, 0xfc, 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe,
+ 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x01, 0x4e, 0x20, 0x2e, 0xa4,
+ 0x01, 0xd0, 0xa4, 0x2d, 0x21, 0x67, 0x1a, 0x23, 0x80, 0xfe, 0x94, 0x80,
+ 0x23, 0x1a, 0x03, 0xfd, 0x3a, 0x53, 0x52, 0x76, 0x51, 0x51, 0x3b, 0x3a,
+ 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0xfe, 0xb2, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x5b, 0x38,
+ 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x8e, 0x27, 0x2b,
+ 0x00, 0x0a, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0xd8, 0x00, 0x07,
+ 0x00, 0x0c, 0x00, 0x13, 0x00, 0x22, 0x00, 0x2a, 0x00, 0x32, 0x00, 0x3a,
+ 0x00, 0x41, 0x00, 0x49, 0x00, 0x58, 0x00, 0x00, 0x01, 0x33, 0x17, 0x11,
+ 0x07, 0x23, 0x27, 0x11, 0x05, 0x17, 0x15, 0x07, 0x27, 0x25, 0x17, 0x07,
+ 0x23, 0x26, 0x27, 0x35, 0x05, 0x32, 0x1f, 0x01, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x01, 0x21, 0x17, 0x15, 0x07,
+ 0x21, 0x27, 0x35, 0x25, 0x21, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x03,
+ 0x33, 0x16, 0x17, 0x15, 0x07, 0x27, 0x35, 0x25, 0x33, 0x17, 0x15, 0x07,
+ 0x27, 0x35, 0x25, 0x33, 0x17, 0x11, 0x07, 0x23, 0x27, 0x11, 0x03, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x27, 0x26, 0x23,
+ 0x22, 0x03, 0x1b, 0x46, 0x05, 0x05, 0x46, 0x06, 0x02, 0x00, 0x34, 0xdf,
+ 0x37, 0xfd, 0x48, 0xe4, 0x38, 0x03, 0xb4, 0x28, 0x01, 0xf8, 0xc2, 0x53,
+ 0x0b, 0xb0, 0x41, 0x2b, 0xa3, 0x5b, 0x21, 0xaa, 0x3f, 0xfd, 0x90, 0x01,
+ 0x32, 0x05, 0x05, 0xfe, 0xce, 0x05, 0x04, 0x05, 0x01, 0x37, 0x06, 0x06,
+ 0xfe, 0xc9, 0x06, 0x40, 0x03, 0x79, 0x66, 0x37, 0xdf, 0xfd, 0xef, 0x03,
+ 0x35, 0xdf, 0x36, 0x01, 0xe5, 0x46, 0x05, 0x05, 0x46, 0x06, 0x20, 0x75,
+ 0x16, 0x3e, 0x70, 0x1d, 0x2c, 0x79, 0x08, 0x39, 0x84, 0x23, 0x05, 0xd8,
+ 0x06, 0xfe, 0xa1, 0x06, 0x06, 0x01, 0x5f, 0x9c, 0x3e, 0x03, 0xff, 0x3f,
+ 0xee, 0xfe, 0x40, 0xc7, 0x37, 0x04, 0xb5, 0xe2, 0x60, 0xbd, 0x64, 0x18,
+ 0xa8, 0x40, 0x5c, 0xb4, 0x68, 0x1b, 0xfe, 0xed, 0x06, 0x50, 0x06, 0x06,
+ 0x50, 0x06, 0x06, 0x50, 0x06, 0x06, 0x50, 0xfe, 0xe7, 0x82, 0x79, 0x03,
+ 0x3f, 0xfd, 0x04, 0x2b, 0x3c, 0x03, 0xfe, 0x3e, 0x04, 0x77, 0x06, 0xfe,
+ 0xa1, 0x06, 0x06, 0x01, 0x5f, 0x02, 0x56, 0x47, 0x7b, 0x3f, 0x2c, 0x72,
+ 0x11, 0x43, 0x82, 0x41, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x93,
+ 0x00, 0x00, 0x05, 0xdd, 0x05, 0xd7, 0x00, 0x17, 0x00, 0x2b, 0x00, 0x00,
+ 0x01, 0x20, 0x13, 0x16, 0x15, 0x10, 0x01, 0x06, 0x2b, 0x01, 0x22, 0x27,
+ 0x35, 0x36, 0x37, 0x36, 0x11, 0x10, 0x25, 0x26, 0x27, 0x35, 0x34, 0x37,
+ 0x17, 0x15, 0x04, 0x11, 0x10, 0x05, 0x07, 0x15, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x3d, 0x01, 0x10, 0x01, 0x26, 0x23, 0x03, 0x25, 0x01, 0x63,
+ 0xf5, 0x5f, 0xfe, 0x9c, 0xa1, 0x9f, 0x2c, 0x2a, 0x49, 0xf9, 0x71, 0x8b,
+ 0xfe, 0xd4, 0x7b, 0x53, 0x86, 0x24, 0x01, 0x9b, 0xfe, 0xd1, 0x27, 0x05,
+ 0x4e, 0x8e, 0xd2, 0x4a, 0x1a, 0xfe, 0xc7, 0x92, 0x8f, 0x05, 0xd7, 0xfe,
+ 0x87, 0xad, 0xc6, 0xfe, 0x78, 0xfe, 0xff, 0x62, 0x0f, 0x06, 0x4f, 0xb1,
+ 0xca, 0x01, 0x0c, 0x01, 0x90, 0xe0, 0x50, 0x10, 0x03, 0x0b, 0x0e, 0x3e,
+ 0x03, 0xc5, 0xfe, 0x14, 0xfe, 0x6e, 0xe8, 0x18, 0x04, 0x53, 0x98, 0xf4,
+ 0x5d, 0x5d, 0x09, 0x01, 0x3d, 0x01, 0x05, 0x66, 0x00, 0x02, 0x00, 0x99,
+ 0x00, 0x00, 0x03, 0xe2, 0x05, 0xd8, 0x00, 0x17, 0x00, 0x2b, 0x00, 0x00,
+ 0x21, 0x20, 0x03, 0x26, 0x35, 0x10, 0x01, 0x36, 0x3b, 0x01, 0x32, 0x17,
+ 0x15, 0x06, 0x07, 0x06, 0x11, 0x10, 0x05, 0x16, 0x17, 0x15, 0x14, 0x07,
+ 0x27, 0x35, 0x24, 0x11, 0x10, 0x25, 0x37, 0x35, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x06, 0x1d, 0x01, 0x10, 0x01, 0x16, 0x33, 0x03, 0x51, 0xfe, 0x9c,
+ 0xf5, 0x5f, 0x01, 0x64, 0xa1, 0xa0, 0x2c, 0x29, 0x48, 0xf8, 0x71, 0x8b,
+ 0x01, 0x2d, 0x7a, 0x54, 0x86, 0x24, 0xfe, 0x64, 0x01, 0x2f, 0x27, 0x05,
+ 0x4e, 0x8f, 0xd0, 0x4b, 0x19, 0x01, 0x37, 0x94, 0x8e, 0x01, 0x79, 0xad,
+ 0xc6, 0x01, 0x88, 0x01, 0x01, 0x63, 0x0f, 0x07, 0x4f, 0xb1, 0xcb, 0xfe,
+ 0xf5, 0xfe, 0x70, 0xe1, 0x4f, 0x10, 0x04, 0x0a, 0x0e, 0x3e, 0x03, 0xc5,
+ 0x01, 0xed, 0x01, 0x91, 0xe8, 0x18, 0x03, 0x53, 0x96, 0xf5, 0x5c, 0x5e,
+ 0x09, 0xfe, 0xc2, 0xfe, 0xfc, 0x66, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d,
+ 0xff, 0x30, 0x03, 0xce, 0x05, 0xdb, 0x00, 0x31, 0x00, 0x3e, 0x00, 0x00,
+ 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x15, 0x37, 0x15,
+ 0x07, 0x15, 0x23, 0x27, 0x23, 0x35, 0x33, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x15, 0x14,
+ 0x17, 0x16, 0x17, 0x33, 0x36, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x23, 0x06, 0x07, 0x06, 0x10, 0x16, 0x33, 0x32, 0x36,
+ 0x10, 0x27, 0x26, 0x03, 0x12, 0x24, 0x20, 0x78, 0x77, 0x61, 0x81, 0xc3,
+ 0xc6, 0x74, 0x01, 0xb5, 0xb5, 0x01, 0x85, 0x62, 0x77, 0x77, 0x21, 0x24,
+ 0x24, 0x21, 0x77, 0x7f, 0x52, 0x4d, 0x69, 0x22, 0x69, 0x4c, 0x52, 0x80,
+ 0x78, 0x20, 0xef, 0x22, 0x69, 0x4d, 0x52, 0xa5, 0x75, 0x72, 0xa5, 0x52,
+ 0x4c, 0x04, 0x56, 0x1a, 0x24, 0x83, 0xbd, 0xbc, 0x7c, 0x64, 0x0e, 0xd1,
+ 0x02, 0x64, 0x01, 0xca, 0xcb, 0x62, 0xd1, 0x0d, 0x65, 0x7c, 0xbc, 0xbd,
+ 0x83, 0x24, 0x1a, 0x19, 0x25, 0x83, 0xbc, 0x08, 0x0a, 0x82, 0x5a, 0x53,
+ 0x07, 0x07, 0x53, 0x5a, 0x82, 0x0a, 0x08, 0xbc, 0x83, 0x25, 0x5f, 0x06,
+ 0x54, 0x59, 0xfe, 0xfc, 0xaa, 0xaa, 0x01, 0x04, 0x59, 0x54, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9d, 0xfe, 0xff, 0x04, 0xa9, 0x05, 0xda, 0x00, 0x0b,
+ 0x00, 0x23, 0x00, 0x00, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x01, 0x26, 0x35, 0x34, 0x00, 0x33, 0x32, 0x00,
+ 0x10, 0x07, 0x06, 0x07, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23,
+ 0x35, 0x33, 0x11, 0x26, 0x02, 0xa3, 0x94, 0xcf, 0xcf, 0x94, 0x91, 0xd2,
+ 0xd2, 0xfe, 0x02, 0x98, 0x01, 0x2e, 0xd7, 0xd4, 0x01, 0x31, 0x98, 0x7a,
+ 0xa2, 0xf5, 0xf5, 0xa2, 0xf5, 0xf5, 0xa3, 0x05, 0x27, 0xe4, 0xa4, 0xa3,
+ 0xd8, 0xd8, 0xa3, 0xa4, 0xe4, 0xfc, 0xed, 0x9d, 0xee, 0xef, 0x01, 0x4c,
+ 0xfe, 0xb4, 0xfe, 0x22, 0x9c, 0x7e, 0x12, 0xfe, 0xf8, 0x7c, 0xfe, 0xff,
+ 0x01, 0x01, 0x7c, 0x01, 0x09, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d,
+ 0xff, 0xe3, 0x04, 0xa9, 0x06, 0xbe, 0x00, 0x0b, 0x00, 0x23, 0x00, 0x00,
+ 0x25, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x01, 0x16, 0x15, 0x14, 0x00, 0x23, 0x22, 0x00, 0x10, 0x37, 0x36, 0x37,
+ 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x16,
+ 0x02, 0xa3, 0x94, 0xcf, 0xcf, 0x94, 0x91, 0xd2, 0xd2, 0x01, 0xfe, 0x98,
+ 0xfe, 0xd2, 0xd7, 0xd4, 0xfe, 0xcf, 0x98, 0x7a, 0xa2, 0xf4, 0xf4, 0xa2,
+ 0xf5, 0xf5, 0xa3, 0x96, 0xe4, 0xa4, 0xa3, 0xd8, 0xd8, 0xa3, 0xa4, 0xe4,
+ 0x03, 0x13, 0x9d, 0xee, 0xef, 0xfe, 0xb4, 0x01, 0x4c, 0x01, 0xde, 0x9c,
+ 0x7e, 0x12, 0x01, 0x08, 0x7c, 0x01, 0x01, 0xfe, 0xff, 0x7c, 0xfe, 0xf7,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x91, 0xff, 0xe3, 0x05, 0xfb,
+ 0x05, 0xc3, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x22, 0x06, 0x10,
+ 0x16, 0x33, 0x32, 0x36, 0x10, 0x26, 0x13, 0x06, 0x23, 0x22, 0x00, 0x10,
+ 0x00, 0x17, 0x16, 0x17, 0x01, 0x21, 0x37, 0x21, 0x11, 0x07, 0x11, 0x01,
+ 0x16, 0x15, 0x14, 0x02, 0x97, 0x93, 0xd0, 0xd0, 0x93, 0x91, 0xd3, 0xd3,
+ 0xe2, 0x97, 0xdc, 0xd3, 0xfe, 0xce, 0x01, 0x36, 0xcf, 0xcd, 0x65, 0x01,
+ 0x45, 0xfe, 0xb2, 0x7e, 0x01, 0xbd, 0x81, 0xfe, 0xbe, 0x65, 0x03, 0x96,
+ 0xe4, 0xfe, 0xb8, 0xd8, 0xd8, 0x01, 0x48, 0xe4, 0xfc, 0xf1, 0xa4, 0x01,
+ 0x3d, 0x01, 0xdc, 0x01, 0x55, 0x09, 0x08, 0x67, 0x01, 0x5c, 0x8e, 0xfe,
+ 0x14, 0x8f, 0x01, 0x75, 0xfe, 0xa4, 0x92, 0xc1, 0xe8, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x31, 0x00, 0x00, 0x05, 0x42, 0x05, 0xd8, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x35, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x1d,
+ 0x01, 0x23, 0x34, 0x12, 0x33, 0x32, 0x12, 0x15, 0x14, 0x07, 0x33, 0x11,
+ 0x33, 0x11, 0x23, 0x11, 0x21, 0x35, 0x02, 0xbf, 0x6e, 0x99, 0x98, 0x6f,
+ 0x6d, 0x9a, 0x87, 0xe8, 0xa6, 0xa8, 0xe8, 0x62, 0xcd, 0x88, 0x88, 0xfc,
+ 0x77, 0x02, 0x13, 0x01, 0xab, 0xf2, 0xab, 0xab, 0x79, 0x02, 0xb9, 0x01,
+ 0x04, 0xfe, 0xfc, 0xb9, 0xa8, 0x7b, 0x03, 0xc5, 0xfa, 0x28, 0x01, 0x7c,
+ 0x97, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x93, 0x00, 0x00, 0x04, 0xe0,
+ 0x05, 0xd8, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x23, 0x35, 0x33, 0x35, 0x33,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x36, 0x33, 0x32, 0x12, 0x15, 0x14, 0x06,
+ 0x1d, 0x01, 0x23, 0x34, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x23, 0x01, 0xf3, 0x60, 0x60, 0x88, 0xa1, 0xa1, 0x64, 0x89, 0xa0,
+ 0xd7, 0x7e, 0x87, 0x7e, 0x8b, 0x64, 0x63, 0x8b, 0x88, 0x04, 0x8d, 0x97,
+ 0xb4, 0xb4, 0x97, 0xfe, 0x7d, 0x6d, 0xfe, 0xfe, 0xbb, 0x5a, 0xe5, 0x79,
+ 0x02, 0x84, 0xee, 0x48, 0x7b, 0xa9, 0xaa, 0x7a, 0xfe, 0x46, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xdf, 0x00, 0x00, 0x05, 0x94, 0x05, 0xd8, 0x00, 0x0a,
+ 0x00, 0x31, 0x00, 0x00, 0x00, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x27, 0x16, 0x17, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x11, 0x21, 0x11, 0x21, 0x35, 0x33, 0x11, 0x23,
+ 0x35, 0x21, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x21, 0x11, 0x21, 0x03, 0x6c, 0x65, 0x47, 0x47, 0x32,
+ 0x32, 0x47, 0x34, 0x37, 0x2b, 0x44, 0x89, 0x62, 0x60, 0x8a, 0x45, 0x2a,
+ 0x38, 0xfe, 0xfd, 0xfe, 0xec, 0x8c, 0x8c, 0x01, 0x14, 0x01, 0x03, 0x88,
+ 0x01, 0x03, 0x01, 0x12, 0x89, 0x89, 0xfe, 0xee, 0xfe, 0xfd, 0x01, 0x8c,
+ 0x4f, 0x37, 0x39, 0x4e, 0x4e, 0x39, 0x37, 0xc2, 0x12, 0x30, 0x4c, 0xd8,
+ 0x99, 0x99, 0xd8, 0x4c, 0x31, 0x11, 0x01, 0x8c, 0xfe, 0x4b, 0x97, 0x02,
+ 0xd3, 0x98, 0xfe, 0x4a, 0x01, 0xb6, 0xfe, 0x4a, 0x01, 0xb6, 0x98, 0xfd,
+ 0x2d, 0x97, 0x01, 0xb5, 0x00, 0x01, 0x00, 0xea, 0x00, 0x00, 0x05, 0x8a,
+ 0x05, 0xd8, 0x00, 0x3c, 0x00, 0x00, 0x25, 0x15, 0x23, 0x35, 0x23, 0x35,
+ 0x33, 0x35, 0x26, 0x27, 0x26, 0x27, 0x35, 0x07, 0x27, 0x37, 0x33, 0x17,
+ 0x15, 0x27, 0x15, 0x33, 0x15, 0x23, 0x16, 0x17, 0x16, 0x17, 0x11, 0x07,
+ 0x27, 0x37, 0x33, 0x17, 0x15, 0x27, 0x11, 0x36, 0x37, 0x36, 0x3d, 0x01,
+ 0x33, 0x35, 0x07, 0x27, 0x37, 0x33, 0x17, 0x15, 0x27, 0x15, 0x33, 0x15,
+ 0x06, 0x07, 0x06, 0x07, 0x15, 0x33, 0x15, 0x03, 0x7f, 0x88, 0x9f, 0x9f,
+ 0x95, 0x6e, 0x87, 0x01, 0x81, 0x01, 0x82, 0x89, 0x82, 0x82, 0x02, 0x02,
+ 0x01, 0x5e, 0x46, 0x5d, 0x83, 0x01, 0x84, 0x88, 0x82, 0x82, 0x5b, 0x45,
+ 0x5f, 0x01, 0x81, 0x01, 0x82, 0x89, 0x82, 0x82, 0x01, 0x01, 0x87, 0x6e,
+ 0x94, 0x9d, 0xbb, 0xbb, 0xbb, 0x97, 0x8b, 0x16, 0x7a, 0x96, 0xd7, 0x54,
+ 0x8e, 0x8c, 0x99, 0x99, 0x8c, 0x8e, 0x54, 0x02, 0x97, 0x68, 0x4f, 0x14,
+ 0x02, 0xca, 0x8d, 0x8b, 0x9a, 0x9a, 0x8b, 0x8d, 0xfd, 0x37, 0x14, 0x4e,
+ 0x6a, 0x96, 0x01, 0x59, 0x8e, 0x8c, 0x99, 0x99, 0x8c, 0x8e, 0x59, 0x04,
+ 0xd3, 0x96, 0x79, 0x17, 0x8b, 0x97, 0x00, 0x00, 0x00, 0x02, 0x01, 0xba,
+ 0x00, 0x00, 0x04, 0xb9, 0x05, 0xd8, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x00,
+ 0x01, 0x21, 0x20, 0x17, 0x16, 0x15, 0x10, 0x07, 0x06, 0x23, 0x21, 0x11,
+ 0x21, 0x17, 0x15, 0x07, 0x21, 0x27, 0x11, 0x17, 0x11, 0x21, 0x32, 0x37,
+ 0x36, 0x37, 0x34, 0x27, 0x26, 0x23, 0x01, 0xc2, 0x01, 0x70, 0x01, 0x10,
+ 0x5a, 0x1d, 0xe2, 0x35, 0x31, 0xfe, 0xcc, 0x02, 0x3b, 0x07, 0x07, 0xfd,
+ 0x4a, 0x07, 0x82, 0x01, 0x26, 0x75, 0x40, 0x0f, 0x07, 0x92, 0x21, 0x49,
+ 0x05, 0xd8, 0xd0, 0x4d, 0x5f, 0xfe, 0xf6, 0x5c, 0x11, 0xfd, 0xad, 0x08,
+ 0x82, 0x08, 0x08, 0x05, 0xc7, 0x83, 0xfe, 0x24, 0x82, 0x1a, 0x50, 0xa4,
+ 0x3c, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x53, 0x00, 0x00, 0x06, 0x20,
+ 0x05, 0xda, 0x00, 0x24, 0x00, 0x00, 0x21, 0x10, 0x00, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x17, 0x23, 0x26, 0x35, 0x34, 0x36, 0x33, 0x20, 0x13, 0x16,
+ 0x17, 0x36, 0x37, 0x12, 0x21, 0x32, 0x16, 0x15, 0x14, 0x07, 0x23, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x00, 0x11, 0x03, 0x01, 0xfe, 0xfe, 0x98,
+ 0x74, 0x1f, 0x4c, 0x79, 0x53, 0x92, 0x84, 0x01, 0x4f, 0x75, 0x08, 0x04,
+ 0x04, 0x07, 0x77, 0x01, 0x4e, 0x84, 0x92, 0x54, 0x78, 0x4c, 0x1f, 0x75,
+ 0x97, 0xfe, 0xff, 0x02, 0x58, 0x03, 0x05, 0xc5, 0x22, 0x80, 0x80, 0x84,
+ 0xa1, 0x84, 0xbb, 0xfc, 0xfb, 0x31, 0x28, 0x28, 0x31, 0x03, 0x05, 0xbb,
+ 0x84, 0xa1, 0x84, 0x80, 0x81, 0x22, 0xc4, 0xfc, 0xfb, 0xfd, 0xa8, 0x00,
+ 0x00, 0x02, 0x00, 0xa4, 0x00, 0x00, 0x05, 0xd0, 0x05, 0xd8, 0x00, 0x08,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x22, 0x06, 0x10, 0x16, 0x20, 0x36, 0x10,
+ 0x26, 0x27, 0x36, 0x37, 0x3e, 0x02, 0x33, 0x15, 0x22, 0x02, 0x07, 0x06,
+ 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x00, 0x23, 0x22, 0x00, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x02, 0x23, 0x35, 0x32, 0x1e, 0x01,
+ 0x17, 0x16, 0x03, 0x39, 0x84, 0xb9, 0xb9, 0x01, 0x09, 0xba, 0xb9, 0x86,
+ 0x76, 0x45, 0x4d, 0x57, 0x91, 0xa7, 0x6f, 0x96, 0x76, 0x13, 0x15, 0x2a,
+ 0x26, 0x84, 0xfe, 0xf6, 0xbe, 0xbb, 0xfe, 0xf6, 0x85, 0x25, 0x2b, 0x16,
+ 0x13, 0x74, 0x9a, 0x6d, 0xa6, 0xa8, 0x40, 0x4d, 0x45, 0x03, 0x5c, 0xcf,
+ 0xfe, 0xda, 0xce, 0xce, 0x01, 0x26, 0xcf, 0x96, 0x05, 0x3d, 0x42, 0xb4,
+ 0xae, 0x6c, 0xfe, 0xc8, 0x6c, 0x13, 0x0f, 0x1e, 0x29, 0x95, 0xd2, 0xd1,
+ 0xfe, 0xd9, 0x01, 0x27, 0xd1, 0xd2, 0x95, 0x2a, 0x1e, 0x0e, 0x13, 0x6c,
+ 0x01, 0x38, 0x6c, 0xae, 0xb4, 0x42, 0x3d, 0x00, 0x00, 0x02, 0x00, 0xac,
+ 0x00, 0x00, 0x05, 0xc6, 0x05, 0xda, 0x00, 0x13, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x26, 0x27, 0x35, 0x04, 0x20, 0x25, 0x15, 0x06, 0x07, 0x11, 0x16,
+ 0x17, 0x15, 0x24, 0x20, 0x05, 0x35, 0x36, 0x3f, 0x01, 0x36, 0x33, 0x17,
+ 0x11, 0x06, 0x23, 0x27, 0x01, 0xdd, 0x97, 0x99, 0x01, 0x38, 0x02, 0xac,
+ 0x01, 0x35, 0x9f, 0x95, 0x95, 0x9f, 0xfe, 0xcb, 0xfd, 0x54, 0xfe, 0xc8,
+ 0x99, 0x97, 0x89, 0x68, 0x6a, 0xd1, 0x68, 0x69, 0xd2, 0x04, 0xfc, 0x16,
+ 0x34, 0x94, 0x5a, 0x5a, 0x97, 0x2f, 0x18, 0xfb, 0xe2, 0x17, 0x2f, 0x98,
+ 0x5b, 0x5b, 0x94, 0x35, 0x15, 0x0c, 0x0d, 0x0d, 0x04, 0x07, 0x0d, 0x0d,
+ 0x00, 0x04, 0x00, 0xcf, 0x00, 0x40, 0x05, 0xa5, 0x05, 0x6f, 0x00, 0x08,
+ 0x00, 0x1d, 0x00, 0x26, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x22, 0x06, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x34, 0x01, 0x2c, 0x01, 0x27, 0x35, 0x16, 0x04,
+ 0x33, 0x32, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x10, 0x07,
+ 0x0e, 0x01, 0x01, 0x32, 0x36, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x01,
+ 0x0c, 0x01, 0x17, 0x15, 0x26, 0x24, 0x23, 0x22, 0x17, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x3e, 0x01, 0x04, 0xbb, 0xab,
+ 0x76, 0x76, 0x56, 0x54, 0x78, 0xfe, 0x88, 0xfe, 0xe7, 0xfe, 0xb9, 0x8a,
+ 0xe4, 0x01, 0x47, 0x35, 0x75, 0x07, 0x76, 0xb9, 0x84, 0x86, 0xb9, 0x5d,
+ 0x42, 0xdd, 0xfd, 0xe6, 0x55, 0x78, 0x78, 0xa9, 0x79, 0x78, 0x01, 0x01,
+ 0x01, 0x19, 0x01, 0x48, 0x89, 0xe3, 0xfe, 0xba, 0x34, 0x78, 0x07, 0x76,
+ 0xb8, 0x85, 0x86, 0xb9, 0x5e, 0x41, 0xdd, 0x02, 0xb8, 0x84, 0xbe, 0x85,
+ 0x85, 0xbe, 0xfe, 0x0c, 0x02, 0x28, 0x2b, 0x7c, 0x54, 0x16, 0x1a, 0x6c,
+ 0xa7, 0x93, 0xcf, 0xcf, 0xfe, 0xda, 0x67, 0x4d, 0x4c, 0x02, 0xb6, 0x84,
+ 0xbe, 0x84, 0x84, 0xbe, 0x84, 0x02, 0x78, 0x02, 0x29, 0x2b, 0x7b, 0x54,
+ 0x15, 0x1a, 0x6c, 0xa6, 0x94, 0xcf, 0xcf, 0x94, 0x92, 0x67, 0x4d, 0x4d,
+ 0x00, 0x02, 0x01, 0x01, 0x00, 0x00, 0x05, 0x73, 0x05, 0xd8, 0x00, 0x13,
+ 0x00, 0x4d, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x35, 0x34, 0x27, 0x2e, 0x01,
+ 0x23, 0x22, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x1e, 0x01, 0x33, 0x32,
+ 0x13, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x00, 0x15, 0x16, 0x17,
+ 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x00, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x32, 0x35, 0x34, 0x26, 0x02, 0x52,
+ 0x44, 0x2c, 0x0c, 0x1a, 0x66, 0x23, 0x20, 0x20, 0x43, 0x2c, 0x0c, 0x1b,
+ 0x64, 0x23, 0x20, 0x2b, 0xc9, 0xa2, 0x9a, 0xc4, 0xfe, 0xfc, 0x03, 0x79,
+ 0x40, 0x5a, 0x3a, 0x72, 0x64, 0x59, 0x82, 0x01, 0x03, 0x94, 0x77, 0x72,
+ 0x87, 0x29, 0x17, 0x21, 0x08, 0x1d, 0x2e, 0x68, 0x32, 0x33, 0x36, 0x9b,
+ 0x2b, 0x14, 0x19, 0x2e, 0x69, 0x31, 0x32, 0x44, 0x43, 0x07, 0x45, 0x01,
+ 0x8c, 0x1d, 0x71, 0x27, 0x23, 0x23, 0x4b, 0x32, 0x0e, 0x1e, 0x6f, 0x27,
+ 0x23, 0x24, 0x4c, 0x31, 0x02, 0xf0, 0xa1, 0xc9, 0xdd, 0xb0, 0xbb, 0xfe,
+ 0x0a, 0xb4, 0x7c, 0x03, 0x58, 0x48, 0x77, 0x79, 0x6f, 0xc7, 0x01, 0xe1,
+ 0xc2, 0x86, 0xa5, 0x9b, 0x81, 0x3c, 0x91, 0x3e, 0x62, 0x80, 0x11, 0x57,
+ 0x44, 0x73, 0x2d, 0x16, 0x4b, 0x78, 0x36, 0x38, 0x3c, 0x3c, 0x72, 0x2e,
+ 0x15, 0x29, 0x0d, 0x1a, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x62,
+ 0xfe, 0x8f, 0x06, 0x12, 0x05, 0xd8, 0x00, 0x3a, 0x00, 0x44, 0x00, 0x00,
+ 0x01, 0x32, 0x16, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x1d, 0x01, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x11, 0x10, 0x01, 0x16, 0x17, 0x23, 0x26, 0x27,
+ 0x06, 0x07, 0x35, 0x36, 0x37, 0x27, 0x11, 0x34, 0x35, 0x10, 0x27, 0x0e,
+ 0x01, 0x07, 0x11, 0x23, 0x11, 0x10, 0x26, 0x2b, 0x02, 0x22, 0x06, 0x07,
+ 0x11, 0x23, 0x11, 0x34, 0x27, 0x33, 0x16, 0x17, 0x3e, 0x01, 0x01, 0x11,
+ 0x36, 0x13, 0x34, 0x26, 0x2b, 0x01, 0x22, 0x06, 0x02, 0x64, 0x39, 0x6b,
+ 0x24, 0xb2, 0x44, 0x37, 0x4a, 0x2b, 0x76, 0x3d, 0x36, 0x5a, 0xfe, 0xa9,
+ 0x01, 0x84, 0x97, 0x2a, 0x42, 0x97, 0x9d, 0xac, 0x6f, 0x08, 0x29, 0x34,
+ 0x78, 0x39, 0x88, 0x1c, 0x1f, 0x01, 0x01, 0x25, 0xa1, 0x11, 0x86, 0x89,
+ 0x80, 0x6a, 0x20, 0x15, 0xa5, 0x02, 0x7d, 0xe8, 0x16, 0x29, 0x19, 0x03,
+ 0x1b, 0x81, 0x05, 0xd8, 0xc6, 0x80, 0x77, 0xcf, 0xa7, 0xdb, 0xca, 0x7d,
+ 0x77, 0xe8, 0xfe, 0xef, 0xfe, 0x68, 0xfe, 0xbf, 0x5e, 0xc1, 0x29, 0xa1,
+ 0x65, 0x07, 0x74, 0x1c, 0x57, 0xd9, 0x03, 0x57, 0x12, 0x11, 0x01, 0x19,
+ 0x01, 0x01, 0xd9, 0xc8, 0xfc, 0x61, 0x03, 0x9a, 0x01, 0x41, 0x6a, 0xe2,
+ 0xd7, 0xfc, 0x74, 0x04, 0x41, 0xbe, 0xbf, 0x4f, 0xb0, 0x5d, 0xbc, 0xfc,
+ 0x92, 0xfd, 0xd0, 0xfa, 0x01, 0x52, 0xc1, 0x8b, 0xce, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x99, 0x00, 0x6b, 0x05, 0xdb, 0x05, 0x39, 0x00, 0x03,
+ 0x00, 0x23, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x01, 0x21, 0x35, 0x21,
+ 0x26, 0x35, 0x34, 0x12, 0x33, 0x32, 0x12, 0x15, 0x14, 0x07, 0x21, 0x15,
+ 0x21, 0x35, 0x23, 0x36, 0x37, 0x36, 0x35, 0x34, 0x26, 0x22, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x9a, 0x05, 0x40, 0xfa, 0xc0, 0x01, 0xf5, 0xfe,
+ 0x0b, 0x01, 0x3e, 0x3c, 0xe8, 0xa6, 0xa7, 0xe9, 0x3d, 0x01, 0x5d, 0xfd,
+ 0xeb, 0x01, 0x10, 0x0f, 0x4e, 0x99, 0xdc, 0x99, 0x4d, 0x0e, 0x11, 0x01,
+ 0x03, 0x98, 0x01, 0x8f, 0x98, 0x68, 0x83, 0xb9, 0x01, 0x03, 0xfe, 0xfd,
+ 0xb9, 0x83, 0x68, 0x98, 0x98, 0x0d, 0x11, 0x55, 0x79, 0x7a, 0xaa, 0xaa,
+ 0x7a, 0x79, 0x55, 0x11, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3e,
+ 0xff, 0x3c, 0x06, 0x38, 0x05, 0xd8, 0x00, 0x38, 0x00, 0x00, 0x01, 0x14,
+ 0x16, 0x17, 0x33, 0x35, 0x33, 0x17, 0x07, 0x27, 0x35, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x03, 0x34, 0x35, 0x10, 0x27, 0x0e, 0x01, 0x07, 0x11, 0x23,
+ 0x11, 0x10, 0x26, 0x2b, 0x02, 0x22, 0x06, 0x07, 0x11, 0x23, 0x11, 0x34,
+ 0x27, 0x33, 0x16, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x3e, 0x01,
+ 0x33, 0x32, 0x16, 0x1d, 0x01, 0x13, 0x04, 0x80, 0x5d, 0x50, 0x50, 0x03,
+ 0xb7, 0xb7, 0x03, 0x50, 0xb7, 0x3d, 0x28, 0x07, 0x13, 0x29, 0x34, 0x78,
+ 0x39, 0x88, 0x1c, 0x1f, 0x01, 0x01, 0x25, 0xa1, 0x11, 0x86, 0x89, 0x80,
+ 0x6a, 0x20, 0x15, 0xa5, 0x3e, 0x39, 0x6b, 0x24, 0xb2, 0x44, 0x37, 0x4a,
+ 0x01, 0x01, 0x0f, 0x6f, 0x7d, 0x01, 0x76, 0xad, 0xaf, 0x04, 0x76, 0x78,
+ 0x4a, 0x76, 0x03, 0x16, 0x12, 0x11, 0x01, 0x19, 0x01, 0x01, 0xd9, 0xc8,
+ 0xfc, 0x61, 0x03, 0x9a, 0x01, 0x41, 0x6a, 0xe2, 0xd7, 0xfc, 0x74, 0x04,
+ 0x41, 0xbe, 0xbf, 0x4f, 0xb0, 0x5d, 0xbc, 0xc6, 0x80, 0x77, 0xcf, 0xa7,
+ 0xdb, 0xca, 0xfd, 0x84, 0x00, 0x01, 0x00, 0x98, 0xff, 0xff, 0x05, 0xdc,
+ 0x05, 0xd8, 0x00, 0x14, 0x00, 0x00, 0x01, 0x11, 0x09, 0x01, 0x07, 0x09,
+ 0x01, 0x2f, 0x02, 0x09, 0x01, 0x3f, 0x02, 0x09, 0x01, 0x21, 0x35, 0x21,
+ 0x11, 0x05, 0x53, 0xfd, 0x85, 0x01, 0x1d, 0x61, 0xfe, 0xe3, 0xfe, 0x82,
+ 0x01, 0x5f, 0x01, 0x01, 0x7e, 0xfe, 0xe2, 0x01, 0x60, 0x01, 0x01, 0x1d,
+ 0x02, 0x7a, 0xfe, 0x37, 0x02, 0xb3, 0x02, 0xd8, 0x01, 0xfc, 0xfd, 0x3f,
+ 0xfe, 0xc3, 0x6c, 0x01, 0x3d, 0xfe, 0x58, 0x01, 0x6a, 0x01, 0x01, 0xa8,
+ 0x01, 0x3d, 0x01, 0x6a, 0x01, 0xfe, 0xc3, 0x02, 0xc1, 0x98, 0xfd, 0x00,
+ 0x00, 0x02, 0x00, 0xac, 0x00, 0x00, 0x05, 0xc6, 0x05, 0xd8, 0x00, 0x29,
+ 0x00, 0x31, 0x00, 0x00, 0x01, 0x32, 0x12, 0x37, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x27, 0x0e, 0x01, 0x07, 0x23, 0x35, 0x37,
+ 0x36, 0x13, 0x26, 0x02, 0x23, 0x22, 0x02, 0x15, 0x14, 0x15, 0x07, 0x34,
+ 0x02, 0x27, 0x35, 0x32, 0x16, 0x13, 0x36, 0x37, 0x3e, 0x01, 0x01, 0x16,
+ 0x33, 0x32, 0x37, 0x26, 0x27, 0x22, 0x02, 0xfe, 0x60, 0x49, 0x17, 0x62,
+ 0xaf, 0x6d, 0x8a, 0x81, 0x80, 0x8b, 0x6e, 0x28, 0x71, 0x7c, 0x97, 0x8a,
+ 0x6e, 0x5e, 0x2c, 0x3a, 0x34, 0x21, 0x8a, 0x8f, 0x7e, 0x77, 0x84, 0x91,
+ 0x24, 0x29, 0x29, 0x25, 0x6e, 0x01, 0x34, 0x54, 0x75, 0x91, 0x08, 0x06,
+ 0x8f, 0x89, 0x05, 0xd8, 0xfc, 0x9e, 0x04, 0xdd, 0xbe, 0x67, 0x91, 0xab,
+ 0x85, 0xa0, 0xd7, 0x04, 0x76, 0x01, 0x04, 0x01, 0x78, 0x10, 0x03, 0x15,
+ 0xfe, 0x2d, 0xc3, 0x0f, 0x0e, 0x02, 0xfd, 0x01, 0xf0, 0x06, 0x61, 0xde,
+ 0xfe, 0xed, 0xc9, 0x58, 0x5b, 0x96, 0xfc, 0x26, 0x91, 0xc5, 0x9d, 0x13,
+ 0x00, 0x02, 0x00, 0x9e, 0x01, 0x39, 0x05, 0xd6, 0x04, 0xa2, 0x00, 0x27,
+ 0x00, 0x51, 0x00, 0x00, 0x13, 0x00, 0x33, 0x32, 0x17, 0x16, 0x32, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x32, 0x37, 0x36, 0x33, 0x32, 0x13, 0x07, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x22, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x23, 0x22, 0x06, 0x23, 0x27, 0x11, 0x00, 0x33, 0x32,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x32, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x33, 0x32, 0x13, 0x07, 0x26, 0x23, 0x22, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x22, 0x06,
+ 0x23, 0x27, 0x9e, 0x01, 0x25, 0x67, 0x29, 0x0c, 0x15, 0x65, 0x9b, 0x32,
+ 0x31, 0x15, 0x18, 0x66, 0x4e, 0x26, 0x25, 0x70, 0x62, 0x55, 0x38, 0x56,
+ 0x2e, 0x36, 0x4d, 0x65, 0x16, 0x1a, 0x35, 0x31, 0x4b, 0x4e, 0x32, 0x32,
+ 0x17, 0x15, 0x31, 0x31, 0xe8, 0x05, 0x30, 0x01, 0x24, 0x68, 0x28, 0x0d,
+ 0x15, 0x33, 0x31, 0x4e, 0x4e, 0x63, 0x15, 0x18, 0x32, 0x34, 0x4d, 0x27,
+ 0x24, 0x71, 0x62, 0x55, 0x38, 0x56, 0x2e, 0x36, 0x4e, 0x31, 0x33, 0x17,
+ 0x19, 0x35, 0x31, 0x4c, 0x4d, 0x33, 0x31, 0x17, 0x15, 0x63, 0xe7, 0x05,
+ 0x30, 0x01, 0x9d, 0x01, 0x0f, 0x28, 0x47, 0x8e, 0x47, 0x47, 0x47, 0x24,
+ 0xfe, 0xc4, 0x33, 0xb9, 0x35, 0x4c, 0x4b, 0x4e, 0x43, 0x47, 0x48, 0x46,
+ 0xd5, 0x62, 0x01, 0xd9, 0x01, 0x0d, 0x27, 0x46, 0x46, 0x48, 0x48, 0x46,
+ 0x46, 0x23, 0xfe, 0xc5, 0x32, 0xb9, 0x36, 0x4d, 0x4c, 0x4e, 0x44, 0x47,
+ 0x48, 0x48, 0xd5, 0x61, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x05, 0x53,
+ 0x05, 0xd8, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x07, 0x02, 0x03, 0x07, 0x00,
+ 0x13, 0x21, 0x35, 0x21, 0x02, 0x01, 0x17, 0x12, 0x13, 0x33, 0x12, 0x13,
+ 0x37, 0x00, 0x03, 0x21, 0x07, 0x21, 0x12, 0x01, 0x27, 0x02, 0x03, 0x03,
+ 0xa6, 0xd9, 0x1d, 0xfa, 0x94, 0x01, 0x14, 0x18, 0xfe, 0xf6, 0x01, 0x0a,
+ 0x19, 0xfe, 0xec, 0x95, 0xfa, 0x1d, 0xda, 0x1c, 0xfb, 0x95, 0xfe, 0xeb,
+ 0x18, 0x01, 0x0a, 0x01, 0xfe, 0xf5, 0x1a, 0x01, 0x15, 0x96, 0xfb, 0x1c,
+ 0x02, 0x99, 0x03, 0xfe, 0xae, 0xfe, 0xbf, 0x03, 0x01, 0x5f, 0x01, 0x37,
+ 0xac, 0x01, 0x36, 0x01, 0x60, 0x03, 0xfe, 0xc0, 0xfe, 0xad, 0x01, 0x53,
+ 0x01, 0x40, 0x03, 0xfe, 0xa0, 0xfe, 0xca, 0xac, 0xfe, 0xc9, 0xfe, 0xa1,
+ 0x03, 0x01, 0x41, 0x01, 0x52, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0xc0, 0x05, 0xd8, 0x00, 0x0f, 0x00, 0x20, 0x00, 0x24,
+ 0x00, 0x54, 0x00, 0x64, 0x00, 0x00, 0x01, 0x36, 0x37, 0x26, 0x27, 0x26,
+ 0x22, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x21, 0x33, 0x21,
+ 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x16, 0x17, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x26, 0x27, 0x2e,
+ 0x01, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23,
+ 0x15, 0x16, 0x17, 0x1e, 0x01, 0x1d, 0x01, 0x36, 0x33, 0x32, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x11, 0x01, 0x14, 0x1e, 0x01, 0x33,
+ 0x32, 0x3e, 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x02,
+ 0xfb, 0x01, 0x02, 0x20, 0x2e, 0x42, 0x8c, 0x85, 0x4b, 0x49, 0x43, 0x14,
+ 0x14, 0x01, 0x35, 0x7f, 0x01, 0x34, 0x16, 0x13, 0x43, 0x49, 0x4b, 0x84,
+ 0x47, 0x46, 0x42, 0x2f, 0x1f, 0x02, 0x01, 0xfe, 0x6c, 0x02, 0xa9, 0xfd,
+ 0x0d, 0x26, 0x22, 0x3e, 0x61, 0x63, 0xb2, 0x5e, 0x48, 0x44, 0x20, 0x1d,
+ 0x0c, 0x0e, 0x61, 0x61, 0x5f, 0x61, 0x61, 0x0e, 0x0c, 0x1c, 0x21, 0x45,
+ 0x47, 0x5d, 0xb2, 0x64, 0x62, 0x3d, 0x23, 0x25, 0xfe, 0x0d, 0x17, 0x29,
+ 0x14, 0x16, 0x28, 0x16, 0x16, 0x28, 0x16, 0x14, 0x29, 0x17, 0x03, 0xc7,
+ 0x03, 0x03, 0x2b, 0x1c, 0x29, 0x51, 0x95, 0x50, 0x51, 0x92, 0x28, 0x0e,
+ 0x08, 0x08, 0x0e, 0x28, 0x92, 0x51, 0x50, 0x95, 0x51, 0x29, 0x1c, 0x2b,
+ 0x03, 0x03, 0xfd, 0xb8, 0xfe, 0xd1, 0x01, 0x2f, 0xfe, 0x81, 0x01, 0x7f,
+ 0x0d, 0x16, 0x36, 0xc4, 0x6b, 0x6c, 0xc5, 0x6a, 0x1f, 0x02, 0x24, 0x3f,
+ 0x12, 0x07, 0x04, 0x36, 0x46, 0x57, 0x57, 0x46, 0x36, 0x04, 0x07, 0x12,
+ 0x3f, 0x24, 0x02, 0x1f, 0x6a, 0xc5, 0x6c, 0x6b, 0xc4, 0x36, 0x16, 0x0d,
+ 0xfe, 0x81, 0x04, 0x7d, 0x19, 0x2b, 0x19, 0x19, 0x2b, 0x19, 0x18, 0x2d,
+ 0x17, 0x17, 0x2d, 0x00, 0x00, 0x08, 0x00, 0xcb, 0x00, 0x00, 0x05, 0xa9,
+ 0x05, 0xd8, 0x00, 0x48, 0x00, 0x4e, 0x00, 0x52, 0x00, 0x68, 0x00, 0x7c,
+ 0x00, 0x90, 0x00, 0xa5, 0x00, 0xbb, 0x00, 0x00, 0x01, 0x26, 0x27, 0x34,
+ 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06, 0x07, 0x13, 0x03, 0x22,
+ 0x27, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06, 0x07, 0x1b,
+ 0x01, 0x26, 0x27, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06,
+ 0x07, 0x1b, 0x01, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01,
+ 0x15, 0x06, 0x07, 0x03, 0x13, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32,
+ 0x1e, 0x01, 0x15, 0x06, 0x23, 0x03, 0x11, 0x21, 0x11, 0x01, 0x35, 0x07,
+ 0x21, 0x27, 0x1d, 0x02, 0x21, 0x35, 0x01, 0x17, 0x03, 0x36, 0x37, 0x3e,
+ 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x15, 0x14, 0x1e,
+ 0x01, 0x33, 0x32, 0x37, 0x01, 0x17, 0x03, 0x36, 0x37, 0x3e, 0x01, 0x34,
+ 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x37,
+ 0x01, 0x37, 0x13, 0x16, 0x33, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23,
+ 0x22, 0x0e, 0x01, 0x14, 0x16, 0x17, 0x16, 0x17, 0x01, 0x33, 0x03, 0x32,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x01, 0x37, 0x13, 0x16, 0x33, 0x32, 0x3e,
+ 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x15, 0x14, 0x16,
+ 0x17, 0x16, 0x17, 0x01, 0x2c, 0x56, 0x0b, 0x1b, 0x30, 0x1a, 0x19, 0x31,
+ 0x19, 0x03, 0x34, 0xd7, 0x2e, 0x4b, 0x10, 0x1a, 0x30, 0x1b, 0x1a, 0x2f,
+ 0x1a, 0x01, 0x2a, 0xaa, 0x27, 0x3c, 0x02, 0x1b, 0x30, 0x18, 0x1a, 0x30,
+ 0x1b, 0x03, 0x3c, 0x22, 0xa6, 0x29, 0x1a, 0x31, 0x18, 0x1b, 0x31, 0x1a,
+ 0x0a, 0x4e, 0x52, 0xe7, 0x27, 0x1a, 0x30, 0x19, 0x1b, 0x30, 0x1a, 0x0c,
+ 0x59, 0x90, 0xfc, 0xf9, 0x02, 0xd4, 0xa3, 0xfe, 0xb9, 0xa4, 0x02, 0x8e,
+ 0xfd, 0x4c, 0x45, 0xd0, 0x06, 0x07, 0x10, 0x12, 0x12, 0x1f, 0x12, 0x11,
+ 0x1f, 0x13, 0x12, 0x20, 0x11, 0x06, 0x08, 0x01, 0x17, 0x7a, 0xa8, 0x05,
+ 0x05, 0x0f, 0x11, 0x11, 0x20, 0x10, 0x12, 0x1f, 0x12, 0x11, 0x20, 0x12,
+ 0x06, 0x07, 0x01, 0x82, 0x68, 0x56, 0x05, 0x04, 0x11, 0x21, 0x12, 0x13,
+ 0x20, 0x11, 0x10, 0x20, 0x12, 0x12, 0x10, 0x07, 0x06, 0xfe, 0xbe, 0x5a,
+ 0x2b, 0x11, 0x0e, 0x10, 0x13, 0x14, 0x1f, 0x11, 0x10, 0x22, 0x11, 0x11,
+ 0x12, 0x0c, 0x0e, 0x01, 0x0b, 0x5e, 0x95, 0x0a, 0x0a, 0x11, 0x1f, 0x12,
+ 0x12, 0x1f, 0x11, 0x12, 0x20, 0x11, 0x11, 0x10, 0x04, 0x03, 0x03, 0xfb,
+ 0x02, 0x5f, 0x1c, 0x33, 0x1c, 0x1c, 0x33, 0x1c, 0x40, 0x16, 0xfe, 0x06,
+ 0x02, 0xbe, 0x5d, 0x1c, 0x32, 0x1c, 0x1c, 0x32, 0x1c, 0x2d, 0x22, 0xfd,
+ 0x14, 0x03, 0x34, 0x1e, 0x30, 0x1c, 0x34, 0x1a, 0x1a, 0x34, 0x1c, 0x36,
+ 0x18, 0xfc, 0xca, 0x02, 0xe4, 0x2f, 0x2a, 0x1b, 0x33, 0x1c, 0x1c, 0x33,
+ 0x1b, 0x55, 0x10, 0xfd, 0x4a, 0x02, 0x03, 0x22, 0x2b, 0x1c, 0x33, 0x1b,
+ 0x1b, 0x33, 0x1c, 0x5e, 0xfe, 0x31, 0xfd, 0xd1, 0x02, 0x2f, 0xfe, 0xdf,
+ 0xe1, 0x4b, 0x3d, 0xd3, 0x30, 0xa4, 0xa4, 0x01, 0x54, 0x2a, 0x02, 0x0e,
+ 0x03, 0x04, 0x0a, 0x23, 0x13, 0x14, 0x23, 0x14, 0x14, 0x23, 0x14, 0x13,
+ 0x23, 0x14, 0x01, 0xfd, 0xf8, 0x20, 0x02, 0xf9, 0x02, 0x03, 0x0a, 0x23,
+ 0x26, 0x24, 0x13, 0x13, 0x24, 0x26, 0x23, 0x14, 0x01, 0xfd, 0x13, 0x1b,
+ 0x02, 0xd1, 0x01, 0x14, 0x23, 0x26, 0x24, 0x13, 0x13, 0x24, 0x26, 0x23,
+ 0x0a, 0x05, 0x02, 0xfd, 0x0a, 0x03, 0x42, 0x0a, 0x0a, 0x23, 0x14, 0x13,
+ 0x23, 0x14, 0x14, 0x23, 0x13, 0x14, 0x23, 0x0a, 0x08, 0x02, 0xfc, 0xda,
+ 0x2a, 0x01, 0xea, 0x03, 0x15, 0x22, 0x14, 0x13, 0x24, 0x13, 0x13, 0x24,
+ 0x13, 0x14, 0x22, 0x0b, 0x02, 0x02, 0x00, 0x00, 0x00, 0x05, 0x01, 0x32,
+ 0xff, 0xfe, 0x05, 0x41, 0x05, 0xd6, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x27,
+ 0x00, 0x2d, 0x00, 0x32, 0x00, 0x00, 0x01, 0x33, 0x15, 0x33, 0x35, 0x33,
+ 0x15, 0x23, 0x15, 0x07, 0x11, 0x17, 0x15, 0x33, 0x15, 0x21, 0x35, 0x33,
+ 0x35, 0x37, 0x33, 0x11, 0x23, 0x27, 0x35, 0x23, 0x35, 0x33, 0x15, 0x33,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x37, 0x35, 0x21, 0x15, 0x17, 0x11, 0x07,
+ 0x15, 0x21, 0x35, 0x27, 0x35, 0x11, 0x37, 0x21, 0x11, 0x02, 0xba, 0xfa,
+ 0x9a, 0xf3, 0x68, 0x53, 0x53, 0x68, 0xfb, 0xf2, 0x67, 0x54, 0x01, 0x01,
+ 0x54, 0x67, 0xee, 0x99, 0x02, 0x55, 0xfc, 0x56, 0x02, 0xf6, 0x4a, 0xfd,
+ 0x2b, 0x49, 0x41, 0x02, 0xc5, 0x43, 0x01, 0xfd, 0xbe, 0x05, 0xd6, 0x9b,
+ 0x9b, 0xa2, 0x90, 0x96, 0xfd, 0xb7, 0x95, 0x8f, 0xa3, 0xa3, 0x8f, 0x98,
+ 0x02, 0x45, 0x97, 0x90, 0xa2, 0x9b, 0xfa, 0xfb, 0x37, 0x37, 0x03, 0xea,
+ 0x83, 0x5f, 0x5f, 0x83, 0xfd, 0x76, 0x74, 0x80, 0x80, 0x74, 0x34, 0x02,
+ 0x21, 0x02, 0xfd, 0xdd, 0x00, 0x04, 0x01, 0x8a, 0x00, 0x00, 0x04, 0xeb,
+ 0x05, 0xd8, 0x00, 0x37, 0x00, 0x43, 0x00, 0x51, 0x00, 0x5e, 0x00, 0x00,
+ 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x27, 0x35,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x3e,
+ 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x15, 0x06, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x13, 0x21, 0x1b, 0x01, 0x35, 0x33, 0x35,
+ 0x23, 0x35, 0x23, 0x15, 0x23, 0x15, 0x33, 0x15, 0x13, 0x36, 0x35, 0x34,
+ 0x2e, 0x01, 0x22, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x03, 0x21, 0x00, 0x14,
+ 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x02,
+ 0x84, 0x1c, 0x1c, 0x08, 0x0a, 0x36, 0x21, 0x25, 0x01, 0x01, 0x25, 0x27,
+ 0x46, 0x19, 0x1b, 0x17, 0x0f, 0x14, 0x28, 0x46, 0x26, 0x25, 0x46, 0x29,
+ 0x13, 0x0f, 0x17, 0x19, 0x1a, 0x46, 0x27, 0x26, 0x01, 0x01, 0x26, 0x21,
+ 0x34, 0x0a, 0x07, 0x1c, 0x1d, 0x02, 0x02, 0xfe, 0xfc, 0xa0, 0xf4, 0xf1,
+ 0x9b, 0x9b, 0x6a, 0x9b, 0x9b, 0x92, 0x36, 0x29, 0x45, 0x4b, 0x46, 0x28,
+ 0x38, 0xc7, 0x02, 0x49, 0xfe, 0x76, 0x1a, 0x30, 0x34, 0x31, 0x1a, 0x1b,
+ 0x31, 0x19, 0x1a, 0x2f, 0x01, 0x94, 0x35, 0x39, 0x3c, 0x35, 0x11, 0x0e,
+ 0x26, 0x3f, 0x48, 0x50, 0x04, 0x50, 0x49, 0x4b, 0x2a, 0x0e, 0x0a, 0x12,
+ 0x1d, 0x27, 0x29, 0x2b, 0x4b, 0x2a, 0x2a, 0x4b, 0x2b, 0x29, 0x27, 0x1d,
+ 0x13, 0x09, 0x0e, 0x2a, 0x4b, 0x49, 0x50, 0x04, 0x50, 0x48, 0x3e, 0x26,
+ 0x0f, 0x11, 0x35, 0x3c, 0x3a, 0x36, 0x03, 0x04, 0xfe, 0x75, 0x01, 0x94,
+ 0x01, 0x4e, 0x7c, 0x6c, 0x7c, 0x7c, 0x6c, 0x7c, 0xfe, 0xb2, 0x2d, 0x49,
+ 0x2b, 0x4e, 0x29, 0x29, 0x4e, 0x2b, 0x40, 0x36, 0xfe, 0xac, 0x05, 0x19,
+ 0x3a, 0x35, 0x1c, 0x1c, 0x35, 0x3a, 0x35, 0x1b, 0x1b, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x01, 0x2f, 0x00, 0x00, 0x05, 0x46, 0x05, 0xd8, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x3e, 0x00, 0x6f, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34,
+ 0x26, 0x35, 0x34, 0x37, 0x16, 0x15, 0x14, 0x07, 0x00, 0x13, 0x21, 0x26,
+ 0x35, 0x34, 0x00, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x07, 0x27, 0x07, 0x26,
+ 0x27, 0x36, 0x35, 0x34, 0x27, 0x36, 0x37, 0x2e, 0x01, 0x35, 0x34, 0x37,
+ 0x16, 0x17, 0x03, 0x36, 0x3b, 0x01, 0x06, 0x15, 0x14, 0x2b, 0x01, 0x22,
+ 0x27, 0x35, 0x03, 0x17, 0x14, 0x07, 0x23, 0x22, 0x3d, 0x01, 0x36, 0x13,
+ 0x26, 0x27, 0x06, 0x15, 0x14, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16,
+ 0x15, 0x14, 0x07, 0x16, 0x17, 0x37, 0x07, 0x36, 0x37, 0x36, 0x37, 0x16,
+ 0x15, 0x14, 0x00, 0x15, 0x14, 0x17, 0x25, 0x02, 0x01, 0x32, 0x35, 0x23,
+ 0x36, 0x35, 0x34, 0x26, 0x27, 0x06, 0x15, 0x14, 0x16, 0x15, 0x14, 0x07,
+ 0x02, 0xce, 0x04, 0x14, 0x3f, 0x6e, 0x07, 0x01, 0xb9, 0x28, 0xfc, 0x97,
+ 0x0c, 0x01, 0x63, 0x51, 0x32, 0x2a, 0x8e, 0x08, 0x28, 0x7d, 0x1c, 0x47,
+ 0x02, 0x2b, 0x41, 0x13, 0x07, 0x1e, 0x5e, 0x30, 0x91, 0x21, 0x56, 0x06,
+ 0x27, 0x3e, 0x13, 0x07, 0x04, 0x05, 0x06, 0x41, 0x09, 0x19, 0x25, 0xc2,
+ 0x1f, 0x45, 0x17, 0x1a, 0x0a, 0x35, 0x27, 0x03, 0x42, 0x16, 0x5d, 0x57,
+ 0x1f, 0x79, 0x1a, 0x5f, 0x49, 0x0a, 0xfe, 0xa9, 0x0a, 0x03, 0x14, 0x23,
+ 0xfe, 0x43, 0x01, 0x04, 0x1c, 0x0b, 0x46, 0x1b, 0x10, 0x08, 0x04, 0xe8,
+ 0x08, 0x0b, 0x15, 0x2b, 0x0e, 0x31, 0x5e, 0x68, 0x67, 0x1a, 0x1b, 0xfe,
+ 0xbd, 0xfc, 0x6f, 0x38, 0x3a, 0xa0, 0x01, 0x28, 0x40, 0x06, 0x73, 0x03,
+ 0x8e, 0x12, 0x16, 0x1e, 0x2e, 0x50, 0xf9, 0xc0, 0x1e, 0x1c, 0x6d, 0x7a,
+ 0x20, 0x13, 0x05, 0x1b, 0x6e, 0x1b, 0x78, 0xfe, 0xeb, 0x3f, 0x2e, 0x23,
+ 0x31, 0x1e, 0x0f, 0xfe, 0x70, 0x23, 0x34, 0x0f, 0x1e, 0x17, 0x31, 0x02,
+ 0xa7, 0x60, 0x26, 0x3e, 0x25, 0x1b, 0x21, 0x12, 0x10, 0x0f, 0x61, 0x63,
+ 0x2c, 0x2c, 0xc5, 0xc0, 0x4c, 0x18, 0x48, 0x4a, 0x0a, 0x90, 0x04, 0xad,
+ 0x1e, 0x1e, 0x78, 0xfe, 0xec, 0x7d, 0x36, 0x34, 0x01, 0x03, 0x37, 0x01,
+ 0x7c, 0x01, 0x0a, 0x2b, 0x0c, 0x4f, 0x4a, 0x4a, 0x29, 0x13, 0x21, 0x13,
+ 0x11, 0x0f, 0x00, 0x00, 0x00, 0x04, 0x01, 0x11, 0xff, 0xff, 0x05, 0x62,
+ 0x05, 0xd7, 0x00, 0x0d, 0x00, 0x1d, 0x00, 0x50, 0x00, 0x5b, 0x00, 0x00,
+ 0x00, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x13, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x35, 0x34,
+ 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x01, 0x15, 0x21, 0x35, 0x07, 0x26,
+ 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36,
+ 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e,
+ 0x01, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x07, 0x27, 0x26, 0x27,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x06, 0x07, 0x02, 0x79, 0x34, 0x5b,
+ 0x31, 0x34, 0x5b, 0x32, 0x33, 0x5c, 0x32, 0x30, 0x5b, 0x56, 0x0f, 0x19,
+ 0x0d, 0x0f, 0x19, 0x0e, 0x0e, 0x1a, 0x0e, 0x0c, 0x1a, 0x0f, 0x02, 0x1f,
+ 0xfc, 0x43, 0x4a, 0x0a, 0x94, 0x84, 0x22, 0x24, 0x1b, 0x13, 0x26, 0x4c,
+ 0x46, 0x18, 0x1a, 0x17, 0x0e, 0x14, 0x27, 0x46, 0x25, 0x24, 0x47, 0x28,
+ 0x13, 0x0f, 0x17, 0x19, 0x1b, 0x43, 0x4e, 0x25, 0x14, 0x1b, 0x22, 0x22,
+ 0x84, 0x96, 0x0b, 0x53, 0x03, 0x3a, 0x3e, 0xdd, 0x73, 0x74, 0xdc, 0x3d,
+ 0x3a, 0x04, 0x03, 0xc1, 0x70, 0x64, 0x38, 0x38, 0x64, 0x70, 0x67, 0x36,
+ 0x36, 0x01, 0x0e, 0x10, 0x1b, 0x0f, 0x0f, 0x1b, 0x10, 0x0f, 0x1c, 0x10,
+ 0x10, 0x1c, 0xfa, 0xbb, 0x01, 0x01, 0x01, 0x39, 0x3a, 0xa0, 0x01, 0x25,
+ 0x4e, 0x15, 0x0f, 0x1d, 0x26, 0x4b, 0x52, 0x53, 0x97, 0x2a, 0x0e, 0x0a,
+ 0x13, 0x1d, 0x27, 0x54, 0x4d, 0x2a, 0x2a, 0x4d, 0x54, 0x27, 0x1d, 0x14,
+ 0x09, 0x0e, 0x2a, 0x97, 0x53, 0x52, 0x4b, 0x26, 0x1d, 0x10, 0x14, 0x4e,
+ 0xfe, 0xdb, 0xa0, 0x3a, 0x39, 0x84, 0x7d, 0x71, 0x79, 0x83, 0x83, 0x79,
+ 0x71, 0x7d, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4, 0x00, 0x00, 0x05, 0xc0,
+ 0x05, 0xd8, 0x00, 0x0f, 0x00, 0x20, 0x00, 0x24, 0x00, 0x54, 0x00, 0x64,
+ 0x00, 0x68, 0x00, 0x79, 0x00, 0x8a, 0x00, 0x00, 0x01, 0x36, 0x37, 0x26,
+ 0x27, 0x26, 0x22, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x21,
+ 0x33, 0x21, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x26,
+ 0x27, 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x35, 0x34,
+ 0x36, 0x37, 0x36, 0x37, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33,
+ 0x15, 0x23, 0x15, 0x16, 0x17, 0x1e, 0x01, 0x1d, 0x01, 0x36, 0x33, 0x32,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x11, 0x01, 0x14, 0x1e,
+ 0x01, 0x33, 0x32, 0x3e, 0x01, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e,
+ 0x01, 0x01, 0x15, 0x21, 0x35, 0x37, 0x23, 0x26, 0x27, 0x2e, 0x01, 0x35,
+ 0x34, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x06, 0x15, 0x33, 0x34,
+ 0x27, 0x36, 0x37, 0x36, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07,
+ 0x06, 0x07, 0x23, 0x02, 0xfb, 0x01, 0x02, 0x20, 0x2e, 0x42, 0x8c, 0x85,
+ 0x4b, 0x49, 0x43, 0x14, 0x14, 0x01, 0x35, 0x7f, 0x01, 0x34, 0x16, 0x13,
+ 0x43, 0x49, 0x4b, 0x84, 0x47, 0x46, 0x42, 0x2f, 0x1f, 0x02, 0x01, 0xfe,
+ 0x6c, 0x02, 0xa9, 0xfd, 0x0d, 0x26, 0x22, 0x3e, 0x61, 0x63, 0xb2, 0x5e,
+ 0x48, 0x44, 0x20, 0x1d, 0x0c, 0x0e, 0x61, 0x61, 0x5f, 0x61, 0x61, 0x0e,
+ 0x0c, 0x1c, 0x21, 0x45, 0x47, 0x5d, 0xb2, 0x64, 0x62, 0x3d, 0x23, 0x25,
+ 0xfe, 0x0d, 0x17, 0x29, 0x14, 0x16, 0x28, 0x16, 0x16, 0x28, 0x16, 0x14,
+ 0x29, 0x17, 0x01, 0x7a, 0xfd, 0xb5, 0xb9, 0xfc, 0x10, 0x0f, 0x37, 0x3c,
+ 0x3e, 0x6b, 0x39, 0x38, 0x37, 0x25, 0x1a, 0x02, 0xd9, 0x02, 0x1a, 0x25,
+ 0x37, 0x37, 0x3b, 0x6b, 0x3d, 0x3b, 0x37, 0x11, 0x10, 0xfb, 0x03, 0xc7,
+ 0x03, 0x03, 0x2b, 0x1c, 0x29, 0x51, 0x95, 0x50, 0x51, 0x92, 0x28, 0x0e,
+ 0x08, 0x08, 0x0e, 0x28, 0x92, 0x51, 0x50, 0x95, 0x51, 0x29, 0x1c, 0x2b,
+ 0x03, 0x03, 0xfd, 0xb8, 0xfe, 0xd1, 0x01, 0x2f, 0xfe, 0x81, 0x01, 0x7f,
+ 0x0d, 0x16, 0x36, 0xc4, 0x6b, 0x6c, 0xc5, 0x6a, 0x1f, 0x02, 0x24, 0x3f,
+ 0x12, 0x07, 0x04, 0x36, 0x46, 0x57, 0x57, 0x46, 0x36, 0x04, 0x07, 0x12,
+ 0x3f, 0x24, 0x02, 0x1f, 0x6a, 0xc5, 0x6c, 0x6b, 0xc4, 0x36, 0x16, 0x0d,
+ 0xfe, 0x81, 0x04, 0x7d, 0x19, 0x2b, 0x19, 0x19, 0x2b, 0x19, 0x18, 0x2d,
+ 0x17, 0x17, 0x2d, 0xfc, 0xb6, 0xc8, 0xc8, 0xce, 0x07, 0x0c, 0x21, 0x79,
+ 0x43, 0x42, 0x7b, 0x43, 0x21, 0x17, 0x24, 0x03, 0x02, 0x02, 0x03, 0x24,
+ 0x17, 0x21, 0x43, 0x7b, 0x42, 0x43, 0x79, 0x21, 0x0c, 0x07, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xcb, 0x00, 0x00, 0x05, 0xa9, 0x05, 0xd8, 0x00, 0x48,
+ 0x00, 0x4c, 0x00, 0x50, 0x00, 0x00, 0x01, 0x26, 0x27, 0x34, 0x3e, 0x01,
+ 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06, 0x07, 0x13, 0x03, 0x22, 0x27, 0x34,
+ 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06, 0x07, 0x1b, 0x01, 0x26,
+ 0x27, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06, 0x07, 0x1b,
+ 0x01, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15, 0x06,
+ 0x07, 0x03, 0x13, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01,
+ 0x15, 0x06, 0x23, 0x03, 0x11, 0x21, 0x11, 0x05, 0x35, 0x21, 0x15, 0x01,
+ 0x35, 0x21, 0x15, 0x01, 0x2c, 0x56, 0x0b, 0x1b, 0x30, 0x1a, 0x19, 0x31,
+ 0x19, 0x03, 0x34, 0xd7, 0x2e, 0x4b, 0x10, 0x1a, 0x30, 0x1b, 0x1a, 0x2f,
+ 0x1a, 0x01, 0x2a, 0xaa, 0x27, 0x3c, 0x02, 0x1b, 0x30, 0x18, 0x1a, 0x30,
+ 0x1b, 0x03, 0x3c, 0x22, 0xa6, 0x29, 0x1a, 0x31, 0x18, 0x1b, 0x31, 0x1a,
+ 0x0a, 0x4e, 0x52, 0xe7, 0x27, 0x1a, 0x30, 0x19, 0x1b, 0x30, 0x1a, 0x0c,
+ 0x59, 0x90, 0xfc, 0xf9, 0x02, 0xd4, 0xfd, 0x72, 0x02, 0x8e, 0xfd, 0x72,
+ 0x03, 0xfb, 0x02, 0x5f, 0x1c, 0x33, 0x1c, 0x1c, 0x33, 0x1c, 0x40, 0x16,
+ 0xfe, 0x06, 0x02, 0xbe, 0x5d, 0x1c, 0x32, 0x1c, 0x1c, 0x32, 0x1c, 0x2d,
+ 0x22, 0xfd, 0x14, 0x03, 0x34, 0x1e, 0x30, 0x1c, 0x34, 0x1a, 0x1a, 0x34,
+ 0x1c, 0x36, 0x18, 0xfc, 0xca, 0x02, 0xe4, 0x2f, 0x2a, 0x1b, 0x33, 0x1c,
+ 0x1c, 0x33, 0x1b, 0x55, 0x10, 0xfd, 0x4a, 0x02, 0x03, 0x22, 0x2b, 0x1c,
+ 0x33, 0x1b, 0x1b, 0x33, 0x1c, 0x5e, 0xfe, 0x31, 0xfd, 0xd1, 0x02, 0x2f,
+ 0xcb, 0x4e, 0x4e, 0xfe, 0xd6, 0x4f, 0x4f, 0x00, 0x00, 0x04, 0x01, 0x32,
+ 0xff, 0xfe, 0x05, 0x41, 0x05, 0xd6, 0x00, 0x03, 0x00, 0x07, 0x00, 0x25,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15,
+ 0x13, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x23, 0x15, 0x07, 0x11, 0x17,
+ 0x15, 0x33, 0x15, 0x21, 0x35, 0x33, 0x35, 0x37, 0x33, 0x11, 0x23, 0x27,
+ 0x35, 0x23, 0x35, 0x33, 0x15, 0x33, 0x01, 0x35, 0x21, 0x15, 0x04, 0x5a,
+ 0xfd, 0xc0, 0x02, 0x83, 0xfd, 0x3b, 0xe2, 0xfa, 0x9a, 0xf3, 0x68, 0x53,
+ 0x53, 0x68, 0xfb, 0xf2, 0x67, 0x54, 0x01, 0x01, 0x54, 0x67, 0xee, 0x99,
+ 0x02, 0x55, 0xfc, 0x56, 0x04, 0x84, 0x5e, 0x5e, 0xfc, 0x2f, 0x6f, 0x6f,
+ 0x05, 0x23, 0x9b, 0x9b, 0xa2, 0x90, 0x96, 0xfd, 0xb7, 0x95, 0x8f, 0xa3,
+ 0xa3, 0x8f, 0x98, 0x02, 0x45, 0x97, 0x90, 0xa2, 0x9b, 0xfa, 0xfb, 0x37,
+ 0x37, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x8a, 0x00, 0x00, 0x04, 0xeb,
+ 0x05, 0xd8, 0x00, 0x34, 0x00, 0x40, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x26, 0x27, 0x26, 0x27, 0x35, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x33, 0x32, 0x1e, 0x01, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x15, 0x06,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x13, 0x21, 0x13,
+ 0x26, 0x01, 0x35, 0x33, 0x35, 0x23, 0x35, 0x23, 0x15, 0x23, 0x15, 0x33,
+ 0x15, 0x02, 0x68, 0x1c, 0x08, 0x0a, 0x36, 0x21, 0x25, 0x01, 0x01, 0x25,
+ 0x27, 0x46, 0x19, 0x1b, 0x17, 0x0f, 0x14, 0x28, 0x46, 0x26, 0x25, 0x46,
+ 0x29, 0x13, 0x0f, 0x17, 0x19, 0x1a, 0x46, 0x27, 0x26, 0x01, 0x01, 0x26,
+ 0x21, 0x34, 0x0a, 0x07, 0x1c, 0x1d, 0xfa, 0xfc, 0xa0, 0xf4, 0x16, 0x01,
+ 0x07, 0x9b, 0x9b, 0x6a, 0x9b, 0x9b, 0x02, 0x02, 0x3c, 0x35, 0x11, 0x0e,
+ 0x26, 0x3f, 0x48, 0x50, 0x04, 0x50, 0x49, 0x4b, 0x2a, 0x0e, 0x0a, 0x12,
+ 0x1d, 0x27, 0x29, 0x2b, 0x4b, 0x2a, 0x2a, 0x4b, 0x2b, 0x29, 0x27, 0x1d,
+ 0x13, 0x09, 0x0e, 0x2a, 0x4b, 0x49, 0x50, 0x04, 0x50, 0x48, 0x3e, 0x26,
+ 0x0f, 0x11, 0x35, 0x3c, 0x3a, 0x36, 0xfe, 0x6e, 0x01, 0x94, 0x35, 0x01,
+ 0x19, 0x7c, 0x6c, 0x7c, 0x7c, 0x6c, 0x7c, 0x00, 0x00, 0x04, 0x01, 0x2a,
+ 0x00, 0x00, 0x05, 0x4a, 0x05, 0xd8, 0x00, 0x33, 0x00, 0x3f, 0x00, 0x48,
+ 0x00, 0x4e, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34, 0x26, 0x35, 0x34, 0x37,
+ 0x1e, 0x01, 0x15, 0x14, 0x07, 0x33, 0x14, 0x23, 0x00, 0x13, 0x21, 0x26,
+ 0x35, 0x34, 0x00, 0x35, 0x34, 0x27, 0x06, 0x2b, 0x01, 0x06, 0x23, 0x22,
+ 0x23, 0x37, 0x07, 0x26, 0x27, 0x36, 0x35, 0x34, 0x27, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x26, 0x35, 0x34, 0x37, 0x16, 0x17, 0x07, 0x15, 0x16, 0x3b,
+ 0x01, 0x32, 0x35, 0x34, 0x37, 0x23, 0x22, 0x07, 0x03, 0x15, 0x14, 0x3b,
+ 0x01, 0x36, 0x35, 0x27, 0x22, 0x01, 0x17, 0x00, 0x13, 0x33, 0x02, 0x02,
+ 0xc7, 0x21, 0x1b, 0x35, 0x4c, 0x0e, 0x1f, 0x03, 0x01, 0x01, 0xe2, 0x29,
+ 0xfc, 0x97, 0x0c, 0x01, 0x6c, 0x01, 0x3b, 0x69, 0x09, 0x51, 0x5d, 0x03,
+ 0x03, 0x2b, 0x60, 0x67, 0x18, 0x4f, 0x02, 0x2b, 0x59, 0x03, 0x28, 0x12,
+ 0x5d, 0x33, 0x99, 0x03, 0x07, 0x13, 0x3f, 0x26, 0x05, 0x57, 0x21, 0x67,
+ 0x19, 0x09, 0x41, 0x07, 0x38, 0x01, 0x9c, 0x2f, 0x01, 0x51, 0x06, 0x45,
+ 0x29, 0x04, 0xe6, 0x17, 0x27, 0x19, 0x39, 0x16, 0x2e, 0x1e, 0x51, 0x59,
+ 0x0d, 0x2f, 0x0c, 0x01, 0xfe, 0xac, 0xfc, 0x6f, 0x38, 0x3a, 0xa0, 0x01,
+ 0x1b, 0x71, 0x08, 0x07, 0xa7, 0x92, 0x68, 0x50, 0x1c, 0x53, 0xe5, 0xbe,
+ 0x1b, 0x1a, 0x6d, 0x68, 0x0a, 0x09, 0x1c, 0x1a, 0x23, 0x25, 0x42, 0x1b,
+ 0x7a, 0xff, 0x10, 0x1e, 0x31, 0x22, 0x30, 0x40, 0xfe, 0x29, 0x18, 0x1d,
+ 0x0f, 0x35, 0x22, 0x02, 0x40, 0x59, 0xfe, 0xf3, 0xfd, 0x04, 0x03, 0x52,
+ 0x00, 0x01, 0x01, 0x11, 0xff, 0xff, 0x05, 0x62, 0x05, 0xd7, 0x00, 0x2e,
+ 0x00, 0x00, 0x05, 0x26, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x34, 0x3e,
+ 0x01, 0x33, 0x32, 0x1e, 0x01, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x1e,
+ 0x01, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14,
+ 0x07, 0x01, 0x1c, 0x0a, 0x94, 0x84, 0x22, 0x24, 0x1b, 0x13, 0x26, 0x4c,
+ 0x46, 0x18, 0x1a, 0x17, 0x0e, 0x14, 0x27, 0x46, 0x25, 0x24, 0x47, 0x28,
+ 0x13, 0x0f, 0x17, 0x19, 0x1b, 0x43, 0x4e, 0x25, 0x14, 0x1b, 0x22, 0x22,
+ 0x84, 0x96, 0x0b, 0x01, 0x39, 0x3a, 0xa0, 0x01, 0x25, 0x4e, 0x15, 0x0f,
+ 0x1d, 0x26, 0x4b, 0x52, 0x53, 0x97, 0x2a, 0x0e, 0x0a, 0x13, 0x1d, 0x27,
+ 0x54, 0x4d, 0x2a, 0x2a, 0x4d, 0x54, 0x27, 0x1d, 0x14, 0x09, 0x0e, 0x2a,
+ 0x97, 0x53, 0x52, 0x4b, 0x26, 0x1d, 0x10, 0x14, 0x4e, 0xfe, 0xdb, 0xa0,
+ 0x3a, 0x39, 0x00, 0x00, 0x00, 0x01, 0x01, 0x22, 0x00, 0x00, 0x05, 0x51,
+ 0x05, 0xd4, 0x00, 0x23, 0x00, 0x00, 0x01, 0x16, 0x13, 0x12, 0x17, 0x16,
+ 0x1d, 0x01, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x23, 0x15, 0x10, 0x17,
+ 0x23, 0x35, 0x36, 0x11, 0x27, 0x23, 0x07, 0x06, 0x23, 0x22, 0x2f, 0x01,
+ 0x35, 0x34, 0x37, 0x00, 0x3f, 0x01, 0x03, 0x3c, 0x55, 0xc2, 0xd5, 0x06,
+ 0x23, 0x92, 0x30, 0x39, 0x8b, 0x55, 0x26, 0x4a, 0xc1, 0x4d, 0x03, 0x22,
+ 0x2b, 0x4c, 0x72, 0xa9, 0x44, 0x08, 0xa8, 0x01, 0x1b, 0x51, 0x02, 0x05,
+ 0xd4, 0xa7, 0xfe, 0xec, 0xfe, 0xea, 0x39, 0x55, 0x50, 0x28, 0xa7, 0x60,
+ 0x16, 0xdd, 0x0c, 0xfe, 0xe5, 0x96, 0x06, 0x97, 0x01, 0x1d, 0x03, 0x58,
+ 0x85, 0xd1, 0x49, 0x2e, 0xb7, 0xcb, 0x01, 0x82, 0xa5, 0x03, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa6, 0x00, 0x01, 0x05, 0xce, 0x05, 0xd1, 0x00, 0x18,
+ 0x00, 0x32, 0x00, 0x00, 0x01, 0x32, 0x13, 0x16, 0x15, 0x32, 0x37, 0x12,
+ 0x33, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x10, 0x07, 0x00, 0x07, 0x23, 0x01,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x03, 0x15, 0x14, 0x17, 0x01, 0x33, 0x01,
+ 0x36, 0x3d, 0x01, 0x34, 0x27, 0x26, 0x23, 0x22, 0x03, 0x06, 0x15, 0x23,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x01, 0xf3, 0xc4, 0x68, 0x19,
+ 0x06, 0x0c, 0x64, 0xd4, 0xbc, 0x6e, 0x22, 0xc7, 0xfe, 0x6a, 0x36, 0x05,
+ 0xfd, 0xdc, 0x6c, 0xb4, 0x48, 0xce, 0xbc, 0x01, 0xab, 0x03, 0x02, 0x04,
+ 0x5e, 0xaa, 0x40, 0x34, 0xee, 0x4d, 0x09, 0x06, 0x40, 0x5b, 0xaa, 0x9d,
+ 0x60, 0x22, 0x05, 0xd1, 0xfe, 0xed, 0x50, 0x18, 0x46, 0x01, 0x35, 0xd3,
+ 0x4e, 0x50, 0x0d, 0xfe, 0xfe, 0xe7, 0xfd, 0xd9, 0x42, 0x02, 0xed, 0xb2,
+ 0xb6, 0xd2, 0x7c, 0x2d, 0xfe, 0x8f, 0x10, 0xdb, 0xe4, 0xfd, 0xbc, 0x02,
+ 0xbb, 0xa1, 0x97, 0x26, 0xac, 0x70, 0x1c, 0xfe, 0x41, 0x26, 0x1a, 0x4e,
+ 0xd1, 0xe0, 0xb1, 0x46, 0x00, 0x02, 0x01, 0x35, 0x00, 0x00, 0x05, 0x3d,
+ 0x05, 0xd4, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x09, 0x01, 0x15, 0x00,
+ 0x07, 0x26, 0x01, 0x26, 0x35, 0x09, 0x04, 0x03, 0x3a, 0x02, 0x03, 0xfe,
+ 0x19, 0x1c, 0x0d, 0xfe, 0x48, 0x3f, 0x02, 0x01, 0xfe, 0x35, 0x01, 0xce,
+ 0x01, 0xce, 0xfe, 0x88, 0x05, 0xd4, 0xfd, 0x1a, 0x07, 0xfd, 0x3b, 0x22,
+ 0x0b, 0x02, 0x80, 0x56, 0x0d, 0x02, 0x96, 0xfd, 0x67, 0xfd, 0x64, 0x02,
+ 0x9c, 0x02, 0x1e, 0x00, 0x00, 0x01, 0x00, 0xcd, 0x00, 0x00, 0x05, 0xa7,
+ 0x05, 0xd4, 0x00, 0x37, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x14,
+ 0x0f, 0x01, 0x33, 0x36, 0x3b, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x22, 0x03, 0x23, 0x15, 0x10, 0x17, 0x15, 0x23, 0x27, 0x36,
+ 0x11, 0x35, 0x23, 0x02, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x3b, 0x01, 0x32, 0x17, 0x33, 0x35, 0x26, 0x27, 0x26, 0x3d, 0x01, 0x34,
+ 0x37, 0x36, 0x03, 0x3b, 0xc1, 0x5b, 0x0b, 0x03, 0x6c, 0x36, 0x03, 0x42,
+ 0x4c, 0x11, 0xd6, 0x57, 0x14, 0xbc, 0x24, 0x40, 0xda, 0x5a, 0x03, 0x4a,
+ 0xbb, 0x06, 0x4d, 0x03, 0x5a, 0xdd, 0xab, 0x5c, 0x17, 0xde, 0x3b, 0x2e,
+ 0x08, 0x4d, 0x47, 0x02, 0x4b, 0x1a, 0x36, 0xc1, 0x40, 0x05, 0xd4, 0xe3,
+ 0x34, 0x38, 0x75, 0xa0, 0x3c, 0x1c, 0xca, 0x42, 0x3c, 0xcd, 0x68, 0x0c,
+ 0x06, 0x01, 0x12, 0x09, 0xfe, 0xa9, 0x6d, 0x06, 0x06, 0x80, 0x01, 0x4d,
+ 0x03, 0xfe, 0xeb, 0xc9, 0x44, 0x3a, 0xe9, 0x53, 0x0c, 0x1c, 0x03, 0x47,
+ 0x45, 0x6e, 0x51, 0x0e, 0xc9, 0x68, 0x13, 0x00, 0x00, 0x03, 0x01, 0x21,
+ 0x00, 0x01, 0x05, 0x53, 0x05, 0xd5, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x42,
+ 0x00, 0x00, 0x01, 0x16, 0x01, 0x16, 0x1d, 0x01, 0x14, 0x07, 0x06, 0x2b,
+ 0x01, 0x22, 0x27, 0x23, 0x15, 0x10, 0x17, 0x23, 0x35, 0x36, 0x11, 0x23,
+ 0x07, 0x06, 0x2b, 0x01, 0x22, 0x27, 0x26, 0x35, 0x37, 0x35, 0x34, 0x37,
+ 0x00, 0x37, 0x06, 0x01, 0x06, 0x15, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x32,
+ 0x37, 0x33, 0x32, 0x17, 0x16, 0x3b, 0x01, 0x32, 0x37, 0x36, 0x3d, 0x01,
+ 0x34, 0x27, 0x02, 0x03, 0x33, 0x26, 0x27, 0x22, 0x07, 0x03, 0x3b, 0x71,
+ 0x01, 0x59, 0x4e, 0xa3, 0x1f, 0x2b, 0x14, 0x82, 0x59, 0x25, 0x4a, 0xc1,
+ 0x4d, 0x26, 0x32, 0x4c, 0x5f, 0x14, 0x90, 0x49, 0x16, 0x02, 0xba, 0x01,
+ 0x05, 0x55, 0x6f, 0xfe, 0xd0, 0x49, 0x09, 0x85, 0x14, 0x25, 0x0e, 0x6b,
+ 0x56, 0xa5, 0x07, 0x1b, 0x4b, 0x5d, 0x11, 0x7b, 0x3b, 0x09, 0xb7, 0xcf,
+ 0x80, 0x39, 0x0c, 0x0d, 0x06, 0x0e, 0x05, 0xd5, 0xe1, 0xfe, 0x36, 0x8b,
+ 0x86, 0x03, 0xd1, 0x4e, 0x10, 0xda, 0x0d, 0xfe, 0xe8, 0x9b, 0x06, 0x97,
+ 0x01, 0x23, 0x65, 0x75, 0xae, 0x42, 0x3f, 0x0d, 0x03, 0xc8, 0xd4, 0x01,
+ 0x67, 0x49, 0xc7, 0xfe, 0x6f, 0x82, 0x85, 0xbb, 0x35, 0x09, 0xda, 0x46,
+ 0x94, 0xa7, 0x28, 0x1e, 0x1f, 0xb0, 0xcf, 0x01, 0x1f, 0xfb, 0x70, 0x17,
+ 0x5a, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa3, 0x00, 0x00, 0x05, 0xd2,
+ 0x05, 0xd4, 0x00, 0x17, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x33,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x01, 0x23,
+ 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x01, 0xf1, 0xb7, 0x68, 0x26, 0x02,
+ 0x02, 0x20, 0x52, 0x62, 0x79, 0xbc, 0x72, 0x1d, 0xbc, 0xfe, 0x24, 0x05,
+ 0xfe, 0x06, 0x97, 0xb3, 0x4b, 0x05, 0xd4, 0xeb, 0x5d, 0x31, 0xa2, 0x6b,
+ 0x6c, 0xe0, 0x53, 0x49, 0xfa, 0xe3, 0xfd, 0x85, 0x02, 0xb1, 0xcd, 0xda,
+ 0xd3, 0x7c, 0x2d, 0x00, 0x00, 0x01, 0x01, 0x35, 0x00, 0x00, 0x05, 0x3d,
+ 0x05, 0xd4, 0x00, 0x08, 0x00, 0x00, 0x09, 0x01, 0x16, 0x15, 0x01, 0x26,
+ 0x01, 0x34, 0x37, 0x03, 0x3a, 0x01, 0xc5, 0x3e, 0xfd, 0xfd, 0x0b, 0xfe,
+ 0x07, 0x64, 0x05, 0xd4, 0xfd, 0x73, 0x55, 0x0d, 0xfd, 0x1b, 0x08, 0x02,
+ 0xdd, 0x0e, 0x8a, 0x00, 0x00, 0x03, 0x00, 0xcd, 0x00, 0x00, 0x05, 0xa8,
+ 0x05, 0xdc, 0x00, 0x32, 0x00, 0x60, 0x00, 0x67, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x0f, 0x01, 0x36, 0x3b, 0x01, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x22, 0x03, 0x23, 0x15, 0x10, 0x17, 0x15,
+ 0x23, 0x27, 0x36, 0x11, 0x35, 0x23, 0x02, 0x23, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x17, 0x26, 0x27, 0x35, 0x34, 0x37,
+ 0x36, 0x03, 0x14, 0x1f, 0x01, 0x15, 0x26, 0x2b, 0x01, 0x22, 0x0f, 0x01,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x13, 0x36, 0x37, 0x33, 0x16, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x34, 0x2f, 0x01, 0x23, 0x22, 0x07,
+ 0x35, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x13,
+ 0x14, 0x07, 0x33, 0x35, 0x26, 0x35, 0x03, 0x3f, 0xb6, 0x5e, 0x17, 0x67,
+ 0x14, 0x1c, 0x37, 0x25, 0xdf, 0x53, 0x0e, 0xbd, 0x1e, 0x42, 0xd9, 0x5c,
+ 0x03, 0x4a, 0xbc, 0x05, 0x4c, 0x02, 0x5a, 0xde, 0xad, 0x5c, 0x17, 0xdf,
+ 0x3c, 0x2e, 0x22, 0x37, 0x1c, 0x59, 0x1a, 0xc3, 0x40, 0xd8, 0x98, 0x0b,
+ 0x61, 0x6a, 0x08, 0xdb, 0x37, 0x06, 0x7b, 0x36, 0x47, 0xbd, 0x66, 0x0f,
+ 0x13, 0x07, 0x21, 0x4b, 0x51, 0x8e, 0x97, 0x4d, 0x0a, 0xe3, 0x31, 0x05,
+ 0x6b, 0x60, 0x74, 0x1d, 0x17, 0xa8, 0x30, 0x25, 0xa6, 0x4b, 0xed, 0x19,
+ 0x36, 0x19, 0x05, 0xdc, 0xce, 0x46, 0x39, 0x84, 0xa6, 0x17, 0x06, 0xd7,
+ 0x38, 0x3a, 0xd3, 0x64, 0x0c, 0x07, 0x01, 0x14, 0x09, 0xfe, 0xa7, 0x6d,
+ 0x06, 0x06, 0x80, 0x01, 0x4f, 0x04, 0xfe, 0xe8, 0xcb, 0x45, 0x3a, 0xeb,
+ 0x52, 0x0c, 0x06, 0x70, 0xb1, 0x26, 0xcb, 0x69, 0x13, 0xfe, 0xb3, 0x9b,
+ 0xcc, 0x0c, 0x03, 0x09, 0xd4, 0x43, 0x94, 0x5d, 0x26, 0x01, 0x27, 0x1b,
+ 0x41, 0x78, 0x86, 0x85, 0xbe, 0x2e, 0x2b, 0x06, 0xde, 0x30, 0x03, 0x09,
+ 0x03, 0x89, 0x6e, 0x4d, 0x2c, 0xb6, 0x57, 0x10, 0xc8, 0xfb, 0xce, 0x1c,
+ 0x60, 0x03, 0x63, 0x16, 0x00, 0x04, 0x00, 0xc2, 0xff, 0xfe, 0x05, 0xb2,
+ 0x05, 0xd4, 0x00, 0x10, 0x00, 0x21, 0x00, 0x31, 0x00, 0x4d, 0x00, 0x00,
+ 0x01, 0x33, 0x14, 0x06, 0x07, 0x14, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26,
+ 0x27, 0x30, 0x35, 0x34, 0x36, 0x25, 0x33, 0x14, 0x06, 0x07, 0x14, 0x16,
+ 0x13, 0x23, 0x26, 0x27, 0x26, 0x27, 0x34, 0x35, 0x34, 0x36, 0x05, 0x33,
+ 0x14, 0x06, 0x07, 0x14, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x27, 0x35,
+ 0x34, 0x36, 0x13, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x04, 0x20, 0x24, 0x26,
+ 0x35, 0x34, 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, 0x14, 0x16, 0x04, 0x20,
+ 0x24, 0x36, 0x34, 0x27, 0x26, 0x27, 0x02, 0x37, 0x0c, 0x83, 0x02, 0xb8,
+ 0x06, 0x0b, 0x1b, 0x92, 0x2b, 0x0e, 0x95, 0x01, 0x20, 0x0c, 0x83, 0x02,
+ 0xb9, 0x05, 0x0c, 0x1a, 0x92, 0x2c, 0x0d, 0x95, 0x01, 0x37, 0x0b, 0x83,
+ 0x02, 0xb9, 0x05, 0x0c, 0x19, 0x93, 0x2c, 0x0d, 0x95, 0x28, 0x97, 0xab,
+ 0xa6, 0xfe, 0xd2, 0xfe, 0xb8, 0xfe, 0xd3, 0xa7, 0xaa, 0x98, 0x02, 0x76,
+ 0x43, 0x4d, 0x96, 0x01, 0x10, 0x01, 0x29, 0x01, 0x10, 0x96, 0x4e, 0x44,
+ 0x76, 0x05, 0x39, 0x3f, 0x9b, 0x63, 0x82, 0x79, 0xc9, 0xa6, 0x74, 0x33,
+ 0x5a, 0x0e, 0x72, 0x88, 0xed, 0x60, 0xed, 0x97, 0xc5, 0xbb, 0xfe, 0xce,
+ 0xfb, 0xb2, 0x4e, 0x8b, 0x08, 0x09, 0xb1, 0xd1, 0x5b, 0x4f, 0xc4, 0x7d,
+ 0xa1, 0x9a, 0xfd, 0xd0, 0x91, 0x42, 0x72, 0x0e, 0x91, 0xad, 0xfe, 0x1e,
+ 0x31, 0xb1, 0x61, 0x60, 0xb0, 0x62, 0x62, 0xb0, 0x60, 0x61, 0xb1, 0x31,
+ 0x29, 0x45, 0x4d, 0xa8, 0x98, 0x55, 0x55, 0x98, 0xa8, 0x4d, 0x45, 0x29,
+ 0x00, 0x01, 0x00, 0x9a, 0xff, 0xf6, 0x02, 0x72, 0x05, 0xd5, 0x00, 0x11,
+ 0x00, 0x00, 0x01, 0x33, 0x17, 0x11, 0x14, 0x0f, 0x01, 0x23, 0x22, 0x2f,
+ 0x01, 0x34, 0x3f, 0x01, 0x32, 0x17, 0x33, 0x11, 0x02, 0x2a, 0x41, 0x07,
+ 0xb1, 0x2b, 0x20, 0xbe, 0x1a, 0x03, 0xbe, 0x1d, 0x5a, 0x50, 0x04, 0x05,
+ 0xd5, 0x08, 0xfa, 0xfd, 0xa3, 0x2d, 0x04, 0x85, 0x1f, 0x82, 0x18, 0x05,
+ 0x40, 0x04, 0xd4, 0x00, 0x00, 0x01, 0x00, 0x9a, 0xff, 0xf6, 0x03, 0xfe,
+ 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x33, 0x17, 0x15, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x23, 0x27, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x11, 0x14, 0x07, 0x23, 0x22, 0x35, 0x34, 0x37, 0x33, 0x32, 0x17, 0x11,
+ 0x02, 0x1c, 0x4e, 0x08, 0x18, 0x9c, 0xd8, 0x6e, 0x04, 0x1b, 0x37, 0xcd,
+ 0x53, 0x16, 0xca, 0x33, 0xda, 0xbf, 0x14, 0x57, 0x50, 0x05, 0xd5, 0x07,
+ 0x27, 0x36, 0x3f, 0x46, 0x8a, 0x92, 0x60, 0x20, 0x31, 0x54, 0x46, 0x47,
+ 0x2a, 0x1a, 0xfb, 0xd6, 0x99, 0x2d, 0xa8, 0x83, 0x17, 0x40, 0x04, 0xd6,
+ 0x00, 0x01, 0x01, 0x52, 0xff, 0x2f, 0x05, 0x22, 0x05, 0xd5, 0x00, 0x1e,
+ 0x00, 0x00, 0x01, 0x05, 0x17, 0x11, 0x14, 0x07, 0x23, 0x22, 0x3d, 0x01,
+ 0x34, 0x3f, 0x01, 0x32, 0x17, 0x11, 0x25, 0x11, 0x14, 0x0f, 0x01, 0x23,
+ 0x22, 0x3d, 0x01, 0x34, 0x3f, 0x01, 0x32, 0x17, 0x11, 0x02, 0xb0, 0x02,
+ 0x6e, 0x03, 0xad, 0x30, 0xc0, 0x9f, 0x23, 0x4e, 0x49, 0xfe, 0x13, 0x88,
+ 0x3c, 0x17, 0xc3, 0x99, 0x27, 0x50, 0x48, 0x05, 0xd5, 0xca, 0x04, 0xfa,
+ 0xed, 0x9b, 0x2a, 0xa4, 0x04, 0x7e, 0x16, 0x03, 0x3a, 0x04, 0x0b, 0xa9,
+ 0xfb, 0xdb, 0x89, 0x38, 0x08, 0x9b, 0x07, 0x7a, 0x22, 0x04, 0x43, 0x04,
+ 0xd3, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa9, 0xff, 0xf6, 0x05, 0xcb,
+ 0x05, 0xd5, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x17, 0x11, 0x14,
+ 0x07, 0x22, 0x27, 0x34, 0x37, 0x32, 0x17, 0x33, 0x11, 0x21, 0x11, 0x06,
+ 0x07, 0x23, 0x22, 0x35, 0x34, 0x37, 0x32, 0x17, 0x11, 0x17, 0x15, 0x21,
+ 0x35, 0x05, 0xc7, 0x03, 0xeb, 0xd1, 0x10, 0xd1, 0x62, 0x47, 0x03, 0xfc,
+ 0xfb, 0x07, 0xda, 0x04, 0xe8, 0xd5, 0x5a, 0x4f, 0x4f, 0x03, 0x05, 0x05,
+ 0xd5, 0x04, 0xfb, 0x12, 0xd5, 0x15, 0xa4, 0x8a, 0x0e, 0x3b, 0x02, 0x95,
+ 0xfd, 0x5a, 0xcf, 0x24, 0xb1, 0x7d, 0x10, 0x40, 0x04, 0xe1, 0xcf, 0x9c,
+ 0x9c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa2, 0xff, 0xfa, 0x02, 0xd2,
+ 0x05, 0xd9, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00, 0x13, 0x33, 0x17, 0x11,
+ 0x33, 0x36, 0x33, 0x16, 0x13, 0x02, 0x05, 0x27, 0x11, 0x13, 0x11, 0x24,
+ 0x11, 0x34, 0x35, 0x34, 0x27, 0x22, 0xa8, 0x29, 0x04, 0x03, 0x99, 0x83,
+ 0xcc, 0x12, 0x1a, 0xfd, 0xee, 0x03, 0x32, 0x01, 0x79, 0x86, 0x6b, 0x05,
+ 0xd9, 0x06, 0xfc, 0x3f, 0xed, 0x03, 0xfe, 0xff, 0xfe, 0x57, 0x58, 0x03,
+ 0x05, 0xd6, 0xfb, 0xd4, 0xfe, 0x9d, 0x63, 0x01, 0x31, 0x0d, 0x0c, 0x94,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x01, 0xf8,
+ 0x05, 0xd9, 0x00, 0x0d, 0x00, 0x13, 0x00, 0x00, 0x13, 0x33, 0x17, 0x11,
+ 0x25, 0x17, 0x11, 0x07, 0x23, 0x27, 0x11, 0x05, 0x23, 0x11, 0x13, 0x11,
+ 0x33, 0x25, 0x11, 0x23, 0x9f, 0x25, 0x06, 0x01, 0x2c, 0x02, 0x04, 0x24,
+ 0x04, 0xfe, 0xd1, 0x02, 0x2f, 0x01, 0x01, 0x01, 0x02, 0x05, 0xd9, 0x05,
+ 0xfe, 0x2f, 0xa1, 0x02, 0xfb, 0x63, 0x05, 0x05, 0x01, 0xe5, 0xa0, 0x04,
+ 0x8a, 0xfd, 0x99, 0xfe, 0x7d, 0x90, 0x01, 0x7f, 0x00, 0x02, 0x00, 0x9b,
+ 0x00, 0x00, 0x02, 0xe2, 0x05, 0xd9, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x00,
+ 0x01, 0x33, 0x17, 0x11, 0x37, 0x17, 0x15, 0x06, 0x07, 0x11, 0x37, 0x15,
+ 0x06, 0x07, 0x11, 0x07, 0x23, 0x27, 0x11, 0x05, 0x11, 0x07, 0x23, 0x27,
+ 0x11, 0x07, 0x35, 0x34, 0x37, 0x11, 0x23, 0x07, 0x35, 0x37, 0x11, 0x37,
+ 0x33, 0x17, 0x11, 0x25, 0x11, 0x01, 0x11, 0x25, 0x11, 0x02, 0x46, 0x2a,
+ 0x04, 0x6b, 0x03, 0x03, 0x6b, 0x6e, 0x01, 0x6d, 0x04, 0x2a, 0x04, 0xfe,
+ 0xfd, 0x05, 0x26, 0x04, 0x74, 0x74, 0x02, 0x72, 0x74, 0x04, 0x26, 0x05,
+ 0x01, 0x03, 0xfe, 0xfd, 0x01, 0x03, 0x05, 0xd9, 0x05, 0xfe, 0xd0, 0x3c,
+ 0x02, 0x8d, 0x07, 0x3c, 0xfe, 0x8b, 0x37, 0x87, 0x04, 0x43, 0xfe, 0xd7,
+ 0x04, 0x04, 0x01, 0x11, 0x8c, 0xfe, 0xa6, 0x04, 0x04, 0x01, 0x41, 0x3c,
+ 0x8e, 0x06, 0x3c, 0x01, 0x7b, 0x38, 0x8b, 0x41, 0x01, 0x1f, 0x04, 0x04,
+ 0xfe, 0xfa, 0x86, 0x01, 0x4d, 0xfd, 0x96, 0xfe, 0x87, 0x8b, 0x01, 0x74,
+ 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0x04, 0xc8, 0x05, 0xd9, 0x00, 0x48,
+ 0x00, 0x00, 0x01, 0x23, 0x30, 0x23, 0x22, 0x07, 0x23, 0x22, 0x27, 0x35,
+ 0x36, 0x35, 0x34, 0x27, 0x35, 0x36, 0x37, 0x33, 0x16, 0x3b, 0x01, 0x35,
+ 0x34, 0x27, 0x35, 0x36, 0x37, 0x33, 0x16, 0x32, 0x37, 0x33, 0x16, 0x17,
+ 0x15, 0x06, 0x1d, 0x01, 0x33, 0x32, 0x37, 0x33, 0x16, 0x17, 0x15, 0x06,
+ 0x15, 0x14, 0x17, 0x15, 0x06, 0x2b, 0x01, 0x26, 0x2b, 0x02, 0x11, 0x14,
+ 0x17, 0x15, 0x06, 0x07, 0x23, 0x26, 0x22, 0x07, 0x23, 0x26, 0x27, 0x35,
+ 0x36, 0x35, 0x02, 0x71, 0x98, 0x03, 0xa1, 0x48, 0x33, 0x15, 0x0a, 0x59,
+ 0x59, 0x02, 0x1c, 0x34, 0x4a, 0xa3, 0x97, 0x76, 0x02, 0x1b, 0x34, 0x28,
+ 0x7e, 0x29, 0x34, 0x1a, 0x03, 0x76, 0x92, 0xa3, 0x4b, 0x32, 0x1e, 0x02,
+ 0x59, 0x59, 0x0a, 0x16, 0x32, 0x48, 0xa1, 0x04, 0x93, 0x76, 0x03, 0x1a,
+ 0x34, 0x29, 0x7e, 0x28, 0x34, 0x1b, 0x02, 0x76, 0x03, 0x11, 0x5a, 0x23,
+ 0x3b, 0x31, 0x37, 0x46, 0x2d, 0x3a, 0x1d, 0x03, 0x83, 0xaf, 0xb5, 0x53,
+ 0x38, 0x21, 0x02, 0x63, 0x63, 0x02, 0x21, 0x38, 0x53, 0xb5, 0xaf, 0x83,
+ 0x03, 0x1d, 0x3a, 0x2d, 0x46, 0x37, 0x31, 0x3b, 0x23, 0x5a, 0xfe, 0x52,
+ 0xb5, 0x53, 0x39, 0x20, 0x02, 0x63, 0x63, 0x02, 0x20, 0x39, 0x53, 0xb5,
+ 0x00, 0x06, 0x00, 0x76, 0x00, 0x00, 0x05, 0x0d, 0x05, 0xd9, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x14, 0x00, 0x1b, 0x00, 0x3b, 0x00, 0x47, 0x00, 0x00,
+ 0x01, 0x06, 0x07, 0x16, 0x17, 0x37, 0x35, 0x05, 0x15, 0x17, 0x36, 0x37,
+ 0x26, 0x27, 0x01, 0x26, 0x27, 0x06, 0x07, 0x17, 0x33, 0x03, 0x23, 0x07,
+ 0x16, 0x17, 0x36, 0x37, 0x03, 0x33, 0x37, 0x16, 0x17, 0x06, 0x07, 0x27,
+ 0x23, 0x11, 0x17, 0x06, 0x07, 0x26, 0x27, 0x37, 0x11, 0x23, 0x07, 0x26,
+ 0x27, 0x36, 0x37, 0x17, 0x33, 0x35, 0x27, 0x36, 0x37, 0x16, 0x17, 0x0f,
+ 0x01, 0x15, 0x23, 0x15, 0x33, 0x11, 0x33, 0x11, 0x33, 0x35, 0x23, 0x35,
+ 0x01, 0x1c, 0x14, 0x2c, 0x2b, 0x15, 0x55, 0x02, 0xa2, 0x55, 0x14, 0x2b,
+ 0x2b, 0x14, 0xfe, 0xac, 0x28, 0x2a, 0x28, 0x28, 0x3d, 0x28, 0x01, 0x28,
+ 0x3c, 0x28, 0x28, 0x29, 0x29, 0x07, 0xcd, 0xbc, 0x09, 0x6d, 0x6d, 0x09,
+ 0xbc, 0xcd, 0x72, 0x60, 0x5e, 0x5e, 0x5d, 0x71, 0xcd, 0xbc, 0x09, 0x6e,
+ 0x6e, 0x09, 0xbc, 0xcd, 0x71, 0x5d, 0x5f, 0x5d, 0x60, 0x72, 0x63, 0x68,
+ 0x68, 0x31, 0x68, 0x68, 0x03, 0xb4, 0x2d, 0x2e, 0x2c, 0x2d, 0x43, 0x2e,
+ 0x01, 0x2e, 0x43, 0x2e, 0x2c, 0x2e, 0x2d, 0x01, 0x6e, 0x17, 0x2f, 0x2f,
+ 0x17, 0x5f, 0xfc, 0x52, 0x5f, 0x17, 0x2f, 0x2f, 0x17, 0x02, 0xf7, 0x7e,
+ 0x69, 0x6a, 0x68, 0x68, 0x7e, 0xfe, 0x4e, 0xd0, 0x0b, 0x79, 0x79, 0x0b,
+ 0xd0, 0x01, 0xb2, 0x7e, 0x68, 0x69, 0x69, 0x69, 0x7e, 0xd6, 0xd1, 0x0b,
+ 0x7a, 0x7a, 0x0b, 0xd1, 0x73, 0x9f, 0x2e, 0xfe, 0x80, 0x01, 0x80, 0x2e,
+ 0x9f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x9a, 0x00, 0x00, 0x05, 0xdb,
+ 0x05, 0xac, 0x00, 0x14, 0x00, 0x23, 0x00, 0x2e, 0x00, 0x36, 0x00, 0x43,
+ 0x00, 0x4d, 0x00, 0x68, 0x00, 0x77, 0x00, 0x8c, 0x00, 0x97, 0x00, 0xa6,
+ 0x00, 0xaf, 0x00, 0x00, 0x01, 0x21, 0x32, 0x1f, 0x01, 0x37, 0x33, 0x32,
+ 0x15, 0x03, 0x21, 0x27, 0x35, 0x36, 0x37, 0x35, 0x02, 0x27, 0x26, 0x3d,
+ 0x01, 0x07, 0x33, 0x32, 0x17, 0x16, 0x15, 0x02, 0x07, 0x23, 0x24, 0x27,
+ 0x35, 0x12, 0x37, 0x36, 0x17, 0x15, 0x13, 0x07, 0x15, 0x33, 0x37, 0x07,
+ 0x26, 0x2f, 0x01, 0x01, 0x17, 0x13, 0x26, 0x2b, 0x01, 0x22, 0x07, 0x01,
+ 0x16, 0x13, 0x17, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x26, 0x03, 0x35,
+ 0x17, 0x13, 0x33, 0x32, 0x3f, 0x01, 0x34, 0x2f, 0x01, 0x06, 0x25, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x07, 0x23, 0x27, 0x02, 0x0f, 0x01, 0x17, 0x07,
+ 0x23, 0x26, 0x03, 0x26, 0x3d, 0x01, 0x34, 0x3f, 0x01, 0x23, 0x27, 0x35,
+ 0x37, 0x17, 0x15, 0x17, 0x33, 0x15, 0x14, 0x07, 0x15, 0x16, 0x17, 0x13,
+ 0x33, 0x17, 0x35, 0x27, 0x01, 0x33, 0x17, 0x15, 0x21, 0x32, 0x37, 0x33,
+ 0x17, 0x15, 0x06, 0x03, 0x06, 0x2b, 0x01, 0x15, 0x07, 0x23, 0x02, 0x3d,
+ 0x01, 0x27, 0x17, 0x11, 0x07, 0x21, 0x22, 0x2f, 0x01, 0x35, 0x34, 0x37,
+ 0x05, 0x07, 0x17, 0x33, 0x35, 0x34, 0x3b, 0x01, 0x32, 0x3f, 0x01, 0x21,
+ 0x26, 0x3d, 0x01, 0x05, 0x06, 0x07, 0x15, 0x14, 0x1f, 0x01, 0x33, 0x11,
+ 0x02, 0xd7, 0x01, 0x64, 0x34, 0x1a, 0x45, 0x58, 0x08, 0x04, 0x9c, 0xfe,
+ 0xc7, 0x04, 0x10, 0x4a, 0xa9, 0x0e, 0x29, 0x66, 0x15, 0x64, 0x32, 0x1b,
+ 0x9e, 0x0f, 0x02, 0xfe, 0xf1, 0x04, 0x8e, 0x0f, 0x28, 0xf7, 0xb5, 0x13,
+ 0xb5, 0x56, 0x19, 0x66, 0x0e, 0x12, 0xfd, 0x67, 0xd8, 0x90, 0x37, 0x46,
+ 0x19, 0x4b, 0x28, 0x03, 0x3f, 0x10, 0x86, 0x04, 0x48, 0x14, 0x21, 0x83,
+ 0x0b, 0xa2, 0x31, 0x8c, 0x78, 0x30, 0x21, 0x02, 0x2b, 0x56, 0xcd, 0xfd,
+ 0x5e, 0x12, 0x08, 0x69, 0x2e, 0x04, 0x05, 0x5a, 0xa2, 0x0d, 0x03, 0x04,
+ 0x06, 0x03, 0x14, 0x9b, 0x12, 0x4c, 0x12, 0x01, 0x5a, 0x04, 0x73, 0x10,
+ 0x03, 0x68, 0x01, 0x8c, 0xb4, 0x02, 0x19, 0x56, 0x02, 0x3e, 0x04, 0x05,
+ 0x01, 0x4e, 0x25, 0x21, 0x02, 0x04, 0x05, 0xb1, 0x16, 0x1f, 0xaf, 0x05,
+ 0x07, 0x9b, 0x4a, 0x08, 0x05, 0xfe, 0xf4, 0x68, 0x2c, 0x05, 0x4f, 0x02,
+ 0x1c, 0x55, 0x55, 0x05, 0x07, 0xd0, 0x14, 0x2a, 0x5e, 0xfe, 0x94, 0x07,
+ 0xfd, 0xf2, 0x37, 0x05, 0x51, 0x1b, 0xf3, 0x05, 0xac, 0x47, 0x86, 0x38,
+ 0x07, 0xfe, 0xd4, 0x05, 0x05, 0x11, 0x2a, 0x05, 0x01, 0x46, 0x14, 0x16,
+ 0x04, 0x05, 0x0d, 0x80, 0x31, 0x0a, 0xfe, 0xc6, 0x11, 0xac, 0x08, 0x02,
+ 0x01, 0x1a, 0x08, 0x2e, 0x17, 0x02, 0xfe, 0x9d, 0x0f, 0x03, 0xad, 0x0d,
+ 0xc5, 0x0d, 0x05, 0xfe, 0xd1, 0x8a, 0x01, 0x17, 0x90, 0x66, 0xfe, 0xf5,
+ 0x11, 0xfe, 0xef, 0x29, 0x14, 0x4d, 0x43, 0x12, 0x0b, 0x01, 0x3d, 0x05,
+ 0x0f, 0xfe, 0xea, 0x67, 0x1a, 0x39, 0x45, 0xa2, 0x81, 0x6b, 0xd7, 0x4f,
+ 0x0d, 0x05, 0x39, 0xfe, 0xcb, 0x21, 0x15, 0x28, 0x05, 0x1b, 0x01, 0x2d,
+ 0x1a, 0x1f, 0x07, 0x1c, 0x83, 0x29, 0x3b, 0x05, 0x05, 0x26, 0x05, 0x0d,
+ 0x02, 0x08, 0xc6, 0x0a, 0x1a, 0xfe, 0x01, 0x5d, 0x08, 0x03, 0xac, 0xfe,
+ 0xd4, 0x05, 0x74, 0x21, 0x05, 0x02, 0x15, 0xfe, 0xb1, 0x1d, 0x79, 0x05,
+ 0x01, 0x22, 0x0d, 0x03, 0xb3, 0x07, 0xfe, 0xa5, 0x05, 0x86, 0x26, 0x0d,
+ 0x32, 0x7c, 0x0c, 0xac, 0xaa, 0x08, 0x1c, 0x62, 0xb3, 0x01, 0x14, 0x08,
+ 0x1d, 0x61, 0x24, 0x0a, 0x55, 0x2b, 0x06, 0x01, 0x15, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8, 0x05, 0xd9, 0x00, 0x0a,
+ 0x00, 0x23, 0x00, 0x38, 0x00, 0x4d, 0x00, 0x00, 0x01, 0x33, 0x11, 0x07,
+ 0x35, 0x37, 0x33, 0x11, 0x33, 0x15, 0x21, 0x05, 0x26, 0x35, 0x34, 0x3f,
+ 0x01, 0x27, 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06, 0x07, 0x23,
+ 0x15, 0x27, 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x03,
+ 0x37, 0x13, 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37, 0x03, 0x27,
+ 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27, 0x13, 0x36,
+ 0x37, 0x36, 0x02, 0x8c, 0x9a, 0xa7, 0xb6, 0x72, 0x9a, 0xfe, 0x4b, 0xfe,
+ 0x28, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16, 0x37, 0x59, 0x07, 0x15, 0x1f,
+ 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d, 0x44, 0x33, 0x29, 0x04, 0xfd,
+ 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34, 0x16, 0x07, 0x2d, 0xb5, 0x7a,
+ 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c, 0x38, 0x16, 0xd3, 0x36, 0x59,
+ 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8, 0x7a, 0xd9, 0x23, 0x32, 0x2a,
+ 0x01, 0xea, 0x01, 0x9a, 0x1a, 0x61, 0x1e, 0xfe, 0x01, 0x5c, 0xb8, 0x4d,
+ 0x4f, 0x48, 0x4b, 0x92, 0x24, 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13,
+ 0x23, 0x20, 0x2c, 0x01, 0x9f, 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97,
+ 0x95, 0x46, 0x0b, 0x37, 0x11, 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe,
+ 0x5d, 0x42, 0x41, 0x36, 0x04, 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff,
+ 0x6b, 0x23, 0xac, 0x28, 0x01, 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4,
+ 0x41, 0x21, 0x1b, 0x00, 0x00, 0x04, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8,
+ 0x05, 0xd9, 0x00, 0x1c, 0x00, 0x35, 0x00, 0x4a, 0x00, 0x5f, 0x00, 0x00,
+ 0x01, 0x21, 0x15, 0x21, 0x35, 0x3e, 0x01, 0x37, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x07, 0x0e, 0x01, 0x01, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x27,
+ 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06, 0x07, 0x23, 0x15, 0x27,
+ 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x03, 0x37, 0x13,
+ 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37, 0x03, 0x27, 0x37, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27, 0x13, 0x36, 0x37, 0x36,
+ 0x03, 0x07, 0x01, 0x32, 0xfe, 0x26, 0x39, 0xb9, 0x16, 0x2c, 0x21, 0x43,
+ 0x36, 0x2a, 0x5d, 0x50, 0x44, 0x65, 0x2b, 0x73, 0x8a, 0x22, 0x2b, 0x0d,
+ 0x7d, 0xfd, 0x56, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16, 0x37, 0x59, 0x07,
+ 0x15, 0x1f, 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d, 0x44, 0x33, 0x29,
+ 0x04, 0xfd, 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34, 0x16, 0x07, 0x2d,
+ 0xb5, 0x7a, 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c, 0x38, 0x16, 0xd3,
+ 0x36, 0x59, 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8, 0x7a, 0xd9, 0x23,
+ 0x32, 0x2a, 0x01, 0xd2, 0x5d, 0x55, 0x31, 0x9e, 0x15, 0x29, 0x38, 0x1a,
+ 0x28, 0x33, 0x18, 0x26, 0x6e, 0x19, 0x14, 0x63, 0x51, 0x26, 0x44, 0x2d,
+ 0x0d, 0x6d, 0xfe, 0xba, 0x4d, 0x4f, 0x48, 0x4b, 0x92, 0x24, 0x6b, 0xfe,
+ 0xff, 0x24, 0xac, 0x14, 0x13, 0x23, 0x20, 0x2c, 0x01, 0x9f, 0x21, 0x1b,
+ 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46, 0x0b, 0x37, 0x11, 0x13, 0x34,
+ 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42, 0x41, 0x36, 0x04, 0x9e, 0x01,
+ 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23, 0xac, 0x28, 0x01, 0x09, 0x6b,
+ 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21, 0x1b, 0x00, 0x04, 0x00, 0x8c,
+ 0x00, 0x20, 0x05, 0xe8, 0x05, 0xd9, 0x00, 0x28, 0x00, 0x41, 0x00, 0x56,
+ 0x00, 0x6b, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x01, 0x26, 0x35,
+ 0x34, 0x3f, 0x01, 0x27, 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06,
+ 0x07, 0x23, 0x15, 0x27, 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x03, 0x37, 0x13, 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37,
+ 0x03, 0x27, 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27,
+ 0x13, 0x36, 0x37, 0x36, 0x03, 0xeb, 0x09, 0x56, 0x9c, 0x8d, 0x2e, 0x61,
+ 0x3f, 0x41, 0x5b, 0x2f, 0x55, 0x53, 0x4e, 0x47, 0x64, 0x68, 0x41, 0x40,
+ 0x43, 0x42, 0x25, 0x56, 0x4e, 0x44, 0x62, 0x2c, 0x74, 0x8b, 0x4b, 0xfc,
+ 0xc6, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16, 0x37, 0x59, 0x07, 0x15, 0x1f,
+ 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d, 0x44, 0x33, 0x29, 0x04, 0xfd,
+ 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34, 0x16, 0x07, 0x2d, 0xb5, 0x7a,
+ 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c, 0x38, 0x16, 0xd3, 0x36, 0x59,
+ 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8, 0x7a, 0xd9, 0x23, 0x32, 0x2a,
+ 0x02, 0xbe, 0x02, 0x53, 0x3c, 0x5c, 0x65, 0x0e, 0x12, 0x6c, 0x1e, 0x12,
+ 0x32, 0x33, 0x2d, 0x32, 0x5b, 0x27, 0x26, 0x27, 0x29, 0x0e, 0x14, 0x62,
+ 0x0f, 0x0d, 0x59, 0x4b, 0x34, 0x4a, 0xfe, 0x18, 0x4d, 0x4f, 0x48, 0x4b,
+ 0x92, 0x24, 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13, 0x23, 0x20, 0x2c,
+ 0x01, 0x9f, 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46, 0x0b,
+ 0x37, 0x11, 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42, 0x41,
+ 0x36, 0x04, 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23, 0xac,
+ 0x28, 0x01, 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21, 0x1b,
+ 0x00, 0x05, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8, 0x05, 0xd9, 0x00, 0x02,
+ 0x00, 0x0d, 0x00, 0x26, 0x00, 0x3b, 0x00, 0x50, 0x00, 0x00, 0x01, 0x03,
+ 0x33, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x21, 0x35,
+ 0x01, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x27, 0x37, 0x13, 0x27, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x21, 0x15, 0x21, 0x22, 0x27,
+ 0x26, 0x25, 0x06, 0x07, 0x23, 0x15, 0x27, 0x37, 0x15, 0x33, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x03, 0x37, 0x13, 0x16, 0x15, 0x14, 0x01, 0x16,
+ 0x1f, 0x01, 0x37, 0x03, 0x27, 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x03, 0x27, 0x13, 0x36, 0x37, 0x36, 0x03, 0x57, 0xcf, 0xcf, 0x12,
+ 0x9f, 0x6d, 0x6d, 0x8d, 0xfe, 0xa8, 0xfe, 0xb5, 0x28, 0x23, 0x4b, 0x38,
+ 0xd4, 0x16, 0x37, 0x59, 0x07, 0x15, 0x1f, 0x54, 0x0e, 0x0e, 0x01, 0x6d,
+ 0xfe, 0x4d, 0x44, 0x33, 0x29, 0x04, 0xfd, 0x4d, 0x9d, 0x97, 0xbd, 0xbd,
+ 0xb3, 0x34, 0x16, 0x07, 0x2d, 0xb5, 0x7a, 0xdb, 0x21, 0xfd, 0x35, 0x99,
+ 0x56, 0x4c, 0x38, 0x16, 0xd3, 0x36, 0x59, 0x1f, 0x2e, 0x07, 0x06, 0x39,
+ 0x2f, 0xb8, 0x7a, 0xd9, 0x23, 0x32, 0x2a, 0x03, 0x52, 0xfe, 0xff, 0x01,
+ 0x8a, 0xfe, 0x76, 0x5f, 0x8e, 0x8e, 0x60, 0xfe, 0x84, 0x4d, 0x4f, 0x48,
+ 0x4b, 0x92, 0x24, 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13, 0x23, 0x20,
+ 0x2c, 0x01, 0x9f, 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46,
+ 0x0b, 0x37, 0x11, 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42,
+ 0x41, 0x36, 0x04, 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23,
+ 0xac, 0x28, 0x01, 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8,
+ 0x05, 0xd9, 0x00, 0x1d, 0x00, 0x36, 0x00, 0x4b, 0x00, 0x60, 0x00, 0x00,
+ 0x01, 0x21, 0x15, 0x21, 0x15, 0x06, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x01, 0x26, 0x35, 0x34, 0x3f, 0x01,
+ 0x27, 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06, 0x07, 0x23, 0x15,
+ 0x27, 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x03, 0x37,
+ 0x13, 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37, 0x03, 0x27, 0x37,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27, 0x13, 0x36, 0x37,
+ 0x36, 0x02, 0x75, 0x01, 0x96, 0xfe, 0xe5, 0x02, 0x2c, 0x15, 0x7d, 0x92,
+ 0x96, 0x87, 0x2d, 0x5e, 0x3f, 0x45, 0x54, 0x2f, 0x4a, 0x54, 0x54, 0x4a,
+ 0x23, 0x48, 0x3f, 0xfe, 0x3f, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16, 0x37,
+ 0x59, 0x07, 0x15, 0x1f, 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d, 0x44,
+ 0x33, 0x29, 0x04, 0xfd, 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34, 0x16,
+ 0x07, 0x2d, 0xb5, 0x7a, 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c, 0x38,
+ 0x16, 0xd3, 0x36, 0x59, 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8, 0x7a,
+ 0xd9, 0x23, 0x32, 0x2a, 0x03, 0xd0, 0x5f, 0x70, 0x01, 0x07, 0x74, 0x63,
+ 0x64, 0x72, 0x0e, 0x0f, 0x72, 0x1f, 0x12, 0x40, 0x38, 0x39, 0x40, 0x0d,
+ 0x19, 0xfe, 0x53, 0x4d, 0x4f, 0x48, 0x4b, 0x92, 0x24, 0x6b, 0xfe, 0xff,
+ 0x24, 0xac, 0x14, 0x13, 0x23, 0x20, 0x2c, 0x01, 0x9f, 0x21, 0x1b, 0x61,
+ 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46, 0x0b, 0x37, 0x11, 0x13, 0x34, 0x48,
+ 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42, 0x41, 0x36, 0x04, 0x9e, 0x01, 0x92,
+ 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23, 0xac, 0x28, 0x01, 0x09, 0x6b, 0xfe,
+ 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21, 0x1b, 0x00, 0x00, 0x05, 0x00, 0x8c,
+ 0x00, 0x20, 0x05, 0xe8, 0x05, 0xd9, 0x00, 0x09, 0x00, 0x22, 0x00, 0x3b,
+ 0x00, 0x50, 0x00, 0x65, 0x00, 0x00, 0x01, 0x22, 0x06, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x34, 0x26, 0x13, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07,
+ 0x06, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x33, 0x32, 0x16, 0x01, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x27,
+ 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06, 0x07, 0x23, 0x15, 0x27,
+ 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x03, 0x37, 0x13,
+ 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37, 0x03, 0x27, 0x37, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27, 0x13, 0x36, 0x37, 0x36,
+ 0x03, 0x2c, 0x32, 0x3d, 0x3d, 0x32, 0x34, 0x3b, 0x3b, 0x8a, 0x37, 0x3f,
+ 0x1f, 0x4e, 0x53, 0x03, 0x06, 0x54, 0x32, 0x69, 0x7a, 0x7f, 0x69, 0x78,
+ 0x7e, 0x98, 0x84, 0x22, 0x45, 0xfc, 0xfb, 0x28, 0x23, 0x4b, 0x38, 0xd4,
+ 0x16, 0x37, 0x59, 0x07, 0x15, 0x1f, 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe,
+ 0x4d, 0x44, 0x33, 0x29, 0x04, 0xfd, 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3,
+ 0x34, 0x16, 0x07, 0x2d, 0xb5, 0x7a, 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56,
+ 0x4c, 0x38, 0x16, 0xd3, 0x36, 0x59, 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f,
+ 0xb8, 0x7a, 0xd9, 0x23, 0x32, 0x2a, 0x02, 0xbc, 0x41, 0x76, 0x40, 0x40,
+ 0x76, 0x41, 0x01, 0x0e, 0x66, 0x16, 0x0e, 0x60, 0x35, 0x07, 0x28, 0x73,
+ 0x61, 0x5f, 0x74, 0xa5, 0x96, 0x8f, 0xae, 0x0c, 0xfc, 0xfd, 0x4d, 0x4f,
+ 0x48, 0x4b, 0x92, 0x24, 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13, 0x23,
+ 0x20, 0x2c, 0x01, 0x9f, 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95,
+ 0x46, 0x0b, 0x37, 0x11, 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d,
+ 0x42, 0x41, 0x36, 0x04, 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b,
+ 0x23, 0xac, 0x28, 0x01, 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41,
+ 0x21, 0x1b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8,
+ 0x05, 0xd9, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x34, 0x00, 0x49, 0x00, 0x00,
+ 0x01, 0x21, 0x15, 0x03, 0x23, 0x13, 0x21, 0x01, 0x26, 0x35, 0x34, 0x3f,
+ 0x01, 0x27, 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25, 0x06, 0x07, 0x23,
+ 0x15, 0x27, 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x03,
+ 0x37, 0x13, 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01, 0x37, 0x03, 0x27,
+ 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03, 0x27, 0x13, 0x36,
+ 0x37, 0x36, 0x02, 0x5f, 0x01, 0xce, 0xf5, 0x84, 0xe5, 0xfe, 0xc6, 0xfe,
+ 0x55, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16, 0x37, 0x59, 0x07, 0x15, 0x1f,
+ 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d, 0x44, 0x33, 0x29, 0x04, 0xfd,
+ 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34, 0x16, 0x07, 0x2d, 0xb5, 0x7a,
+ 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c, 0x38, 0x16, 0xd3, 0x36, 0x59,
+ 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8, 0x7a, 0xd9, 0x23, 0x32, 0x2a,
+ 0x03, 0xba, 0x32, 0xfd, 0xb9, 0x02, 0x1a, 0xfd, 0x7b, 0x4d, 0x4f, 0x48,
+ 0x4b, 0x92, 0x24, 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13, 0x23, 0x20,
+ 0x2c, 0x01, 0x9f, 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46,
+ 0x0b, 0x37, 0x11, 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42,
+ 0x41, 0x36, 0x04, 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23,
+ 0xac, 0x28, 0x01, 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x8c, 0x00, 0x20, 0x05, 0xe8,
+ 0x05, 0xd9, 0x00, 0x18, 0x00, 0x2d, 0x00, 0x42, 0x00, 0x00, 0x37, 0x26,
+ 0x35, 0x34, 0x3f, 0x01, 0x27, 0x37, 0x13, 0x27, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x21, 0x15, 0x21, 0x22, 0x27, 0x26, 0x25,
+ 0x06, 0x07, 0x23, 0x15, 0x27, 0x37, 0x15, 0x33, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x03, 0x37, 0x13, 0x16, 0x15, 0x14, 0x01, 0x16, 0x1f, 0x01,
+ 0x37, 0x03, 0x27, 0x37, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x03,
+ 0x27, 0x13, 0x36, 0x37, 0x36, 0xb4, 0x28, 0x23, 0x4b, 0x38, 0xd4, 0x16,
+ 0x37, 0x59, 0x07, 0x15, 0x1f, 0x54, 0x0e, 0x0e, 0x01, 0x6d, 0xfe, 0x4d,
+ 0x44, 0x33, 0x29, 0x04, 0xfd, 0x4d, 0x9d, 0x97, 0xbd, 0xbd, 0xb3, 0x34,
+ 0x16, 0x07, 0x2d, 0xb5, 0x7a, 0xdb, 0x21, 0xfd, 0x35, 0x99, 0x56, 0x4c,
+ 0x38, 0x16, 0xd3, 0x36, 0x59, 0x1f, 0x2e, 0x07, 0x06, 0x39, 0x2f, 0xb8,
+ 0x7a, 0xd9, 0x23, 0x32, 0x2a, 0xd6, 0x4d, 0x4f, 0x48, 0x4b, 0x92, 0x24,
+ 0x6b, 0xfe, 0xff, 0x24, 0xac, 0x14, 0x13, 0x23, 0x20, 0x2c, 0x01, 0x9f,
+ 0x21, 0x1b, 0x61, 0x93, 0x0a, 0x49, 0x97, 0x95, 0x46, 0x0b, 0x37, 0x11,
+ 0x13, 0x34, 0x48, 0x01, 0x60, 0x4f, 0xfe, 0x5d, 0x42, 0x41, 0x36, 0x04,
+ 0x9e, 0x01, 0x92, 0x91, 0x24, 0xfe, 0xff, 0x6b, 0x23, 0xac, 0x28, 0x01,
+ 0x09, 0x6b, 0xfe, 0xa1, 0x4e, 0x01, 0xa4, 0x41, 0x21, 0x1b, 0x00, 0x00,
+ 0x00, 0x06, 0x00, 0x9a, 0x00, 0x00, 0x05, 0xd9, 0x05, 0xa1, 0x00, 0x10,
+ 0x00, 0x1a, 0x00, 0x27, 0x00, 0x39, 0x00, 0x48, 0x00, 0x52, 0x00, 0x00,
+ 0x01, 0x21, 0x32, 0x1f, 0x01, 0x37, 0x33, 0x15, 0x02, 0x07, 0x21, 0x35,
+ 0x36, 0x37, 0x03, 0x26, 0x23, 0x07, 0x32, 0x1f, 0x01, 0x03, 0x26, 0x27,
+ 0x12, 0x37, 0x36, 0x01, 0x12, 0x15, 0x17, 0x14, 0x07, 0x06, 0x2b, 0x01,
+ 0x26, 0x03, 0x36, 0x37, 0x05, 0x12, 0x17, 0x27, 0x02, 0x0f, 0x01, 0x17,
+ 0x23, 0x03, 0x27, 0x36, 0x37, 0x36, 0x35, 0x27, 0x35, 0x33, 0x01, 0x33,
+ 0x15, 0x21, 0x32, 0x37, 0x33, 0x14, 0x03, 0x06, 0x2b, 0x01, 0x15, 0x23,
+ 0x03, 0x27, 0x17, 0x11, 0x07, 0x21, 0x22, 0x2f, 0x01, 0x34, 0x37, 0x02,
+ 0xd9, 0x01, 0x5f, 0x34, 0x1e, 0x42, 0x5a, 0x05, 0x8d, 0x0f, 0xfe, 0xcc,
+ 0x57, 0x04, 0xb2, 0x1f, 0x0c, 0x5c, 0x5f, 0x26, 0x2c, 0xae, 0xf0, 0x19,
+ 0x86, 0x14, 0x2c, 0x03, 0x05, 0x95, 0x02, 0x58, 0x0d, 0x24, 0x71, 0x0c,
+ 0x9e, 0x16, 0xb5, 0xfc, 0xd3, 0x9a, 0x02, 0x65, 0xad, 0x03, 0x03, 0x04,
+ 0x04, 0xb5, 0x07, 0x03, 0x48, 0x18, 0x5a, 0xcd, 0x02, 0x8f, 0x02, 0x01,
+ 0x63, 0x1d, 0x1b, 0x03, 0xb5, 0x15, 0x1c, 0xb8, 0x04, 0x98, 0x54, 0x04,
+ 0x04, 0xfe, 0xfb, 0x69, 0x2a, 0x04, 0x4b, 0x05, 0xa1, 0x54, 0x7d, 0x37,
+ 0x02, 0xfe, 0xed, 0x15, 0x05, 0x35, 0x09, 0x01, 0x62, 0x1a, 0x05, 0x5c,
+ 0x56, 0xfe, 0xb6, 0x9a, 0x13, 0x01, 0x04, 0x1c, 0x2f, 0xfe, 0x56, 0xfe,
+ 0xea, 0x17, 0x27, 0x66, 0x3a, 0x08, 0x0f, 0x01, 0x3a, 0x17, 0x70, 0x1b,
+ 0xfe, 0xe0, 0x0d, 0x3f, 0xfe, 0xb6, 0x10, 0x29, 0x1d, 0x01, 0x5c, 0x20,
+ 0x1f, 0x80, 0x29, 0x0b, 0x39, 0x03, 0xfe, 0xa5, 0x73, 0x1a, 0x09, 0xfe,
+ 0xa4, 0x17, 0x73, 0x01, 0x25, 0xb0, 0x06, 0xfe, 0xa9, 0x05, 0x80, 0x30,
+ 0x30, 0x82, 0x00, 0x00, 0x00, 0x07, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdd,
+ 0x05, 0xd9, 0x00, 0x13, 0x00, 0x25, 0x00, 0x32, 0x00, 0x3c, 0x00, 0x4a,
+ 0x00, 0x5c, 0x00, 0x65, 0x00, 0x00, 0x01, 0x33, 0x20, 0x13, 0x16, 0x1d,
+ 0x01, 0x10, 0x05, 0x06, 0x2b, 0x01, 0x20, 0x03, 0x26, 0x3d, 0x01, 0x10,
+ 0x25, 0x36, 0x17, 0x15, 0x32, 0x1f, 0x01, 0x15, 0x06, 0x07, 0x15, 0x33,
+ 0x36, 0x37, 0x23, 0x07, 0x26, 0x27, 0x26, 0x23, 0x01, 0x16, 0x33, 0x36,
+ 0x13, 0x26, 0x23, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x05, 0x15, 0x13,
+ 0x33, 0x32, 0x37, 0x34, 0x2f, 0x01, 0x22, 0x05, 0x17, 0x06, 0x07, 0x14,
+ 0x1f, 0x01, 0x33, 0x34, 0x3f, 0x01, 0x33, 0x17, 0x27, 0x01, 0x07, 0x16,
+ 0x17, 0x33, 0x35, 0x37, 0x33, 0x32, 0x3f, 0x01, 0x35, 0x23, 0x06, 0x23,
+ 0x21, 0x27, 0x35, 0x05, 0x06, 0x1d, 0x01, 0x14, 0x1f, 0x01, 0x33, 0x11,
+ 0x03, 0x2e, 0x19, 0x01, 0x63, 0xdb, 0x57, 0xfe, 0x97, 0x92, 0xa5, 0x03,
+ 0xfe, 0x7b, 0xd0, 0x4b, 0x01, 0x1c, 0xab, 0x7c, 0x22, 0x2e, 0x6d, 0x19,
+ 0x34, 0xfc, 0x09, 0x77, 0x03, 0x4a, 0x47, 0x11, 0x13, 0x17, 0xfd, 0xc7,
+ 0xda, 0x08, 0x04, 0x86, 0x3c, 0x14, 0x1a, 0x2d, 0x56, 0x30, 0x46, 0x0b,
+ 0x02, 0x40, 0x8a, 0x6a, 0x58, 0x18, 0x5b, 0x25, 0x0c, 0xfc, 0x38, 0x48,
+ 0x44, 0x09, 0x7d, 0x1a, 0x02, 0x19, 0x80, 0x08, 0x44, 0x7d, 0x01, 0xc6,
+ 0x79, 0x05, 0x74, 0x03, 0x06, 0x9a, 0x21, 0x37, 0x5f, 0x03, 0x13, 0x1f,
+ 0xfe, 0xe4, 0x06, 0xfe, 0x20, 0x3b, 0x60, 0x17, 0xe3, 0x05, 0xd9, 0xfe,
+ 0x92, 0xae, 0xcf, 0x06, 0xfe, 0x4f, 0xeb, 0x4c, 0x01, 0x86, 0xa8, 0xa3,
+ 0x35, 0x01, 0x5f, 0xf1, 0x83, 0x93, 0x03, 0x6b, 0xce, 0x03, 0x16, 0x1f,
+ 0x03, 0x08, 0xf0, 0x2c, 0x89, 0x16, 0x0c, 0xfe, 0xdf, 0x8b, 0x0f, 0x01,
+ 0x01, 0x7e, 0x12, 0x79, 0x7d, 0x1f, 0xde, 0x03, 0xfe, 0xf4, 0x8a, 0x2f,
+ 0x9d, 0x4d, 0x3c, 0x34, 0x7b, 0x31, 0x16, 0xe8, 0x3b, 0x43, 0x19, 0xf8,
+ 0x2c, 0xf1, 0xfe, 0xe5, 0xfb, 0x03, 0xec, 0x5b, 0x06, 0x80, 0xb1, 0x03,
+ 0x10, 0x06, 0x5f, 0x65, 0x69, 0x27, 0x0c, 0x5b, 0x29, 0x04, 0x01, 0x24,
+ 0x00, 0x08, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdd, 0x05, 0xd9, 0x00, 0x0f,
+ 0x00, 0x20, 0x00, 0x2f, 0x00, 0x3a, 0x00, 0x42, 0x00, 0x52, 0x00, 0x60,
+ 0x00, 0x6a, 0x00, 0x00, 0x01, 0x20, 0x13, 0x16, 0x15, 0x10, 0x05, 0x06,
+ 0x23, 0x20, 0x03, 0x26, 0x35, 0x10, 0x25, 0x36, 0x01, 0x10, 0x05, 0x16,
+ 0x3b, 0x01, 0x20, 0x13, 0x36, 0x35, 0x10, 0x25, 0x26, 0x23, 0x20, 0x03,
+ 0x06, 0x01, 0x21, 0x32, 0x1f, 0x01, 0x37, 0x15, 0x06, 0x07, 0x23, 0x35,
+ 0x37, 0x26, 0x2f, 0x01, 0x23, 0x32, 0x1f, 0x01, 0x03, 0x23, 0x26, 0x27,
+ 0x36, 0x37, 0x36, 0x01, 0x16, 0x1d, 0x01, 0x06, 0x2b, 0x01, 0x03, 0x25,
+ 0x33, 0x17, 0x07, 0x23, 0x27, 0x23, 0x02, 0x07, 0x15, 0x26, 0x03, 0x27,
+ 0x34, 0x37, 0x27, 0x01, 0x33, 0x15, 0x21, 0x32, 0x37, 0x15, 0x03, 0x07,
+ 0x23, 0x07, 0x15, 0x23, 0x27, 0x25, 0x21, 0x17, 0x11, 0x07, 0x23, 0x22,
+ 0x2f, 0x01, 0x36, 0x03, 0x3c, 0x01, 0x6e, 0xd6, 0x5c, 0xfe, 0xaa, 0x93,
+ 0xbc, 0xfe, 0x87, 0xd0, 0x55, 0x01, 0x61, 0x99, 0xfe, 0x2d, 0x01, 0x3e,
+ 0x8e, 0x99, 0x2b, 0x01, 0x44, 0xce, 0x53, 0xfe, 0xba, 0x90, 0xa6, 0xfe,
+ 0xa2, 0xc9, 0x52, 0x02, 0x1e, 0x01, 0x1b, 0x30, 0x15, 0x34, 0x49, 0x62,
+ 0x18, 0xf5, 0x46, 0x84, 0x17, 0x19, 0x45, 0x52, 0x1b, 0x28, 0x8a, 0x03,
+ 0xcc, 0x10, 0x6b, 0x19, 0x28, 0x02, 0x5f, 0x7b, 0x13, 0x61, 0x5a, 0x8c,
+ 0xfd, 0x29, 0xf8, 0x83, 0x03, 0x03, 0x46, 0x03, 0x95, 0x05, 0x0b, 0x8d,
+ 0x02, 0x4e, 0x46, 0x02, 0xb0, 0x06, 0x01, 0x26, 0x12, 0x16, 0x9c, 0x15,
+ 0x98, 0x05, 0x06, 0x79, 0xfe, 0xaf, 0x01, 0x0d, 0x06, 0x06, 0xdc, 0x49,
+ 0x23, 0x06, 0x01, 0x05, 0xd9, 0xfe, 0x97, 0xb2, 0xd4, 0xfe, 0x58, 0xe9,
+ 0x59, 0x01, 0x74, 0xa2, 0xdb, 0x01, 0xa9, 0xeb, 0x54, 0xfd, 0x12, 0xfe,
+ 0x70, 0xd8, 0x58, 0x01, 0x59, 0xa5, 0xc5, 0x01, 0x8c, 0xe0, 0x53, 0xfe,
+ 0xa6, 0x9f, 0x01, 0x6d, 0x45, 0x62, 0x2c, 0x03, 0xcc, 0x23, 0x03, 0x34,
+ 0xfe, 0x27, 0x0c, 0x46, 0x56, 0xfe, 0xfe, 0x7f, 0x10, 0xd5, 0x1a, 0x20,
+ 0xfe, 0xa7, 0xe2, 0x21, 0x17, 0x82, 0x01, 0x09, 0x59, 0xf4, 0x03, 0x31,
+ 0xfe, 0xea, 0x15, 0x1a, 0x0b, 0x01, 0x12, 0x11, 0x1c, 0x8d, 0x31, 0xfe,
+ 0xec, 0x5f, 0x14, 0x06, 0xfe, 0xdc, 0x09, 0x06, 0x55, 0xee, 0x8c, 0x05,
+ 0xfe, 0xeb, 0x05, 0x67, 0x2c, 0x31, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdd, 0x05, 0xd9, 0x00, 0x07, 0x00, 0x17, 0x00, 0x1f,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x00, 0x01, 0x16, 0x17, 0x32, 0x37, 0x26,
+ 0x27, 0x06, 0x01, 0x20, 0x13, 0x16, 0x15, 0x10, 0x05, 0x06, 0x23, 0x20,
+ 0x03, 0x26, 0x35, 0x10, 0x25, 0x36, 0x01, 0x06, 0x07, 0x16, 0x33, 0x36,
+ 0x37, 0x26, 0x01, 0x15, 0x23, 0x06, 0x2b, 0x01, 0x2e, 0x01, 0x35, 0x34,
+ 0x35, 0x34, 0x35, 0x34, 0x36, 0x37, 0x32, 0x17, 0x36, 0x33, 0x1e, 0x01,
+ 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x06, 0x07, 0x23, 0x22, 0x27, 0x23,
+ 0x25, 0x10, 0x05, 0x16, 0x3b, 0x01, 0x20, 0x13, 0x36, 0x35, 0x10, 0x25,
+ 0x26, 0x23, 0x20, 0x03, 0x06, 0x01, 0x95, 0x02, 0xa5, 0x81, 0x57, 0x4e,
+ 0x92, 0x9d, 0x01, 0xa5, 0x01, 0x6e, 0xd6, 0x5c, 0xfe, 0xaa, 0x93, 0xbc,
+ 0xfe, 0x87, 0xd0, 0x55, 0x01, 0x61, 0x99, 0x01, 0xb1, 0x92, 0x4e, 0x57,
+ 0x81, 0xa5, 0x02, 0x02, 0xfe, 0x5a, 0x03, 0x6a, 0xa0, 0x0d, 0x7e, 0x6d,
+ 0x8c, 0x7a, 0x8d, 0x72, 0x73, 0x8e, 0x7a, 0x8c, 0x6d, 0x7e, 0x0d, 0xa0,
+ 0x6b, 0x02, 0xfd, 0x83, 0x01, 0x3e, 0x8e, 0x99, 0x2b, 0x01, 0x44, 0xce,
+ 0x53, 0xfe, 0xba, 0x90, 0xa6, 0xfe, 0xa2, 0xc9, 0x52, 0x02, 0xf4, 0xcd,
+ 0x02, 0xcb, 0xc2, 0x04, 0x03, 0x02, 0x26, 0xfe, 0x97, 0xb2, 0xd4, 0xfe,
+ 0x58, 0xe9, 0x59, 0x01, 0x74, 0xa2, 0xdb, 0x01, 0xa9, 0xeb, 0x54, 0xfd,
+ 0xdd, 0x04, 0xc2, 0xcb, 0x02, 0xcd, 0xbf, 0xfe, 0xf3, 0x1c, 0xbd, 0x0f,
+ 0xb9, 0x50, 0x07, 0x08, 0x04, 0x05, 0x74, 0x99, 0x01, 0xaa, 0xaa, 0x01,
+ 0x99, 0x74, 0x05, 0x04, 0x08, 0x07, 0x50, 0xb9, 0x0f, 0xbd, 0x61, 0xfe,
+ 0x70, 0xd8, 0x58, 0x01, 0x59, 0xa5, 0xc5, 0x01, 0x8c, 0xe0, 0x53, 0xfe,
+ 0xa6, 0x9f, 0x00, 0x00, 0x00, 0x02, 0x01, 0x12, 0x00, 0x02, 0x05, 0x61,
+ 0x05, 0xd9, 0x00, 0x18, 0x00, 0x2e, 0x00, 0x00, 0x01, 0x32, 0x15, 0x06,
+ 0x07, 0x17, 0x33, 0x32, 0x17, 0x07, 0x23, 0x17, 0x21, 0x16, 0x13, 0x37,
+ 0x17, 0x06, 0x07, 0x26, 0x03, 0x21, 0x22, 0x03, 0x34, 0x01, 0x06, 0x23,
+ 0x22, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x14,
+ 0x1e, 0x01, 0x32, 0x36, 0x37, 0x17, 0x06, 0x02, 0x57, 0x8a, 0x01, 0x73,
+ 0x16, 0xf7, 0x0b, 0x0e, 0x03, 0xf8, 0x0b, 0x01, 0x91, 0x0a, 0x7f, 0x79,
+ 0x2b, 0x05, 0xf6, 0x0e, 0x87, 0xfe, 0x53, 0x0b, 0x4c, 0x01, 0xc5, 0x65,
+ 0x6f, 0x70, 0xcb, 0x71, 0x3a, 0x1e, 0x2a, 0x24, 0x16, 0x02, 0x4a, 0x89,
+ 0x96, 0x88, 0x25, 0x3e, 0x29, 0x05, 0xd9, 0x8e, 0xa3, 0x02, 0xe6, 0x92,
+ 0x04, 0x65, 0x06, 0xfe, 0x72, 0x28, 0x8d, 0x08, 0x59, 0x18, 0x01, 0xad,
+ 0x03, 0x24, 0x85, 0xfa, 0x68, 0x3f, 0x7d, 0xe1, 0x7d, 0x7c, 0x72, 0x3c,
+ 0x2e, 0xd9, 0x3c, 0x43, 0x53, 0x98, 0x53, 0x53, 0x4c, 0xa9, 0x32, 0x00,
+ 0x00, 0x03, 0x00, 0x87, 0x00, 0x00, 0x05, 0xbd, 0x05, 0xcd, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11,
+ 0x21, 0x02, 0xa4, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13,
+ 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfd, 0xe3,
+ 0x05, 0x36, 0xfb, 0x5f, 0x04, 0x0c, 0xfb, 0xf4, 0x02, 0xe9, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15,
+ 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfd, 0x42, 0x05, 0xcd, 0xfa, 0x33, 0xa5,
+ 0x04, 0x83, 0x00, 0x00, 0x00, 0x04, 0x00, 0x87, 0x00, 0x00, 0x05, 0xbd,
+ 0x05, 0xcd, 0x00, 0x16, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x00,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11,
+ 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x01, 0x8d, 0x11, 0x12, 0x1c, 0x19,
+ 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11,
+ 0xfc, 0xcc, 0x05, 0x36, 0xfb, 0x5f, 0x04, 0x0c, 0xfb, 0xf4, 0x01, 0xae,
+ 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x02, 0x9c, 0x2a, 0x1c, 0x1e,
+ 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13,
+ 0x13, 0x14, 0x1f, 0x1b, 0xfc, 0x0c, 0x05, 0xcd, 0xfa, 0x33, 0xa5, 0x04,
+ 0x83, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x87, 0x00, 0x00, 0x05, 0xbd,
+ 0x05, 0xcd, 0x00, 0x16, 0x00, 0x2d, 0x00, 0x44, 0x00, 0x48, 0x00, 0x4c,
+ 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x01, 0x8d, 0x11, 0x12, 0x1c,
+ 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26,
+ 0x19, 0x1b, 0x13, 0x11, 0x01, 0x17, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26,
+ 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13,
+ 0x11, 0x01, 0x17, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13,
+ 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfc, 0xcc,
+ 0x05, 0x36, 0xfb, 0x5f, 0x04, 0x0c, 0xfb, 0xf4, 0x01, 0xae, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15,
+ 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x01, 0x66, 0x2a, 0x1c, 0x1e, 0x15, 0x13,
+ 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14,
+ 0x1f, 0x1b, 0x01, 0x61, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f,
+ 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfc,
+ 0x0c, 0x05, 0xcd, 0xfa, 0x33, 0xa5, 0x04, 0x83, 0x00, 0x06, 0x00, 0x87,
+ 0x00, 0x00, 0x05, 0xbd, 0x05, 0xcd, 0x00, 0x16, 0x00, 0x2d, 0x00, 0x44,
+ 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21,
+ 0x01, 0x8d, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11,
+ 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11,
+ 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c,
+ 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfd, 0xd2, 0x11, 0x12, 0x1c, 0x19,
+ 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11,
+ 0xfc, 0xcc, 0x05, 0x36, 0xfb, 0x5f, 0x04, 0x0c, 0xfb, 0xf4, 0x04, 0x1f,
+ 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfd, 0xba, 0x2a, 0x1c, 0x1e,
+ 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13,
+ 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14,
+ 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b,
+ 0x02, 0x9c, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b,
+ 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfc, 0x0c, 0x05,
+ 0xcd, 0xfa, 0x33, 0xa5, 0x04, 0x83, 0x00, 0x00, 0x00, 0x07, 0x00, 0x87,
+ 0x00, 0x00, 0x05, 0xbd, 0x05, 0xcd, 0x00, 0x16, 0x00, 0x2d, 0x00, 0x44,
+ 0x00, 0x5b, 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x00, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11,
+ 0x21, 0x01, 0x8d, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11,
+ 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x02, 0x2e,
+ 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12,
+ 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfd, 0xd2, 0x11, 0x12, 0x1c,
+ 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26,
+ 0x19, 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26,
+ 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13,
+ 0x11, 0xfe, 0xe9, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13,
+ 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfd, 0xe3,
+ 0x05, 0x36, 0xfb, 0x5f, 0x04, 0x0c, 0xfb, 0xf4, 0x04, 0x1f, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15,
+ 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfd, 0xba, 0x2a, 0x1c, 0x1e, 0x15, 0x13,
+ 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14,
+ 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b,
+ 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x02, 0x9c,
+ 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c,
+ 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfe, 0xf5, 0x2a, 0x1c, 0x1e,
+ 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13,
+ 0x13, 0x14, 0x1f, 0x1b, 0xfd, 0x42, 0x05, 0xcd, 0xfa, 0x33, 0xa5, 0x04,
+ 0x83, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x87, 0x00, 0x00, 0x05, 0xbd,
+ 0x05, 0xcd, 0x00, 0x17, 0x00, 0x2f, 0x00, 0x46, 0x00, 0x5d, 0x00, 0x74,
+ 0x00, 0x8b, 0x00, 0x8f, 0x00, 0x93, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x11, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21,
+ 0x03, 0xba, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11,
+ 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0xfd, 0xd3,
+ 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12,
+ 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19,
+ 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11, 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19,
+ 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11,
+ 0xfd, 0xd2, 0x11, 0x12, 0x1c, 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0x11,
+ 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x02, 0x2e, 0x11,
+ 0x12, 0x1c, 0x18, 0x27, 0x26, 0x19, 0x1b, 0x13, 0x11, 0x11, 0x12, 0x1c,
+ 0x19, 0x4c, 0x19, 0x1b, 0x13, 0x11, 0xfc, 0xcc, 0x05, 0x36, 0xfb, 0x5f,
+ 0x04, 0x0c, 0xfb, 0xf4, 0x02, 0xe9, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13,
+ 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f,
+ 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b,
+ 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x01, 0x93, 0x2a,
+ 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e,
+ 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfd, 0x56, 0x2a, 0x1c, 0x1e, 0x15,
+ 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13,
+ 0x14, 0x1f, 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f,
+ 0x1b, 0x2b, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x03,
+ 0x00, 0x2a, 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0x2b, 0x2a,
+ 0x1c, 0x1e, 0x15, 0x13, 0x13, 0x14, 0x1f, 0x1b, 0xfb, 0xda, 0x05, 0xcd,
+ 0xfa, 0x33, 0xa5, 0x04, 0x83, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x99,
+ 0x00, 0x01, 0x05, 0xdc, 0x05, 0xd9, 0x00, 0x0c, 0x00, 0x1b, 0x00, 0x29,
+ 0x00, 0x00, 0x01, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x20, 0x24, 0x02,
+ 0x10, 0x12, 0x24, 0x01, 0x14, 0x12, 0x04, 0x20, 0x24, 0x12, 0x35, 0x34,
+ 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x04, 0x34, 0x3e, 0x01, 0x33, 0x32,
+ 0x1e, 0x01, 0x14, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x03, 0x3a, 0xa9, 0x01,
+ 0x42, 0xb6, 0xb1, 0xfe, 0xbf, 0xfe, 0xa3, 0xfe, 0xbe, 0xb1, 0xb5, 0x01,
+ 0x41, 0xfe, 0x57, 0x9d, 0x01, 0x1c, 0x01, 0x36, 0x01, 0x1c, 0x9d, 0xa1,
+ 0xfe, 0xe3, 0x96, 0x97, 0xfe, 0xe3, 0xa0, 0x03, 0x38, 0x1e, 0x36, 0x1e,
+ 0x1d, 0x36, 0x1f, 0x20, 0x36, 0x1c, 0x1e, 0x35, 0x05, 0xd9, 0xc1, 0xfe,
+ 0x98, 0xfe, 0x7a, 0xfe, 0x9d, 0xc6, 0xc6, 0x01, 0x63, 0x01, 0x86, 0x01,
+ 0x68, 0xc1, 0xfd, 0x14, 0xad, 0xfe, 0xc5, 0xae, 0xae, 0x01, 0x3b, 0xad,
+ 0xac, 0x01, 0x3f, 0xab, 0xab, 0xfe, 0xc1, 0xcd, 0x42, 0x3c, 0x21, 0x21,
+ 0x3c, 0x42, 0x3d, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x99,
+ 0x00, 0x01, 0x05, 0xdc, 0x05, 0xd9, 0x00, 0x0c, 0x00, 0x1b, 0x00, 0x29,
+ 0x00, 0x36, 0x00, 0x00, 0x01, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x20,
+ 0x24, 0x02, 0x10, 0x12, 0x24, 0x01, 0x14, 0x12, 0x04, 0x20, 0x24, 0x12,
+ 0x35, 0x34, 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x04, 0x34, 0x3e, 0x01,
+ 0x33, 0x32, 0x1e, 0x01, 0x14, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x24, 0x32,
+ 0x1e, 0x01, 0x14, 0x0e, 0x01, 0x23, 0x22, 0x2e, 0x01, 0x34, 0x36, 0x03,
+ 0x3a, 0xa9, 0x01, 0x42, 0xb6, 0xb1, 0xfe, 0xbf, 0xfe, 0xa3, 0xfe, 0xbe,
+ 0xb1, 0xb5, 0x01, 0x41, 0xfe, 0x57, 0x9d, 0x01, 0x1c, 0x01, 0x36, 0x01,
+ 0x1c, 0x9d, 0xa1, 0xfe, 0xe3, 0x96, 0x97, 0xfe, 0xe3, 0xa0, 0x03, 0x38,
+ 0x1e, 0x36, 0x1e, 0x1d, 0x36, 0x1f, 0x20, 0x36, 0x1c, 0x1e, 0x35, 0xfd,
+ 0x85, 0x3a, 0x36, 0x1f, 0x1f, 0x36, 0x1d, 0x1d, 0x36, 0x1f, 0x20, 0x05,
+ 0xd9, 0xc1, 0xfe, 0x98, 0xfe, 0x7a, 0xfe, 0x9d, 0xc6, 0xc6, 0x01, 0x63,
+ 0x01, 0x86, 0x01, 0x68, 0xc1, 0xfd, 0x14, 0xad, 0xfe, 0xc5, 0xae, 0xae,
+ 0x01, 0x3b, 0xad, 0xac, 0x01, 0x3f, 0xab, 0xab, 0xfe, 0xc1, 0xcd, 0x42,
+ 0x3c, 0x21, 0x21, 0x3c, 0x42, 0x3d, 0x20, 0x20, 0xdc, 0x20, 0x3d, 0x42,
+ 0x3c, 0x21, 0x21, 0x3c, 0x42, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x99,
+ 0x00, 0x01, 0x05, 0xdc, 0x05, 0xd9, 0x00, 0x0c, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x32, 0x04, 0x12, 0x10, 0x02, 0x04, 0x20, 0x24, 0x02, 0x10, 0x12,
+ 0x24, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01,
+ 0x14, 0x1e, 0x01, 0x03, 0x3a, 0xa9, 0x01, 0x42, 0xb6, 0xb1, 0xfe, 0xbf,
+ 0xfe, 0xa3, 0xfe, 0xbe, 0xb1, 0xb5, 0x01, 0x41, 0x02, 0x01, 0x1c, 0x36,
+ 0x20, 0x1f, 0x36, 0x1d, 0x1e, 0x36, 0x1e, 0x1f, 0x35, 0x05, 0xd9, 0xc1,
+ 0xfe, 0x98, 0xfe, 0x7a, 0xfe, 0x9d, 0xc6, 0xc6, 0x01, 0x63, 0x01, 0x86,
+ 0x01, 0x68, 0xc1, 0xfc, 0x96, 0x20, 0x3d, 0x42, 0x3c, 0x21, 0x21, 0x3c,
+ 0x42, 0x3d, 0x20, 0x00, 0x00, 0x03, 0x00, 0x99, 0x00, 0x01, 0x05, 0xdc,
+ 0x05, 0xd9, 0x00, 0x0c, 0x00, 0x1a, 0x00, 0x27, 0x00, 0x00, 0x01, 0x32,
+ 0x04, 0x12, 0x10, 0x02, 0x04, 0x20, 0x24, 0x02, 0x10, 0x12, 0x24, 0x01,
+ 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x14, 0x1e,
+ 0x01, 0x24, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01,
+ 0x22, 0x06, 0x03, 0x3a, 0xa9, 0x01, 0x42, 0xb6, 0xb1, 0xfe, 0xbf, 0xfe,
+ 0xa3, 0xfe, 0xbe, 0xb1, 0xb5, 0x01, 0x41, 0x02, 0x01, 0x1c, 0x36, 0x20,
+ 0x1f, 0x36, 0x1d, 0x1e, 0x36, 0x1e, 0x1f, 0x35, 0xfc, 0xfb, 0x1f, 0x36,
+ 0x1d, 0x1d, 0x36, 0x1f, 0x1f, 0x36, 0x3a, 0x35, 0x05, 0xd9, 0xc1, 0xfe,
+ 0x98, 0xfe, 0x7a, 0xfe, 0x9d, 0xc6, 0xc6, 0x01, 0x63, 0x01, 0x86, 0x01,
+ 0x68, 0xc1, 0xfc, 0x96, 0x20, 0x3d, 0x42, 0x3c, 0x21, 0x21, 0x3c, 0x42,
+ 0x3d, 0x20, 0x9f, 0x42, 0x3c, 0x21, 0x21, 0x3c, 0x42, 0x3d, 0x20, 0x20,
+ 0x00, 0x01, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x00, 0xc8, 0x00, 0x03,
+ 0x00, 0x00, 0x37, 0x21, 0x15, 0x21, 0x99, 0x05, 0x42, 0xfa, 0xbe, 0xc8,
+ 0xc8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x00, 0xc8, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x37, 0x21, 0x15, 0x21,
+ 0x25, 0x21, 0x15, 0x21, 0x99, 0x02, 0x23, 0xfd, 0xdd, 0x03, 0x1f, 0x02,
+ 0x23, 0xfd, 0xdd, 0xc8, 0xc8, 0xc8, 0xc8, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x03, 0x4d, 0x12, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x85, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x03, 0x4d, 0x12, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x85, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x03, 0x4e, 0x12, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x03, 0x4e, 0x12, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x86, 0x00, 0x02, 0x01, 0x35,
+ 0x00, 0x06, 0x05, 0x3d, 0x05, 0xd9, 0x00, 0x11, 0x00, 0x2a, 0x00, 0x00,
+ 0x01, 0x36, 0x33, 0x32, 0x04, 0x33, 0x32, 0x37, 0x11, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x2f, 0x01, 0x23, 0x35, 0x33, 0x15, 0x23,
+ 0x15, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x37, 0x11, 0x06, 0x23,
+ 0x22, 0x24, 0x23, 0x22, 0x07, 0x11, 0x23, 0x01, 0xd3, 0x2f, 0x36, 0x73,
+ 0x01, 0x2d, 0xa8, 0x3f, 0x41, 0x2f, 0x30, 0x96, 0x9f, 0x7d, 0xac, 0x2d,
+ 0x31, 0x12, 0x59, 0x44, 0xf3, 0x45, 0x30, 0x2e, 0xae, 0x9a, 0x98, 0x91,
+ 0x47, 0x43, 0x5f, 0x5c, 0x9a, 0xfe, 0xe3, 0x74, 0x48, 0x3f, 0x56, 0x02,
+ 0x9f, 0x11, 0xa3, 0x0c, 0x02, 0x62, 0x0a, 0x5f, 0x7e, 0x09, 0x02, 0x5d,
+ 0x35, 0x35, 0x1a, 0x08, 0x78, 0x5c, 0x15, 0xfd, 0x0d, 0x1c, 0x9a, 0x1e,
+ 0xfd, 0xc6, 0x00, 0x00, 0x00, 0x01, 0x01, 0x35, 0x00, 0x06, 0x05, 0x3d,
+ 0x05, 0xd9, 0x00, 0x18, 0x00, 0x00, 0x01, 0x23, 0x35, 0x33, 0x15, 0x23,
+ 0x15, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x37, 0x11, 0x06, 0x23,
+ 0x22, 0x24, 0x23, 0x22, 0x07, 0x11, 0x23, 0x01, 0x7a, 0x44, 0xf3, 0x45,
+ 0x30, 0x2e, 0xae, 0x9a, 0x98, 0x91, 0x47, 0x43, 0x5f, 0x5c, 0x9a, 0xfe,
+ 0xe3, 0x74, 0x48, 0x3f, 0x56, 0x05, 0xa4, 0x35, 0x35, 0x1a, 0x08, 0x78,
+ 0x5c, 0x15, 0xfd, 0x0d, 0x1c, 0x9a, 0x1e, 0xfd, 0xc6, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5f, 0x00, 0x01, 0x06, 0x15, 0x05, 0xda, 0x00, 0x1f,
+ 0x00, 0x00, 0x09, 0x01, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x37, 0x17,
+ 0x07, 0x09, 0x01, 0x27, 0x37, 0x17, 0x37, 0x17, 0x07, 0x16, 0x13, 0x09,
+ 0x01, 0x17, 0x01, 0x07, 0x03, 0x27, 0x07, 0x03, 0x27, 0x01, 0x02, 0xe4,
+ 0xfe, 0xd4, 0xa6, 0xb3, 0xa8, 0x2a, 0x7d, 0x26, 0xa7, 0xb1, 0xa6, 0x01,
+ 0x2c, 0x01, 0x2c, 0xa6, 0xb2, 0xa6, 0x28, 0x7a, 0x28, 0x3f, 0x1f, 0xfe,
+ 0xf1, 0xfe, 0xd5, 0xa0, 0x01, 0x1f, 0xa7, 0xf3, 0xa1, 0xa0, 0xf3, 0xa6,
+ 0x01, 0x1e, 0x02, 0x7e, 0x01, 0x51, 0xbb, 0xc7, 0xbb, 0x2c, 0x8a, 0x2c,
+ 0xba, 0xc8, 0xba, 0xfe, 0xb0, 0x01, 0x4f, 0xbb, 0xc8, 0xbb, 0x2d, 0x8a,
+ 0x2c, 0x71, 0xfe, 0x74, 0x01, 0x35, 0xfe, 0xaf, 0xb3, 0xfe, 0xf0, 0xb9,
+ 0x01, 0x40, 0xb4, 0xb4, 0xfe, 0xc0, 0xb9, 0x01, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb2, 0xff, 0xec, 0x05, 0xc2, 0x05, 0xdb, 0x00, 0x0f,
+ 0x00, 0x52, 0x00, 0x00, 0x01, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01,
+ 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22, 0x0e, 0x01, 0x13, 0x15, 0x23, 0x06,
+ 0x23, 0x22, 0x27, 0x35, 0x23, 0x15, 0x23, 0x22, 0x24, 0x27, 0x26, 0x27,
+ 0x07, 0x03, 0x05, 0x07, 0x30, 0x17, 0x16, 0x17, 0x16, 0x17, 0x11, 0x21,
+ 0x35, 0x21, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x33, 0x32,
+ 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x15, 0x21, 0x15, 0x21, 0x11,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x27, 0x25, 0x03, 0x27, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x02, 0xc2, 0x23, 0x41, 0x22, 0x24, 0x40, 0x24, 0x25,
+ 0x40, 0x23, 0x22, 0x40, 0x24, 0xcc, 0x07, 0x22, 0x23, 0x02, 0x03, 0x06,
+ 0x07, 0x98, 0xfe, 0xea, 0x4d, 0x0f, 0x0b, 0x4f, 0x1a, 0x01, 0x14, 0x4e,
+ 0x06, 0x41, 0x77, 0x62, 0x6a, 0xfe, 0xae, 0x01, 0x52, 0x18, 0x16, 0x38,
+ 0x3d, 0x3e, 0x70, 0x3b, 0x3b, 0x70, 0x40, 0x3f, 0x36, 0x19, 0x17, 0x01,
+ 0x48, 0xfe, 0xb8, 0x5a, 0x54, 0x77, 0x43, 0x02, 0x02, 0x4e, 0x01, 0x15,
+ 0x1b, 0x4e, 0x0b, 0x0f, 0x4e, 0x8b, 0x67, 0x04, 0xd6, 0x27, 0x48, 0x27,
+ 0x27, 0x48, 0x27, 0x28, 0x48, 0x27, 0x27, 0x48, 0xfa, 0xf2, 0x01, 0x03,
+ 0x01, 0x02, 0x02, 0x60, 0x58, 0x11, 0x10, 0x41, 0x01, 0x4b, 0x7c, 0x40,
+ 0x06, 0x58, 0x31, 0x28, 0x07, 0x02, 0xd4, 0x81, 0x33, 0x08, 0x0e, 0x22,
+ 0x7c, 0x88, 0x7d, 0x44, 0x44, 0x7d, 0x88, 0x7c, 0x22, 0x0e, 0x09, 0x32,
+ 0x81, 0xfd, 0x2f, 0x0a, 0x22, 0x31, 0x58, 0x03, 0x03, 0x40, 0x7c, 0xfe,
+ 0xb5, 0x41, 0x10, 0x11, 0x58, 0x31, 0x23, 0x00, 0x00, 0x01, 0x00, 0xf2,
+ 0x00, 0x00, 0x05, 0x83, 0x05, 0xd6, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x13,
+ 0x36, 0x37, 0x33, 0x06, 0x07, 0x17, 0x16, 0x17, 0x0e, 0x01, 0x07, 0x26,
+ 0x2f, 0x01, 0x06, 0x07, 0x27, 0x36, 0x37, 0x0b, 0x01, 0x16, 0x17, 0x07,
+ 0x26, 0x27, 0x07, 0x06, 0x07, 0x22, 0x26, 0x27, 0x36, 0x3f, 0x01, 0x26,
+ 0x27, 0x33, 0x16, 0x17, 0x13, 0x01, 0x27, 0x09, 0x01, 0x07, 0x03, 0x7f,
+ 0xfa, 0x43, 0x19, 0x51, 0x16, 0x54, 0x8d, 0x37, 0x02, 0x05, 0x36, 0x27,
+ 0x40, 0x03, 0x8e, 0x5c, 0x52, 0x23, 0x5c, 0x3b, 0xdc, 0xd9, 0x3b, 0x5b,
+ 0x22, 0x53, 0x5e, 0x8c, 0x01, 0x39, 0x24, 0x43, 0x04, 0x01, 0x39, 0x8c,
+ 0x54, 0x17, 0x53, 0x18, 0x44, 0xfa, 0xfe, 0x19, 0x1d, 0x02, 0x47, 0x02,
+ 0x49, 0x1d, 0x02, 0xbd, 0xfe, 0xd0, 0x3b, 0x3c, 0x75, 0x49, 0xb6, 0x03,
+ 0x40, 0x2a, 0x22, 0x01, 0x04, 0x4f, 0xa8, 0x38, 0x08, 0x42, 0x11, 0x31,
+ 0x01, 0x22, 0xfe, 0xde, 0x31, 0x11, 0x42, 0x08, 0x38, 0xa8, 0x48, 0x0b,
+ 0x1d, 0x24, 0x4c, 0x03, 0xb6, 0x49, 0x75, 0x3c, 0x3b, 0x01, 0x30, 0x02,
+ 0x84, 0x95, 0xfd, 0x3a, 0x02, 0xc6, 0x95, 0x00, 0x00, 0x05, 0x00, 0x70,
+ 0xff, 0xec, 0x03, 0x73, 0x05, 0xdb, 0x00, 0x07, 0x00, 0x1a, 0x00, 0x2e,
+ 0x00, 0x4f, 0x00, 0x60, 0x00, 0x00, 0x01, 0x16, 0x33, 0x32, 0x35, 0x34,
+ 0x27, 0x26, 0x13, 0x15, 0x06, 0x23, 0x22, 0x27, 0x35, 0x26, 0x35, 0x34,
+ 0x37, 0x17, 0x06, 0x15, 0x14, 0x04, 0x07, 0x23, 0x26, 0x03, 0x24, 0x35,
+ 0x34, 0x37, 0x15, 0x06, 0x15, 0x14, 0x04, 0x17, 0x06, 0x07, 0x35, 0x36,
+ 0x35, 0x34, 0x27, 0x11, 0x27, 0x13, 0x11, 0x27, 0x11, 0x24, 0x27, 0x36,
+ 0x37, 0x32, 0x33, 0x32, 0x17, 0x07, 0x17, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x23, 0x22, 0x15, 0x14, 0x04, 0x17, 0x06, 0x05, 0x35, 0x36, 0x27, 0x34,
+ 0x35, 0x34, 0x25, 0x27, 0x03, 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01, 0x33,
+ 0x32, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x01, 0x32, 0x19, 0x0c, 0x0a,
+ 0x05, 0x20, 0xe0, 0x0b, 0x18, 0x20, 0x02, 0xa3, 0x93, 0x01, 0x3a, 0x01,
+ 0x22, 0x01, 0x0e, 0x19, 0xb1, 0xfe, 0xfe, 0xf3, 0x9a, 0x01, 0xf5, 0x03,
+ 0x04, 0xf8, 0xa3, 0xb1, 0x45, 0x45, 0x45, 0xfe, 0x9d, 0x04, 0x0c, 0xc0,
+ 0x04, 0x02, 0x3b, 0x2f, 0x64, 0x55, 0x15, 0x18, 0x33, 0x3d, 0x08, 0x06,
+ 0x28, 0x02, 0xa4, 0x05, 0x06, 0xfe, 0xba, 0xf6, 0x01, 0xff, 0x00, 0x45,
+ 0x05, 0x13, 0x15, 0x15, 0x26, 0x14, 0x15, 0x25, 0x16, 0x15, 0x13, 0x04,
+ 0xa4, 0x0c, 0x09, 0x06, 0x0a, 0x0b, 0xfb, 0x94, 0x42, 0x1d, 0x40, 0x30,
+ 0x22, 0x40, 0x52, 0x1a, 0x2f, 0x18, 0x18, 0x2f, 0x3e, 0x77, 0x41, 0x01,
+ 0xb7, 0x26, 0x6f, 0x63, 0x2f, 0x44, 0x26, 0x33, 0x2e, 0x59, 0x61, 0x51,
+ 0x2f, 0x35, 0x22, 0x31, 0x27, 0x22, 0xfe, 0xb4, 0x13, 0x03, 0x01, 0xfe,
+ 0x81, 0x10, 0x01, 0x75, 0x13, 0x8a, 0x90, 0x05, 0x45, 0x1e, 0x19, 0x06,
+ 0x1b, 0x02, 0x36, 0x32, 0x2f, 0x75, 0x8a, 0x10, 0x3d, 0x20, 0x3d, 0x01,
+ 0x02, 0x21, 0x6d, 0x07, 0x01, 0x2d, 0x0b, 0x2e, 0x18, 0x19, 0x2e, 0x18,
+ 0x18, 0x2e, 0x19, 0x18, 0x2e, 0x0b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6c,
+ 0xff, 0xec, 0x06, 0x07, 0x05, 0xdb, 0x00, 0x04, 0x00, 0x09, 0x00, 0x37,
+ 0x00, 0x00, 0x25, 0x0b, 0x01, 0x16, 0x32, 0x25, 0x0b, 0x01, 0x16, 0x32,
+ 0x01, 0x33, 0x32, 0x1d, 0x01, 0x14, 0x2b, 0x01, 0x13, 0x06, 0x07, 0x0e,
+ 0x01, 0x23, 0x22, 0x2e, 0x01, 0x3d, 0x01, 0x13, 0x21, 0x13, 0x15, 0x14,
+ 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26, 0x27, 0x13, 0x23, 0x26, 0x3d, 0x01,
+ 0x34, 0x3b, 0x01, 0x37, 0x17, 0x33, 0x1b, 0x01, 0x33, 0x37, 0x05, 0xbc,
+ 0xf8, 0xf9, 0x7d, 0xf9, 0xfd, 0x6e, 0xf8, 0xf8, 0x7c, 0xf8, 0x02, 0xbc,
+ 0xc0, 0x33, 0x25, 0xaf, 0xf9, 0x02, 0x2b, 0x2b, 0x9b, 0x56, 0x54, 0x9a,
+ 0x55, 0xf5, 0xfd, 0x92, 0xf6, 0x54, 0x9b, 0xa9, 0x9c, 0x2c, 0x2a, 0x01,
+ 0xf7, 0xb7, 0x1d, 0x33, 0xc2, 0x2f, 0x2e, 0xe3, 0x74, 0x74, 0xe3, 0x2f,
+ 0xed, 0x03, 0x3c, 0xfc, 0xc4, 0x26, 0x26, 0x03, 0x3c, 0xfc, 0xc4, 0x26,
+ 0x03, 0xd1, 0x2a, 0x19, 0x28, 0xfc, 0xc7, 0x44, 0x3e, 0x3f, 0x47, 0x47,
+ 0x7a, 0x42, 0x08, 0x03, 0x36, 0xfc, 0xca, 0x06, 0x43, 0x7b, 0x47, 0x47,
+ 0x3f, 0x3e, 0x44, 0x03, 0x39, 0x11, 0x1c, 0x0f, 0x2f, 0x9b, 0x9b, 0x01,
+ 0x43, 0xfe, 0xbd, 0x9b, 0x00, 0x02, 0x00, 0x70, 0x00, 0x00, 0x06, 0x03,
+ 0x05, 0xdb, 0x00, 0x1a, 0x00, 0x26, 0x00, 0x00, 0x01, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x06, 0x03, 0x27, 0x12, 0x01,
+ 0x13, 0x23, 0x03, 0x21, 0x11, 0x23, 0x03, 0x21, 0x03, 0x23, 0x13, 0x02,
+ 0x8a, 0xa5, 0x8f, 0x30, 0x2d, 0xb5, 0x44, 0x1f, 0x0f, 0x27, 0x71, 0x44,
+ 0x3f, 0x2b, 0x8d, 0x4a, 0x1e, 0x33, 0x23, 0x2b, 0x46, 0x92, 0xb4, 0x6c,
+ 0xcf, 0x04, 0x6f, 0x55, 0x72, 0x4c, 0xfe, 0xff, 0x7c, 0x01, 0xfe, 0xff,
+ 0x4d, 0x73, 0x56, 0x05, 0x87, 0x54, 0x09, 0x27, 0xa6, 0x4e, 0x51, 0x39,
+ 0x3b, 0x8d, 0x3a, 0x23, 0x38, 0xb3, 0x48, 0x4c, 0x22, 0x43, 0xfe, 0xdf,
+ 0x44, 0x01, 0x99, 0xfd, 0x7c, 0xfd, 0xa6, 0x01, 0xd7, 0xfe, 0x29, 0x01,
+ 0xd7, 0xfe, 0x29, 0x02, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x0b,
+ 0x00, 0x00, 0x05, 0x68, 0x05, 0xdb, 0x00, 0x0d, 0x00, 0x35, 0x00, 0x00,
+ 0x00, 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x13, 0x15, 0x3b, 0x01, 0x32, 0x36, 0x37, 0x14, 0x04, 0x07,
+ 0x06, 0x07, 0x23, 0x26, 0x3d, 0x01, 0x26, 0x24, 0x03, 0x1e, 0x01, 0x33,
+ 0x32, 0x37, 0x33, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x32,
+ 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x02, 0x9c, 0x2d, 0x52, 0x2b, 0x2d,
+ 0x52, 0x2d, 0x2f, 0x51, 0x2c, 0x2a, 0x52, 0xa8, 0x05, 0x03, 0x87, 0xcb,
+ 0x9b, 0xfe, 0x58, 0x23, 0x2f, 0x02, 0x26, 0x27, 0x04, 0xfe, 0x40, 0x4f,
+ 0xb3, 0xd4, 0x74, 0x0c, 0x0c, 0x06, 0x3b, 0x36, 0x46, 0x4e, 0x4f, 0x8d,
+ 0x96, 0x8e, 0x51, 0x4f, 0x47, 0x33, 0x04, 0xc4, 0x64, 0x59, 0x32, 0x32,
+ 0x59, 0x64, 0x5b, 0x30, 0x30, 0xfe, 0x2d, 0x9c, 0xbf, 0x26, 0xe7, 0x9a,
+ 0x97, 0x88, 0xf5, 0xa8, 0x9a, 0x14, 0x84, 0x8f, 0x01, 0x31, 0x02, 0xe9,
+ 0x01, 0x9b, 0x07, 0x23, 0x2b, 0x9c, 0xac, 0x9e, 0x55, 0x55, 0x9e, 0xac,
+ 0x9c, 0x2b, 0x20, 0x00, 0x00, 0x03, 0x00, 0xae, 0xff, 0xdd, 0x05, 0xc6,
+ 0x05, 0xd0, 0x00, 0x3f, 0x00, 0x47, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x32,
+ 0x1f, 0x01, 0x16, 0x17, 0x37, 0x16, 0x17, 0x07, 0x16, 0x17, 0x37, 0x16,
+ 0x17, 0x07, 0x16, 0x14, 0x07, 0x17, 0x06, 0x07, 0x27, 0x06, 0x07, 0x17,
+ 0x06, 0x07, 0x27, 0x06, 0x0f, 0x01, 0x06, 0x22, 0x2f, 0x01, 0x26, 0x27,
+ 0x07, 0x26, 0x27, 0x37, 0x26, 0x27, 0x07, 0x26, 0x27, 0x37, 0x26, 0x34,
+ 0x37, 0x27, 0x36, 0x37, 0x17, 0x36, 0x37, 0x27, 0x36, 0x37, 0x17, 0x36,
+ 0x3f, 0x01, 0x12, 0x20, 0x02, 0x10, 0x12, 0x20, 0x12, 0x10, 0x04, 0x14,
+ 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x03, 0x13, 0x4f, 0x26, 0x18, 0x3c,
+ 0x3a, 0x71, 0x45, 0x39, 0x4b, 0x2a, 0x1e, 0x94, 0x21, 0x0f, 0x85, 0x03,
+ 0x03, 0x85, 0x0f, 0x21, 0x94, 0x1e, 0x2a, 0x4b, 0x39, 0x45, 0x71, 0x3a,
+ 0x3c, 0x18, 0x26, 0x4f, 0x27, 0x18, 0x3c, 0x39, 0x72, 0x44, 0x3a, 0x4c,
+ 0x2b, 0x1d, 0x95, 0x21, 0x0e, 0x85, 0x04, 0x04, 0x85, 0x0e, 0x21, 0x95,
+ 0x1d, 0x2b, 0x4c, 0x3a, 0x44, 0x72, 0x39, 0x3c, 0x18, 0xf2, 0xfe, 0xb8,
+ 0xe8, 0xe8, 0x01, 0x48, 0xe8, 0xff, 0x00, 0x52, 0x73, 0x52, 0x52, 0x73,
+ 0x05, 0xd0, 0x05, 0xbb, 0x0d, 0x1e, 0x84, 0x2d, 0x40, 0x9c, 0x32, 0x3c,
+ 0x1f, 0x54, 0x5c, 0x45, 0x23, 0x44, 0x23, 0x46, 0x5b, 0x54, 0x1f, 0x3c,
+ 0x33, 0x9b, 0x40, 0x2e, 0x84, 0x1d, 0x0e, 0xba, 0x06, 0x06, 0xba, 0x0e,
+ 0x1d, 0x84, 0x2e, 0x40, 0x9b, 0x32, 0x3d, 0x1f, 0x54, 0x5b, 0x46, 0x23,
+ 0x44, 0x23, 0x45, 0x5c, 0x54, 0x1f, 0x3c, 0x33, 0x9b, 0x40, 0x2d, 0x83,
+ 0x1d, 0x0d, 0xbb, 0xfe, 0xc4, 0xfe, 0xfd, 0xfe, 0x95, 0xfe, 0xfe, 0x01,
+ 0x02, 0x01, 0x6b, 0x75, 0x80, 0x5b, 0x5b, 0x80, 0x5b, 0x00, 0x00, 0x00,
+ 0x00, 0x0f, 0x00, 0xeb, 0xff, 0xed, 0x05, 0x88, 0x05, 0xdd, 0x00, 0x09,
+ 0x00, 0x0e, 0x00, 0x13, 0x00, 0x18, 0x00, 0x1d, 0x00, 0x25, 0x00, 0x2c,
+ 0x00, 0x31, 0x00, 0x36, 0x00, 0x3b, 0x00, 0x40, 0x00, 0x48, 0x00, 0x4f,
+ 0x00, 0x5b, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x14, 0x1e, 0x01, 0x33, 0x26,
+ 0x34, 0x37, 0x22, 0x06, 0x05, 0x16, 0x17, 0x37, 0x26, 0x27, 0x16, 0x17,
+ 0x37, 0x26, 0x27, 0x16, 0x17, 0x37, 0x26, 0x27, 0x16, 0x07, 0x37, 0x26,
+ 0x27, 0x14, 0x15, 0x14, 0x07, 0x17, 0x35, 0x34, 0x27, 0x06, 0x07, 0x17,
+ 0x36, 0x35, 0x34, 0x05, 0x17, 0x36, 0x37, 0x06, 0x07, 0x17, 0x36, 0x37,
+ 0x06, 0x07, 0x17, 0x36, 0x37, 0x06, 0x1f, 0x01, 0x26, 0x37, 0x06, 0x17,
+ 0x37, 0x26, 0x35, 0x34, 0x37, 0x06, 0x15, 0x3f, 0x01, 0x26, 0x27, 0x06,
+ 0x15, 0x14, 0x05, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x27, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x33,
+ 0x32, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x33, 0x14, 0x23, 0x15,
+ 0x16, 0x17, 0x16, 0x17, 0x36, 0x37, 0x04, 0x17, 0x06, 0x23, 0x26, 0x22,
+ 0x07, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x03, 0x15, 0x06, 0x23, 0x22,
+ 0x2f, 0x01, 0x03, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x26, 0x23, 0x22,
+ 0x07, 0x22, 0x27, 0x36, 0x25, 0x16, 0x17, 0x36, 0x37, 0x36, 0x03, 0x01,
+ 0x0f, 0x1c, 0x10, 0x0d, 0x0d, 0x0f, 0x1d, 0x01, 0xc1, 0x63, 0x26, 0x17,
+ 0x52, 0x82, 0x63, 0x21, 0x23, 0x51, 0x6c, 0x45, 0x0e, 0x2b, 0x36, 0x6f,
+ 0x2e, 0x01, 0x35, 0x22, 0x59, 0x13, 0x36, 0x36, 0x2b, 0x2d, 0x34, 0x24,
+ 0xfc, 0xce, 0x18, 0x26, 0x62, 0x4e, 0x25, 0x23, 0x21, 0x64, 0x57, 0x12,
+ 0x2c, 0x0e, 0x44, 0x48, 0x0e, 0x35, 0x01, 0x2d, 0x3f, 0x36, 0x35, 0x14,
+ 0x01, 0x22, 0x59, 0x34, 0x2d, 0x2a, 0x01, 0x01, 0x00, 0x32, 0x44, 0x44,
+ 0x32, 0x2f, 0x46, 0x45, 0x51, 0x02, 0x02, 0x11, 0x13, 0x13, 0x23, 0x13,
+ 0x12, 0x22, 0x14, 0x13, 0x11, 0x02, 0x03, 0x01, 0x01, 0x2f, 0x25, 0x03,
+ 0x02, 0x48, 0x14, 0x01, 0x2d, 0x48, 0x4d, 0xe4, 0x24, 0x3e, 0x19, 0x04,
+ 0x2f, 0x24, 0x2f, 0x01, 0x0a, 0x14, 0x17, 0x07, 0x01, 0x02, 0x2e, 0x24,
+ 0x2e, 0x02, 0x1c, 0x24, 0x1f, 0x24, 0xe5, 0x4c, 0x48, 0x01, 0x2c, 0x13,
+ 0x4a, 0x06, 0x09, 0x24, 0x05, 0xa0, 0x22, 0x1f, 0x12, 0x20, 0x42, 0x22,
+ 0x11, 0x76, 0x3e, 0x30, 0x26, 0x38, 0x14, 0x61, 0x3e, 0x21, 0x55, 0x2a,
+ 0x7e, 0x45, 0x13, 0x6d, 0x4c, 0x91, 0x4b, 0x08, 0x7d, 0x60, 0x11, 0x10,
+ 0x81, 0x3f, 0x0a, 0x0c, 0x7b, 0x61, 0x88, 0x37, 0x1a, 0x63, 0x5b, 0x0d,
+ 0x4f, 0x26, 0x30, 0x3e, 0x10, 0x6a, 0x21, 0x3e, 0x61, 0x29, 0x86, 0x13,
+ 0x45, 0x7e, 0x43, 0x88, 0x08, 0x4b, 0x91, 0x57, 0x8b, 0x0a, 0x3d, 0x7b,
+ 0x14, 0x15, 0x64, 0x7b, 0x03, 0x1a, 0x37, 0x88, 0x0e, 0x0d, 0x5b, 0x2b,
+ 0x4d, 0x35, 0x37, 0x4c, 0x4c, 0x37, 0x35, 0x4d, 0x2d, 0x5a, 0x01, 0x02,
+ 0x0a, 0x27, 0x2a, 0x27, 0x15, 0x15, 0x27, 0x2a, 0x27, 0x0a, 0x02, 0x01,
+ 0x01, 0x59, 0x09, 0x28, 0x03, 0x04, 0x80, 0x35, 0x06, 0x5b, 0xa3, 0x0c,
+ 0x0c, 0x14, 0x15, 0x4a, 0x35, 0x28, 0x09, 0xfc, 0xd6, 0x5c, 0x16, 0x1c,
+ 0x64, 0x03, 0x1c, 0x09, 0x28, 0x35, 0x4a, 0x12, 0x11, 0x11, 0x0c, 0xa3,
+ 0x5b, 0x06, 0x34, 0x8c, 0x0a, 0x09, 0x27, 0x00, 0x00, 0x0f, 0x00, 0xea,
+ 0x00, 0x00, 0x05, 0x8a, 0x05, 0xd3, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x2f,
+ 0x00, 0x37, 0x00, 0x4f, 0x00, 0x5f, 0x00, 0x9f, 0x00, 0xab, 0x00, 0xb3,
+ 0x00, 0xbb, 0x00, 0xcb, 0x00, 0xd3, 0x00, 0xdb, 0x00, 0xe3, 0x00, 0xef,
+ 0x00, 0x00, 0x01, 0x32, 0x1e, 0x01, 0x15, 0x14, 0x0e, 0x01, 0x23, 0x22,
+ 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01, 0x07, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x33, 0x36, 0x37, 0x26, 0x25, 0x06,
+ 0x07, 0x16, 0x17, 0x32, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x27, 0x06, 0x27, 0x16, 0x15, 0x14, 0x07, 0x36, 0x37, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x13, 0x16,
+ 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x05, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x15, 0x36,
+ 0x33, 0x32, 0x33, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x23,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x23, 0x22, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x32, 0x33, 0x32, 0x05, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x36, 0x17, 0x06, 0x07, 0x16, 0x17, 0x16,
+ 0x17, 0x26, 0x25, 0x06, 0x07, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x36,
+ 0x37, 0x36, 0x07, 0x06, 0x07, 0x16, 0x17, 0x26, 0x35, 0x34, 0x17, 0x16,
+ 0x17, 0x36, 0x37, 0x26, 0x27, 0x26, 0x17, 0x16, 0x17, 0x36, 0x37, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x26, 0x03, 0x3a, 0x11, 0x21, 0x12, 0x12, 0x21, 0x11, 0x12, 0x20,
+ 0x12, 0x12, 0x20, 0xca, 0x47, 0x40, 0x73, 0x2e, 0x21, 0x07, 0x15, 0x4d,
+ 0x08, 0x08, 0x59, 0x89, 0x0d, 0x01, 0xb2, 0x05, 0x0d, 0x8a, 0x59, 0x08,
+ 0x07, 0x4d, 0x15, 0x07, 0x21, 0x2f, 0x72, 0x40, 0x44, 0x01, 0x01, 0x33,
+ 0x2f, 0x2f, 0x62, 0x2b, 0x2c, 0x2d, 0x2d, 0x2c, 0x2b, 0x2d, 0x2a, 0x02,
+ 0x02, 0x29, 0x2e, 0x2b, 0x2e, 0x2c, 0x2c, 0x2d, 0x2a, 0x03, 0x16, 0x0e,
+ 0x05, 0x47, 0x3f, 0x71, 0x30, 0x22, 0x07, 0x15, 0x4d, 0x08, 0x0a, 0x5b,
+ 0xfd, 0xef, 0x01, 0x1e, 0x6c, 0x38, 0x38, 0x6a, 0x1f, 0x93, 0x65, 0x03,
+ 0x04, 0x68, 0x1d, 0x0b, 0x20, 0x32, 0x7b, 0x01, 0x7c, 0x32, 0x1e, 0x0b,
+ 0x1c, 0x6a, 0x06, 0x63, 0x93, 0x01, 0x1f, 0x34, 0x35, 0x3a, 0x3a, 0x36,
+ 0x34, 0x1f, 0x92, 0x63, 0x05, 0x6c, 0x1c, 0x0a, 0x1e, 0x30, 0x7c, 0x7a,
+ 0x31, 0x1f, 0x0a, 0x1d, 0x67, 0x04, 0x02, 0x65, 0x01, 0xee, 0x18, 0x29,
+ 0x2b, 0x2c, 0x2e, 0x2a, 0x29, 0x19, 0x4d, 0x4d, 0x4c, 0x53, 0x36, 0x38,
+ 0x1e, 0x21, 0x1e, 0x1d, 0x04, 0xfe, 0xb9, 0x08, 0x05, 0x1e, 0x1f, 0x1f,
+ 0x1f, 0x38, 0x60, 0x86, 0x5a, 0x09, 0x09, 0x4d, 0x14, 0x08, 0x22, 0x31,
+ 0x70, 0x3f, 0x47, 0x05, 0x08, 0x33, 0x2e, 0x2e, 0x33, 0x01, 0x33, 0x05,
+ 0x08, 0x36, 0x38, 0x20, 0x1e, 0x20, 0xc1, 0x38, 0x36, 0x08, 0x04, 0x1d,
+ 0x1e, 0x21, 0x51, 0x4b, 0x4d, 0x18, 0x29, 0x2a, 0x2f, 0x2e, 0x2a, 0x29,
+ 0x17, 0x4d, 0x03, 0x35, 0x13, 0x24, 0x15, 0x14, 0x23, 0x14, 0x14, 0x23,
+ 0x14, 0x15, 0x24, 0x13, 0xd9, 0x35, 0x39, 0x67, 0x54, 0x3b, 0x26, 0x12,
+ 0x0e, 0x27, 0x04, 0x39, 0x5a, 0x5e, 0x5e, 0x5a, 0x39, 0x04, 0x27, 0x0e,
+ 0x12, 0x27, 0x3a, 0x54, 0x67, 0x39, 0xa7, 0x27, 0x28, 0x27, 0x27, 0x26,
+ 0x28, 0x29, 0x49, 0x1e, 0x1c, 0x1c, 0x1a, 0x1a, 0x1c, 0x1c, 0x1e, 0x38,
+ 0x3a, 0x39, 0x38, 0x1e, 0x1c, 0x1d, 0x1a, 0x1a, 0x1d, 0x1c, 0x1e, 0x38,
+ 0x39, 0x3a, 0x01, 0x0c, 0x5a, 0x5f, 0x35, 0x39, 0x65, 0x55, 0x3b, 0x27,
+ 0x13, 0x0e, 0x28, 0x01, 0x05, 0x09, 0x02, 0xb3, 0xc0, 0xc0, 0xb3, 0x02,
+ 0x3a, 0x02, 0x38, 0x14, 0x1b, 0x2e, 0x3e, 0x65, 0x75, 0x01, 0x76, 0x63,
+ 0x3e, 0x2d, 0x1b, 0x14, 0x37, 0x03, 0x3a, 0xb0, 0x62, 0x63, 0x63, 0x62,
+ 0xb0, 0x3b, 0x04, 0x37, 0x14, 0x1a, 0x2d, 0x3f, 0x63, 0x77, 0x75, 0x64,
+ 0x3f, 0x2f, 0x1a, 0x14, 0x38, 0x02, 0x4b, 0xa2, 0x57, 0x5a, 0x5a, 0x57,
+ 0xa2, 0x20, 0x2a, 0x2a, 0x10, 0x19, 0x1d, 0x12, 0x14, 0x15, 0x14, 0x44,
+ 0x40, 0x40, 0x44, 0x14, 0x15, 0x14, 0x12, 0x1d, 0x2b, 0x38, 0x05, 0x01,
+ 0x28, 0x0f, 0x13, 0x27, 0x3a, 0x54, 0x65, 0x39, 0x35, 0x5e, 0x9d, 0x26,
+ 0x29, 0x28, 0x26, 0x27, 0x27, 0x28, 0xd6, 0x44, 0x41, 0x19, 0x1d, 0x12,
+ 0x14, 0x14, 0x3a, 0x1d, 0x19, 0x41, 0x44, 0x15, 0x14, 0x14, 0x2e, 0x2a,
+ 0x21, 0x9e, 0x59, 0x5b, 0x5b, 0x59, 0x9e, 0x21, 0x00, 0x07, 0x00, 0xea,
+ 0x00, 0x00, 0x05, 0x89, 0x05, 0xd6, 0x00, 0x0b, 0x00, 0x14, 0x00, 0x21,
+ 0x00, 0x2d, 0x00, 0x78, 0x00, 0x86, 0x00, 0x94, 0x00, 0x00, 0x01, 0x14,
+ 0x17, 0x36, 0x37, 0x26, 0x27, 0x36, 0x37, 0x26, 0x27, 0x06, 0x05, 0x34,
+ 0x26, 0x15, 0x06, 0x15, 0x16, 0x17, 0x36, 0x25, 0x06, 0x15, 0x14, 0x17,
+ 0x36, 0x37, 0x2e, 0x01, 0x27, 0x06, 0x15, 0x14, 0x25, 0x34, 0x27, 0x06,
+ 0x07, 0x16, 0x17, 0x06, 0x07, 0x16, 0x17, 0x36, 0x03, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x26, 0x27, 0x36, 0x37, 0x16, 0x17, 0x36, 0x37, 0x26,
+ 0x35, 0x34, 0x3f, 0x01, 0x15, 0x16, 0x15, 0x14, 0x07, 0x1e, 0x01, 0x17,
+ 0x36, 0x37, 0x16, 0x17, 0x06, 0x07, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x06, 0x23, 0x26,
+ 0x27, 0x06, 0x07, 0x06, 0x07, 0x23, 0x26, 0x27, 0x35, 0x26, 0x27, 0x06,
+ 0x07, 0x22, 0x27, 0x36, 0x37, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x06,
+ 0x14, 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x25, 0x32, 0x1e, 0x01, 0x14, 0x0e, 0x01, 0x23, 0x22, 0x2e, 0x01,
+ 0x34, 0x3e, 0x01, 0x03, 0x6d, 0x23, 0x31, 0x28, 0x2e, 0x08, 0x03, 0x2d,
+ 0x21, 0x2a, 0x2b, 0xfe, 0xf9, 0x25, 0x28, 0x07, 0x32, 0x13, 0x01, 0xaf,
+ 0x01, 0x0f, 0x37, 0x03, 0x03, 0x25, 0x01, 0x20, 0xfe, 0xf5, 0x2b, 0x26,
+ 0x27, 0x2e, 0x03, 0x0d, 0x29, 0x2d, 0x2d, 0x23, 0xef, 0x32, 0x1d, 0x0c,
+ 0x09, 0x1c, 0x51, 0x5b, 0x02, 0x02, 0xa4, 0x99, 0x4b, 0x28, 0x2c, 0x23,
+ 0x94, 0x01, 0x94, 0x23, 0x24, 0x2a, 0x04, 0x4d, 0x97, 0xa6, 0x01, 0x02,
+ 0x5c, 0x50, 0x1d, 0x05, 0x0d, 0x1a, 0x38, 0x18, 0x12, 0x33, 0x33, 0x15,
+ 0x1d, 0x1f, 0x2d, 0x01, 0x0c, 0x3b, 0x2d, 0x35, 0x3f, 0x56, 0x16, 0x1d,
+ 0x1d, 0x4f, 0x3c, 0x38, 0x2d, 0x3d, 0x0b, 0x01, 0x2e, 0x1e, 0x1c, 0x15,
+ 0x33, 0x34, 0x12, 0x2f, 0x5e, 0xaa, 0x5d, 0x5d, 0xa9, 0x5f, 0x61, 0xab,
+ 0x59, 0x5b, 0xaa, 0x01, 0x05, 0x4b, 0x8f, 0x52, 0x4f, 0x8f, 0x4e, 0x4e,
+ 0x8f, 0x4f, 0x51, 0x8f, 0x02, 0x84, 0xa3, 0xa7, 0x0f, 0x23, 0x65, 0x8d,
+ 0xaa, 0x6a, 0x1c, 0x0f, 0x70, 0xcd, 0x4d, 0x63, 0x01, 0x4e, 0x54, 0x76,
+ 0x4a, 0x4b, 0x72, 0x1b, 0x19, 0x5a, 0x31, 0x56, 0x6c, 0x4c, 0x57, 0x02,
+ 0x4d, 0x49, 0x09, 0x11, 0xa9, 0x70, 0x0d, 0x1e, 0x6a, 0xaa, 0x85, 0x6b,
+ 0x25, 0x0f, 0xa7, 0x01, 0x6e, 0x41, 0x0d, 0x56, 0x02, 0x02, 0x7b, 0x77,
+ 0x02, 0x06, 0x77, 0x19, 0x11, 0x5b, 0x31, 0x87, 0xf4, 0x01, 0x01, 0xf4,
+ 0x87, 0x31, 0x5b, 0x0d, 0x1a, 0x03, 0x77, 0x06, 0x02, 0x77, 0x7b, 0x02,
+ 0x02, 0x56, 0x0d, 0x40, 0x1e, 0x23, 0x66, 0xdc, 0x64, 0x2d, 0x23, 0x4a,
+ 0x4d, 0x0c, 0x37, 0x42, 0x2f, 0x15, 0x22, 0x89, 0x89, 0x22, 0x01, 0x14,
+ 0x30, 0x43, 0x37, 0x0c, 0x4e, 0x4b, 0x22, 0x2c, 0x64, 0xdc, 0x66, 0x23,
+ 0x88, 0xce, 0xbd, 0x68, 0x68, 0xbd, 0xce, 0xbf, 0x67, 0x67, 0x51, 0x55,
+ 0xa0, 0xae, 0x9d, 0x58, 0x58, 0x9d, 0xae, 0xa0, 0x55, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x06, 0x1b, 0x05, 0xd4, 0x00, 0x07,
+ 0x00, 0x0d, 0x00, 0x15, 0x00, 0x25, 0x00, 0x00, 0x01, 0x33, 0x01, 0x15,
+ 0x21, 0x27, 0x23, 0x00, 0x17, 0x01, 0x15, 0x21, 0x35, 0x00, 0x07, 0x32,
+ 0x15, 0x02, 0x23, 0x22, 0x03, 0x36, 0x13, 0x32, 0x1e, 0x01, 0x15, 0x14,
+ 0x0e, 0x01, 0x23, 0x22, 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01, 0x03, 0x42,
+ 0x07, 0x02, 0xd1, 0xfa, 0x4f, 0x07, 0x08, 0x02, 0xcc, 0x14, 0xfd, 0xab,
+ 0x04, 0xb3, 0xfd, 0xbc, 0x12, 0x46, 0x2f, 0x17, 0x14, 0x31, 0x17, 0x2d,
+ 0x11, 0x22, 0x13, 0x12, 0x23, 0x11, 0x12, 0x20, 0x13, 0x13, 0x20, 0x05,
+ 0xd4, 0xfa, 0x35, 0x09, 0x09, 0x05, 0xaa, 0x9b, 0xfb, 0x4f, 0x11, 0x09,
+ 0x04, 0x9d, 0xc2, 0x44, 0xfd, 0x9b, 0x02, 0x6e, 0x3b, 0xfd, 0x0d, 0x14,
+ 0x24, 0x15, 0x14, 0x24, 0x14, 0x14, 0x24, 0x14, 0x15, 0x24, 0x14, 0x00,
+ 0x00, 0x01, 0x00, 0x99, 0x00, 0x04, 0x04, 0x76, 0x05, 0xd8, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x33, 0x17, 0x15, 0x01, 0x14, 0x33, 0x04, 0x15, 0x17,
+ 0x01, 0x27, 0x35, 0x00, 0x35, 0x34, 0x23, 0x24, 0x2f, 0x01, 0x04, 0x56,
+ 0x0c, 0x13, 0xfd, 0xcd, 0x52, 0x01, 0x5c, 0x06, 0xfc, 0xb0, 0x0d, 0x02,
+ 0x46, 0x6b, 0xfe, 0xb8, 0x0f, 0x06, 0x05, 0xd8, 0x15, 0x07, 0xfd, 0xe2,
+ 0x47, 0x53, 0x0e, 0x47, 0xfd, 0x55, 0x15, 0x07, 0x02, 0x57, 0x0d, 0x47,
+ 0x4a, 0x11, 0x47, 0x00, 0x00, 0x05, 0x00, 0x9d, 0xfe, 0xff, 0x06, 0x9e,
+ 0x05, 0xda, 0x00, 0x1e, 0x00, 0x2a, 0x00, 0x31, 0x00, 0x3d, 0x00, 0x43,
+ 0x00, 0x00, 0x01, 0x26, 0x10, 0x00, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32,
+ 0x00, 0x10, 0x07, 0x06, 0x07, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11,
+ 0x21, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x26, 0x13, 0x22, 0x06,
+ 0x10, 0x16, 0x33, 0x32, 0x37, 0x26, 0x10, 0x37, 0x26, 0x13, 0x06, 0x07,
+ 0x11, 0x21, 0x11, 0x26, 0x37, 0x16, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23,
+ 0x22, 0x07, 0x16, 0x10, 0x05, 0x36, 0x10, 0x27, 0x06, 0x10, 0x01, 0x36,
+ 0x98, 0x01, 0x2e, 0xd7, 0x8a, 0x70, 0x71, 0x8b, 0xd5, 0x01, 0x30, 0x97,
+ 0x7b, 0xa2, 0xf5, 0xf5, 0xa2, 0xfe, 0xac, 0xa2, 0xf5, 0xf5, 0xa3, 0xf4,
+ 0x94, 0xcf, 0xcf, 0x94, 0x39, 0x33, 0x7c, 0x7d, 0x33, 0xc1, 0x4f, 0x5b,
+ 0x01, 0x54, 0x5c, 0x41, 0x33, 0x39, 0x90, 0xd3, 0xd3, 0x90, 0x3a, 0x35,
+ 0x7e, 0xfe, 0xf5, 0x69, 0x69, 0x68, 0x02, 0x14, 0x9d, 0x01, 0xdd, 0x01,
+ 0x4c, 0x46, 0x46, 0xfe, 0xb4, 0xfe, 0x22, 0x9c, 0x7e, 0x12, 0xfe, 0xf8,
+ 0x7c, 0xfe, 0xff, 0x01, 0x01, 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x01, 0x09,
+ 0x11, 0x03, 0x91, 0xe4, 0xfe, 0xb9, 0xd8, 0x11, 0x95, 0x01, 0xae, 0x9d,
+ 0x12, 0xfc, 0x94, 0x2d, 0x0a, 0xfe, 0xf8, 0x01, 0x09, 0x0a, 0xa5, 0x10,
+ 0xd8, 0x01, 0x47, 0xe4, 0x12, 0x9d, 0xfe, 0x50, 0x38, 0x6c, 0x01, 0x47,
+ 0x72, 0x72, 0xfe, 0xb9, 0x00, 0x05, 0x00, 0x91, 0xfe, 0x5b, 0x07, 0x5f,
+ 0x05, 0xc3, 0x00, 0x0b, 0x00, 0x24, 0x00, 0x2c, 0x00, 0x38, 0x00, 0x3e,
+ 0x00, 0x00, 0x01, 0x26, 0x20, 0x06, 0x10, 0x17, 0x16, 0x17, 0x36, 0x00,
+ 0x37, 0x26, 0x01, 0x14, 0x00, 0x20, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x10, 0x00, 0x04, 0x17, 0x01, 0x21, 0x37, 0x21, 0x11, 0x21, 0x11, 0x07,
+ 0x11, 0x01, 0x16, 0x03, 0x01, 0x16, 0x17, 0x16, 0x17, 0x01, 0x23, 0x03,
+ 0x06, 0x00, 0x07, 0x16, 0x17, 0x16, 0x20, 0x36, 0x10, 0x27, 0x26, 0x01,
+ 0x32, 0x36, 0x35, 0x22, 0x06, 0x03, 0x92, 0x6a, 0xfe, 0xdc, 0xd0, 0x68,
+ 0x2a, 0x31, 0x0f, 0x01, 0x17, 0xb8, 0x19, 0x02, 0x44, 0xfe, 0xd6, 0xfe,
+ 0x51, 0x99, 0x69, 0x20, 0x79, 0x61, 0x99, 0x01, 0x36, 0x01, 0x9d, 0x64,
+ 0x01, 0x45, 0xfe, 0xb2, 0x7e, 0x01, 0xbd, 0x01, 0x63, 0x80, 0xfe, 0xbe,
+ 0x64, 0x86, 0xfe, 0xbe, 0x3a, 0x18, 0x66, 0x3d, 0x01, 0x45, 0xf8, 0xde,
+ 0x0d, 0xfe, 0xef, 0xc8, 0x1a, 0x2f, 0x68, 0x01, 0x25, 0xd2, 0x69, 0x29,
+ 0xfd, 0xcb, 0x91, 0xd3, 0x94, 0xcc, 0x03, 0x24, 0x72, 0xe4, 0xfe, 0xb8,
+ 0x6c, 0x2c, 0x1a, 0xce, 0x01, 0x33, 0x07, 0x36, 0xfd, 0x90, 0xe8, 0xfe,
+ 0xbd, 0x9f, 0x6c, 0x92, 0x25, 0x65, 0x9e, 0x01, 0xdc, 0x01, 0x55, 0x11,
+ 0x67, 0x01, 0x5c, 0x8e, 0xfe, 0x78, 0xfe, 0x14, 0x8f, 0x01, 0x75, 0xfe,
+ 0xa4, 0x92, 0x03, 0x76, 0xfe, 0xa4, 0x53, 0x63, 0x1b, 0x3f, 0x01, 0x5c,
+ 0xfe, 0x37, 0xcc, 0xfe, 0xd7, 0x0b, 0x3d, 0x31, 0x6c, 0xd8, 0x01, 0x48,
+ 0x72, 0x2d, 0xfe, 0xc9, 0xd8, 0xa4, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x9d,
+ 0xfe, 0x83, 0x07, 0xfc, 0x06, 0xd9, 0x00, 0x05, 0x00, 0x2d, 0x00, 0x39,
+ 0x00, 0x45, 0x00, 0x00, 0x00, 0x02, 0x17, 0x36, 0x10, 0x27, 0x01, 0x14,
+ 0x00, 0x23, 0x22, 0x27, 0x06, 0x07, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23,
+ 0x11, 0x23, 0x35, 0x33, 0x11, 0x26, 0x27, 0x26, 0x10, 0x00, 0x33, 0x32,
+ 0x17, 0x36, 0x17, 0x16, 0x17, 0x01, 0x21, 0x37, 0x21, 0x11, 0x07, 0x11,
+ 0x01, 0x16, 0x25, 0x22, 0x06, 0x10, 0x16, 0x33, 0x32, 0x37, 0x26, 0x10,
+ 0x37, 0x26, 0x01, 0x16, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23, 0x22, 0x07,
+ 0x16, 0x10, 0x03, 0x37, 0x01, 0x67, 0x69, 0x69, 0x03, 0x02, 0xfe, 0xd4,
+ 0xdb, 0x8a, 0x72, 0x4e, 0x5a, 0xf5, 0xf5, 0xa2, 0xf5, 0xf5, 0xa3, 0x79,
+ 0x98, 0x01, 0x2e, 0xd7, 0x88, 0x6f, 0x74, 0x8a, 0xce, 0x64, 0x01, 0x46,
+ 0xfe, 0xb1, 0x7e, 0x01, 0xbd, 0x80, 0xfe, 0xbe, 0x65, 0xfc, 0x04, 0x94,
+ 0xcf, 0xcf, 0x94, 0x39, 0x33, 0x7b, 0x7d, 0x34, 0x01, 0x50, 0x33, 0x38,
+ 0x92, 0xd3, 0xd3, 0x92, 0x3a, 0x34, 0x7e, 0x03, 0xc8, 0xfe, 0xb8, 0x6c,
+ 0x6c, 0x01, 0x47, 0x72, 0xfe, 0xeb, 0xe7, 0xfe, 0xbc, 0x45, 0x2c, 0x0a,
+ 0xfe, 0xf8, 0x7c, 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x01, 0x09, 0x11, 0x7e,
+ 0x9d, 0x01, 0xdd, 0x01, 0x4c, 0x44, 0x4a, 0x06, 0x08, 0x67, 0x01, 0x5c,
+ 0x8e, 0xfe, 0x14, 0x8f, 0x01, 0x75, 0xfe, 0xa4, 0x92, 0xc6, 0xe4, 0xfe,
+ 0xb9, 0xd8, 0x11, 0x95, 0x01, 0xac, 0x9f, 0x12, 0xfd, 0x0d, 0x10, 0xd8,
+ 0x01, 0x48, 0xe4, 0x12, 0x9d, 0xfe, 0x4f, 0x00, 0x00, 0x02, 0x00, 0x9d,
+ 0xfe, 0xff, 0x06, 0x07, 0x07, 0x55, 0x00, 0x07, 0x00, 0x28, 0x00, 0x00,
+ 0x00, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20, 0x36, 0x05, 0x26, 0x10, 0x00,
+ 0x33, 0x32, 0x17, 0x01, 0x21, 0x37, 0x21, 0x11, 0x07, 0x11, 0x01, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x35, 0x33, 0x11, 0x26, 0x04, 0x06, 0xd2, 0xfe, 0xdb, 0xcf, 0xcf,
+ 0x01, 0x25, 0xd2, 0xfd, 0x30, 0x98, 0x01, 0x2e, 0xd7, 0xad, 0x86, 0x01,
+ 0x44, 0xfe, 0xb2, 0x7e, 0x01, 0xbd, 0x81, 0xfe, 0xbe, 0x64, 0x98, 0x7a,
+ 0xa2, 0xf5, 0xf5, 0xa2, 0xf5, 0xf5, 0xa3, 0x04, 0x43, 0xe4, 0xe4, 0xfe,
+ 0xb9, 0xd8, 0xd8, 0xe8, 0x9d, 0x01, 0xdd, 0x01, 0x4c, 0x6e, 0x01, 0x5b,
+ 0x8e, 0xfe, 0x14, 0x8f, 0x01, 0x75, 0xfe, 0xa4, 0x92, 0xc2, 0xef, 0x9c,
+ 0x7e, 0x12, 0xfe, 0xf8, 0x7c, 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x01, 0x09,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf2, 0xff, 0xe3, 0x05, 0x3c,
+ 0x06, 0xf4, 0x00, 0x2b, 0x00, 0x44, 0x00, 0x00, 0x01, 0x07, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x37, 0x27, 0x37, 0x17, 0x13, 0x07, 0x27, 0x25, 0x13, 0x07,
+ 0x27, 0x03, 0x17, 0x07, 0x01, 0x16, 0x32, 0x37, 0x3e, 0x01, 0x37, 0x36,
+ 0x34, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x22, 0x07, 0x0e, 0x01, 0x07, 0x06,
+ 0x14, 0x17, 0x16, 0x17, 0x16, 0x03, 0xbe, 0x3f, 0x2d, 0x1f, 0x3d, 0x1f,
+ 0x22, 0x21, 0x20, 0x70, 0x58, 0x4e, 0x56, 0x51, 0x51, 0x55, 0x35, 0x3d,
+ 0x1f, 0x22, 0x22, 0x21, 0x76, 0x51, 0x50, 0x53, 0x35, 0x2e, 0x3f, 0xe4,
+ 0x33, 0xe5, 0x78, 0xca, 0x34, 0x01, 0x9f, 0xad, 0x7d, 0x54, 0x78, 0xe4,
+ 0x34, 0xfd, 0x8c, 0x37, 0x71, 0x37, 0x36, 0x51, 0x18, 0x16, 0x16, 0x15,
+ 0x2a, 0x26, 0x72, 0x6d, 0x39, 0x36, 0x50, 0x19, 0x16, 0x16, 0x15, 0x2a,
+ 0x24, 0x04, 0x00, 0xaa, 0x21, 0x24, 0x48, 0x53, 0x5c, 0xb4, 0x5b, 0x56,
+ 0x83, 0x2a, 0x25, 0x25, 0x27, 0x3e, 0x48, 0x53, 0x5d, 0xb3, 0x5e, 0x58,
+ 0x82, 0x26, 0x25, 0x0c, 0xab, 0x69, 0x8a, 0x69, 0x01, 0x44, 0x5e, 0x8b,
+ 0xbf, 0xfe, 0x32, 0x39, 0xe1, 0xfe, 0xbd, 0x69, 0x8b, 0xfc, 0xfc, 0x1a,
+ 0x19, 0x19, 0x5c, 0x3d, 0x3c, 0x80, 0x3c, 0x39, 0x32, 0x2d, 0x31, 0x19,
+ 0x19, 0x58, 0x3f, 0x3a, 0x84, 0x3c, 0x39, 0x31, 0x2a, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xba, 0xfe, 0xa3, 0x05, 0x57, 0x07, 0x12, 0x00, 0x3d,
+ 0x00, 0x58, 0x00, 0x00, 0x01, 0x36, 0x32, 0x17, 0x13, 0x07, 0x27, 0x25,
+ 0x13, 0x07, 0x27, 0x03, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x15, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x23,
+ 0x35, 0x33, 0x35, 0x26, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x37, 0x36, 0x37, 0x27, 0x07, 0x27, 0x37, 0x27, 0x07, 0x27, 0x13, 0x05,
+ 0x07, 0x27, 0x17, 0x37, 0x17, 0x07, 0x17, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x02, 0xa3, 0x2f,
+ 0x65, 0x30, 0xa1, 0xcb, 0x33, 0x01, 0x9f, 0xad, 0x7e, 0x54, 0xa1, 0x2a,
+ 0x24, 0x3e, 0x40, 0x40, 0x3e, 0x3a, 0x51, 0x28, 0x36, 0xf7, 0xf7, 0x87,
+ 0xf8, 0xf8, 0x33, 0x2c, 0x4d, 0x3d, 0x3e, 0x40, 0x3f, 0x3f, 0x23, 0x2c,
+ 0x1c, 0xe5, 0x33, 0xe5, 0x4c, 0x54, 0x7e, 0xad, 0x01, 0xa0, 0x33, 0xcc,
+ 0x4c, 0xe4, 0x35, 0xe5, 0x7c, 0x40, 0x2f, 0x38, 0x27, 0x29, 0x2c, 0x2c,
+ 0x29, 0x2a, 0x35, 0x33, 0x7c, 0x30, 0x38, 0x26, 0x2a, 0x2c, 0x2c, 0x2a,
+ 0x2a, 0x34, 0x34, 0x04, 0x87, 0x0c, 0x0c, 0x01, 0x9e, 0x5c, 0x8a, 0xbf,
+ 0xfe, 0x32, 0x3a, 0xe2, 0xfe, 0x61, 0x1d, 0x28, 0x45, 0xab, 0x62, 0x5f,
+ 0xab, 0x45, 0x40, 0x28, 0x14, 0x0a, 0xb8, 0x96, 0xf0, 0xf0, 0x96, 0xb8,
+ 0x09, 0x15, 0x25, 0x43, 0x45, 0xab, 0x5f, 0x62, 0xa9, 0x47, 0x28, 0x1e,
+ 0x48, 0x69, 0x8a, 0x6a, 0xcb, 0xe2, 0x3a, 0x01, 0xce, 0xbf, 0x8a, 0x5c,
+ 0xcb, 0x69, 0x8a, 0x6a, 0xd3, 0x18, 0x1c, 0x2b, 0x2e, 0x77, 0x42, 0x41,
+ 0x77, 0x2e, 0x2f, 0x18, 0x18, 0x18, 0x1c, 0x2b, 0x2e, 0x77, 0x41, 0x42,
+ 0x77, 0x2e, 0x2f, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x59,
+ 0xff, 0xe3, 0x04, 0xaf, 0x06, 0xf4, 0x00, 0x2b, 0x00, 0x46, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x15, 0x23, 0x15, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x35, 0x23,
+ 0x35, 0x33, 0x11, 0x07, 0x27, 0x09, 0x01, 0x07, 0x03, 0x32, 0x37, 0x36,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07,
+ 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x03,
+ 0x48, 0xf7, 0xf7, 0x36, 0x28, 0x51, 0x3a, 0x3e, 0x40, 0x40, 0x3e, 0x3d,
+ 0x4e, 0x4a, 0x58, 0x5c, 0x46, 0x51, 0x39, 0x3e, 0x40, 0x40, 0x3e, 0x3d,
+ 0x4d, 0x2c, 0x33, 0xf8, 0xf8, 0x9b, 0x60, 0x01, 0x3e, 0x01, 0x3f, 0x60,
+ 0xdf, 0x3c, 0x34, 0x34, 0x2a, 0x2a, 0x2c, 0x2c, 0x2a, 0x26, 0x38, 0x30,
+ 0x7c, 0x33, 0x35, 0x2a, 0x29, 0x2c, 0x2c, 0x29, 0x27, 0x38, 0x2f, 0x05,
+ 0xd5, 0xfe, 0xe7, 0x96, 0x91, 0x0a, 0x14, 0x28, 0x40, 0x45, 0xab, 0x5f,
+ 0x62, 0xab, 0x45, 0x43, 0x25, 0x23, 0x23, 0x28, 0x40, 0x45, 0xab, 0x62,
+ 0x5f, 0xab, 0x45, 0x43, 0x25, 0x15, 0x09, 0x91, 0x96, 0x01, 0x19, 0xad,
+ 0x6b, 0x01, 0x61, 0xfe, 0x9f, 0x6a, 0xfb, 0x50, 0x18, 0x18, 0x2f, 0x2e,
+ 0x77, 0x42, 0x41, 0x77, 0x2e, 0x2b, 0x1c, 0x18, 0x18, 0x18, 0x2f, 0x2e,
+ 0x77, 0x41, 0x42, 0x77, 0x2e, 0x2b, 0x1c, 0x18, 0x00, 0x02, 0x00, 0x08,
+ 0x01, 0x10, 0x05, 0xf8, 0x04, 0xc4, 0x00, 0x2b, 0x00, 0x46, 0x00, 0x00,
+ 0x01, 0x23, 0x11, 0x23, 0x11, 0x23, 0x06, 0x07, 0x06, 0x07, 0x0e, 0x01,
+ 0x23, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x27, 0x37, 0x09, 0x01, 0x27, 0x25, 0x14, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27,
+ 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x06, 0x07, 0x06, 0x04,
+ 0xf5, 0xc6, 0x87, 0x4c, 0x0a, 0x12, 0x24, 0x39, 0x3e, 0x9a, 0x56, 0x58,
+ 0x9a, 0x3e, 0x3c, 0x21, 0x20, 0x20, 0x24, 0x39, 0x3e, 0x9a, 0x58, 0x56,
+ 0x9a, 0x3e, 0x3c, 0x21, 0x13, 0x09, 0x4c, 0x87, 0xc6, 0x9c, 0x61, 0x01,
+ 0x3d, 0xfe, 0xc3, 0x60, 0xfc, 0x35, 0x16, 0x15, 0x2b, 0x29, 0x6b, 0x3b,
+ 0x3b, 0x6b, 0x2a, 0x26, 0x19, 0x16, 0x16, 0x15, 0x2a, 0x2a, 0x6b, 0x3b,
+ 0x3b, 0x6b, 0x29, 0x27, 0x19, 0x16, 0x02, 0x9f, 0xfe, 0xed, 0x01, 0x13,
+ 0x3c, 0x2d, 0x5a, 0x40, 0x45, 0x47, 0x47, 0x45, 0x44, 0x56, 0x52, 0x62,
+ 0x66, 0x4e, 0x5a, 0x40, 0x45, 0x47, 0x47, 0x45, 0x44, 0x56, 0x31, 0x38,
+ 0x01, 0x13, 0xfe, 0xed, 0xac, 0x6b, 0xfe, 0x9e, 0xfe, 0x9e, 0x6a, 0xf8,
+ 0x43, 0x39, 0x3a, 0x2f, 0x2e, 0x31, 0x31, 0x2e, 0x2b, 0x3e, 0x35, 0x8a,
+ 0x39, 0x3a, 0x2f, 0x2e, 0x31, 0x31, 0x2e, 0x2b, 0x3e, 0x35, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x58, 0x01, 0x10, 0x04, 0xb0, 0x04, 0xc5, 0x00, 0x0b,
+ 0x00, 0x17, 0x00, 0x00, 0x01, 0x34, 0x12, 0x33, 0x32, 0x12, 0x15, 0x14,
+ 0x02, 0x23, 0x22, 0x02, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x01, 0x59, 0xfb, 0xb0, 0xb1, 0xfb, 0xfb, 0xb1,
+ 0xb0, 0xfb, 0x89, 0xaa, 0x78, 0x78, 0xaa, 0xaa, 0x78, 0x78, 0xaa, 0x02,
+ 0xeb, 0xc4, 0x01, 0x16, 0xfe, 0xea, 0xc4, 0xc5, 0xfe, 0xea, 0x01, 0x16,
+ 0xc2, 0x85, 0xbd, 0xbd, 0x85, 0x86, 0xbd, 0xbd, 0x00, 0x01, 0x01, 0x58,
+ 0x01, 0x10, 0x04, 0xb0, 0x04, 0xc5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x34,
+ 0x12, 0x33, 0x32, 0x12, 0x15, 0x14, 0x02, 0x23, 0x22, 0x02, 0x01, 0x59,
+ 0xfb, 0xb0, 0xb1, 0xfb, 0xfb, 0xb1, 0xb0, 0xfb, 0x02, 0xeb, 0xc4, 0x01,
+ 0x16, 0xfe, 0xea, 0xc4, 0xc5, 0xfe, 0xea, 0x01, 0x16, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0xc7, 0x01, 0x8d, 0x04, 0x41, 0x04, 0x4b, 0x00, 0x0b,
+ 0x00, 0x17, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x01, 0xc7, 0xbb, 0x82, 0x83, 0xba, 0xba, 0x83,
+ 0x82, 0xbb, 0x89, 0x6a, 0x4a, 0x4b, 0x69, 0x69, 0x4b, 0x4a, 0x6a, 0x02,
+ 0xec, 0x92, 0xcd, 0xcd, 0x92, 0x91, 0xce, 0xce, 0x90, 0x53, 0x75, 0x75,
+ 0x53, 0x53, 0x76, 0x76, 0x00, 0x04, 0x01, 0x40, 0x01, 0x8d, 0x04, 0xc8,
+ 0x04, 0x4b, 0x00, 0x13, 0x00, 0x21, 0x00, 0x29, 0x00, 0x37, 0x00, 0x00,
+ 0x01, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x26, 0x37, 0x14, 0x16, 0x33,
+ 0x32, 0x33, 0x26, 0x35, 0x34, 0x37, 0x26, 0x23, 0x22, 0x06, 0x25, 0x06,
+ 0x15, 0x14, 0x17, 0x36, 0x35, 0x34, 0x37, 0x16, 0x15, 0x14, 0x07, 0x32,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x01, 0x40, 0xbb, 0x82,
+ 0x4a, 0x3d, 0x3d, 0x4a, 0x83, 0xba, 0xba, 0x83, 0x4a, 0x3d, 0x3d, 0x4a,
+ 0x82, 0xbb, 0x89, 0x69, 0x4b, 0x06, 0x04, 0x39, 0x38, 0x04, 0x05, 0x4b,
+ 0x69, 0x01, 0x3b, 0x2d, 0x2d, 0x2d, 0x51, 0x38, 0x39, 0x05, 0x05, 0x4b,
+ 0x69, 0x69, 0x4b, 0x04, 0x02, 0xec, 0x92, 0xcd, 0x20, 0x20, 0xcd, 0x92,
+ 0x91, 0xce, 0x21, 0x21, 0xce, 0x90, 0x53, 0x75, 0x58, 0x71, 0x70, 0x57,
+ 0x01, 0x76, 0x32, 0x38, 0x4d, 0x4c, 0x38, 0x38, 0x4c, 0x4d, 0x7b, 0x57,
+ 0x70, 0x71, 0x58, 0x75, 0x53, 0x53, 0x76, 0x00, 0x00, 0x05, 0x00, 0x4b,
+ 0x01, 0x5a, 0x05, 0xbd, 0x04, 0x7a, 0x00, 0x03, 0x00, 0x1d, 0x00, 0x38,
+ 0x00, 0x52, 0x00, 0x6d, 0x00, 0x00, 0x01, 0x33, 0x11, 0x23, 0x00, 0x22,
+ 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x2f,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x04, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35,
+ 0x34, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x02, 0xc1, 0x87, 0x87,
+ 0x01, 0xe7, 0x4a, 0x20, 0x25, 0x15, 0x1a, 0x1b, 0x1c, 0x19, 0x1a, 0x20,
+ 0x20, 0x4a, 0x1f, 0x21, 0x1a, 0x1a, 0x1b, 0x1d, 0x18, 0x1a, 0x21, 0x44,
+ 0x43, 0x34, 0x3d, 0x29, 0x2d, 0x30, 0x30, 0x2d, 0x2c, 0x3a, 0x36, 0x85,
+ 0x34, 0x3c, 0x2a, 0x2d, 0x2f, 0x2f, 0x2d, 0x2c, 0x3a, 0x37, 0xfd, 0x69,
+ 0x4a, 0x20, 0x25, 0x15, 0x1a, 0x1b, 0x1c, 0x19, 0x1a, 0x20, 0x20, 0x4a,
+ 0x1f, 0x20, 0x1b, 0x1a, 0x1b, 0x1d, 0x18, 0x1b, 0x20, 0x44, 0x43, 0x34,
+ 0x3d, 0x29, 0x2d, 0x30, 0x30, 0x2d, 0x2c, 0x3a, 0x37, 0x84, 0x34, 0x3c,
+ 0x2a, 0x2d, 0x2f, 0x2f, 0x2d, 0x2c, 0x3a, 0x37, 0x04, 0x7a, 0xfc, 0xe0,
+ 0x02, 0x5a, 0x0f, 0x12, 0x1a, 0x1f, 0x46, 0x29, 0x28, 0x4a, 0x1b, 0x1c,
+ 0x10, 0x0f, 0x0f, 0x10, 0x1c, 0x1e, 0x47, 0x28, 0x29, 0x4b, 0x1a, 0x1c,
+ 0x10, 0xa5, 0x1a, 0x1e, 0x2e, 0x32, 0x7f, 0x49, 0x46, 0x7f, 0x32, 0x31,
+ 0x1b, 0x1a, 0x1a, 0x1e, 0x2e, 0x32, 0x7f, 0x46, 0x49, 0x7f, 0x32, 0x31,
+ 0x1b, 0x1a, 0x96, 0x0f, 0x12, 0x1a, 0x1f, 0x46, 0x29, 0x28, 0x4a, 0x1b,
+ 0x1c, 0x10, 0x0f, 0x0f, 0x10, 0x1c, 0x1e, 0x47, 0x28, 0x29, 0x4b, 0x1a,
+ 0x1c, 0x10, 0xa5, 0x1a, 0x1e, 0x2e, 0x32, 0x7f, 0x49, 0x46, 0x7f, 0x32,
+ 0x31, 0x1b, 0x1a, 0x1a, 0x1e, 0x2e, 0x32, 0x7f, 0x46, 0x49, 0x7f, 0x32,
+ 0x31, 0x1b, 0x1a, 0x00, 0x00, 0x03, 0x00, 0x09, 0x01, 0x8d, 0x06, 0x00,
+ 0x04, 0x4a, 0x00, 0x37, 0x00, 0x51, 0x00, 0x6b, 0x00, 0x00, 0x01, 0x3e,
+ 0x01, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x27, 0x21, 0x0e, 0x01, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x17, 0x24, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x24, 0x22, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37,
+ 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x03, 0x92,
+ 0x06, 0x1f, 0x31, 0x2c, 0x3a, 0x36, 0x41, 0x44, 0x34, 0x3c, 0x2a, 0x2d,
+ 0x2f, 0x2f, 0x2d, 0x2c, 0x3a, 0x37, 0x84, 0x34, 0x3d, 0x29, 0x30, 0x21,
+ 0x05, 0xfe, 0xe4, 0x05, 0x23, 0x2e, 0x2c, 0x39, 0x37, 0x84, 0x35, 0x3c,
+ 0x29, 0x2d, 0x30, 0x30, 0x2d, 0x2c, 0x39, 0x37, 0x41, 0x44, 0x34, 0x3c,
+ 0x29, 0x31, 0x20, 0x06, 0x02, 0x73, 0x4a, 0x1f, 0x21, 0x1a, 0x1a, 0x1b,
+ 0x1b, 0x1a, 0x1a, 0x21, 0x1f, 0x4a, 0x20, 0x20, 0x1a, 0x1a, 0x1b, 0x1b,
+ 0x1a, 0x1a, 0x20, 0xfc, 0x5e, 0x4a, 0x1f, 0x25, 0x16, 0x1a, 0x1b, 0x1c,
+ 0x19, 0x1a, 0x21, 0x1f, 0x4a, 0x20, 0x20, 0x1a, 0x1a, 0x1b, 0x1d, 0x18,
+ 0x1a, 0x20, 0x03, 0x35, 0x1f, 0x5b, 0x35, 0x31, 0x1b, 0x1a, 0x1a, 0x1e,
+ 0x2e, 0x32, 0x7f, 0x49, 0x46, 0x7f, 0x32, 0x31, 0x1b, 0x1a, 0x1a, 0x1e,
+ 0x2e, 0x34, 0x60, 0x18, 0x1d, 0x5d, 0x32, 0x31, 0x1b, 0x1a, 0x1a, 0x1e,
+ 0x2e, 0x32, 0x7f, 0x46, 0x49, 0x7f, 0x32, 0x31, 0x1b, 0x1a, 0x1a, 0x1e,
+ 0x2e, 0x35, 0x5b, 0x1f, 0x7f, 0x0f, 0x10, 0x1c, 0x1f, 0x46, 0x29, 0x28,
+ 0x47, 0x1e, 0x1c, 0x10, 0x0f, 0x0f, 0x10, 0x1c, 0x1e, 0x47, 0x28, 0x29,
+ 0x46, 0x1f, 0x1c, 0x10, 0x0f, 0x0f, 0x12, 0x1a, 0x1f, 0x46, 0x29, 0x28,
+ 0x4a, 0x1b, 0x1c, 0x10, 0x0f, 0x0f, 0x10, 0x1c, 0x1e, 0x47, 0x28, 0x29,
+ 0x4b, 0x1a, 0x1c, 0x10, 0x00, 0x02, 0x00, 0xbd, 0x01, 0xe6, 0x05, 0x73,
+ 0x04, 0x52, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x35, 0x25, 0x07,
+ 0x15, 0x17, 0x01, 0x25, 0x05, 0x11, 0x05, 0x25, 0x04, 0xec, 0xfd, 0x1e,
+ 0xc6, 0xc6, 0xfe, 0xb3, 0x01, 0x4d, 0x03, 0x69, 0xfc, 0x97, 0xfe, 0xb3,
+ 0x02, 0xd7, 0x8a, 0x65, 0x4d, 0xba, 0x4d, 0x01, 0x5e, 0x82, 0x78, 0xfe,
+ 0x84, 0x78, 0x82, 0x00, 0x00, 0x02, 0x01, 0x85, 0x00, 0x56, 0x04, 0x83,
+ 0x05, 0x96, 0x00, 0x15, 0x00, 0x29, 0x00, 0x00, 0x01, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x35, 0x37, 0x35, 0x23, 0x15, 0x17, 0x15, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x1f, 0x02, 0x23, 0x03, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x27, 0x35, 0x21, 0x15, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x03, 0x1b, 0x55, 0x6a, 0x49, 0x21, 0x46, 0x34, 0xb4, 0x34, 0x46,
+ 0x20, 0x4a, 0x6a, 0x56, 0x92, 0xf8, 0x94, 0x6e, 0x57, 0x4c, 0x27, 0x4f,
+ 0x02, 0x06, 0x4f, 0x28, 0x4b, 0x58, 0x6f, 0x01, 0x11, 0xb4, 0xdf, 0x34,
+ 0x62, 0x5c, 0x29, 0x31, 0xa2, 0x25, 0x3d, 0x3d, 0x25, 0xa2, 0x31, 0x29,
+ 0x5c, 0x62, 0x34, 0xdf, 0xb4, 0xbb, 0x01, 0x3a, 0xea, 0x60, 0xbe, 0x5c,
+ 0x4b, 0x19, 0x44, 0xfa, 0xfa, 0x44, 0x19, 0x4b, 0x5c, 0xbe, 0x60, 0xea,
+ 0x00, 0x02, 0x00, 0x9d, 0xfe, 0xff, 0x04, 0xa9, 0x05, 0xda, 0x00, 0x07,
+ 0x00, 0x15, 0x00, 0x00, 0x00, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20, 0x36,
+ 0x05, 0x26, 0x10, 0x00, 0x20, 0x00, 0x10, 0x07, 0x06, 0x07, 0x11, 0x23,
+ 0x11, 0x26, 0x04, 0x06, 0xd2, 0xfe, 0xdb, 0xcf, 0xcf, 0x01, 0x25, 0xd2,
+ 0xfd, 0x30, 0x98, 0x01, 0x2e, 0x01, 0xab, 0x01, 0x31, 0x98, 0x7a, 0xa2,
+ 0xa2, 0xa3, 0x04, 0x43, 0xe4, 0xe4, 0xfe, 0xb9, 0xd8, 0xd8, 0xe8, 0x9d,
+ 0x01, 0xdd, 0x01, 0x4c, 0xfe, 0xb4, 0xfe, 0x22, 0x9c, 0x7e, 0x12, 0xfd,
+ 0x7b, 0x02, 0x86, 0x11, 0x00, 0x01, 0x01, 0x36, 0xfe, 0xff, 0x04, 0xa8,
+ 0x05, 0xda, 0x00, 0x1a, 0x00, 0x00, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x11, 0x16, 0x33, 0x32, 0x36, 0x10, 0x26, 0x20, 0x07, 0x27, 0x36,
+ 0x20, 0x00, 0x10, 0x07, 0x06, 0x07, 0x11, 0x33, 0x15, 0x02, 0xf5, 0xa3,
+ 0xf5, 0xf5, 0x24, 0x2f, 0x91, 0xd0, 0xd0, 0xfe, 0xdb, 0x71, 0x6a, 0x98,
+ 0x01, 0xab, 0x01, 0x2f, 0x97, 0x7b, 0xa1, 0xf4, 0xfe, 0xff, 0x01, 0x01,
+ 0x7c, 0x01, 0xb2, 0x07, 0xd8, 0x01, 0x47, 0xe4, 0x6a, 0x74, 0xa6, 0xfe,
+ 0xb4, 0xfe, 0x20, 0x9a, 0x7e, 0x12, 0xfe, 0xf8, 0x7c, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9e, 0xfe, 0xff, 0x04, 0xa8, 0x05, 0xda, 0x00, 0x13,
+ 0x00, 0x17, 0x00, 0x00, 0x13, 0x09, 0x02, 0x11, 0x32, 0x33, 0x15, 0x22,
+ 0x23, 0x11, 0x22, 0x23, 0x11, 0x22, 0x23, 0x35, 0x32, 0x33, 0x11, 0x37,
+ 0x09, 0x02, 0x9e, 0x02, 0x05, 0x02, 0x05, 0xfe, 0x50, 0x7a, 0x7a, 0x7a,
+ 0x7a, 0x51, 0x51, 0x7b, 0x7a, 0x7a, 0x7b, 0x4d, 0x01, 0x2b, 0xfe, 0xd5,
+ 0xfe, 0xd5, 0x03, 0x9f, 0x02, 0x3b, 0xfd, 0xc5, 0xfd, 0xe9, 0xfe, 0xf4,
+ 0x7c, 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x01, 0x0c, 0xa8, 0x01, 0x6f, 0x01,
+ 0x4a, 0xfe, 0xb6, 0x00, 0x00, 0x01, 0x00, 0x9e, 0xfe, 0xff, 0x04, 0xa8,
+ 0x05, 0xda, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x37, 0x17, 0x11, 0x33, 0x11,
+ 0x37, 0x17, 0x01, 0x21, 0x15, 0x21, 0x13, 0x07, 0x27, 0x11, 0x33, 0x15,
+ 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x07, 0x27, 0x13, 0x21,
+ 0x35, 0x21, 0x01, 0x00, 0x6f, 0xe4, 0xa1, 0xe3, 0x6f, 0xff, 0x00, 0x01,
+ 0x62, 0xfe, 0xa4, 0xfa, 0x6e, 0xe4, 0xf5, 0xf5, 0xa2, 0xf5, 0xf5, 0xe4,
+ 0x6e, 0xfa, 0xfe, 0xa4, 0x01, 0x62, 0x04, 0xf9, 0x7a, 0xfd, 0x01, 0x64,
+ 0xfe, 0x9d, 0xfc, 0x7a, 0xfe, 0xe4, 0x7c, 0xfe, 0xeb, 0x7b, 0xfd, 0xfd,
+ 0xae, 0x7c, 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x02, 0x52, 0xfd, 0x7b, 0x01,
+ 0x15, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6c, 0xff, 0x0f, 0x05, 0xb2,
+ 0x05, 0x25, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x17, 0x00, 0x00, 0x01, 0x15,
+ 0x21, 0x09, 0x01, 0x21, 0x35, 0x21, 0x09, 0x01, 0x03, 0x11, 0x23, 0x11,
+ 0x01, 0x33, 0x17, 0x37, 0x33, 0x15, 0x23, 0x09, 0x01, 0x23, 0x05, 0xb2,
+ 0xfe, 0xf1, 0xfe, 0x6c, 0xfe, 0x6c, 0xfe, 0xf1, 0x01, 0x78, 0x01, 0x2b,
+ 0x01, 0x2b, 0xd9, 0x9b, 0xfe, 0x9e, 0xea, 0xc1, 0xc1, 0xea, 0x80, 0xfe,
+ 0xd5, 0xfe, 0xd5, 0x80, 0x01, 0x4a, 0x7c, 0xfe, 0x41, 0x01, 0xbf, 0x7c,
+ 0xfe, 0xb6, 0x01, 0x4a, 0x03, 0xdb, 0xfd, 0xa6, 0x02, 0x5a, 0xfd, 0x74,
+ 0xd5, 0xd5, 0x7c, 0xfe, 0xb6, 0x01, 0x4a, 0x00, 0x00, 0x02, 0x01, 0x66,
+ 0xff, 0x2c, 0x04, 0x49, 0x05, 0xaf, 0x00, 0x07, 0x00, 0x1c, 0x00, 0x00,
+ 0x24, 0x14, 0x16, 0x32, 0x36, 0x34, 0x26, 0x22, 0x02, 0x26, 0x10, 0x37,
+ 0x36, 0x37, 0x11, 0x33, 0x11, 0x25, 0x17, 0x0d, 0x01, 0x07, 0x25, 0x11,
+ 0x16, 0x17, 0x16, 0x10, 0x06, 0x01, 0xef, 0x69, 0x96, 0x69, 0x69, 0x96,
+ 0x38, 0xba, 0x5e, 0x41, 0x53, 0x9b, 0x01, 0x08, 0x4d, 0xfe, 0xbd, 0x01,
+ 0x43, 0x4d, 0xfe, 0xf8, 0x50, 0x3f, 0x5e, 0xba, 0xdd, 0xa6, 0x75, 0x75,
+ 0xa6, 0x76, 0xfd, 0xd9, 0xce, 0x01, 0x23, 0x67, 0x47, 0x16, 0x03, 0xce,
+ 0xfe, 0xce, 0xad, 0x94, 0xd1, 0xd2, 0x94, 0xae, 0xfe, 0xd2, 0x16, 0x45,
+ 0x67, 0xfe, 0xdd, 0xce, 0x00, 0x01, 0x01, 0x23, 0xfe, 0xff, 0x03, 0xe9,
+ 0x05, 0xda, 0x00, 0x1e, 0x00, 0x00, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x11, 0x26, 0x27, 0x26, 0x35, 0x10, 0x25, 0x36, 0x37, 0x36, 0x17,
+ 0x06, 0x07, 0x06, 0x15, 0x10, 0x17, 0x16, 0x17, 0x06, 0x27, 0x15, 0x33,
+ 0x15, 0x02, 0xf4, 0xa2, 0xf5, 0xf5, 0x8c, 0x5c, 0x46, 0x01, 0x0b, 0x54,
+ 0x9c, 0x41, 0x35, 0xb7, 0x58, 0x68, 0xe1, 0x4e, 0x4d, 0x43, 0x63, 0xf5,
+ 0xfe, 0xff, 0x01, 0x01, 0x7c, 0x01, 0x33, 0x4c, 0x98, 0x75, 0xa1, 0x01,
+ 0x2e, 0xb9, 0x3a, 0x10, 0x07, 0x17, 0x3b, 0x85, 0x9d, 0xc4, 0xfe, 0xcd,
+ 0xa2, 0x38, 0x0f, 0x25, 0x13, 0xff, 0x7c, 0x00, 0x00, 0x03, 0x00, 0x4d,
+ 0x00, 0x08, 0x05, 0xbb, 0x04, 0x6d, 0x00, 0x0f, 0x00, 0x1d, 0x00, 0x33,
+ 0x00, 0x00, 0x13, 0x15, 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x3d, 0x01,
+ 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x00, 0x20, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x37, 0x1e, 0x01, 0x15,
+ 0x11, 0x14, 0x06, 0x07, 0x06, 0x21, 0x20, 0x27, 0x2e, 0x01, 0x35, 0x11,
+ 0x34, 0x36, 0x37, 0x36, 0x21, 0x20, 0xa7, 0x9a, 0xba, 0x02, 0x13, 0xb9,
+ 0x9a, 0x29, 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x03, 0x41, 0xfd, 0xed,
+ 0xba, 0x9a, 0x9a, 0xba, 0x02, 0x13, 0xb9, 0x9a, 0x9a, 0x28, 0x67, 0x65,
+ 0x65, 0x65, 0xcf, 0xfe, 0xe2, 0xfe, 0xe6, 0xd0, 0x68, 0x65, 0x65, 0x65,
+ 0xcf, 0x01, 0x1e, 0x01, 0x1a, 0x02, 0x1d, 0x93, 0x60, 0x56, 0x68, 0x68,
+ 0x56, 0x60, 0x92, 0x22, 0x1c, 0x78, 0x78, 0x20, 0x02, 0x0b, 0x68, 0x56,
+ 0x63, 0x60, 0x56, 0x68, 0x68, 0x56, 0x60, 0x63, 0x56, 0x59, 0x39, 0x88,
+ 0x51, 0xfe, 0xa2, 0x4e, 0x88, 0x39, 0x73, 0x73, 0x39, 0x88, 0x4e, 0x01,
+ 0x5e, 0x51, 0x88, 0x39, 0x73, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4d,
+ 0x00, 0x08, 0x05, 0xbb, 0x05, 0xcb, 0x00, 0x0d, 0x00, 0x1d, 0x00, 0x2d,
+ 0x00, 0x45, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x01, 0x15, 0x14, 0x17, 0x16, 0x20,
+ 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x03, 0x15,
+ 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x01, 0x1e, 0x01, 0x15, 0x19, 0x01, 0x14, 0x06, 0x07, 0x06,
+ 0x21, 0x20, 0x27, 0x2e, 0x01, 0x35, 0x19, 0x01, 0x34, 0x36, 0x37, 0x36,
+ 0x21, 0x20, 0x04, 0x0e, 0xfd, 0xed, 0xba, 0x9a, 0x9a, 0xba, 0x02, 0x13,
+ 0xb9, 0x9a, 0x9a, 0xfb, 0xe0, 0x9a, 0xba, 0x02, 0x13, 0xb9, 0x9a, 0x29,
+ 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x26, 0x9a, 0xba, 0x02, 0x13, 0xb9,
+ 0x9a, 0x29, 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x04, 0x22, 0x67, 0x65,
+ 0x65, 0x65, 0xcf, 0xfe, 0xe2, 0xfe, 0xe6, 0xd0, 0x68, 0x65, 0x65, 0x65,
+ 0xcf, 0x01, 0x1e, 0x01, 0x1a, 0x05, 0x67, 0x68, 0x56, 0x63, 0x60, 0x56,
+ 0x68, 0x68, 0x56, 0x60, 0x63, 0x56, 0xfe, 0x7c, 0x93, 0x60, 0x56, 0x68,
+ 0x68, 0x56, 0x60, 0x92, 0x22, 0x1c, 0x78, 0x78, 0x20, 0xfe, 0xc1, 0x93,
+ 0x60, 0x56, 0x68, 0x68, 0x56, 0x60, 0x92, 0x22, 0x1c, 0x78, 0x78, 0x20,
+ 0x03, 0x5a, 0x39, 0x88, 0x51, 0xfe, 0xa2, 0xfe, 0xa2, 0x4e, 0x88, 0x39,
+ 0x73, 0x73, 0x39, 0x88, 0x4e, 0x01, 0x5e, 0x01, 0x5e, 0x51, 0x88, 0x39,
+ 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x08, 0x05, 0xbb,
+ 0x04, 0x6d, 0x00, 0x0b, 0x00, 0x21, 0x00, 0x31, 0x00, 0x3f, 0x00, 0x55,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x16,
+ 0x21, 0x20, 0x00, 0x20, 0x17, 0x16, 0x17, 0x16, 0x15, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x03, 0x15, 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x00, 0x20, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x37, 0x1e, 0x01, 0x15, 0x11, 0x14,
+ 0x06, 0x07, 0x06, 0x21, 0x20, 0x27, 0x2e, 0x01, 0x35, 0x11, 0x34, 0x36,
+ 0x37, 0x36, 0x21, 0x20, 0x04, 0xec, 0x1c, 0x32, 0xa6, 0xf4, 0xf6, 0xa3,
+ 0x35, 0x1b, 0xd4, 0x01, 0x15, 0x01, 0x13, 0xfd, 0xf9, 0x01, 0xea, 0xa4,
+ 0x34, 0x1c, 0x19, 0x02, 0x17, 0x1c, 0x34, 0xa6, 0xfe, 0x16, 0xa3, 0x35,
+ 0x1b, 0x1b, 0x01, 0x01, 0x19, 0x1c, 0x34, 0xc4, 0x9a, 0xba, 0x02, 0x13,
+ 0xb9, 0x9a, 0x29, 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x03, 0x41, 0xfd,
+ 0xed, 0xba, 0x9a, 0x9a, 0xba, 0x02, 0x13, 0xb9, 0x9a, 0x9a, 0x28, 0x67,
+ 0x65, 0x65, 0x65, 0xcf, 0xfe, 0xe2, 0xfe, 0xe6, 0xd0, 0x68, 0x65, 0x65,
+ 0x65, 0xcf, 0x01, 0x1e, 0x01, 0x1a, 0x01, 0x64, 0x1b, 0x1c, 0x5d, 0x5d,
+ 0x1e, 0x1a, 0x63, 0x02, 0xa3, 0x5d, 0x1d, 0x1c, 0x19, 0x0e, 0x0e, 0x16,
+ 0x1c, 0x1d, 0x5d, 0x5d, 0x1e, 0x1b, 0x18, 0x0c, 0x0f, 0x18, 0x1c, 0x1d,
+ 0xfe, 0xd5, 0x93, 0x60, 0x56, 0x68, 0x68, 0x56, 0x60, 0x92, 0x22, 0x1c,
+ 0x78, 0x78, 0x20, 0x02, 0x0b, 0x68, 0x56, 0x63, 0x60, 0x56, 0x68, 0x68,
+ 0x56, 0x60, 0x63, 0x56, 0x59, 0x39, 0x88, 0x51, 0xfe, 0xa2, 0x4e, 0x88,
+ 0x39, 0x73, 0x73, 0x39, 0x88, 0x4e, 0x01, 0x5e, 0x51, 0x88, 0x39, 0x73,
+ 0x00, 0x07, 0x00, 0x4d, 0x00, 0x08, 0x05, 0xbb, 0x05, 0xcb, 0x00, 0x15,
+ 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3b, 0x00, 0x4b, 0x00, 0x5b, 0x00, 0x73,
+ 0x00, 0x00, 0x00, 0x20, 0x17, 0x16, 0x17, 0x16, 0x15, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x16, 0x21, 0x20,
+ 0x17, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x16, 0x21, 0x20,
+ 0x02, 0x20, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x01, 0x15, 0x14, 0x17, 0x16, 0x20, 0x37, 0x36, 0x3d, 0x01,
+ 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x03, 0x15, 0x14, 0x17, 0x16, 0x20,
+ 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x01, 0x1e,
+ 0x01, 0x15, 0x19, 0x01, 0x14, 0x06, 0x07, 0x06, 0x21, 0x20, 0x27, 0x2e,
+ 0x01, 0x35, 0x19, 0x01, 0x34, 0x36, 0x37, 0x36, 0x21, 0x20, 0x02, 0x10,
+ 0x01, 0xea, 0xa4, 0x34, 0x1c, 0x19, 0x02, 0x17, 0x1c, 0x34, 0xa6, 0xfe,
+ 0x16, 0xa3, 0x35, 0x1b, 0x1b, 0x01, 0x01, 0x19, 0x1c, 0x34, 0x03, 0x81,
+ 0x1c, 0x32, 0xa6, 0xf4, 0xf6, 0xa3, 0x35, 0x1b, 0xd4, 0x01, 0x15, 0x01,
+ 0x13, 0xd5, 0x1c, 0x32, 0xa6, 0xf4, 0xf6, 0xa3, 0x35, 0x1b, 0xd4, 0x01,
+ 0x15, 0x01, 0x13, 0x09, 0xfd, 0xed, 0xba, 0x9a, 0x9a, 0xba, 0x02, 0x13,
+ 0xb9, 0x9a, 0x9a, 0xfb, 0xe0, 0x9a, 0xba, 0x02, 0x13, 0xb9, 0x9a, 0x29,
+ 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x26, 0x9a, 0xba, 0x02, 0x13, 0xb9,
+ 0x9a, 0x29, 0x33, 0xd8, 0xfd, 0xae, 0xd5, 0x39, 0x04, 0x22, 0x67, 0x65,
+ 0x65, 0x65, 0xcf, 0xfe, 0xe2, 0xfe, 0xe6, 0xd0, 0x68, 0x65, 0x65, 0x65,
+ 0xcf, 0x01, 0x1e, 0x01, 0x1a, 0x05, 0x03, 0x5d, 0x1d, 0x1c, 0x19, 0x0e,
+ 0x0e, 0x16, 0x1c, 0x1d, 0x5d, 0x5d, 0x1e, 0x1b, 0x18, 0x0c, 0x0f, 0x18,
+ 0x1c, 0x1d, 0xfe, 0x1c, 0x1b, 0x1c, 0x5d, 0x5d, 0x1e, 0x1a, 0x63, 0xfc,
+ 0x1b, 0x1c, 0x5d, 0x5d, 0x1e, 0x1a, 0x63, 0x04, 0x65, 0x68, 0x56, 0x63,
+ 0x60, 0x56, 0x68, 0x68, 0x56, 0x60, 0x63, 0x56, 0xfe, 0x7c, 0x93, 0x60,
+ 0x56, 0x68, 0x68, 0x56, 0x60, 0x92, 0x22, 0x1c, 0x78, 0x78, 0x20, 0xfe,
+ 0xc1, 0x93, 0x60, 0x56, 0x68, 0x68, 0x56, 0x60, 0x92, 0x22, 0x1c, 0x78,
+ 0x78, 0x20, 0x03, 0x5a, 0x39, 0x88, 0x51, 0xfe, 0xa2, 0xfe, 0xa2, 0x4e,
+ 0x88, 0x39, 0x73, 0x73, 0x39, 0x88, 0x4e, 0x01, 0x5e, 0x01, 0x5e, 0x51,
+ 0x88, 0x39, 0x73, 0x00, 0x00, 0x03, 0x00, 0x9d, 0xff, 0xe3, 0x04, 0xa9,
+ 0x06, 0xbe, 0x00, 0x0b, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x13, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x00, 0x23, 0x22, 0x00, 0x10, 0x37, 0x36, 0x37,
+ 0x0b, 0x01, 0x35, 0x09, 0x01, 0x15, 0x0b, 0x01, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x02, 0xa3, 0x3a, 0x57, 0x55,
+ 0x3c, 0x3f, 0x52, 0x55, 0x15, 0xa3, 0x79, 0x98, 0xfe, 0xd2, 0xd7, 0xd4,
+ 0xfe, 0xcf, 0x98, 0x7a, 0xa2, 0x01, 0xed, 0x01, 0x3f, 0x01, 0x3f, 0xee,
+ 0x51, 0x94, 0xcf, 0xcf, 0x94, 0x91, 0xd2, 0xd2, 0x01, 0x7d, 0x5b, 0x44,
+ 0x3e, 0x58, 0x55, 0x41, 0x42, 0x5d, 0x02, 0xbb, 0x11, 0x7e, 0x9d, 0xee,
+ 0xef, 0xfe, 0xb4, 0x01, 0x4c, 0x01, 0xde, 0x9c, 0x7e, 0x12, 0x01, 0x67,
+ 0xfe, 0xfa, 0xc7, 0x01, 0x5d, 0xfe, 0xa3, 0xc7, 0x01, 0x05, 0xfa, 0xf7,
+ 0xe4, 0xa4, 0xa3, 0xd8, 0xd8, 0xa3, 0xa4, 0xe4, 0x00, 0x03, 0x00, 0x13,
+ 0x01, 0x85, 0x05, 0xc8, 0x05, 0x14, 0x00, 0x50, 0x00, 0x6a, 0x00, 0x85,
+ 0x00, 0x00, 0x01, 0x27, 0x23, 0x22, 0x27, 0x26, 0x07, 0x06, 0x14, 0x07,
+ 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x33, 0x32, 0x1f, 0x01, 0x16, 0x33,
+ 0x32, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x26, 0x27, 0x26, 0x27, 0x26, 0x2f,
+ 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x3e, 0x01, 0x37, 0x36,
+ 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x0e, 0x01, 0x07, 0x06,
+ 0x17, 0x16, 0x1f, 0x01, 0x21, 0x32, 0x17, 0x16, 0x17, 0x21, 0x17, 0x25,
+ 0x16, 0x33, 0x32, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x34, 0x27, 0x26, 0x27,
+ 0x2e, 0x01, 0x23, 0x22, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x14, 0x17, 0x1e,
+ 0x01, 0x01, 0x26, 0x23, 0x22, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x14, 0x17,
+ 0x16, 0x17, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x34,
+ 0x27, 0x26, 0x27, 0x26, 0x03, 0x6c, 0xc1, 0x67, 0x9d, 0x19, 0x26, 0x03,
+ 0x01, 0x09, 0x0b, 0x2c, 0x20, 0x19, 0x27, 0x20, 0x21, 0x20, 0x17, 0x13,
+ 0x15, 0x10, 0x0b, 0x0b, 0x2c, 0x20, 0x1a, 0x26, 0x1f, 0x09, 0x50, 0x58,
+ 0x51, 0x21, 0x0d, 0x13, 0x22, 0x02, 0x03, 0x06, 0x0c, 0x0b, 0x14, 0x46,
+ 0x4b, 0x2d, 0x2c, 0x17, 0x19, 0x0e, 0x11, 0x0b, 0x0c, 0x2f, 0x1c, 0x20,
+ 0x41, 0x40, 0x18, 0x1c, 0x0c, 0x10, 0x0b, 0x08, 0x1b, 0x03, 0x04, 0x1e,
+ 0x25, 0x62, 0x4a, 0x01, 0x64, 0xd0, 0x47, 0x5b, 0x10, 0xfd, 0xa5, 0xbf,
+ 0xfc, 0x72, 0x13, 0x12, 0x16, 0x0e, 0x13, 0x1a, 0x05, 0x04, 0x0b, 0x08,
+ 0x0e, 0x0f, 0x28, 0x0f, 0x12, 0x12, 0x13, 0x17, 0x07, 0x05, 0x0c, 0x08,
+ 0x1c, 0x01, 0x11, 0x10, 0x15, 0x19, 0x0b, 0x13, 0x1b, 0x03, 0x05, 0x0b,
+ 0x09, 0x0e, 0x0d, 0x27, 0x12, 0x14, 0x10, 0x13, 0x19, 0x04, 0x06, 0x0c,
+ 0x09, 0x0d, 0x0a, 0x01, 0x85, 0xcd, 0x06, 0x08, 0x0d, 0x08, 0x29, 0x17,
+ 0x20, 0x2e, 0x0d, 0x0b, 0x0f, 0x0e, 0x19, 0x15, 0x24, 0x1d, 0x4a, 0x1e,
+ 0x20, 0x2e, 0x0d, 0x0b, 0x03, 0x25, 0x27, 0x03, 0x05, 0x1c, 0x07, 0x08,
+ 0x2e, 0x13, 0x13, 0x13, 0x44, 0x22, 0x14, 0x14, 0x18, 0x1b, 0x1e, 0x26,
+ 0x42, 0x1d, 0x20, 0x31, 0x0a, 0x0b, 0x1e, 0x18, 0x1e, 0x1c, 0x24, 0x43,
+ 0x1e, 0x17, 0x1d, 0x07, 0x0d, 0x16, 0x1a, 0x6d, 0x52, 0x20, 0x29, 0x4b,
+ 0xcf, 0x79, 0x09, 0x05, 0x07, 0x18, 0x10, 0x11, 0x1f, 0x17, 0x12, 0x0d,
+ 0x10, 0x10, 0x06, 0x06, 0x17, 0x11, 0x11, 0x20, 0x16, 0x12, 0x1c, 0x02,
+ 0xb5, 0x09, 0x05, 0x07, 0x19, 0x0f, 0x11, 0x21, 0x15, 0x12, 0x0e, 0x0d,
+ 0x12, 0x05, 0x07, 0x19, 0x0e, 0x12, 0x20, 0x16, 0x12, 0x0e, 0x09, 0x00,
+ 0x00, 0x03, 0x00, 0x4d, 0x01, 0x21, 0x05, 0xa5, 0x04, 0xb5, 0x00, 0x15,
+ 0x00, 0x64, 0x00, 0x7a, 0x00, 0x00, 0x12, 0x32, 0x36, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x27, 0x2e, 0x01, 0x22, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x01, 0x05, 0x06, 0x23, 0x22, 0x27, 0x25, 0x07,
+ 0x0e, 0x01, 0x15, 0x14, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x3b, 0x01, 0x32, 0x37, 0x3e, 0x02, 0x34, 0x2e, 0x01, 0x27, 0x26,
+ 0x2b, 0x01, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06,
+ 0x15, 0x14, 0x16, 0x1f, 0x01, 0x25, 0x36, 0x33, 0x32, 0x17, 0x24, 0x22,
+ 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x1e, 0x01, 0x32, 0x36,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0xe4, 0x29, 0x22, 0x0f,
+ 0x0f, 0x0e, 0x0e, 0x0f, 0x0f, 0x22, 0x29, 0x22, 0x0f, 0x0f, 0x0f, 0x0f,
+ 0x0f, 0x0f, 0x02, 0xb4, 0x02, 0x2e, 0x27, 0x62, 0x49, 0xc5, 0xfe, 0xb5,
+ 0x5f, 0x87, 0x48, 0x0f, 0x19, 0x19, 0x14, 0x24, 0x1d, 0x47, 0x1d, 0x1f,
+ 0x19, 0x18, 0x1b, 0x1a, 0x19, 0x14, 0x24, 0x1d, 0x09, 0x57, 0x4d, 0x5c,
+ 0x18, 0x22, 0x16, 0x16, 0x22, 0x18, 0x58, 0x51, 0x30, 0x30, 0x1d, 0x24,
+ 0x14, 0x19, 0x1a, 0x1b, 0x18, 0x19, 0x1f, 0x1d, 0x47, 0x1d, 0x24, 0x14,
+ 0x19, 0x19, 0x0f, 0x48, 0x87, 0x5f, 0x01, 0x4b, 0xc5, 0x49, 0x62, 0x27,
+ 0xfb, 0x69, 0x29, 0x22, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x22, 0x29,
+ 0x22, 0x0f, 0x0f, 0x0e, 0x0e, 0x0f, 0x0f, 0x01, 0x71, 0x0e, 0x0d, 0x0e,
+ 0x1f, 0x13, 0x12, 0x1f, 0x0e, 0x0d, 0x0e, 0x0e, 0x0d, 0x0e, 0x1f, 0x12,
+ 0x13, 0x1f, 0x0e, 0x0d, 0x01, 0x6c, 0xfc, 0x3f, 0x57, 0x92, 0x2c, 0x3e,
+ 0x0e, 0x0e, 0x08, 0x26, 0x19, 0x23, 0x3c, 0x1a, 0x15, 0x10, 0x0d, 0x0d,
+ 0x0e, 0x17, 0x15, 0x41, 0x23, 0x22, 0x3c, 0x1a, 0x15, 0x10, 0x0d, 0x22,
+ 0x09, 0x1a, 0x28, 0x10, 0x28, 0x1a, 0x09, 0x22, 0x0d, 0x10, 0x15, 0x1a,
+ 0x3c, 0x22, 0x23, 0x41, 0x15, 0x17, 0x0e, 0x0d, 0x0d, 0x10, 0x15, 0x1a,
+ 0x3c, 0x23, 0x19, 0x26, 0x08, 0x0e, 0x0e, 0x3e, 0x2c, 0x92, 0x57, 0x3f,
+ 0x7e, 0x0e, 0x0d, 0x0e, 0x1f, 0x13, 0x12, 0x1f, 0x0e, 0x0d, 0x0e, 0x0e,
+ 0x0d, 0x0e, 0x1f, 0x12, 0x13, 0x1f, 0x0e, 0x0d, 0x00, 0x03, 0x00, 0x13,
+ 0x00, 0xc0, 0x05, 0xc8, 0x04, 0x4f, 0x00, 0x4f, 0x00, 0x6a, 0x00, 0x85,
+ 0x00, 0x00, 0x01, 0x33, 0x07, 0x21, 0x06, 0x07, 0x06, 0x23, 0x21, 0x07,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x0e, 0x01, 0x22, 0x27, 0x2e, 0x01, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x27, 0x2e, 0x01,
+ 0x27, 0x26, 0x23, 0x22, 0x0f, 0x01, 0x06, 0x23, 0x22, 0x27, 0x2e, 0x01,
+ 0x27, 0x26, 0x34, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x33, 0x32, 0x17, 0x1e,
+ 0x01, 0x17, 0x16, 0x14, 0x17, 0x16, 0x37, 0x36, 0x3b, 0x01, 0x25, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x14, 0x17, 0x1e, 0x01, 0x17, 0x16, 0x33, 0x32,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27, 0x2e, 0x01, 0x27, 0x26, 0x23,
+ 0x22, 0x13, 0x36, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27, 0x2e, 0x01, 0x27,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x06, 0x07, 0x06, 0x14, 0x17, 0x1e, 0x01,
+ 0x17, 0x16, 0x33, 0x32, 0x03, 0x6c, 0xc0, 0xbf, 0x02, 0x5b, 0x10, 0x5b,
+ 0x47, 0xd0, 0xfe, 0x9c, 0x4a, 0x5a, 0x2d, 0x1a, 0x1e, 0x08, 0x0b, 0x10,
+ 0x0c, 0x1c, 0x18, 0x40, 0x41, 0x20, 0x1c, 0x32, 0x09, 0x0b, 0x11, 0x0b,
+ 0x1c, 0x17, 0x08, 0x51, 0x4b, 0x46, 0x14, 0x0b, 0x0c, 0x06, 0x03, 0x02,
+ 0x1a, 0x1b, 0x08, 0x26, 0x51, 0x58, 0x2c, 0x2d, 0x1f, 0x27, 0x19, 0x20,
+ 0x2c, 0x0b, 0x0b, 0x10, 0x10, 0x2f, 0x20, 0x21, 0x20, 0x27, 0x19, 0x20,
+ 0x2c, 0x0b, 0x09, 0x01, 0x06, 0x23, 0x16, 0xa0, 0x67, 0xfd, 0xf3, 0x12,
+ 0x0e, 0x08, 0x0e, 0x0c, 0x05, 0x07, 0x14, 0x16, 0x0f, 0x15, 0x13, 0x25,
+ 0x0e, 0x0e, 0x08, 0x0c, 0x05, 0x07, 0x13, 0x18, 0x0f, 0x15, 0x12, 0xec,
+ 0x13, 0x0e, 0x08, 0x0e, 0x0c, 0x06, 0x06, 0x19, 0x11, 0x10, 0x14, 0x13,
+ 0x26, 0x0d, 0x0e, 0x09, 0x0b, 0x05, 0x06, 0x1b, 0x10, 0x12, 0x12, 0x0d,
+ 0x04, 0x4f, 0xcf, 0x4b, 0x29, 0x20, 0x52, 0x64, 0x23, 0x14, 0x0f, 0x06,
+ 0x1e, 0x17, 0x21, 0x3e, 0x26, 0x1c, 0x1e, 0x18, 0x1e, 0x0b, 0x0a, 0x33,
+ 0x1e, 0x22, 0x39, 0x2a, 0x1b, 0x1e, 0x18, 0x04, 0x24, 0x22, 0x44, 0x13,
+ 0x13, 0x13, 0x2e, 0x08, 0x07, 0x16, 0x0b, 0x03, 0x27, 0x14, 0x14, 0x0b,
+ 0x0e, 0x2d, 0x20, 0x20, 0x44, 0x21, 0x20, 0x32, 0x0e, 0x0f, 0x0b, 0x0d,
+ 0x2e, 0x20, 0x17, 0x2c, 0x05, 0x0e, 0x09, 0x06, 0x54, 0x08, 0x0e, 0x08,
+ 0x18, 0x13, 0x25, 0x0f, 0x11, 0x15, 0x08, 0x06, 0x12, 0x0e, 0x0d, 0x12,
+ 0x16, 0x23, 0x0e, 0x12, 0x15, 0x08, 0x05, 0xfd, 0x3a, 0x09, 0x0d, 0x08,
+ 0x18, 0x13, 0x26, 0x0f, 0x10, 0x19, 0x05, 0x05, 0x12, 0x0d, 0x0e, 0x12,
+ 0x13, 0x28, 0x0c, 0x11, 0x19, 0x05, 0x05, 0x00, 0x00, 0x09, 0x00, 0x41,
+ 0x00, 0xf4, 0x05, 0xf0, 0x04, 0xe8, 0x00, 0x5a, 0x00, 0x78, 0x00, 0x96,
+ 0x00, 0xb4, 0x00, 0xd2, 0x00, 0xfe, 0x01, 0x2d, 0x01, 0x34, 0x01, 0x48,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x2b, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x16, 0x1f, 0x01, 0x25, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x0d, 0x01, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x25,
+ 0x07, 0x06, 0x07, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x37, 0x36, 0x02, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x12, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x17, 0x12, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x02, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x05, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x37, 0x36, 0x03, 0x2d, 0x01, 0x26, 0x23, 0x22, 0x07,
+ 0x05, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x25, 0x05, 0x16, 0x33, 0x32, 0x37, 0x25, 0x26,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x02, 0x0e, 0x0a, 0x07, 0x07,
+ 0x0a, 0x08, 0x16, 0x49, 0x53, 0x3c, 0x29, 0x28, 0x21, 0x24, 0x1f, 0x11,
+ 0x10, 0x10, 0x0e, 0x24, 0x19, 0x2a, 0x26, 0x2b, 0x29, 0x28, 0x27, 0x1e,
+ 0x24, 0x0c, 0x10, 0x05, 0x2a, 0x80, 0x4f, 0x01, 0x3a, 0xcc, 0x52, 0x7b,
+ 0x33, 0x07, 0x1b, 0xfe, 0x35, 0x01, 0xcb, 0x1b, 0x07, 0x36, 0x78, 0x52,
+ 0xcc, 0xfe, 0xc6, 0x4f, 0x80, 0x2a, 0x05, 0x10, 0x11, 0x1f, 0x20, 0x25,
+ 0x2b, 0x26, 0x2e, 0x23, 0x25, 0x1f, 0x25, 0x0c, 0x10, 0x10, 0x0e, 0x22,
+ 0x19, 0x2c, 0x26, 0x2b, 0x3c, 0x4a, 0x52, 0x15, 0xfa, 0x19, 0x0a, 0x0b,
+ 0x08, 0x09, 0x03, 0x03, 0x03, 0x03, 0x09, 0x08, 0x0b, 0x0a, 0x19, 0x0a,
+ 0x0a, 0x09, 0x08, 0x03, 0x03, 0x03, 0x03, 0x08, 0x09, 0x0a, 0x0a, 0x19,
+ 0x0a, 0x0b, 0x08, 0x09, 0x03, 0x03, 0x03, 0x03, 0x09, 0x08, 0x0b, 0x0a,
+ 0x19, 0x0a, 0x0a, 0x09, 0x08, 0x03, 0x03, 0x03, 0x03, 0x08, 0x09, 0x0a,
+ 0x2d, 0x2d, 0x13, 0x12, 0x10, 0x11, 0x08, 0x08, 0x08, 0x08, 0x11, 0x10,
+ 0x12, 0x13, 0x2d, 0x13, 0x13, 0x10, 0x11, 0x08, 0x08, 0x08, 0x08, 0x11,
+ 0x10, 0x13, 0x13, 0x2d, 0x13, 0x12, 0x10, 0x11, 0x08, 0x08, 0x08, 0x08,
+ 0x11, 0x10, 0x12, 0x13, 0x2d, 0x13, 0x13, 0x10, 0x11, 0x08, 0x08, 0x08,
+ 0x08, 0x11, 0x10, 0x13, 0x01, 0x5f, 0x21, 0x86, 0x23, 0x14, 0x0a, 0x0e,
+ 0x0a, 0x05, 0x0c, 0x0b, 0x19, 0x12, 0x22, 0x1c, 0x42, 0x1c, 0x1d, 0x18,
+ 0x16, 0x0e, 0x0b, 0x0b, 0x0c, 0x18, 0x12, 0x23, 0x1c, 0x21, 0x3c, 0x53,
+ 0x5a, 0x1b, 0x10, 0x15, 0x06, 0x20, 0x19, 0xaa, 0x01, 0xbc, 0x02, 0x22,
+ 0x26, 0x54, 0x47, 0xc3, 0xfe, 0xb6, 0x86, 0x10, 0x0f, 0x15, 0x12, 0x19,
+ 0x5e, 0x4f, 0x3c, 0x21, 0x1c, 0x23, 0x12, 0x18, 0x0c, 0x0b, 0x0b, 0x0e,
+ 0x16, 0x18, 0x1d, 0x1c, 0x42, 0x1c, 0x22, 0x12, 0x19, 0x0b, 0x0c, 0x05,
+ 0x0a, 0x0e, 0x0b, 0x01, 0x6b, 0x01, 0x02, 0xc3, 0x47, 0x54, 0x26, 0xfe,
+ 0x14, 0xc4, 0x04, 0x06, 0x08, 0x08, 0x14, 0x08, 0x08, 0x05, 0x05, 0x05,
+ 0x05, 0x08, 0x08, 0x14, 0x08, 0x08, 0x06, 0x02, 0xd9, 0x08, 0x0d, 0x0e,
+ 0x07, 0x06, 0x0a, 0x20, 0x10, 0x0d, 0x22, 0x1c, 0x29, 0x26, 0x60, 0x26,
+ 0x22, 0x27, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1f, 0x24, 0x22, 0x2f, 0x27,
+ 0x1d, 0x12, 0x09, 0x3c, 0x25, 0x8b, 0x5a, 0x53, 0x0d, 0x11, 0x1f, 0x0c,
+ 0xcf, 0xcf, 0x0c, 0x25, 0x0d, 0x0b, 0x53, 0x5a, 0x8b, 0x25, 0x3c, 0x09,
+ 0x18, 0x17, 0x2f, 0x27, 0x2a, 0x1d, 0x20, 0x0e, 0x10, 0x10, 0x11, 0x1c,
+ 0x22, 0x25, 0x35, 0x22, 0x2d, 0x28, 0x24, 0x23, 0x1b, 0x13, 0x10, 0x20,
+ 0x09, 0xfe, 0xd2, 0x04, 0x05, 0x08, 0x07, 0x07, 0x04, 0x08, 0x07, 0x05,
+ 0x06, 0x08, 0x07, 0x05, 0x04, 0x04, 0x05, 0x08, 0x07, 0x07, 0x04, 0x07,
+ 0x08, 0x05, 0x06, 0x08, 0x07, 0x05, 0x02, 0x3b, 0x04, 0x05, 0x08, 0x07,
+ 0x07, 0x04, 0x07, 0x08, 0x05, 0x06, 0x08, 0x07, 0x05, 0x04, 0x04, 0x05,
+ 0x08, 0x07, 0x07, 0x04, 0x08, 0x07, 0x05, 0x06, 0x08, 0x07, 0x05, 0xfd,
+ 0x82, 0x07, 0x08, 0x0e, 0x10, 0x11, 0x12, 0x16, 0x15, 0x12, 0x11, 0x10,
+ 0x0e, 0x08, 0x07, 0x07, 0x08, 0x0e, 0x10, 0x11, 0x12, 0x15, 0x16, 0x12,
+ 0x11, 0x10, 0x0e, 0x08, 0x02, 0x38, 0x07, 0x08, 0x0e, 0x10, 0x11, 0x12,
+ 0x15, 0x16, 0x12, 0x11, 0x10, 0x0e, 0x08, 0x07, 0x07, 0x08, 0x0e, 0x10,
+ 0x11, 0x12, 0x16, 0x15, 0x12, 0x11, 0x10, 0x0e, 0x08, 0x5c, 0x0f, 0x3d,
+ 0x07, 0x04, 0x06, 0x08, 0x0e, 0x0a, 0x18, 0x0e, 0x17, 0x21, 0x1c, 0x1b,
+ 0x19, 0x13, 0x10, 0x0c, 0x0c, 0x0e, 0x16, 0x13, 0x20, 0x1c, 0x21, 0x20,
+ 0x1c, 0x1b, 0x19, 0x13, 0x10, 0x0c, 0x22, 0x0a, 0x0e, 0x11, 0x08, 0x18,
+ 0x11, 0xfe, 0xf2, 0xc2, 0xf7, 0x2f, 0x56, 0x92, 0x43, 0x1e, 0x1e, 0x0f,
+ 0x0e, 0x0a, 0x22, 0x0c, 0x10, 0x13, 0x19, 0x1b, 0x1c, 0x20, 0x21, 0x1c,
+ 0x20, 0x13, 0x16, 0x0e, 0x0c, 0x0c, 0x10, 0x13, 0x19, 0x1b, 0x1c, 0x21,
+ 0x17, 0x0d, 0x19, 0x0a, 0x14, 0x02, 0x02, 0x5b, 0x75, 0x56, 0x2f, 0xe1,
+ 0x2b, 0x16, 0x09, 0x09, 0x06, 0x05, 0x05, 0x06, 0x09, 0x09, 0x16, 0x09,
+ 0x09, 0x06, 0x05, 0x05, 0x06, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x4d,
+ 0xff, 0xe3, 0x05, 0xbb, 0x05, 0xf0, 0x00, 0x61, 0x00, 0x75, 0x00, 0x87,
+ 0x00, 0x00, 0x01, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17,
+ 0x15, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06,
+ 0x20, 0x27, 0x2e, 0x02, 0x35, 0x34, 0x36, 0x37, 0x26, 0x35, 0x34, 0x37,
+ 0x12, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x16, 0x17,
+ 0x16, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x01,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x36, 0x37, 0x36, 0x35, 0x34, 0x01, 0xde, 0x03, 0x0b, 0x13, 0x11, 0x12,
+ 0x16, 0x64, 0x00, 0xff, 0x6d, 0x6c, 0x58, 0x5a, 0x57, 0x55, 0x5c, 0x56,
+ 0x6e, 0x6c, 0x7c, 0x78, 0x70, 0x6b, 0x58, 0x5a, 0x58, 0x46, 0x27, 0x60,
+ 0x67, 0x63, 0x6a, 0x61, 0x7f, 0x7e, 0x8c, 0x8b, 0x80, 0x78, 0x68, 0x65,
+ 0x67, 0x63, 0x69, 0x63, 0x7d, 0x7f, 0xfe, 0xe6, 0x7c, 0x26, 0x3d, 0x21,
+ 0x1d, 0x19, 0x03, 0x61, 0xa3, 0x98, 0x49, 0x05, 0x0f, 0x21, 0x1e, 0x08,
+ 0x31, 0x26, 0x1c, 0x3d, 0x39, 0x0f, 0x10, 0x14, 0x1e, 0x30, 0x23, 0x10,
+ 0x0f, 0x44, 0x15, 0x24, 0x2d, 0x17, 0x14, 0x03, 0x29, 0x05, 0x10, 0x01,
+ 0x0a, 0x11, 0x18, 0x1f, 0x1d, 0x11, 0x03, 0x03, 0x18, 0x01, 0x75, 0x37,
+ 0x14, 0x0f, 0x13, 0x0c, 0x1b, 0x09, 0x19, 0x09, 0x34, 0x0f, 0x1a, 0x1b,
+ 0x01, 0x37, 0x06, 0x1e, 0x1b, 0x1c, 0x32, 0x12, 0x13, 0x0b, 0x33, 0x33,
+ 0x31, 0x63, 0x64, 0xed, 0x88, 0x8d, 0xe8, 0x69, 0x60, 0x34, 0x33, 0x33,
+ 0x31, 0x63, 0x64, 0xed, 0x8d, 0x87, 0xbc, 0x3e, 0x98, 0x6d, 0x01, 0x10,
+ 0x9c, 0x9d, 0x01, 0x10, 0x77, 0x6e, 0x3c, 0x3b, 0x3b, 0x38, 0x72, 0x6f,
+ 0xfe, 0xec, 0xa1, 0x98, 0xfe, 0xf0, 0x77, 0x70, 0x3a, 0x3b, 0x3b, 0x12,
+ 0x42, 0x56, 0x30, 0x2f, 0x4d, 0x1f, 0x10, 0x0f, 0xcd, 0xef, 0x01, 0x90,
+ 0x08, 0x14, 0x38, 0x3a, 0x44, 0x40, 0x2a, 0x1f, 0x7c, 0x73, 0x61, 0x20,
+ 0x16, 0x1b, 0x1e, 0x09, 0x2d, 0x46, 0x28, 0x1c, 0x37, 0x0c, 0x22, 0x2a,
+ 0x3d, 0x38, 0x19, 0x26, 0x08, 0x15, 0x0f, 0x30, 0x21, 0x32, 0x1d, 0x1c,
+ 0x01, 0x06, 0x04, 0x20, 0x16, 0x11, 0x0c, 0x31, 0x2d, 0x35, 0x24, 0x26,
+ 0x0c, 0x0a, 0x12, 0x36, 0x3a, 0x42, 0x34, 0x00, 0x00, 0x06, 0x00, 0x4d,
+ 0xff, 0xe3, 0x05, 0xbb, 0x05, 0xf0, 0x00, 0x0d, 0x00, 0x1a, 0x00, 0x28,
+ 0x00, 0x42, 0x00, 0x5c, 0x00, 0x77, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x27,
+ 0x25, 0x06, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x13, 0x26,
+ 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x13, 0x36, 0x33, 0x32, 0x17, 0x13,
+ 0x05, 0x0e, 0x01, 0x07, 0x25, 0x36, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35,
+ 0x34, 0x26, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x37, 0x36, 0x37, 0x13, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14,
+ 0x16, 0x17, 0x1e, 0x01, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x32, 0x17, 0x16, 0x17, 0x16, 0x12,
+ 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26,
+ 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x36, 0x01, 0x7e, 0x38, 0x23,
+ 0x05, 0x01, 0x0c, 0x07, 0x22, 0x21, 0x1d, 0x2c, 0x12, 0x07, 0xdb, 0x21,
+ 0x28, 0x27, 0x5e, 0x26, 0x29, 0x20, 0x3f, 0x2e, 0x31, 0x33, 0x2d, 0x7a,
+ 0x01, 0x0c, 0x02, 0x25, 0x39, 0xfe, 0xb6, 0x0d, 0x0d, 0x2c, 0x1d, 0x20,
+ 0x22, 0xfd, 0x38, 0x18, 0x18, 0x14, 0x13, 0x14, 0x14, 0x13, 0x14, 0x18,
+ 0x18, 0x38, 0x17, 0x18, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x18, 0x33,
+ 0x78, 0x70, 0x6b, 0x58, 0x5a, 0x58, 0x59, 0x59, 0x56, 0xda, 0xf6, 0x6d,
+ 0x6c, 0x58, 0x5a, 0x57, 0x55, 0x5c, 0x56, 0x6e, 0x6c, 0x7c, 0x8b, 0x80,
+ 0x78, 0x68, 0x65, 0x67, 0x63, 0x69, 0x63, 0x7d, 0x7f, 0xfe, 0xea, 0x80,
+ 0x79, 0x67, 0x65, 0x68, 0x63, 0x6a, 0x61, 0x7f, 0x7e, 0x01, 0x77, 0x49,
+ 0x5f, 0x0f, 0xfd, 0x1e, 0x22, 0x32, 0x5b, 0x24, 0x20, 0x16, 0x09, 0x01,
+ 0x01, 0xa3, 0x22, 0x14, 0x13, 0x13, 0x14, 0x22, 0x01, 0x83, 0x09, 0x09,
+ 0xfe, 0x0b, 0xfd, 0x07, 0x67, 0x49, 0x83, 0x04, 0x06, 0x16, 0x20, 0x24,
+ 0x5b, 0x32, 0x21, 0x76, 0x0b, 0x0c, 0x15, 0x17, 0x35, 0x1f, 0x1e, 0x35,
+ 0x17, 0x15, 0x0c, 0x0b, 0x0b, 0x0c, 0x15, 0x17, 0x35, 0x1e, 0x1f, 0x35,
+ 0x17, 0x15, 0x0c, 0x02, 0x15, 0x33, 0x31, 0x63, 0x64, 0xed, 0x8d, 0x85,
+ 0xf1, 0x63, 0x61, 0x66, 0x33, 0x31, 0x63, 0x64, 0xed, 0x88, 0x8d, 0xe8,
+ 0x69, 0x60, 0x34, 0x33, 0x64, 0x3b, 0x38, 0x72, 0x6f, 0xfe, 0xec, 0xa1,
+ 0x98, 0xfe, 0xf0, 0x77, 0x70, 0x3a, 0x3b, 0x3b, 0x38, 0x72, 0x6f, 0x01,
+ 0x14, 0x9c, 0x9d, 0x01, 0x10, 0x77, 0x6e, 0x3c, 0x3b, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x6c, 0x00, 0x2c, 0x05, 0xa1, 0x05, 0xaa, 0x00, 0x2d,
+ 0x00, 0x00, 0x13, 0x35, 0x37, 0x27, 0x33, 0x17, 0x36, 0x25, 0x02, 0x03,
+ 0x33, 0x17, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x17, 0x33, 0x32,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x07, 0x33, 0x15, 0x23, 0x07,
+ 0x33, 0x15, 0x23, 0x07, 0x23, 0x12, 0x13, 0x24, 0x27, 0x07, 0x23, 0x37,
+ 0x85, 0x21, 0x3a, 0x5a, 0x83, 0x84, 0x01, 0x01, 0x30, 0x99, 0x6e, 0x68,
+ 0x85, 0x4d, 0x5a, 0x8a, 0x53, 0x88, 0xee, 0x3f, 0x2b, 0x1d, 0x1d, 0x2b,
+ 0x3f, 0xee, 0x88, 0x53, 0x8a, 0x5a, 0x4d, 0x85, 0x68, 0x6e, 0x99, 0x30,
+ 0xfe, 0xff, 0x84, 0x83, 0x5a, 0x3a, 0x02, 0xd7, 0x28, 0x05, 0xda, 0xc9,
+ 0x0d, 0x0a, 0x01, 0x14, 0x01, 0x6a, 0x96, 0x50, 0x82, 0x50, 0xc6, 0x1a,
+ 0x11, 0x2c, 0x11, 0x1a, 0xc6, 0x50, 0x82, 0x50, 0x96, 0x01, 0x60, 0x01,
+ 0x1e, 0x0b, 0x0c, 0xc9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x76,
+ 0x00, 0xdc, 0x05, 0x92, 0x04, 0xf9, 0x00, 0x0d, 0x00, 0x14, 0x00, 0x22,
+ 0x00, 0x29, 0x00, 0x2d, 0x00, 0x00, 0x09, 0x01, 0x21, 0x01, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x01, 0x11, 0x01,
+ 0x16, 0x15, 0x14, 0x05, 0x01, 0x21, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x01, 0x11, 0x01, 0x26, 0x35, 0x34,
+ 0x01, 0x11, 0x21, 0x11, 0x03, 0x91, 0x01, 0x8c, 0xfb, 0xcf, 0x01, 0x8c,
+ 0x06, 0x07, 0x1a, 0x21, 0x1f, 0x4a, 0x20, 0x26, 0x14, 0x07, 0x2b, 0x01,
+ 0x83, 0xfe, 0x7d, 0x02, 0xfe, 0xc3, 0xfe, 0x72, 0x04, 0x31, 0xfe, 0x72,
+ 0x06, 0x06, 0x1a, 0x20, 0x20, 0x4a, 0x1f, 0x21, 0x1a, 0x06, 0x2c, 0xfe,
+ 0x7e, 0x01, 0x82, 0x03, 0xfe, 0x27, 0x05, 0x1b, 0x03, 0x68, 0x01, 0x2c,
+ 0xfe, 0xd4, 0x09, 0x08, 0x1c, 0x10, 0x0f, 0x0f, 0x13, 0x19, 0x09, 0xaa,
+ 0xfe, 0xde, 0x02, 0x8d, 0xfe, 0xdd, 0x11, 0x12, 0x13, 0x6b, 0xfe, 0xd3,
+ 0x01, 0x2d, 0x08, 0x07, 0x1c, 0x10, 0x0f, 0x0f, 0x10, 0x1c, 0x07, 0xaa,
+ 0x01, 0x22, 0xfd, 0x73, 0x01, 0x21, 0x13, 0x13, 0x12, 0xfd, 0xdf, 0x04,
+ 0x1d, 0xfb, 0xe3, 0x00, 0x00, 0x04, 0x01, 0x87, 0x00, 0x00, 0x04, 0x0a,
+ 0x05, 0xef, 0x00, 0x50, 0x00, 0xd0, 0x00, 0xe3, 0x00, 0xf3, 0x00, 0x00,
+ 0x01, 0x34, 0x37, 0x36, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x33, 0x17, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x1f, 0x01, 0x16, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x03, 0x14, 0x15, 0x14, 0x1f, 0x01,
+ 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x07, 0x06, 0x1d, 0x01, 0x21, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x27, 0x26, 0x01, 0x26, 0x23,
+ 0x22, 0x0f, 0x01, 0x14, 0x0f, 0x01, 0x06, 0x0f, 0x01, 0x27, 0x26, 0x2f,
+ 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x1f, 0x02, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x26, 0x27, 0x26, 0x27, 0x26, 0x3f, 0x01, 0x36, 0x27, 0x26,
+ 0x27, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x17, 0x16,
+ 0x17, 0x16, 0x1f, 0x01, 0x16, 0x15, 0x07, 0x21, 0x27, 0x34, 0x37, 0x36,
+ 0x3d, 0x01, 0x27, 0x36, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x35, 0x13,
+ 0x34, 0x35, 0x34, 0x27, 0x01, 0x07, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x07,
+ 0x06, 0x07, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x2f, 0x01, 0x01, 0x88, 0x21, 0x15, 0x0f, 0x2f, 0x0c, 0x29, 0x01,
+ 0x02, 0x04, 0x18, 0x24, 0x1b, 0x12, 0x1f, 0x15, 0x18, 0x20, 0x0f, 0x10,
+ 0x2b, 0x0f, 0x43, 0x44, 0x22, 0x0d, 0x0d, 0x10, 0x06, 0x05, 0x09, 0x04,
+ 0x0b, 0x05, 0x01, 0x01, 0x1c, 0x18, 0x25, 0x32, 0x1a, 0x0b, 0x01, 0x09,
+ 0x01, 0x08, 0x02, 0x02, 0x03, 0x01, 0x03, 0x01, 0x14, 0x02, 0xfe, 0x15,
+ 0x04, 0x09, 0x21, 0x2b, 0x18, 0x10, 0x02, 0x46, 0x03, 0x23, 0x20, 0x03,
+ 0x05, 0x0a, 0x1f, 0x05, 0x13, 0x31, 0x16, 0x08, 0x27, 0x0f, 0x29, 0x44,
+ 0x18, 0x12, 0x0f, 0x0d, 0x0f, 0x07, 0x07, 0x1b, 0x0b, 0x11, 0x56, 0x7a,
+ 0x56, 0x54, 0x04, 0x12, 0x05, 0x03, 0x14, 0x10, 0x05, 0x03, 0x2b, 0x67,
+ 0x2f, 0x06, 0x26, 0x1b, 0x11, 0x0b, 0x06, 0x05, 0x02, 0x07, 0x2c, 0x24,
+ 0x0c, 0x07, 0x29, 0x2d, 0x01, 0x13, 0x0d, 0x01, 0x30, 0x15, 0x16, 0x30,
+ 0x09, 0x02, 0x19, 0x70, 0x2a, 0x05, 0x07, 0x0c, 0x02, 0x06, 0x02, 0x07,
+ 0x06, 0x0d, 0x1a, 0x24, 0x0c, 0x0e, 0x15, 0x10, 0x2c, 0x08, 0x03, 0x01,
+ 0x09, 0x07, 0x03, 0x09, 0x53, 0x01, 0x01, 0x01, 0x80, 0x01, 0x0b, 0x0c,
+ 0x02, 0x03, 0x08, 0x05, 0x0b, 0x02, 0xfe, 0x32, 0x10, 0x20, 0x34, 0x32,
+ 0x0f, 0x03, 0x01, 0x10, 0x09, 0x0a, 0x03, 0x02, 0x0b, 0x04, 0x06, 0x61,
+ 0x73, 0x0e, 0x02, 0x4a, 0x23, 0x0d, 0x0a, 0x0e, 0x08, 0x03, 0x0b, 0x07,
+ 0x0a, 0x6c, 0x02, 0xeb, 0x37, 0x31, 0x07, 0x1f, 0x5d, 0x18, 0x17, 0x01,
+ 0x01, 0x2f, 0x7e, 0x5b, 0x23, 0x3c, 0x24, 0x1c, 0x1b, 0x20, 0x05, 0x0c,
+ 0x1a, 0x6f, 0xbb, 0x5f, 0x25, 0x15, 0x10, 0x40, 0x2c, 0x1f, 0x10, 0x86,
+ 0x3a, 0x06, 0x0b, 0x0a, 0x06, 0x06, 0x24, 0x22, 0x1e, 0x3b, 0x1a, 0x12,
+ 0x76, 0x52, 0x15, 0x12, 0xfe, 0xd4, 0x07, 0x09, 0x18, 0x1d, 0x16, 0x24,
+ 0x58, 0x24, 0x2b, 0x7c, 0x19, 0x89, 0x13, 0x8d, 0x89, 0xb6, 0x12, 0x21,
+ 0x35, 0x44, 0x58, 0x26, 0x50, 0x59, 0x3b, 0x02, 0xb6, 0x39, 0x44, 0x6f,
+ 0x1e, 0x36, 0xc2, 0x1d, 0x06, 0x0f, 0x0b, 0x0d, 0x62, 0x27, 0x6e, 0x95,
+ 0x32, 0x0f, 0x0c, 0x0b, 0x06, 0x0b, 0x1f, 0x38, 0x1a, 0x33, 0xfe, 0x65,
+ 0x46, 0x5d, 0x0c, 0x08, 0x13, 0x04, 0x01, 0x14, 0x06, 0x07, 0x34, 0x54,
+ 0x26, 0x03, 0x1f, 0x16, 0x0a, 0x07, 0x0c, 0x16, 0x26, 0x20, 0x12, 0x0c,
+ 0x2f, 0x35, 0x30, 0x24, 0x3f, 0x2d, 0x20, 0x02, 0x31, 0x40, 0x1b, 0x11,
+ 0x26, 0x11, 0x06, 0x05, 0x10, 0x09, 0x33, 0x6c, 0x0f, 0x0a, 0x17, 0x17,
+ 0x4b, 0x0f, 0x0b, 0x0a, 0x05, 0x19, 0x03, 0x05, 0x0d, 0x43, 0x04, 0x22,
+ 0x50, 0x31, 0x16, 0xd6, 0x09, 0x0b, 0x9f, 0xb7, 0x3a, 0x30, 0x33, 0x3c,
+ 0x08, 0x44, 0x3a, 0x35, 0x58, 0x49, 0x2e, 0x29, 0x06, 0x07, 0x01, 0x44,
+ 0x04, 0x07, 0x13, 0x26, 0xfe, 0x5b, 0x14, 0x2b, 0x2d, 0x31, 0x3a, 0x0d,
+ 0x0c, 0x11, 0x10, 0x09, 0x09, 0x15, 0x17, 0x09, 0x05, 0x71, 0x12, 0x14,
+ 0x2f, 0x41, 0x38, 0x09, 0x12, 0x0a, 0x0a, 0x12, 0x11, 0x0b, 0x06, 0x67,
+ 0x00, 0x08, 0x00, 0x26, 0x00, 0xa9, 0x05, 0xc6, 0x05, 0x6c, 0x00, 0x06,
+ 0x00, 0x39, 0x00, 0x4c, 0x00, 0x70, 0x00, 0x7b, 0x00, 0x7f, 0x00, 0x89,
+ 0x00, 0x8d, 0x00, 0x00, 0x13, 0x16, 0x37, 0x36, 0x35, 0x34, 0x27, 0x01,
+ 0x22, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x2b, 0x01, 0x22, 0x27, 0x0f,
+ 0x01, 0x13, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x07, 0x17, 0x16, 0x33, 0x32, 0x37, 0x33, 0x16, 0x15, 0x14, 0x07, 0x23,
+ 0x35, 0x06, 0x25, 0x36, 0x37, 0x36, 0x37, 0x01, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x0f, 0x01, 0x16, 0x15, 0x14, 0x07, 0x36, 0x01, 0x22, 0x2f,
+ 0x01, 0x07, 0x14, 0x07, 0x36, 0x37, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x07, 0x16, 0x15, 0x14, 0x07, 0x32, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x06, 0x37, 0x16, 0x15,
+ 0x14, 0x07, 0x15, 0x33, 0x36, 0x35, 0x34, 0x27, 0x05, 0x36, 0x37, 0x0f,
+ 0x01, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x36, 0x35, 0x34, 0x05, 0x07,
+ 0x37, 0x26, 0xc2, 0x19, 0x12, 0x0d, 0x0e, 0x03, 0x18, 0x2a, 0x62, 0x2b,
+ 0x1a, 0x22, 0x87, 0x43, 0x1d, 0x5a, 0x4a, 0x22, 0x50, 0xed, 0x74, 0x06,
+ 0x0d, 0x3e, 0x19, 0x17, 0x54, 0x6e, 0x3a, 0x3c, 0x1f, 0x20, 0x2f, 0x38,
+ 0x89, 0x29, 0x35, 0x21, 0x1b, 0x0c, 0xab, 0xb8, 0x27, 0x24, 0x31, 0x05,
+ 0xcb, 0x50, 0x38, 0xdf, 0x62, 0xfd, 0x0f, 0x1e, 0x1b, 0x07, 0x05, 0x01,
+ 0x2c, 0x20, 0x0f, 0x1c, 0x50, 0xd4, 0x30, 0x1f, 0x12, 0x2a, 0x27, 0x24,
+ 0x03, 0x4d, 0x2f, 0x17, 0xd9, 0x68, 0x4b, 0x39, 0x4f, 0x0e, 0x21, 0x4c,
+ 0x74, 0x38, 0x16, 0x1f, 0x12, 0x67, 0x43, 0x39, 0x43, 0x24, 0x57, 0x29,
+ 0x2a, 0x2f, 0x7c, 0x26, 0x2d, 0x16, 0x43, 0x2d, 0x29, 0x8e, 0x2b, 0x38,
+ 0xfd, 0x05, 0x4b, 0x0c, 0x92, 0x51, 0x65, 0x2b, 0x1c, 0x27, 0x15, 0xfe,
+ 0xc3, 0x2c, 0x54, 0x06, 0x01, 0xf0, 0x03, 0x27, 0x1f, 0x1f, 0x20, 0x10,
+ 0xfe, 0xc7, 0x0e, 0x05, 0x10, 0x08, 0x3b, 0x63, 0x73, 0x01, 0x0c, 0x12,
+ 0x20, 0x1a, 0x2f, 0xe8, 0x5e, 0x22, 0x7c, 0x59, 0x2f, 0x1a, 0x0d, 0x34,
+ 0xab, 0x32, 0x38, 0x19, 0x1d, 0xdb, 0x87, 0x1d, 0x1e, 0x83, 0xb4, 0xcf,
+ 0x95, 0x6c, 0x25, 0xe9, 0x25, 0x6f, 0x1d, 0x0f, 0x01, 0x74, 0x1e, 0x0e,
+ 0xe9, 0x35, 0x6f, 0x41, 0x3d, 0x27, 0x59, 0x24, 0x09, 0x01, 0x61, 0x10,
+ 0x9d, 0x85, 0xa3, 0x54, 0x02, 0x2a, 0x0d, 0x16, 0x12, 0x10, 0x27, 0x01,
+ 0x27, 0x47, 0x2b, 0x2d, 0x0d, 0x0b, 0x0c, 0x06, 0x25, 0x5f, 0x6b, 0x6a,
+ 0x7e, 0x07, 0x1d, 0x72, 0x8d, 0x7d, 0x6a, 0x4c, 0x60, 0xd0, 0x86, 0x7c,
+ 0xef, 0x5c, 0x67, 0xc3, 0x4b, 0x1a, 0x40, 0x2f, 0x1e, 0x14, 0x03, 0x2e,
+ 0x38, 0x35, 0x96, 0x63, 0x28, 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0xa3,
+ 0x00, 0x9a, 0x05, 0x37, 0x05, 0xaf, 0x00, 0x13, 0x00, 0x19, 0x00, 0x20,
+ 0x00, 0x28, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x53, 0x00, 0x00, 0x01, 0x3e,
+ 0x01, 0x35, 0x34, 0x2f, 0x01, 0x06, 0x23, 0x14, 0x07, 0x06, 0x23, 0x14,
+ 0x07, 0x17, 0x16, 0x33, 0x32, 0x36, 0x01, 0x3f, 0x01, 0x0f, 0x02, 0x13,
+ 0x37, 0x01, 0x13, 0x25, 0x01, 0x13, 0x05, 0x01, 0x33, 0x32, 0x35, 0x34,
+ 0x27, 0x01, 0x00, 0x36, 0x35, 0x34, 0x27, 0x01, 0x07, 0x01, 0x16, 0x33,
+ 0x01, 0x3e, 0x01, 0x37, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x0e,
+ 0x01, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37,
+ 0x3e, 0x01, 0x17, 0x07, 0x01, 0x16, 0x33, 0x32, 0x27, 0x04, 0xa1, 0x07,
+ 0x0b, 0x01, 0x36, 0x14, 0x1b, 0x31, 0x30, 0x42, 0x14, 0xd5, 0x07, 0x07,
+ 0x09, 0x17, 0xfc, 0xda, 0x89, 0x0c, 0x83, 0x8a, 0x0c, 0x76, 0xef, 0x02,
+ 0x3d, 0xa6, 0xfd, 0xa9, 0xfd, 0xc4, 0x0f, 0x01, 0x91, 0x01, 0xd8, 0x02,
+ 0x39, 0x02, 0xfd, 0xfb, 0x01, 0x7a, 0x31, 0x06, 0xfe, 0x2f, 0x66, 0x01,
+ 0xd2, 0x0f, 0x0d, 0xfd, 0xb0, 0x0c, 0x1c, 0x0e, 0x0c, 0x09, 0x0d, 0x0f,
+ 0x05, 0x05, 0x11, 0x0d, 0x0c, 0x1a, 0x10, 0x0c, 0x08, 0x0d, 0x0e, 0x03,
+ 0x05, 0x12, 0x28, 0x72, 0x02, 0x04, 0x0a, 0x09, 0x34, 0x01, 0x01, 0x40,
+ 0x08, 0x1c, 0x0a, 0x05, 0x08, 0xee, 0x17, 0x48, 0x36, 0x37, 0x1c, 0x18,
+ 0x3b, 0x02, 0x0b, 0x02, 0xf9, 0x98, 0x92, 0x0d, 0x98, 0x92, 0x01, 0x7a,
+ 0x12, 0xfd, 0x83, 0xfd, 0x68, 0xb8, 0x02, 0x7c, 0x01, 0x09, 0x14, 0xfd,
+ 0xf3, 0x38, 0x0a, 0x0c, 0x02, 0x3e, 0xfc, 0xb6, 0x36, 0x21, 0x0f, 0x11,
+ 0x02, 0x06, 0x71, 0xfd, 0xfa, 0x06, 0x02, 0xea, 0x0d, 0x15, 0x05, 0x04,
+ 0x11, 0x0d, 0x0a, 0x0e, 0x10, 0x1f, 0x0d, 0x0e, 0x14, 0x05, 0x04, 0x0e,
+ 0x10, 0x0b, 0x0d, 0x10, 0x1e, 0xf4, 0x0e, 0xfd, 0xc2, 0x02, 0x42, 0x00,
+ 0x00, 0x07, 0x00, 0x2f, 0x01, 0x96, 0x05, 0xe7, 0x04, 0x3e, 0x00, 0x11,
+ 0x00, 0x17, 0x00, 0x1e, 0x00, 0x25, 0x00, 0x2b, 0x00, 0x3f, 0x00, 0x46,
+ 0x00, 0x00, 0x00, 0x34, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x14, 0x07, 0x16,
+ 0x14, 0x07, 0x16, 0x15, 0x37, 0x36, 0x37, 0x36, 0x05, 0x35, 0x27, 0x07,
+ 0x15, 0x17, 0x03, 0x37, 0x21, 0x09, 0x01, 0x21, 0x27, 0x01, 0x21, 0x36,
+ 0x35, 0x34, 0x27, 0x21, 0x00, 0x34, 0x27, 0x21, 0x15, 0x21, 0x24, 0x34,
+ 0x36, 0x37, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07,
+ 0x0e, 0x01, 0x22, 0x26, 0x27, 0x26, 0x17, 0x07, 0x21, 0x36, 0x35, 0x34,
+ 0x27, 0x05, 0x13, 0x07, 0x06, 0x04, 0x09, 0xbd, 0x13, 0x2e, 0x2e, 0x13,
+ 0xbd, 0x09, 0x04, 0x06, 0xfc, 0x16, 0x55, 0x54, 0x54, 0x9d, 0x9d, 0x02,
+ 0xfd, 0x02, 0x1c, 0xfd, 0xe4, 0xfd, 0x03, 0x9d, 0x01, 0x28, 0x02, 0x6f,
+ 0x16, 0x1f, 0xfd, 0x52, 0x02, 0xf6, 0x2d, 0xfd, 0x9a, 0x02, 0x66, 0xfc,
+ 0xc7, 0x06, 0x08, 0x06, 0x10, 0x12, 0x10, 0x07, 0x07, 0x06, 0x06, 0x07,
+ 0x07, 0x10, 0x12, 0x10, 0x06, 0x08, 0xb2, 0x48, 0x02, 0xae, 0x1f, 0x16,
+ 0x02, 0xde, 0x18, 0x15, 0x09, 0x07, 0x06, 0x7e, 0x21, 0x14, 0x38, 0x90,
+ 0x38, 0x14, 0x21, 0x7e, 0x06, 0x07, 0x09, 0x4b, 0xd8, 0x70, 0x70, 0xd8,
+ 0x70, 0x01, 0x68, 0xc8, 0xfe, 0xac, 0xfe, 0xac, 0xc8, 0x01, 0x2c, 0x19,
+ 0x17, 0x1b, 0x19, 0xfe, 0xc4, 0x70, 0x18, 0xa0, 0x3c, 0x28, 0x23, 0x0f,
+ 0x0e, 0x10, 0x10, 0x0e, 0x0f, 0x23, 0x28, 0x23, 0x0f, 0x0e, 0x10, 0x10,
+ 0x0e, 0x0f, 0x69, 0x64, 0x19, 0x1b, 0x17, 0x19, 0x00, 0x07, 0x00, 0xa3,
+ 0x00, 0x9a, 0x05, 0x37, 0x05, 0xaf, 0x00, 0x13, 0x00, 0x19, 0x00, 0x20,
+ 0x00, 0x28, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x53, 0x00, 0x00, 0x01, 0x2e,
+ 0x01, 0x23, 0x22, 0x0f, 0x01, 0x16, 0x15, 0x32, 0x17, 0x16, 0x15, 0x32,
+ 0x17, 0x37, 0x36, 0x35, 0x34, 0x26, 0x01, 0x27, 0x1f, 0x02, 0x27, 0x07,
+ 0x27, 0x03, 0x01, 0x25, 0x03, 0x01, 0x27, 0x17, 0x01, 0x36, 0x35, 0x34,
+ 0x2b, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x01, 0x17, 0x01, 0x36, 0x35,
+ 0x01, 0x2e, 0x01, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x1e,
+ 0x01, 0x17, 0x1e, 0x01, 0x17, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x27,
+ 0x2e, 0x01, 0x13, 0x01, 0x36, 0x23, 0x22, 0x07, 0x01, 0x04, 0xa1, 0x08,
+ 0x17, 0x09, 0x07, 0x07, 0xd5, 0x14, 0x42, 0x30, 0x31, 0x1b, 0x14, 0x36,
+ 0x01, 0x0b, 0xfc, 0xcb, 0x84, 0x0c, 0x8a, 0x83, 0x0c, 0x97, 0xb2, 0x0f,
+ 0x02, 0x3c, 0x02, 0x57, 0xa6, 0xfd, 0xc3, 0x10, 0x0c, 0x02, 0x05, 0x02,
+ 0x39, 0x02, 0x21, 0x31, 0x1e, 0x0d, 0x0f, 0xfe, 0x2e, 0x66, 0x01, 0xd1,
+ 0x06, 0xfd, 0x61, 0x0c, 0x12, 0x05, 0x03, 0x0e, 0x0d, 0x08, 0x0c, 0x10,
+ 0x1a, 0x0c, 0x0d, 0x11, 0x05, 0x05, 0x0f, 0x0d, 0x09, 0x0c, 0x0e, 0x1c,
+ 0x10, 0x01, 0xd8, 0x01, 0x34, 0x09, 0x0a, 0xfd, 0xfc, 0x05, 0x09, 0x09,
+ 0x0b, 0x02, 0x3b, 0x18, 0x1c, 0x37, 0x36, 0x48, 0x17, 0xee, 0x08, 0x05,
+ 0x0a, 0x1c, 0xfd, 0x18, 0x0d, 0x92, 0x98, 0x0d, 0x92, 0xd5, 0xc6, 0x01,
+ 0x09, 0x02, 0x7c, 0xb8, 0xfd, 0x68, 0xfd, 0x83, 0xec, 0x7f, 0x02, 0x3e,
+ 0x0c, 0x0a, 0x38, 0x88, 0x36, 0x06, 0xfd, 0xfa, 0x71, 0x02, 0x06, 0x11,
+ 0x0f, 0xfd, 0x6d, 0x0e, 0x1e, 0x10, 0x0d, 0x0b, 0x10, 0x0e, 0x04, 0x05,
+ 0x14, 0x0e, 0x0d, 0x1f, 0x10, 0x0e, 0x0a, 0x0d, 0x11, 0x04, 0x05, 0x15,
+ 0x01, 0x0f, 0x02, 0x0c, 0x42, 0x02, 0xfd, 0xc2, 0x00, 0x02, 0x00, 0x4f,
+ 0x01, 0x7b, 0x05, 0x73, 0x04, 0x5b, 0x00, 0x25, 0x00, 0x47, 0x00, 0x00,
+ 0x12, 0x10, 0x27, 0x32, 0x33, 0x20, 0x25, 0x01, 0x15, 0x25, 0x2e, 0x01,
+ 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x14, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x32, 0x37, 0x3e, 0x01, 0x37, 0x25, 0x15, 0x01, 0x24, 0x21,
+ 0x22, 0x23, 0x12, 0x14, 0x07, 0x32, 0x33, 0x32, 0x05, 0x25, 0x05, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x05, 0x25, 0x04, 0x23, 0x22, 0x23,
+ 0x7c, 0x2d, 0x07, 0x07, 0x01, 0x07, 0x01, 0xe2, 0x02, 0x2d, 0xfd, 0xf9,
+ 0x05, 0x0c, 0x11, 0x0b, 0x1b, 0x0c, 0x0d, 0x09, 0x0a, 0x0a, 0x0c, 0x08,
+ 0x09, 0x0d, 0x0c, 0x1b, 0x0b, 0x11, 0x0c, 0x05, 0x02, 0x07, 0xfd, 0xd3,
+ 0xfe, 0x1e, 0xfe, 0xf9, 0x07, 0x07, 0x8a, 0x15, 0x04, 0x04, 0xa0, 0x01,
+ 0xda, 0x01, 0x8b, 0xfe, 0xc0, 0x14, 0x19, 0x17, 0x38, 0x17, 0x18, 0x14,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x18, 0x17, 0x38, 0x17, 0x19, 0x14, 0x01,
+ 0x40, 0xfe, 0x75, 0xfe, 0x26, 0xa0, 0x04, 0x04, 0x02, 0x49, 0x01, 0x44,
+ 0x60, 0x6e, 0xfe, 0xed, 0x53, 0x1c, 0x08, 0x10, 0x08, 0x06, 0x06, 0x06,
+ 0x0a, 0x09, 0x1d, 0x20, 0x1f, 0x07, 0x0a, 0x06, 0x06, 0x06, 0x08, 0x10,
+ 0x08, 0x1c, 0x53, 0xfe, 0xed, 0x6e, 0x01, 0x47, 0x8a, 0x59, 0x6e, 0xb9,
+ 0x18, 0x15, 0x0c, 0x0b, 0x0b, 0x0c, 0x15, 0x17, 0x35, 0x3e, 0x35, 0x17,
+ 0x15, 0x0c, 0x0b, 0x0b, 0x0c, 0x15, 0x18, 0xb9, 0x6e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x7c, 0x01, 0xad, 0x05, 0x73, 0x04, 0x29, 0x00, 0x28,
+ 0x00, 0x00, 0x01, 0x25, 0x15, 0x01, 0x24, 0x23, 0x22, 0x23, 0x36, 0x34,
+ 0x27, 0x32, 0x33, 0x32, 0x25, 0x01, 0x15, 0x25, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x36, 0x03, 0x84, 0x01, 0xef, 0xfd,
+ 0xd3, 0xfe, 0x21, 0xdf, 0x06, 0x06, 0x2d, 0x2d, 0x06, 0x06, 0xdf, 0x01,
+ 0xdf, 0x02, 0x2d, 0xfe, 0x11, 0x06, 0x0e, 0x0c, 0x11, 0x0f, 0x26, 0x0f,
+ 0x10, 0x0d, 0x0d, 0x0e, 0x0e, 0x0d, 0x0d, 0x10, 0x0f, 0x26, 0x0f, 0x11,
+ 0x0c, 0x0e, 0x02, 0xc5, 0x1c, 0x21, 0xfe, 0xed, 0x6e, 0x60, 0xe0, 0x60,
+ 0x6e, 0xfe, 0xed, 0x21, 0x1d, 0x11, 0x0f, 0x0e, 0x08, 0x08, 0x08, 0x08,
+ 0x0e, 0x0f, 0x23, 0x15, 0x14, 0x23, 0x0f, 0x0e, 0x08, 0x08, 0x08, 0x08,
+ 0x0e, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x14, 0x00, 0xc6, 0x04, 0xcf,
+ 0x05, 0x0a, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x12, 0x13, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x00, 0x01,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x01,
+ 0x98, 0x23, 0x12, 0x24, 0x0f, 0x0c, 0x0c, 0xfd, 0xd7, 0x38, 0x7a, 0x1c,
+ 0x14, 0x1d, 0xfe, 0xa4, 0xfe, 0xd7, 0x14, 0x40, 0x41, 0x0c, 0x1f, 0x29,
+ 0x2f, 0x3f, 0x27, 0x02, 0x8e, 0x40, 0x78, 0x14, 0x01, 0xc2, 0x01, 0x16,
+ 0x48, 0x0c, 0x09, 0x0e, 0x29, 0xfe, 0x30, 0xfd, 0xfc, 0x24, 0x06, 0x0f,
+ 0x8a, 0x99, 0x27, 0x2a, 0x27, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0xd5,
+ 0x00, 0xb2, 0x05, 0x32, 0x05, 0x0c, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x12, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x00, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x01, 0x98, 0x23, 0x12, 0x24, 0x0f, 0x0c,
+ 0x0c, 0xfd, 0xd7, 0x5b, 0x57, 0x72, 0x17, 0x0a, 0x14, 0xfd, 0xbd, 0x6f,
+ 0x26, 0x88, 0x2d, 0x32, 0x15, 0x33, 0x41, 0x3f, 0x57, 0x2b, 0x03, 0x1a,
+ 0x40, 0x78, 0x14, 0x01, 0x9d, 0xaf, 0x4a, 0x08, 0x03, 0x16, 0x12, 0x1b,
+ 0xfd, 0x1e, 0xde, 0x4c, 0x1a, 0x0c, 0x8d, 0xb2, 0x86, 0x31, 0x20, 0x2c,
+ 0x00, 0x01, 0x00, 0xe9, 0x00, 0x94, 0x05, 0x20, 0x05, 0x41, 0x00, 0x0b,
+ 0x00, 0x00, 0x09, 0x01, 0x07, 0x09, 0x01, 0x27, 0x09, 0x01, 0x37, 0x09,
+ 0x01, 0x17, 0x03, 0x83, 0x01, 0x9b, 0x7f, 0xfe, 0x65, 0xfe, 0x65, 0x80,
+ 0x01, 0x9b, 0xfe, 0x65, 0x80, 0x01, 0x9b, 0x01, 0x9c, 0x7f, 0x02, 0xea,
+ 0xfe, 0x37, 0x8d, 0x01, 0xc9, 0xfe, 0x37, 0x8d, 0x01, 0xc9, 0x01, 0xc9,
+ 0x8d, 0xfe, 0x38, 0x01, 0xc9, 0x8d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x9d,
+ 0x00, 0x3f, 0x05, 0x6b, 0x05, 0x96, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x0b,
+ 0x04, 0x1c, 0x01, 0x4f, 0xfe, 0xe8, 0xfe, 0xb1, 0xfe, 0xb1, 0xfe, 0xe9,
+ 0x01, 0x4e, 0xfe, 0xb2, 0x01, 0x17, 0x01, 0x4f, 0x01, 0x4f, 0x01, 0x18,
+ 0x02, 0xea, 0xfe, 0x8c, 0xfe, 0xc9, 0x01, 0x74, 0xfe, 0x8c, 0x01, 0x37,
+ 0x01, 0x74, 0x01, 0x74, 0x01, 0x37, 0xfe, 0x8c, 0x01, 0x75, 0xfe, 0xc9,
+ 0x00, 0x01, 0x00, 0xd8, 0xff, 0xee, 0x05, 0x0d, 0x05, 0xdc, 0x00, 0x42,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x03, 0x16, 0x17, 0x16, 0x15, 0x14, 0x0f, 0x01,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x03,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x12, 0x13,
+ 0x02, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x04, 0x79, 0x09,
+ 0x0e, 0x10, 0x10, 0x1a, 0x0f, 0x0e, 0x17, 0x0e, 0x13, 0xbc, 0xb0, 0x49,
+ 0x81, 0x0a, 0x1b, 0x1c, 0x03, 0x14, 0x17, 0x0b, 0x17, 0x12, 0x6c, 0x73,
+ 0x9b, 0xc8, 0x1d, 0x44, 0x21, 0x03, 0x2e, 0x0a, 0x04, 0x19, 0xb7, 0xcd,
+ 0x6d, 0x24, 0x09, 0x11, 0x11, 0x0e, 0x0e, 0x14, 0x08, 0x0c, 0x10, 0x1a,
+ 0x1c, 0x09, 0x31, 0x4f, 0x80, 0xb8, 0x15, 0x05, 0xdc, 0x10, 0x10, 0x1a,
+ 0x33, 0x1b, 0x11, 0x15, 0x1b, 0x17, 0xe2, 0xfe, 0xf1, 0xc6, 0xef, 0x14,
+ 0x0c, 0x17, 0x19, 0x16, 0x0c, 0x14, 0x1e, 0x10, 0x12, 0x1a, 0x9a, 0xd0,
+ 0xe0, 0xfe, 0x8a, 0x36, 0x2a, 0x1c, 0x3d, 0x50, 0x1f, 0x0e, 0x2a, 0x01,
+ 0x3e, 0x01, 0x0a, 0x01, 0x22, 0x9d, 0x23, 0x0a, 0x0e, 0x1a, 0x1a, 0x1d,
+ 0x11, 0x0c, 0x10, 0x1e, 0xa8, 0x98, 0xb8, 0xcc, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xe2, 0x00, 0x00, 0x05, 0x6e, 0x05, 0xea, 0x00, 0x52,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x36, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x03, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x02, 0x07, 0x06, 0x2b, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x26, 0x03, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x12, 0x37,
+ 0x36, 0x04, 0xcc, 0x1a, 0x18, 0x12, 0x07, 0x18, 0x09, 0x1c, 0x0d, 0x0d,
+ 0x0f, 0xd9, 0xd3, 0x85, 0x85, 0x0f, 0x1a, 0x12, 0x22, 0x02, 0x0c, 0x16,
+ 0x1d, 0x20, 0x1b, 0x07, 0x0d, 0x20, 0x18, 0x15, 0x18, 0x50, 0x6d, 0xcf,
+ 0x4f, 0x0f, 0x13, 0x02, 0x10, 0x0f, 0x0e, 0x02, 0x12, 0x10, 0x16, 0x1a,
+ 0x21, 0x1b, 0x08, 0x08, 0x10, 0x15, 0x75, 0xb1, 0x6e, 0x59, 0x14, 0x15,
+ 0x0e, 0x14, 0x17, 0x2c, 0x01, 0x09, 0x15, 0x0f, 0x27, 0x0c, 0x5f, 0x87,
+ 0xd0, 0xe0, 0x0b, 0x05, 0xea, 0x1e, 0x16, 0x3a, 0x01, 0x05, 0x0c, 0x0e,
+ 0x0d, 0x15, 0x28, 0x10, 0xdb, 0xfe, 0xc7, 0xcc, 0xa2, 0x12, 0x18, 0x31,
+ 0x1a, 0x11, 0x02, 0x11, 0x23, 0x3a, 0x18, 0x12, 0x0b, 0x1b, 0x1c, 0x5f,
+ 0xbf, 0xfe, 0xfb, 0x87, 0x1a, 0x24, 0x1f, 0x0d, 0x0c, 0x1e, 0x23, 0x11,
+ 0x1b, 0x2d, 0x03, 0x0d, 0x18, 0x18, 0x15, 0x1f, 0xb0, 0xd4, 0xbd, 0x01,
+ 0x0b, 0x3d, 0x1c, 0x1a, 0x31, 0x20, 0x27, 0x0e, 0x19, 0x32, 0x1a, 0xc4,
+ 0xba, 0x01, 0x08, 0xda, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x64,
+ 0x00, 0x00, 0x05, 0xa4, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11,
+ 0x21, 0x11, 0x25, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x21, 0x03, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21,
+ 0x11, 0x33, 0x03, 0xca, 0xfe, 0x74, 0xfe, 0x81, 0x01, 0x7f, 0x01, 0x8c,
+ 0x01, 0x80, 0xfe, 0xc8, 0x01, 0x92, 0xfe, 0x6e, 0xfd, 0xe4, 0xfe, 0x6f,
+ 0x01, 0x91, 0x02, 0x1c, 0xb4, 0x01, 0x92, 0xfe, 0x6e, 0xb4, 0xfe, 0x6f,
+ 0x01, 0x91, 0xb4, 0x03, 0xc6, 0x01, 0xab, 0xfe, 0x55, 0xfe, 0x48, 0xfe,
+ 0x56, 0x01, 0xaa, 0x01, 0xb8, 0x50, 0xfd, 0xa8, 0xfe, 0x42, 0x01, 0xbe,
+ 0x02, 0x58, 0x01, 0xbf, 0xfd, 0x79, 0xc8, 0xfe, 0x42, 0x01, 0xbe, 0xc8,
+ 0x01, 0xbf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x64, 0x00, 0x00, 0x05, 0xa4,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x03, 0xb8, 0x01, 0xec, 0xfe, 0x14,
+ 0xfe, 0x98, 0xfe, 0x15, 0x01, 0xeb, 0x01, 0x68, 0x03, 0xb2, 0xfe, 0x70,
+ 0xfd, 0xde, 0x02, 0x22, 0x01, 0x90, 0x02, 0x23, 0x00, 0x02, 0x00, 0x64,
+ 0x00, 0x00, 0x05, 0xa4, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x33, 0x35, 0x23, 0x37, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x35, 0x21, 0x11, 0x33, 0x02, 0x99, 0xd6, 0xd6, 0xd7, 0x02, 0x34, 0xfd,
+ 0xcc, 0xd8, 0xfd, 0xcd, 0x02, 0x33, 0xd8, 0x02, 0x73, 0xee, 0x01, 0xf0,
+ 0xfd, 0x8e, 0x02, 0x72, 0xf0, 0x02, 0x73, 0x00, 0x00, 0x02, 0x00, 0x64,
+ 0x00, 0x00, 0x05, 0xa4, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x21, 0x11, 0x21, 0x25, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x11, 0x21, 0x11, 0x21, 0x02, 0x51, 0x01, 0x66, 0xfe, 0x9a, 0x01, 0x67,
+ 0x01, 0xec, 0xfe, 0x14, 0xfe, 0x98, 0xfe, 0x15, 0x01, 0xeb, 0x01, 0x68,
+ 0x02, 0x23, 0x01, 0x8e, 0x01, 0xfe, 0x70, 0xfd, 0xde, 0x02, 0x22, 0x01,
+ 0x90, 0x02, 0x23, 0x00, 0x00, 0x01, 0x01, 0x30, 0x00, 0x00, 0x04, 0xd9,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x03, 0x70, 0x01, 0x68, 0xfe, 0x98,
+ 0xd8, 0xfe, 0x98, 0x01, 0x68, 0xd8, 0x04, 0x45, 0xf0, 0xfc, 0xab, 0x03,
+ 0x55, 0xf0, 0x01, 0x90, 0x00, 0x02, 0x00, 0xf1, 0x00, 0x00, 0x04, 0xe2,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x33, 0x17, 0x11,
+ 0x21, 0x11, 0x21, 0x27, 0x11, 0x23, 0x27, 0x11, 0x21, 0x11, 0x21, 0x17,
+ 0x07, 0x11, 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x11, 0x21, 0x35,
+ 0x03, 0xd3, 0x87, 0x87, 0xfe, 0xf2, 0xfe, 0xb3, 0x87, 0x87, 0x87, 0x01,
+ 0x0e, 0x01, 0x4d, 0x87, 0xb4, 0xc6, 0xfe, 0xf2, 0x01, 0x0e, 0xc6, 0x01,
+ 0x0e, 0x04, 0xa9, 0x96, 0xfe, 0x8e, 0xfd, 0x5f, 0x96, 0x02, 0x0b, 0x96,
+ 0x01, 0x72, 0x01, 0x2c, 0x96, 0xfa, 0x01, 0x2c, 0xfe, 0xd4, 0xdc, 0xfd,
+ 0x5f, 0x02, 0xa1, 0xdc, 0x00, 0x03, 0x01, 0x1e, 0x00, 0x00, 0x04, 0xeb,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x27, 0x33,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x03, 0x33,
+ 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x03, 0xa6,
+ 0xfe, 0xbc, 0xfc, 0xfc, 0x01, 0x44, 0xfc, 0xb4, 0xfc, 0xfc, 0xfe, 0x2c,
+ 0xfc, 0xfc, 0x01, 0xd4, 0x90, 0xfc, 0xfc, 0xb4, 0xfc, 0xfc, 0xb4, 0x04,
+ 0x6d, 0x01, 0x18, 0xfe, 0xe8, 0xfe, 0x84, 0xfd, 0x5f, 0x02, 0xa1, 0x01,
+ 0x7c, 0x50, 0xfd, 0xe4, 0xfd, 0x5f, 0x02, 0xa1, 0x02, 0x1c, 0x01, 0x18,
+ 0xfe, 0x48, 0xdc, 0xfd, 0x5f, 0x02, 0xa1, 0xdc, 0x01, 0x18, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x64, 0x00, 0x00, 0x05, 0xa4, 0x05, 0xd5, 0x00, 0x4b,
+ 0x00, 0x00, 0x01, 0x23, 0x22, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x07,
+ 0x11, 0x17, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x3b, 0x01, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x27, 0x21, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x1d, 0x01, 0x33, 0x32, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x35, 0x37, 0x11, 0x27, 0x26, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x2b, 0x01,
+ 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x17, 0x21, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x02, 0xc1, 0x6f, 0x5a, 0xa1, 0x42,
+ 0x3b, 0x28, 0x20, 0x2d, 0x16, 0x17, 0x20, 0x26, 0x3d, 0x3e, 0xa1, 0x5e,
+ 0x6f, 0x45, 0x40, 0x3c, 0x55, 0x4a, 0x19, 0x48, 0x04, 0x09, 0x31, 0x30,
+ 0x4a, 0x56, 0x3c, 0x42, 0x42, 0x6e, 0x5e, 0xa1, 0x3e, 0x3d, 0x26, 0x21,
+ 0x2d, 0x17, 0x16, 0x21, 0x27, 0x3c, 0x3f, 0xa4, 0x5a, 0x6e, 0x44, 0x40,
+ 0x3c, 0x56, 0x4a, 0x18, 0x49, 0xfb, 0xf7, 0x30, 0x31, 0x4a, 0x55, 0x3c,
+ 0x42, 0x43, 0x02, 0xa0, 0x4b, 0x49, 0x42, 0x60, 0x4f, 0x1b, 0x54, 0x04,
+ 0x7c, 0x38, 0x37, 0x4f, 0x5c, 0x46, 0x47, 0x4b, 0x7a, 0x64, 0xb6, 0x47,
+ 0x42, 0x2b, 0x25, 0x32, 0x19, 0x19, 0x25, 0x2b, 0x42, 0x49, 0xb4, 0x64,
+ 0x7a, 0x4b, 0x47, 0x46, 0x5c, 0x4f, 0x1b, 0x54, 0xfb, 0x84, 0x38, 0x37,
+ 0x4f, 0x60, 0x42, 0x48, 0x4c, 0x7b, 0x64, 0xb6, 0x47, 0x42, 0x2b, 0x25,
+ 0x32, 0x19, 0x19, 0x25, 0x2b, 0x42, 0x49, 0xb4, 0x64, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0xa8, 0xff, 0xe5, 0x05, 0x61, 0x05, 0xf3, 0x00, 0x0b,
+ 0x00, 0x11, 0x00, 0x14, 0x00, 0x17, 0x00, 0x1a, 0x00, 0x1d, 0x00, 0x20,
+ 0x00, 0x23, 0x00, 0x00, 0x01, 0x13, 0x21, 0x03, 0x13, 0x21, 0x0b, 0x01,
+ 0x21, 0x13, 0x03, 0x21, 0x17, 0x03, 0x13, 0x21, 0x13, 0x0b, 0x01, 0x07,
+ 0x33, 0x1f, 0x01, 0x37, 0x03, 0x07, 0x33, 0x05, 0x23, 0x17, 0x03, 0x27,
+ 0x07, 0x13, 0x37, 0x23, 0x03, 0x04, 0xca, 0x01, 0x92, 0xca, 0xca, 0xfe,
+ 0x6e, 0xca, 0xc9, 0xfe, 0x6d, 0xca, 0xca, 0x01, 0x93, 0x34, 0x96, 0x96,
+ 0x01, 0x2b, 0x95, 0x95, 0x96, 0x61, 0xc2, 0x9c, 0x62, 0x61, 0x61, 0x62,
+ 0xc3, 0xfe, 0xa1, 0xc2, 0x61, 0xfd, 0x62, 0x61, 0x61, 0x62, 0xc3, 0x05,
+ 0xf3, 0xfe, 0x7c, 0xfe, 0x7d, 0xfe, 0x7d, 0xfe, 0x7c, 0x01, 0x84, 0x01,
+ 0x83, 0x01, 0x83, 0x64, 0xfe, 0xe1, 0xfe, 0xe0, 0x01, 0x20, 0x01, 0x1f,
+ 0x01, 0x1f, 0xbb, 0x64, 0xbb, 0xbb, 0xfe, 0x7d, 0xbc, 0x63, 0xbc, 0x01,
+ 0x1f, 0xbc, 0xbc, 0x01, 0x84, 0xbb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4b,
+ 0xff, 0xe3, 0x05, 0xbd, 0x05, 0xf0, 0x00, 0x43, 0x00, 0x00, 0x01, 0x35,
+ 0x34, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x1d, 0x01, 0x33, 0x32, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x2b, 0x01, 0x15, 0x14, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x3d, 0x01, 0x23, 0x22, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x02, 0xd7, 0x44, 0x28, 0x31, 0x32,
+ 0x6c, 0x33, 0x30, 0x27, 0x45, 0x1d, 0xa7, 0x6e, 0x3f, 0x6a, 0x5a, 0x2c,
+ 0x2b, 0x2b, 0x2c, 0x5a, 0x6a, 0x3f, 0x6e, 0xa7, 0x1d, 0x45, 0x27, 0x30,
+ 0x33, 0x6c, 0x32, 0x31, 0x28, 0x44, 0x1d, 0xa7, 0x6e, 0x3f, 0x6a, 0x5a,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x5a, 0x6a, 0x3f, 0x6e, 0xa7, 0x03, 0x1c, 0x20,
+ 0xba, 0x7a, 0x46, 0x76, 0x64, 0x30, 0x30, 0x30, 0x30, 0x64, 0x76, 0x46,
+ 0x7a, 0xba, 0x20, 0x4c, 0x2c, 0x36, 0x38, 0x78, 0x38, 0x36, 0x2c, 0x4c,
+ 0x20, 0xbb, 0x79, 0x46, 0x76, 0x64, 0x30, 0x31, 0x31, 0x30, 0x64, 0x76,
+ 0x46, 0x79, 0xbb, 0x20, 0x4c, 0x2c, 0x36, 0x38, 0x78, 0x38, 0x36, 0x2c,
+ 0x4c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4d, 0xff, 0xe7, 0x05, 0xbb,
+ 0x05, 0xf0, 0x00, 0x83, 0x00, 0x00, 0x01, 0x26, 0x27, 0x23, 0x06, 0x07,
+ 0x06, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x33, 0x36, 0x37, 0x36, 0x37, 0x35, 0x26, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x15, 0x16,
+ 0x17, 0x16, 0x17, 0x33, 0x36, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x23, 0x06, 0x07, 0x06, 0x07,
+ 0x15, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x35, 0x26, 0x02, 0xb5, 0x0e, 0x09, 0xbf, 0x02,
+ 0x09, 0x12, 0x1a, 0x1d, 0x4a, 0x29, 0x29, 0x49, 0x1d, 0x1c, 0x10, 0x10,
+ 0x10, 0x10, 0x1c, 0x1d, 0x49, 0x29, 0x29, 0x4a, 0x1d, 0x1e, 0x0e, 0x08,
+ 0x03, 0xbf, 0x09, 0x0e, 0x0f, 0x13, 0x0e, 0x12, 0x26, 0x1b, 0x1e, 0x1e,
+ 0x1e, 0x1e, 0x1d, 0x24, 0x24, 0x53, 0x24, 0x24, 0x1c, 0x1e, 0x1f, 0x1f,
+ 0x1e, 0x1f, 0x21, 0x15, 0x0c, 0x13, 0x0f, 0x0f, 0x09, 0xbf, 0x02, 0x08,
+ 0x0e, 0x1e, 0x1d, 0x4a, 0x29, 0x29, 0x4a, 0x1d, 0x1c, 0x10, 0x0f, 0x0f,
+ 0x10, 0x1c, 0x1d, 0x4a, 0x29, 0x29, 0x4a, 0x1d, 0x1a, 0x12, 0x09, 0x01,
+ 0xbf, 0x09, 0x0f, 0x0f, 0x13, 0x0c, 0x15, 0x21, 0x1f, 0x1e, 0x1f, 0x1f,
+ 0x1e, 0x1c, 0x24, 0x24, 0x53, 0x24, 0x24, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e,
+ 0x1b, 0x26, 0x12, 0x0e, 0x13, 0x02, 0x93, 0x11, 0x15, 0x10, 0x14, 0x2a,
+ 0x1e, 0x21, 0x22, 0x22, 0x21, 0x20, 0x28, 0x28, 0x5c, 0x28, 0x28, 0x20,
+ 0x21, 0x22, 0x22, 0x21, 0x23, 0x25, 0x17, 0x0d, 0x15, 0x11, 0x10, 0x0a,
+ 0xd5, 0x02, 0x0a, 0x14, 0x1d, 0x20, 0x52, 0x2e, 0x2d, 0x52, 0x20, 0x1f,
+ 0x12, 0x11, 0x11, 0x12, 0x1f, 0x20, 0x52, 0x2d, 0x2e, 0x52, 0x20, 0x22,
+ 0x0f, 0x09, 0x03, 0xd5, 0x0a, 0x10, 0x11, 0x15, 0x0d, 0x17, 0x25, 0x23,
+ 0x21, 0x22, 0x22, 0x21, 0x20, 0x28, 0x28, 0x5c, 0x28, 0x28, 0x20, 0x21,
+ 0x22, 0x22, 0x21, 0x1e, 0x2a, 0x14, 0x10, 0x15, 0x11, 0x10, 0x0a, 0xd4,
+ 0x03, 0x09, 0x0f, 0x22, 0x20, 0x52, 0x2e, 0x2d, 0x52, 0x20, 0x1f, 0x12,
+ 0x11, 0x11, 0x12, 0x1f, 0x20, 0x52, 0x2d, 0x2e, 0x52, 0x20, 0x1d, 0x14,
+ 0x0a, 0x02, 0xd4, 0x0a, 0x00, 0x01, 0x00, 0x4a, 0xff, 0xe3, 0x05, 0xbe,
+ 0x05, 0xf0, 0x00, 0x83, 0x00, 0x00, 0x01, 0x34, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x15, 0x32, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x2e, 0x01,
+ 0x23, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35,
+ 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x22, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x02, 0xd7, 0x27, 0x21, 0x0c, 0x0f,
+ 0x15, 0x09, 0x24, 0x24, 0x25, 0x23, 0x1c, 0x35, 0x29, 0x67, 0x2b, 0x30,
+ 0x21, 0x22, 0x26, 0x26, 0x22, 0x09, 0x18, 0x07, 0x12, 0x25, 0x23, 0x3d,
+ 0x5b, 0x1e, 0x0c, 0x0b, 0x10, 0x09, 0x23, 0x5a, 0x32, 0x34, 0x59, 0x22,
+ 0x20, 0x16, 0x13, 0x13, 0x16, 0x20, 0x22, 0x59, 0x34, 0x32, 0x5a, 0x23,
+ 0x09, 0x10, 0x0b, 0x0c, 0x25, 0x57, 0x3a, 0x2b, 0x1d, 0x0c, 0x0e, 0x17,
+ 0x09, 0x23, 0x25, 0x26, 0x22, 0x21, 0x30, 0x2a, 0x67, 0x2a, 0x31, 0x20,
+ 0x23, 0x25, 0x24, 0x24, 0x09, 0x16, 0x0f, 0x0b, 0x23, 0x25, 0x39, 0x59,
+ 0x23, 0x0c, 0x0b, 0x10, 0x09, 0x22, 0x5a, 0x33, 0x34, 0x58, 0x23, 0x1d,
+ 0x19, 0x13, 0x13, 0x16, 0x20, 0x23, 0x58, 0x34, 0x37, 0x56, 0x22, 0x09,
+ 0x10, 0x05, 0x12, 0x24, 0x58, 0x03, 0x1c, 0x43, 0x63, 0x22, 0x0e, 0x0c,
+ 0x12, 0x0a, 0x26, 0x64, 0x38, 0x3a, 0x62, 0x26, 0x20, 0x1c, 0x16, 0x16,
+ 0x18, 0x24, 0x26, 0x62, 0x3a, 0x3d, 0x5f, 0x26, 0x0a, 0x12, 0x06, 0x14,
+ 0x28, 0x61, 0x3f, 0x2f, 0x21, 0x0d, 0x10, 0x19, 0x0a, 0x27, 0x29, 0x2a,
+ 0x26, 0x24, 0x36, 0x2f, 0x72, 0x2f, 0x36, 0x24, 0x26, 0x2a, 0x29, 0x27,
+ 0x0a, 0x19, 0x10, 0x0d, 0x27, 0x29, 0x44, 0x65, 0x21, 0x0d, 0x0c, 0x12,
+ 0x0a, 0x27, 0x64, 0x38, 0x3a, 0x62, 0x26, 0x24, 0x18, 0x15, 0x15, 0x18,
+ 0x24, 0x26, 0x62, 0x3a, 0x38, 0x64, 0x27, 0x0a, 0x12, 0x0c, 0x0d, 0x29,
+ 0x61, 0x40, 0x29, 0x27, 0x0e, 0x10, 0x18, 0x0a, 0x28, 0x28, 0x2a, 0x26,
+ 0x20, 0x3a, 0x2e, 0x72, 0x30, 0x36, 0x24, 0x26, 0x2a, 0x2a, 0x26, 0x0a,
+ 0x1a, 0x08, 0x14, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4b,
+ 0xff, 0xe5, 0x05, 0xbd, 0x05, 0xf2, 0x01, 0x30, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x11, 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x21, 0x11, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x16, 0x17, 0x16, 0x17, 0x11, 0x21, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x21, 0x11, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x2e,
+ 0x01, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x03, 0x04, 0x1b, 0x15, 0x18, 0x10, 0x12, 0x0a, 0x09,
+ 0x09, 0x0a, 0x12, 0x0a, 0x12, 0x17, 0x19, 0x1b, 0x16, 0x17, 0x11, 0x12,
+ 0x0a, 0x09, 0x09, 0x0a, 0x24, 0x16, 0x17, 0x1a, 0x1b, 0x15, 0x16, 0x12,
+ 0x0d, 0x09, 0x01, 0x09, 0x0f, 0x0d, 0x11, 0x0a, 0x0a, 0x14, 0x11, 0x12,
+ 0x17, 0x17, 0x19, 0x1a, 0x17, 0x17, 0x12, 0x11, 0x0a, 0x0a, 0x0a, 0x07,
+ 0x08, 0x12, 0x16, 0x17, 0x19, 0x1d, 0x14, 0x17, 0x12, 0x11, 0x0b, 0x09,
+ 0x09, 0x0b, 0x11, 0x14, 0x15, 0x17, 0x1a, 0x19, 0x17, 0x16, 0x12, 0x08,
+ 0x07, 0x0a, 0x14, 0x11, 0x0f, 0x1a, 0x17, 0x1a, 0x16, 0x1a, 0x17, 0x12,
+ 0x11, 0x0a, 0x0a, 0x0a, 0x0a, 0x11, 0x0d, 0x0f, 0xfe, 0xf8, 0x08, 0x0d,
+ 0x0f, 0x1a, 0x15, 0x1b, 0x1a, 0x16, 0x17, 0x11, 0x12, 0x0a, 0x09, 0x09,
+ 0x0a, 0x12, 0x10, 0x18, 0x15, 0x1b, 0x17, 0x19, 0x12, 0x0a, 0x11, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x12, 0x10, 0x18, 0x15, 0x36, 0x15, 0x18, 0x10, 0x12,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x11, 0x0a, 0x12, 0x15, 0x1a, 0x1c, 0x14, 0x18,
+ 0x11, 0x12, 0x0a, 0x09, 0x09, 0x0a, 0x12, 0x11, 0x18, 0x15, 0x1b, 0x18,
+ 0x2f, 0x12, 0x0c, 0x08, 0xfe, 0xf9, 0x0f, 0x0c, 0x13, 0x08, 0x0a, 0x0a,
+ 0x09, 0x12, 0x14, 0x15, 0x17, 0x19, 0x1b, 0x16, 0x17, 0x12, 0x11, 0x0b,
+ 0x08, 0x08, 0x08, 0x09, 0x14, 0x15, 0x17, 0x19, 0x1a, 0x17, 0x17, 0x12,
+ 0x11, 0x0a, 0x09, 0x09, 0x0a, 0x11, 0x0f, 0x1a, 0x17, 0x1a, 0x19, 0x17,
+ 0x17, 0x12, 0x09, 0x08, 0x08, 0x08, 0x0b, 0x11, 0x12, 0x17, 0x16, 0x1b,
+ 0x19, 0x17, 0x17, 0x12, 0x12, 0x09, 0x0a, 0x0a, 0x0a, 0x11, 0x0c, 0x0f,
+ 0x01, 0x07, 0x09, 0x0c, 0x12, 0x17, 0x15, 0x1a, 0x1b, 0x15, 0x18, 0x24,
+ 0x09, 0x09, 0x09, 0x09, 0x12, 0x12, 0x18, 0x14, 0x1c, 0x1a, 0x15, 0x12,
+ 0x0a, 0x12, 0x0a, 0x09, 0x09, 0x0a, 0x12, 0x11, 0x18, 0x14, 0x05, 0xf2,
+ 0x0b, 0x0c, 0x12, 0x14, 0x1a, 0x19, 0x1d, 0x1c, 0x19, 0x1a, 0x14, 0x0a,
+ 0x08, 0x0a, 0x0a, 0x0c, 0x12, 0x14, 0x1a, 0x19, 0x1d, 0x1f, 0x17, 0x19,
+ 0x28, 0x0b, 0x0a, 0x0a, 0x0c, 0x13, 0x0d, 0x11, 0xfe, 0xdb, 0x0a, 0x0e,
+ 0x14, 0x19, 0x17, 0x1e, 0x1d, 0x32, 0x14, 0x14, 0x0b, 0x0a, 0x0a, 0x0b,
+ 0x14, 0x13, 0x1a, 0x18, 0x1e, 0x1c, 0x19, 0x14, 0x0b, 0x14, 0x0b, 0x0a,
+ 0x0a, 0x0b, 0x14, 0x12, 0x1b, 0x18, 0x1d, 0x1e, 0x18, 0x1b, 0x12, 0x16,
+ 0x09, 0x0a, 0x0a, 0x0b, 0x14, 0x0b, 0x14, 0x19, 0x1c, 0x1a, 0x36, 0x13,
+ 0x11, 0x0d, 0x0b, 0x0b, 0x0a, 0x14, 0x14, 0x1a, 0x18, 0x1d, 0x1e, 0x17,
+ 0x19, 0x14, 0x0e, 0x0a, 0xfe, 0xda, 0x12, 0x0d, 0x10, 0x0e, 0x0b, 0x0b,
+ 0x0b, 0x13, 0x14, 0x1a, 0x19, 0x1c, 0x1d, 0x19, 0x1a, 0x14, 0x12, 0x0c,
+ 0x0b, 0x0b, 0x08, 0x09, 0x13, 0x1a, 0x19, 0x1c, 0x1d, 0x1a, 0x19, 0x14,
+ 0x13, 0x0c, 0x0a, 0x0a, 0x0c, 0x13, 0x14, 0x19, 0x1a, 0x1d, 0x1c, 0x19,
+ 0x1a, 0x13, 0x09, 0x08, 0x0b, 0x0b, 0x0c, 0x12, 0x14, 0x1a, 0x19, 0x1d,
+ 0x1c, 0x19, 0x1a, 0x14, 0x13, 0x0b, 0x0b, 0x16, 0x13, 0x0d, 0x12, 0x01,
+ 0x25, 0x09, 0x0e, 0x17, 0x16, 0x18, 0x1e, 0x1c, 0x19, 0x1a, 0x13, 0x16,
+ 0x09, 0x0a, 0x0a, 0x0b, 0x14, 0x12, 0x1b, 0x17, 0x1e, 0x1d, 0x19, 0x13,
+ 0x0c, 0x16, 0x09, 0x0a, 0x0a, 0x0b, 0x14, 0x12, 0x1b, 0x17, 0x3c, 0x17,
+ 0x1b, 0x13, 0x11, 0x0d, 0x0b, 0x0b, 0x0a, 0x14, 0x0b, 0x14, 0x18, 0x1d,
+ 0x1e, 0x17, 0x1b, 0x12, 0x14, 0x0b, 0x0b, 0x0b, 0x0b, 0x14, 0x13, 0x1a,
+ 0x18, 0x1d, 0x1e, 0x17, 0x1a, 0x13, 0x0e, 0x0a, 0x01, 0x25, 0x11, 0x0d,
+ 0x13, 0x0c, 0x0a, 0x0a, 0x0b, 0x28, 0x19, 0x1a, 0x1c, 0x19, 0x1d, 0x1a,
+ 0x14, 0x12, 0x0c, 0x0a, 0x0a, 0x08, 0x0a, 0x14, 0x1a, 0x19, 0x1c, 0x1d,
+ 0x19, 0x1a, 0x14, 0x12, 0x0c, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4e,
+ 0xff, 0xe3, 0x05, 0xbc, 0x05, 0xf5, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x32,
+ 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x33, 0x22, 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x34, 0x02, 0x27, 0x26,
+ 0x27, 0x26, 0x4e, 0x8c, 0x7f, 0x78, 0x68, 0x65, 0x67, 0x63, 0x69, 0x62,
+ 0x7f, 0x7e, 0x8c, 0x8c, 0x7e, 0x7f, 0x62, 0x69, 0x63, 0x67, 0x65, 0x68,
+ 0x78, 0x7f, 0x02, 0xec, 0x3b, 0x38, 0x72, 0x6f, 0x01, 0x14, 0xa1, 0x9d,
+ 0xfe, 0xf0, 0x77, 0x6e, 0x3c, 0x3b, 0x3b, 0x3c, 0x6e, 0x77, 0xfe, 0xf0,
+ 0x9d, 0xa1, 0x01, 0x14, 0x6f, 0x72, 0x38, 0x3b, 0x00, 0x02, 0x00, 0x4e,
+ 0xff, 0xe3, 0x05, 0xbc, 0x05, 0xf5, 0x00, 0x1b, 0x00, 0x37, 0x00, 0x00,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x34, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x14, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x21, 0x32, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35,
+ 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x33, 0x22, 0x07, 0x06, 0x07, 0x06,
+ 0x02, 0x15, 0x34, 0x02, 0x27, 0x26, 0x27, 0x26, 0x01, 0x41, 0x5b, 0x53,
+ 0x4e, 0x43, 0x42, 0x43, 0x40, 0x45, 0x3f, 0x52, 0x52, 0x5c, 0x5c, 0x52,
+ 0x52, 0x3f, 0x45, 0x40, 0x43, 0x42, 0x43, 0x4e, 0x53, 0xfe, 0xb2, 0x8c,
+ 0x7f, 0x78, 0x68, 0x65, 0x67, 0x63, 0x69, 0x62, 0x7f, 0x7e, 0x8c, 0x8c,
+ 0x7e, 0x7f, 0x62, 0x69, 0x63, 0x67, 0x65, 0x68, 0x78, 0x7f, 0x02, 0xec,
+ 0x26, 0x25, 0x4a, 0x48, 0xb3, 0x69, 0x66, 0xb1, 0x4d, 0x48, 0x27, 0x26,
+ 0x26, 0x27, 0x48, 0x4d, 0xb1, 0x66, 0x69, 0xb3, 0x48, 0x4a, 0x25, 0x26,
+ 0x3b, 0x38, 0x72, 0x6f, 0x01, 0x14, 0xa1, 0x9d, 0xfe, 0xf0, 0x77, 0x6e,
+ 0x3c, 0x3b, 0x3b, 0x3c, 0x6e, 0x77, 0xfe, 0xf0, 0x9d, 0xa1, 0x01, 0x14,
+ 0x6f, 0x72, 0x38, 0x3b, 0x00, 0x02, 0x00, 0x2a, 0xff, 0xec, 0x05, 0xdf,
+ 0x05, 0xf3, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x13, 0x25, 0x09, 0x01,
+ 0x05, 0x01, 0x13, 0x25, 0x05, 0x13, 0x01, 0x03, 0x21, 0x01, 0x03, 0x09,
+ 0x01, 0x03, 0x01, 0x21, 0x2a, 0x01, 0xd9, 0x01, 0x01, 0x01, 0x02, 0x01,
+ 0xd8, 0xfe, 0xc9, 0x21, 0xfe, 0x3c, 0xfe, 0x3c, 0x22, 0x01, 0xa2, 0xac,
+ 0xfd, 0xd3, 0x01, 0xc2, 0xac, 0x01, 0xc3, 0x01, 0xc3, 0xac, 0x01, 0xc2,
+ 0xfd, 0xd3, 0x03, 0xa5, 0x83, 0x01, 0xcb, 0xfe, 0x35, 0x83, 0xfe, 0x61,
+ 0xfd, 0xe6, 0xca, 0xca, 0x02, 0x1a, 0x03, 0xec, 0xfd, 0xb3, 0xfe, 0x94,
+ 0xfd, 0xb4, 0x01, 0x6c, 0xfe, 0x94, 0x02, 0x4c, 0x01, 0x6c, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x4d, 0xff, 0xe3, 0x05, 0xbb, 0x05, 0xf0, 0x00, 0x09,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x03, 0x21, 0x01, 0x03, 0x09, 0x01, 0x03,
+ 0x01, 0x21, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02,
+ 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34,
+ 0x12, 0x37, 0x36, 0x37, 0x36, 0x03, 0x04, 0x9b, 0xfe, 0x0b, 0x01, 0x95,
+ 0x9b, 0x01, 0x96, 0x01, 0x96, 0x9b, 0x01, 0x95, 0xfe, 0x0b, 0x9b, 0x8b,
+ 0x80, 0x78, 0x68, 0x65, 0x67, 0x63, 0x69, 0x63, 0x7d, 0x7f, 0xfe, 0xea,
+ 0x80, 0x79, 0x67, 0x65, 0x68, 0x63, 0x6a, 0x61, 0x7f, 0x7e, 0x05, 0xea,
+ 0xfd, 0xee, 0xfe, 0xb8, 0xfd, 0xef, 0x01, 0x48, 0xfe, 0xb8, 0x02, 0x11,
+ 0x01, 0x48, 0x02, 0x18, 0x3b, 0x38, 0x72, 0x6f, 0xfe, 0xec, 0xa1, 0x98,
+ 0xfe, 0xf0, 0x77, 0x70, 0x3a, 0x3b, 0x3b, 0x38, 0x72, 0x6f, 0x01, 0x14,
+ 0x9c, 0x9d, 0x01, 0x10, 0x77, 0x6e, 0x3c, 0x3b, 0x00, 0x02, 0x00, 0x2b,
+ 0xff, 0xed, 0x05, 0xde, 0x05, 0xf2, 0x00, 0x1d, 0x00, 0x27, 0x00, 0x00,
+ 0x00, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x03, 0x13, 0x21, 0x01, 0x13, 0x09,
+ 0x01, 0x13, 0x01, 0x21, 0x03, 0x40, 0x78, 0x33, 0x34, 0x2b, 0x2b, 0x15,
+ 0x15, 0x15, 0x15, 0x2b, 0x2b, 0x34, 0x33, 0x78, 0x34, 0x33, 0x2b, 0x2c,
+ 0x14, 0x16, 0x16, 0x14, 0x2c, 0x2b, 0x33, 0x70, 0xac, 0x02, 0x2d, 0xfe,
+ 0x3e, 0xac, 0xfe, 0x3d, 0xfe, 0x3d, 0xac, 0xfe, 0x3e, 0x02, 0x2d, 0x03,
+ 0xe4, 0x18, 0x1a, 0x2d, 0x32, 0x38, 0x3b, 0x42, 0x41, 0x3b, 0x38, 0x32,
+ 0x2d, 0x1a, 0x18, 0x18, 0x1a, 0x2d, 0x32, 0x38, 0x3b, 0x41, 0x42, 0x3b,
+ 0x38, 0x32, 0x2d, 0x1a, 0x02, 0x26, 0xfd, 0xb3, 0xfe, 0x94, 0xfd, 0xb4,
+ 0x01, 0x6b, 0xfe, 0x95, 0x02, 0x4c, 0x01, 0x6c, 0x00, 0x03, 0x00, 0x2a,
+ 0xff, 0xec, 0x05, 0xdf, 0x05, 0xf3, 0x00, 0x09, 0x00, 0x27, 0x00, 0x31,
+ 0x00, 0x00, 0x13, 0x25, 0x09, 0x01, 0x05, 0x01, 0x13, 0x25, 0x05, 0x13,
+ 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x13, 0x03, 0x21, 0x01, 0x03, 0x09,
+ 0x01, 0x03, 0x01, 0x21, 0x2a, 0x01, 0xd9, 0x01, 0x01, 0x01, 0x02, 0x01,
+ 0xd8, 0xfe, 0xc9, 0x21, 0xfe, 0x3c, 0xfe, 0x3c, 0x22, 0x01, 0x66, 0x78,
+ 0x34, 0x33, 0x2b, 0x2c, 0x14, 0x16, 0x16, 0x14, 0x2c, 0x2b, 0x33, 0x34,
+ 0x78, 0x33, 0x34, 0x2b, 0x2b, 0x15, 0x15, 0x15, 0x15, 0x2b, 0x2b, 0x34,
+ 0x6f, 0xac, 0xfd, 0xd3, 0x01, 0xc2, 0xac, 0x01, 0xc3, 0x01, 0xc3, 0xac,
+ 0x01, 0xc2, 0xfd, 0xd3, 0x03, 0xa5, 0x83, 0x01, 0xcb, 0xfe, 0x35, 0x83,
+ 0xfe, 0x61, 0xfd, 0xe6, 0xca, 0xca, 0x02, 0x1a, 0x01, 0xde, 0x18, 0x1a,
+ 0x2d, 0x32, 0x38, 0x3b, 0x42, 0x41, 0x3b, 0x38, 0x32, 0x2d, 0x1a, 0x18,
+ 0x18, 0x1a, 0x2d, 0x32, 0x38, 0x3b, 0x41, 0x42, 0x3b, 0x38, 0x32, 0x2d,
+ 0x1a, 0x02, 0x26, 0xfd, 0xb3, 0xfe, 0x94, 0xfd, 0xb4, 0x01, 0x6b, 0xfe,
+ 0x95, 0x02, 0x4c, 0x01, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x2b,
+ 0xff, 0xed, 0x05, 0xde, 0x05, 0xf2, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x13, 0x21, 0x07, 0x13, 0x27, 0x07, 0x13, 0x27, 0x21,
+ 0x13, 0x03, 0x21, 0x01, 0x03, 0x09, 0x01, 0x03, 0x01, 0x21, 0x03, 0x13,
+ 0x21, 0x01, 0x13, 0x09, 0x01, 0x13, 0x01, 0x21, 0x03, 0x04, 0x57, 0x01,
+ 0x16, 0xe1, 0x55, 0xe1, 0xe1, 0x56, 0xe1, 0x01, 0x16, 0x56, 0x80, 0xfe,
+ 0x5d, 0x01, 0x52, 0x81, 0x01, 0x52, 0x01, 0x53, 0x82, 0x01, 0x52, 0xfe,
+ 0x5e, 0x81, 0xac, 0x02, 0x2d, 0xfe, 0x3e, 0xac, 0xfe, 0x3d, 0xfe, 0x3d,
+ 0xac, 0xfe, 0x3e, 0x02, 0x2d, 0x04, 0x49, 0xfe, 0xd9, 0xb6, 0xfe, 0xda,
+ 0xb6, 0xb6, 0x01, 0x26, 0xb6, 0x01, 0xfb, 0xfe, 0x47, 0xfe, 0xef, 0xfe,
+ 0x47, 0x01, 0x11, 0xfe, 0xef, 0x01, 0xb9, 0x01, 0x11, 0x02, 0x8e, 0xfd,
+ 0xb3, 0xfe, 0x94, 0xfd, 0xb4, 0x01, 0x6c, 0xfe, 0x94, 0x02, 0x4c, 0x01,
+ 0x6c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x2b, 0xff, 0xed, 0x05, 0xde,
+ 0x05, 0xf2, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x17,
+ 0x33, 0x07, 0x17, 0x27, 0x07, 0x37, 0x27, 0x33, 0x1b, 0x01, 0x21, 0x01,
+ 0x13, 0x09, 0x01, 0x13, 0x01, 0x21, 0x37, 0x03, 0x21, 0x05, 0x03, 0x25,
+ 0x05, 0x03, 0x25, 0x21, 0x03, 0x04, 0x22, 0x70, 0x5a, 0x22, 0x5a, 0x5a,
+ 0x22, 0x5a, 0x70, 0x22, 0xac, 0x02, 0x2d, 0xfe, 0x3e, 0xac, 0xfe, 0x3d,
+ 0xfe, 0x3d, 0xac, 0xfe, 0x3e, 0x02, 0x2d, 0xac, 0x67, 0xfe, 0xaf, 0x01,
+ 0x11, 0x69, 0x01, 0x10, 0x01, 0x11, 0x69, 0x01, 0x10, 0xfe, 0xb0, 0x03,
+ 0x49, 0x76, 0x49, 0x76, 0x49, 0x49, 0x76, 0x49, 0x03, 0x1f, 0xfd, 0xb3,
+ 0xfe, 0x94, 0xfd, 0xb4, 0x01, 0x6c, 0xfe, 0x94, 0x02, 0x4c, 0x01, 0x6c,
+ 0xfb, 0xfe, 0x9d, 0xdb, 0xfe, 0x9d, 0xdb, 0xdb, 0x01, 0x63, 0xdb, 0x00,
+ 0x00, 0x06, 0x00, 0x2b, 0xff, 0xed, 0x05, 0xde, 0x05, 0xf2, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x00,
+ 0x25, 0x01, 0x35, 0x25, 0x01, 0x37, 0x01, 0x03, 0x27, 0x25, 0x21, 0x07,
+ 0x0b, 0x01, 0x17, 0x11, 0x13, 0x21, 0x01, 0x13, 0x09, 0x01, 0x13, 0x01,
+ 0x21, 0x01, 0xb1, 0x01, 0x52, 0xfd, 0xdd, 0x01, 0x52, 0xd1, 0x01, 0x55,
+ 0x82, 0xd1, 0x02, 0x23, 0xfe, 0x5e, 0x81, 0x01, 0x80, 0x80, 0xac, 0x02,
+ 0x2d, 0xfe, 0x3e, 0xac, 0xfe, 0x3d, 0xfe, 0x3d, 0xac, 0xfe, 0x3e, 0x02,
+ 0x2d, 0x99, 0x01, 0x11, 0xf3, 0xc7, 0xfe, 0xef, 0x4b, 0xfd, 0xfb, 0x01,
+ 0xb9, 0x4b, 0xc7, 0xc6, 0x02, 0x80, 0xfe, 0x47, 0xc6, 0x03, 0x53, 0xfd,
+ 0xb3, 0xfe, 0x94, 0xfd, 0xb4, 0x01, 0x6c, 0xfe, 0x94, 0x02, 0x4c, 0x01,
+ 0x6c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x18, 0x05, 0xdf,
+ 0x05, 0xb7, 0x00, 0x0d, 0x00, 0x17, 0x00, 0x00, 0x09, 0x01, 0x13, 0x27,
+ 0x25, 0x01, 0x27, 0x13, 0x01, 0x21, 0x13, 0x17, 0x13, 0x21, 0x01, 0x03,
+ 0x21, 0x05, 0x03, 0x01, 0x05, 0x03, 0x01, 0x21, 0x05, 0xdf, 0xfe, 0x6b,
+ 0x9b, 0x92, 0xfe, 0xd3, 0xfe, 0x93, 0x92, 0x9b, 0xfe, 0x6b, 0x01, 0xf5,
+ 0x9b, 0x92, 0x8b, 0x01, 0x73, 0xfd, 0x70, 0x79, 0xfe, 0x7b, 0x01, 0x3b,
+ 0x79, 0x01, 0x3c, 0x01, 0x3c, 0x79, 0x01, 0x3b, 0xfe, 0x7b, 0x03, 0x71,
+ 0xfe, 0xb8, 0xfd, 0xef, 0x34, 0xf3, 0xfe, 0xd9, 0x34, 0x02, 0x11, 0x01,
+ 0x48, 0x02, 0x12, 0x34, 0xfe, 0x22, 0x01, 0x68, 0xfe, 0x64, 0xff, 0xfe,
+ 0x64, 0x00, 0xff, 0xff, 0x01, 0x9c, 0x00, 0xff, 0x00, 0x01, 0x00, 0x76,
+ 0x00, 0x00, 0x05, 0x92, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x25, 0x13, 0x0d, 0x01, 0x03, 0x25, 0x11, 0x21, 0x11, 0x05,
+ 0x03, 0x2d, 0x01, 0x13, 0x02, 0x74, 0x01, 0x20, 0x01, 0x6e, 0x90, 0xfe,
+ 0x92, 0x01, 0x6e, 0x90, 0xfe, 0x92, 0xfe, 0xe0, 0xfe, 0x93, 0x90, 0x01,
+ 0x6c, 0xfe, 0x94, 0x90, 0x04, 0x00, 0x01, 0xd5, 0xfe, 0x2a, 0xeb, 0xfe,
+ 0xeb, 0xea, 0xeb, 0xfe, 0xeb, 0xeb, 0xfe, 0x2a, 0x01, 0xd6, 0xeb, 0x01,
+ 0x15, 0xeb, 0xea, 0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88,
+ 0x00, 0x00, 0x05, 0x80, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00,
+ 0x01, 0x07, 0x17, 0x33, 0x37, 0x27, 0x05, 0x01, 0x37, 0x01, 0x11, 0x33,
+ 0x11, 0x01, 0x17, 0x09, 0x01, 0x07, 0x01, 0x11, 0x23, 0x11, 0x01, 0x27,
+ 0x02, 0x99, 0x6c, 0x6c, 0xd6, 0x6c, 0x6c, 0xfe, 0xbd, 0xfe, 0x5d, 0x6c,
+ 0x01, 0xa3, 0xd8, 0x01, 0xa4, 0x6c, 0xfe, 0x5c, 0x01, 0xa4, 0x6c, 0xfe,
+ 0x5c, 0xd8, 0xfe, 0x5d, 0x6c, 0x03, 0xb9, 0xce, 0xd0, 0xd0, 0xce, 0xce,
+ 0x01, 0x0d, 0xd0, 0xfe, 0xf2, 0x02, 0x1b, 0xfd, 0xe5, 0x01, 0x0e, 0xd0,
+ 0xfe, 0xf3, 0xfe, 0xf2, 0xd0, 0x01, 0x0d, 0xfd, 0xe6, 0x02, 0x1a, 0xfe,
+ 0xf3, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x64, 0x00, 0x00, 0x05, 0xa4,
+ 0x05, 0xd5, 0x00, 0x17, 0x00, 0x00, 0x09, 0x01, 0x07, 0x01, 0x11, 0x23,
+ 0x11, 0x01, 0x27, 0x01, 0x21, 0x35, 0x21, 0x01, 0x37, 0x01, 0x11, 0x33,
+ 0x11, 0x01, 0x17, 0x01, 0x21, 0x15, 0x03, 0x72, 0x01, 0x8d, 0x40, 0xfe,
+ 0x72, 0x5a, 0xfe, 0x72, 0x3f, 0x01, 0x8d, 0xfd, 0xce, 0x02, 0x33, 0xfe,
+ 0x72, 0x3f, 0x01, 0x8e, 0x5a, 0x01, 0x8e, 0x40, 0xfe, 0x71, 0x02, 0x34,
+ 0x02, 0xb8, 0xfe, 0x46, 0x47, 0x01, 0xbb, 0xfd, 0x8e, 0x02, 0x71, 0xfe,
+ 0x46, 0x47, 0x01, 0xba, 0x64, 0x01, 0xbb, 0x47, 0xfe, 0x46, 0x02, 0x71,
+ 0xfd, 0x8f, 0x01, 0xba, 0x47, 0xfe, 0x45, 0x64, 0x00, 0x01, 0x00, 0x39,
+ 0xff, 0xe3, 0x05, 0xab, 0x05, 0xf0, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x13,
+ 0x09, 0x01, 0x0d, 0x01, 0x09, 0x01, 0x0b, 0x01, 0x09, 0x01, 0x2d, 0x01,
+ 0x09, 0x01, 0x02, 0xf2, 0x47, 0x01, 0xa5, 0xfe, 0xc1, 0x02, 0x0c, 0xfd,
+ 0xf4, 0x01, 0x3f, 0xfe, 0x5b, 0x47, 0x47, 0xfe, 0x5b, 0x01, 0x3f, 0xfd,
+ 0xf5, 0x02, 0x0b, 0xfe, 0xc1, 0x01, 0xa5, 0x05, 0xf0, 0xfd, 0xb9, 0x01,
+ 0x64, 0xfe, 0x2c, 0x50, 0x4f, 0xfe, 0x2c, 0x01, 0x64, 0xfd, 0xb9, 0x02,
+ 0x47, 0xfe, 0x9c, 0x01, 0xd4, 0x4f, 0x50, 0x01, 0xd4, 0xfe, 0x9c, 0x00,
+ 0x00, 0x09, 0x00, 0x4b, 0xff, 0xe3, 0x05, 0xbd, 0x05, 0xf0, 0x00, 0x02,
+ 0x00, 0x05, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x11, 0x00, 0x14,
+ 0x00, 0x17, 0x00, 0x27, 0x00, 0x00, 0x01, 0x05, 0x03, 0x05, 0x25, 0x05,
+ 0x01, 0x03, 0x25, 0x03, 0x13, 0x03, 0x01, 0x25, 0x13, 0x25, 0x05, 0x25,
+ 0x01, 0x13, 0x05, 0x13, 0x03, 0x13, 0x11, 0x13, 0x25, 0x03, 0x0d, 0x01,
+ 0x13, 0x25, 0x0b, 0x01, 0x05, 0x13, 0x2d, 0x01, 0x03, 0x05, 0x04, 0x76,
+ 0xfe, 0xfa, 0x6b, 0x02, 0x0a, 0xfe, 0xf8, 0xfe, 0xfe, 0x01, 0x71, 0x6f,
+ 0xfe, 0xfe, 0x01, 0x6b, 0x6b, 0xfe, 0x8e, 0x01, 0x06, 0x6b, 0xfd, 0xf6,
+ 0x01, 0x08, 0x01, 0x02, 0xfe, 0x8f, 0x6f, 0x01, 0x02, 0x01, 0x6b, 0x6b,
+ 0x8f, 0x01, 0x5d, 0x93, 0x01, 0x60, 0xfe, 0xa0, 0x93, 0xfe, 0xa3, 0x8f,
+ 0x8f, 0xfe, 0xa3, 0x94, 0xfe, 0xa0, 0x01, 0x60, 0x94, 0x01, 0x5d, 0x04,
+ 0x85, 0x7b, 0xfe, 0xe0, 0x01, 0x78, 0x78, 0xfe, 0x65, 0x01, 0x23, 0x77,
+ 0xfd, 0xbc, 0x01, 0x25, 0x01, 0x1f, 0xfe, 0x66, 0x7b, 0x01, 0x1f, 0x01,
+ 0x77, 0x77, 0x01, 0x9c, 0xfe, 0xdd, 0x78, 0x02, 0x45, 0xfe, 0xdb, 0xfe,
+ 0xe0, 0x03, 0x06, 0xfe, 0x79, 0xa4, 0xfe, 0x7c, 0xa0, 0x9f, 0xfe, 0x7c,
+ 0xa4, 0xfe, 0x79, 0x01, 0x87, 0xa4, 0x01, 0x84, 0x9f, 0xa0, 0x01, 0x84,
+ 0xa4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa8, 0xff, 0xe3, 0x05, 0x61,
+ 0x05, 0xf0, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x13, 0x25, 0x09, 0x01, 0x25,
+ 0x0b, 0x01, 0x05, 0x09, 0x01, 0x05, 0x03, 0x04, 0x65, 0x01, 0xf7, 0xfe,
+ 0x6e, 0x01, 0x92, 0xfe, 0x09, 0x65, 0x65, 0xfe, 0x09, 0x01, 0x93, 0xfe,
+ 0x6d, 0x01, 0xf7, 0x05, 0xf0, 0xfd, 0xbc, 0xc1, 0xfe, 0x7d, 0xfe, 0x7d,
+ 0xc1, 0xfd, 0xbb, 0x02, 0x45, 0xc1, 0x01, 0x83, 0x01, 0x83, 0xc1, 0x00,
+ 0x00, 0x01, 0x00, 0x4b, 0xff, 0xe3, 0x05, 0xbd, 0x05, 0xf0, 0x00, 0x0f,
+ 0x00, 0x00, 0x01, 0x13, 0x01, 0x03, 0x0d, 0x01, 0x13, 0x01, 0x0b, 0x01,
+ 0x01, 0x13, 0x2d, 0x01, 0x03, 0x01, 0x03, 0x04, 0x66, 0x01, 0x86, 0xf5,
+ 0x01, 0xc2, 0xfe, 0x3e, 0xf5, 0xfe, 0x7a, 0x66, 0x66, 0xfe, 0x7a, 0xf6,
+ 0xfe, 0x3e, 0x01, 0xc2, 0xf6, 0x01, 0x86, 0x05, 0xf0, 0xfe, 0x0b, 0x01,
+ 0x12, 0xfe, 0x4e, 0x72, 0x71, 0xfe, 0x4e, 0x01, 0x12, 0xfe, 0x0b, 0x01,
+ 0xf5, 0xfe, 0xee, 0x01, 0xb2, 0x71, 0x72, 0x01, 0xb2, 0xfe, 0xee, 0x00,
+ 0x00, 0x01, 0x00, 0x4b, 0xff, 0xe3, 0x05, 0xbd, 0x05, 0xf0, 0x00, 0x0f,
+ 0x00, 0x00, 0x01, 0x13, 0x25, 0x03, 0x0d, 0x01, 0x13, 0x25, 0x0b, 0x01,
+ 0x05, 0x13, 0x2d, 0x01, 0x03, 0x05, 0x03, 0x04, 0x99, 0x01, 0x53, 0x7b,
+ 0x01, 0x48, 0xfe, 0xb8, 0x7b, 0xfe, 0xad, 0x99, 0x99, 0xfe, 0xad, 0x7b,
+ 0xfe, 0xb9, 0x01, 0x47, 0x7b, 0x01, 0x53, 0x05, 0xf0, 0xfe, 0x94, 0x89,
+ 0xfe, 0x87, 0xab, 0xaa, 0xfe, 0x87, 0x89, 0xfe, 0x94, 0x01, 0x6c, 0x89,
+ 0x01, 0x79, 0xaa, 0xab, 0x01, 0x79, 0x89, 0x00, 0x00, 0x01, 0x00, 0x4b,
+ 0xff, 0xe3, 0x05, 0xbd, 0x05, 0xf0, 0x00, 0x17, 0x00, 0x00, 0x01, 0x13,
+ 0x37, 0x03, 0x25, 0x03, 0x0d, 0x01, 0x13, 0x25, 0x13, 0x27, 0x0b, 0x01,
+ 0x07, 0x13, 0x05, 0x13, 0x2d, 0x01, 0x03, 0x05, 0x03, 0x17, 0x03, 0x04,
+ 0x69, 0xf3, 0x3f, 0x01, 0x3f, 0xd7, 0x01, 0x34, 0xfe, 0xcc, 0xd7, 0xfe,
+ 0xc1, 0x3f, 0xf3, 0x69, 0x68, 0xf4, 0x40, 0xfe, 0xc0, 0xd7, 0xfe, 0xcd,
+ 0x01, 0x33, 0xd7, 0x01, 0x40, 0x40, 0xf4, 0x05, 0xf0, 0xfe, 0xa9, 0xef,
+ 0xfe, 0x9d, 0x47, 0xfe, 0xf1, 0x73, 0x74, 0xfe, 0xf1, 0x47, 0xfe, 0x9d,
+ 0xef, 0xfe, 0xa9, 0x01, 0x57, 0xef, 0x01, 0x63, 0x47, 0x01, 0x0f, 0x74,
+ 0x73, 0x01, 0x0f, 0x47, 0x01, 0x63, 0xef, 0x00, 0x00, 0x01, 0x00, 0x64,
+ 0x00, 0x00, 0x05, 0xa4, 0x05, 0xd5, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x11,
+ 0x33, 0x11, 0x13, 0x17, 0x03, 0x01, 0x17, 0x01, 0x25, 0x17, 0x05, 0x21,
+ 0x15, 0x21, 0x05, 0x07, 0x25, 0x01, 0x07, 0x01, 0x13, 0x07, 0x03, 0x11,
+ 0x23, 0x11, 0x03, 0x27, 0x13, 0x01, 0x27, 0x01, 0x05, 0x27, 0x25, 0x21,
+ 0x35, 0x21, 0x25, 0x37, 0x05, 0x01, 0x37, 0x01, 0x03, 0x37, 0x02, 0xce,
+ 0x6c, 0x99, 0x64, 0x99, 0x01, 0x1b, 0x4c, 0xfe, 0xe5, 0x01, 0x72, 0x2a,
+ 0xfe, 0x8c, 0x01, 0x92, 0xfe, 0x72, 0x01, 0x70, 0x2a, 0xfe, 0x8e, 0x01,
+ 0x1b, 0x4c, 0xfe, 0xe6, 0x98, 0x64, 0x99, 0x6c, 0x99, 0x64, 0x99, 0xfe,
+ 0xe6, 0x4d, 0x01, 0x1b, 0xfe, 0x8e, 0x2a, 0x01, 0x72, 0xfe, 0x71, 0x01,
+ 0x91, 0xfe, 0x8c, 0x2a, 0x01, 0x70, 0xfe, 0xe7, 0x4d, 0x01, 0x19, 0x98,
+ 0x64, 0x04, 0x17, 0x01, 0xbe, 0xfe, 0x45, 0x01, 0x99, 0x2e, 0xfe, 0x66,
+ 0x01, 0x3a, 0x55, 0xfe, 0xc5, 0xab, 0x6f, 0xab, 0x78, 0xaa, 0x6f, 0xac,
+ 0xfe, 0xc4, 0x55, 0x01, 0x39, 0xfe, 0x67, 0x2e, 0x01, 0x98, 0xfe, 0x46,
+ 0x01, 0xbc, 0xfe, 0x66, 0x2e, 0x01, 0x9b, 0xfe, 0xc5, 0x55, 0x01, 0x3a,
+ 0xaa, 0x6f, 0xaa, 0x78, 0xab, 0x6f, 0xa9, 0x01, 0x39, 0x55, 0xfe, 0xc7,
+ 0x01, 0x99, 0x2e, 0x00, 0x00, 0x01, 0x00, 0x96, 0xff, 0xe3, 0x05, 0x73,
+ 0x05, 0xf0, 0x00, 0x9b, 0x00, 0x00, 0x01, 0x35, 0x34, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x1d, 0x01,
+ 0x17, 0x16, 0x17, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x22,
+ 0x23, 0x22, 0x0f, 0x01, 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x33, 0x32,
+ 0x3b, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x0f, 0x01,
+ 0x15, 0x14, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x3d, 0x01, 0x26, 0x27, 0x26, 0x27, 0x07, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x33, 0x32, 0x3f, 0x01, 0x26, 0x35,
+ 0x34, 0x37, 0x27, 0x26, 0x23, 0x22, 0x2b, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x1f, 0x01, 0x36, 0x37, 0x36, 0x02, 0xd6, 0x43, 0x28, 0x31, 0x32,
+ 0x6c, 0x33, 0x30, 0x27, 0x45, 0x0f, 0x1c, 0x15, 0x09, 0x66, 0x3a, 0x23,
+ 0x3d, 0x36, 0x2e, 0x14, 0x13, 0x40, 0x1b, 0x12, 0x04, 0x0d, 0x4e, 0x38,
+ 0x45, 0x0a, 0x0a, 0x09, 0x76, 0x5a, 0x0b, 0x04, 0x05, 0x0b, 0x5c, 0x75,
+ 0x0a, 0x09, 0x0a, 0x45, 0x38, 0x4e, 0x0d, 0x04, 0x12, 0x1b, 0x40, 0x13,
+ 0x14, 0x2e, 0x36, 0x3d, 0x23, 0x3c, 0x63, 0x0d, 0x18, 0x16, 0x0f, 0x45,
+ 0x27, 0x30, 0x33, 0x6c, 0x32, 0x31, 0x28, 0x45, 0x08, 0x07, 0x1a, 0x15,
+ 0x0d, 0x63, 0x3c, 0x23, 0x3c, 0x36, 0x2f, 0x14, 0x13, 0x40, 0x1b, 0x12,
+ 0x05, 0x0c, 0x4f, 0x38, 0x44, 0x0b, 0x0a, 0x09, 0x76, 0x5a, 0x0b, 0x04,
+ 0x03, 0x0a, 0x5a, 0x76, 0x09, 0x0a, 0x0b, 0x44, 0x38, 0x4f, 0x0c, 0x05,
+ 0x12, 0x1b, 0x40, 0x13, 0x14, 0x2f, 0x36, 0x3c, 0x23, 0x3e, 0x61, 0x0a,
+ 0x18, 0x1a, 0x07, 0x03, 0x94, 0x0c, 0x80, 0x77, 0x46, 0x4e, 0x64, 0x30,
+ 0x31, 0x31, 0x30, 0x64, 0x4e, 0x46, 0x79, 0x7e, 0x0c, 0x06, 0x0e, 0x17,
+ 0x06, 0x44, 0x7a, 0x49, 0x27, 0x23, 0x07, 0x18, 0x34, 0x23, 0x2c, 0x16,
+ 0x18, 0x47, 0x32, 0x24, 0x3a, 0x07, 0x13, 0x14, 0x15, 0x14, 0x07, 0x3b,
+ 0x24, 0x32, 0x47, 0x18, 0x16, 0x2c, 0x23, 0x34, 0x18, 0x07, 0x23, 0x27,
+ 0x49, 0x7e, 0x3f, 0x08, 0x19, 0x09, 0x06, 0x0f, 0x7f, 0x79, 0x46, 0x4e,
+ 0x64, 0x30, 0x31, 0x31, 0x30, 0x64, 0x4e, 0x46, 0x79, 0x7f, 0x0f, 0x03,
+ 0x03, 0x0d, 0x15, 0x08, 0x3f, 0x7e, 0x49, 0x27, 0x23, 0x07, 0x18, 0x34,
+ 0x23, 0x2c, 0x16, 0x18, 0x47, 0x32, 0x24, 0x3a, 0x07, 0x14, 0x16, 0x14,
+ 0x13, 0x07, 0x3a, 0x24, 0x32, 0x47, 0x18, 0x16, 0x2c, 0x23, 0x34, 0x18,
+ 0x07, 0x23, 0x27, 0x49, 0x82, 0x3b, 0x06, 0x19, 0x0b, 0x03, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x96, 0xff, 0xe3, 0x05, 0x73, 0x05, 0xf0, 0x00, 0x19,
+ 0x00, 0xb5, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x35, 0x34, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x1d, 0x01,
+ 0x17, 0x16, 0x17, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x22,
+ 0x23, 0x22, 0x0f, 0x01, 0x16, 0x15, 0x14, 0x07, 0x17, 0x16, 0x33, 0x32,
+ 0x3b, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x0f, 0x01,
+ 0x15, 0x14, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x3d, 0x01, 0x26, 0x27, 0x26, 0x27, 0x07, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x33, 0x32, 0x3f, 0x01, 0x26, 0x35,
+ 0x34, 0x37, 0x27, 0x26, 0x23, 0x22, 0x2b, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x1f, 0x01, 0x36, 0x37, 0x36, 0x03, 0x17, 0x26, 0x0f, 0x10, 0x0d,
+ 0x0d, 0x0e, 0x0e, 0x0d, 0x0d, 0x10, 0x0f, 0x26, 0x0f, 0x11, 0x0c, 0x0e,
+ 0x0d, 0x0d, 0x0e, 0x0c, 0x11, 0x50, 0x43, 0x28, 0x31, 0x32, 0x6c, 0x33,
+ 0x30, 0x27, 0x45, 0x0f, 0x1c, 0x15, 0x09, 0x66, 0x3a, 0x23, 0x3d, 0x36,
+ 0x2e, 0x14, 0x13, 0x40, 0x1b, 0x12, 0x04, 0x0d, 0x4e, 0x38, 0x45, 0x0a,
+ 0x0a, 0x09, 0x76, 0x5a, 0x0b, 0x04, 0x05, 0x0b, 0x5c, 0x75, 0x0a, 0x09,
+ 0x0a, 0x45, 0x38, 0x4e, 0x0d, 0x04, 0x12, 0x1b, 0x40, 0x13, 0x14, 0x2e,
+ 0x36, 0x3d, 0x23, 0x3c, 0x63, 0x0d, 0x18, 0x16, 0x0f, 0x45, 0x27, 0x30,
+ 0x33, 0x6c, 0x32, 0x31, 0x28, 0x45, 0x08, 0x07, 0x1a, 0x15, 0x0d, 0x63,
+ 0x3c, 0x23, 0x3c, 0x36, 0x2f, 0x14, 0x13, 0x40, 0x1b, 0x12, 0x05, 0x0c,
+ 0x4f, 0x38, 0x44, 0x0b, 0x0a, 0x09, 0x76, 0x5a, 0x0b, 0x04, 0x03, 0x0a,
+ 0x5a, 0x76, 0x09, 0x0a, 0x0b, 0x44, 0x38, 0x4f, 0x0c, 0x05, 0x12, 0x1b,
+ 0x40, 0x13, 0x14, 0x2f, 0x36, 0x3c, 0x23, 0x3e, 0x61, 0x0a, 0x18, 0x1a,
+ 0x07, 0x03, 0x50, 0x08, 0x08, 0x0e, 0x0f, 0x23, 0x15, 0x14, 0x23, 0x0f,
+ 0x0e, 0x08, 0x08, 0x08, 0x08, 0x0e, 0x0f, 0x23, 0x14, 0x15, 0x23, 0x0f,
+ 0x0e, 0x08, 0x4c, 0x0c, 0x80, 0x77, 0x46, 0x4e, 0x64, 0x30, 0x31, 0x31,
+ 0x30, 0x64, 0x4e, 0x46, 0x79, 0x7e, 0x0c, 0x06, 0x0e, 0x17, 0x06, 0x44,
+ 0x7a, 0x49, 0x27, 0x23, 0x07, 0x18, 0x34, 0x23, 0x2c, 0x16, 0x18, 0x47,
+ 0x32, 0x24, 0x3a, 0x07, 0x13, 0x14, 0x15, 0x14, 0x07, 0x3b, 0x24, 0x32,
+ 0x47, 0x18, 0x16, 0x2c, 0x23, 0x34, 0x18, 0x07, 0x23, 0x27, 0x49, 0x7e,
+ 0x3f, 0x08, 0x19, 0x09, 0x06, 0x0f, 0x7f, 0x79, 0x46, 0x4e, 0x64, 0x30,
+ 0x31, 0x31, 0x30, 0x64, 0x4e, 0x46, 0x79, 0x7f, 0x0f, 0x03, 0x03, 0x0d,
+ 0x15, 0x08, 0x3f, 0x7e, 0x49, 0x27, 0x23, 0x07, 0x18, 0x34, 0x23, 0x2c,
+ 0x16, 0x18, 0x47, 0x32, 0x24, 0x3a, 0x07, 0x14, 0x16, 0x14, 0x13, 0x07,
+ 0x3a, 0x24, 0x32, 0x47, 0x18, 0x16, 0x2c, 0x23, 0x34, 0x18, 0x07, 0x23,
+ 0x27, 0x49, 0x82, 0x3b, 0x06, 0x19, 0x0b, 0x03, 0x00, 0x01, 0x00, 0x90,
+ 0xff, 0xe3, 0x05, 0x77, 0x05, 0xf0, 0x00, 0x68, 0x00, 0x00, 0x01, 0x17,
+ 0x32, 0x3f, 0x01, 0x27, 0x26, 0x23, 0x07, 0x22, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x16, 0x17, 0x16, 0x1f, 0x01, 0x35, 0x34,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x14, 0x07, 0x06, 0x1d,
+ 0x01, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x0e, 0x01, 0x23, 0x27, 0x22, 0x0f, 0x01, 0x17, 0x16, 0x33, 0x37, 0x32,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x2f, 0x01, 0x15, 0x14, 0x17, 0x16, 0x14, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x3d, 0x01, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x3e, 0x01, 0x01, 0x89, 0x8f, 0x49, 0x1e,
+ 0x2a, 0x2a, 0x1c, 0x4d, 0x87, 0x51, 0x92, 0x10, 0x0a, 0x16, 0x26, 0x63,
+ 0x12, 0x46, 0x8a, 0x27, 0x40, 0x32, 0x2b, 0x5f, 0x3a, 0x31, 0x4a, 0x97,
+ 0x4a, 0x30, 0x39, 0x60, 0x2b, 0x2b, 0x48, 0x2c, 0x84, 0x46, 0x12, 0xa0,
+ 0x0a, 0x11, 0x91, 0x4c, 0x8e, 0x48, 0x20, 0x2b, 0x2b, 0x1c, 0x4e, 0x87,
+ 0x51, 0x91, 0x11, 0x0a, 0x17, 0x28, 0x61, 0x13, 0x47, 0x39, 0x4f, 0x26,
+ 0x40, 0x33, 0x2b, 0x60, 0x39, 0x30, 0x4a, 0x9b, 0x46, 0x31, 0x3a, 0x5f,
+ 0x2b, 0x2e, 0x44, 0x2b, 0x86, 0x46, 0x12, 0xa0, 0x0b, 0x11, 0x91, 0x02,
+ 0xc4, 0x0a, 0x14, 0x1c, 0x1b, 0x12, 0x07, 0x5d, 0x48, 0x2c, 0x60, 0x2c,
+ 0x48, 0x20, 0x06, 0x59, 0x63, 0xa2, 0x21, 0x1c, 0x37, 0x37, 0x99, 0x5c,
+ 0xca, 0x34, 0x4f, 0x4f, 0x34, 0xd0, 0x56, 0x8f, 0x41, 0x37, 0x1c, 0x1c,
+ 0xa7, 0x67, 0x55, 0x06, 0x33, 0x9a, 0x27, 0x2c, 0x48, 0x5e, 0x0a, 0x14,
+ 0x1b, 0x1c, 0x12, 0x07, 0x5d, 0x48, 0x2c, 0x60, 0x2c, 0x4c, 0x1c, 0x06,
+ 0x26, 0x33, 0x63, 0xa2, 0x21, 0x1c, 0x37, 0x37, 0x99, 0x5c, 0xca, 0x34,
+ 0x4f, 0x4f, 0x37, 0xcd, 0x56, 0x8f, 0x41, 0x37, 0x1c, 0x1e, 0xa5, 0x66,
+ 0x56, 0x06, 0x34, 0x9a, 0x26, 0x2c, 0x48, 0x5e, 0x00, 0x04, 0x00, 0x90,
+ 0xff, 0xe3, 0x05, 0x77, 0x05, 0xf0, 0x00, 0x0e, 0x00, 0x99, 0x00, 0xb1,
+ 0x00, 0xc9, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x13, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x15, 0x14,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x3d, 0x01, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x33, 0x32, 0x3f, 0x01, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x1f, 0x01, 0x35, 0x34, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x1d,
+ 0x01, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x05, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x25, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x23, 0x22, 0x03, 0x04, 0x19, 0x33, 0x21, 0x1b, 0x2c, 0x4c, 0x2c, 0x1b,
+ 0x22, 0x32, 0x97, 0x10, 0x30, 0x5b, 0x1d, 0x21, 0x10, 0x0f, 0x51, 0x3f,
+ 0x52, 0x11, 0x0a, 0x17, 0x27, 0x62, 0x12, 0x13, 0x33, 0x3b, 0x4b, 0x2a,
+ 0x39, 0x43, 0x10, 0x4e, 0x39, 0x30, 0x4a, 0x4c, 0x4f, 0x46, 0x31, 0x3a,
+ 0x4d, 0x10, 0x40, 0x3b, 0x2c, 0x49, 0x3c, 0x32, 0x14, 0x12, 0x63, 0x26,
+ 0x16, 0x0a, 0x10, 0x53, 0x3f, 0x51, 0x0e, 0x10, 0x22, 0x1c, 0x5b, 0x30,
+ 0x10, 0x10, 0x2e, 0x5b, 0x1d, 0x23, 0x10, 0x0e, 0x51, 0x3f, 0x51, 0x12,
+ 0x0b, 0x17, 0x26, 0x63, 0x12, 0x14, 0x32, 0x3c, 0x4a, 0x2b, 0x38, 0x43,
+ 0x10, 0x4d, 0x3a, 0x31, 0x4a, 0x97, 0x4a, 0x30, 0x39, 0x4e, 0x10, 0x40,
+ 0x3c, 0x2c, 0x49, 0x3b, 0x33, 0x13, 0x12, 0x62, 0x27, 0x17, 0x0a, 0x11,
+ 0x52, 0x3f, 0x51, 0x0f, 0x10, 0x22, 0x1e, 0x5b, 0x2e, 0xfe, 0xbc, 0x3d,
+ 0x3a, 0x1b, 0x1a, 0x08, 0x0a, 0x2f, 0x36, 0x35, 0x07, 0x04, 0x0c, 0x13,
+ 0x37, 0x09, 0x0b, 0x1c, 0x27, 0x3f, 0x16, 0x21, 0x01, 0xac, 0x41, 0x20,
+ 0x17, 0x3f, 0x26, 0x1c, 0x0b, 0x09, 0x38, 0x13, 0x0c, 0x05, 0x06, 0x35,
+ 0x36, 0x30, 0x09, 0x08, 0x1a, 0x1b, 0x3b, 0x03, 0xd3, 0x63, 0x4a, 0x32,
+ 0x51, 0x44, 0x1a, 0x2b, 0x2b, 0x1a, 0x44, 0x51, 0x32, 0x4a, 0xfe, 0xb4,
+ 0x0b, 0x20, 0x03, 0x01, 0x28, 0x35, 0x48, 0x2c, 0x27, 0x39, 0x2c, 0x4a,
+ 0x1e, 0x06, 0x26, 0x30, 0x66, 0x89, 0x29, 0x0a, 0x14, 0x54, 0x7c, 0x5c,
+ 0x60, 0x6a, 0x34, 0x4f, 0x4f, 0x37, 0x67, 0x60, 0x5c, 0x7c, 0x54, 0x14,
+ 0x0a, 0x27, 0x8b, 0x67, 0x2f, 0x26, 0x06, 0x20, 0x48, 0x2c, 0x39, 0x27,
+ 0x2c, 0x49, 0x34, 0x28, 0x01, 0x03, 0x20, 0x0b, 0x0b, 0x1f, 0x03, 0x01,
+ 0x28, 0x33, 0x4a, 0x2c, 0x26, 0x39, 0x2d, 0x48, 0x20, 0x06, 0x26, 0x30,
+ 0x66, 0x89, 0x29, 0x0a, 0x14, 0x54, 0x7c, 0x5c, 0x60, 0x6a, 0x34, 0x4f,
+ 0x4f, 0x34, 0x6a, 0x60, 0x5c, 0x7c, 0x54, 0x14, 0x0a, 0x27, 0x8b, 0x67,
+ 0x2f, 0x26, 0x06, 0x1e, 0x4a, 0x2c, 0x39, 0x27, 0x2c, 0x48, 0x35, 0x28,
+ 0x01, 0x03, 0x1f, 0x80, 0x12, 0x04, 0x01, 0x22, 0x22, 0x27, 0x18, 0x15,
+ 0x21, 0x17, 0x24, 0x15, 0x04, 0x19, 0x28, 0x3a, 0x55, 0x4a, 0x4a, 0x55,
+ 0x3a, 0x28, 0x19, 0x04, 0x15, 0x24, 0x17, 0x21, 0x15, 0x18, 0x27, 0x22,
+ 0x22, 0x01, 0x04, 0x00, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x05, 0xa6,
+ 0x05, 0xad, 0x00, 0x19, 0x00, 0x77, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37,
+ 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x27,
+ 0x0e, 0x01, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01,
+ 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x03, 0x45, 0x82, 0x37,
+ 0x37, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x2e, 0x37, 0x37, 0x82, 0x37, 0x38,
+ 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x38, 0x6c, 0x38, 0x21, 0x32, 0x30,
+ 0x31, 0x31, 0x2b, 0x29, 0x25, 0x27, 0x24, 0x28, 0x21, 0x33, 0x2a, 0x52,
+ 0x18, 0x2b, 0x1e, 0x28, 0x24, 0x28, 0x24, 0x29, 0x2b, 0x2d, 0x6d, 0x2a,
+ 0x33, 0x21, 0x2b, 0x1a, 0x05, 0x04, 0x22, 0x24, 0x29, 0x2b, 0x2d, 0x6d,
+ 0x2a, 0x33, 0x21, 0x29, 0x24, 0x2a, 0x23, 0x22, 0x20, 0x14, 0x4e, 0x2b,
+ 0x34, 0x1f, 0x29, 0x24, 0x28, 0x25, 0x28, 0x2b, 0x2d, 0x35, 0x38, 0x2a,
+ 0x35, 0x25, 0x07, 0x18, 0x28, 0x24, 0x29, 0x2b, 0x2d, 0x35, 0x38, 0x2a,
+ 0x33, 0x21, 0x28, 0x24, 0x18, 0x04, 0x0b, 0x1a, 0x1c, 0x30, 0x36, 0x7b,
+ 0x49, 0x46, 0x7b, 0x36, 0x30, 0x1c, 0x1a, 0x1a, 0x1c, 0x30, 0x36, 0x7b,
+ 0x46, 0x49, 0x7b, 0x36, 0x30, 0x1c, 0x13, 0x35, 0x10, 0x17, 0x17, 0x14,
+ 0x2b, 0x27, 0x67, 0x3e, 0x3a, 0x63, 0x2e, 0x26, 0x19, 0x15, 0x05, 0x17,
+ 0x22, 0x2e, 0x63, 0x3b, 0x3d, 0x67, 0x27, 0x2b, 0x14, 0x15, 0x15, 0x19,
+ 0x26, 0x31, 0x4e, 0x25, 0x26, 0x57, 0x27, 0x2b, 0x14, 0x15, 0x15, 0x19,
+ 0x26, 0x2e, 0x63, 0x3a, 0x3e, 0x6b, 0x23, 0x22, 0x15, 0x04, 0x15, 0x1b,
+ 0x24, 0x2e, 0x63, 0x3a, 0x3e, 0x67, 0x27, 0x2b, 0x14, 0x15, 0x15, 0x19,
+ 0x2c, 0x0e, 0x42, 0x3a, 0x3e, 0x67, 0x27, 0x2b, 0x14, 0x15, 0x15, 0x19,
+ 0x26, 0x2e, 0x63, 0x3b, 0x3d, 0x3f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x63,
+ 0x00, 0x00, 0x05, 0xa6, 0x05, 0xad, 0x00, 0x5c, 0x00, 0x76, 0x00, 0x8d,
+ 0x00, 0xa6, 0x00, 0xbd, 0x00, 0xd6, 0x00, 0x00, 0x25, 0x0e, 0x01, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36,
+ 0x37, 0x36, 0x37, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x2e, 0x01,
+ 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x07, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x2e, 0x01, 0x02, 0x32, 0x17, 0x16, 0x17, 0x37, 0x36,
+ 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0x1f, 0x01, 0x36, 0x37, 0x13, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x03, 0x26, 0x35, 0x34, 0x36, 0x37,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x01, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x2f,
+ 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x13, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x0f, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x03, 0x04, 0x04, 0x1a, 0x2c,
+ 0x21, 0x32, 0x2b, 0x6c, 0x2e, 0x2b, 0x28, 0x25, 0x28, 0x24, 0x29, 0x1d,
+ 0x2c, 0x19, 0x51, 0x2b, 0x32, 0x21, 0x29, 0x24, 0x28, 0x25, 0x2b, 0x28,
+ 0x36, 0x2c, 0x35, 0x2d, 0x22, 0x37, 0x06, 0x18, 0x24, 0x28, 0x22, 0x32,
+ 0x2a, 0x70, 0x2a, 0x33, 0x21, 0x28, 0x24, 0x18, 0x06, 0x38, 0x21, 0x32,
+ 0x30, 0x31, 0x31, 0x2b, 0x29, 0x25, 0x27, 0x24, 0x28, 0x21, 0x33, 0x2a,
+ 0x52, 0x18, 0x2b, 0x1e, 0x28, 0x24, 0x28, 0x24, 0x29, 0x2b, 0x2d, 0x6d,
+ 0x2a, 0x33, 0x21, 0x2b, 0x1a, 0x46, 0x82, 0x37, 0x07, 0x06, 0x0d, 0x0c,
+ 0x17, 0x18, 0x17, 0x1c, 0x1b, 0x41, 0x1b, 0x1d, 0x16, 0x19, 0x16, 0x02,
+ 0x16, 0x06, 0x07, 0x3d, 0x20, 0x1d, 0x3b, 0x2a, 0x1b, 0x18, 0x5d, 0x16,
+ 0x19, 0x16, 0x19, 0x16, 0x1d, 0x1b, 0x41, 0x1b, 0x1d, 0x16, 0x16, 0x03,
+ 0xc0, 0x03, 0x2a, 0x26, 0x6c, 0x07, 0x06, 0x20, 0x1c, 0x20, 0x1b, 0x1d,
+ 0x16, 0x16, 0x19, 0x16, 0x19, 0x16, 0x1d, 0x13, 0x03, 0x02, 0x00, 0x1f,
+ 0x20, 0x15, 0x17, 0x1d, 0x1a, 0x41, 0x1b, 0x1d, 0x17, 0x18, 0x16, 0x19,
+ 0x15, 0x5d, 0x18, 0x1b, 0x2b, 0x3b, 0x1d, 0xdd, 0x48, 0x48, 0x12, 0x1d,
+ 0x17, 0x18, 0x17, 0x1a, 0x15, 0x17, 0x1d, 0x1a, 0x21, 0x1c, 0x1f, 0x07,
+ 0x07, 0x6c, 0x26, 0x2a, 0xf8, 0x25, 0x4e, 0x31, 0x26, 0x19, 0x15, 0x15,
+ 0x14, 0x2b, 0x27, 0x67, 0x3d, 0x3b, 0x63, 0x2e, 0x22, 0x17, 0x05, 0x15,
+ 0x19, 0x26, 0x2e, 0x63, 0x3a, 0x3e, 0x67, 0x27, 0x2e, 0x11, 0x17, 0x17,
+ 0x10, 0x35, 0x0d, 0x3f, 0x3d, 0x3b, 0x63, 0x2e, 0x26, 0x19, 0x15, 0x15,
+ 0x19, 0x26, 0x2e, 0x63, 0x3b, 0x3d, 0x3f, 0x0d, 0x35, 0x10, 0x17, 0x17,
+ 0x14, 0x2b, 0x27, 0x67, 0x3e, 0x3a, 0x63, 0x2e, 0x26, 0x19, 0x15, 0x05,
+ 0x17, 0x22, 0x2e, 0x63, 0x3b, 0x3d, 0x67, 0x27, 0x2b, 0x14, 0x15, 0x15,
+ 0x19, 0x26, 0x31, 0x4e, 0x03, 0x38, 0x1a, 0x03, 0x04, 0x47, 0x47, 0x14,
+ 0x24, 0x3e, 0x1b, 0x18, 0x0e, 0x0d, 0x0d, 0x0e, 0x18, 0x1b, 0x3e, 0x24,
+ 0x14, 0x0c, 0x82, 0x04, 0x03, 0xfd, 0x63, 0x06, 0x0e, 0x1e, 0x2e, 0x1e,
+ 0x2c, 0x62, 0x17, 0x42, 0x24, 0x23, 0x3e, 0x1b, 0x18, 0x0e, 0x0d, 0x0d,
+ 0x0e, 0x18, 0x18, 0x09, 0x01, 0xba, 0x16, 0x17, 0x49, 0x72, 0x30, 0x43,
+ 0x04, 0x03, 0x0d, 0x0d, 0x0e, 0x18, 0x18, 0x3e, 0x27, 0x23, 0x3e, 0x1b,
+ 0x18, 0x0e, 0x09, 0xfe, 0xc2, 0x4c, 0x4d, 0x18, 0x18, 0x0e, 0x0d, 0x0d,
+ 0x0e, 0x18, 0x1b, 0x3e, 0x23, 0x24, 0x42, 0x17, 0x62, 0x2c, 0x1e, 0x2e,
+ 0x1e, 0x0e, 0x01, 0x24, 0x0a, 0x0a, 0x09, 0x0e, 0x18, 0x1b, 0x3e, 0x23,
+ 0x27, 0x3e, 0x18, 0x18, 0x0e, 0x0d, 0x0d, 0x03, 0x04, 0x43, 0x30, 0x72,
+ 0x49, 0x17, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x4b, 0xff, 0xe3, 0x05, 0xbd,
+ 0x05, 0xf0, 0x00, 0x29, 0x00, 0x54, 0x00, 0xbd, 0x00, 0xe6, 0x01, 0x11,
+ 0x01, 0x3a, 0x01, 0x65, 0x01, 0x7f, 0x01, 0xa9, 0x01, 0xd3, 0x00, 0x00,
+ 0x01, 0x26, 0x27, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x01, 0x36, 0x37,
+ 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x06, 0x07, 0x06, 0x14, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x25, 0x06, 0x07, 0x17, 0x16, 0x33,
+ 0x32, 0x36, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27, 0x26, 0x27, 0x2e, 0x01,
+ 0x23, 0x22, 0x0f, 0x01, 0x16, 0x17, 0x37, 0x36, 0x33, 0x32, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x23, 0x22,
+ 0x23, 0x01, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x16, 0x17, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x06, 0x07, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x23, 0x1e, 0x01, 0x15, 0x14,
+ 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x14, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x2e, 0x01, 0x27, 0x26, 0x34, 0x36, 0x37, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x01, 0x26,
+ 0x27, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x07, 0x26, 0x27, 0x2e, 0x01, 0x27,
+ 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x26, 0x27, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x15, 0x16, 0x17, 0x1e, 0x02, 0x33, 0x32, 0x36, 0x37,
+ 0x36, 0x37, 0x01, 0x16, 0x17, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x26,
+ 0x27, 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x06, 0x0f, 0x01,
+ 0x16, 0x17, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x37, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x0e, 0x01, 0x07, 0x06, 0x07, 0x03, 0x06, 0x07,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x17, 0x06, 0x07, 0x0e, 0x01, 0x07, 0x06,
+ 0x07, 0x2e, 0x01, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x07, 0x17, 0x16, 0x17,
+ 0x1e, 0x01, 0x33, 0x32, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x34, 0x26, 0x27,
+ 0x26, 0x27, 0x01, 0x36, 0x37, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x14, 0x16, 0x17, 0x16, 0x1f, 0x01,
+ 0x36, 0x37, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x1e, 0x01, 0x17, 0x16, 0x17, 0x04, 0x22, 0x07,
+ 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x13,
+ 0x06, 0x07, 0x17, 0x16, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x3f, 0x01, 0x26, 0x27, 0x07,
+ 0x06, 0x15, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x27, 0x03, 0x16, 0x17, 0x37, 0x36, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x1f, 0x01, 0x36, 0x37, 0x27, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x02,
+ 0x01, 0x05, 0x02, 0xcd, 0x10, 0x08, 0x09, 0x17, 0x09, 0x07, 0x06, 0x03,
+ 0x03, 0x06, 0x07, 0x09, 0x15, 0x0b, 0x08, 0x10, 0xcd, 0x02, 0x05, 0xb9,
+ 0x21, 0x12, 0x19, 0x2f, 0x14, 0x12, 0x0a, 0x09, 0x09, 0x0a, 0x12, 0x14,
+ 0x2f, 0x19, 0x12, 0x21, 0x02, 0xca, 0x02, 0x05, 0x6b, 0x6b, 0x10, 0x1b,
+ 0x2f, 0x14, 0x12, 0x0b, 0x09, 0x09, 0x0b, 0x12, 0x14, 0x2f, 0x1b, 0x10,
+ 0x08, 0xce, 0x05, 0x02, 0x6d, 0x6c, 0x06, 0x0f, 0x14, 0x09, 0x07, 0x05,
+ 0x04, 0x04, 0x05, 0x07, 0x0b, 0x16, 0x0b, 0x06, 0x04, 0xfc, 0x35, 0x21,
+ 0x1f, 0x10, 0x0e, 0x1d, 0x1e, 0x24, 0x25, 0x28, 0x27, 0x4c, 0x21, 0x1e,
+ 0x1e, 0x1d, 0x24, 0x24, 0x53, 0x24, 0x24, 0x1c, 0x1e, 0x1f, 0x22, 0x4b,
+ 0x26, 0x29, 0x25, 0x24, 0x1d, 0x1a, 0x12, 0x0f, 0x1d, 0x23, 0x32, 0x45,
+ 0x1e, 0x20, 0x0d, 0x0f, 0x0f, 0x10, 0x1d, 0x19, 0x4d, 0x2d, 0x21, 0x1d,
+ 0x0f, 0x0f, 0x3a, 0x24, 0x25, 0x29, 0x29, 0x4a, 0x20, 0x1f, 0x1e, 0x1c,
+ 0x24, 0x24, 0x53, 0x24, 0x24, 0x1d, 0x1e, 0x1e, 0x24, 0x47, 0x29, 0x28,
+ 0x25, 0x24, 0x3b, 0x0e, 0x10, 0x1f, 0x20, 0x2d, 0x48, 0x1f, 0x1f, 0x0e,
+ 0x0e, 0x0e, 0x10, 0x1d, 0x1f, 0x45, 0x01, 0x94, 0x12, 0x0e, 0x80, 0x0a,
+ 0x05, 0x07, 0x16, 0x0d, 0x0c, 0x0a, 0x0a, 0x11, 0x05, 0x04, 0x09, 0x08,
+ 0x05, 0x0d, 0xa2, 0x0d, 0x0a, 0xa5, 0x1e, 0x0d, 0x13, 0x13, 0x01, 0x09,
+ 0x09, 0x26, 0x2f, 0x1a, 0x1d, 0x2d, 0x13, 0x0c, 0x11, 0x01, 0xba, 0x0e,
+ 0x09, 0x60, 0x61, 0x0b, 0x14, 0x13, 0x01, 0x09, 0x09, 0x13, 0x13, 0x2f,
+ 0x1a, 0x1c, 0x2e, 0x13, 0x0c, 0x05, 0x69, 0x12, 0x0f, 0x44, 0x44, 0x04,
+ 0x09, 0x15, 0x0c, 0x0c, 0x0a, 0x0b, 0x09, 0x08, 0x04, 0x04, 0x01, 0x01,
+ 0x0a, 0x07, 0x05, 0x03, 0x95, 0x0a, 0x0c, 0xa2, 0x0c, 0x06, 0x06, 0x0a,
+ 0x01, 0x01, 0x04, 0x04, 0x11, 0x0b, 0x0a, 0x0c, 0x0c, 0x15, 0x08, 0x05,
+ 0x0a, 0x80, 0x10, 0x11, 0x5f, 0x11, 0x0d, 0x12, 0x2e, 0x1c, 0x1a, 0x2f,
+ 0x26, 0x09, 0x09, 0x01, 0x13, 0x13, 0x0c, 0x1e, 0xfd, 0xc8, 0x10, 0x11,
+ 0x37, 0x37, 0x0b, 0x14, 0x2d, 0x1d, 0x1a, 0x2f, 0x13, 0x13, 0x09, 0x09,
+ 0x01, 0x13, 0x14, 0x0c, 0x08, 0xb9, 0x09, 0x0d, 0x56, 0x56, 0x04, 0x09,
+ 0x09, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0a, 0x0c, 0x0f, 0x14, 0x07, 0x05,
+ 0x02, 0x01, 0x52, 0x4a, 0x1f, 0x21, 0x1a, 0x1a, 0x1b, 0x1b, 0x1a, 0x1a,
+ 0x21, 0x1f, 0x4a, 0x20, 0x20, 0x1a, 0x1a, 0x1b, 0x1b, 0x1a, 0x1a, 0x20,
+ 0x02, 0x13, 0x13, 0x18, 0x02, 0x09, 0x08, 0x09, 0x0a, 0x0b, 0x18, 0x0a,
+ 0x0a, 0x09, 0x08, 0x09, 0x02, 0x18, 0x14, 0x13, 0x32, 0x09, 0x13, 0x13,
+ 0x13, 0x18, 0x16, 0x36, 0x17, 0x17, 0x13, 0x14, 0x13, 0x09, 0x59, 0x14,
+ 0x13, 0x1d, 0x1e, 0x13, 0x14, 0x13, 0x17, 0x17, 0x36, 0x16, 0x18, 0x13,
+ 0x13, 0x13, 0x02, 0x38, 0x14, 0x14, 0x0d, 0x0d, 0x09, 0x08, 0x09, 0x0a,
+ 0x0a, 0x18, 0x0b, 0x0a, 0x09, 0x0a, 0x07, 0x01, 0x02, 0x9a, 0x16, 0x16,
+ 0x1c, 0x02, 0x0a, 0x0a, 0x0a, 0x0a, 0x0c, 0x1a, 0x0c, 0x0c, 0x0a, 0x08,
+ 0x0a, 0x02, 0x1a, 0x16, 0x14, 0x38, 0x0a, 0x14, 0x16, 0x16, 0x1a, 0x18,
+ 0x3c, 0x1a, 0x1a, 0x14, 0x16, 0x16, 0x0a, 0x64, 0x18, 0x14, 0x21, 0x21,
+ 0x16, 0x16, 0x14, 0x1a, 0x1a, 0x3c, 0x18, 0x1a, 0x16, 0x16, 0x14, 0x02,
+ 0x3e, 0x17, 0x15, 0x0e, 0x0e, 0x0a, 0x08, 0x0a, 0x0c, 0x0c, 0x0c, 0x0e,
+ 0x0c, 0x0a, 0x0a, 0x0c, 0x08, 0x01, 0x22, 0x25, 0x55, 0x56, 0x2a, 0x29,
+ 0x20, 0x21, 0x10, 0x10, 0x21, 0x24, 0x33, 0x52, 0x20, 0x1f, 0x12, 0x11,
+ 0x11, 0x12, 0x1f, 0x20, 0x52, 0x33, 0x26, 0x1f, 0x10, 0x10, 0x21, 0x1c,
+ 0x2d, 0x28, 0x2d, 0x25, 0x5a, 0x26, 0x20, 0x22, 0x23, 0x25, 0x28, 0x2e,
+ 0x32, 0x24, 0x28, 0x20, 0x1e, 0x26, 0x26, 0x53, 0x2b, 0x2c, 0x29, 0x29,
+ 0x41, 0x10, 0x10, 0x21, 0x24, 0x33, 0x52, 0x20, 0x1f, 0x12, 0x11, 0x11,
+ 0x12, 0x1f, 0x20, 0x52, 0x33, 0x27, 0x1e, 0x10, 0x10, 0x41, 0x29, 0x29,
+ 0x58, 0x54, 0x24, 0x22, 0x22, 0x23, 0x25, 0x28, 0x60, 0x24, 0x28, 0x20,
+ 0x22, 0x20, 0xfe, 0x1c, 0x0b, 0x0d, 0xb4, 0x0d, 0x06, 0x08, 0x0a, 0x01,
+ 0x01, 0x04, 0x05, 0x12, 0x0c, 0x0c, 0x0d, 0x0d, 0x18, 0x09, 0x06, 0x0a,
+ 0x8e, 0x11, 0x13, 0x69, 0x13, 0x0e, 0x14, 0x33, 0x1f, 0x1d, 0x1b, 0x19,
+ 0x2b, 0x14, 0x15, 0x14, 0x0e, 0x21, 0x02, 0x78, 0x12, 0x13, 0x3d, 0x3d,
+ 0x0d, 0x15, 0x33, 0x1f, 0x1d, 0x1b, 0x19, 0x16, 0x15, 0x14, 0x15, 0x15,
+ 0x0d, 0x09, 0xcd, 0x0c, 0x0e, 0x5f, 0x60, 0x05, 0x0b, 0x08, 0x01, 0x01,
+ 0x04, 0x05, 0x09, 0x09, 0x0c, 0x0c, 0x0d, 0x10, 0x16, 0x09, 0x05, 0x02,
+ 0xfe, 0x1d, 0x13, 0x11, 0x8e, 0x0a, 0x06, 0x08, 0x19, 0x0d, 0x0d, 0x0c,
+ 0x0c, 0x12, 0x05, 0x04, 0x01, 0x01, 0x09, 0x09, 0x06, 0x0d, 0xb4, 0x0e,
+ 0x0a, 0xb9, 0x21, 0x0e, 0x14, 0x15, 0x14, 0x2b, 0x19, 0x1b, 0x1d, 0x1f,
+ 0x33, 0x14, 0x0e, 0x13, 0x01, 0xeb, 0x0f, 0x0b, 0x6b, 0x6b, 0x0d, 0x15,
+ 0x15, 0x14, 0x15, 0x16, 0x19, 0x1b, 0x1d, 0x1f, 0x33, 0x15, 0x0d, 0x05,
+ 0x75, 0x13, 0x12, 0x4b, 0x4a, 0x05, 0x0b, 0x17, 0x0d, 0x0d, 0x0c, 0x0c,
+ 0x09, 0x09, 0x05, 0x04, 0x01, 0x01, 0x0a, 0x09, 0x05, 0x03, 0xdf, 0x0f,
+ 0x10, 0x1c, 0x1f, 0x46, 0x29, 0x28, 0x47, 0x1e, 0x1c, 0x10, 0x0f, 0x0f,
+ 0x10, 0x1c, 0x1e, 0x47, 0x28, 0x29, 0x46, 0x1f, 0x1c, 0x10, 0xfe, 0x24,
+ 0x06, 0x02, 0xe4, 0x11, 0x08, 0x0b, 0x19, 0x0a, 0x09, 0x05, 0x05, 0x05,
+ 0x05, 0x09, 0x0a, 0x17, 0x0d, 0x08, 0x11, 0xe4, 0x02, 0x06, 0xcd, 0x25,
+ 0x13, 0x1d, 0x33, 0x16, 0x14, 0x0c, 0x0b, 0x0b, 0x0c, 0x14, 0x16, 0x33,
+ 0x1d, 0x13, 0x25, 0x03, 0x1a, 0x02, 0x06, 0x77, 0x77, 0x12, 0x1e, 0x33,
+ 0x16, 0x14, 0x0c, 0x0b, 0x0b, 0x0c, 0x14, 0x16, 0x33, 0x1e, 0x12, 0x09,
+ 0xe5, 0x06, 0x02, 0x78, 0x79, 0x07, 0x0f, 0x16, 0x0a, 0x09, 0x05, 0x05,
+ 0x05, 0x05, 0x09, 0x0c, 0x17, 0x0c, 0x07, 0x05, 0x00, 0x04, 0x00, 0x4d,
+ 0xff, 0xe3, 0x05, 0xbb, 0x05, 0xf0, 0x00, 0x19, 0x00, 0x33, 0x00, 0x4e,
+ 0x00, 0x5e, 0x00, 0x00, 0x00, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x32, 0x17, 0x16, 0x17, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x2e, 0x01, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x13, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27,
+ 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x36, 0x17,
+ 0x03, 0x25, 0x13, 0x0d, 0x01, 0x03, 0x25, 0x1b, 0x01, 0x05, 0x03, 0x2d,
+ 0x01, 0x13, 0x05, 0x03, 0x3b, 0x6e, 0x2e, 0x2f, 0x27, 0x27, 0x26, 0x26,
+ 0x27, 0x27, 0x2f, 0x2e, 0x6e, 0x2e, 0x30, 0x26, 0x27, 0x27, 0x27, 0x27,
+ 0x26, 0x30, 0x65, 0x4e, 0x3e, 0x45, 0x31, 0x33, 0x39, 0x37, 0x35, 0x34,
+ 0x42, 0x41, 0x99, 0x3d, 0x46, 0x30, 0x33, 0x39, 0x37, 0x35, 0x33, 0x43,
+ 0x41, 0x4a, 0x8b, 0x80, 0x78, 0x68, 0x65, 0x67, 0x63, 0x69, 0x63, 0x7d,
+ 0x7f, 0xfe, 0xea, 0x80, 0x79, 0x67, 0x65, 0x68, 0x63, 0x6a, 0x61, 0x7f,
+ 0x7e, 0x8c, 0x8d, 0xfe, 0xa5, 0x93, 0xfe, 0xa4, 0x01, 0x5c, 0x93, 0x01,
+ 0x5b, 0x8d, 0x8e, 0x01, 0x5a, 0x93, 0x01, 0x5d, 0xfe, 0xa3, 0x93, 0xfe,
+ 0xa6, 0x04, 0x13, 0x16, 0x18, 0x28, 0x2e, 0x68, 0x3c, 0x3b, 0x68, 0x2e,
+ 0x28, 0x18, 0x16, 0x16, 0x18, 0x28, 0x2e, 0x68, 0x3b, 0x3c, 0x68, 0x2e,
+ 0x28, 0x18, 0x86, 0x1f, 0x22, 0x36, 0x38, 0x96, 0x54, 0x4e, 0x96, 0x3b,
+ 0x39, 0x1f, 0x1f, 0x1f, 0x22, 0x36, 0x38, 0x96, 0xa2, 0x96, 0x3b, 0x39,
+ 0x1f, 0x1f, 0x01, 0x6d, 0x3b, 0x38, 0x72, 0x6f, 0xfe, 0xec, 0xa1, 0x98,
+ 0xfe, 0xf0, 0x77, 0x70, 0x3a, 0x3b, 0x3b, 0x38, 0x72, 0x6f, 0x01, 0x14,
+ 0x9c, 0x9d, 0x01, 0x10, 0x77, 0x6e, 0x3c, 0x3b, 0x08, 0xfe, 0x7d, 0xa3,
+ 0xfe, 0x7f, 0x9e, 0x9d, 0xfe, 0x7f, 0xa3, 0xfe, 0x7d, 0x01, 0x83, 0xa3,
+ 0x01, 0x81, 0x9d, 0x9e, 0x01, 0x81, 0xa3, 0x00, 0x00, 0x07, 0x00, 0x90,
+ 0xff, 0xe3, 0x05, 0x77, 0x05, 0xf0, 0x00, 0x08, 0x00, 0x93, 0x00, 0x9c,
+ 0x00, 0xa7, 0x00, 0xb2, 0x00, 0xc1, 0x00, 0xd0, 0x00, 0x00, 0x01, 0x11,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x13, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x2f, 0x01, 0x15, 0x14,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x3d, 0x01, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x33, 0x32, 0x3f, 0x01, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x1f, 0x01, 0x35, 0x34, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x1d,
+ 0x01, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x23,
+ 0x22, 0x0f, 0x01, 0x11, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x13,
+ 0x25, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x01, 0x05,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x13, 0x25, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x33, 0x32,
+ 0x0d, 0x01, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x23, 0x22, 0x03, 0x04, 0x26, 0x2c, 0x1b, 0x22, 0x32, 0x97, 0x10,
+ 0x30, 0x5b, 0x1d, 0x21, 0x10, 0x0f, 0x51, 0x3f, 0x52, 0x11, 0x0a, 0x17,
+ 0x27, 0x62, 0x12, 0x13, 0x33, 0x3b, 0x4b, 0x2a, 0x39, 0x43, 0x10, 0x4e,
+ 0x39, 0x30, 0x4a, 0x4c, 0x4f, 0x46, 0x31, 0x3a, 0x4d, 0x10, 0x40, 0x3b,
+ 0x2c, 0x49, 0x3c, 0x32, 0x14, 0x12, 0x63, 0x26, 0x16, 0x0a, 0x10, 0x53,
+ 0x3f, 0x51, 0x0e, 0x10, 0x22, 0x1c, 0x5b, 0x30, 0x10, 0x10, 0x2e, 0x5b,
+ 0x1d, 0x23, 0x10, 0x0e, 0x51, 0x3f, 0x51, 0x12, 0x0b, 0x17, 0x26, 0x63,
+ 0x12, 0x14, 0x32, 0x3c, 0x4a, 0x2b, 0x38, 0x43, 0x10, 0x4d, 0x3a, 0x31,
+ 0x4a, 0x97, 0x4a, 0x30, 0x39, 0x4e, 0x10, 0x40, 0x3c, 0x2c, 0x49, 0x3b,
+ 0x33, 0x13, 0x12, 0x62, 0x27, 0x17, 0x0a, 0x11, 0x52, 0x3f, 0x51, 0x0f,
+ 0x10, 0x22, 0x1e, 0x5b, 0x2e, 0x8e, 0x26, 0x2c, 0x1b, 0x21, 0x33, 0x9d,
+ 0x01, 0x58, 0x13, 0x38, 0x09, 0x0b, 0x1c, 0x26, 0x3f, 0x17, 0x20, 0xfe,
+ 0x53, 0xfe, 0xa9, 0x13, 0x37, 0x09, 0x0b, 0x1c, 0x27, 0x3f, 0x16, 0x21,
+ 0x40, 0xfe, 0xa9, 0x0c, 0x04, 0x07, 0x35, 0x36, 0x2f, 0x0a, 0x08, 0x1a,
+ 0x1b, 0x3a, 0x01, 0xa9, 0x01, 0x58, 0x0c, 0x05, 0x06, 0x35, 0x36, 0x30,
+ 0x09, 0x08, 0x1a, 0x1b, 0x3b, 0x03, 0xd3, 0x01, 0xb9, 0x2b, 0x1a, 0x44,
+ 0x51, 0x32, 0x4a, 0xfe, 0xb4, 0x0b, 0x20, 0x03, 0x01, 0x28, 0x35, 0x48,
+ 0x2c, 0x27, 0x39, 0x2c, 0x4a, 0x1e, 0x06, 0x26, 0x30, 0x66, 0x89, 0x29,
+ 0x0a, 0x14, 0x54, 0x7c, 0x5c, 0x60, 0x6a, 0x34, 0x4f, 0x4f, 0x37, 0x67,
+ 0x60, 0x5c, 0x7c, 0x54, 0x14, 0x0a, 0x27, 0x8b, 0x67, 0x2f, 0x26, 0x06,
+ 0x20, 0x48, 0x2c, 0x39, 0x27, 0x2c, 0x49, 0x34, 0x28, 0x01, 0x03, 0x20,
+ 0x0b, 0x0b, 0x1f, 0x03, 0x01, 0x28, 0x33, 0x4a, 0x2c, 0x26, 0x39, 0x2d,
+ 0x48, 0x20, 0x06, 0x26, 0x30, 0x66, 0x89, 0x29, 0x0a, 0x14, 0x54, 0x7c,
+ 0x5c, 0x60, 0x6a, 0x34, 0x4f, 0x4f, 0x34, 0x6a, 0x60, 0x5c, 0x7c, 0x54,
+ 0x14, 0x0a, 0x27, 0x8b, 0x67, 0x2f, 0x26, 0x06, 0x1e, 0x4a, 0x2c, 0x39,
+ 0x27, 0x2c, 0x48, 0x35, 0x28, 0x01, 0x03, 0x1f, 0xf5, 0xfe, 0x47, 0x2b,
+ 0x1a, 0x44, 0x51, 0x32, 0x4a, 0x01, 0xc1, 0xdd, 0x24, 0x15, 0x04, 0x19,
+ 0x28, 0x3a, 0x55, 0xfe, 0xcd, 0xdd, 0x24, 0x15, 0x04, 0x19, 0x28, 0x3a,
+ 0x55, 0x01, 0x33, 0xdd, 0x17, 0x21, 0x15, 0x18, 0x27, 0x22, 0x22, 0x01,
+ 0x04, 0xfb, 0xdd, 0x17, 0x21, 0x15, 0x18, 0x27, 0x22, 0x22, 0x01, 0x04,
+ 0x00, 0x01, 0x00, 0xa3, 0x00, 0x00, 0x05, 0x65, 0x05, 0xd5, 0x00, 0x41,
+ 0x00, 0x00, 0x01, 0x27, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x35, 0x33,
+ 0x15, 0x17, 0x11, 0x27, 0x37, 0x17, 0x35, 0x33, 0x15, 0x37, 0x17, 0x07,
+ 0x11, 0x37, 0x35, 0x33, 0x15, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, 0x07,
+ 0x17, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, 0x15, 0x23, 0x35, 0x27, 0x11,
+ 0x17, 0x07, 0x27, 0x15, 0x23, 0x35, 0x07, 0x27, 0x37, 0x11, 0x07, 0x15,
+ 0x23, 0x35, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x02, 0x98, 0xd8, 0xae,
+ 0x36, 0x78, 0xb0, 0x36, 0xb0, 0x6c, 0xd8, 0xae, 0x36, 0x78, 0x6c, 0x79,
+ 0x36, 0xaf, 0xd8, 0x6c, 0xb1, 0x36, 0xb1, 0x79, 0x36, 0xaf, 0xd8, 0xd8,
+ 0xaf, 0x36, 0x79, 0xb1, 0x36, 0xb1, 0x6c, 0xd8, 0xaf, 0x36, 0x79, 0x6c,
+ 0x78, 0x36, 0xae, 0xd8, 0x6c, 0xb0, 0x36, 0xb0, 0x78, 0x36, 0xae, 0x02,
+ 0xeb, 0x8a, 0x70, 0x68, 0x4d, 0x72, 0x68, 0x72, 0x9b, 0xe0, 0x8b, 0x01,
+ 0x16, 0x6f, 0x68, 0x4d, 0xe3, 0xe3, 0x4d, 0x68, 0x6f, 0xfe, 0xeb, 0x8a,
+ 0xe0, 0x9b, 0x72, 0x68, 0x72, 0x4d, 0x68, 0x70, 0x8a, 0x8b, 0x70, 0x68,
+ 0x4d, 0x72, 0x68, 0x72, 0x9b, 0xe0, 0x8b, 0xfe, 0xea, 0x6f, 0x68, 0x4d,
+ 0xe3, 0xe3, 0x4d, 0x68, 0x6f, 0x01, 0x16, 0x8b, 0xe0, 0x9b, 0x72, 0x68,
+ 0x72, 0x4d, 0x68, 0x70, 0x00, 0x07, 0x00, 0x8c, 0x00, 0x00, 0x05, 0x7c,
+ 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x25, 0x00, 0x29, 0x00, 0x2d,
+ 0x00, 0x31, 0x00, 0x35, 0x00, 0x00, 0x01, 0x33, 0x11, 0x25, 0x11, 0x37,
+ 0x17, 0x07, 0x0d, 0x01, 0x17, 0x07, 0x27, 0x11, 0x25, 0x11, 0x23, 0x11,
+ 0x05, 0x11, 0x07, 0x27, 0x37, 0x2d, 0x01, 0x27, 0x37, 0x17, 0x11, 0x05,
+ 0x07, 0x15, 0x17, 0x35, 0x25, 0x07, 0x15, 0x37, 0x05, 0x07, 0x17, 0x37,
+ 0x25, 0x07, 0x17, 0x37, 0x05, 0x07, 0x15, 0x3f, 0x01, 0x15, 0x17, 0x35,
+ 0x02, 0xce, 0x6c, 0x01, 0x06, 0xef, 0x36, 0xf0, 0x01, 0x07, 0xfe, 0xfa,
+ 0xef, 0x36, 0xef, 0xfe, 0xfa, 0x6c, 0xfe, 0xfa, 0xee, 0x36, 0xee, 0xfe,
+ 0xfa, 0x01, 0x07, 0xef, 0x36, 0xee, 0x01, 0x06, 0x9a, 0x9a, 0x01, 0x06,
+ 0x9a, 0x9a, 0xfe, 0x2b, 0x9b, 0x9a, 0x9a, 0x01, 0x71, 0x99, 0x9a, 0x9a,
+ 0xfe, 0x2a, 0x9a, 0x9a, 0x6c, 0x9a, 0x05, 0xd5, 0xfe, 0xcc, 0xa9, 0xfe,
+ 0xb0, 0x9a, 0x68, 0x9a, 0xa8, 0xa8, 0x99, 0x68, 0x9a, 0xfe, 0xaf, 0xa9,
+ 0xfe, 0xcd, 0x01, 0x33, 0xa9, 0x01, 0x51, 0x9a, 0x68, 0x99, 0xa8, 0xa8,
+ 0x9a, 0x68, 0x9a, 0x01, 0x50, 0xa9, 0x27, 0xc5, 0x63, 0xc5, 0x63, 0x63,
+ 0xc5, 0x63, 0x68, 0x63, 0x62, 0x62, 0x63, 0x63, 0x62, 0x62, 0x67, 0x63,
+ 0xc6, 0x63, 0xc6, 0xc6, 0x63, 0xc6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x75,
+ 0x00, 0x04, 0x05, 0x92, 0x05, 0xd5, 0x00, 0x41, 0x00, 0x00, 0x01, 0x33,
+ 0x15, 0x37, 0x17, 0x07, 0x11, 0x37, 0x11, 0x33, 0x15, 0x37, 0x17, 0x07,
+ 0x17, 0x07, 0x27, 0x07, 0x17, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, 0x15,
+ 0x23, 0x11, 0x27, 0x11, 0x17, 0x07, 0x27, 0x15, 0x23, 0x35, 0x07, 0x27,
+ 0x37, 0x11, 0x07, 0x11, 0x23, 0x35, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17,
+ 0x37, 0x27, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x35, 0x33, 0x11, 0x17,
+ 0x11, 0x27, 0x37, 0x17, 0x02, 0xce, 0x6c, 0x7e, 0x5a, 0xd8, 0xf1, 0xb4,
+ 0x50, 0x36, 0x52, 0x7e, 0x5a, 0xd8, 0xf0, 0xf1, 0xd8, 0x5a, 0x7e, 0x50,
+ 0x36, 0x53, 0xb4, 0xed, 0xd8, 0x5a, 0x7e, 0x6c, 0x7e, 0x5a, 0xd8, 0xee,
+ 0xb4, 0x52, 0x36, 0x4f, 0x7e, 0x5a, 0xd8, 0xf0, 0xee, 0xd8, 0x5a, 0x7e,
+ 0x53, 0x36, 0x50, 0xb4, 0xf2, 0xd8, 0x5a, 0x7e, 0x05, 0xd5, 0x68, 0x51,
+ 0xad, 0x8b, 0xfe, 0xce, 0x9b, 0x01, 0x15, 0xa2, 0x34, 0x68, 0x35, 0x51,
+ 0xad, 0x8a, 0x99, 0x9b, 0x8b, 0xad, 0x51, 0x34, 0x68, 0x35, 0xa1, 0x01,
+ 0x15, 0x98, 0xfe, 0xd0, 0x8b, 0xad, 0x51, 0x68, 0x65, 0x51, 0xad, 0x8b,
+ 0x01, 0x35, 0x99, 0xfe, 0xeb, 0xa1, 0x35, 0x68, 0x33, 0x51, 0xae, 0x8b,
+ 0x9a, 0x99, 0x8b, 0xad, 0x51, 0x35, 0x68, 0x33, 0xa1, 0xfe, 0xeb, 0x9b,
+ 0x01, 0x36, 0x8b, 0xad, 0x51, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x90,
+ 0xff, 0xe5, 0x05, 0x78, 0x05, 0xf0, 0x00, 0x87, 0x00, 0x00, 0x01, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x07,
+ 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x27, 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x0e, 0x01, 0x22, 0x2e,
+ 0x01, 0x34, 0x36, 0x37, 0x36, 0x37, 0x11, 0x07, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x37, 0x27, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x17, 0x11, 0x26, 0x27, 0x2e, 0x01,
+ 0x34, 0x36, 0x37, 0x36, 0x33, 0x32, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06,
+ 0x07, 0x11, 0x37, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x05, 0x5f, 0x19, 0x19, 0x18, 0x29, 0x2b, 0x2f, 0x31, 0x29,
+ 0x12, 0x0f, 0xd9, 0xd9, 0x0f, 0x12, 0x29, 0x31, 0x2f, 0x2b, 0x29, 0x18,
+ 0x19, 0x19, 0x19, 0x28, 0x2b, 0x2f, 0x2e, 0x2c, 0x2b, 0x18, 0x17, 0x03,
+ 0xd9, 0x13, 0x11, 0x2a, 0x30, 0x30, 0x53, 0x61, 0x53, 0x31, 0x31, 0x29,
+ 0x11, 0x13, 0xd9, 0x04, 0x17, 0x19, 0x2a, 0x2a, 0x30, 0x31, 0x29, 0x29,
+ 0x19, 0x18, 0x18, 0x19, 0x29, 0x2a, 0x60, 0x2a, 0x11, 0x0f, 0xd9, 0xd9,
+ 0x0e, 0x12, 0x2c, 0x2e, 0x31, 0x52, 0x31, 0x18, 0x19, 0x29, 0x2a, 0x30,
+ 0x2e, 0x2c, 0x2a, 0x19, 0x17, 0x04, 0xd9, 0x13, 0x11, 0x29, 0x31, 0x31,
+ 0x29, 0x2a, 0x30, 0x31, 0x53, 0x30, 0x30, 0x2a, 0x11, 0x13, 0xd9, 0x03,
+ 0x17, 0x17, 0x2c, 0x29, 0x31, 0x2f, 0x2b, 0x2d, 0x04, 0x6d, 0x36, 0x2e,
+ 0x35, 0x2f, 0x2e, 0x1b, 0x1b, 0x1b, 0x0b, 0x0f, 0x8b, 0x8c, 0x0f, 0x0b,
+ 0x1b, 0x1b, 0x1b, 0x2e, 0x2f, 0x35, 0x34, 0x2f, 0x2f, 0x1b, 0x1b, 0x1b,
+ 0x1a, 0x2f, 0x2e, 0x36, 0x16, 0x15, 0x8c, 0xfe, 0xe9, 0x07, 0x0b, 0x1b,
+ 0x5c, 0x6c, 0x5c, 0x36, 0x36, 0x5c, 0x6c, 0x5c, 0x1b, 0x0b, 0x07, 0x01,
+ 0x17, 0x8c, 0x15, 0x16, 0x36, 0x2e, 0x2f, 0x1a, 0x1b, 0x1b, 0x1a, 0x2f,
+ 0x2e, 0x36, 0x35, 0x2f, 0x2e, 0x1b, 0x1b, 0x1b, 0x0b, 0x0f, 0x8c, 0x8b,
+ 0x0f, 0x0b, 0x1b, 0x36, 0x5c, 0x6c, 0x2e, 0x2f, 0x1a, 0x1b, 0x1b, 0x1a,
+ 0x2f, 0x2e, 0x36, 0x16, 0x15, 0x8c, 0x01, 0x17, 0x07, 0x0b, 0x1b, 0x5c,
+ 0x6c, 0x5c, 0x1b, 0x1b, 0x36, 0x5c, 0x6c, 0x5c, 0x1b, 0x0b, 0x07, 0xfe,
+ 0xe9, 0x8c, 0x15, 0x16, 0x36, 0x2e, 0x2d, 0x1c, 0x1b, 0x1b, 0x1e, 0x00,
+ 0x00, 0x09, 0x00, 0x57, 0xff, 0xe5, 0x05, 0xb2, 0x05, 0xd7, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x2e, 0x00, 0x45,
+ 0x00, 0x5c, 0x00, 0x73, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34,
+ 0x36, 0x32, 0x09, 0x01, 0x37, 0x09, 0x02, 0x37, 0x09, 0x02, 0x27, 0x09,
+ 0x02, 0x27, 0x01, 0x13, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x03, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x05, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03,
+ 0x8b, 0x4f, 0x70, 0x4f, 0x4f, 0x70, 0x01, 0x7d, 0xfe, 0xa3, 0x4d, 0x01,
+ 0x5c, 0xfd, 0x59, 0xfe, 0xa5, 0x4d, 0x01, 0x5a, 0x02, 0x5b, 0xfe, 0xa4,
+ 0x4d, 0x01, 0x5d, 0xfd, 0xf1, 0xfe, 0xa6, 0x4d, 0x01, 0x5b, 0xa6, 0x33,
+ 0x0e, 0x14, 0x04, 0x01, 0x02, 0x03, 0x0d, 0x15, 0x67, 0x14, 0x0e, 0x02,
+ 0x02, 0x01, 0x03, 0x15, 0x0d, 0x34, 0x34, 0x0d, 0x15, 0x03, 0x01, 0x02,
+ 0x02, 0x0e, 0x14, 0x67, 0x15, 0x0d, 0x03, 0x02, 0x01, 0x04, 0x14, 0x0e,
+ 0x8f, 0x36, 0x16, 0x21, 0x3d, 0x1a, 0x4a, 0x3e, 0x1b, 0x3b, 0x1d, 0x2c,
+ 0x2c, 0x1d, 0x3b, 0x1b, 0x3e, 0x4a, 0x1a, 0x3d, 0x21, 0x16, 0x01, 0xbb,
+ 0x36, 0x15, 0x22, 0x3d, 0x1a, 0x4a, 0x3e, 0x1b, 0x3a, 0x1d, 0x2c, 0x2c,
+ 0x1d, 0x3a, 0x1b, 0x3e, 0x4a, 0x1a, 0x3d, 0x22, 0x15, 0x03, 0x2c, 0x7c,
+ 0x58, 0x58, 0x7c, 0x58, 0xfd, 0x2e, 0x01, 0x84, 0x55, 0xfe, 0x7c, 0x02,
+ 0x4a, 0x01, 0x81, 0x55, 0xfe, 0x7e, 0x01, 0x2d, 0xfe, 0x7c, 0x55, 0x01,
+ 0x84, 0xfd, 0x0d, 0xfe, 0x7e, 0x55, 0x01, 0x81, 0x01, 0x2e, 0x3c, 0x18,
+ 0x25, 0x44, 0x1d, 0x52, 0x45, 0x1e, 0x41, 0x20, 0x31, 0x31, 0x20, 0x41,
+ 0x1e, 0x45, 0x52, 0x1d, 0x44, 0x25, 0x18, 0xfe, 0x14, 0x3c, 0x18, 0x25,
+ 0x44, 0x1d, 0x52, 0x45, 0x1e, 0x41, 0x20, 0x31, 0x31, 0x20, 0x41, 0x1e,
+ 0x45, 0x52, 0x1d, 0x44, 0x25, 0x18, 0x01, 0x14, 0x39, 0x0f, 0x17, 0x04,
+ 0x01, 0x02, 0x03, 0x0f, 0x17, 0x72, 0x17, 0x0f, 0x03, 0x02, 0x01, 0x04,
+ 0x17, 0x0f, 0x39, 0x39, 0x0f, 0x17, 0x04, 0x01, 0x02, 0x03, 0x0f, 0x17,
+ 0x72, 0x17, 0x0f, 0x03, 0x02, 0x01, 0x04, 0x17, 0x0f, 0x00, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0x57, 0xff, 0xe5, 0x05, 0xb2, 0x05, 0xd7, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x2b, 0x00, 0x3f,
+ 0x00, 0x53, 0x00, 0x67, 0x00, 0x00, 0x00, 0x14, 0x06, 0x22, 0x26, 0x34,
+ 0x36, 0x32, 0x09, 0x01, 0x17, 0x09, 0x02, 0x17, 0x09, 0x02, 0x07, 0x09,
+ 0x02, 0x07, 0x01, 0x02, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x12,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x00, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x24, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x03,
+ 0xcf, 0x77, 0xa8, 0x76, 0x76, 0xa8, 0xfd, 0xab, 0x01, 0x0b, 0x4d, 0xfe,
+ 0xf5, 0x02, 0x5d, 0x01, 0x0c, 0x4c, 0xfe, 0xf5, 0xfd, 0x56, 0x01, 0x0b,
+ 0x4d, 0xfe, 0xf5, 0x02, 0xf7, 0x01, 0x0b, 0x4c, 0xfe, 0xf4, 0x07, 0x11,
+ 0x13, 0x23, 0x29, 0x63, 0x2a, 0x23, 0x13, 0x11, 0x11, 0x13, 0x23, 0x2a,
+ 0x63, 0x29, 0x23, 0x13, 0x11, 0x11, 0x13, 0x23, 0x29, 0x63, 0x2a, 0x23,
+ 0x13, 0x11, 0x11, 0x13, 0x23, 0x2a, 0x63, 0x29, 0x23, 0x13, 0xfd, 0x63,
+ 0x65, 0x2c, 0x32, 0x1f, 0x24, 0x24, 0x1f, 0x32, 0x2c, 0x65, 0x2c, 0x31,
+ 0x20, 0x24, 0x24, 0x20, 0x31, 0x03, 0xdf, 0x65, 0x2c, 0x32, 0x1f, 0x24,
+ 0x24, 0x1f, 0x32, 0x2c, 0x65, 0x2c, 0x31, 0x20, 0x24, 0x24, 0x20, 0x31,
+ 0x03, 0x4b, 0xba, 0x84, 0x84, 0xba, 0x84, 0xfd, 0x38, 0x01, 0x29, 0x55,
+ 0xfe, 0xd7, 0x03, 0x4c, 0x01, 0x29, 0x55, 0xfe, 0xd7, 0x01, 0x7e, 0xfe,
+ 0xd7, 0x55, 0x01, 0x29, 0xfd, 0x5e, 0xfe, 0xd7, 0x55, 0x01, 0x29, 0x03,
+ 0x49, 0x70, 0x31, 0x37, 0x23, 0x28, 0x28, 0x23, 0x37, 0x31, 0x70, 0x31,
+ 0x37, 0x23, 0x28, 0x28, 0x23, 0x37, 0xfb, 0xb3, 0x70, 0x31, 0x37, 0x23,
+ 0x28, 0x28, 0x23, 0x37, 0x31, 0x70, 0x31, 0x37, 0x23, 0x28, 0x28, 0x23,
+ 0x37, 0x02, 0x59, 0x13, 0x15, 0x27, 0x2e, 0x6e, 0x2e, 0x27, 0x15, 0x13,
+ 0x13, 0x15, 0x27, 0x2e, 0x6e, 0x2e, 0x27, 0x15, 0x13, 0x13, 0x15, 0x27,
+ 0x2e, 0x6e, 0x2e, 0x27, 0x15, 0x13, 0x13, 0x15, 0x27, 0x2e, 0x6e, 0x2e,
+ 0x27, 0x15, 0x00, 0x00, 0x00, 0x09, 0x00, 0x4b, 0xff, 0xe5, 0x05, 0xbd,
+ 0x05, 0xf2, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x25, 0x00, 0x32, 0x00, 0x3f,
+ 0x00, 0x4b, 0x00, 0x57, 0x00, 0x5f, 0x00, 0x6b, 0x00, 0x00, 0x01, 0x14,
+ 0x07, 0x06, 0x2b, 0x01, 0x25, 0x35, 0x25, 0x33, 0x32, 0x17, 0x16, 0x05,
+ 0x34, 0x36, 0x3b, 0x01, 0x05, 0x15, 0x05, 0x23, 0x22, 0x27, 0x26, 0x01,
+ 0x16, 0x15, 0x14, 0x0f, 0x01, 0x01, 0x27, 0x13, 0x37, 0x36, 0x33, 0x32,
+ 0x01, 0x26, 0x35, 0x34, 0x3f, 0x01, 0x01, 0x17, 0x03, 0x07, 0x06, 0x23,
+ 0x22, 0x03, 0x36, 0x33, 0x32, 0x1f, 0x01, 0x13, 0x07, 0x01, 0x27, 0x26,
+ 0x35, 0x34, 0x01, 0x06, 0x22, 0x2f, 0x01, 0x03, 0x37, 0x01, 0x17, 0x16,
+ 0x15, 0x14, 0x00, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x03, 0x23, 0x03, 0x35,
+ 0x34, 0x37, 0x12, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x02, 0x22,
+ 0x27, 0x26, 0x3d, 0x01, 0x13, 0x33, 0x13, 0x15, 0x14, 0x07, 0x05, 0xbd,
+ 0x19, 0x1a, 0x24, 0x09, 0xfe, 0x8a, 0x01, 0x76, 0x09, 0x23, 0x1b, 0x19,
+ 0xfa, 0x8f, 0x32, 0x24, 0x09, 0x01, 0x76, 0xfe, 0x8a, 0x09, 0x22, 0x1b,
+ 0x19, 0x04, 0xa5, 0x1b, 0x19, 0x06, 0xfe, 0xd8, 0x40, 0xe8, 0x06, 0x1a,
+ 0x25, 0x25, 0xfc, 0x40, 0x1a, 0x18, 0x07, 0x01, 0x28, 0x40, 0xe9, 0x06,
+ 0x19, 0x25, 0x24, 0x1c, 0x1a, 0x26, 0x24, 0x1a, 0x06, 0xe9, 0x40, 0xfe,
+ 0xd8, 0x07, 0x18, 0x03, 0xf4, 0x1b, 0x49, 0x1a, 0x06, 0xe8, 0x40, 0x01,
+ 0x28, 0x06, 0x19, 0xfd, 0xd3, 0x4a, 0x1b, 0x1a, 0x2d, 0x5a, 0x2d, 0x1a,
+ 0xc7, 0x4f, 0x70, 0x4f, 0x4f, 0x70, 0x13, 0x4a, 0x1b, 0x1a, 0x2d, 0x5a,
+ 0x2d, 0x1a, 0x02, 0xec, 0x2a, 0x1e, 0x1c, 0x32, 0x64, 0x32, 0x1e, 0x1e,
+ 0x28, 0x28, 0x3c, 0x32, 0x64, 0x32, 0x1c, 0x1e, 0x02, 0x4d, 0x1d, 0x2a,
+ 0x27, 0x1d, 0x07, 0xfe, 0xfe, 0x46, 0x01, 0x49, 0x07, 0x1c, 0xfb, 0x9b,
+ 0x1d, 0x2a, 0x27, 0x1d, 0x07, 0x01, 0x02, 0x46, 0xfe, 0xb7, 0x07, 0x1c,
+ 0x04, 0x65, 0x1e, 0x1c, 0x07, 0xfe, 0xb7, 0x46, 0x01, 0x02, 0x07, 0x1b,
+ 0x29, 0x2a, 0xfb, 0xd6, 0x1e, 0x1c, 0x07, 0x01, 0x49, 0x46, 0xfe, 0xfe,
+ 0x07, 0x1b, 0x29, 0x2a, 0x05, 0x0d, 0x1d, 0x1c, 0x28, 0x0a, 0xfe, 0x61,
+ 0x01, 0x9f, 0x0a, 0x27, 0x1d, 0xfd, 0x55, 0x7c, 0x58, 0x58, 0x7c, 0x58,
+ 0xfc, 0x63, 0x1d, 0x1c, 0x28, 0x0a, 0x01, 0x9f, 0xfe, 0x61, 0x0a, 0x27,
+ 0x1d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4b, 0xff, 0xe5, 0x05, 0xbd,
+ 0x05, 0xf2, 0x00, 0x6c, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x03, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x01, 0x25, 0x36, 0x33, 0x32, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x25, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x03, 0x13, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x13, 0x03, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x05, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x05, 0x01,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x16, 0x17, 0x16, 0x17,
+ 0x01, 0x03, 0x26, 0x35, 0x34, 0x37, 0x36, 0x03, 0x04, 0x27, 0x2a, 0x20,
+ 0x05, 0x46, 0x01, 0x00, 0x12, 0x02, 0x2f, 0x2d, 0x3c, 0x1b, 0x1b, 0x2e,
+ 0x09, 0x17, 0xfe, 0xa2, 0x01, 0xaf, 0x17, 0x0a, 0x45, 0x1e, 0x2a, 0x2a,
+ 0x20, 0x43, 0x06, 0x21, 0xfe, 0x57, 0x01, 0x63, 0x19, 0x02, 0x2e, 0x1b,
+ 0x1b, 0x3c, 0x27, 0x35, 0x09, 0x10, 0xfb, 0x46, 0x05, 0x20, 0x2a, 0x4d,
+ 0x2b, 0x1f, 0x04, 0x46, 0xfb, 0x10, 0x09, 0x2f, 0x2d, 0x3b, 0x1c, 0x1b,
+ 0x2f, 0x02, 0x19, 0x01, 0x62, 0xfe, 0x58, 0x22, 0x06, 0x43, 0x20, 0x29,
+ 0x29, 0x1f, 0x44, 0x0b, 0x16, 0x01, 0xaf, 0xfe, 0xa2, 0x16, 0x09, 0x2f,
+ 0x1b, 0x1c, 0x3b, 0x21, 0x3b, 0x02, 0x13, 0x00, 0xff, 0x46, 0x04, 0x1f,
+ 0x2a, 0x05, 0xf2, 0x2f, 0x23, 0x4a, 0x07, 0x1f, 0xfe, 0x22, 0x01, 0x89,
+ 0x1d, 0x01, 0x35, 0x1f, 0x1e, 0x43, 0x37, 0x2f, 0x09, 0x12, 0xfe, 0xe9,
+ 0x4e, 0x04, 0x22, 0x2e, 0x58, 0x2e, 0x24, 0x06, 0x4d, 0xfe, 0xe5, 0x16,
+ 0x01, 0x35, 0x31, 0x43, 0x1e, 0x1f, 0x35, 0x09, 0x19, 0x01, 0x85, 0xfe,
+ 0x22, 0x1f, 0x07, 0x4a, 0x23, 0x2f, 0x2f, 0x23, 0x4a, 0x0e, 0x1e, 0x01,
+ 0xd8, 0xfe, 0x7b, 0x19, 0x09, 0x35, 0x1f, 0x1e, 0x43, 0x4c, 0x1a, 0x01,
+ 0x16, 0x01, 0x1b, 0x4d, 0x06, 0x24, 0x2e, 0x58, 0x2e, 0x22, 0x04, 0x4e,
+ 0x01, 0x17, 0x12, 0x09, 0x35, 0x31, 0x43, 0x1e, 0x1f, 0x14, 0x21, 0x01,
+ 0x1d, 0xfe, 0x77, 0x01, 0xd8, 0x1e, 0x0e, 0x4a, 0x23, 0x2f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5b, 0xff, 0xec, 0x06, 0x19, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x23, 0x00, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x02, 0x24, 0x23, 0x22, 0x04, 0x02, 0x01, 0x06, 0x23, 0x20, 0x00, 0x11,
+ 0x34, 0x12, 0x24, 0x33, 0x32, 0x17, 0x36, 0x33, 0x32, 0x04, 0x12, 0x15,
+ 0x10, 0x00, 0x21, 0x22, 0xa6, 0x01, 0x68, 0x00, 0xff, 0x01, 0x00, 0x01,
+ 0x67, 0xa4, 0xfe, 0xd9, 0x9c, 0x9b, 0xfe, 0xd8, 0xa4, 0x02, 0x93, 0x16,
+ 0x17, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0x17, 0x16, 0x17,
+ 0x16, 0xae, 0x01, 0x4c, 0xb9, 0xfe, 0x6b, 0xfe, 0xe2, 0x16, 0x02, 0xea,
+ 0xfe, 0xe4, 0xfe, 0x70, 0x01, 0x90, 0x01, 0x1c, 0xb3, 0x01, 0x47, 0xb1,
+ 0xb1, 0xfe, 0xb9, 0xfc, 0x51, 0x02, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01,
+ 0x72, 0xc6, 0x02, 0x02, 0xc6, 0xfe, 0x90, 0xc8, 0xfe, 0xc1, 0xfe, 0x41,
+ 0x00, 0x02, 0x00, 0x6d, 0xff, 0x9c, 0x06, 0x07, 0x05, 0xd4, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x00, 0x25, 0x11, 0x21, 0x11, 0x17, 0x23, 0x11, 0x21,
+ 0x15, 0x33, 0x11, 0x21, 0x05, 0x62, 0xfb, 0x56, 0x10, 0x5a, 0x05, 0x3f,
+ 0x5a, 0xfa, 0xc1, 0x53, 0x05, 0x2e, 0xfa, 0xd2, 0x53, 0x05, 0xd4, 0x64,
+ 0xfa, 0x2c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x06, 0x07,
+ 0x06, 0x38, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x25, 0x11, 0x21, 0x11,
+ 0x25, 0x15, 0x21, 0x11, 0x33, 0x35, 0x21, 0x11, 0x05, 0x62, 0xfb, 0x56,
+ 0x04, 0xf5, 0xfa, 0xc1, 0x5a, 0x05, 0x3f, 0x53, 0x05, 0x2e, 0xfa, 0xd2,
+ 0x11, 0x64, 0x05, 0xd4, 0x64, 0xfa, 0x2c, 0x00, 0x00, 0x02, 0x00, 0x6d,
+ 0xff, 0x9c, 0x06, 0x07, 0x05, 0xd4, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00,
+ 0x25, 0x11, 0x21, 0x11, 0x07, 0x11, 0x21, 0x17, 0x11, 0x21, 0x05, 0x62,
+ 0xfb, 0x56, 0x4a, 0x05, 0x3f, 0x5a, 0xfa, 0xdc, 0x53, 0x05, 0x2e, 0xfa,
+ 0xd2, 0x53, 0x05, 0xd4, 0x82, 0xfa, 0x4a, 0x00, 0x00, 0x02, 0x00, 0x6d,
+ 0x00, 0x00, 0x06, 0x07, 0x06, 0x38, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00,
+ 0x25, 0x11, 0x21, 0x11, 0x05, 0x21, 0x11, 0x37, 0x21, 0x11, 0x05, 0x62,
+ 0xfb, 0x56, 0x04, 0xf5, 0xfa, 0xc1, 0x75, 0x05, 0x24, 0x53, 0x05, 0x2e,
+ 0xfa, 0xd2, 0x53, 0x05, 0xd4, 0x64, 0xfa, 0x4a, 0x00, 0x04, 0x00, 0x99,
+ 0xff, 0xfb, 0x05, 0xdc, 0x05, 0xd3, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x13, 0x09, 0x0e, 0x99, 0x01, 0x31, 0x01, 0x31,
+ 0xfe, 0xcf, 0x01, 0xaf, 0x01, 0x32, 0x01, 0x30, 0xfe, 0xd0, 0xfd, 0x60,
+ 0x01, 0x31, 0x01, 0x31, 0xfe, 0xcf, 0xfe, 0xcf, 0x01, 0x31, 0x01, 0x31,
+ 0xfe, 0xcf, 0x02, 0xe9, 0x01, 0x53, 0xfe, 0xad, 0xfe, 0xad, 0x01, 0x53,
+ 0x01, 0x52, 0xfe, 0xae, 0xfe, 0xab, 0x02, 0xea, 0x01, 0x55, 0xfe, 0xab,
+ 0xfe, 0xae, 0xfe, 0x22, 0x01, 0x53, 0xfe, 0xad, 0xfe, 0xad, 0x00, 0x00,
+ 0x00, 0x01, 0x02, 0xb7, 0xfe, 0x14, 0x03, 0x51, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x03, 0x51, 0x99, 0x06, 0x14, 0xf8,
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x02, 0x6b, 0xfe, 0x14, 0x03, 0x9e,
+ 0x06, 0x14, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x03, 0x9d,
+ 0xfe, 0xce, 0x06, 0x14, 0xf8, 0x00, 0x08, 0x00, 0x00, 0x01, 0x01, 0xd2,
+ 0xfe, 0x14, 0x04, 0x37, 0x06, 0x14, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x11, 0x04, 0x36, 0xfd, 0x9c, 0x06, 0x14, 0xf8, 0x00, 0x08, 0x00,
+ 0x00, 0x01, 0x00, 0x9c, 0x03, 0x28, 0x01, 0xe6, 0x05, 0xd5, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x21, 0x11, 0x13, 0x33, 0x03, 0x33, 0x01, 0xe6, 0xfe,
+ 0xb7, 0x93, 0x74, 0x4a, 0x8c, 0x03, 0x28, 0x01, 0x6e, 0x01, 0x3f, 0xfe,
+ 0xc1, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6c, 0x03, 0x28, 0x01, 0xb6,
+ 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x13, 0x21, 0x11, 0x03, 0x23, 0x13,
+ 0x23, 0x6c, 0x01, 0x49, 0x93, 0x74, 0x4a, 0x8c, 0x05, 0xd5, 0xfe, 0x92,
+ 0xfe, 0xc1, 0x01, 0x3f, 0xff, 0xff, 0x00, 0x9c, 0x03, 0x28, 0x03, 0x74,
+ 0x05, 0xd5, 0x10, 0x26, 0x0c, 0x34, 0x00, 0x00, 0x10, 0x07, 0x0c, 0x34,
+ 0x01, 0x8e, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6c, 0x03, 0x28, 0x03, 0x44,
+ 0x05, 0xd5, 0x10, 0x26, 0x0c, 0x35, 0x00, 0x00, 0x10, 0x07, 0x0c, 0x35,
+ 0x01, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x1e, 0xff, 0x42, 0x05, 0x8f,
+ 0x06, 0xcf, 0x00, 0x44, 0x00, 0x48, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x07, 0x06, 0x07, 0x0e, 0x01, 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35, 0x11, 0x21, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x21, 0x35, 0x37, 0x15, 0x21, 0x07, 0x23, 0x11, 0x14, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x01, 0x11, 0x23, 0x11, 0x02, 0x94, 0x1c,
+ 0x17, 0x18, 0x14, 0x13, 0x15, 0x15, 0x13, 0x14, 0x18, 0x17, 0x18, 0x19,
+ 0x11, 0x11, 0x0f, 0x0f, 0x0e, 0x11, 0x0e, 0x12, 0x0f, 0x15, 0x56, 0x38,
+ 0x41, 0x29, 0x31, 0x2f, 0xfe, 0xec, 0xc8, 0xe4, 0xea, 0xc2, 0x01, 0x14,
+ 0x7f, 0x01, 0x32, 0x7e, 0xb4, 0x48, 0x38, 0x3c, 0x48, 0x46, 0xa0, 0x3d,
+ 0x40, 0x28, 0x2d, 0x2a, 0x2c, 0x2b, 0x22, 0x3d, 0x33, 0x01, 0x7e, 0xab,
+ 0x01, 0xd0, 0x0b, 0x0c, 0x15, 0x14, 0x38, 0x1f, 0x1e, 0x38, 0x14, 0x15,
+ 0x0c, 0x0b, 0x09, 0x08, 0x10, 0x10, 0x27, 0x2e, 0x2a, 0x0e, 0x12, 0x06,
+ 0x09, 0x1b, 0x21, 0x2d, 0x38, 0x81, 0x44, 0x01, 0x5f, 0xee, 0xb8, 0xbe,
+ 0xe8, 0xc8, 0x32, 0xfa, 0x7b, 0xfb, 0xdb, 0x6a, 0xb7, 0x40, 0x46, 0x27,
+ 0x25, 0x19, 0x1a, 0x2e, 0x33, 0x72, 0x40, 0x4d, 0x64, 0x37, 0x2b, 0x1d,
+ 0x18, 0x01, 0x34, 0x02, 0x56, 0xfd, 0xaa, 0x00, 0x00, 0x02, 0x01, 0x74,
+ 0xff, 0xdd, 0x04, 0x94, 0x05, 0xf0, 0x00, 0x15, 0x00, 0x2f, 0x00, 0x00,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x12, 0x32,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37,
+ 0x03, 0x04, 0x90, 0x6d, 0x26, 0x27, 0x23, 0x23, 0x7b, 0xa0, 0x75, 0x78,
+ 0x9d, 0x7a, 0x23, 0x22, 0x21, 0x2c, 0x54, 0x71, 0x70, 0x2f, 0x2f, 0x28,
+ 0x29, 0x26, 0x26, 0x29, 0x28, 0x2f, 0x2f, 0x70, 0x2e, 0x30, 0x28, 0x28,
+ 0x27, 0x27, 0x28, 0x28, 0x30, 0x05, 0xf0, 0x28, 0x0e, 0x2b, 0x26, 0x61,
+ 0x34, 0x7c, 0x64, 0x83, 0xce, 0xce, 0x83, 0x66, 0x7a, 0x34, 0x61, 0x26,
+ 0x24, 0x15, 0x28, 0xfc, 0x46, 0x16, 0x18, 0x2a, 0x2e, 0x6a, 0x3d, 0x3c,
+ 0x6a, 0x2e, 0x2a, 0x18, 0x16, 0x16, 0x18, 0x2a, 0x2e, 0x6a, 0x3c, 0x3d,
+ 0x6a, 0x2e, 0x2a, 0x18, 0x00, 0x02, 0x01, 0x2c, 0xff, 0xdd, 0x04, 0xdc,
+ 0x05, 0xf0, 0x00, 0x21, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e,
+ 0x01, 0x15, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x07, 0x06, 0x02, 0x32, 0x17, 0x16, 0x17, 0x1e,
+ 0x01, 0x15, 0x14, 0x06, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x03, 0x04, 0x6e, 0xef,
+ 0x7a, 0x23, 0x22, 0x21, 0x2c, 0x29, 0x61, 0x29, 0x2b, 0x22, 0x21, 0x24,
+ 0x24, 0x22, 0x22, 0x2a, 0x29, 0x62, 0x28, 0x2c, 0x21, 0x23, 0x23, 0x7b,
+ 0xef, 0xa6, 0x70, 0x2f, 0x2f, 0x28, 0x29, 0x26, 0x26, 0x29, 0x28, 0x2f,
+ 0x2f, 0x70, 0x2e, 0x30, 0x28, 0x28, 0x27, 0x27, 0x28, 0x28, 0x30, 0x02,
+ 0xad, 0xc4, 0xa1, 0x53, 0x83, 0x34, 0x61, 0x26, 0x24, 0x15, 0x14, 0x14,
+ 0x14, 0x25, 0x25, 0x60, 0x36, 0x36, 0x60, 0x25, 0x25, 0x14, 0x14, 0x14,
+ 0x15, 0x24, 0x26, 0x61, 0x34, 0x84, 0x52, 0xa1, 0xfe, 0xc5, 0x16, 0x18,
+ 0x2a, 0x2e, 0x6a, 0x3d, 0x3c, 0x6a, 0x2e, 0x2a, 0x18, 0x16, 0x16, 0x18,
+ 0x2a, 0x2e, 0x6a, 0x3c, 0x3d, 0x6a, 0x2e, 0x2a, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0x00, 0xab, 0x05, 0xa6, 0x05, 0x28, 0x00, 0x21,
+ 0x00, 0x00, 0x25, 0x26, 0x25, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x34, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x07, 0x04,
+ 0x03, 0x04, 0x7b, 0xfe, 0x89, 0xaf, 0x31, 0x32, 0x30, 0x3e, 0x3a, 0x8b,
+ 0x3a, 0x3e, 0x30, 0x30, 0x33, 0x34, 0x2f, 0x31, 0x3d, 0x3b, 0x8a, 0x3b,
+ 0x3e, 0x2f, 0x32, 0x31, 0xae, 0xfe, 0x89, 0xab, 0xef, 0xf2, 0x71, 0xb2,
+ 0x4b, 0x8a, 0x36, 0x34, 0x1e, 0x1c, 0x1c, 0x1d, 0x35, 0x34, 0x89, 0x4e,
+ 0x4e, 0x89, 0x34, 0x35, 0x1d, 0x1c, 0x1c, 0x1e, 0x34, 0x36, 0x8a, 0x4b,
+ 0xb4, 0x6f, 0xf2, 0x00, 0x00, 0x01, 0x01, 0x35, 0xff, 0xfe, 0x05, 0x3f,
+ 0x05, 0xd6, 0x00, 0x23, 0x00, 0x00, 0x01, 0x06, 0x03, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01,
+ 0x33, 0x22, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x33, 0x32, 0x17, 0x12, 0x05, 0x3f, 0xd6, 0xda, 0x67, 0xa0,
+ 0x43, 0x7c, 0x30, 0x2f, 0x1b, 0x19, 0x19, 0x19, 0x31, 0x2e, 0x7b, 0x46,
+ 0x46, 0x7b, 0x2e, 0x31, 0x19, 0x19, 0x19, 0x1b, 0x2f, 0x30, 0x7c, 0x43,
+ 0xa2, 0x65, 0xda, 0x02, 0xea, 0x8a, 0xfe, 0x60, 0xc2, 0x36, 0x38, 0x34,
+ 0x46, 0x40, 0x4e, 0x4c, 0x42, 0x44, 0x36, 0x34, 0x3a, 0x38, 0x36, 0x36,
+ 0x44, 0x40, 0x4e, 0x4c, 0x42, 0x44, 0x36, 0x36, 0x38, 0xc2, 0xfe, 0x5e,
+ 0x00, 0x02, 0x00, 0x71, 0x00, 0x2a, 0x05, 0x37, 0x05, 0x9e, 0x00, 0x0d,
+ 0x00, 0x69, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x06, 0x07, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x05, 0x06, 0x15, 0x14, 0x33, 0x32, 0x37, 0x36,
+ 0x33, 0x32, 0x15, 0x14, 0x21, 0x22, 0x27, 0x26, 0x35, 0x10, 0x33, 0x32,
+ 0x17, 0x36, 0x37, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x1f, 0x01, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x03, 0x3b, 0x09, 0x1a, 0x16, 0x30, 0x1b, 0x14, 0x11, 0x27,
+ 0x42, 0x64, 0x13, 0x29, 0x54, 0x4e, 0x6f, 0x36, 0x28, 0xfe, 0xea, 0x8a,
+ 0x5f, 0x68, 0x0f, 0x2d, 0x31, 0x39, 0xfe, 0xe4, 0xb7, 0xa8, 0xb2, 0xeb,
+ 0x5c, 0x49, 0x45, 0x0e, 0x5b, 0xcf, 0x3e, 0x42, 0x4b, 0x39, 0x24, 0x26,
+ 0x17, 0x21, 0x12, 0x1d, 0x16, 0x0d, 0x68, 0x54, 0x6a, 0x5d, 0x2d, 0x44,
+ 0x25, 0x26, 0x46, 0x44, 0x2c, 0x2e, 0x0e, 0x36, 0x4d, 0x45, 0x25, 0x29,
+ 0x13, 0x26, 0x13, 0x1c, 0x32, 0x3b, 0x26, 0x12, 0x81, 0x56, 0x6c, 0x3a,
+ 0x04, 0x67, 0x30, 0x2c, 0x3f, 0x29, 0x21, 0x12, 0x0f, 0x1b, 0x3a, 0x22,
+ 0x39, 0x8c, 0x4a, 0x4f, 0x43, 0x51, 0x3e, 0x5e, 0xda, 0x76, 0x3a, 0x4d,
+ 0x63, 0x2a, 0x84, 0x5a, 0x9c, 0x99, 0xa3, 0xfe, 0x01, 0x65, 0x8d, 0x97,
+ 0x43, 0x30, 0xaa, 0x33, 0x4e, 0x33, 0x35, 0x25, 0x26, 0x1d, 0x17, 0x14,
+ 0x1c, 0x2d, 0x19, 0x4b, 0x74, 0x5c, 0x4b, 0x25, 0x39, 0x53, 0x1f, 0x20,
+ 0x3e, 0x42, 0x57, 0x4e, 0x3d, 0x11, 0x21, 0x24, 0x1f, 0x3f, 0x12, 0x24,
+ 0x15, 0x38, 0x1c, 0x28, 0x46, 0x21, 0x35, 0x7b, 0x5e, 0x3f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x90, 0x01, 0x5a, 0x05, 0x78, 0x04, 0x84, 0x00, 0x09,
+ 0x00, 0x51, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x07, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x01, 0x20, 0x35, 0x34, 0x37, 0x26, 0x27, 0x26, 0x2b, 0x01,
+ 0x16, 0x07, 0x06, 0x07, 0x16, 0x33, 0x32, 0x37, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x27, 0x23, 0x35, 0x33, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x32,
+ 0x17, 0x16, 0x17, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x13, 0x16,
+ 0x33, 0x32, 0x35, 0x34, 0x27, 0x26, 0x35, 0x34, 0x33, 0x32, 0x15, 0x14,
+ 0x07, 0x06, 0x01, 0xaf, 0x39, 0x28, 0x3c, 0x18, 0x47, 0x38, 0x37, 0x01,
+ 0xcb, 0xfe, 0xb0, 0x6b, 0x2c, 0x30, 0x22, 0x22, 0x03, 0x01, 0x43, 0x57,
+ 0x5a, 0x17, 0x3c, 0x27, 0x24, 0x07, 0x82, 0x61, 0x12, 0x20, 0x23, 0x1b,
+ 0x5b, 0x45, 0x39, 0x0d, 0x21, 0x1f, 0x37, 0x41, 0x58, 0x0b, 0x81, 0x3b,
+ 0x04, 0x37, 0x25, 0x27, 0x32, 0x1c, 0x37, 0x29, 0x62, 0xc3, 0x33, 0x16,
+ 0x5b, 0x58, 0x0b, 0x0a, 0x48, 0x3c, 0xdf, 0x9e, 0x03, 0x3e, 0x0e, 0x24,
+ 0x33, 0x67, 0x1d, 0x3a, 0x38, 0x34, 0x04, 0xfe, 0x21, 0xfe, 0x45, 0x42,
+ 0x37, 0x1c, 0x14, 0x57, 0x50, 0x66, 0x0f, 0x47, 0x2b, 0x1e, 0x31, 0x4b,
+ 0xab, 0x48, 0x8e, 0x50, 0x3c, 0x02, 0x12, 0x12, 0x12, 0x0e, 0x11, 0x46,
+ 0x66, 0x1d, 0x23, 0x26, 0x54, 0x27, 0x19, 0x13, 0x14, 0x30, 0x50, 0x2b,
+ 0x41, 0x27, 0x1d, 0xfe, 0x93, 0x9a, 0x3c, 0x1e, 0x12, 0x11, 0x1b, 0x3c,
+ 0x51, 0xad, 0x62, 0x46, 0x00, 0x01, 0x01, 0x68, 0xfe, 0xe4, 0x04, 0xab,
+ 0x06, 0x27, 0x00, 0x20, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x15,
+ 0x22, 0x07, 0x06, 0x02, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x33, 0x04, 0xaa, 0xa7, 0x98, 0x91, 0x7c, 0x79, 0x3f, 0x3d,
+ 0x3d, 0x3a, 0x7e, 0x76, 0x97, 0x98, 0xa7, 0x62, 0x5d, 0x57, 0x95, 0x24,
+ 0x24, 0x24, 0x24, 0x4b, 0x46, 0x5b, 0x59, 0x66, 0xfe, 0xe4, 0x47, 0x43,
+ 0x89, 0x85, 0xa7, 0xa4, 0xbb, 0xbd, 0xa9, 0x9d, 0x8f, 0x86, 0x46, 0x47,
+ 0x2f, 0x43, 0x3e, 0xfe, 0xfa, 0x9b, 0x9c, 0xb8, 0xb1, 0x9c, 0x9b, 0x83,
+ 0x7d, 0x44, 0x43, 0x00, 0x00, 0x01, 0x01, 0x68, 0xfe, 0xe4, 0x04, 0xab,
+ 0x06, 0x27, 0x00, 0x22, 0x00, 0x00, 0x01, 0x30, 0x35, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x02, 0x27, 0x26, 0x23,
+ 0x30, 0x35, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x01, 0x69, 0x67, 0x59, 0x5b, 0x46, 0x4a,
+ 0x24, 0x24, 0x24, 0x24, 0x95, 0x56, 0x5e, 0x62, 0xa7, 0x98, 0x97, 0x77,
+ 0x7e, 0x39, 0x3d, 0x3d, 0x3f, 0x78, 0x7d, 0x91, 0x98, 0xfe, 0xe4, 0x2f,
+ 0x43, 0x44, 0x7d, 0x83, 0x9b, 0x9c, 0xb1, 0xb8, 0x9c, 0x9b, 0x01, 0x06,
+ 0x3e, 0x43, 0x2f, 0x47, 0x46, 0x86, 0x8f, 0x9d, 0xa9, 0xbd, 0xbb, 0xa4,
+ 0xa7, 0x85, 0x89, 0x43, 0x47, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe6,
+ 0xfe, 0xf1, 0x04, 0x23, 0x06, 0x11, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x06,
+ 0x02, 0x10, 0x12, 0x17, 0x21, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x04,
+ 0x22, 0x78, 0x75, 0x76, 0x77, 0xfe, 0xd2, 0x87, 0x86, 0x85, 0x88, 0x06,
+ 0x11, 0xe6, 0xfe, 0x3e, 0xfe, 0x32, 0xfe, 0x3b, 0xe5, 0xeb, 0x01, 0xc6,
+ 0xe0, 0xdf, 0x01, 0xc4, 0xec, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe6,
+ 0xfe, 0xf1, 0x04, 0x23, 0x06, 0x11, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x30,
+ 0x21, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x21, 0x36, 0x12, 0x10, 0x02,
+ 0x01, 0xe7, 0x01, 0x2e, 0x88, 0x85, 0x86, 0x87, 0xfe, 0xd2, 0x78, 0x75,
+ 0x74, 0x06, 0x11, 0xec, 0xfe, 0x3c, 0xdf, 0xe0, 0xfe, 0x3a, 0xeb, 0xe5,
+ 0x01, 0xc5, 0x01, 0xce, 0x01, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x01, 0x8c,
+ 0xfe, 0x14, 0x04, 0x5f, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x09, 0x01, 0x21, 0x01, 0x04, 0x5f, 0xfe, 0xf9, 0xfe, 0x35, 0x01, 0xcb,
+ 0x01, 0x07, 0xfe, 0x33, 0xfe, 0x14, 0x04, 0x00, 0x04, 0x00, 0xfc, 0x00,
+ 0x00, 0x01, 0x01, 0xab, 0xfe, 0x14, 0x04, 0x7d, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x09, 0x02, 0x21, 0x09, 0x01, 0x01, 0xac, 0x01, 0xcb, 0xfe,
+ 0x35, 0x01, 0x05, 0x01, 0xcb, 0xfe, 0x35, 0xfe, 0x14, 0x04, 0x00, 0x04,
+ 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x05,
+ 0xfe, 0x14, 0x04, 0xef, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x09, 0x01, 0x21, 0x01, 0x04, 0xef, 0xfe, 0x69, 0xfd, 0xae, 0x02, 0x52,
+ 0x01, 0x97, 0xfd, 0xa3, 0xfe, 0x14, 0x04, 0x00, 0x04, 0x00, 0xfc, 0x00,
+ 0x00, 0x01, 0x01, 0x19, 0xfe, 0x14, 0x05, 0x03, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x09, 0x02, 0x21, 0x09, 0x01, 0x01, 0x1a, 0x02, 0x5c, 0xfd,
+ 0xa4, 0x01, 0x96, 0x02, 0x52, 0xfd, 0xae, 0xfe, 0x14, 0x04, 0x00, 0x04,
+ 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x32,
+ 0xfe, 0x14, 0x04, 0xb9, 0x06, 0x14, 0x00, 0x05, 0x00, 0x00, 0x01, 0x21,
+ 0x09, 0x01, 0x21, 0x01, 0x04, 0xb9, 0xfe, 0x45, 0xfe, 0x35, 0x01, 0xcb,
+ 0x01, 0xbb, 0xfe, 0x33, 0xfe, 0x14, 0x04, 0x00, 0x04, 0x00, 0xfc, 0x00,
+ 0x00, 0x01, 0x01, 0x51, 0xfe, 0x14, 0x04, 0xd7, 0x06, 0x14, 0x00, 0x05,
+ 0x00, 0x00, 0x09, 0x02, 0x21, 0x09, 0x01, 0x01, 0x52, 0x01, 0xcb, 0xfe,
+ 0x35, 0x01, 0xb9, 0x01, 0xcb, 0xfe, 0x35, 0xfe, 0x14, 0x04, 0x00, 0x04,
+ 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x7d,
+ 0xfe, 0x13, 0x03, 0xdb, 0x06, 0x14, 0x00, 0x07, 0x00, 0x00, 0x05, 0x17,
+ 0x07, 0x03, 0x11, 0x13, 0x17, 0x07, 0x03, 0x04, 0xd6, 0x5f, 0xfe, 0xfe,
+ 0x5f, 0xd6, 0x95, 0xee, 0x6a, 0x01, 0x1a, 0x05, 0xcd, 0x01, 0x1a, 0x6a,
+ 0xee, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x2e, 0xfe, 0x13, 0x03, 0x8c,
+ 0x06, 0x14, 0x00, 0x07, 0x00, 0x00, 0x01, 0x27, 0x37, 0x13, 0x11, 0x03,
+ 0x27, 0x37, 0x03, 0x04, 0xd6, 0x5f, 0xfe, 0xfe, 0x5f, 0xd6, 0x04, 0xbc,
+ 0xee, 0x6a, 0xfe, 0xe6, 0xfa, 0x33, 0xfe, 0xe6, 0x6a, 0xee, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x42, 0xfe, 0xb2, 0x04, 0x92, 0x06, 0x14, 0x00, 0x24,
+ 0x00, 0x00, 0x05, 0x15, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x34, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x34, 0x36, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x06, 0x1d, 0x01, 0x14, 0x06, 0x07, 0x1e, 0x01, 0x1d, 0x01,
+ 0x14, 0x16, 0x33, 0x04, 0x91, 0xbf, 0xe0, 0x98, 0x61, 0x80, 0x37, 0x37,
+ 0x81, 0x60, 0x98, 0xe0, 0xbf, 0x3d, 0x7f, 0x4d, 0x52, 0x63, 0x64, 0x51,
+ 0x4d, 0x7f, 0xbe, 0x90, 0x94, 0xdd, 0xef, 0x97, 0x74, 0x8f, 0x73, 0x95,
+ 0xf0, 0xdd, 0x93, 0x8f, 0x58, 0x8d, 0xf8, 0x9d, 0x8e, 0x19, 0x1b, 0x8e,
+ 0x9c, 0xf8, 0x8d, 0x58, 0x00, 0x01, 0x01, 0x77, 0xfe, 0xb2, 0x04, 0xc7,
+ 0x06, 0x14, 0x00, 0x24, 0x00, 0x00, 0x05, 0x33, 0x32, 0x36, 0x3d, 0x01,
+ 0x34, 0x36, 0x37, 0x2e, 0x01, 0x3d, 0x01, 0x34, 0x26, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x16, 0x1d, 0x01, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x06, 0x1d, 0x01, 0x14, 0x06, 0x2b, 0x01, 0x01, 0x77, 0x3d, 0x7f, 0x4e,
+ 0x51, 0x64, 0x63, 0x52, 0x4e, 0x7f, 0x3d, 0xbf, 0xe0, 0x98, 0x61, 0x80,
+ 0x37, 0x37, 0x7f, 0x62, 0x98, 0xe0, 0xbf, 0xbe, 0x58, 0x8d, 0xf8, 0x9c,
+ 0x8e, 0x1b, 0x19, 0x8e, 0x9d, 0xf8, 0x8d, 0x58, 0x8f, 0x93, 0xdd, 0xf0,
+ 0x95, 0x73, 0x8f, 0x74, 0x97, 0xef, 0xdd, 0x94, 0x00, 0x02, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x18, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32,
+ 0x04, 0x12, 0x01, 0x21, 0x35, 0x23, 0x11, 0x23, 0x07, 0x15, 0x37, 0x11,
+ 0x23, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9,
+ 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfc, 0x3e, 0x02, 0x2b, 0xc4,
+ 0x91, 0xe8, 0xd5, 0xc3, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf,
+ 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xfd, 0x5c, 0x8e,
+ 0x03, 0x1a, 0x2f, 0x98, 0x2b, 0xfd, 0x82, 0x00, 0x00, 0x02, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x2a, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32,
+ 0x04, 0x12, 0x05, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x0e, 0x01,
+ 0x07, 0x15, 0x21, 0x35, 0x21, 0x3e, 0x01, 0x05, 0xec, 0xfe, 0x6c, 0xfe,
+ 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c,
+ 0xb9, 0xfe, 0x1b, 0x38, 0x2b, 0xb1, 0x93, 0x36, 0x83, 0x57, 0x67, 0x77,
+ 0x35, 0x46, 0x56, 0x2b, 0x37, 0x1e, 0xec, 0x4a, 0x02, 0x61, 0xfe, 0x77,
+ 0x71, 0xa0, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f,
+ 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xe9, 0x46, 0x69, 0x3a, 0x7d,
+ 0x97, 0x1f, 0x24, 0xab, 0x3a, 0x26, 0x4e, 0x3f, 0x28, 0x55, 0x3f, 0x22,
+ 0xf1, 0x4d, 0x81, 0x8e, 0x74, 0xa7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x36, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32,
+ 0x04, 0x12, 0x25, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x15, 0x3e, 0x01,
+ 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x15, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x15, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x27, 0x32, 0x36, 0x05, 0xec, 0xfe, 0x6c, 0xfe,
+ 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c,
+ 0xb9, 0xfe, 0xa2, 0xad, 0x91, 0x37, 0x7b, 0x55, 0x60, 0x6d, 0x2f, 0x52,
+ 0x53, 0x50, 0x50, 0x83, 0x7e, 0x59, 0x60, 0x67, 0x69, 0x3e, 0x70, 0x52,
+ 0x4f, 0x7b, 0x39, 0xb0, 0xc2, 0x6a, 0x0c, 0x04, 0x5d, 0x02, 0xea, 0xfe,
+ 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6,
+ 0xfe, 0x90, 0x18, 0x73, 0x89, 0x14, 0x18, 0x97, 0x20, 0x15, 0x3f, 0x3c,
+ 0x3a, 0x3c, 0x8c, 0x4e, 0x47, 0x4c, 0x4f, 0x1c, 0x30, 0xa8, 0x1b, 0x17,
+ 0x9c, 0x8d, 0x5d, 0x81, 0x03, 0x72, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x10, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24,
+ 0x33, 0x32, 0x04, 0x12, 0x01, 0x23, 0x13, 0x01, 0x15, 0x21, 0x15, 0x33,
+ 0x35, 0x33, 0x35, 0x23, 0x11, 0x23, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1,
+ 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9,
+ 0xfd, 0x60, 0xf2, 0xf2, 0xfe, 0x70, 0x01, 0x90, 0xa4, 0x7f, 0x7f, 0xb9,
+ 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01,
+ 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xfe, 0xbc, 0x01, 0x7e, 0xfe, 0x83, 0x8e,
+ 0xd3, 0xd3, 0x8d, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x2b, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32,
+ 0x04, 0x12, 0x05, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x27, 0x15, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x37, 0x35, 0x21, 0x35, 0x21, 0x05, 0xec, 0xfe, 0x6c,
+ 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01,
+ 0x4c, 0xb9, 0xfc, 0x57, 0x50, 0x5b, 0x2d, 0x5d, 0x6a, 0x6a, 0x5d, 0x3d,
+ 0x6c, 0x55, 0x4f, 0x78, 0x39, 0xab, 0xc0, 0xba, 0x9f, 0x1b, 0x39, 0x03,
+ 0x01, 0x68, 0xfd, 0xfd, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf,
+ 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xf3, 0x25, 0x14,
+ 0x61, 0x56, 0x55, 0x61, 0x1b, 0x2f, 0xac, 0x18, 0x14, 0xac, 0x98, 0x95,
+ 0xb0, 0x0a, 0x01, 0xab, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88,
+ 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x32,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24,
+ 0x33, 0x32, 0x04, 0x12, 0x01, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x03, 0x22, 0x02, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x37, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x17, 0x35, 0x2e, 0x01, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe,
+ 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfd,
+ 0xde, 0x53, 0x46, 0x46, 0x53, 0x53, 0x46, 0x46, 0x53, 0x66, 0xb4, 0xd2,
+ 0xad, 0xa6, 0x90, 0xaf, 0xa8, 0x90, 0x46, 0x73, 0x08, 0x05, 0x72, 0x6b,
+ 0x2a, 0x58, 0x4b, 0x42, 0x60, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01,
+ 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xfe, 0x8f,
+ 0x5a, 0x62, 0x62, 0x5a, 0x5b, 0x62, 0x62, 0x02, 0x2a, 0xfe, 0xf5, 0xda,
+ 0xe7, 0xfd, 0xb3, 0x91, 0x94, 0xb1, 0x3d, 0x0b, 0x50, 0x94, 0x16, 0x23,
+ 0x9c, 0x18, 0x13, 0x00, 0x00, 0x02, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec,
+ 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x14, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x25, 0x21,
+ 0x01, 0x33, 0x01, 0x35, 0x21, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe,
+ 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfc,
+ 0x2e, 0x01, 0xa1, 0xfe, 0xd1, 0xad, 0x01, 0x48, 0xfd, 0x99, 0x02, 0xea,
+ 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6,
+ 0xc6, 0xfe, 0x90, 0x76, 0xfc, 0xe6, 0x03, 0x5d, 0x4b, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x19, 0x00, 0x31, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x01, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x05, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x17, 0x0e, 0x01, 0x01, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x05, 0xec,
+ 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab,
+ 0xae, 0x01, 0x4c, 0xb9, 0xfd, 0xf3, 0x56, 0x4b, 0x4c, 0x55, 0x55, 0x4c,
+ 0x4b, 0x56, 0xfe, 0x18, 0xab, 0x9c, 0x9c, 0xaa, 0x6a, 0x0d, 0x03, 0x5f,
+ 0xa4, 0x8d, 0x8e, 0xa4, 0x5f, 0x04, 0x0e, 0x6a, 0x01, 0x47, 0x43, 0x4a,
+ 0x4a, 0x43, 0x46, 0x48, 0x48, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01,
+ 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xfe, 0x6c,
+ 0x48, 0x51, 0x50, 0x49, 0x49, 0x50, 0x50, 0x49, 0x8a, 0x97, 0x97, 0x8a,
+ 0x5c, 0x83, 0x03, 0x01, 0x76, 0x53, 0x74, 0x88, 0x88, 0x74, 0x53, 0x76,
+ 0x01, 0x03, 0x83, 0x01, 0xc4, 0x42, 0x3e, 0x3d, 0x42, 0x42, 0x3d, 0x3e,
+ 0x42, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec,
+ 0x05, 0xe8, 0x00, 0x0d, 0x00, 0x26, 0x00, 0x32, 0x00, 0x00, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12,
+ 0x01, 0x32, 0x12, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x07, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x15, 0x1e,
+ 0x01, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x05, 0xec, 0xfe, 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9,
+ 0x01, 0x4c, 0xab, 0xae, 0x01, 0x4c, 0xb9, 0xfd, 0x22, 0xb4, 0xd2, 0xac,
+ 0xa7, 0x90, 0xae, 0xa7, 0x8f, 0x47, 0x74, 0x09, 0x05, 0x72, 0x6b, 0x2a,
+ 0x57, 0x4c, 0x42, 0x60, 0x36, 0x53, 0x46, 0x47, 0x52, 0x52, 0x47, 0x46,
+ 0x53, 0x02, 0xea, 0xfe, 0xc1, 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6,
+ 0x01, 0x72, 0xc6, 0xc6, 0xfe, 0x90, 0xfd, 0x4b, 0x01, 0x0a, 0xda, 0xe8,
+ 0xfd, 0xb4, 0x91, 0x94, 0xaf, 0x3c, 0x0d, 0x4f, 0x93, 0x15, 0x24, 0x9c,
+ 0x18, 0x13, 0x02, 0x84, 0x5b, 0x62, 0x62, 0x5b, 0x5b, 0x62, 0x62, 0x00,
+ 0x00, 0x04, 0x00, 0x88, 0xff, 0xec, 0x05, 0xec, 0x05, 0xe8, 0x00, 0x0d,
+ 0x00, 0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x34, 0x12, 0x24, 0x33, 0x32, 0x04, 0x12, 0x01, 0x21,
+ 0x35, 0x23, 0x11, 0x23, 0x07, 0x15, 0x37, 0x11, 0x23, 0x01, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x05, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x05, 0xec, 0xfe,
+ 0x6c, 0xfe, 0xe1, 0xfe, 0xe4, 0xfe, 0x6c, 0xb9, 0x01, 0x4c, 0xab, 0xae,
+ 0x01, 0x4c, 0xb9, 0xfb, 0xa0, 0x01, 0x95, 0x8f, 0x69, 0xaa, 0x9b, 0x8e,
+ 0x03, 0x2e, 0x3e, 0x39, 0x3a, 0x3e, 0x3e, 0x3a, 0x39, 0x3e, 0xfe, 0x98,
+ 0x7b, 0x76, 0x75, 0x7a, 0x7a, 0x75, 0x76, 0x7b, 0x02, 0xea, 0xfe, 0xc1,
+ 0xfe, 0x41, 0x01, 0xbf, 0x01, 0x3f, 0xc6, 0x01, 0x72, 0xc6, 0xc6, 0xfe,
+ 0x90, 0xfd, 0xa9, 0x80, 0x02, 0xca, 0x2a, 0x89, 0x27, 0xfd, 0xc2, 0x01,
+ 0x24, 0xa2, 0x97, 0x97, 0xa2, 0xa3, 0x97, 0x97, 0xa3, 0xd0, 0xe4, 0xe4,
+ 0xd0, 0xd1, 0xe4, 0xe4, 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x19, 0x00, 0x24, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20,
+ 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27,
+ 0x01, 0x33, 0x11, 0x05, 0x35, 0x25, 0x33, 0x11, 0x33, 0x15, 0x21, 0x12,
+ 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36,
+ 0x37, 0x03, 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64,
+ 0x62, 0x77, 0x79, 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64,
+ 0x62, 0x77, 0xfd, 0xe2, 0xed, 0xfe, 0xfe, 0x01, 0x01, 0x91, 0xee, 0xfd,
+ 0x95, 0x7f, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f,
+ 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70,
+ 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe, 0xf7, 0x9c, 0x97, 0xfe,
+ 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f, 0x01, 0x09, 0x97,
+ 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0xfb, 0x7d, 0x03, 0x8f, 0x39, 0x93,
+ 0x3a, 0xfb, 0xdd, 0x88, 0x05, 0xa8, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4,
+ 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e,
+ 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19,
+ 0x00, 0x36, 0x00, 0x50, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06,
+ 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x01, 0x21, 0x15, 0x21,
+ 0x35, 0x36, 0x00, 0x37, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x0e,
+ 0x01, 0x02, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07,
+ 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12,
+ 0x37, 0x36, 0x37, 0x03, 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62,
+ 0x62, 0x64, 0x62, 0x77, 0x79, 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x62,
+ 0x62, 0x64, 0x62, 0x77, 0xfe, 0x59, 0x01, 0xfb, 0xfd, 0x56, 0x53, 0x01,
+ 0x1d, 0x25, 0x46, 0x37, 0x78, 0x60, 0x48, 0x95, 0x56, 0x57, 0x99, 0x3f,
+ 0xa8, 0xc7, 0x32, 0x42, 0x12, 0xc1, 0xa7, 0x01, 0x39, 0x89, 0x87, 0x6f,
+ 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70,
+ 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f,
+ 0xfe, 0xf7, 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36,
+ 0x6f, 0x6f, 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0xfb,
+ 0x80, 0x88, 0x88, 0x5f, 0x01, 0x41, 0x2e, 0x58, 0x78, 0x3b, 0x5f, 0x78,
+ 0x35, 0x35, 0xa3, 0x27, 0x28, 0xba, 0x9b, 0x49, 0x84, 0x5a, 0x17, 0xde,
+ 0x04, 0x56, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4,
+ 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1,
+ 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08,
+ 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19, 0x00, 0x42, 0x00, 0x5c,
+ 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12,
+ 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34,
+ 0x02, 0x27, 0x26, 0x27, 0x03, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x00, 0x20, 0x17,
+ 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03,
+ 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77,
+ 0x79, 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77,
+ 0x68, 0x68, 0x76, 0xda, 0xca, 0x44, 0x8f, 0x4d, 0x3d, 0x90, 0x4e, 0x89,
+ 0x8f, 0x85, 0x77, 0x7d, 0x83, 0x6c, 0x71, 0x75, 0x6e, 0x3b, 0x89, 0x53,
+ 0x4a, 0x9a, 0x40, 0xa7, 0xc0, 0x66, 0xfe, 0x6a, 0x01, 0x39, 0x89, 0x87,
+ 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87,
+ 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f,
+ 0x6f, 0xfe, 0xf7, 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39,
+ 0x36, 0x6f, 0x6f, 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36,
+ 0xfd, 0x79, 0x19, 0x9c, 0x74, 0xb0, 0xc2, 0x1e, 0x1d, 0x9c, 0x27, 0x28,
+ 0x78, 0x72, 0x6a, 0x77, 0x85, 0x5f, 0x5a, 0x5c, 0x62, 0x1d, 0x1e, 0x90,
+ 0x17, 0x1c, 0xa7, 0x8e, 0x64, 0x88, 0x03, 0x09, 0x40, 0x3e, 0x7d, 0x7e,
+ 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e,
+ 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00,
+ 0x00, 0x04, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19,
+ 0x00, 0x1c, 0x00, 0x27, 0x00, 0x41, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06,
+ 0x07, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37,
+ 0x36, 0x37, 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x07, 0x01,
+ 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x00, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37,
+ 0x36, 0x37, 0x03, 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62,
+ 0x64, 0x62, 0x77, 0x79, 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62,
+ 0x64, 0x62, 0x77, 0xc7, 0xfe, 0x90, 0x01, 0x70, 0x26, 0xb6, 0x9a, 0x9a,
+ 0x90, 0xfe, 0x1a, 0x01, 0x0e, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e,
+ 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f,
+ 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe, 0xf7,
+ 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f,
+ 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0xed, 0xfd, 0x82,
+ 0x03, 0x0b, 0xfc, 0xf5, 0x86, 0xfe, 0xe6, 0x01, 0x1a, 0x9c, 0x03, 0xf2,
+ 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d,
+ 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c,
+ 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x19, 0x00, 0x37, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20,
+ 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27,
+ 0x05, 0x21, 0x15, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x12, 0x20, 0x17, 0x16, 0x17, 0x16,
+ 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27,
+ 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x8f, 0xfe, 0xeb,
+ 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0x79, 0x01, 0x15,
+ 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0xfd, 0xe0, 0x02,
+ 0x3b, 0xfe, 0x4a, 0x20, 0x40, 0x1f, 0xb4, 0xd2, 0xd8, 0xc5, 0x43, 0x8c,
+ 0x4b, 0x44, 0x86, 0x4e, 0x7c, 0x92, 0x92, 0x7c, 0x3b, 0x74, 0x3c, 0x81,
+ 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89,
+ 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x05,
+ 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe, 0xf7, 0x9c, 0x97, 0xfe, 0xf7, 0x6f,
+ 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f, 0x01, 0x09, 0x97, 0x9c, 0x01,
+ 0x09, 0x6f, 0x6f, 0x36, 0x63, 0x88, 0xfe, 0xdb, 0x0c, 0x0c, 0xdb, 0xbb,
+ 0xc1, 0xd6, 0x1a, 0x19, 0xa3, 0x29, 0x25, 0x92, 0x7d, 0x7c, 0x92, 0x1d,
+ 0x1e, 0x03, 0x58, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe,
+ 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac,
+ 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08,
+ 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19, 0x00, 0x25, 0x00, 0x3e,
+ 0x00, 0x58, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06, 0x02, 0x15,
+ 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x36, 0x12,
+ 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x13, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x07, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x02, 0x11, 0x10, 0x12, 0x33, 0x32, 0x16, 0x00, 0x20, 0x17, 0x16, 0x17,
+ 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26,
+ 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x8f, 0xfe,
+ 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0x79, 0x01,
+ 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0xfe, 0xf4,
+ 0x61, 0x73, 0x73, 0x61, 0x62, 0x73, 0x73, 0xbf, 0x37, 0x6f, 0x36, 0x90,
+ 0x98, 0x0b, 0x2a, 0x80, 0x4d, 0xa2, 0xbc, 0xc4, 0xa3, 0xba, 0xc5, 0xf2,
+ 0xcb, 0x37, 0x70, 0xfe, 0x88, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e,
+ 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f,
+ 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe, 0xf7,
+ 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f,
+ 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0xfd, 0x8b, 0x95,
+ 0x82, 0x80, 0x96, 0x96, 0x80, 0x82, 0x95, 0x01, 0xfa, 0x93, 0x1d, 0x1e,
+ 0xd8, 0xda, 0x45, 0x4b, 0xdb, 0xbc, 0xb8, 0xde, 0x01, 0x3e, 0x01, 0x2d,
+ 0x01, 0x1d, 0x01, 0x4f, 0x18, 0x01, 0x00, 0x40, 0x3e, 0x7d, 0x7e, 0xfe,
+ 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d,
+ 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19,
+ 0x00, 0x20, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06,
+ 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x05, 0x21, 0x15, 0x01,
+ 0x23, 0x01, 0x21, 0x12, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14,
+ 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35,
+ 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62,
+ 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0x79, 0x01, 0x15, 0x78, 0x77, 0x62,
+ 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0xfd, 0xa0, 0x02, 0xb3, 0xfe, 0x7a,
+ 0x98, 0x01, 0x70, 0xfd, 0xfb, 0xc1, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72,
+ 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71,
+ 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe,
+ 0xf7, 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f,
+ 0x6f, 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0x60, 0x45,
+ 0xfb, 0x9a, 0x04, 0x23, 0x01, 0x85, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4,
+ 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e,
+ 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19,
+ 0x00, 0x23, 0x00, 0x39, 0x00, 0x45, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x20,
+ 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27,
+ 0x01, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x35, 0x34, 0x26, 0x27, 0x2e,
+ 0x01, 0x35, 0x34, 0x36, 0x20, 0x16, 0x15, 0x14, 0x06, 0x07, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x20, 0x26, 0x35, 0x34, 0x36, 0x13, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x12, 0x20, 0x17, 0x16,
+ 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27,
+ 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x8f,
+ 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0x79,
+ 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0xfe,
+ 0xfc, 0x67, 0x77, 0x77, 0xcf, 0x77, 0x76, 0xfa, 0x5e, 0x68, 0xb7, 0x01,
+ 0x41, 0xb7, 0x68, 0x5e, 0x69, 0x76, 0xbe, 0xfe, 0x9b, 0xbf, 0x77, 0x33,
+ 0x69, 0x5e, 0x5e, 0x6a, 0x6a, 0x5e, 0x5e, 0x69, 0x2c, 0x01, 0x39, 0x89,
+ 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89,
+ 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36,
+ 0x6f, 0x6f, 0xfe, 0xf7, 0x9c, 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39,
+ 0x39, 0x36, 0x6f, 0x6f, 0x01, 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f,
+ 0x36, 0xfd, 0x2c, 0x7b, 0xd8, 0x7b, 0x7c, 0x6b, 0x6c, 0x7b, 0x45, 0x1a,
+ 0x8e, 0x67, 0x8f, 0xa6, 0xa6, 0x8f, 0x67, 0x8e, 0x1a, 0x1b, 0x9e, 0x73,
+ 0xad, 0xba, 0xba, 0xad, 0x73, 0x9e, 0x01, 0x1a, 0x5c, 0x68, 0x68, 0x5c,
+ 0x5d, 0x68, 0x68, 0x01, 0xd0, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1,
+ 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01,
+ 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x04, 0x00, 0x08,
+ 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x19, 0x00, 0x32, 0x00, 0x3e,
+ 0x00, 0x58, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06, 0x02, 0x15,
+ 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x36, 0x12,
+ 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x01, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x37, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32,
+ 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x26, 0x13, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x02, 0x20, 0x17, 0x16, 0x17,
+ 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26,
+ 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x8f, 0xfe,
+ 0xeb, 0x79, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0x79, 0x01,
+ 0x15, 0x78, 0x77, 0x62, 0x64, 0x62, 0x62, 0x64, 0x62, 0x77, 0xfd, 0xe3,
+ 0x37, 0x70, 0x36, 0x90, 0x98, 0x0b, 0x2a, 0x80, 0x4e, 0xa2, 0xbb, 0xc4,
+ 0xa2, 0xbc, 0xc4, 0xf1, 0xcc, 0x37, 0x70, 0xe4, 0x63, 0x72, 0x72, 0x63,
+ 0x61, 0x73, 0x73, 0x42, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e,
+ 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f,
+ 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0xfe, 0xf7, 0x9c,
+ 0x97, 0xfe, 0xf7, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f, 0x01,
+ 0x09, 0x97, 0x9c, 0x01, 0x09, 0x6f, 0x6f, 0x36, 0xfb, 0x0e, 0x93, 0x1d,
+ 0x1e, 0xd7, 0xdb, 0x44, 0x4a, 0xd9, 0xbc, 0xb8, 0xde, 0xfe, 0xc3, 0xfe,
+ 0xd1, 0xfe, 0xe6, 0xfe, 0xaf, 0x18, 0x02, 0x12, 0x95, 0x82, 0x81, 0x95,
+ 0x95, 0x81, 0x82, 0x95, 0x03, 0x95, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4,
+ 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e,
+ 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x1d,
+ 0x00, 0x2b, 0x00, 0x38, 0x00, 0x43, 0x00, 0x61, 0x00, 0x00, 0x00, 0x20,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x07, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x27, 0x2e, 0x01, 0x20, 0x17, 0x16, 0x11, 0x10,
+ 0x07, 0x06, 0x20, 0x02, 0x11, 0x10, 0x37, 0x01, 0x33, 0x11, 0x07, 0x35,
+ 0x37, 0x33, 0x11, 0x33, 0x15, 0x21, 0x12, 0x20, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x03, 0x8f, 0xfe, 0xeb, 0x79, 0x77, 0x62, 0x64, 0x30, 0x32, 0x32, 0x30,
+ 0x64, 0x62, 0x77, 0x79, 0x01, 0x15, 0x78, 0x77, 0x62, 0x64, 0x30, 0x32,
+ 0x32, 0x30, 0x64, 0x62, 0x77, 0x1a, 0x4b, 0x28, 0x27, 0x4e, 0x4c, 0x4e,
+ 0x4d, 0x27, 0x26, 0xd7, 0x01, 0x13, 0x49, 0x48, 0x48, 0x49, 0xfe, 0xed,
+ 0x90, 0x48, 0xfe, 0x61, 0x7f, 0x87, 0x86, 0x74, 0x76, 0xfe, 0x98, 0xeb,
+ 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x36, 0x38, 0x38, 0x36, 0x72, 0x6f,
+ 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x36, 0x39, 0x39, 0x36,
+ 0x71, 0x70, 0x87, 0x05, 0xd9, 0x39, 0x36, 0x6f, 0x6f, 0x83, 0x86, 0x9c,
+ 0x97, 0x86, 0x83, 0x6f, 0x6f, 0x36, 0x39, 0x39, 0x36, 0x6f, 0x6f, 0x83,
+ 0x86, 0x97, 0x9c, 0x86, 0x83, 0x6f, 0x6f, 0x36, 0xcb, 0x7b, 0x7a, 0xf7,
+ 0xf5, 0xf6, 0xf6, 0xf5, 0xf3, 0x7e, 0x7b, 0x80, 0x9f, 0x9e, 0xfe, 0xd1,
+ 0xfe, 0xd3, 0x9f, 0x9f, 0x01, 0x3e, 0x01, 0x2d, 0x01, 0x2c, 0xa1, 0xfc,
+ 0x67, 0x03, 0x8f, 0x25, 0x93, 0x26, 0xfb, 0xdd, 0x88, 0x05, 0xa8, 0x40,
+ 0x3e, 0x7d, 0x7e, 0x95, 0x97, 0xb1, 0xac, 0x97, 0x95, 0x7e, 0x7d, 0x3e,
+ 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x95, 0x97, 0xac, 0xb1, 0x97, 0x95, 0x7e,
+ 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x0a, 0x00, 0x24, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35,
+ 0x23, 0x11, 0x23, 0x05, 0x15, 0x25, 0x11, 0x02, 0x20, 0x17, 0x16, 0x17,
+ 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26,
+ 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x01, 0xe9, 0x02,
+ 0x6b, 0xee, 0x91, 0xfe, 0xff, 0x01, 0x02, 0x6e, 0x01, 0x39, 0x89, 0x87,
+ 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87,
+ 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x01, 0x1d, 0x88, 0x88, 0x04,
+ 0x23, 0x3a, 0x93, 0x39, 0xfc, 0x71, 0x05, 0x20, 0x40, 0x3e, 0x7d, 0x7e,
+ 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e,
+ 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00,
+ 0x00, 0x02, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x1c,
+ 0x00, 0x36, 0x00, 0x00, 0x01, 0x3e, 0x01, 0x37, 0x3e, 0x01, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x07, 0x06, 0x00, 0x07, 0x15, 0x21, 0x35, 0x00, 0x20, 0x17,
+ 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x02,
+ 0x60, 0xaf, 0xc1, 0x12, 0x42, 0x32, 0xc7, 0xa8, 0x3f, 0x99, 0x57, 0x56,
+ 0x99, 0x44, 0x60, 0x78, 0x37, 0x46, 0x25, 0xfe, 0xe3, 0x53, 0x02, 0xaa,
+ 0xfe, 0x0d, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f,
+ 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70,
+ 0x87, 0x01, 0x20, 0xc7, 0xde, 0x17, 0x5a, 0x84, 0x49, 0x9b, 0xba, 0x28,
+ 0x27, 0xa3, 0x35, 0x35, 0x78, 0x5f, 0x3b, 0x78, 0x58, 0x2e, 0xfe, 0xbf,
+ 0x5f, 0x88, 0x88, 0x05, 0x1d, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1,
+ 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01,
+ 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x02, 0x00, 0x08,
+ 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x28, 0x00, 0x42, 0x00, 0x00,
+ 0x01, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x15, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x2b, 0x01, 0x15, 0x33, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x15, 0x1e, 0x01, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x00, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12,
+ 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26,
+ 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x9f, 0x5f, 0x66, 0xc1,
+ 0xa6, 0x40, 0x91, 0x53, 0x53, 0x89, 0x3b, 0x6e, 0x75, 0x71, 0x6c, 0x83,
+ 0x7d, 0x77, 0x85, 0x8f, 0x89, 0x4e, 0x90, 0x3d, 0x4d, 0x8f, 0x44, 0xca,
+ 0xda, 0x76, 0xfe, 0x61, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e,
+ 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f,
+ 0x71, 0x70, 0x87, 0x03, 0x19, 0x1b, 0x88, 0x64, 0x8e, 0xa7, 0x19, 0x1a,
+ 0x90, 0x1e, 0x1d, 0x62, 0x5c, 0x5a, 0x5f, 0x85, 0x77, 0x6a, 0x72, 0x78,
+ 0x28, 0x27, 0x9c, 0x1d, 0x1e, 0xc2, 0xb0, 0x74, 0x9c, 0x03, 0x3d, 0x40,
+ 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e,
+ 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e,
+ 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x27, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x09, 0x01, 0x15, 0x21, 0x11, 0x33, 0x11, 0x33, 0x35, 0x23, 0x11,
+ 0x24, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06,
+ 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37,
+ 0x36, 0x37, 0x03, 0x40, 0xfe, 0x90, 0x01, 0x4a, 0xfe, 0x40, 0x01, 0xe6,
+ 0x90, 0x9a, 0x9a, 0xfe, 0x98, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e,
+ 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f,
+ 0x6f, 0x71, 0x70, 0x87, 0x04, 0xb3, 0xfd, 0x82, 0x03, 0x0b, 0xfd, 0x0b,
+ 0x9c, 0xfe, 0xe6, 0x01, 0x1a, 0x86, 0x03, 0x0b, 0xfd, 0x40, 0x3e, 0x7d,
+ 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40,
+ 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e,
+ 0x00, 0x02, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x1d,
+ 0x00, 0x37, 0x00, 0x00, 0x01, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x15, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x11, 0x21, 0x35, 0x00, 0x20,
+ 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06,
+ 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37,
+ 0x01, 0xe7, 0x3c, 0x74, 0x3b, 0x7c, 0x92, 0x92, 0x7c, 0x4e, 0x89, 0x41,
+ 0x4b, 0x8c, 0x43, 0xc5, 0xd8, 0xd2, 0xb4, 0x1f, 0x40, 0x20, 0x01, 0xb6,
+ 0xfe, 0x46, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f,
+ 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70,
+ 0x87, 0x05, 0x3d, 0xfd, 0xa8, 0x1e, 0x1d, 0x92, 0x7c, 0x7d, 0x92, 0x27,
+ 0x27, 0xa3, 0x19, 0x1a, 0xd6, 0xc1, 0xbb, 0xdb, 0x0c, 0x0c, 0x01, 0x25,
+ 0x88, 0x01, 0x00, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe,
+ 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac,
+ 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08,
+ 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x0b, 0x00, 0x24, 0x00, 0x3e,
+ 0x00, 0x00, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x36, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x02, 0x11, 0x10, 0x12, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x17, 0x00, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14,
+ 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35,
+ 0x34, 0x12, 0x37, 0x36, 0x37, 0x02, 0xfb, 0x62, 0x73, 0x73, 0x62, 0x61,
+ 0x73, 0x73, 0x01, 0x82, 0x3c, 0x70, 0x37, 0xcb, 0xf2, 0xc5, 0xba, 0xa3,
+ 0xc4, 0xbc, 0xa2, 0x4d, 0x80, 0x2a, 0x0b, 0x98, 0x90, 0x36, 0x6f, 0x37,
+ 0xfe, 0x4c, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f,
+ 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70,
+ 0x87, 0x03, 0x2b, 0x95, 0x82, 0x80, 0x96, 0x96, 0x80, 0x82, 0x95, 0x01,
+ 0xfa, 0x18, 0x18, 0xfe, 0xaf, 0xfe, 0xe5, 0xfe, 0xd3, 0xfe, 0xc2, 0xde,
+ 0xb8, 0xbc, 0xdb, 0x4b, 0x45, 0xda, 0xd8, 0x1e, 0x1d, 0x01, 0xab, 0x40,
+ 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e,
+ 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e,
+ 0x7d, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x01, 0x15, 0x21, 0x01,
+ 0x33, 0x01, 0x35, 0x24, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14,
+ 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35,
+ 0x34, 0x12, 0x37, 0x36, 0x37, 0x01, 0xa7, 0x02, 0x05, 0xfe, 0x90, 0x98,
+ 0x01, 0x86, 0xfe, 0x0e, 0x01, 0x39, 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e,
+ 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f,
+ 0x71, 0x70, 0x87, 0x05, 0x40, 0x88, 0xfb, 0xdd, 0x04, 0x66, 0x45, 0xfd,
+ 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d,
+ 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c,
+ 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x04, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x09, 0x00, 0x1f, 0x00, 0x2b, 0x00, 0x45, 0x00, 0x00,
+ 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x27, 0x0e,
+ 0x01, 0x15, 0x14, 0x16, 0x20, 0x36, 0x35, 0x34, 0x26, 0x27, 0x3e, 0x01,
+ 0x35, 0x34, 0x26, 0x20, 0x06, 0x15, 0x14, 0x16, 0x37, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x12, 0x20, 0x17, 0x16,
+ 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27,
+ 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x03, 0x03,
+ 0x69, 0x76, 0x77, 0xcf, 0x77, 0x77, 0x2a, 0x69, 0x77, 0xbf, 0x01, 0x65,
+ 0xbe, 0x76, 0x69, 0x5e, 0x68, 0xb7, 0xfe, 0xbf, 0xb7, 0x68, 0x28, 0x69,
+ 0x5e, 0x5e, 0x6a, 0x6a, 0x5e, 0x5e, 0x69, 0x2c, 0x01, 0x39, 0x89, 0x87,
+ 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89, 0x87,
+ 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x02, 0xcc, 0x7b, 0x6c, 0x6b,
+ 0x7c, 0x7b, 0xd8, 0x7b, 0x45, 0x1b, 0x9e, 0x73, 0xad, 0xba, 0xba, 0xad,
+ 0x73, 0x9e, 0x1b, 0x1a, 0x8e, 0x67, 0x8f, 0xa6, 0xa6, 0x8f, 0x67, 0x8e,
+ 0xe5, 0x5d, 0x68, 0x68, 0x5d, 0x5c, 0x68, 0x68, 0x02, 0x89, 0x40, 0x3e,
+ 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40,
+ 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d,
+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01,
+ 0x06, 0x3d, 0x00, 0x18, 0x00, 0x24, 0x00, 0x3e, 0x00, 0x00, 0x25, 0x1e,
+ 0x01, 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x01,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x00,
+ 0x20, 0x17, 0x16, 0x17, 0x16, 0x12, 0x15, 0x14, 0x02, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x27, 0x26, 0x02, 0x35, 0x34, 0x12, 0x37, 0x36,
+ 0x37, 0x01, 0xea, 0x3d, 0x70, 0x37, 0xcc, 0xf1, 0xc4, 0xbc, 0xa2, 0xc4,
+ 0xbc, 0xa1, 0x4e, 0x80, 0x2a, 0x0b, 0x98, 0x90, 0x36, 0x70, 0x37, 0x01,
+ 0x21, 0x61, 0x73, 0x73, 0x61, 0x63, 0x72, 0x72, 0xfe, 0xfa, 0x01, 0x39,
+ 0x89, 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7,
+ 0x89, 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0xae, 0x18, 0x18,
+ 0x01, 0x51, 0x01, 0x1a, 0x01, 0x2f, 0x01, 0x3d, 0xde, 0xb8, 0xbc, 0xd9,
+ 0x4a, 0x44, 0xdb, 0xd7, 0x1e, 0x1d, 0x01, 0x67, 0x95, 0x82, 0x81, 0x95,
+ 0x95, 0x81, 0x82, 0x95, 0x03, 0x95, 0x40, 0x3e, 0x7d, 0x7e, 0xfe, 0xd4,
+ 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40, 0x40, 0x3e, 0x7d, 0x7e,
+ 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x08, 0xff, 0x96, 0x06, 0x01, 0x06, 0x3d, 0x00, 0x0b,
+ 0x00, 0x15, 0x00, 0x20, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x3e, 0x01, 0x20, 0x02, 0x11,
+ 0x10, 0x12, 0x20, 0x12, 0x11, 0x10, 0x01, 0x15, 0x21, 0x35, 0x23, 0x11,
+ 0x23, 0x07, 0x15, 0x37, 0x11, 0x12, 0x20, 0x17, 0x16, 0x17, 0x16, 0x12,
+ 0x15, 0x14, 0x02, 0x07, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x27, 0x26,
+ 0x02, 0x35, 0x34, 0x12, 0x37, 0x36, 0x37, 0x04, 0x23, 0x5b, 0x5a, 0x5a,
+ 0x5b, 0x5a, 0x5a, 0x5a, 0xeb, 0xfe, 0xde, 0x98, 0x98, 0x01, 0x22, 0x99,
+ 0xfc, 0x03, 0x01, 0x95, 0x91, 0x74, 0xa1, 0xa2, 0x87, 0x01, 0x39, 0x89,
+ 0x87, 0x6f, 0x72, 0x6e, 0x6e, 0x72, 0x6f, 0x87, 0x89, 0xfe, 0xc7, 0x89,
+ 0x87, 0x70, 0x71, 0x6f, 0x6f, 0x71, 0x70, 0x87, 0x04, 0xd5, 0xf5, 0xf7,
+ 0xf5, 0xf6, 0xf6, 0xf5, 0xf7, 0xf5, 0x80, 0xfe, 0xc3, 0xfe, 0xd1, 0xfe,
+ 0xd3, 0xfe, 0xc2, 0x01, 0x3e, 0x01, 0x2d, 0x01, 0x2f, 0xfd, 0x05, 0x88,
+ 0x88, 0x04, 0x23, 0x26, 0x93, 0x25, 0xfc, 0x71, 0x05, 0x20, 0x40, 0x3e,
+ 0x7d, 0x7e, 0xfe, 0xd4, 0xb1, 0xac, 0xfe, 0xd4, 0x7e, 0x7d, 0x3e, 0x40,
+ 0x40, 0x3e, 0x7d, 0x7e, 0x01, 0x2c, 0xac, 0xb1, 0x01, 0x2c, 0x7e, 0x7d,
+ 0x3e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0x9a, 0x05, 0xaf,
+ 0x04, 0x6a, 0x00, 0x08, 0x00, 0x00, 0x09, 0x01, 0x21, 0x01, 0x21, 0x35,
+ 0x21, 0x01, 0x21, 0x05, 0xae, 0xfe, 0x49, 0xfe, 0xe0, 0x01, 0x4b, 0xfc,
+ 0x47, 0x03, 0xb9, 0xfe, 0xb5, 0x01, 0x20, 0x02, 0x82, 0xfe, 0x18, 0x01,
+ 0x70, 0xf0, 0x01, 0x70, 0x00, 0x01, 0x00, 0xe2, 0x00, 0x70, 0x04, 0xe9,
+ 0x04, 0xe9, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01, 0x37, 0x01, 0x1b, 0x01,
+ 0x25, 0x03, 0x92, 0xfd, 0x51, 0x98, 0x02, 0x70, 0xbe, 0x3f, 0xfd, 0x93,
+ 0x01, 0x8b, 0x02, 0xb4, 0xaa, 0xfd, 0x05, 0x01, 0x34, 0xfd, 0x4e, 0x47,
+ 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x05, 0x35, 0x05, 0x03, 0x09, 0x01, 0x04, 0x07, 0xfc,
+ 0x62, 0x03, 0x9e, 0x3d, 0x01, 0xe4, 0xfe, 0x1c, 0x02, 0x3c, 0x32, 0xf0,
+ 0x32, 0x01, 0x70, 0xfe, 0x4a, 0xfe, 0x4a, 0x00, 0x00, 0x01, 0x00, 0xe2,
+ 0x00, 0x1b, 0x04, 0xe9, 0x04, 0x94, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01,
+ 0x27, 0x01, 0x2d, 0x01, 0x03, 0x03, 0xeb, 0xfd, 0x90, 0x98, 0x02, 0xaf,
+ 0xfe, 0xe9, 0x02, 0x6d, 0x3f, 0x03, 0x16, 0xfd, 0x05, 0xaa, 0x02, 0xb4,
+ 0xd4, 0x47, 0xfd, 0x4e, 0x00, 0x01, 0x00, 0x69, 0x01, 0x08, 0x05, 0xaf,
+ 0x03, 0xfc, 0x00, 0x08, 0x00, 0x00, 0x13, 0x21, 0x03, 0x04, 0x05, 0x04,
+ 0x05, 0x13, 0x21, 0x69, 0x02, 0x75, 0x97, 0x01, 0x39, 0x02, 0x2e, 0xfd,
+ 0xd2, 0xfe, 0xc7, 0x97, 0xfd, 0x8b, 0x02, 0xbe, 0x01, 0x3e, 0xfc, 0x7e,
+ 0x7e, 0xfc, 0x01, 0x3e, 0x00, 0x01, 0x00, 0x69, 0x00, 0x75, 0x05, 0x81,
+ 0x04, 0x8f, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x14, 0x06, 0x07, 0x01, 0x06,
+ 0x07, 0x06, 0x22, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x3f, 0x01,
+ 0x21, 0x22, 0x2e, 0x02, 0x34, 0x3e, 0x02, 0x33, 0x21, 0x27, 0x2e, 0x01,
+ 0x35, 0x34, 0x36, 0x37, 0x3e, 0x01, 0x32, 0x17, 0x16, 0x17, 0x01, 0x16,
+ 0x05, 0x80, 0x12, 0x0f, 0xfe, 0x98, 0x0e, 0x16, 0x14, 0x2e, 0x28, 0x10,
+ 0x10, 0x11, 0x12, 0x0f, 0xa7, 0xfc, 0xda, 0x18, 0x27, 0x21, 0x11, 0x11,
+ 0x21, 0x27, 0x18, 0x03, 0x26, 0xa7, 0x0f, 0x12, 0x11, 0x10, 0x10, 0x28,
+ 0x2e, 0x14, 0x16, 0x0e, 0x01, 0x68, 0x11, 0x02, 0x9b, 0x32, 0x2e, 0x11,
+ 0xfe, 0x70, 0x10, 0x0b, 0x0a, 0x14, 0x11, 0x13, 0x2c, 0x19, 0x1a, 0x2e,
+ 0x11, 0xba, 0x14, 0x22, 0x2e, 0x32, 0x2e, 0x22, 0x14, 0xba, 0x11, 0x2e,
+ 0x1a, 0x19, 0x2c, 0x13, 0x11, 0x14, 0x0a, 0x0b, 0x10, 0xfe, 0x70, 0x13,
+ 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x11, 0x09, 0x01, 0x04, 0x24, 0xfc,
+ 0x45, 0x03, 0xbb, 0x01, 0x8a, 0xfe, 0x76, 0x02, 0x5a, 0x50, 0x01, 0x8e,
+ 0xfe, 0x4a, 0xfe, 0x4a, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x06, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x11, 0x09,
+ 0x01, 0x04, 0x24, 0xfc, 0x45, 0x03, 0xbb, 0x01, 0x8a, 0xfe, 0x76, 0x02,
+ 0x14, 0xdc, 0x01, 0x48, 0xfe, 0x4a, 0xfe, 0x4a, 0x00, 0x04, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x12, 0x00, 0x00, 0x01, 0x23, 0x11, 0x33, 0x01, 0x23, 0x11, 0x33,
+ 0x03, 0x23, 0x11, 0x33, 0x01, 0x21, 0x11, 0x21, 0x35, 0x09, 0x01, 0x02,
+ 0x73, 0xd8, 0xd8, 0xfe, 0xe0, 0x6c, 0x6c, 0xb4, 0x36, 0x36, 0x03, 0x85,
+ 0xfe, 0x97, 0x01, 0x69, 0x01, 0x8a, 0xfe, 0x76, 0x01, 0xba, 0x01, 0x90,
+ 0xfe, 0x70, 0x01, 0x90, 0xfe, 0x70, 0x01, 0x90, 0xfe, 0x70, 0x01, 0x90,
+ 0xee, 0xfe, 0x4a, 0xfe, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10,
+ 0x00, 0x14, 0x00, 0x00, 0x01, 0x35, 0x12, 0x17, 0x06, 0x03, 0x35, 0x21,
+ 0x11, 0x03, 0x23, 0x11, 0x33, 0x01, 0x23, 0x11, 0x33, 0x03, 0x23, 0x11,
+ 0x33, 0x04, 0x24, 0xa6, 0xe4, 0xe4, 0xa6, 0xfe, 0x97, 0x48, 0xd8, 0xd8,
+ 0xfe, 0xe0, 0x6c, 0x6c, 0xb4, 0x36, 0x36, 0x03, 0xae, 0x8a, 0xfe, 0xce,
+ 0x84, 0x84, 0xfe, 0xce, 0x8a, 0x02, 0x58, 0xfd, 0xa8, 0x02, 0x58, 0xfd,
+ 0xa8, 0x02, 0x58, 0xfd, 0xa8, 0x02, 0x58, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0x86, 0x05, 0xd7, 0x04, 0x7e, 0x00, 0x06, 0x00, 0x00, 0x09, 0x02,
+ 0x11, 0x21, 0x11, 0x21, 0x04, 0x0e, 0x01, 0xc9, 0xfe, 0x37, 0xfc, 0x5b,
+ 0x03, 0xa5, 0x04, 0x7e, 0xfe, 0x04, 0xfe, 0x04, 0x01, 0x11, 0x01, 0xd6,
+ 0x00, 0x02, 0x00, 0xcd, 0x00, 0xc0, 0x05, 0xaf, 0x04, 0x44, 0x00, 0x02,
+ 0x00, 0x06, 0x00, 0x00, 0x01, 0x21, 0x01, 0x13, 0x09, 0x02, 0x02, 0xce,
+ 0x01, 0xfe, 0xfd, 0x0f, 0x87, 0xfe, 0x6b, 0x04, 0xe1, 0xfb, 0x1f, 0x02,
+ 0x82, 0x01, 0x0f, 0xfe, 0xf1, 0x01, 0xc2, 0xfe, 0x3e, 0xfe, 0x3e, 0x00,
+ 0x00, 0x02, 0x00, 0xcd, 0x00, 0xc0, 0x05, 0xaf, 0x04, 0x44, 0x00, 0x02,
+ 0x00, 0x06, 0x00, 0x00, 0x01, 0x03, 0x01, 0x21, 0x09, 0x02, 0x02, 0xce,
+ 0xf3, 0x02, 0xf1, 0xfd, 0x96, 0xfe, 0x6b, 0x04, 0xe1, 0xfb, 0x1f, 0x02,
+ 0x82, 0xfe, 0xf1, 0x01, 0x0f, 0x01, 0xc2, 0xfe, 0x3e, 0xfe, 0x3e, 0x00,
+ 0x00, 0x01, 0x00, 0xcd, 0xff, 0xf8, 0x05, 0xaf, 0x05, 0x0c, 0x00, 0x03,
+ 0x00, 0x00, 0x09, 0x03, 0x02, 0x08, 0xfe, 0xc5, 0x04, 0xe1, 0xfb, 0x1f,
+ 0x02, 0x82, 0x02, 0x8a, 0xfd, 0x76, 0xfd, 0x76, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x62, 0x00, 0x14, 0x00, 0x00, 0x13, 0x11,
+ 0x14, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x21, 0x35, 0x09, 0x01, 0x35,
+ 0x21, 0x20, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x69, 0x21, 0x1f, 0x20, 0x26,
+ 0x26, 0x0b, 0x03, 0x04, 0x01, 0x8a, 0xfe, 0x76, 0xfe, 0x79, 0xfe, 0x78,
+ 0x26, 0x26, 0x20, 0x1f, 0x21, 0x02, 0x82, 0x01, 0xe0, 0x30, 0x55, 0x25,
+ 0x21, 0x13, 0x12, 0xc6, 0xfe, 0x4a, 0xfe, 0x4a, 0xc6, 0x12, 0x13, 0x21,
+ 0x25, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xa2, 0x05, 0xaf,
+ 0x04, 0x38, 0x00, 0x14, 0x00, 0x00, 0x13, 0x34, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x21, 0x35, 0x09, 0x01, 0x35, 0x21, 0x20, 0x07, 0x06, 0x07,
+ 0x0e, 0x01, 0x15, 0x69, 0x21, 0x1f, 0x20, 0x26, 0x26, 0x0b, 0x03, 0x04,
+ 0x01, 0x8a, 0xfe, 0x76, 0xfe, 0x79, 0xfe, 0x78, 0x26, 0x26, 0x20, 0x1f,
+ 0x21, 0x02, 0x82, 0x30, 0x55, 0x25, 0x21, 0x13, 0x12, 0xc6, 0xfe, 0x4a,
+ 0xfe, 0x4a, 0xc6, 0x12, 0x13, 0x21, 0x25, 0x55, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0xba, 0xff, 0xf1, 0x04, 0x5d, 0x05, 0x13, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x21, 0x11, 0x21, 0x11, 0x09, 0x01, 0x03, 0x08, 0xfe,
+ 0xb3, 0x01, 0x4d, 0x01, 0x55, 0xfe, 0xab, 0x01, 0x56, 0x02, 0x58, 0x01,
+ 0x65, 0xfd, 0x6f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x08, 0x00, 0x00, 0x01, 0x35,
+ 0x12, 0x05, 0x04, 0x03, 0x35, 0x21, 0x11, 0x03, 0x9d, 0x82, 0x01, 0x8f,
+ 0xfe, 0x71, 0x82, 0xfc, 0xcc, 0x03, 0x9a, 0x9e, 0xfe, 0xce, 0x84, 0x84,
+ 0xfe, 0xce, 0x9e, 0x02, 0x30, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0x00, 0x9a, 0x05, 0x82, 0x04, 0x6a, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00,
+ 0x25, 0x35, 0x21, 0x11, 0x21, 0x35, 0x33, 0x09, 0x01, 0x03, 0x15, 0x09,
+ 0x01, 0x15, 0x21, 0x11, 0x02, 0xe9, 0xfd, 0x80, 0x02, 0x80, 0xe1, 0x01,
+ 0xb7, 0xfe, 0x49, 0x99, 0x01, 0x6f, 0xfe, 0x91, 0xfd, 0x80, 0x9a, 0xee,
+ 0x01, 0xf4, 0xee, 0xfe, 0x18, 0xfe, 0x18, 0x01, 0x3e, 0xee, 0x01, 0x98,
+ 0x01, 0x98, 0xee, 0xfe, 0xac, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0x00, 0x9a, 0x05, 0x82, 0x04, 0x6a, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00,
+ 0x25, 0x35, 0x21, 0x11, 0x21, 0x35, 0x33, 0x09, 0x01, 0x03, 0x15, 0x09,
+ 0x01, 0x15, 0x21, 0x11, 0x02, 0xe9, 0xfd, 0x80, 0x02, 0x80, 0xe1, 0x01,
+ 0xb7, 0xfe, 0x49, 0x12, 0x01, 0x6f, 0xfe, 0x91, 0xfd, 0x80, 0x9a, 0xee,
+ 0x01, 0xf4, 0xee, 0xfe, 0x18, 0xfe, 0x18, 0x01, 0x3e, 0xee, 0x01, 0x98,
+ 0x01, 0x98, 0xee, 0xfe, 0xac, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x26,
+ 0x00, 0x18, 0x05, 0xb8, 0x04, 0xb0, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x00,
+ 0x13, 0x01, 0x21, 0x37, 0x33, 0x13, 0x15, 0x01, 0x23, 0x35, 0x37, 0x21,
+ 0x01, 0x07, 0x01, 0x03, 0x07, 0x21, 0x03, 0x27, 0x01, 0x03, 0x02, 0xf5,
+ 0x7c, 0x5a, 0xc2, 0xfd, 0x6f, 0x87, 0x14, 0xfd, 0x74, 0x03, 0x6f, 0x7c,
+ 0x02, 0x43, 0x9a, 0x7d, 0xfd, 0x0c, 0xb1, 0x01, 0xce, 0x01, 0xf4, 0xee,
+ 0xfd, 0xfe, 0xc8, 0xfe, 0x32, 0xc8, 0x26, 0x01, 0x18, 0xee, 0x01, 0x98,
+ 0x01, 0x98, 0xee, 0xfe, 0xac, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x26,
+ 0x00, 0x18, 0x05, 0xb8, 0x04, 0xb0, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x00,
+ 0x13, 0x35, 0x21, 0x27, 0x35, 0x33, 0x01, 0x15, 0x03, 0x23, 0x27, 0x21,
+ 0x01, 0x21, 0x13, 0x21, 0x17, 0x13, 0x01, 0x27, 0x02, 0x8c, 0x14, 0x87,
+ 0x02, 0x91, 0xc2, 0x5a, 0x7c, 0xfd, 0x0b, 0x02, 0x6c, 0xfd, 0x0b, 0xb1,
+ 0x02, 0xf4, 0x7d, 0x9a, 0xfd, 0xbd, 0x02, 0xfa, 0xc8, 0x26, 0xc8, 0xfe,
+ 0x32, 0xc8, 0xfd, 0xfe, 0xee, 0x01, 0xa4, 0xfe, 0xac, 0xee, 0x01, 0x98,
+ 0x01, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf9, 0x00, 0x00, 0x05, 0x94,
+ 0x04, 0x98, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x00, 0x21, 0x27, 0x21, 0x27,
+ 0x11, 0x21, 0x35, 0x33, 0x01, 0x17, 0x01, 0x03, 0x15, 0x09, 0x01, 0x15,
+ 0x21, 0x11, 0x03, 0x79, 0x47, 0xfe, 0x21, 0x5a, 0x02, 0x26, 0x63, 0x01,
+ 0xb7, 0x5a, 0xfe, 0x49, 0x75, 0x01, 0x6f, 0xfe, 0x91, 0xfd, 0xda, 0x9e,
+ 0xc8, 0x02, 0x94, 0x9e, 0xfe, 0x18, 0xc8, 0xfe, 0x18, 0x01, 0xb6, 0x9e,
+ 0x01, 0x98, 0x01, 0x98, 0x9e, 0xfe, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9,
+ 0x00, 0x00, 0x05, 0x94, 0x04, 0x98, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x00,
+ 0x01, 0x33, 0x01, 0x07, 0x01, 0x23, 0x35, 0x21, 0x11, 0x37, 0x21, 0x13,
+ 0x21, 0x11, 0x21, 0x15, 0x09, 0x01, 0x03, 0x79, 0x63, 0x01, 0xb7, 0x5a,
+ 0xfe, 0x49, 0x63, 0xfd, 0xda, 0x5a, 0x01, 0xdf, 0x35, 0xfd, 0xda, 0x02,
+ 0x26, 0x01, 0x6f, 0xfe, 0x91, 0x04, 0x98, 0xfe, 0x18, 0xc8, 0xfe, 0x18,
+ 0x9e, 0x02, 0x94, 0xc8, 0xfe, 0xe8, 0xfe, 0x0c, 0x9e, 0x01, 0x98, 0x01,
+ 0x98, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x72, 0x00, 0x64, 0x05, 0xc1,
+ 0x04, 0x98, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x00, 0x13, 0x03, 0x21, 0x35,
+ 0x33, 0x01, 0x17, 0x01, 0x23, 0x27, 0x35, 0x21, 0x27, 0x13, 0x07, 0x21,
+ 0x15, 0x09, 0x01, 0x15, 0x21, 0xf9, 0x87, 0x03, 0x07, 0x63, 0x01, 0xb7,
+ 0x2d, 0xfe, 0x49, 0x63, 0x2d, 0xfd, 0x26, 0x2d, 0xda, 0x66, 0x02, 0xdb,
+ 0x01, 0x6f, 0xfe, 0x91, 0xfd, 0x25, 0x02, 0xb0, 0x01, 0x4a, 0x9e, 0xfe,
+ 0x18, 0x64, 0xfe, 0x18, 0x63, 0x3b, 0x64, 0x01, 0x4a, 0xfa, 0x9e, 0x01,
+ 0x98, 0x01, 0x98, 0x9e, 0x00, 0x02, 0x00, 0x72, 0x00, 0x64, 0x05, 0xc1,
+ 0x04, 0x98, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x00, 0x13, 0x03, 0x37, 0x21,
+ 0x35, 0x37, 0x33, 0x01, 0x07, 0x01, 0x23, 0x35, 0x21, 0x13, 0x07, 0x21,
+ 0x15, 0x09, 0x01, 0x15, 0x21, 0xf9, 0x87, 0x2d, 0x02, 0xda, 0x2d, 0x63,
+ 0x01, 0xb7, 0x2d, 0xfe, 0x49, 0x63, 0xfc, 0xf9, 0xda, 0x66, 0x02, 0xdb,
+ 0x01, 0x6f, 0xfe, 0x91, 0xfd, 0x25, 0x02, 0x4c, 0x01, 0x4a, 0x64, 0x3b,
+ 0x63, 0xfe, 0x18, 0x64, 0xfe, 0x18, 0x9e, 0x01, 0x4a, 0xfa, 0x9e, 0x01,
+ 0x98, 0x01, 0x98, 0x9e, 0x00, 0x01, 0x01, 0x1c, 0xff, 0xd8, 0x05, 0x31,
+ 0x04, 0xaf, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x21, 0x15, 0x09, 0x01,
+ 0x15, 0x01, 0x1c, 0x24, 0x3c, 0x51, 0x62, 0x64, 0x71, 0x6d, 0x69, 0x5e,
+ 0x55, 0x51, 0x52, 0x4f, 0x54, 0x4e, 0x65, 0x64, 0xdf, 0x68, 0x5f, 0x54,
+ 0x39, 0x25, 0x02, 0x1c, 0x01, 0x9c, 0xfe, 0x64, 0x03, 0x6e, 0x47, 0x43,
+ 0x5a, 0x2e, 0x2f, 0x2f, 0x2b, 0x5d, 0x59, 0xdd, 0x80, 0x7a, 0xda, 0x5f,
+ 0x58, 0x30, 0x2f, 0x2f, 0x2b, 0x5d, 0x3e, 0x49, 0x9e, 0x01, 0xca, 0x01,
+ 0xca, 0x9e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x75, 0x01, 0x42, 0x05, 0xaf,
+ 0x03, 0xc2, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x1e,
+ 0x00, 0x22, 0x00, 0x26, 0x00, 0x2a, 0x00, 0x2e, 0x00, 0x00, 0x01, 0x07,
+ 0x33, 0x37, 0x23, 0x07, 0x33, 0x37, 0x23, 0x07, 0x33, 0x37, 0x23, 0x07,
+ 0x33, 0x37, 0x23, 0x35, 0x03, 0x21, 0x13, 0x21, 0x11, 0x16, 0x17, 0x06,
+ 0x07, 0x11, 0x21, 0x03, 0x21, 0x01, 0x33, 0x27, 0x23, 0x17, 0x33, 0x27,
+ 0x23, 0x17, 0x33, 0x27, 0x23, 0x17, 0x33, 0x27, 0x23, 0x02, 0x97, 0x90,
+ 0x36, 0x90, 0xa2, 0x90, 0x36, 0x90, 0xa2, 0x90, 0x36, 0x90, 0xa2, 0x90,
+ 0x36, 0x90, 0x6c, 0xa8, 0x01, 0xe6, 0xa8, 0x01, 0x60, 0x9c, 0xaf, 0xaf,
+ 0x9c, 0xfe, 0xa0, 0xa8, 0xfe, 0x1a, 0x02, 0x22, 0x36, 0x90, 0x36, 0x24,
+ 0x36, 0x90, 0x36, 0x24, 0x36, 0x90, 0x36, 0x24, 0x36, 0x90, 0x36, 0x02,
+ 0x5a, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x50, 0x01, 0x18,
+ 0xfe, 0xe8, 0x01, 0x16, 0xbc, 0x82, 0x82, 0xbc, 0x01, 0x16, 0xfe, 0xe8,
+ 0x01, 0x68, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x94, 0x00, 0x70, 0x04, 0xe9, 0x05, 0x3e, 0x00, 0x0c,
+ 0x00, 0x10, 0x00, 0x14, 0x00, 0x00, 0x01, 0x37, 0x06, 0x15, 0x14, 0x17,
+ 0x26, 0x23, 0x22, 0x07, 0x37, 0x27, 0x37, 0x09, 0x01, 0x23, 0x01, 0x25,
+ 0x11, 0x01, 0x11, 0x04, 0x2b, 0x9e, 0x06, 0x25, 0x7f, 0x94, 0x3b, 0x3f,
+ 0x9d, 0xe4, 0x32, 0xfe, 0x4d, 0x01, 0x7f, 0xff, 0xfe, 0x81, 0x01, 0x33,
+ 0x01, 0x7e, 0x01, 0x7b, 0xb0, 0x46, 0x43, 0xa3, 0x8f, 0x2a, 0x07, 0xb0,
+ 0xfe, 0x39, 0x01, 0x6f, 0xfe, 0x58, 0x01, 0xa8, 0x3a, 0x01, 0x1b, 0xfe,
+ 0x57, 0xfe, 0xe6, 0x00, 0x00, 0x03, 0x00, 0x69, 0x01, 0x62, 0x05, 0xaf,
+ 0x03, 0xa2, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x01, 0x35,
+ 0x16, 0x17, 0x06, 0x07, 0x35, 0x21, 0x35, 0x05, 0x21, 0x07, 0x21, 0x13,
+ 0x27, 0x21, 0x17, 0x04, 0x7e, 0x8b, 0xa5, 0xa5, 0x8b, 0xfe, 0xbc, 0xfd,
+ 0xe3, 0x02, 0x1c, 0xb4, 0xfd, 0xe4, 0xb4, 0xb4, 0x02, 0x1c, 0xb4, 0x02,
+ 0xaa, 0xf8, 0xbc, 0x64, 0x64, 0xbc, 0xf8, 0x50, 0x52, 0xc8, 0x01, 0x1a,
+ 0xc8, 0xc8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x96, 0xff, 0xc5, 0x04, 0xe9,
+ 0x04, 0x94, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x00, 0x00, 0x01, 0x27,
+ 0x16, 0x33, 0x32, 0x37, 0x06, 0x15, 0x14, 0x17, 0x27, 0x07, 0x27, 0x09,
+ 0x01, 0x11, 0x01, 0x03, 0x23, 0x01, 0x21, 0x03, 0xf8, 0x9d, 0x3f, 0x3b,
+ 0x94, 0x7f, 0x25, 0x06, 0x9e, 0xe5, 0x32, 0xfe, 0xb5, 0x01, 0x7e, 0xfe,
+ 0x82, 0x34, 0xff, 0x01, 0x7e, 0x00, 0xff, 0x03, 0xc1, 0xb0, 0x07, 0x2a,
+ 0x90, 0xa2, 0x43, 0x46, 0xb0, 0xff, 0x39, 0xfe, 0x1d, 0x01, 0xa8, 0xfe,
+ 0xe5, 0xfe, 0x58, 0x01, 0x55, 0x01, 0xa8, 0x00, 0x00, 0x01, 0x00, 0x96,
+ 0x00, 0x70, 0x04, 0xe9, 0x05, 0x3e, 0x00, 0x2a, 0x00, 0x00, 0x25, 0x26,
+ 0x23, 0x22, 0x07, 0x3e, 0x01, 0x37, 0x27, 0x26, 0x27, 0x26, 0x22, 0x06,
+ 0x07, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x01, 0x37, 0x26, 0x35, 0x34,
+ 0x36, 0x37, 0x01, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x16, 0x17, 0x01, 0x3e,
+ 0x01, 0x37, 0x06, 0x15, 0x14, 0x04, 0xe8, 0x80, 0x95, 0x3b, 0x3e, 0x40,
+ 0x74, 0x15, 0x95, 0x96, 0x1f, 0x22, 0x46, 0x44, 0x19, 0xfe, 0x82, 0x21,
+ 0x4e, 0x2a, 0x28, 0x2b, 0x13, 0x05, 0x12, 0x21, 0x1e, 0x01, 0x7e, 0x1d,
+ 0x16, 0x0c, 0x0e, 0x06, 0x01, 0x24, 0x03, 0x30, 0x41, 0x06, 0x70, 0x2a,
+ 0x07, 0x47, 0x36, 0x03, 0xa6, 0xa6, 0x0e, 0x0f, 0x1e, 0x1c, 0x01, 0xa8,
+ 0x24, 0x22, 0x12, 0x08, 0x21, 0x30, 0x2c, 0x30, 0x59, 0x22, 0xfe, 0x57,
+ 0x21, 0x46, 0x26, 0x27, 0x26, 0x23, 0x07, 0xfe, 0xbb, 0x17, 0x81, 0x47,
+ 0x47, 0x43, 0xa3, 0x00, 0x00, 0x01, 0x00, 0x69, 0x01, 0x61, 0x05, 0xaf,
+ 0x03, 0xa3, 0x00, 0x27, 0x00, 0x00, 0x01, 0x06, 0x07, 0x34, 0x36, 0x37,
+ 0x23, 0x22, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x21, 0x34, 0x36, 0x37,
+ 0x36, 0x3f, 0x01, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x21, 0x14, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x21, 0x2e, 0x01, 0x35, 0x16, 0x05, 0xae,
+ 0xa4, 0x8c, 0x30, 0x0c, 0xd3, 0xd3, 0x1f, 0x21, 0x1a, 0x19, 0x1c, 0xfd,
+ 0xe4, 0x22, 0x1e, 0x1c, 0x2a, 0x13, 0x13, 0x2a, 0x1c, 0x1e, 0x22, 0x02,
+ 0x1c, 0x1c, 0x19, 0x1a, 0x21, 0x1f, 0x09, 0x01, 0x9d, 0x0c, 0x30, 0x8c,
+ 0x02, 0x82, 0x65, 0xbc, 0x65, 0x81, 0x13, 0x0f, 0x10, 0x1c, 0x1b, 0x4a,
+ 0x28, 0x30, 0x59, 0x21, 0x1f, 0x15, 0x09, 0x1b, 0x15, 0x1f, 0x22, 0x58,
+ 0x30, 0x28, 0x4a, 0x1b, 0x1c, 0x10, 0x0f, 0x13, 0x81, 0x65, 0xbc, 0x00,
+ 0x00, 0x01, 0x00, 0x96, 0xff, 0xc6, 0x04, 0xe9, 0x04, 0x94, 0x00, 0x2a,
+ 0x00, 0x00, 0x01, 0x06, 0x15, 0x14, 0x17, 0x2e, 0x01, 0x27, 0x07, 0x06,
+ 0x07, 0x06, 0x15, 0x14, 0x16, 0x17, 0x01, 0x2e, 0x01, 0x35, 0x34, 0x3f,
+ 0x01, 0x27, 0x06, 0x23, 0x22, 0x26, 0x27, 0x01, 0x1e, 0x01, 0x32, 0x37,
+ 0x36, 0x37, 0x01, 0x2e, 0x01, 0x27, 0x16, 0x33, 0x32, 0x04, 0xe8, 0x24,
+ 0x06, 0x41, 0x30, 0x03, 0x97, 0x96, 0x0b, 0x0c, 0x1a, 0x19, 0xfe, 0x82,
+ 0x1e, 0x21, 0x12, 0x07, 0x1f, 0x2b, 0x28, 0x2b, 0x4f, 0x1f, 0x01, 0x7e,
+ 0x19, 0x44, 0x46, 0x22, 0x1f, 0x07, 0x01, 0x24, 0x15, 0x74, 0x40, 0x3e,
+ 0x3b, 0x95, 0x04, 0x94, 0x8e, 0xa3, 0x43, 0x47, 0x47, 0x81, 0x17, 0xa8,
+ 0xa8, 0x1f, 0x26, 0x27, 0x26, 0x4b, 0x1c, 0xfe, 0x57, 0x22, 0x59, 0x30,
+ 0x2c, 0x30, 0x15, 0x04, 0x12, 0x24, 0x22, 0x01, 0xa8, 0x1c, 0x1e, 0x0f,
+ 0x0e, 0x07, 0x01, 0x45, 0x03, 0x36, 0x47, 0x07, 0x00, 0x03, 0x00, 0x67,
+ 0x00, 0xac, 0x05, 0xaf, 0x04, 0x58, 0x00, 0x14, 0x00, 0x27, 0x00, 0x3c,
+ 0x00, 0x00, 0x01, 0x36, 0x25, 0x06, 0x03, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x37, 0x36, 0x24,
+ 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x26, 0x27, 0x2e, 0x01, 0x35,
+ 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x12, 0x17, 0x24, 0x03, 0xc4, 0xdd, 0x01, 0x0d, 0xcc, 0x6e, 0x0a, 0x13,
+ 0x14, 0x19, 0x17, 0x38, 0x17, 0x18, 0x14, 0x13, 0x15, 0x15, 0x13, 0x14,
+ 0xfc, 0xbc, 0x1c, 0x19, 0x1a, 0x20, 0x20, 0x49, 0x20, 0x01, 0x3e, 0x03,
+ 0x0f, 0xfc, 0xdb, 0xfe, 0xd8, 0x20, 0x49, 0x20, 0x25, 0x15, 0x1b, 0x03,
+ 0x42, 0x18, 0x14, 0x13, 0x15, 0x15, 0x13, 0x14, 0x18, 0x17, 0x38, 0x17,
+ 0x19, 0x14, 0x10, 0x0d, 0x6c, 0xce, 0xfe, 0xb9, 0x01, 0xce, 0x62, 0x51,
+ 0x75, 0xfe, 0xfd, 0x1d, 0x14, 0x15, 0x0c, 0x0b, 0x0b, 0x0c, 0x15, 0x14,
+ 0x38, 0x1f, 0x1e, 0x38, 0x14, 0x15, 0x97, 0x52, 0x4b, 0x1a, 0x1c, 0x10,
+ 0x0f, 0x0e, 0x85, 0x36, 0x38, 0x83, 0x0e, 0x0f, 0x12, 0x1a, 0x1f, 0x01,
+ 0x23, 0x0c, 0x15, 0x14, 0x38, 0x1e, 0x1f, 0x38, 0x14, 0x15, 0x0c, 0x0b,
+ 0x0b, 0x0c, 0x15, 0x11, 0x20, 0xfe, 0xfe, 0x76, 0x63, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x87, 0x01, 0x1f, 0x05, 0x9d, 0x03, 0xe5, 0x00, 0x1a,
+ 0x00, 0x2a, 0x00, 0x00, 0x13, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x05, 0x04, 0x07, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x25, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x37, 0x16, 0x17, 0x06, 0x07, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x87,
+ 0x3b, 0x1a, 0x1d, 0x12, 0x23, 0x24, 0x26, 0x2a, 0x30, 0x2f, 0x36, 0x2e,
+ 0x92, 0x01, 0x69, 0xfe, 0x97, 0x92, 0x33, 0x62, 0x2e, 0x2d, 0x23, 0x34,
+ 0x13, 0x1a, 0x15, 0x1a, 0x03, 0x9f, 0x21, 0x21, 0x21, 0x21, 0x59, 0xe2,
+ 0xe2, 0x59, 0x21, 0x21, 0x21, 0x02, 0x82, 0x26, 0x3a, 0x3f, 0x13, 0x24,
+ 0x12, 0x13, 0x13, 0x16, 0x20, 0x66, 0x4c, 0x4c, 0x66, 0x23, 0x26, 0x13,
+ 0x1d, 0x19, 0x23, 0x2f, 0x3a, 0x26, 0x27, 0x58, 0x32, 0x33, 0x58, 0x27,
+ 0xf1, 0x72, 0x72, 0xf1, 0x27, 0x58, 0x33, 0x32, 0x58, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x91, 0x01, 0x56, 0x05, 0x94, 0x03, 0xae, 0x00, 0x63,
+ 0x00, 0x00, 0x00, 0x14, 0x06, 0x0f, 0x01, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x3f, 0x01, 0x36, 0x35, 0x34, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x2b, 0x01, 0x22, 0x07, 0x06, 0x07, 0x06, 0x0f,
+ 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x21, 0x22, 0x2e, 0x02, 0x34,
+ 0x3f, 0x01, 0x36, 0x34, 0x2f, 0x01, 0x26, 0x34, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x21, 0x32, 0x17, 0x16, 0x17, 0x16, 0x1f, 0x01, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x3b, 0x01, 0x32, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x35,
+ 0x34, 0x2f, 0x01, 0x26, 0x35, 0x34, 0x36, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x1f, 0x01, 0x16, 0x05, 0x93, 0x05, 0x05, 0xd8, 0x04, 0x08,
+ 0x06, 0x0f, 0x06, 0x06, 0x06, 0x05, 0x06, 0x03, 0x18, 0x03, 0x05, 0x06,
+ 0x04, 0x07, 0x08, 0x06, 0xfe, 0x07, 0x06, 0x06, 0x06, 0x04, 0x04, 0x51,
+ 0x05, 0x02, 0x06, 0x07, 0x05, 0x07, 0xfd, 0xd9, 0x07, 0x0d, 0x0b, 0x05,
+ 0x02, 0x35, 0x35, 0x01, 0x69, 0x02, 0x05, 0x06, 0x05, 0x06, 0x07, 0x07,
+ 0x02, 0x27, 0x07, 0x05, 0x08, 0x05, 0x02, 0x05, 0x51, 0x04, 0x04, 0x06,
+ 0x06, 0x06, 0x07, 0xfe, 0x06, 0x08, 0x07, 0x04, 0x06, 0x05, 0x03, 0x18,
+ 0x03, 0x06, 0x05, 0x06, 0x06, 0x06, 0x0f, 0x06, 0x08, 0x04, 0xd8, 0x05,
+ 0x02, 0x8b, 0x12, 0x0e, 0x06, 0xf0, 0x04, 0x05, 0x03, 0x03, 0x04, 0x05,
+ 0x06, 0x0e, 0x09, 0x04, 0x0b, 0x63, 0x0b, 0x05, 0x07, 0x0f, 0x06, 0x05,
+ 0x03, 0x04, 0x03, 0x04, 0x05, 0x05, 0x08, 0xb4, 0x0a, 0x03, 0x05, 0x04,
+ 0x03, 0x06, 0x0c, 0x0e, 0x12, 0x06, 0x75, 0x75, 0x14, 0x02, 0xe8, 0x06,
+ 0x12, 0x0e, 0x06, 0x05, 0x04, 0x03, 0x03, 0x03, 0x06, 0x03, 0x0a, 0xb4,
+ 0x08, 0x05, 0x05, 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x0f, 0x07, 0x05,
+ 0x0b, 0x63, 0x0b, 0x04, 0x09, 0x0e, 0x06, 0x05, 0x04, 0x03, 0x03, 0x05,
+ 0x04, 0xf0, 0x06, 0x00, 0x00, 0x01, 0x00, 0x91, 0x00, 0xf1, 0x05, 0x94,
+ 0x04, 0x13, 0x00, 0x63, 0x00, 0x00, 0x00, 0x14, 0x06, 0x07, 0x01, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x35, 0x34, 0x3f, 0x01,
+ 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, 0x27, 0x26, 0x2b, 0x01, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x21,
+ 0x22, 0x2e, 0x02, 0x34, 0x3f, 0x01, 0x36, 0x34, 0x27, 0x03, 0x26, 0x34,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x21, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x13, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x32, 0x37, 0x36,
+ 0x37, 0x3e, 0x01, 0x35, 0x34, 0x2f, 0x01, 0x26, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x01, 0x16, 0x05, 0x93, 0x05,
+ 0x05, 0xfe, 0x98, 0x05, 0x07, 0x06, 0x0f, 0x06, 0x06, 0x06, 0x05, 0x06,
+ 0x03, 0x4e, 0x03, 0x05, 0x06, 0x04, 0x07, 0x08, 0x06, 0x53, 0x07, 0x06,
+ 0x07, 0x05, 0x04, 0x04, 0x6c, 0x05, 0x02, 0x06, 0x07, 0x05, 0x07, 0xfd,
+ 0xac, 0x07, 0x0d, 0x0b, 0x05, 0x03, 0x42, 0x42, 0x01, 0x8d, 0x02, 0x05,
+ 0x06, 0x05, 0x06, 0x07, 0x07, 0x02, 0x54, 0x07, 0x05, 0x08, 0x05, 0x03,
+ 0x04, 0x75, 0x04, 0x04, 0x05, 0x07, 0x06, 0x07, 0x53, 0x06, 0x08, 0x07,
+ 0x04, 0x06, 0x05, 0x03, 0x4e, 0x03, 0x06, 0x05, 0x06, 0x06, 0x06, 0x0f,
+ 0x06, 0x07, 0x05, 0x01, 0x68, 0x05, 0x02, 0x8b, 0x12, 0x0f, 0x05, 0xfe,
+ 0x98, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0x06, 0x0e, 0x09, 0x07, 0x08,
+ 0xdb, 0x08, 0x08, 0x07, 0x0f, 0x06, 0x05, 0x03, 0x04, 0x03, 0x04, 0x05,
+ 0x05, 0x08, 0xf0, 0x0a, 0x03, 0x05, 0x04, 0x03, 0x06, 0x0c, 0x0e, 0x12,
+ 0x06, 0x93, 0x93, 0x14, 0x02, 0x01, 0x38, 0x06, 0x12, 0x0e, 0x06, 0x05,
+ 0x04, 0x03, 0x03, 0x03, 0x06, 0x03, 0x0a, 0xfe, 0xfc, 0x08, 0x05, 0x05,
+ 0x04, 0x03, 0x04, 0x03, 0x05, 0x06, 0x0f, 0x07, 0x08, 0x08, 0xdb, 0x08,
+ 0x07, 0x09, 0x0e, 0x06, 0x05, 0x04, 0x03, 0x03, 0x04, 0x05, 0xfe, 0x98,
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x69, 0x00, 0xa6, 0x05, 0xaf,
+ 0x04, 0x5e, 0x00, 0x13, 0x00, 0x1d, 0x00, 0x27, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x07, 0x23, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26,
+ 0x2f, 0x01, 0x33, 0x16, 0x17, 0x16, 0x01, 0x23, 0x3e, 0x01, 0x37, 0x21,
+ 0x35, 0x21, 0x0e, 0x01, 0x03, 0x1e, 0x01, 0x17, 0x21, 0x35, 0x21, 0x2e,
+ 0x01, 0x27, 0x05, 0xae, 0x7a, 0x4b, 0x7e, 0x42, 0x61, 0x29, 0x29, 0x90,
+ 0x22, 0x40, 0x40, 0x22, 0x90, 0x12, 0x40, 0x61, 0x41, 0x7f, 0x4b, 0xfe,
+ 0x04, 0x5e, 0x11, 0x31, 0x26, 0xfd, 0x27, 0x03, 0x82, 0x63, 0x44, 0x0c,
+ 0x0c, 0x44, 0x63, 0xfc, 0x7e, 0x02, 0xd9, 0x26, 0x31, 0x11, 0x02, 0x82,
+ 0x4f, 0x55, 0x8f, 0xa9, 0x6e, 0x6d, 0xa4, 0x27, 0x36, 0x36, 0x27, 0xa4,
+ 0x31, 0xaa, 0xa4, 0x94, 0x55, 0xfd, 0xd5, 0x3d, 0x85, 0x48, 0x64, 0x8e,
+ 0xb7, 0x03, 0x8f, 0x29, 0xb7, 0x8e, 0x64, 0x48, 0x85, 0x3d, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0xfe, 0xb2, 0x02, 0x88, 0x06, 0x26, 0x00, 0x19,
+ 0x00, 0x00, 0x01, 0x2a, 0x01, 0x27, 0x24, 0x03, 0x26, 0x00, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x27, 0x36, 0x37, 0x36, 0x15, 0x14, 0x00, 0x07, 0x06,
+ 0x05, 0x16, 0x36, 0x37, 0x02, 0x88, 0x08, 0x5e, 0x31, 0xfe, 0x74, 0x02,
+ 0x01, 0x01, 0x49, 0x04, 0x03, 0x54, 0x34, 0x29, 0x7a, 0x2d, 0xc0, 0xc8,
+ 0xfe, 0xd2, 0x07, 0x0b, 0x01, 0x00, 0x4a, 0x3e, 0x12, 0xfe, 0xb2, 0x0b,
+ 0x53, 0x01, 0x52, 0xae, 0x03, 0xf5, 0x51, 0x4f, 0x89, 0x31, 0xd8, 0x01,
+ 0x01, 0xcc, 0xa1, 0xfc, 0x4c, 0x8f, 0xdc, 0x48, 0x15, 0x01, 0x02, 0x00,
+ 0x00, 0x01, 0x00, 0x47, 0xfe, 0xb2, 0x02, 0x6d, 0x06, 0x26, 0x00, 0x19,
+ 0x00, 0x00, 0x13, 0x35, 0x1e, 0x01, 0x37, 0x24, 0x27, 0x26, 0x00, 0x35,
+ 0x34, 0x17, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x06, 0x00, 0x07,
+ 0x02, 0x05, 0x06, 0x22, 0x47, 0x12, 0x3e, 0x4a, 0x01, 0x00, 0x0b, 0x06,
+ 0xfe, 0xd1, 0xc8, 0xc0, 0x2d, 0x7a, 0x28, 0x35, 0x54, 0x03, 0x04, 0x01,
+ 0x49, 0x01, 0x02, 0xfe, 0x74, 0x31, 0x5e, 0xfe, 0xb2, 0x8f, 0x02, 0x01,
+ 0x15, 0x48, 0xdc, 0x8f, 0x03, 0xb4, 0xa1, 0xcc, 0x01, 0x01, 0xd8, 0x31,
+ 0x89, 0x4f, 0x51, 0xfc, 0x0b, 0xae, 0xfe, 0xae, 0x53, 0x0b, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x05, 0xfe, 0x23, 0x03, 0x8a, 0x06, 0x75, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x09, 0x05, 0x21, 0x09, 0x01, 0x21,
+ 0x01, 0xc6, 0x01, 0xc3, 0xfe, 0x3d, 0xfe, 0x3f, 0x01, 0xc1, 0xfe, 0xbc,
+ 0x02, 0x8a, 0xfe, 0xba, 0x01, 0x46, 0xfd, 0x76, 0x06, 0x75, 0xfb, 0xdb,
+ 0xfb, 0xd3, 0x04, 0x2d, 0x03, 0x31, 0xfd, 0x08, 0xfc, 0x8e, 0x03, 0x00,
+ 0x00, 0x02, 0x00, 0x9e, 0xfe, 0xf2, 0x02, 0xdf, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x25, 0x21, 0x15, 0x23,
+ 0x11, 0x33, 0x15, 0x21, 0xf8, 0xb4, 0xfe, 0xf2, 0x02, 0x40, 0xd8, 0xd8,
+ 0xfd, 0xc0, 0x05, 0xb0, 0xf9, 0xa6, 0x06, 0x5a, 0x64, 0x64, 0xf9, 0xa6,
+ 0x64, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x9d, 0xfe, 0xf2, 0x02, 0xde,
+ 0x06, 0x14, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x23, 0x11, 0x33,
+ 0x13, 0x11, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35, 0x02, 0x84, 0xb4, 0xb4,
+ 0x5a, 0xfd, 0xc0, 0xd8, 0xd8, 0x05, 0xb0, 0xf9, 0xa6, 0x06, 0xbe, 0xf8,
+ 0xde, 0x64, 0x06, 0x5a, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa4,
+ 0xfe, 0xf2, 0x02, 0x3c, 0x06, 0x12, 0x00, 0x05, 0x00, 0x00, 0x1b, 0x01,
+ 0x33, 0x03, 0x13, 0x23, 0xa5, 0xfd, 0x9a, 0xfe, 0xfe, 0x9a, 0x02, 0x82,
+ 0x03, 0x90, 0xfc, 0x70, 0xfc, 0x70, 0x00, 0x00, 0x00, 0x01, 0x00, 0x93,
+ 0xfe, 0xf2, 0x02, 0x2b, 0x06, 0x12, 0x00, 0x05, 0x00, 0x00, 0x01, 0x03,
+ 0x23, 0x13, 0x03, 0x33, 0x02, 0x2a, 0xfd, 0x99, 0xfd, 0xfd, 0x99, 0x02,
+ 0x82, 0xfc, 0x70, 0x03, 0x90, 0x03, 0x90, 0x00, 0xff, 0xff, 0x00, 0xa4,
+ 0xfe, 0xf2, 0x03, 0x6e, 0x06, 0x12, 0x10, 0x26, 0x0c, 0x97, 0x00, 0x00,
+ 0x10, 0x07, 0x0c, 0x97, 0x01, 0x32, 0x00, 0x00, 0xff, 0xff, 0x00, 0x93,
+ 0xfe, 0xf2, 0x03, 0x5d, 0x06, 0x12, 0x10, 0x26, 0x0c, 0x98, 0x00, 0x00,
+ 0x10, 0x07, 0x0c, 0x98, 0x01, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51,
+ 0x00, 0x00, 0x05, 0xb9, 0x05, 0xdc, 0x00, 0x16, 0x00, 0x00, 0x09, 0x01,
+ 0x07, 0x27, 0x11, 0x23, 0x11, 0x27, 0x11, 0x23, 0x11, 0x27, 0x07, 0x11,
+ 0x23, 0x11, 0x07, 0x11, 0x23, 0x11, 0x07, 0x27, 0x01, 0x03, 0x2e, 0x02,
+ 0x8a, 0x6c, 0x52, 0x6c, 0xbe, 0x6c, 0x5f, 0x5f, 0x6c, 0xbd, 0x6c, 0x53,
+ 0x6c, 0x02, 0x8a, 0x05, 0xdc, 0xfd, 0x2c, 0x78, 0x5c, 0xfd, 0x14, 0x03,
+ 0x65, 0xd3, 0xfb, 0xc8, 0x04, 0xb0, 0x68, 0x68, 0xfb, 0x50, 0x04, 0x38,
+ 0xd3, 0xfc, 0x9b, 0x02, 0xec, 0x5c, 0x78, 0x02, 0xd4, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x50, 0xff, 0xf9, 0x05, 0xb7, 0x05, 0xd5, 0x00, 0x16,
+ 0x00, 0x00, 0x05, 0x01, 0x37, 0x17, 0x11, 0x33, 0x11, 0x17, 0x11, 0x33,
+ 0x11, 0x17, 0x37, 0x11, 0x33, 0x11, 0x37, 0x11, 0x33, 0x11, 0x37, 0x17,
+ 0x01, 0x02, 0xda, 0xfd, 0x76, 0x6c, 0x53, 0x6c, 0xbd, 0x6c, 0x5f, 0x60,
+ 0x6c, 0xbd, 0x6c, 0x52, 0x6c, 0xfd, 0x77, 0x07, 0x02, 0xd4, 0x78, 0x5c,
+ 0x02, 0xec, 0xfc, 0x9b, 0xd3, 0x04, 0x38, 0xfb, 0x50, 0x68, 0x68, 0x04,
+ 0xb0, 0xfb, 0xc8, 0xd3, 0x03, 0x65, 0xfd, 0x14, 0x5c, 0x78, 0xfd, 0x2c,
+ 0x00, 0x01, 0x00, 0x47, 0x00, 0x6c, 0x05, 0xde, 0x05, 0x44, 0x00, 0x3d,
+ 0x00, 0x00, 0x01, 0x30, 0x37, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x37, 0x17, 0x01, 0x23, 0x01, 0x37,
+ 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x02, 0x28, 0x6b, 0x39, 0x4a, 0x46, 0xab, 0x43,
+ 0x4d, 0x36, 0x3c, 0x3b, 0x1e, 0x1f, 0x3a, 0x39, 0x4a, 0x46, 0xab, 0x43,
+ 0x4d, 0x36, 0x3c, 0x1d, 0x15, 0x06, 0xd1, 0x6c, 0xfe, 0x9f, 0x51, 0xfe,
+ 0x9d, 0x6c, 0xd2, 0x07, 0x20, 0x2c, 0x50, 0x4b, 0x69, 0x5c, 0x78, 0x73,
+ 0x61, 0x66, 0x4e, 0x52, 0x2a, 0x29, 0x29, 0x2a, 0x52, 0x4a, 0x6a, 0x5c,
+ 0x78, 0x73, 0x61, 0x60, 0x01, 0x21, 0x78, 0x3f, 0x23, 0x21, 0x21, 0x27,
+ 0x3b, 0x42, 0xa2, 0x5d, 0x59, 0x51, 0x53, 0x40, 0x3f, 0x23, 0x21, 0x21,
+ 0x27, 0x3b, 0x42, 0x51, 0x39, 0x3f, 0xea, 0x78, 0xfe, 0x76, 0x01, 0x8a,
+ 0x78, 0xe9, 0x60, 0x58, 0x71, 0x59, 0x53, 0x34, 0x2e, 0x2e, 0x30, 0x57,
+ 0x59, 0x71, 0x70, 0x7b, 0x7f, 0x70, 0x71, 0x59, 0x53, 0x34, 0x2e, 0x2e,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x47, 0x00, 0x7c, 0x05, 0xde,
+ 0x05, 0x54, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x37,
+ 0x17, 0x01, 0x23, 0x01, 0x37, 0x17, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x32, 0x37, 0x36, 0x37, 0x03, 0xfd, 0x55, 0x5f, 0x62,
+ 0x73, 0x78, 0x5c, 0x69, 0x4b, 0x50, 0x2c, 0x29, 0x29, 0x2c, 0x50, 0x4f,
+ 0x65, 0x61, 0x73, 0x78, 0x5d, 0x68, 0x4c, 0x50, 0x2b, 0x20, 0x08, 0xd1,
+ 0x6c, 0xfe, 0x9e, 0x51, 0xfe, 0x9f, 0x6c, 0xd1, 0x07, 0x14, 0x1e, 0x3b,
+ 0x36, 0x4e, 0x42, 0xac, 0x46, 0x4a, 0x39, 0x3a, 0x1f, 0x1e, 0x3c, 0x3b,
+ 0x36, 0x4d, 0x43, 0xab, 0x46, 0x4a, 0x3a, 0x01, 0x31, 0x5a, 0x2d, 0x2e,
+ 0x2e, 0x34, 0x53, 0x59, 0x71, 0x70, 0x7f, 0x7b, 0x70, 0x71, 0x59, 0x57,
+ 0x30, 0x2e, 0x2e, 0x34, 0x53, 0x59, 0x71, 0x58, 0x60, 0xe9, 0x78, 0xfe,
+ 0x76, 0x01, 0x8a, 0x78, 0xea, 0x3f, 0x39, 0x51, 0x42, 0x3b, 0x27, 0x21,
+ 0x21, 0x23, 0x3f, 0x40, 0x53, 0x51, 0x59, 0x5d, 0xa2, 0x42, 0x3b, 0x27,
+ 0x21, 0x21, 0x23, 0x3f, 0x00, 0x03, 0x00, 0x69, 0xff, 0xe3, 0x07, 0xfb,
+ 0x05, 0x24, 0x00, 0x25, 0x00, 0x39, 0x00, 0x4d, 0x00, 0x00, 0x01, 0x15,
+ 0x01, 0x27, 0x37, 0x21, 0x06, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x23, 0x35, 0x33, 0x36, 0x37, 0x36, 0x37,
+ 0x3e, 0x01, 0x32, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x21, 0x27, 0x37,
+ 0x24, 0x22, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x11, 0x33,
+ 0x11, 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x01, 0x21, 0x11, 0x23,
+ 0x11, 0x21, 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x32, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x07, 0xfb, 0xfe, 0x9e, 0x6c, 0xd2, 0xfe, 0xc3,
+ 0x0a, 0x1d, 0x2d, 0x59, 0x58, 0xd6, 0xf8, 0xd7, 0x58, 0x59, 0x2c, 0x1e,
+ 0x0a, 0xaa, 0xaa, 0x09, 0x1f, 0x2c, 0x59, 0x58, 0xd7, 0xf8, 0xd6, 0x58,
+ 0x59, 0x2d, 0x1e, 0x09, 0x01, 0x3d, 0xd2, 0x6c, 0xfd, 0x32, 0xc1, 0x53,
+ 0x53, 0x44, 0x46, 0x22, 0x15, 0x08, 0x01, 0x83, 0x99, 0x01, 0x83, 0x08,
+ 0x14, 0x23, 0x45, 0x44, 0x53, 0x01, 0x1b, 0xfe, 0x7d, 0x99, 0xfe, 0x7d,
+ 0x09, 0x14, 0x22, 0x46, 0x44, 0x53, 0x53, 0xc1, 0x54, 0x53, 0x44, 0x45,
+ 0x23, 0x13, 0x02, 0xaf, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0x5a, 0x51, 0x76,
+ 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x76, 0x51, 0x5a, 0xaa, 0x5b, 0x52,
+ 0x77, 0x63, 0x62, 0x64, 0x64, 0x62, 0x63, 0x77, 0x52, 0x5b, 0xe9, 0x78,
+ 0x56, 0x27, 0x27, 0x4c, 0x4d, 0x5c, 0x37, 0x3d, 0x01, 0x65, 0xfe, 0x9b,
+ 0x3d, 0x37, 0x5c, 0x4d, 0x4c, 0x27, 0xfd, 0xc6, 0xfe, 0x9b, 0x01, 0x65,
+ 0x3b, 0x36, 0x5c, 0x4d, 0x4c, 0x27, 0x27, 0x27, 0x27, 0x4c, 0x4d, 0x5c,
+ 0x36, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x09, 0xea,
+ 0x04, 0x38, 0x00, 0x09, 0x00, 0x00, 0x13, 0x35, 0x01, 0x17, 0x07, 0x21,
+ 0x15, 0x21, 0x17, 0x07, 0x5a, 0x01, 0x62, 0x6c, 0xd2, 0x08, 0x93, 0xf7,
+ 0x6d, 0xd2, 0x6c, 0x02, 0x55, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0xaa, 0xe9,
+ 0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x09, 0xf9,
+ 0x04, 0x38, 0x00, 0x09, 0x00, 0x00, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21,
+ 0x35, 0x21, 0x27, 0x37, 0x09, 0xf8, 0xfe, 0x9f, 0x6c, 0xd1, 0xf7, 0x6d,
+ 0x08, 0x93, 0xd1, 0x6c, 0x02, 0xaf, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xaa,
+ 0xe9, 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x09, 0xf9,
+ 0x04, 0x38, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x35, 0x01, 0x17, 0x07, 0x21,
+ 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x17, 0x07, 0x5a, 0x01,
+ 0x62, 0x6c, 0xd2, 0x07, 0xa6, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c,
+ 0xd1, 0xf8, 0x5a, 0xd2, 0x6c, 0x02, 0x55, 0x5a, 0x01, 0x89, 0x78, 0xe9,
+ 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0xe9, 0x78, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x09, 0xea, 0x04, 0x38, 0x00, 0x0e,
+ 0x00, 0x00, 0x01, 0x21, 0x15, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17,
+ 0x07, 0x21, 0x15, 0x21, 0x07, 0x01, 0x68, 0x08, 0x81, 0xf7, 0xeb, 0x54,
+ 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x54, 0x08, 0x15, 0xf7, 0x7f, 0x5e,
+ 0x02, 0x19, 0x78, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0x5d,
+ 0x78, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x09, 0xf9,
+ 0x04, 0x38, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x37, 0x27, 0x21, 0x35, 0x21,
+ 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x35, 0x08, 0xea, 0x5f,
+ 0x5f, 0xf7, 0x7f, 0x08, 0x15, 0x53, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c,
+ 0x53, 0xf7, 0xeb, 0x02, 0x19, 0x69, 0x69, 0x78, 0x5d, 0x78, 0xfe, 0x77,
+ 0x5a, 0xfe, 0x77, 0x78, 0x5d, 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0x00, 0xcc, 0x09, 0xf9, 0x04, 0x38, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00,
+ 0x01, 0x21, 0x37, 0x27, 0x21, 0x07, 0x05, 0x21, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x01, 0x68,
+ 0x07, 0x82, 0x5f, 0x5f, 0xf8, 0x7e, 0x5e, 0x07, 0x74, 0xf9, 0x56, 0x54,
+ 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x54, 0x06, 0xaa, 0x53, 0x6c, 0x01,
+ 0x61, 0xfe, 0x9f, 0x6c, 0x02, 0x19, 0x69, 0x69, 0x69, 0xe1, 0x5d, 0x78,
+ 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0x5d, 0x5d, 0x78, 0xfe, 0x77, 0x5a,
+ 0xfe, 0x77, 0x78, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0xcc, 0x09, 0xea,
+ 0x04, 0x38, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, 0x17, 0x07, 0x01, 0x35,
+ 0x01, 0x17, 0x07, 0x21, 0x11, 0x33, 0x11, 0x23, 0x09, 0x50, 0xf8, 0x06,
+ 0xd2, 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0xd2, 0x07, 0xfa, 0x99, 0x99,
+ 0x02, 0x2d, 0xe9, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0xe9, 0x01,
+ 0x59, 0xfc, 0xa4, 0x00, 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x09, 0xf9,
+ 0x04, 0x38, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11,
+ 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x01, 0x02, 0x99, 0x99,
+ 0x07, 0xfa, 0xd1, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0xd1, 0x02, 0x2d,
+ 0xfe, 0xa7, 0x03, 0x5c, 0xfe, 0xa7, 0xe9, 0x78, 0xfe, 0x77, 0x5a, 0xfe,
+ 0x77, 0x78, 0xe9, 0x00, 0x00, 0x02, 0x00, 0x5a, 0x00, 0xcc, 0x09, 0xea,
+ 0x04, 0x38, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00, 0x01, 0x21, 0x17, 0x07,
+ 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x35,
+ 0x21, 0x07, 0x17, 0x09, 0x50, 0xf8, 0x84, 0x54, 0x6c, 0xfe, 0x9e, 0x01,
+ 0x62, 0x6c, 0x54, 0x07, 0x7c, 0x99, 0x99, 0xf8, 0x18, 0x5e, 0x5e, 0x01,
+ 0xa1, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89, 0x78, 0x5d, 0xcd, 0xfc,
+ 0xa4, 0x01, 0x45, 0xd2, 0x69, 0x69, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0x00, 0xcc, 0x09, 0xf9, 0x04, 0x38, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00,
+ 0x01, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27, 0x37, 0x21, 0x15, 0x23,
+ 0x11, 0x33, 0x11, 0x15, 0x21, 0x37, 0x27, 0x01, 0x02, 0x07, 0x7c, 0x53,
+ 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0x53, 0xf8, 0x84, 0x99, 0x99, 0x07,
+ 0xe8, 0x5f, 0x5f, 0x03, 0x63, 0x5d, 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77,
+ 0x78, 0x5d, 0xcd, 0x03, 0x5c, 0xfe, 0xbb, 0xd2, 0x69, 0x69, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0x00, 0xcc, 0x09, 0xf9, 0x04, 0x38, 0x00, 0x25,
+ 0x00, 0x00, 0x13, 0x17, 0x37, 0x17, 0x37, 0x17, 0x37, 0x17, 0x37, 0x17,
+ 0x37, 0x17, 0x37, 0x17, 0x37, 0x33, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27,
+ 0x37, 0x23, 0x07, 0x27, 0x07, 0x27, 0x07, 0x27, 0x07, 0x27, 0x07, 0x27,
+ 0x07, 0x27, 0x07, 0x27, 0x69, 0x3f, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
+ 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0x3f, 0x7d, 0xd1, 0x6c, 0x01, 0x61,
+ 0xfe, 0x9f, 0x6c, 0xd1, 0x59, 0x63, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2,
+ 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0x3f, 0x02, 0xd7, 0x46, 0xb4, 0xb4,
+ 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x46, 0xe9,
+ 0x78, 0xfe, 0x77, 0x5a, 0xfe, 0x77, 0x78, 0xe9, 0x6e, 0xb4, 0xb4, 0xb4,
+ 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x46, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x05, 0x14, 0x02, 0x1c, 0x06, 0x40, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x02, 0xdd, 0x02, 0x1c, 0x04, 0x09, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x02, 0x1c,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x02, 0x1c, 0x01, 0xd3, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x02, 0x1c,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x02, 0x1c, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x02, 0x1c, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0x05, 0x14, 0x04, 0x38, 0x06, 0x40, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x05, 0x14, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a, 0x02, 0xdd, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a,
+ 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x02, 0xdd, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a, 0x00, 0xa7, 0x04, 0x38,
+ 0x01, 0xd3, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a, 0x00, 0xa7, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0x00, 0xa7, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x02, 0x1c, 0xff, 0x9c, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x02, 0x1c, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x02, 0x1c, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x02, 0x1c,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x02, 0x1c,
+ 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x02, 0x1c, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x02, 0x1c, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x02, 0x1c, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a,
+ 0xfe, 0x70, 0x04, 0x38, 0xff, 0x9c, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x01, 0xd3, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38,
+ 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x03, 0x2a, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0xff, 0x9c, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x01, 0xd3, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x01, 0xd3, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x04, 0x09, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x04, 0x09, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e,
+ 0xfe, 0x70, 0x04, 0x38, 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x00, 0xa7, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07, 0x11, 0x33, 0x03, 0x2a,
+ 0xfe, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x0e, 0xfe, 0x70, 0x04, 0x38,
+ 0x06, 0x40, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x01, 0x0e, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a, 0x05, 0x14, 0x10, 0x27,
+ 0x11, 0x33, 0x03, 0x2a, 0x02, 0xdd, 0x10, 0x27, 0x11, 0x33, 0x03, 0x2a,
+ 0x00, 0xa7, 0x10, 0x27, 0x11, 0x33, 0x01, 0x0e, 0xfe, 0x70, 0x10, 0x07,
+ 0x11, 0x33, 0x03, 0x2a, 0xfe, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0x00, 0xcc, 0x05, 0xa0, 0x04, 0x38, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00,
+ 0x01, 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x35, 0x33,
+ 0x11, 0x23, 0x11, 0x35, 0x21, 0x07, 0x17, 0x05, 0x06, 0xfc, 0xce, 0x54,
+ 0x6c, 0xfe, 0x9e, 0x01, 0x62, 0x6c, 0x54, 0x03, 0x32, 0x99, 0x99, 0xfc,
+ 0x62, 0x5e, 0x5e, 0x01, 0xa1, 0x5d, 0x78, 0x01, 0x89, 0x5a, 0x01, 0x89,
+ 0x78, 0x5d, 0xcd, 0xfc, 0xa4, 0x01, 0x45, 0xd2, 0x69, 0x69, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x69, 0x00, 0xcc, 0x05, 0xaf, 0x04, 0x38, 0x00, 0x0d,
+ 0x00, 0x12, 0x00, 0x00, 0x01, 0x21, 0x27, 0x37, 0x01, 0x15, 0x01, 0x27,
+ 0x37, 0x21, 0x15, 0x23, 0x11, 0x33, 0x11, 0x15, 0x21, 0x37, 0x27, 0x01,
+ 0x02, 0x03, 0x32, 0x53, 0x6c, 0x01, 0x61, 0xfe, 0x9f, 0x6c, 0x53, 0xfc,
+ 0xce, 0x99, 0x99, 0x03, 0x9e, 0x5f, 0x5f, 0x03, 0x63, 0x5d, 0x78, 0xfe,
+ 0x77, 0x5a, 0xfe, 0x77, 0x78, 0x5d, 0xcd, 0x03, 0x5c, 0xfe, 0xbb, 0xd2,
+ 0x69, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0xe6, 0x00, 0x00, 0x05, 0x22,
+ 0x05, 0xdc, 0x00, 0x11, 0x00, 0x00, 0x13, 0x01, 0x33, 0x01, 0x07, 0x27,
+ 0x11, 0x23, 0x11, 0x27, 0x11, 0x23, 0x11, 0x07, 0x11, 0x23, 0x11, 0x07,
+ 0xe6, 0x01, 0xf6, 0x51, 0x01, 0xf5, 0x6c, 0x53, 0x6c, 0xbd, 0x6c, 0xbd,
+ 0x6c, 0x53, 0x03, 0xae, 0x02, 0x2e, 0xfd, 0xd2, 0x78, 0x5c, 0xfc, 0x6e,
+ 0x04, 0x0a, 0xd3, 0xfb, 0x23, 0x04, 0xdd, 0xd3, 0xfb, 0xf6, 0x03, 0x92,
+ 0x5c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xe6, 0xff, 0xf9, 0x05, 0x22,
+ 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, 0x13, 0x37, 0x17, 0x11, 0x33, 0x11,
+ 0x17, 0x11, 0x33, 0x11, 0x37, 0x11, 0x33, 0x11, 0x37, 0x17, 0x01, 0x23,
+ 0xe6, 0x6c, 0x53, 0x6c, 0xbd, 0x6c, 0xbd, 0x6c, 0x53, 0x6c, 0xfe, 0x0b,
+ 0x51, 0x02, 0x27, 0x78, 0x5c, 0x03, 0x92, 0xfb, 0xf6, 0xd3, 0x04, 0xdd,
+ 0xfb, 0x23, 0xd3, 0x04, 0x0a, 0xfc, 0x6e, 0x5c, 0x78, 0xfd, 0xd2, 0x00,
+ 0x00, 0x02, 0x00, 0x47, 0x00, 0x80, 0x04, 0xa4, 0x06, 0xb5, 0x00, 0x1e,
+ 0x00, 0x3d, 0x00, 0x00, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x10, 0x37, 0x36, 0x37, 0x36, 0x37, 0x01, 0x17, 0x07, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x10, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x03,
+ 0x30, 0x17, 0x07, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x14, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x34,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x02, 0x77, 0x72, 0x65, 0x60, 0x56,
+ 0x4d, 0x2d, 0x29, 0x29, 0x2d, 0x4d, 0x58, 0x67, 0x01, 0x61, 0x6c, 0xd1,
+ 0x56, 0x4f, 0x61, 0x55, 0x4e, 0x2c, 0x29, 0x29, 0x2c, 0x4e, 0x55, 0x61,
+ 0x64, 0x42, 0xd2, 0x6c, 0xfe, 0xda, 0x50, 0x3e, 0x39, 0x1f, 0x1e, 0x1e,
+ 0x23, 0x35, 0x3b, 0x92, 0x54, 0x50, 0x49, 0x4b, 0x39, 0x39, 0x1f, 0x1e,
+ 0x1e, 0x23, 0x35, 0x3b, 0x49, 0x34, 0x80, 0x2e, 0x2d, 0x5c, 0x5a, 0x6e,
+ 0x6c, 0x01, 0x00, 0x6c, 0x6e, 0x5a, 0x5f, 0x2e, 0x01, 0x89, 0x78, 0xe9,
+ 0x08, 0x24, 0x2d, 0x5c, 0x5a, 0x6e, 0x6c, 0xff, 0x00, 0x6c, 0x6e, 0x5a,
+ 0x5c, 0x2d, 0x2e, 0x04, 0x29, 0xe8, 0x78, 0x01, 0x46, 0x21, 0x46, 0x40,
+ 0x52, 0x4e, 0xbe, 0x4a, 0x56, 0x3c, 0x42, 0x42, 0x21, 0x23, 0x40, 0x40,
+ 0x52, 0x4e, 0xbe, 0x4a, 0x56, 0x3c, 0x42, 0x21, 0x17, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x47, 0x00, 0x80, 0x04, 0xa4, 0x06, 0xb5, 0x00, 0x1e,
+ 0x00, 0x3c, 0x00, 0x00, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26,
+ 0x10, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x27, 0x37, 0x01, 0x16,
+ 0x17, 0x16, 0x17, 0x16, 0x10, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x03,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x14, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x36, 0x37, 0x36, 0x37, 0x36, 0x34, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x01, 0x27, 0x02, 0x73, 0x6e, 0x65, 0x60, 0x56, 0x4d,
+ 0x2d, 0x29, 0x29, 0x2d, 0x4d, 0x56, 0x60, 0x4f, 0x57, 0xd2, 0x6c, 0x01,
+ 0x61, 0x67, 0x58, 0x4e, 0x2c, 0x29, 0x29, 0x2c, 0x4e, 0x55, 0x61, 0x64,
+ 0xa0, 0x38, 0x34, 0x49, 0x3b, 0x35, 0x23, 0x1e, 0x1e, 0x1f, 0x39, 0x3a,
+ 0x4a, 0x49, 0x50, 0x54, 0x92, 0x3b, 0x35, 0x23, 0x1e, 0x1e, 0x1f, 0x39,
+ 0x3e, 0x4f, 0xfe, 0xd9, 0x6c, 0x80, 0x2e, 0x2d, 0x5c, 0x5a, 0x6e, 0x6c,
+ 0x01, 0x00, 0x6c, 0x6e, 0x5a, 0x5c, 0x2d, 0x24, 0x08, 0xe9, 0x78, 0xfe,
+ 0x77, 0x2e, 0x5f, 0x5a, 0x6e, 0x6c, 0xff, 0x00, 0x6c, 0x6e, 0x5a, 0x5c,
+ 0x2d, 0x2e, 0x04, 0x29, 0x07, 0x17, 0x21, 0x42, 0x3c, 0x56, 0x4a, 0xbe,
+ 0x4e, 0x52, 0x40, 0x40, 0x23, 0x21, 0x42, 0x42, 0x3c, 0x56, 0x4a, 0xbe,
+ 0x4e, 0x52, 0x40, 0x46, 0x21, 0xfe, 0xba, 0x78, 0x00, 0x02, 0x00, 0xe6,
+ 0xfe, 0xb2, 0x04, 0x63, 0x06, 0x14, 0x00, 0x10, 0x00, 0x2e, 0x00, 0x00,
+ 0x01, 0x15, 0x14, 0x16, 0x17, 0x26, 0x35, 0x11, 0x34, 0x37, 0x0e, 0x01,
+ 0x1d, 0x01, 0x10, 0x07, 0x16, 0x01, 0x15, 0x23, 0x22, 0x06, 0x15, 0x11,
+ 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x3d, 0x01, 0x34, 0x26,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x34, 0x36, 0x33, 0x02,
+ 0x59, 0x44, 0x9e, 0x2d, 0x2b, 0x9e, 0x42, 0x9b, 0x9b, 0x02, 0x09, 0x2f,
+ 0x7e, 0x4d, 0x4d, 0x7e, 0x2f, 0xec, 0xe0, 0x97, 0x61, 0x80, 0x38, 0x38,
+ 0x80, 0x61, 0x97, 0xe0, 0x01, 0x12, 0xef, 0x98, 0x6d, 0x07, 0x47, 0x9d,
+ 0x04, 0xd0, 0xa1, 0x42, 0x07, 0x6b, 0x98, 0xf0, 0xfe, 0xee, 0x3e, 0x44,
+ 0x03, 0xf4, 0x64, 0x57, 0x8e, 0xfb, 0x30, 0x8d, 0x58, 0x64, 0x94, 0xdd,
+ 0xef, 0x97, 0x74, 0x8f, 0x73, 0x95, 0xf0, 0xdd, 0x93, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xe6, 0xfe, 0xb2, 0x04, 0x63, 0x06, 0x14, 0x00, 0x10,
+ 0x00, 0x2e, 0x00, 0x00, 0x01, 0x10, 0x37, 0x26, 0x11, 0x35, 0x34, 0x26,
+ 0x27, 0x16, 0x15, 0x11, 0x14, 0x07, 0x3e, 0x01, 0x35, 0x01, 0x33, 0x32,
+ 0x16, 0x1d, 0x01, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d,
+ 0x01, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x11, 0x34,
+ 0x26, 0x2b, 0x01, 0x02, 0xf0, 0x9b, 0x9b, 0x42, 0x9f, 0x2c, 0x2d, 0x9e,
+ 0x44, 0xfd, 0xf6, 0xed, 0xe0, 0x97, 0x61, 0x7f, 0x38, 0x38, 0x7f, 0x61,
+ 0x97, 0xe0, 0xed, 0x30, 0x7e, 0x4d, 0x4d, 0x7e, 0x30, 0x01, 0x12, 0x01,
+ 0x0e, 0x44, 0x3e, 0x01, 0x12, 0xf0, 0x98, 0x6b, 0x07, 0x42, 0xa1, 0xfb,
+ 0x30, 0x9d, 0x47, 0x07, 0x6d, 0x98, 0x05, 0xf1, 0x93, 0xdd, 0xf0, 0x95,
+ 0x73, 0x8f, 0x74, 0x97, 0xef, 0xdd, 0x94, 0x64, 0x58, 0x8d, 0x04, 0xd0,
+ 0x8e, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3, 0xfe, 0x32, 0x05, 0x46,
+ 0x05, 0xf9, 0x00, 0x02, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x00,
+ 0x05, 0x11, 0x09, 0x02, 0x35, 0x01, 0x05, 0x09, 0x01, 0x03, 0x11, 0x01,
+ 0x15, 0x04, 0xac, 0xfd, 0x00, 0x03, 0x99, 0xfb, 0x7e, 0x04, 0x82, 0xfc,
+ 0x17, 0x03, 0x01, 0xfc, 0xff, 0x99, 0x04, 0x82, 0xcc, 0x02, 0x64, 0xfe,
+ 0xce, 0xfd, 0xcc, 0x01, 0xe1, 0xa6, 0x01, 0xe1, 0x07, 0x01, 0x32, 0x01,
+ 0x32, 0xfc, 0x9a, 0x04, 0x68, 0xfe, 0x1f, 0xa6, 0x00, 0x03, 0x00, 0xc3,
+ 0x00, 0x1e, 0x06, 0x70, 0x04, 0xe6, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0a,
+ 0x00, 0x00, 0x25, 0x23, 0x11, 0x33, 0x01, 0x11, 0x09, 0x02, 0x35, 0x01,
+ 0x06, 0x70, 0x99, 0x99, 0xfe, 0x3c, 0xfc, 0xf8, 0x03, 0xa1, 0xfb, 0x7e,
+ 0x04, 0x82, 0x1e, 0x04, 0xc8, 0xfc, 0x3a, 0x02, 0xc4, 0xfe, 0x9e, 0xfd,
+ 0x9c, 0x02, 0x11, 0xa6, 0x02, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0x00, 0x1e, 0x06, 0x70, 0x04, 0xe6, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0a,
+ 0x00, 0x00, 0x37, 0x11, 0x33, 0x11, 0x09, 0x02, 0x03, 0x11, 0x01, 0x15,
+ 0xc3, 0x99, 0x01, 0x2b, 0x03, 0x08, 0xfc, 0xf8, 0x99, 0x04, 0x82, 0x1e,
+ 0x04, 0xc8, 0xfb, 0x38, 0x01, 0x02, 0x01, 0x62, 0x01, 0x62, 0xfc, 0x3a,
+ 0x04, 0xc8, 0xfd, 0xef, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00,
+ 0x17, 0x11, 0x09, 0x01, 0x11, 0x01, 0x37, 0x01, 0x11, 0xc3, 0x02, 0xd7,
+ 0x02, 0xd6, 0xfd, 0x2a, 0x8b, 0x01, 0xb2, 0x3e, 0x05, 0x80, 0xfd, 0xb0,
+ 0x02, 0x50, 0xfa, 0x80, 0x02, 0x4e, 0x71, 0xfe, 0xa2, 0x02, 0xc6, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x05,
+ 0x00, 0x08, 0x00, 0x00, 0x17, 0x11, 0x09, 0x01, 0x11, 0x01, 0x27, 0x01,
+ 0x11, 0xc3, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0x2a, 0x8c, 0xfe, 0x4e, 0x3e,
+ 0x05, 0x80, 0xfd, 0xb0, 0x02, 0x50, 0xfa, 0x80, 0x02, 0x4e, 0x71, 0x01,
+ 0x5e, 0xfd, 0x44, 0x00, 0x00, 0x01, 0x00, 0xc3, 0xff, 0xc2, 0x06, 0x70,
+ 0x05, 0x42, 0x00, 0x05, 0x00, 0x00, 0x17, 0x11, 0x09, 0x01, 0x11, 0x01,
+ 0xc3, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0x2a, 0x3e, 0x05, 0x80, 0xfd, 0xb0,
+ 0x02, 0x50, 0xfa, 0x80, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc3,
+ 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x08, 0x00, 0x00, 0x25, 0x15,
+ 0x09, 0x01, 0x11, 0x09, 0x01, 0x15, 0x01, 0x06, 0x70, 0xfd, 0x2a, 0xfd,
+ 0x29, 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0xb5, 0xa2, 0xe0, 0x02, 0x4e, 0xfd,
+ 0xb2, 0x05, 0x80, 0xfd, 0xb0, 0x02, 0x50, 0xdd, 0xfe, 0x1c, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0xff, 0xc2, 0x06, 0x70, 0x05, 0x42, 0x00, 0x08,
+ 0x00, 0x00, 0x13, 0x35, 0x09, 0x01, 0x11, 0x09, 0x01, 0x35, 0x01, 0xc3,
+ 0x02, 0xd7, 0x02, 0xd6, 0xfd, 0x2a, 0xfd, 0x29, 0x02, 0x4b, 0x04, 0x62,
+ 0xe0, 0xfd, 0xb2, 0x02, 0x4e, 0xfa, 0x80, 0x02, 0x50, 0xfd, 0xb0, 0xdd,
+ 0x01, 0xe4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0xfe, 0x23, 0x03, 0x8a,
+ 0x06, 0x75, 0x00, 0x03, 0x00, 0x00, 0x09, 0x03, 0x01, 0xc7, 0x01, 0xc2,
+ 0xfe, 0x3e, 0xfe, 0x3e, 0x06, 0x75, 0xfb, 0xdb, 0xfb, 0xd3, 0x04, 0x2d,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46, 0x05, 0x04, 0x00, 0x13,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x01, 0xd8,
+ 0x97, 0x01, 0x2b, 0x97, 0x01, 0x14, 0xfe, 0xec, 0x97, 0xfe, 0xd5, 0x97,
+ 0xfe, 0xeb, 0x02, 0xd7, 0x02, 0x2d, 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3,
+ 0xaa, 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3, 0x02, 0x2d, 0xaa, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc3, 0x00, 0x00, 0x05, 0x46, 0x05, 0x04, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11,
+ 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x01, 0x7e, 0x97, 0xa4, 0x97, 0xa4,
+ 0x97, 0xba, 0xba, 0x97, 0xa4, 0x97, 0xa4, 0x97, 0xbb, 0x02, 0xd7, 0x02,
+ 0x2d, 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3, 0xaa,
+ 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3, 0x02, 0x2d, 0xfd, 0xd3, 0x02, 0x2d,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x34, 0xfe, 0x6b, 0x06, 0xff,
+ 0x05, 0xfb, 0x00, 0x03, 0x00, 0x1d, 0x00, 0x37, 0x00, 0x00, 0x01, 0x21,
+ 0x11, 0x21, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12,
+ 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34,
+ 0x02, 0x27, 0x26, 0x27, 0x24, 0x20, 0x04, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x04, 0x20, 0x24, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x11, 0x01, 0x11, 0xfe, 0xef,
+ 0x01, 0x19, 0xfe, 0xe0, 0x7e, 0x7c, 0x66, 0x69, 0x66, 0x66, 0x69, 0x66,
+ 0x7c, 0x7e, 0x01, 0x20, 0x7e, 0x7b, 0x67, 0x68, 0x66, 0x66, 0x68, 0x67,
+ 0x7b, 0xfe, 0x3e, 0x01, 0x67, 0x01, 0x33, 0x80, 0x80, 0x40, 0x3f, 0x3f,
+ 0x40, 0x80, 0x80, 0xfe, 0xcd, 0xfe, 0x99, 0xfe, 0xcd, 0x80, 0x80, 0x40,
+ 0x3f, 0x3f, 0x40, 0x80, 0x80, 0x02, 0xe8, 0xfe, 0x92, 0x03, 0xc8, 0x3b,
+ 0x3a, 0x72, 0x73, 0xfe, 0xec, 0xa3, 0x9f, 0xfe, 0xec, 0x73, 0x72, 0x3a,
+ 0x3b, 0x3b, 0x3a, 0x72, 0x73, 0x01, 0x14, 0x9f, 0xa3, 0x01, 0x14, 0x73,
+ 0x72, 0x3a, 0xf4, 0x90, 0x8d, 0x8e, 0xac, 0xaa, 0xc9, 0xc5, 0xac, 0xaa,
+ 0x8e, 0x8d, 0x90, 0x90, 0x8d, 0x8e, 0xaa, 0xac, 0xc5, 0xc9, 0xaa, 0xac,
+ 0x8e, 0x8d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x34, 0xfe, 0x6b, 0x06, 0xff,
+ 0x05, 0xfb, 0x00, 0x19, 0x00, 0x33, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x20,
+ 0x07, 0x06, 0x07, 0x06, 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27,
+ 0x24, 0x20, 0x04, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x04, 0x20, 0x24, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x05, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x04, 0x2a, 0xfe, 0xe0, 0x7e, 0x7c, 0x66, 0x69, 0x66, 0x66,
+ 0x69, 0x66, 0x7c, 0x7e, 0x01, 0x20, 0x7e, 0x7b, 0x67, 0x68, 0x66, 0x66,
+ 0x68, 0x67, 0x7b, 0xfe, 0x3e, 0x01, 0x67, 0x01, 0x33, 0x80, 0x80, 0x40,
+ 0x3f, 0x3f, 0x40, 0x80, 0x80, 0xfe, 0xcd, 0xfe, 0x99, 0xfe, 0xcd, 0x80,
+ 0x80, 0x40, 0x3f, 0x3f, 0x40, 0x80, 0x73, 0x02, 0x3f, 0x02, 0x4c, 0xfd,
+ 0xb4, 0x97, 0xfd, 0xb4, 0x02, 0x4c, 0x05, 0x42, 0x3b, 0x3a, 0x72, 0x73,
+ 0xfe, 0xec, 0xa3, 0x9f, 0xfe, 0xec, 0x73, 0x72, 0x3a, 0x3b, 0x3b, 0x3a,
+ 0x72, 0x73, 0x01, 0x14, 0x9f, 0xa3, 0x01, 0x14, 0x73, 0x72, 0x3a, 0xf4,
+ 0x90, 0x8d, 0x8e, 0xac, 0xaa, 0xc9, 0xc5, 0xac, 0xaa, 0x8e, 0x8d, 0x90,
+ 0x90, 0x8d, 0x8e, 0xaa, 0xac, 0xc5, 0xc9, 0xaa, 0xac, 0x8e, 0x80, 0x4b,
+ 0xfd, 0x73, 0xaa, 0xfd, 0x73, 0x02, 0x8d, 0xaa, 0x02, 0x8d, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x34, 0xfe, 0x6b, 0x06, 0xff, 0x05, 0xfb, 0x00, 0x19,
+ 0x00, 0x33, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x07, 0x06, 0x07, 0x06,
+ 0x02, 0x15, 0x14, 0x12, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x12, 0x35, 0x34, 0x02, 0x27, 0x26, 0x27, 0x24, 0x20, 0x04, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x04, 0x20, 0x24,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x17, 0x09,
+ 0x01, 0x17, 0x09, 0x01, 0x07, 0x09, 0x01, 0x27, 0x09, 0x01, 0x04, 0x2a,
+ 0xfe, 0xe0, 0x7e, 0x7c, 0x66, 0x69, 0x66, 0x66, 0x69, 0x66, 0x7c, 0x7e,
+ 0x01, 0x20, 0x7e, 0x7b, 0x67, 0x68, 0x66, 0x66, 0x68, 0x67, 0x7b, 0xfe,
+ 0x3e, 0x01, 0x67, 0x01, 0x33, 0x80, 0x80, 0x40, 0x3f, 0x3f, 0x40, 0x80,
+ 0x80, 0xfe, 0xcd, 0xfe, 0x99, 0xfe, 0xcd, 0x80, 0x80, 0x40, 0x3f, 0x3f,
+ 0x40, 0x80, 0x73, 0x53, 0x01, 0xa0, 0x01, 0xa0, 0x6c, 0xfe, 0x60, 0x01,
+ 0xa0, 0x6b, 0xfe, 0x60, 0xfe, 0x61, 0x6d, 0x01, 0xa0, 0xfe, 0x60, 0x05,
+ 0x42, 0x3b, 0x3a, 0x72, 0x73, 0xfe, 0xec, 0xa3, 0x9f, 0xfe, 0xec, 0x73,
+ 0x72, 0x3a, 0x3b, 0x3b, 0x3a, 0x72, 0x73, 0x01, 0x14, 0x9f, 0xa3, 0x01,
+ 0x14, 0x73, 0x72, 0x3a, 0xf4, 0x90, 0x8d, 0x8e, 0xac, 0xaa, 0xc9, 0xc5,
+ 0xac, 0xaa, 0x8e, 0x8d, 0x90, 0x90, 0x8d, 0x8e, 0xaa, 0xac, 0xc5, 0xc9,
+ 0xaa, 0xac, 0x8e, 0x80, 0xe8, 0xfe, 0x33, 0x01, 0xcd, 0x78, 0xfe, 0x32,
+ 0xfe, 0x33, 0x77, 0x01, 0xcd, 0xfe, 0x33, 0x78, 0x01, 0xce, 0x01, 0xcd,
+ 0xff, 0xff, 0x00, 0x69, 0xfe, 0x4d, 0x09, 0x22, 0x06, 0x0e, 0x10, 0x27,
+ 0x09, 0x07, 0x05, 0xca, 0x00, 0x00, 0x10, 0x26, 0x09, 0x07, 0x00, 0x00,
+ 0x10, 0x27, 0x09, 0x07, 0x01, 0xee, 0x00, 0x00, 0x10, 0x07, 0x09, 0x07,
+ 0x03, 0xdc, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x1d, 0x00, 0x00, 0x17, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x23, 0x35, 0x33, 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x07, 0x26, 0x23,
+ 0x22, 0x07, 0x03, 0x33, 0x15, 0x23, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27,
+ 0xee, 0x10, 0x35, 0x3e, 0x07, 0x1d, 0xf7, 0xfe, 0x17, 0x07, 0x8f, 0x89,
+ 0x73, 0x12, 0x85, 0x0f, 0x36, 0x3e, 0x07, 0x16, 0xf7, 0xfe, 0x1d, 0x08,
+ 0x8f, 0x89, 0x73, 0x12, 0x9b, 0x82, 0xaf, 0x02, 0x9a, 0xaa, 0x02, 0x0c,
+ 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf, 0xfe, 0x0d, 0xaa, 0xfd, 0x4d,
+ 0xa5, 0x87, 0x7a, 0x8f, 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x25, 0x00, 0x00, 0x17, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x23, 0x35, 0x33, 0x37, 0x21, 0x35, 0x21, 0x13, 0x3e, 0x01, 0x32, 0x16,
+ 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x33, 0x15, 0x23, 0x07, 0x21,
+ 0x15, 0x21, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0xee, 0x10, 0x35, 0x3e,
+ 0x07, 0x14, 0xee, 0xf5, 0x0b, 0xff, 0x00, 0x01, 0x07, 0x0e, 0x07, 0x8f,
+ 0x89, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0c, 0xed, 0xf5, 0x0a,
+ 0x00, 0xff, 0xfe, 0xf9, 0x14, 0x08, 0x8f, 0x89, 0x73, 0x12, 0x9b, 0x82,
+ 0xaf, 0x01, 0xce, 0xaa, 0xf0, 0xa8, 0x01, 0x40, 0xa5, 0x87, 0x7a, 0x8f,
+ 0x0f, 0x82, 0xaf, 0xfe, 0xd9, 0xa8, 0xf0, 0xaa, 0xfe, 0x19, 0xa5, 0x87,
+ 0x7a, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x07, 0x03,
+ 0x25, 0x15, 0x05, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33,
+ 0x32, 0x37, 0x13, 0x05, 0x35, 0x25, 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17,
+ 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x17, 0x01, 0x22, 0xfe, 0xd7, 0x1c,
+ 0x08, 0x8f, 0x89, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07, 0x18, 0xfe,
+ 0xde, 0x01, 0x29, 0x1c, 0x07, 0x8f, 0x89, 0x73, 0x12, 0x04, 0xf6, 0x82,
+ 0xaf, 0xfd, 0xe7, 0xb6, 0xa0, 0xba, 0xfd, 0x6d, 0xa5, 0x87, 0x7a, 0x8f,
+ 0x0f, 0x82, 0xaf, 0x02, 0x19, 0xb6, 0xa0, 0xba, 0x02, 0x93, 0xa5, 0x87,
+ 0x7a, 0x8f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x2a, 0x00, 0x33, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22,
+ 0x07, 0x03, 0x16, 0x17, 0x07, 0x26, 0x27, 0x03, 0x36, 0x37, 0x17, 0x06,
+ 0x07, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37,
+ 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x13, 0x3e, 0x01,
+ 0x32, 0x16, 0x17, 0x01, 0x13, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x0c, 0x89, 0x42, 0x66, 0x24, 0x48,
+ 0x14, 0x1d, 0x13, 0x38, 0x31, 0x3d, 0x0d, 0x08, 0x8f, 0x89, 0x73, 0x12,
+ 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0e, 0x54, 0x42, 0x63, 0x64, 0x4b, 0x69,
+ 0x0e, 0x07, 0x8f, 0x89, 0x73, 0x12, 0xfe, 0x34, 0x14, 0x37, 0x28, 0x40,
+ 0x43, 0x21, 0x04, 0xf6, 0x82, 0xaf, 0xfe, 0xd6, 0x29, 0x88, 0x41, 0x48,
+ 0x21, 0xfe, 0x2b, 0x06, 0x11, 0x70, 0x24, 0x09, 0xfe, 0xbe, 0xa5, 0x87,
+ 0x7a, 0x8f, 0x0f, 0x82, 0xaf, 0x01, 0x31, 0x18, 0x49, 0x6f, 0x9b, 0x9c,
+ 0x73, 0x56, 0x13, 0x01, 0x3c, 0xa4, 0x88, 0x7a, 0x8f, 0xfc, 0x45, 0x01,
+ 0xd6, 0x11, 0x2e, 0x4a, 0x67, 0x68, 0x48, 0x24, 0x00, 0x01, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0xc3, 0x06, 0x0e, 0x00, 0x32, 0x00, 0x00, 0x01, 0x26,
+ 0x23, 0x22, 0x07, 0x03, 0x36, 0x37, 0x36, 0x3d, 0x01, 0x07, 0x27, 0x37,
+ 0x33, 0x17, 0x07, 0x27, 0x15, 0x14, 0x07, 0x06, 0x07, 0x03, 0x0e, 0x01,
+ 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13, 0x26, 0x27, 0x26,
+ 0x35, 0x33, 0x14, 0x17, 0x16, 0x17, 0x13, 0x3e, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x27, 0x3a, 0x2a, 0x4e, 0x54,
+ 0x41, 0xaa, 0x31, 0xa9, 0x41, 0x53, 0x62, 0x4d, 0x62, 0x0f, 0x08, 0x90,
+ 0x88, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3d, 0x08, 0x0f, 0x52, 0x38, 0x6b,
+ 0x5c, 0x48, 0x2e, 0x27, 0x28, 0x07, 0x90, 0x88, 0x42, 0x30, 0x13, 0x04,
+ 0xf6, 0x82, 0xaf, 0xfc, 0x78, 0x10, 0x2f, 0x55, 0x72, 0x1e, 0x5d, 0x48,
+ 0xbd, 0xbd, 0x48, 0x5d, 0x1e, 0x9c, 0x6c, 0x56, 0x11, 0xfe, 0xa1, 0xa5,
+ 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf, 0x01, 0x4d, 0x19, 0x3e, 0x77, 0x9a,
+ 0x72, 0x4e, 0x33, 0x0b, 0x03, 0x99, 0xa5, 0x87, 0x46, 0x34, 0x8f, 0x00,
+ 0x00, 0x02, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x03,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x03, 0x13, 0x21, 0x11,
+ 0x21, 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07,
+ 0x03, 0x21, 0x11, 0x21, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16,
+ 0x33, 0x32, 0x01, 0x87, 0xbd, 0xbd, 0x0f, 0x10, 0x01, 0x51, 0xfe, 0xc8,
+ 0x12, 0x07, 0x92, 0x88, 0x71, 0x12, 0x85, 0x10, 0x33, 0x3f, 0x08, 0x0c,
+ 0x01, 0x19, 0xfe, 0xc4, 0x0b, 0x08, 0x98, 0x82, 0x71, 0x12, 0x85, 0x10,
+ 0x33, 0x40, 0x02, 0xa6, 0xfe, 0xfd, 0xea, 0x01, 0x72, 0x02, 0x30, 0x01,
+ 0xae, 0xa7, 0x85, 0x7d, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xf5, 0xfc, 0xbc,
+ 0xfe, 0xff, 0xad, 0x7f, 0x7d, 0x8c, 0x0f, 0x82, 0x00, 0x02, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x13, 0x06, 0x07, 0x13, 0x3e, 0x01, 0x32, 0x16,
+ 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17, 0x16, 0x10, 0x07,
+ 0x06, 0x07, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x01, 0x87, 0xbd, 0xbd,
+ 0x59, 0x25, 0x1c, 0x14, 0x07, 0x92, 0x88, 0x71, 0x12, 0x85, 0x10, 0x33,
+ 0x40, 0x07, 0x0c, 0x59, 0x3b, 0x63, 0x63, 0x4d, 0x68, 0x0d, 0x08, 0x91,
+ 0x88, 0x72, 0x12, 0x85, 0x10, 0x33, 0x3f, 0x08, 0x14, 0x24, 0x31, 0x63,
+ 0x7a, 0x85, 0x02, 0xa6, 0xfe, 0x01, 0x7e, 0x02, 0x05, 0x01, 0xc3, 0xa7,
+ 0x85, 0x7c, 0x8d, 0x0f, 0x82, 0xaf, 0xfe, 0xd6, 0x18, 0x4b, 0x7c, 0xfe,
+ 0xd2, 0x6f, 0x55, 0x13, 0xfe, 0xbe, 0xa7, 0x85, 0x7d, 0x8c, 0x0f, 0x82,
+ 0xaf, 0x01, 0xb6, 0x10, 0x93, 0xd8, 0x7f, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0xff, 0x06, 0x0e, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x01, 0x16, 0x33, 0x32, 0x37, 0x13, 0x16, 0x17,
+ 0x16, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x07, 0x13, 0x3e, 0x01, 0x32,
+ 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x36, 0x33, 0x32, 0x16,
+ 0x10, 0x06, 0x23, 0x22, 0x27, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x02,
+ 0x4e, 0xbd, 0xbd, 0xfe, 0xa0, 0x10, 0x35, 0x3e, 0x07, 0x18, 0x29, 0x32,
+ 0x65, 0xb2, 0x87, 0x7c, 0x65, 0xc0, 0x4b, 0x16, 0x05, 0x92, 0x88, 0x73,
+ 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0d, 0x35, 0x3d, 0x98, 0xb9, 0xc6,
+ 0x8b, 0x4e, 0x42, 0x0f, 0x08, 0x90, 0x88, 0x73, 0x12, 0x02, 0xae, 0xfe,
+ 0xfd, 0xb5, 0x82, 0xaf, 0x02, 0x33, 0x3e, 0x1c, 0x36, 0x91, 0xd1, 0x8f,
+ 0xa1, 0x02, 0x5d, 0xa4, 0x88, 0x7a, 0x8f, 0x0f, 0x82, 0xaf, 0xfe, 0xcb,
+ 0x13, 0xe9, 0xfe, 0xd2, 0xdb, 0x21, 0xfe, 0xa3, 0xa5, 0x87, 0x7a, 0x8f,
+ 0x00, 0x03, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x03,
+ 0x00, 0x0b, 0x00, 0x31, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x16, 0x36,
+ 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x03, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x26, 0x27, 0x26, 0x10, 0x37, 0x36, 0x37, 0x13, 0x3e, 0x01, 0x32, 0x16,
+ 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17, 0x16, 0x10, 0x07,
+ 0x06, 0x07, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x01, 0x82, 0xbe, 0xbe,
+ 0xb7, 0x85, 0x7c, 0xc1, 0x81, 0x80, 0x92, 0x10, 0x35, 0x3e, 0x07, 0x0e,
+ 0x54, 0x42, 0x63, 0x64, 0x4b, 0x69, 0x0e, 0x07, 0x8f, 0x89, 0x73, 0x12,
+ 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0c, 0x59, 0x3b, 0x63, 0x63, 0x4d, 0x68,
+ 0x0d, 0x08, 0x8f, 0x89, 0x73, 0x12, 0x02, 0xb0, 0xfe, 0x7a, 0x90, 0xd1,
+ 0x8f, 0x91, 0xcf, 0x90, 0xfe, 0x2d, 0x82, 0xaf, 0x01, 0x31, 0x18, 0x49,
+ 0x6f, 0x01, 0x37, 0x73, 0x56, 0x13, 0x01, 0x3c, 0xa4, 0x88, 0x7a, 0x8f,
+ 0x0f, 0x82, 0xaf, 0xfe, 0xd6, 0x18, 0x4b, 0x7c, 0xfe, 0xd2, 0x6f, 0x55,
+ 0x13, 0xfe, 0xbe, 0xa5, 0x87, 0x7a, 0x8f, 0x00, 0x00, 0x03, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x25,
+ 0x00, 0x00, 0x37, 0x11, 0x21, 0x13, 0x3e, 0x01, 0x32, 0x16, 0x17, 0x07,
+ 0x26, 0x23, 0x22, 0x07, 0x03, 0x33, 0x11, 0x21, 0x03, 0x0e, 0x01, 0x22,
+ 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x1b, 0x01, 0x03, 0x33, 0x11,
+ 0x21, 0x23, 0x11, 0x33, 0x89, 0x01, 0x1b, 0x0f, 0x07, 0x92, 0x88, 0x71,
+ 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0d, 0xfc, 0xfe, 0xe3, 0x0c, 0x08,
+ 0x98, 0x80, 0x73, 0x12, 0x85, 0x10, 0x33, 0x40, 0x07, 0x0c, 0xb1, 0x15,
+ 0x9a, 0xfe, 0xe5, 0x9a, 0x84, 0x9b, 0x02, 0xfe, 0x01, 0x49, 0xa7, 0x85,
+ 0x7d, 0x8c, 0x0f, 0x82, 0xaf, 0xfe, 0xd0, 0xfd, 0x02, 0xfe, 0xde, 0xad,
+ 0x7f, 0x7b, 0x8e, 0x0f, 0x82, 0xaf, 0x01, 0x09, 0x02, 0x74, 0xfe, 0x16,
+ 0x01, 0xea, 0xfe, 0x16, 0x00, 0x01, 0xff, 0xc4, 0xfe, 0x4d, 0x03, 0xfc,
+ 0x06, 0x0e, 0x00, 0x2d, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x07, 0x03,
+ 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x35, 0x36, 0x37, 0x26, 0x27, 0x23,
+ 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x21, 0x17, 0x07, 0x01, 0x35, 0x01, 0x17, 0x07, 0x21, 0x13, 0x3e, 0x01,
+ 0x32, 0x17, 0x16, 0x17, 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x16, 0xf3,
+ 0x5a, 0x7d, 0x82, 0x55, 0x56, 0x07, 0x07, 0x56, 0xfa, 0x1d, 0x08, 0x8f,
+ 0x89, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3d, 0x08, 0x1d, 0xfe, 0xf9, 0xa8,
+ 0x56, 0xfe, 0xe5, 0x01, 0x1b, 0x56, 0xa8, 0x01, 0x0c, 0x19, 0x07, 0x8f,
+ 0x89, 0x42, 0x30, 0x13, 0x04, 0xf6, 0x82, 0xaf, 0xfd, 0xef, 0x8f, 0xc6,
+ 0x8c, 0x88, 0x04, 0x65, 0x62, 0x06, 0xfd, 0x49, 0xa5, 0x87, 0x7a, 0x8f,
+ 0x0f, 0x82, 0xaf, 0x02, 0x9e, 0xba, 0x60, 0x01, 0x3a, 0x48, 0x01, 0x3a,
+ 0x60, 0xba, 0x02, 0x2a, 0xa5, 0x87, 0x46, 0x34, 0x8f, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x26, 0x23, 0x22, 0x07, 0x03, 0x37, 0x17, 0x07, 0x17,
+ 0x07, 0x27, 0x03, 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x07, 0x27, 0x37, 0x27, 0x37, 0x17, 0x13, 0x3e, 0x01, 0x32,
+ 0x16, 0x17, 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x12, 0x8d, 0x6c, 0xe2,
+ 0xe2, 0x6c, 0x9f, 0x16, 0x08, 0x8f, 0x89, 0x73, 0x12, 0x85, 0x10, 0x35,
+ 0x3e, 0x07, 0x15, 0x8f, 0x6e, 0xe5, 0xe3, 0x6c, 0xa0, 0x15, 0x07, 0x8f,
+ 0x89, 0x73, 0x12, 0x04, 0xf6, 0x82, 0xaf, 0xfe, 0x58, 0x9d, 0x79, 0xfc,
+ 0xfc, 0x78, 0xb0, 0xfd, 0xf4, 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf,
+ 0x01, 0xe2, 0xa0, 0x79, 0xfc, 0xfc, 0x78, 0xb3, 0x01, 0xd8, 0xa5, 0x87,
+ 0x7a, 0x8f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69, 0xfe, 0x4d, 0x03, 0x57,
+ 0x06, 0x0e, 0x00, 0x2a, 0x00, 0x00, 0x17, 0x16, 0x33, 0x32, 0x37, 0x13,
+ 0x06, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x34, 0x36, 0x37, 0x13, 0x3e,
+ 0x01, 0x32, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07, 0x03, 0x16, 0x17,
+ 0x16, 0x15, 0x11, 0x23, 0x11, 0x34, 0x27, 0x03, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0xee, 0x10, 0x35, 0x3e, 0x07, 0x29, 0x3b, 0x1d, 0x2e, 0x6d, 0x8b,
+ 0x6d, 0x0d, 0x07, 0x8f, 0x89, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07,
+ 0x0c, 0x51, 0x38, 0x4e, 0x6d, 0x70, 0x28, 0x08, 0x8f, 0x89, 0x73, 0x12,
+ 0x9b, 0x82, 0xaf, 0x03, 0xa6, 0x10, 0x32, 0x50, 0x9c, 0xfe, 0xc8, 0x01,
+ 0x49, 0xcf, 0xbc, 0x11, 0x01, 0x2b, 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82,
+ 0xaf, 0xfe, 0xe6, 0x18, 0x45, 0x61, 0xd6, 0xfe, 0xb7, 0x01, 0x38, 0xf3,
+ 0x32, 0xfc, 0x4a, 0xa5, 0x87, 0x7a, 0x8f, 0x00, 0x00, 0x01, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x27, 0x00, 0x00, 0x01, 0x26,
+ 0x23, 0x22, 0x07, 0x03, 0x36, 0x19, 0x01, 0x33, 0x11, 0x10, 0x07, 0x03,
+ 0x0e, 0x01, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37, 0x13, 0x26,
+ 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x13, 0x3e, 0x01, 0x32,
+ 0x16, 0x17, 0x02, 0xd2, 0x10, 0x35, 0x3e, 0x07, 0x26, 0x84, 0x6d, 0xf6,
+ 0x0f, 0x08, 0x8f, 0x89, 0x73, 0x12, 0x85, 0x10, 0x35, 0x3e, 0x07, 0x0f,
+ 0x53, 0x39, 0x4d, 0x6d, 0x71, 0x27, 0x07, 0x8f, 0x89, 0x73, 0x12, 0x04,
+ 0xf6, 0x82, 0xaf, 0xfc, 0x8d, 0x26, 0x01, 0x07, 0x01, 0x38, 0xfe, 0xb7,
+ 0xfe, 0x8c, 0x27, 0xfe, 0xa2, 0xa5, 0x87, 0x7a, 0x8f, 0x0f, 0x82, 0xaf,
+ 0x01, 0x4c, 0x17, 0x46, 0x61, 0xd6, 0x01, 0x49, 0xfe, 0xc8, 0xf5, 0x31,
+ 0x03, 0x85, 0xa5, 0x87, 0x7a, 0x8f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x69,
+ 0xfe, 0x4d, 0x03, 0x60, 0x06, 0xf9, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07,
+ 0x03, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37,
+ 0x01, 0x15, 0x21, 0x35, 0x01, 0xb3, 0x07, 0x92, 0x43, 0x45, 0x71, 0x12,
+ 0x85, 0x10, 0x33, 0x40, 0x07, 0x3a, 0x08, 0x91, 0x45, 0x43, 0x72, 0x12,
+ 0x85, 0x10, 0x33, 0x40, 0x07, 0x01, 0xe8, 0xfd, 0x3e, 0x04, 0xe2, 0xa7,
+ 0x85, 0x7d, 0x8c, 0x0f, 0x82, 0xaf, 0xfa, 0xb0, 0xa7, 0x85, 0x7d, 0x8c,
+ 0x0f, 0x82, 0xaf, 0x07, 0x67, 0xa0, 0xa0, 0x00, 0x00, 0x02, 0x00, 0x60,
+ 0xfd, 0x62, 0x03, 0x57, 0x06, 0x0e, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x07, 0x26, 0x23, 0x22, 0x07,
+ 0x03, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x27, 0x37, 0x16, 0x33, 0x32, 0x37,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0xb3, 0x07, 0x92, 0x43, 0x45, 0x71, 0x12,
+ 0x85, 0x10, 0x33, 0x40, 0x07, 0x3a, 0x08, 0x91, 0x45, 0x43, 0x72, 0x12,
+ 0x85, 0x10, 0x33, 0x40, 0x07, 0xfe, 0xe8, 0x02, 0xc3, 0x04, 0xe2, 0xa7,
+ 0x85, 0x7d, 0x8c, 0x0f, 0x82, 0xaf, 0xfa, 0xb0, 0xa7, 0x85, 0x7d, 0x8c,
+ 0x0f, 0x82, 0xaf, 0xfd, 0xd0, 0xa0, 0xa0, 0x00, 0xff, 0xff, 0x00, 0xfc,
+ 0x00, 0x3f, 0x05, 0x0d, 0x04, 0xc5, 0x10, 0x06, 0x00, 0x99, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xc3, 0x01, 0xd3, 0x05, 0x46, 0x04, 0x6a, 0x10, 0x26,
+ 0x09, 0x18, 0x00, 0x00, 0x10, 0x07, 0x09, 0xa1, 0x01, 0xdf, 0x01, 0x24,
+ 0xff, 0xff, 0x00, 0xc3, 0x00, 0x9f, 0x05, 0x46, 0x04, 0x6a, 0x10, 0x26,
+ 0x09, 0x18, 0x00, 0x00, 0x10, 0x27, 0x09, 0xa1, 0x00, 0xd0, 0xfe, 0x57,
+ 0x10, 0x07, 0x09, 0xa1, 0x02, 0xed, 0x01, 0x24, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x04, 0x05, 0x46, 0x04, 0xa6, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x05, 0x15, 0x01, 0x35, 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x05, 0x45,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0x5f, 0x03, 0xa1, 0xfb, 0x7e, 0x04, 0x82,
+ 0x46, 0xb6, 0x01, 0xd1, 0xb6, 0x02, 0x65, 0xfe, 0x91, 0xfe, 0x93, 0xb6,
+ 0x01, 0xd1, 0xa6, 0x01, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x04, 0x05, 0x46, 0x04, 0xa6, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x17, 0x01, 0x15, 0x01, 0x11, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0xc3,
+ 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xa1, 0x46, 0x01,
+ 0xd1, 0xb6, 0xfe, 0x2f, 0x04, 0xec, 0xb6, 0xfe, 0x2f, 0xa6, 0xfe, 0x2f,
+ 0xb6, 0x01, 0x6d, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x47,
+ 0x04, 0xa6, 0x10, 0x27, 0x09, 0xa1, 0x03, 0xc4, 0xff, 0xbb, 0x10, 0x06,
+ 0x0d, 0xd5, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x46,
+ 0x04, 0xa6, 0x10, 0x26, 0x09, 0xa1, 0xfe, 0xbb, 0x10, 0x06, 0x0d, 0xd6,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x46,
+ 0x05, 0x27, 0x10, 0x27, 0x09, 0xa1, 0x00, 0xf4, 0x01, 0xe1, 0x10, 0x06,
+ 0x0d, 0xd5, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x46,
+ 0x05, 0x27, 0x10, 0x27, 0x09, 0xa1, 0x02, 0xcd, 0x01, 0xe1, 0x10, 0x06,
+ 0x0d, 0xd6, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x47,
+ 0x06, 0x12, 0x10, 0x27, 0x09, 0xa1, 0x03, 0xc4, 0x02, 0xcc, 0x10, 0x06,
+ 0x0d, 0xd5, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0xff, 0x04, 0x05, 0x46,
+ 0x06, 0x0d, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xfe, 0x02, 0xc7, 0x10, 0x06,
+ 0x0d, 0xd6, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0xfe, 0xf1, 0x05, 0x46,
+ 0x05, 0x4e, 0x00, 0x1c, 0x00, 0x3a, 0x00, 0x41, 0x00, 0x00, 0x25, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x1e, 0x01, 0x17, 0x16,
+ 0x33, 0x32, 0x36, 0x13, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x13, 0x09, 0x01,
+ 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1, 0x58, 0x63, 0x83, 0x09,
+ 0x06, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56, 0x63,
+ 0x85, 0x09, 0x0b, 0x0d, 0x8c, 0x55, 0x4d, 0x97, 0x5e, 0x5f, 0xa1, 0x58,
+ 0x63, 0x83, 0x09, 0x06, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58, 0x5e,
+ 0xa2, 0x56, 0x63, 0x85, 0x09, 0x04, 0x07, 0x0d, 0x8c, 0x55, 0x4d, 0x97,
+ 0x5d, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0x50, 0xb3, 0x4e,
+ 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3, 0x4e, 0x45,
+ 0x3b, 0x05, 0x04, 0x06, 0x3d, 0x4b, 0x01, 0x9b, 0xb2, 0x50, 0x44, 0x3a,
+ 0x04, 0x04, 0x02, 0x06, 0x3c, 0x4c, 0x52, 0xb2, 0x4e, 0x44, 0x3a, 0x04,
+ 0x02, 0x04, 0x06, 0x3c, 0x4a, 0x03, 0x5e, 0xfe, 0xeb, 0xfe, 0xee, 0xb2,
+ 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0xf1, 0x05, 0x46, 0x05, 0x4e, 0x00, 0x1c, 0x00, 0x3a, 0x00, 0x41,
+ 0x00, 0x00, 0x25, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17,
+ 0x1e, 0x01, 0x17, 0x16, 0x33, 0x32, 0x36, 0x13, 0x15, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35,
+ 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x36, 0x01, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1,
+ 0x58, 0x63, 0x83, 0x09, 0x06, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58,
+ 0x5e, 0xa2, 0x56, 0x63, 0x85, 0x09, 0x0b, 0x0d, 0x8c, 0x55, 0x4d, 0x97,
+ 0x5e, 0x5f, 0xa1, 0x58, 0x63, 0x83, 0x09, 0x06, 0x05, 0x0e, 0x8b, 0x55,
+ 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56, 0x63, 0x85, 0x09, 0x04, 0x07, 0x0d,
+ 0x8c, 0x55, 0x4d, 0x97, 0xfb, 0xdb, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60,
+ 0x50, 0xb3, 0x4e, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54,
+ 0xb3, 0x4e, 0x45, 0x3b, 0x05, 0x04, 0x06, 0x3d, 0x4b, 0x01, 0x9b, 0xb2,
+ 0x50, 0x44, 0x3a, 0x04, 0x04, 0x02, 0x06, 0x3c, 0x4c, 0x52, 0xb2, 0x4e,
+ 0x44, 0x3a, 0x04, 0x02, 0x04, 0x06, 0x3c, 0x4a, 0x03, 0x5e, 0xb0, 0xfe,
+ 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x08, 0x05, 0x46, 0x04, 0xa8, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x00,
+ 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x37, 0x21, 0x35, 0x21,
+ 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x03, 0x4e, 0x87, 0x51, 0x01, 0xc1,
+ 0xfd, 0xed, 0x78, 0x87, 0x51, 0xfe, 0x3f, 0x02, 0x13, 0x02, 0x6f, 0xfc,
+ 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0x01, 0xa2, 0x50, 0xa8, 0xaa,
+ 0xf8, 0x50, 0xa8, 0xaa, 0x03, 0x4e, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01,
+ 0x70, 0xaa, 0x01, 0x6f, 0x00, 0x02, 0x00, 0xc3, 0xff, 0x08, 0x05, 0x46,
+ 0x04, 0xa8, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x00, 0x01, 0x17, 0x07, 0x21,
+ 0x15, 0x21, 0x07, 0x27, 0x37, 0x21, 0x35, 0x21, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0x35, 0x01, 0x03, 0x4e, 0x87, 0x51, 0x01, 0xc1, 0xfd, 0xed, 0x78,
+ 0x87, 0x51, 0xfe, 0x3f, 0x02, 0x13, 0xfd, 0xed, 0x04, 0x82, 0xfb, 0x7e,
+ 0x03, 0x60, 0x01, 0xa2, 0x50, 0xa8, 0xaa, 0xf8, 0x50, 0xa8, 0xaa, 0x03,
+ 0x4e, 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x5f, 0x05, 0x46, 0x05, 0x4e, 0x00, 0x36,
+ 0x00, 0x3d, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01,
+ 0x07, 0x27, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36,
+ 0x17, 0x16, 0x1f, 0x01, 0x37, 0x17, 0x07, 0x16, 0x33, 0x32, 0x36, 0x13,
+ 0x09, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1, 0x58, 0x3d,
+ 0x4b, 0x2e, 0x7e, 0x4e, 0x4d, 0x97, 0x5e, 0x5f, 0xa1, 0x58, 0x62, 0x84,
+ 0x07, 0x53, 0x94, 0x50, 0x39, 0x2b, 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56,
+ 0x3e, 0x4b, 0x2e, 0x7d, 0x4e, 0x4f, 0x9b, 0x58, 0x5e, 0x51, 0x62, 0x45,
+ 0x84, 0x64, 0x07, 0x52, 0x93, 0x50, 0x3a, 0x2c, 0x4d, 0x97, 0x5d, 0xfc,
+ 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0x01, 0x96, 0xb2, 0x50, 0x44,
+ 0x17, 0x83, 0x34, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x3b, 0x03, 0xe9, 0x40,
+ 0xe2, 0x10, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x17, 0x82, 0x34, 0x4c, 0x52,
+ 0xb2, 0x4e, 0x22, 0x2a, 0x08, 0x0e, 0x2c, 0x03, 0xe9, 0x40, 0xe3, 0x0f,
+ 0x4a, 0x03, 0x5e, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01,
+ 0x6f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x5f, 0x05, 0x46,
+ 0x05, 0x4e, 0x00, 0x35, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x2f, 0x01, 0x07, 0x27, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x01, 0x37, 0x17, 0x07, 0x16, 0x33,
+ 0x32, 0x36, 0x01, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f,
+ 0xa1, 0x58, 0x3d, 0x4b, 0x2e, 0x7e, 0x4e, 0x4d, 0x97, 0x5e, 0x5f, 0xa1,
+ 0x58, 0x62, 0x84, 0x07, 0x53, 0x94, 0x50, 0x39, 0x2b, 0x4f, 0x9b, 0x58,
+ 0x5e, 0xa2, 0x56, 0x3e, 0x4b, 0x2e, 0x7d, 0x4e, 0x4f, 0x9b, 0x58, 0x5e,
+ 0xa2, 0x56, 0x63, 0x85, 0x07, 0x52, 0x93, 0x50, 0x3a, 0x2c, 0x4d, 0x97,
+ 0xfb, 0xdb, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0x01, 0x96, 0xb2, 0x50,
+ 0x44, 0x17, 0x83, 0x34, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x3b, 0x03, 0xe9,
+ 0x40, 0xe2, 0x10, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x17, 0x82, 0x34, 0x4c,
+ 0x52, 0xb2, 0x4e, 0x44, 0x3a, 0x03, 0xe9, 0x40, 0xe3, 0x0f, 0x4a, 0x03,
+ 0x5e, 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xc3, 0xfd, 0x84, 0x05, 0x46, 0x06, 0x54, 0x00, 0x06,
+ 0x00, 0x0a, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x01, 0x35,
+ 0x01, 0x15, 0x05, 0x01, 0x21, 0x35, 0x21, 0x01, 0x2d, 0x01, 0x35, 0x01,
+ 0x15, 0x09, 0x01, 0x21, 0x35, 0x21, 0x05, 0x45, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xe4, 0x03, 0x1c, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x1d,
+ 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0x03, 0xfb, 0xb0, 0x01, 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0xfd, 0x5c,
+ 0xaa, 0xfb, 0x5e, 0xd5, 0xd2, 0xb2, 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0x03,
+ 0x7e, 0xaa, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3, 0xfd, 0x84, 0x05, 0x46,
+ 0x06, 0x54, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x2d, 0x01, 0x35, 0x01, 0x15, 0x01, 0x11, 0x35, 0x21, 0x15, 0x11,
+ 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x01, 0x35, 0x21, 0x15, 0xc3, 0x03,
+ 0x1d, 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x82, 0xfc, 0xe4, 0xfe, 0x9a, 0x04, 0x82, 0x03, 0xfb, 0xd5, 0xd2, 0xb2,
+ 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0xfe, 0xe1, 0xaa, 0xaa, 0xfc, 0x08, 0xb0,
+ 0x01, 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0x01, 0xf9, 0xaa, 0xaa, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xff, 0x02, 0x05, 0x46, 0x05, 0x4e, 0x00, 0x1a,
+ 0x00, 0x1e, 0x00, 0x25, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x01, 0x21, 0x15, 0x21,
+ 0x09, 0x02, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1, 0x58, 0x63,
+ 0x83, 0x0f, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56,
+ 0x63, 0x85, 0x0d, 0x14, 0x8c, 0x55, 0x4d, 0x97, 0xfb, 0xdc, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x81, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82,
+ 0x01, 0x96, 0xb2, 0x50, 0x44, 0x3a, 0x08, 0x02, 0x06, 0x3c, 0x4b, 0x53,
+ 0xb2, 0x4e, 0x44, 0x3a, 0x06, 0x0a, 0x3c, 0x4a, 0xfe, 0x6c, 0xaa, 0x05,
+ 0x9c, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xff, 0x02, 0x05, 0x46, 0x05, 0x4e, 0x00, 0x1a,
+ 0x00, 0x1e, 0x00, 0x25, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22,
+ 0x2f, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x32, 0x1f, 0x02, 0x16, 0x33, 0x32, 0x36, 0x01, 0x21, 0x15, 0x21,
+ 0x03, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x46, 0x5f, 0xa1, 0x58,
+ 0x63, 0x83, 0x0f, 0x05, 0x0e, 0x8b, 0x55, 0x4f, 0x9b, 0x58, 0x5e, 0xa2,
+ 0x56, 0x63, 0x85, 0x0d, 0x14, 0x8c, 0x55, 0x4d, 0x97, 0xfb, 0xdc, 0x04,
+ 0x82, 0xfb, 0x7e, 0x01, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0x01, 0x96,
+ 0xb2, 0x50, 0x44, 0x3a, 0x08, 0x02, 0x06, 0x3c, 0x4b, 0x53, 0xb2, 0x4e,
+ 0x44, 0x3a, 0x06, 0x0a, 0x3c, 0x4a, 0xfe, 0x6c, 0xaa, 0x05, 0x9c, 0xb0,
+ 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0x12, 0x05, 0x46, 0x06, 0x0c, 0x00, 0x1a, 0x00, 0x21, 0x00, 0x28,
+ 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02,
+ 0x16, 0x33, 0x32, 0x36, 0x13, 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x01,
+ 0x2d, 0x01, 0x35, 0x01, 0x15, 0x01, 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63,
+ 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57,
+ 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55, 0x4d, 0x98, 0x5d, 0xfb, 0x7e, 0x04,
+ 0x82, 0xfc, 0xe4, 0xfe, 0x9a, 0x03, 0x1d, 0xfc, 0xe3, 0x04, 0x82, 0xfb,
+ 0x7e, 0x02, 0xbe, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d, 0x4c,
+ 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x09, 0x3d, 0x4b, 0x01, 0x4a, 0xb0,
+ 0x01, 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0xfa, 0x3a, 0xd5, 0xd2, 0xb2,
+ 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0x12, 0x05, 0x46, 0x06, 0x0c, 0x00, 0x1a, 0x00, 0x21, 0x00, 0x28,
+ 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x1f, 0x02,
+ 0x16, 0x33, 0x32, 0x36, 0x01, 0x2d, 0x01, 0x35, 0x01, 0x15, 0x09, 0x01,
+ 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63,
+ 0x83, 0x10, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57,
+ 0x63, 0x85, 0x0d, 0x14, 0x8b, 0x55, 0x4d, 0x98, 0xfb, 0xdb, 0x03, 0x1d,
+ 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xe4, 0x02, 0xbe, 0xb2, 0x4f, 0x45, 0x3b, 0x07, 0x02, 0x06, 0x3d,
+ 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x06, 0x09, 0x3d, 0x4b, 0x01, 0x4a,
+ 0xd5, 0xd2, 0xb2, 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0xfb, 0xbf, 0xb0, 0x01,
+ 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3,
+ 0xfe, 0x2c, 0x05, 0x46, 0x05, 0xd7, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11,
+ 0x00, 0x15, 0x00, 0x00, 0x13, 0x2d, 0x01, 0x35, 0x01, 0x15, 0x01, 0x11,
+ 0x35, 0x21, 0x15, 0x11, 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x01, 0x35,
+ 0x21, 0x15, 0xc3, 0x03, 0x1d, 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0xe4, 0xfe, 0x9a, 0x04, 0x82, 0x01,
+ 0x25, 0xd5, 0xd2, 0xb2, 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0xfe, 0xe1, 0xaa,
+ 0xaa, 0x04, 0x28, 0xb0, 0x01, 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0xf9,
+ 0xd9, 0xaa, 0xaa, 0x00, 0x00, 0x04, 0x00, 0xc3, 0xfe, 0x2c, 0x05, 0x46,
+ 0x05, 0xd7, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00,
+ 0x01, 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x01, 0x21, 0x35, 0x21, 0x01,
+ 0x2d, 0x01, 0x35, 0x01, 0x15, 0x09, 0x01, 0x21, 0x35, 0x21, 0x05, 0x45,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0xe4, 0x03, 0x1c, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfb, 0x7e, 0x03, 0x1d, 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x82, 0x01, 0x25, 0xb0, 0x01, 0x2f, 0xaa, 0x01, 0x30,
+ 0xb2, 0xd2, 0xfd, 0x5c, 0xaa, 0x03, 0x7e, 0xd5, 0xd2, 0xb2, 0xfe, 0xd0,
+ 0xaa, 0xfe, 0xd1, 0xfb, 0x5e, 0xaa, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3,
+ 0xfe, 0x36, 0x05, 0x46, 0x05, 0xee, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x09,
+ 0x01, 0x35, 0x09, 0x01, 0x2d, 0x01, 0x35, 0x01, 0x15, 0x01, 0x11, 0x35,
+ 0x01, 0x15, 0x05, 0x45, 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0xe4, 0x03, 0x1c,
+ 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x1d, 0xfc, 0xe3, 0x04, 0x82,
+ 0xfb, 0x7e, 0x04, 0x82, 0x03, 0x95, 0xb0, 0x01, 0x2f, 0xaa, 0x01, 0x30,
+ 0xb2, 0xd2, 0xfd, 0x56, 0x01, 0x2f, 0xb0, 0xfe, 0xd1, 0xfd, 0xa6, 0xd5,
+ 0xd2, 0xb2, 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0xfe, 0xd0, 0xb0, 0x01, 0x2f,
+ 0xb0, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3, 0xfe, 0x36, 0x05, 0x46,
+ 0x05, 0xee, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00,
+ 0x13, 0x2d, 0x01, 0x35, 0x01, 0x15, 0x01, 0x11, 0x35, 0x01, 0x15, 0x11,
+ 0x15, 0x01, 0x35, 0x01, 0x15, 0x05, 0x09, 0x01, 0x35, 0x01, 0xc3, 0x03,
+ 0x1d, 0xfc, 0xe3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x82, 0xfc, 0xe4, 0x03, 0x1c, 0xfb, 0x7e, 0x04, 0x82, 0x03, 0x95, 0xd5,
+ 0xd2, 0xb2, 0xfe, 0xd0, 0xaa, 0xfe, 0xd1, 0xfe, 0xdb, 0xb0, 0x01, 0x2f,
+ 0xb0, 0xfd, 0x27, 0xb0, 0x01, 0x2f, 0xaa, 0x01, 0x30, 0xb2, 0xd2, 0xfd,
+ 0x4b, 0x01, 0x2f, 0xb0, 0xfe, 0xd1, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x84, 0x05, 0x46, 0x05, 0x26, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x09, 0x01, 0x35, 0x01, 0x11, 0x15, 0x01, 0x35, 0x01, 0x15, 0x01, 0x05,
+ 0x45, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfc, 0x5f, 0x04,
+ 0x70, 0xfe, 0x2f, 0xb6, 0x01, 0xd1, 0xfb, 0x14, 0xb6, 0x01, 0xd1, 0xa6,
+ 0x01, 0xd1, 0xb6, 0xfe, 0x93, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc3,
+ 0xff, 0x84, 0x05, 0x46, 0x05, 0x26, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x13, 0x35, 0x01, 0x15, 0x09, 0x02, 0x35, 0x01, 0x15, 0x01, 0xc3, 0x04,
+ 0x82, 0xfb, 0x7e, 0x03, 0xa1, 0xfc, 0x5f, 0x04, 0x82, 0xfb, 0x7e, 0x04,
+ 0x70, 0xb6, 0xfe, 0x2f, 0xb6, 0xfd, 0x9b, 0x01, 0x6f, 0x01, 0x6d, 0xb6,
+ 0xfe, 0x2f, 0xa6, 0xfe, 0x2f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3,
+ 0xff, 0x84, 0x05, 0x47, 0x05, 0x26, 0x10, 0x27, 0x09, 0xa1, 0x03, 0xc4,
+ 0xfe, 0xee, 0x10, 0x06, 0x0d, 0xed, 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3,
+ 0xff, 0x84, 0x05, 0x46, 0x05, 0x26, 0x10, 0x27, 0x09, 0xa1, 0xff, 0xfe,
+ 0xfe, 0xe4, 0x10, 0x06, 0x0d, 0xee, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc4,
+ 0xff, 0xb6, 0x05, 0x46, 0x05, 0x7b, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e,
+ 0x00, 0x00, 0x13, 0x35, 0x21, 0x15, 0x11, 0x15, 0x01, 0x35, 0x01, 0x15,
+ 0x09, 0x01, 0x35, 0x21, 0x15, 0xc4, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xa0, 0xfe, 0xde, 0x04, 0x82, 0x04, 0xd1, 0xaa, 0xaa, 0xfb, 0x95,
+ 0xb0, 0x01, 0x6f, 0xaa, 0x01, 0x70, 0xb2, 0xfe, 0xee, 0x02, 0x39, 0xaa,
+ 0xaa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc4, 0xff, 0xb6, 0x05, 0x46,
+ 0x05, 0x7b, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x21,
+ 0x35, 0x21, 0x09, 0x02, 0x35, 0x01, 0x15, 0x09, 0x01, 0x21, 0x35, 0x21,
+ 0x05, 0x46, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0xfc, 0xa0,
+ 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0x04, 0xd1,
+ 0xaa, 0xfa, 0xeb, 0x01, 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90, 0xaa, 0xfe,
+ 0x91, 0x03, 0xfe, 0xaa, 0x00, 0x03, 0x00, 0xc3, 0xff, 0xc0, 0x05, 0x46,
+ 0x05, 0xcd, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x35,
+ 0x01, 0x15, 0x01, 0x35, 0x01, 0x15, 0x11, 0x15, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xa0, 0x03, 0xab, 0xb2, 0x01, 0x70, 0xb2, 0xfd, 0x4e, 0xb2, 0x01,
+ 0x70, 0xb2, 0xfc, 0x97, 0xb0, 0x01, 0x6f, 0xaa, 0x01, 0x70, 0xb2, 0xfe,
+ 0xee, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0xff, 0xc0, 0x05, 0x46,
+ 0x05, 0xcd, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x09, 0x01,
+ 0x35, 0x01, 0x11, 0x01, 0x35, 0x09, 0x03, 0x35, 0x01, 0x15, 0x01, 0x05,
+ 0x45, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03,
+ 0x60, 0xfc, 0xa0, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xab, 0x01, 0x70, 0xb2,
+ 0xfe, 0x90, 0xfe, 0x0c, 0x01, 0x70, 0xb2, 0xfe, 0x90, 0xfd, 0x55, 0x01,
+ 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90, 0xaa, 0xfe, 0x91, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x11, 0x05, 0x46, 0x05, 0x28, 0x00, 0x1b,
+ 0x00, 0x22, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x0e, 0x01,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37,
+ 0x3e, 0x01, 0x37, 0x36, 0x33, 0x32, 0x16, 0x17, 0x03, 0x15, 0x01, 0x35,
+ 0x01, 0x15, 0x01, 0x05, 0x46, 0x5e, 0x97, 0x4d, 0x55, 0x8c, 0x0d, 0x0b,
+ 0x09, 0x85, 0x63, 0x56, 0xa2, 0x5e, 0x58, 0x9b, 0x4f, 0x55, 0x8b, 0x0e,
+ 0x0b, 0x09, 0x83, 0x63, 0x58, 0xa1, 0x5f, 0x01, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xa0, 0x03, 0xca, 0x54, 0x4c, 0x3e, 0x06, 0x04, 0x04, 0x3c, 0x46,
+ 0x4e, 0xb2, 0x54, 0x4c, 0x3e, 0x06, 0x04, 0x04, 0x3c, 0x46, 0x4e, 0xfc,
+ 0x45, 0xb0, 0x01, 0x6f, 0xaa, 0x01, 0x70, 0xb2, 0xfe, 0xee, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0x00, 0x30, 0x05, 0x46, 0x05, 0x28, 0x00, 0x1b,
+ 0x00, 0x22, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x0e, 0x01,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37,
+ 0x3e, 0x01, 0x37, 0x36, 0x33, 0x32, 0x16, 0x17, 0x09, 0x02, 0x35, 0x01,
+ 0x15, 0x01, 0x05, 0x46, 0x5e, 0x97, 0x4d, 0x55, 0x8c, 0x0d, 0x0b, 0x09,
+ 0x85, 0x63, 0x56, 0xa2, 0x5e, 0x58, 0x9b, 0x4f, 0x55, 0x8b, 0x0e, 0x0b,
+ 0x09, 0x83, 0x63, 0x58, 0xa1, 0x5f, 0xfb, 0x7d, 0x03, 0x61, 0xfc, 0x9f,
+ 0x04, 0x82, 0xfb, 0x7e, 0x03, 0xca, 0x54, 0x4c, 0x3e, 0x06, 0x04, 0x04,
+ 0x3c, 0x46, 0x4e, 0xb2, 0x54, 0x4c, 0x3e, 0x06, 0x04, 0x04, 0x3c, 0x46,
+ 0x4e, 0xfc, 0x64, 0x01, 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90, 0xaa, 0xfe,
+ 0x91, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3, 0xfe, 0x98, 0x05, 0x46,
+ 0x05, 0xd4, 0x00, 0x03, 0x00, 0x07, 0x00, 0x24, 0x00, 0x2b, 0x00, 0x00,
+ 0x17, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x13, 0x2e, 0x01, 0x23,
+ 0x22, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e,
+ 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16,
+ 0x17, 0x03, 0x15, 0x01, 0x35, 0x01, 0x15, 0x01, 0xc3, 0x04, 0x82, 0xfb,
+ 0x7e, 0x04, 0x82, 0x01, 0x5e, 0x97, 0x4d, 0x55, 0x8c, 0x0d, 0x0b, 0x09,
+ 0x85, 0x63, 0x56, 0xa2, 0x5e, 0x58, 0x9b, 0x4f, 0x55, 0x8b, 0x0e, 0x05,
+ 0x06, 0x09, 0x83, 0x63, 0x58, 0xa1, 0x5f, 0x01, 0xfb, 0x7e, 0x04, 0x82,
+ 0xfc, 0xa0, 0x3e, 0xaa, 0xaa, 0xfe, 0xd6, 0xaa, 0xaa, 0x05, 0xdc, 0x56,
+ 0x4a, 0x3c, 0x06, 0x04, 0x06, 0x3a, 0x44, 0x4e, 0xb4, 0x54, 0x4c, 0x3c,
+ 0x06, 0x02, 0x04, 0x04, 0x3a, 0x44, 0x4e, 0xfc, 0x44, 0xb0, 0x01, 0x6f,
+ 0xaa, 0x01, 0x70, 0xb2, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x04, 0x00, 0xc3,
+ 0xfe, 0x98, 0x05, 0x46, 0x05, 0xd4, 0x00, 0x03, 0x00, 0x07, 0x00, 0x24,
+ 0x00, 0x2b, 0x00, 0x00, 0x17, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15,
+ 0x13, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x16, 0x17, 0x09, 0x02, 0x35, 0x01, 0x15, 0x01, 0xc3,
+ 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0x01, 0x5e, 0x97, 0x4d, 0x55, 0x8c,
+ 0x0d, 0x0b, 0x09, 0x85, 0x63, 0x56, 0xa2, 0x5e, 0x58, 0x9b, 0x4f, 0x55,
+ 0x8b, 0x0e, 0x05, 0x06, 0x09, 0x83, 0x63, 0x58, 0xa1, 0x5f, 0xfb, 0x7d,
+ 0x03, 0x60, 0xfc, 0xa0, 0x04, 0x82, 0xfb, 0x7e, 0x3e, 0xaa, 0xaa, 0xfe,
+ 0xd6, 0xaa, 0xaa, 0x05, 0xdc, 0x56, 0x4a, 0x3c, 0x06, 0x04, 0x06, 0x3a,
+ 0x44, 0x4e, 0xb4, 0x54, 0x4c, 0x3c, 0x06, 0x02, 0x04, 0x04, 0x3a, 0x44,
+ 0x4e, 0xfc, 0x44, 0x01, 0x15, 0x01, 0x12, 0xb2, 0xfe, 0x90, 0xaa, 0xfe,
+ 0x91, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0x00, 0x66, 0x05, 0x46,
+ 0x04, 0xce, 0x00, 0x03, 0x00, 0x20, 0x00, 0x24, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x21, 0x35, 0x33,
+ 0x36, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x33,
+ 0x15, 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x15, 0x21, 0xc3,
+ 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x42, 0x3c, 0x2a, 0x32, 0x1b, 0x18, 0x04,
+ 0xfe, 0x8d, 0xf0, 0x0b, 0x1a, 0x31, 0x4e, 0x51, 0xb9, 0x50, 0x4d, 0x32,
+ 0x19, 0x0d, 0xef, 0xfe, 0x8e, 0x03, 0x19, 0x1b, 0x32, 0x29, 0xfd, 0x82,
+ 0x04, 0x82, 0xfb, 0x7e, 0x02, 0x5a, 0xaa, 0x02, 0x7b, 0x04, 0x1e, 0x2b,
+ 0x44, 0x44, 0x5c, 0xa8, 0x39, 0x33, 0x5b, 0x32, 0x33, 0x33, 0x32, 0x5b,
+ 0x30, 0x3c, 0xa8, 0x5b, 0x45, 0x43, 0x2c, 0x1e, 0xfc, 0xe9, 0xaa, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0xcf, 0x05, 0x46, 0x05, 0x57, 0x00, 0x03,
+ 0x00, 0x0e, 0x00, 0x00, 0x37, 0x21, 0x15, 0x21, 0x01, 0x00, 0x05, 0x04,
+ 0x01, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0xc3, 0x04, 0x82, 0xfb, 0x7e,
+ 0x04, 0x82, 0xfe, 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x59, 0xfe, 0xa7,
+ 0xfc, 0xd7, 0x03, 0x29, 0x01, 0x59, 0x79, 0xaa, 0x04, 0xb1, 0xfe, 0xe5,
+ 0x5d, 0x5d, 0xfe, 0xe5, 0xd7, 0x01, 0x78, 0x84, 0xa6, 0x7c, 0x01, 0x80,
+ 0x00, 0x02, 0x00, 0xc3, 0xff, 0xcf, 0x05, 0x46, 0x05, 0x57, 0x00, 0x03,
+ 0x00, 0x0f, 0x00, 0x00, 0x25, 0x15, 0x21, 0x35, 0x11, 0x35, 0x00, 0x05,
+ 0x30, 0x15, 0x04, 0x01, 0x35, 0x00, 0x25, 0x24, 0x05, 0x45, 0xfb, 0x7e,
+ 0x01, 0x59, 0x03, 0x29, 0xfc, 0xd7, 0xfe, 0xa7, 0x01, 0x59, 0x01, 0xac,
+ 0xfe, 0x54, 0x79, 0xaa, 0xaa, 0x04, 0x07, 0xd7, 0xfe, 0x80, 0x7c, 0xa6,
+ 0x84, 0xfe, 0x88, 0xd7, 0x01, 0x1b, 0x5d, 0x5d, 0x00, 0x02, 0x00, 0xc3,
+ 0xfe, 0xd7, 0x05, 0x46, 0x05, 0x57, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x00,
+ 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27, 0x37, 0x21, 0x35, 0x21,
+ 0x01, 0x00, 0x05, 0x04, 0x01, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x03,
+ 0x4e, 0x87, 0x51, 0x01, 0xc1, 0xfd, 0xed, 0x78, 0x87, 0x51, 0xfe, 0x3f,
+ 0x02, 0x13, 0x02, 0x6f, 0xfe, 0xa7, 0xfe, 0x54, 0x01, 0xac, 0x01, 0x59,
+ 0xfe, 0xa7, 0xfc, 0xd7, 0x03, 0x29, 0x01, 0x59, 0x01, 0x71, 0x50, 0xa8,
+ 0xaa, 0xf8, 0x50, 0xa8, 0xaa, 0x04, 0x07, 0xfe, 0xe5, 0x5d, 0x5d, 0xfe,
+ 0xe5, 0xd7, 0x01, 0x78, 0x84, 0xa6, 0x7c, 0x01, 0x80, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0xd7, 0x05, 0x46, 0x05, 0x57, 0x00, 0x0b,
+ 0x00, 0x16, 0x00, 0x00, 0x01, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x37, 0x21, 0x35, 0x21, 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35,
+ 0x00, 0x25, 0x24, 0x03, 0x4e, 0x87, 0x51, 0x01, 0xc1, 0xfd, 0xed, 0x78,
+ 0x87, 0x51, 0xfe, 0x3f, 0x02, 0x13, 0xfd, 0xed, 0x01, 0x59, 0x03, 0x29,
+ 0xfc, 0xd7, 0xfe, 0xa7, 0x01, 0x59, 0x01, 0xac, 0xfe, 0x54, 0x01, 0x71,
+ 0x50, 0xa8, 0xaa, 0xf8, 0x50, 0xa8, 0xaa, 0x04, 0x07, 0xd7, 0xfe, 0x80,
+ 0x7c, 0xa6, 0x84, 0xfe, 0x88, 0xd7, 0x01, 0x1b, 0x5d, 0x5d, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xff, 0x09, 0x05, 0x46, 0x05, 0x4b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x37, 0x35, 0x21, 0x15, 0x01, 0x35,
+ 0x21, 0x15, 0x11, 0x00, 0x05, 0x04, 0x05, 0x15, 0x00, 0x25, 0x35, 0x24,
+ 0x01, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfe, 0xec, 0xfe, 0x0f,
+ 0x01, 0xea, 0x01, 0x1b, 0xfe, 0xc6, 0xfc, 0xb8, 0x03, 0x48, 0x01, 0x3a,
+ 0x33, 0xaa, 0xaa, 0xfe, 0xd6, 0xaa, 0xaa, 0x05, 0x6b, 0xfe, 0xe5, 0x2d,
+ 0x51, 0xf7, 0xd7, 0x01, 0x74, 0x58, 0xa6, 0x56, 0x01, 0x76, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xff, 0x09, 0x05, 0x46, 0x05, 0x4b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x37, 0x35, 0x21, 0x15, 0x01, 0x35,
+ 0x21, 0x15, 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x24, 0x25,
+ 0x24, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x01, 0x3a,
+ 0x03, 0x48, 0xfc, 0xb8, 0xfe, 0xc6, 0x01, 0x1b, 0x01, 0xea, 0xfe, 0x10,
+ 0x33, 0xaa, 0xaa, 0xfe, 0xd6, 0xaa, 0xaa, 0x05, 0x6b, 0xd7, 0xfe, 0x8a,
+ 0x56, 0xa6, 0x58, 0xfe, 0x8c, 0xd7, 0xf7, 0x51, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x71, 0x05, 0x46, 0x05, 0x4b, 0x00, 0x13,
+ 0x00, 0x1e, 0x00, 0x00, 0x05, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21,
+ 0x37, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x01, 0x00, 0x05, 0x04, 0x05, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x01,
+ 0xef, 0xfe, 0xd4, 0x01, 0xab, 0x56, 0xfd, 0xff, 0x02, 0x81, 0x7b, 0x7d,
+ 0x25, 0x01, 0x2e, 0xfe, 0x52, 0x56, 0x02, 0x04, 0xfd, 0x7d, 0x7c, 0x7c,
+ 0x03, 0x7b, 0xfe, 0xec, 0xfe, 0x0f, 0x01, 0xea, 0x01, 0x1b, 0xfe, 0xc6,
+ 0xfc, 0xb8, 0x03, 0x48, 0x01, 0x3a, 0xea, 0xaa, 0x73, 0xaa, 0xa4, 0x73,
+ 0x31, 0xaa, 0x73, 0xaa, 0xa5, 0x74, 0x05, 0x8f, 0xfe, 0xe5, 0x2d, 0x51,
+ 0xf7, 0xd7, 0x01, 0x74, 0x58, 0xa6, 0x56, 0x01, 0x76, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfe, 0x71, 0x05, 0x46, 0x05, 0x4b, 0x00, 0x13,
+ 0x00, 0x1e, 0x00, 0x00, 0x05, 0x21, 0x35, 0x21, 0x37, 0x21, 0x35, 0x21,
+ 0x37, 0x17, 0x07, 0x21, 0x15, 0x21, 0x07, 0x21, 0x15, 0x21, 0x07, 0x27,
+ 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x24, 0x25, 0x24, 0x01,
+ 0xef, 0xfe, 0xd4, 0x01, 0xab, 0x56, 0xfd, 0xff, 0x02, 0x81, 0x7b, 0x7d,
+ 0x25, 0x01, 0x2e, 0xfe, 0x52, 0x56, 0x02, 0x04, 0xfd, 0x7d, 0x7c, 0x7c,
+ 0xfe, 0xf9, 0x01, 0x3a, 0x03, 0x48, 0xfc, 0xb8, 0xfe, 0xc6, 0x01, 0x1b,
+ 0x01, 0xea, 0xfe, 0x10, 0xea, 0xaa, 0x73, 0xaa, 0xa4, 0x73, 0x31, 0xaa,
+ 0x73, 0xaa, 0xa5, 0x74, 0x05, 0x8f, 0xd7, 0xfe, 0x8a, 0x56, 0xa6, 0x58,
+ 0xfe, 0x8c, 0xd7, 0xf7, 0x51, 0x2d, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0x79, 0x05, 0x46, 0x05, 0x8b, 0x00, 0x1d, 0x00, 0x3a, 0x00, 0x45,
+ 0x00, 0x00, 0x05, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x37, 0x36, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x13, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3e,
+ 0x01, 0x13, 0x00, 0x05, 0x04, 0x05, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01,
+ 0x05, 0x45, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c,
+ 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa0, 0x58, 0x57, 0x91, 0x09, 0x05, 0x05,
+ 0x0e, 0x8b, 0x55, 0x4d, 0x98, 0x5d, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x09,
+ 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63,
+ 0x85, 0x08, 0x05, 0x06, 0x0e, 0x99, 0x8e, 0x9e, 0x5d, 0xfe, 0xec, 0xfe,
+ 0x0f, 0x01, 0xea, 0x01, 0x1b, 0xfe, 0xc6, 0xfc, 0xb8, 0x03, 0x48, 0x01,
+ 0x3a, 0x28, 0xb3, 0x4e, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c,
+ 0x54, 0xb3, 0x4e, 0x39, 0x0c, 0x06, 0x41, 0x05, 0x02, 0x02, 0x06, 0x3d,
+ 0x4b, 0x01, 0x9a, 0xb2, 0x4f, 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d,
+ 0x4c, 0x53, 0xb2, 0x4e, 0x45, 0x3b, 0x04, 0x02, 0x03, 0x06, 0x43, 0x0c,
+ 0x45, 0x03, 0xec, 0xfe, 0xe5, 0x2d, 0x51, 0xf7, 0xd7, 0x01, 0x74, 0x58,
+ 0xa6, 0x56, 0x01, 0x76, 0x00, 0x03, 0x00, 0xc3, 0xfe, 0x79, 0x05, 0x46,
+ 0x05, 0x8b, 0x00, 0x1d, 0x00, 0x3a, 0x00, 0x45, 0x00, 0x00, 0x05, 0x15,
+ 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x33, 0x32, 0x36, 0x13, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3e, 0x01, 0x01, 0x35, 0x00,
+ 0x05, 0x15, 0x04, 0x01, 0x35, 0x24, 0x25, 0x24, 0x05, 0x45, 0x5e, 0xa1,
+ 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c, 0x54, 0x50, 0x9a, 0x59,
+ 0x5f, 0xa0, 0x58, 0x57, 0x91, 0x09, 0x05, 0x05, 0x0e, 0x8b, 0x55, 0x4d,
+ 0x98, 0x5d, 0x5e, 0xa1, 0x58, 0x63, 0x83, 0x09, 0x07, 0x05, 0x0d, 0x8c,
+ 0x54, 0x50, 0x9a, 0x59, 0x5f, 0xa1, 0x57, 0x63, 0x85, 0x08, 0x05, 0x06,
+ 0x0e, 0x99, 0x8e, 0x9e, 0xfb, 0xdb, 0x01, 0x3a, 0x03, 0x48, 0xfc, 0xb8,
+ 0xfe, 0xc6, 0x01, 0x1b, 0x01, 0xea, 0xfe, 0x10, 0x28, 0xb3, 0x4e, 0x45,
+ 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x54, 0xb3, 0x4e, 0x39, 0x0c,
+ 0x06, 0x41, 0x05, 0x02, 0x02, 0x06, 0x3d, 0x4b, 0x01, 0x9a, 0xb2, 0x4f,
+ 0x45, 0x3b, 0x04, 0x03, 0x02, 0x06, 0x3d, 0x4c, 0x53, 0xb2, 0x4e, 0x45,
+ 0x3b, 0x04, 0x02, 0x03, 0x06, 0x43, 0x0c, 0x45, 0x03, 0xec, 0xd7, 0xfe,
+ 0x8a, 0x56, 0xa6, 0x58, 0xfe, 0x8c, 0xd7, 0xf7, 0x51, 0x2d, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc3, 0xfd, 0xed, 0x05, 0x46, 0x05, 0x8b, 0x00, 0x36,
+ 0x00, 0x41, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x07,
+ 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x2f, 0x01,
+ 0x07, 0x27, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x36, 0x37, 0x36,
+ 0x17, 0x16, 0x1f, 0x01, 0x37, 0x17, 0x07, 0x16, 0x33, 0x32, 0x36, 0x13,
+ 0x00, 0x05, 0x04, 0x05, 0x15, 0x00, 0x25, 0x35, 0x24, 0x01, 0x05, 0x46,
+ 0x5f, 0xa1, 0x58, 0x3d, 0x4b, 0x2e, 0x7e, 0x4e, 0x4d, 0x97, 0x5e, 0x5f,
+ 0xa1, 0x58, 0x62, 0x84, 0x07, 0x53, 0x94, 0x50, 0x39, 0x2b, 0x4f, 0x9b,
+ 0x58, 0x5e, 0xa2, 0x56, 0x3e, 0x4b, 0x2e, 0x7d, 0x4e, 0x4f, 0x9b, 0x58,
+ 0x5e, 0x51, 0x62, 0x45, 0x84, 0x64, 0x07, 0x52, 0x93, 0x50, 0x3a, 0x2c,
+ 0x4d, 0x97, 0x5d, 0xfe, 0xec, 0xfe, 0x0f, 0x01, 0xea, 0x01, 0x1b, 0xfe,
+ 0xc6, 0xfc, 0xb8, 0x03, 0x48, 0x01, 0x3a, 0x01, 0x24, 0xb2, 0x50, 0x44,
+ 0x17, 0x83, 0x34, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x3b, 0x03, 0xe9, 0x40,
+ 0xe2, 0x10, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x17, 0x82, 0x34, 0x4c, 0x52,
+ 0xb2, 0x4e, 0x22, 0x2a, 0x08, 0x0e, 0x2c, 0x03, 0xe9, 0x40, 0xe3, 0x0f,
+ 0x4a, 0x03, 0xe6, 0xfe, 0xe5, 0x2d, 0x51, 0xf7, 0xd7, 0x01, 0x74, 0x58,
+ 0xa6, 0x56, 0x01, 0x76, 0x00, 0x02, 0x00, 0xc3, 0xfd, 0xed, 0x05, 0x46,
+ 0x05, 0x8b, 0x00, 0x36, 0x00, 0x41, 0x00, 0x00, 0x01, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x27, 0x07, 0x16, 0x33, 0x32, 0x36, 0x37, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x2f, 0x01, 0x07, 0x27, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x37, 0x26, 0x23, 0x22, 0x06, 0x07,
+ 0x35, 0x36, 0x37, 0x36, 0x17, 0x16, 0x1f, 0x01, 0x37, 0x17, 0x07, 0x16,
+ 0x33, 0x32, 0x36, 0x01, 0x35, 0x00, 0x05, 0x15, 0x04, 0x01, 0x35, 0x24,
+ 0x25, 0x24, 0x05, 0x46, 0x5f, 0xa1, 0x58, 0x3d, 0x4b, 0x2e, 0x7e, 0x4e,
+ 0x4d, 0x97, 0x5e, 0x5f, 0xa1, 0x58, 0x62, 0x84, 0x07, 0x53, 0x94, 0x50,
+ 0x39, 0x2b, 0x4f, 0x9b, 0x58, 0x5e, 0xa2, 0x56, 0x3e, 0x4b, 0x2e, 0x7d,
+ 0x4e, 0x4f, 0x9b, 0x58, 0x5e, 0x51, 0x62, 0x45, 0x84, 0x64, 0x07, 0x52,
+ 0x93, 0x50, 0x3a, 0x2c, 0x4d, 0x97, 0xfb, 0xdb, 0x01, 0x3a, 0x03, 0x48,
+ 0xfc, 0xb8, 0xfe, 0xc6, 0x01, 0x1b, 0x01, 0xea, 0xfe, 0x10, 0x01, 0x24,
+ 0xb2, 0x50, 0x44, 0x17, 0x83, 0x34, 0x4b, 0x55, 0xb3, 0x4e, 0x45, 0x3b,
+ 0x03, 0xe9, 0x40, 0xe2, 0x10, 0x4c, 0x54, 0xb3, 0x4e, 0x45, 0x17, 0x82,
+ 0x34, 0x4c, 0x52, 0xb2, 0x4e, 0x22, 0x2a, 0x08, 0x0e, 0x2c, 0x03, 0xe9,
+ 0x40, 0xe3, 0x0f, 0x4a, 0x03, 0xe6, 0xd7, 0xfe, 0x8a, 0x56, 0xa6, 0x58,
+ 0xfe, 0x8c, 0xd7, 0xf7, 0x51, 0x2d, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3,
+ 0xfe, 0xa1, 0x05, 0x46, 0x04, 0xae, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e,
+ 0x00, 0x00, 0x37, 0x01, 0x15, 0x01, 0x11, 0x01, 0x15, 0x09, 0x03, 0x15,
+ 0x01, 0x35, 0x01, 0xc3, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e,
+ 0x04, 0x82, 0xfc, 0xa0, 0x03, 0x60, 0xfb, 0x7e, 0x04, 0x82, 0xc3, 0xfe,
+ 0x90, 0xb2, 0x01, 0x70, 0x01, 0xf4, 0xfe, 0x90, 0xb2, 0x01, 0x70, 0x02,
+ 0xab, 0xfe, 0xeb, 0xfe, 0xee, 0xb2, 0x01, 0x70, 0xaa, 0x01, 0x6f, 0x00,
+ 0x00, 0x03, 0x00, 0xc3, 0xfe, 0xa1, 0x05, 0x46, 0x04, 0xae, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x25, 0x15, 0x01, 0x35, 0x01, 0x15,
+ 0x01, 0x35, 0x11, 0x35, 0x01, 0x15, 0x01, 0x35, 0x01, 0x05, 0x45, 0xfb,
+ 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x04, 0x82, 0xfb, 0x7e, 0x03, 0x60, 0xc3,
+ 0xb2, 0xfe, 0x90, 0xb2, 0x02, 0xb2, 0xb2, 0xfe, 0x90, 0xb2, 0x03, 0x69,
+ 0xb0, 0xfe, 0x91, 0xaa, 0xfe, 0x90, 0xb2, 0x01, 0x12, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa2, 0xff, 0xc9, 0x05, 0x10, 0x04, 0xb3, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x01, 0x17, 0x01, 0x17, 0x01, 0x17, 0x11, 0x13,
+ 0x27, 0x09, 0x02, 0x27, 0x21, 0x03, 0x62, 0x54, 0xfd, 0x6c, 0xac, 0x02,
+ 0x93, 0x53, 0x5b, 0xae, 0xfd, 0x6d, 0xfe, 0xd5, 0x02, 0x94, 0xaf, 0x02,
+ 0x87, 0x04, 0x4e, 0x5c, 0xfd, 0x23, 0xbf, 0x02, 0xdd, 0x5d, 0x01, 0x78,
+ 0xfd, 0x96, 0xc2, 0xfd, 0x23, 0x01, 0x4c, 0x02, 0xdd, 0xc1, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x03, 0xff, 0xc9, 0x05, 0x70, 0x04, 0xb3, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, 0x11, 0x37, 0x01, 0x37, 0x09, 0x01,
+ 0x11, 0x21, 0x07, 0x09, 0x02, 0x02, 0xb0, 0xfe, 0xae, 0x53, 0x02, 0x94,
+ 0xab, 0xfd, 0x6d, 0xfe, 0xa6, 0x02, 0x87, 0xae, 0x02, 0x93, 0xfe, 0xd6,
+ 0xfd, 0x6c, 0x04, 0x4e, 0xfe, 0x88, 0x5d, 0xfd, 0x23, 0xbf, 0x02, 0xdd,
+ 0xfd, 0xf2, 0x02, 0xcf, 0xc1, 0xfd, 0x23, 0xfe, 0xb4, 0x02, 0xdd, 0x00,
+ 0x00, 0x02, 0x00, 0xa2, 0x00, 0x34, 0x05, 0x10, 0x05, 0x1e, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x01, 0x07, 0x01, 0x07, 0x01, 0x07, 0x21, 0x05,
+ 0x37, 0x09, 0x02, 0x37, 0x11, 0x04, 0xb4, 0x53, 0xfd, 0x6d, 0xac, 0x02,
+ 0x94, 0x54, 0x01, 0x52, 0xfd, 0xd4, 0xaf, 0xfd, 0x6c, 0x01, 0x2b, 0x02,
+ 0x93, 0xae, 0x02, 0x11, 0x5d, 0x02, 0xdd, 0xbf, 0xfd, 0x23, 0x5c, 0x65,
+ 0xc1, 0x02, 0xdd, 0x01, 0x4c, 0xfd, 0x23, 0xc2, 0xfd, 0x31, 0x00, 0x00,
+ 0x00, 0x02, 0x01, 0x03, 0x00, 0x34, 0x05, 0x70, 0x05, 0x1e, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x00, 0x25, 0x27, 0x01, 0x27, 0x01, 0x27, 0x11, 0x03,
+ 0x17, 0x09, 0x02, 0x17, 0x21, 0x02, 0xb0, 0x53, 0x02, 0x93, 0xab, 0xfd,
+ 0x6c, 0x53, 0x5b, 0xae, 0x02, 0x94, 0x01, 0x2a, 0xfd, 0x6d, 0xae, 0xfd,
+ 0x79, 0x99, 0x5c, 0x02, 0xdd, 0xbf, 0xfd, 0x23, 0x5d, 0xfe, 0x88, 0x02,
+ 0x6a, 0xc2, 0x02, 0xdd, 0xfe, 0xb4, 0xfd, 0x23, 0xc1, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x31, 0x00, 0x86, 0x05, 0xaf, 0x04, 0x7e, 0x00, 0x09,
+ 0x00, 0x13, 0x00, 0x00, 0x25, 0x09, 0x01, 0x11, 0x21, 0x11, 0x09, 0x01,
+ 0x11, 0x21, 0x01, 0x15, 0x21, 0x35, 0x03, 0x13, 0x35, 0x21, 0x15, 0x13,
+ 0x01, 0xfb, 0xfe, 0x37, 0x01, 0xc9, 0x01, 0xea, 0x01, 0xc9, 0xfe, 0x37,
+ 0xfe, 0x16, 0x02, 0x44, 0xfd, 0x62, 0xf0, 0xf0, 0x02, 0x9e, 0xf0, 0x86,
+ 0x01, 0xfc, 0x01, 0xfc, 0xfe, 0xef, 0x01, 0x11, 0xfe, 0x04, 0xfe, 0x04,
+ 0x01, 0x11, 0x01, 0xf5, 0x83, 0x83, 0xfe, 0xf6, 0xfe, 0xf6, 0x83, 0x83,
+ 0x01, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x31, 0x00, 0x86, 0x05, 0xa0,
+ 0x04, 0x7e, 0x00, 0x06, 0x00, 0x00, 0x25, 0x09, 0x01, 0x11, 0x21, 0x11,
+ 0x21, 0x01, 0xfb, 0xfe, 0x37, 0x01, 0xc9, 0x03, 0xa4, 0xfc, 0x5c, 0x86,
+ 0x01, 0xfc, 0x01, 0xfc, 0xfe, 0xef, 0xfe, 0x2a, 0x00, 0x01, 0x01, 0x3b,
+ 0x00, 0x00, 0x04, 0xce, 0x06, 0x08, 0x00, 0x06, 0x00, 0x00, 0x09, 0x02,
+ 0x23, 0x11, 0x21, 0x11, 0x01, 0x3b, 0x01, 0xc9, 0x01, 0xc9, 0xf5, 0xfe,
+ 0x59, 0x04, 0x0c, 0x01, 0xfc, 0xfe, 0x04, 0xfb, 0xf4, 0x04, 0x0c, 0x00,
+ 0x00, 0x01, 0x01, 0x3b, 0xff, 0xcd, 0x04, 0xce, 0x05, 0xd5, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x33, 0x11, 0x21, 0x11, 0x33, 0x01, 0x01, 0x3b, 0xf6,
+ 0x01, 0xa7, 0xf5, 0xfe, 0x37, 0x01, 0xc9, 0x04, 0x0c, 0xfb, 0xf4, 0xfe,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa2, 0xff, 0xc9, 0x05, 0x10,
+ 0x04, 0xb3, 0x00, 0x06, 0x00, 0x00, 0x01, 0x27, 0x09, 0x02, 0x27, 0x21,
+ 0x05, 0x0f, 0xae, 0xfd, 0x6d, 0xfe, 0xd5, 0x02, 0x94, 0xaf, 0x02, 0x87,
+ 0x01, 0xe4, 0xc2, 0xfd, 0x23, 0x01, 0x4c, 0x02, 0xdd, 0xc1, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x03, 0xff, 0xc9, 0x05, 0x70, 0x04, 0xb3, 0x00, 0x06,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x07, 0x09, 0x02, 0x01, 0x03, 0x02, 0x87,
+ 0xae, 0x02, 0x93, 0xfe, 0xd6, 0xfd, 0x6c, 0x01, 0xe4, 0x02, 0xcf, 0xc1,
+ 0xfd, 0x23, 0xfe, 0xb4, 0x02, 0xdd, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa2,
+ 0x00, 0x34, 0x05, 0x10, 0x05, 0x1e, 0x00, 0x06, 0x00, 0x00, 0x25, 0x37,
+ 0x09, 0x02, 0x37, 0x11, 0x02, 0x88, 0xaf, 0xfd, 0x6c, 0x01, 0x2b, 0x02,
+ 0x93, 0xae, 0x34, 0xc1, 0x02, 0xdd, 0x01, 0x4c, 0xfd, 0x23, 0xc2, 0xfd,
+ 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x00, 0x34, 0x05, 0x70,
+ 0x05, 0x1e, 0x00, 0x06, 0x00, 0x00, 0x01, 0x17, 0x09, 0x02, 0x17, 0x21,
+ 0x01, 0x03, 0xae, 0x02, 0x94, 0x01, 0x2a, 0xfd, 0x6d, 0xae, 0xfd, 0x79,
+ 0x03, 0x03, 0xc2, 0x02, 0xdd, 0xfe, 0xb4, 0xfd, 0x23, 0xc1, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0x00, 0x86, 0x05, 0xaf, 0x04, 0x7e, 0x00, 0x09,
+ 0x00, 0x00, 0x25, 0x09, 0x01, 0x11, 0x21, 0x11, 0x09, 0x01, 0x11, 0x21,
+ 0x01, 0xfb, 0xfe, 0x37, 0x01, 0xc9, 0x01, 0xea, 0x01, 0xc9, 0xfe, 0x37,
+ 0xfe, 0x16, 0x86, 0x01, 0xfc, 0x01, 0xfc, 0xfe, 0xef, 0x01, 0x11, 0xfe,
+ 0x04, 0xfe, 0x04, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x3b,
+ 0xff, 0xcd, 0x04, 0xce, 0x06, 0x08, 0x00, 0x09, 0x00, 0x00, 0x01, 0x33,
+ 0x09, 0x01, 0x33, 0x11, 0x23, 0x09, 0x01, 0x23, 0x03, 0xd8, 0xf5, 0xfe,
+ 0x37, 0xfe, 0x37, 0xf6, 0xf6, 0x01, 0xc9, 0x01, 0xc9, 0xf5, 0x01, 0xc9,
+ 0xfe, 0x04, 0x01, 0xfc, 0x02, 0x43, 0x01, 0xfc, 0xfe, 0x04, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x69, 0xff, 0xf9, 0x05, 0xb1, 0x02, 0xd7, 0x00, 0x0b,
+ 0x00, 0x00, 0x05, 0x23, 0x01, 0x37, 0x17, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x37, 0x17, 0x04, 0x4e, 0x51, 0xfe, 0x9f, 0x6c, 0xd1, 0xfc, 0x90, 0x04,
+ 0x09, 0xd2, 0x6c, 0x07, 0x01, 0x8a, 0x78, 0xea, 0x01, 0x1c, 0xaa, 0xfe,
+ 0x3a, 0xea, 0x78, 0x00, 0x00, 0x01, 0x00, 0x69, 0x02, 0x2d, 0x05, 0xb1,
+ 0x05, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01, 0x07, 0x27, 0x11, 0x21,
+ 0x35, 0x21, 0x11, 0x07, 0x27, 0x01, 0x04, 0x4e, 0x01, 0x62, 0x6c, 0xd2,
+ 0xfb, 0xf7, 0x03, 0x70, 0xd1, 0x6c, 0x01, 0x61, 0x05, 0x0b, 0xfe, 0x76,
+ 0x78, 0xea, 0xfe, 0x3a, 0xaa, 0x01, 0x1c, 0xea, 0x78, 0x01, 0x8a, 0x00,
+ 0x00, 0x01, 0x00, 0x40, 0xff, 0xf9, 0x05, 0x88, 0x02, 0xd7, 0x00, 0x0b,
+ 0x00, 0x00, 0x05, 0x01, 0x37, 0x17, 0x11, 0x21, 0x15, 0x21, 0x11, 0x37,
+ 0x17, 0x01, 0x01, 0xa3, 0xfe, 0x9e, 0x6c, 0xd2, 0x04, 0x09, 0xfc, 0x90,
+ 0xd1, 0x6c, 0xfe, 0x9f, 0x07, 0x01, 0x8a, 0x78, 0xea, 0x01, 0xc6, 0xaa,
+ 0xfe, 0xe4, 0xea, 0x78, 0xfe, 0x76, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40,
+ 0x02, 0x2d, 0x05, 0x88, 0x05, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33,
+ 0x01, 0x07, 0x27, 0x11, 0x21, 0x15, 0x21, 0x11, 0x07, 0x27, 0x01, 0xa3,
+ 0x51, 0x01, 0x61, 0x6c, 0xd1, 0x03, 0x70, 0xfb, 0xf7, 0xd2, 0x6c, 0x05,
+ 0x0b, 0xfe, 0x76, 0x78, 0xea, 0xfe, 0xe4, 0xaa, 0x01, 0xc6, 0xea, 0x78,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x17, 0x11, 0x21, 0x11, 0x25, 0x21, 0x11, 0x21,
+ 0xa7, 0x05, 0x7f, 0xfa, 0xe8, 0x04, 0xb2, 0xfb, 0x4e, 0xfc, 0x06, 0x20,
+ 0xf9, 0xe0, 0x72, 0x02, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x17, 0x11, 0x21, 0x11, 0x01, 0x21, 0x11, 0x21, 0xa7, 0x05, 0x7f, 0xfa,
+ 0xe8, 0x04, 0xb2, 0xfb, 0x4e, 0xfc, 0x06, 0x20, 0xf9, 0xe0, 0x03, 0x10,
+ 0x02, 0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x05, 0x21, 0x01, 0x03,
+ 0x11, 0x21, 0x11, 0x01, 0x0e, 0x04, 0xb2, 0xfb, 0x4e, 0x67, 0x05, 0x7f,
+ 0x8a, 0x05, 0x3c, 0xfa, 0x52, 0x06, 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27, 0x05, 0x24, 0x00, 0x02,
+ 0x00, 0x06, 0x00, 0x00, 0x05, 0x11, 0x21, 0x03, 0x11, 0x21, 0x11, 0x05,
+ 0xc0, 0xfb, 0x4e, 0x67, 0x05, 0x7f, 0x8a, 0x05, 0x3c, 0xfa, 0x52, 0x06,
+ 0x20, 0xf9, 0xe0, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x05, 0x09, 0x05, 0x02,
+ 0xc4, 0x02, 0x37, 0xfd, 0xc9, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0xfd,
+ 0x40, 0x64, 0x02, 0x78, 0x02, 0x78, 0xfd, 0x88, 0x03, 0x10, 0xfc, 0xf0,
+ 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x13, 0x01, 0x11, 0x09,
+ 0x03, 0x8e, 0x02, 0x36, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0xfd, 0x40,
+ 0x02, 0x14, 0xfd, 0x88, 0x04, 0xf0, 0xfd, 0x88, 0x03, 0x10, 0xfc, 0xf0,
+ 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x13, 0x09, 0x01, 0x21,
+ 0x09, 0x02, 0x8e, 0x02, 0x36, 0x02, 0x37, 0xfb, 0x0a, 0x02, 0xbf, 0x02,
+ 0xc0, 0xfd, 0x40, 0x02, 0x14, 0xfd, 0x88, 0x02, 0x78, 0x03, 0x10, 0xfc,
+ 0xf0, 0xfc, 0xf0, 0x00, 0x00, 0x02, 0x00, 0x05, 0xff, 0x04, 0x05, 0x85,
+ 0x05, 0x24, 0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x13, 0x21, 0x09, 0x04,
+ 0x8e, 0x04, 0x6d, 0xfd, 0xc9, 0xfd, 0x41, 0x02, 0xbf, 0x02, 0xc0, 0xfd,
+ 0x40, 0x02, 0x14, 0x02, 0x78, 0xfd, 0x88, 0x03, 0x10, 0xfc, 0xf0, 0xfc,
+ 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xa7, 0xff, 0x04, 0x06, 0x27,
+ 0x05, 0x24, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x15,
+ 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x29, 0x00, 0x2d, 0x00, 0x31,
+ 0x00, 0x37, 0x00, 0x00, 0x05, 0x15, 0x23, 0x35, 0x33, 0x35, 0x13, 0x15,
+ 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x01, 0x15, 0x23, 0x35, 0x23, 0x15,
+ 0x23, 0x35, 0x01, 0x15, 0x23, 0x35, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35,
+ 0x23, 0x15, 0x23, 0x35, 0x01, 0x15, 0x33, 0x15, 0x23, 0x35, 0x13, 0x15,
+ 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x15, 0x23, 0x35,
+ 0x06, 0x26, 0xcc, 0x66, 0x66, 0x66, 0x66, 0x66, 0xfe, 0xc7, 0xb7, 0xd3,
+ 0xb6, 0x03, 0xdf, 0x66, 0x66, 0xd3, 0xb7, 0xd3, 0xb6, 0xfe, 0xc7, 0x67,
+ 0xce, 0x67, 0x67, 0x67, 0x67, 0xce, 0x67, 0x67, 0x16, 0xe6, 0x74, 0x72,
+ 0x01, 0xb6, 0xcc, 0xcc, 0x01, 0xb4, 0xca, 0xca, 0xfc, 0x24, 0x74, 0x74,
+ 0x74, 0x74, 0x05, 0xac, 0xe6, 0x72, 0x74, 0x74, 0x74, 0x74, 0x74, 0xfa,
+ 0xc6, 0x72, 0x74, 0xe6, 0x01, 0xb6, 0xcc, 0xcc, 0x01, 0xb4, 0xca, 0xca,
+ 0x01, 0xd0, 0x74, 0x72, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20,
+ 0xff, 0xca, 0x06, 0x22, 0x06, 0x23, 0x00, 0x04, 0x00, 0x00, 0x13, 0x09,
+ 0x02, 0x21, 0x20, 0x03, 0x01, 0x03, 0x01, 0xfe, 0xda, 0xfc, 0x4a, 0x03,
+ 0xb6, 0x02, 0x6d, 0xfd, 0x93, 0xfc, 0x14, 0x00, 0x00, 0x02, 0x00, 0x20,
+ 0xff, 0xca, 0x06, 0x22, 0x06, 0x23, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00,
+ 0x1b, 0x01, 0x21, 0x13, 0x09, 0x04, 0x21, 0x99, 0xf7, 0x03, 0x22, 0xf7,
+ 0xfd, 0x78, 0xfc, 0xff, 0x03, 0x01, 0x03, 0x01, 0xfe, 0xda, 0xfc, 0x4a,
+ 0x03, 0x8b, 0xfc, 0xb1, 0x03, 0x4f, 0x02, 0x0c, 0xfe, 0x1f, 0x02, 0x6d,
+ 0xfd, 0x93, 0xfc, 0x14, 0x00, 0x02, 0x00, 0x87, 0xff, 0x46, 0x05, 0xc3,
+ 0x05, 0xfc, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x09, 0x01, 0x11,
+ 0x09, 0x01, 0x03, 0x11, 0x09, 0x01, 0x11, 0x01, 0xee, 0x02, 0x37, 0x02,
+ 0x37, 0xfd, 0xc9, 0xfd, 0xc9, 0x67, 0x02, 0x9e, 0x02, 0x9d, 0xfd, 0x63,
+ 0x01, 0x35, 0xfe, 0x95, 0x01, 0x6b, 0x02, 0xd8, 0x01, 0x6b, 0xfe, 0x95,
+ 0xfc, 0xe6, 0x03, 0x5c, 0x01, 0xad, 0xfe, 0x53, 0xfc, 0xa4, 0xfe, 0x53,
+ 0x00, 0x01, 0x00, 0x87, 0xff, 0x46, 0x05, 0xc3, 0x05, 0xfc, 0x00, 0x05,
+ 0x00, 0x00, 0x37, 0x11, 0x09, 0x01, 0x11, 0x01, 0x87, 0x02, 0x9e, 0x02,
+ 0x9d, 0xfd, 0x63, 0xf3, 0x03, 0x5c, 0x01, 0xad, 0xfe, 0x53, 0xfc, 0xa4,
+ 0xfe, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1e, 0xff, 0xb9, 0x06, 0x2a,
+ 0x05, 0x89, 0x00, 0x05, 0x00, 0x00, 0x05, 0x09, 0x01, 0x21, 0x09, 0x01,
+ 0x01, 0xa2, 0xfe, 0x7d, 0x01, 0x83, 0x03, 0x05, 0x01, 0x83, 0xfe, 0x7d,
+ 0x47, 0x02, 0xe8, 0x02, 0xe8, 0xfd, 0x18, 0xfd, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x64, 0xfe, 0x00, 0x07, 0xaa, 0x06, 0x28, 0x00, 0x0b,
+ 0x00, 0x00, 0x16, 0x10, 0x01, 0x36, 0x20, 0x17, 0x00, 0x10, 0x01, 0x06,
+ 0x20, 0x27, 0x65, 0x01, 0xd1, 0xe9, 0x01, 0xd1, 0xe9, 0x01, 0xd1, 0xfe,
+ 0x2f, 0xe9, 0xfe, 0x2f, 0xe9, 0x40, 0x04, 0xa8, 0x01, 0x2a, 0x96, 0x96,
+ 0xfe, 0xd6, 0xfb, 0x58, 0xfe, 0xd6, 0x96, 0x96, 0x00, 0x01, 0x00, 0x45,
+ 0xff, 0xa0, 0x05, 0xfd, 0x06, 0x4d, 0x00, 0x04, 0x00, 0x00, 0x09, 0x03,
+ 0x11, 0x03, 0xcd, 0x02, 0x2f, 0xfd, 0xd1, 0xfc, 0x79, 0x06, 0x4c, 0xfc,
+ 0xaa, 0xfc, 0xaa, 0x01, 0x46, 0x04, 0x20, 0x00, 0x00, 0x02, 0x00, 0x45,
+ 0xff, 0xa0, 0x05, 0xfd, 0x06, 0x4d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00,
+ 0x09, 0x01, 0x11, 0x09, 0x05, 0x11, 0x03, 0xa7, 0xfd, 0x05, 0x02, 0xfb,
+ 0x01, 0xd7, 0xfe, 0x4f, 0x02, 0x2f, 0xfd, 0xd1, 0xfc, 0x79, 0x05, 0xc6,
+ 0xfe, 0xee, 0xfc, 0x86, 0xfe, 0xec, 0x02, 0xd0, 0x03, 0x56, 0xfc, 0xaa,
+ 0xfc, 0xaa, 0x01, 0x46, 0x04, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09,
+ 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x15, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0xb5, 0xb6, 0x01, 0x38,
+ 0xfe, 0xc8, 0x01, 0x38, 0xfe, 0xc8, 0x02, 0x8e, 0xfc, 0xbc, 0xac, 0xac,
+ 0xac, 0xac, 0x05, 0xd5, 0xfe, 0x07, 0x90, 0x90, 0x90, 0xfe, 0x7e, 0xaa,
+ 0x02, 0x2c, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0xf3, 0x06, 0x14, 0x00, 0x13, 0x00, 0x00, 0x01, 0x33,
+ 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33,
+ 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x01, 0x53, 0xa0, 0xa0, 0xa5, 0xa5,
+ 0xa5, 0xa5, 0xa5, 0xa5, 0xa0, 0xa0, 0x02, 0xbc, 0x90, 0xfd, 0xd4, 0x02,
+ 0x2c, 0x90, 0x90, 0x90, 0x02, 0x38, 0xfd, 0xc8, 0x90, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xdb, 0x00, 0x00, 0x03, 0xf9, 0x05, 0xd5, 0x00, 0x23,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x33, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x33,
+ 0x32, 0x17, 0xb5, 0xb6, 0x01, 0x01, 0x10, 0x0b, 0x23, 0x10, 0x10, 0x02,
+ 0x70, 0x01, 0x5c, 0x52, 0x12, 0x11, 0x02, 0x8e, 0xfc, 0xbc, 0x05, 0x05,
+ 0x0f, 0x0c, 0x22, 0x10, 0x11, 0x01, 0x71, 0x02, 0x5c, 0x52, 0x16, 0x14,
+ 0x05, 0xd5, 0xfd, 0x2c, 0x01, 0x01, 0x09, 0x25, 0x24, 0x52, 0x86, 0x94,
+ 0x04, 0xfe, 0x2f, 0xaa, 0x03, 0x02, 0x04, 0x03, 0x09, 0x25, 0x24, 0x52,
+ 0x86, 0x94, 0x06, 0x00, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x04, 0x19,
+ 0x05, 0xd5, 0x00, 0x10, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x21, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x17, 0x15, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x15,
+ 0x21, 0x15, 0xb5, 0x01, 0x9a, 0xe2, 0x73, 0x74, 0x74, 0x73, 0xe2, 0xe4,
+ 0xb6, 0xac, 0xac, 0xb6, 0xe4, 0x7f, 0x8b, 0x8b, 0x7f, 0xe4, 0x01, 0x38,
+ 0x05, 0xd5, 0x71, 0x72, 0xdb, 0xdd, 0x71, 0x71, 0xfd, 0xa8, 0x03, 0xcf,
+ 0x90, 0x90, 0xd1, 0x92, 0x87, 0x86, 0x92, 0xd0, 0x90, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0xfe, 0x66, 0x04, 0xcc, 0x05, 0xd5, 0x00, 0x1b,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x17, 0x13, 0x23, 0x03, 0x2e,
+ 0x01, 0x2b, 0x01, 0x11, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x19, 0x01, 0x21, 0x32, 0x16, 0x15, 0x14, 0x06, 0x01, 0x11, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x23, 0x03, 0x32, 0x3b, 0x6e, 0x38, 0xb9, 0xc4,
+ 0xac, 0x42, 0x7d, 0x6c, 0xc6, 0x63, 0x78, 0x39, 0x45, 0xcd, 0xb8, 0x01,
+ 0x9a, 0xe7, 0xe2, 0x75, 0xfd, 0xc8, 0xe4, 0x84, 0x86, 0x86, 0x84, 0x02,
+ 0xbc, 0x16, 0x90, 0x7e, 0xfe, 0x68, 0x01, 0x7f, 0x96, 0x62, 0xfd, 0xf1,
+ 0xc2, 0x96, 0xaa, 0xf4, 0x01, 0x0e, 0x05, 0x6d, 0xd6, 0xd8, 0x8d, 0xba,
+ 0x02, 0x4f, 0xfd, 0xee, 0x87, 0x83, 0x83, 0x85, 0x00, 0x04, 0x00, 0x40,
+ 0xff, 0xa2, 0x04, 0x26, 0x04, 0xbc, 0x00, 0x23, 0x00, 0x28, 0x00, 0x30,
+ 0x00, 0x37, 0x00, 0x00, 0x01, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22,
+ 0x27, 0x07, 0x27, 0x37, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x37, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17,
+ 0x37, 0x17, 0x07, 0x16, 0x0f, 0x01, 0x33, 0x35, 0x34, 0x07, 0x01, 0x16,
+ 0x33, 0x32, 0x36, 0x3d, 0x01, 0x01, 0x13, 0x06, 0x07, 0x06, 0x15, 0x14,
+ 0x03, 0xc2, 0xa6, 0x38, 0xa9, 0x7b, 0x7a, 0x52, 0x5d, 0x56, 0x63, 0x35,
+ 0xe3, 0xe2, 0x26, 0x8d, 0x0a, 0x0c, 0x4b, 0x88, 0x56, 0xa4, 0x4c, 0x5b,
+ 0xab, 0x51, 0xd1, 0x6b, 0x85, 0x56, 0x97, 0x33, 0xa8, 0x30, 0x32, 0x9d,
+ 0xfe, 0xdd, 0x37, 0x59, 0x8a, 0xa6, 0xfd, 0xff, 0xcd, 0x59, 0x2d, 0x4e,
+ 0x02, 0x7f, 0xfd, 0x81, 0xaa, 0x66, 0x61, 0x3c, 0x7d, 0x4e, 0x85, 0x56,
+ 0x7b, 0xbd, 0xc0, 0xbf, 0x0c, 0x0c, 0x45, 0x2e, 0x2e, 0xaa, 0x27, 0x27,
+ 0x72, 0xb3, 0x4f, 0xcb, 0x73, 0x2b, 0x41, 0x12, 0x18, 0xba, 0xfe, 0x78,
+ 0x2e, 0xd9, 0xb4, 0x29, 0xfe, 0xe2, 0x01, 0x15, 0x0c, 0x1e, 0x33, 0x7b,
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xea, 0xff, 0x42, 0x02, 0xc4,
+ 0x06, 0x93, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x11, 0x33, 0x13, 0x33, 0x03,
+ 0x33, 0x15, 0x23, 0x03, 0x15, 0x14, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x03, 0x23, 0x13, 0x11, 0x23, 0x35, 0x33, 0x11, 0x01,
+ 0x52, 0x2b, 0xad, 0x99, 0xad, 0x91, 0xbd, 0x98, 0x43, 0x67, 0xab, 0xab,
+ 0xbf, 0x49, 0x0b, 0x0a, 0x5c, 0x99, 0xc1, 0x79, 0x79, 0x05, 0x9e, 0xfe,
+ 0xc2, 0x02, 0x33, 0xfd, 0xcd, 0x8f, 0xfe, 0x0f, 0x6f, 0x89, 0x4e, 0x9a,
+ 0x50, 0x0c, 0x10, 0xfe, 0xd6, 0x02, 0x72, 0x02, 0x1d, 0x8f, 0x01, 0x3e,
+ 0xff, 0xff, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x6a, 0x05, 0xd5, 0x10, 0x06,
+ 0x04, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x04, 0x9a,
+ 0x06, 0x14, 0x00, 0x19, 0x00, 0x00, 0x21, 0x23, 0x11, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x11, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x11, 0x33, 0x11, 0x23, 0x03, 0xf4, 0xa6, 0x70,
+ 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b, 0x50, 0x51, 0x6a, 0xad, 0x59, 0x5a,
+ 0xa5, 0xa5, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87, 0x06, 0x14,
+ 0xfd, 0x9e, 0x65, 0x32, 0x32, 0x77, 0x78, 0xe8, 0xfd, 0xf5, 0xfe, 0x4c,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x04, 0xe0, 0x05, 0xd5, 0x00, 0x0e,
+ 0x00, 0x00, 0x25, 0x33, 0x11, 0x23, 0x11, 0x23, 0x01, 0x11, 0x23, 0x11,
+ 0x33, 0x11, 0x01, 0x33, 0x01, 0x04, 0x47, 0x98, 0xb1, 0x3e, 0xfd, 0x7b,
+ 0xb6, 0xb6, 0x02, 0x5b, 0xea, 0xfd, 0x65, 0xaa, 0xfe, 0x15, 0x01, 0x41,
+ 0x02, 0xcf, 0xfd, 0x31, 0x05, 0xd5, 0xfd, 0x89, 0x02, 0x77, 0xfd, 0x48,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x04, 0x26, 0x06, 0x14, 0x00, 0x0e,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x33, 0x11, 0x23,
+ 0x11, 0x23, 0x01, 0x11, 0x23, 0xa7, 0xa7, 0x01, 0xee, 0xd4, 0xfd, 0xe9,
+ 0x01, 0x9e, 0x8f, 0xa6, 0x32, 0xfe, 0x00, 0xa7, 0x06, 0x14, 0xfc, 0x69,
+ 0x01, 0xe3, 0xfd, 0xf4, 0xfe, 0x45, 0xfe, 0x4c, 0x01, 0x1b, 0x02, 0x23,
+ 0xfd, 0xdd, 0x00, 0x00, 0x00, 0x01, 0x00, 0x52, 0xfe, 0xbf, 0x05, 0x51,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x01, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x35, 0x01, 0x21, 0x68, 0x04, 0x1f, 0xfc, 0xaf, 0x04,
+ 0x1b, 0xb5, 0xfb, 0xb7, 0x03, 0x51, 0xfc, 0xc4, 0x05, 0xd5, 0x9a, 0xfb,
+ 0x6f, 0xfe, 0x15, 0x01, 0x41, 0x9a, 0x04, 0x91, 0x00, 0x01, 0x00, 0x4f,
+ 0xfe, 0xe5, 0x04, 0x1e, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x01, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x01, 0x21, 0x66, 0x03,
+ 0x12, 0xfd, 0x92, 0x03, 0x14, 0xa6, 0xfc, 0xd7, 0x02, 0x6f, 0xfd, 0xa8,
+ 0x04, 0x60, 0xa8, 0xfc, 0xdb, 0xfe, 0x52, 0x01, 0x1b, 0xa8, 0x03, 0x25,
+ 0x00, 0x02, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xec, 0x05, 0xf1, 0x00, 0x10,
+ 0x00, 0x1c, 0x00, 0x00, 0x01, 0x35, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01,
+ 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x16, 0x01, 0x10, 0x12,
+ 0x33, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22, 0x02, 0x04, 0x3b, 0xb0,
+ 0xb0, 0x46, 0xd4, 0x95, 0xf3, 0xfe, 0xcf, 0x01, 0x31, 0xf3, 0x95, 0xd4,
+ 0xfd, 0x2f, 0xd3, 0xb8, 0xb8, 0xd4, 0xd4, 0xb8, 0xb8, 0xd3, 0x04, 0xed,
+ 0xe8, 0xfa, 0x2b, 0xe7, 0x84, 0x80, 0x01, 0xab, 0x01, 0x5c, 0x01, 0x5c,
+ 0x01, 0xab, 0x80, 0xfd, 0x78, 0xfe, 0xe3, 0xfe, 0xbb, 0x01, 0x45, 0x01,
+ 0x1d, 0x01, 0x1d, 0x01, 0x45, 0xfe, 0xbb, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0xfe, 0x66, 0x05, 0x83, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x00, 0x13, 0x21,
+ 0x09, 0x01, 0x21, 0x11, 0x10, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36,
+ 0x35, 0x11, 0x01, 0x23, 0x01, 0x11, 0x23, 0xb5, 0x01, 0x0f, 0x01, 0x57,
+ 0x01, 0x58, 0x01, 0x0f, 0xb8, 0xcc, 0x46, 0x3d, 0x79, 0x63, 0xfe, 0xa5,
+ 0xb6, 0xfe, 0xa5, 0xb0, 0x05, 0xd5, 0xfc, 0x08, 0x03, 0xf8, 0xfa, 0x93,
+ 0xfe, 0xf2, 0xf4, 0xaa, 0x96, 0xc2, 0x04, 0xb7, 0xfc, 0x00, 0x04, 0x00,
+ 0xfa, 0xe1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x04, 0xde,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x25, 0x13, 0x21, 0x01,
+ 0x23, 0x01, 0x33, 0x13, 0x21, 0x13, 0x33, 0x02, 0x76, 0xf7, 0xfe, 0x11,
+ 0x01, 0x5f, 0xcf, 0xfe, 0x00, 0xbd, 0x7b, 0x02, 0x5e, 0x7a, 0xc0, 0xc7,
+ 0x02, 0xe7, 0xfc, 0x52, 0x05, 0xd5, 0xfe, 0x81, 0x01, 0x7f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xec, 0x05, 0xf1, 0x00, 0x0f,
+ 0x00, 0x18, 0x00, 0x00, 0x25, 0x15, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01,
+ 0x33, 0x32, 0x00, 0x10, 0x00, 0x23, 0x22, 0x26, 0x00, 0x10, 0x02, 0x23,
+ 0x22, 0x02, 0x10, 0x12, 0x20, 0x01, 0x18, 0xb0, 0xb0, 0x45, 0xd5, 0x94,
+ 0xf3, 0x01, 0x32, 0xfe, 0xce, 0xf3, 0x94, 0xd5, 0x02, 0xd1, 0xd2, 0xb8,
+ 0xb9, 0xd3, 0xd3, 0x01, 0x71, 0xe7, 0xe8, 0x05, 0xd5, 0xe7, 0x84, 0x80,
+ 0xfe, 0x55, 0xfd, 0x48, 0xfe, 0x55, 0x80, 0x01, 0x6b, 0x02, 0x3a, 0x01,
+ 0x45, 0xfe, 0xbb, 0xfd, 0xc6, 0xfe, 0xbb, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x05, 0x4a, 0x04, 0x7b, 0x00, 0x14, 0x00, 0x00, 0x01, 0x30,
+ 0x01, 0x23, 0x01, 0x33, 0x01, 0x13, 0x36, 0x33, 0x32, 0x16, 0x1d, 0x01,
+ 0x23, 0x35, 0x34, 0x26, 0x22, 0x07, 0x06, 0x03, 0xba, 0xfe, 0xd8, 0xe1,
+ 0xfe, 0x86, 0xaf, 0x01, 0x3b, 0xf9, 0x4b, 0xc8, 0x76, 0xa7, 0xa1, 0x49,
+ 0x66, 0x25, 0x13, 0x03, 0x6d, 0xfc, 0x93, 0x04, 0x60, 0xfc, 0x54, 0x02,
+ 0xe6, 0xe1, 0xbf, 0x86, 0x72, 0x72, 0x3a, 0x54, 0x2a, 0x15, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x3d, 0x00, 0x00, 0x08, 0x1f, 0x05, 0xf0, 0x00, 0x1d,
+ 0x00, 0x00, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x13, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x1d, 0x01,
+ 0x23, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x06, 0xa9, 0xfe, 0xe8,
+ 0xe5, 0xfe, 0xe5, 0xfe, 0xe1, 0xe4, 0xfe, 0xaf, 0xb8, 0x01, 0x1a, 0x01,
+ 0x1a, 0xcc, 0x01, 0x1b, 0xed, 0x10, 0x36, 0x4d, 0x7c, 0x7a, 0x4c, 0x4d,
+ 0x99, 0x49, 0x29, 0x26, 0x24, 0x1a, 0x04, 0xe1, 0xfb, 0x1f, 0x05, 0x10,
+ 0xfa, 0xf0, 0x05, 0xd5, 0xfb, 0x12, 0x04, 0xee, 0xfb, 0x12, 0x04, 0x26,
+ 0x47, 0x40, 0x5c, 0x5c, 0x5b, 0x6e, 0x83, 0x79, 0x36, 0x50, 0x28, 0x1c,
+ 0x00, 0x01, 0x00, 0x4d, 0x00, 0x00, 0x06, 0xed, 0x04, 0x7b, 0x00, 0x1b,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x1d, 0x01, 0x23,
+ 0x35, 0x34, 0x26, 0x22, 0x07, 0x06, 0x07, 0x03, 0x23, 0x0b, 0x01, 0x23,
+ 0x01, 0x33, 0x1b, 0x01, 0x33, 0x13, 0x04, 0xbf, 0x15, 0x33, 0x52, 0x77,
+ 0x76, 0xa6, 0xa0, 0x49, 0x67, 0x24, 0x16, 0x06, 0xce, 0xc3, 0xd9, 0xda,
+ 0xc3, 0xfe, 0xf8, 0xa6, 0xcf, 0xce, 0xc3, 0xcf, 0x03, 0x88, 0x56, 0x3d,
+ 0x60, 0xbf, 0x86, 0x72, 0x72, 0x3a, 0x54, 0x2a, 0x19, 0x14, 0xfc, 0x93,
+ 0x03, 0x96, 0xfc, 0x6a, 0x04, 0x60, 0xfc, 0x96, 0x03, 0x6a, 0xfc, 0x96,
+ 0x00, 0x02, 0x00, 0x5d, 0x00, 0x00, 0x04, 0x0c, 0x04, 0xb3, 0x00, 0x13,
+ 0x00, 0x1b, 0x00, 0x00, 0x13, 0x10, 0x25, 0x36, 0x33, 0x32, 0x15, 0x14,
+ 0x0f, 0x01, 0x13, 0x01, 0x33, 0x01, 0x23, 0x03, 0x07, 0x35, 0x36, 0x3f,
+ 0x01, 0x36, 0x35, 0x26, 0x23, 0x22, 0x15, 0x14, 0xb4, 0x01, 0x32, 0x12,
+ 0x10, 0x97, 0xa5, 0x72, 0x99, 0x01, 0x3b, 0xb0, 0xfe, 0x86, 0xe1, 0xbc,
+ 0x97, 0x2c, 0x36, 0x94, 0xc3, 0x01, 0x29, 0x9d, 0x03, 0x4d, 0x01, 0x32,
+ 0x31, 0x03, 0xf8, 0x99, 0x5d, 0x40, 0xfe, 0x2f, 0x03, 0xac, 0xfb, 0xa0,
+ 0x02, 0x32, 0x55, 0xc4, 0x14, 0x1c, 0x50, 0x6e, 0x34, 0x34, 0xa0, 0x25,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x00, 0x05, 0xd5, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x03, 0xff,
+ 0xfd, 0x6c, 0xb6, 0xb6, 0x02, 0x94, 0x02, 0xc7, 0xfd, 0x39, 0x05, 0xd5,
+ 0xfd, 0x9c, 0x00, 0x00, 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x03, 0x6f,
+ 0x04, 0x60, 0x00, 0x07, 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33,
+ 0x11, 0x21, 0x03, 0x6e, 0xfd, 0xe5, 0xa5, 0xa5, 0x02, 0x1b, 0x02, 0x04,
+ 0xfd, 0xfc, 0x04, 0x60, 0xfe, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64,
+ 0xff, 0xe7, 0x04, 0x56, 0x04, 0x68, 0x00, 0x0a, 0x00, 0x27, 0x00, 0x00,
+ 0x01, 0x22, 0x15, 0x11, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x07, 0x22, 0x27, 0x26,
+ 0x11, 0x10, 0x37, 0x36, 0x37, 0x15, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x11, 0x10, 0x02, 0xea, 0x3a, 0x55, 0x56, 0x4c, 0x4d, 0x3f,
+ 0x31, 0x7d, 0x73, 0x7c, 0x7c, 0x74, 0xb6, 0xa5, 0xb4, 0x78, 0x7a, 0x7a,
+ 0x5b, 0x96, 0x3b, 0x34, 0x4e, 0x4e, 0x45, 0x65, 0x03, 0xcb, 0x91, 0xfd,
+ 0x52, 0x68, 0x5d, 0xdf, 0xd0, 0x70, 0x5b, 0x9d, 0x84, 0x8d, 0xfe, 0xd9,
+ 0xfe, 0xf1, 0xa1, 0x98, 0x01, 0x99, 0x9c, 0x01, 0x13, 0x01, 0x1e, 0x92,
+ 0x6d, 0x1c, 0xa3, 0x17, 0x4e, 0x73, 0xbe, 0xca, 0x73, 0x67, 0x02, 0xaf,
+ 0x01, 0x2e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0xe5, 0x02, 0x4f,
+ 0x06, 0x14, 0x00, 0x17, 0x00, 0x00, 0x21, 0x35, 0x06, 0x23, 0x22, 0x2f,
+ 0x01, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x34, 0x26, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x01, 0xa8, 0x67, 0xec, 0x22, 0x32,
+ 0x01, 0x36, 0x4f, 0x8d, 0x96, 0x45, 0x5f, 0xd0, 0xe5, 0xa4, 0x48, 0x49,
+ 0xae, 0xc9, 0x0a, 0xbd, 0x23, 0xcb, 0xbe, 0x02, 0x6c, 0x99, 0x61, 0x9c,
+ 0x60, 0x62, 0xd4, 0xfb, 0x82, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x36, 0x00, 0x12,
+ 0x20, 0x12, 0x10, 0x02, 0x20, 0x02, 0x00, 0x26, 0x20, 0x06, 0x15, 0x14,
+ 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x36, 0x35, 0x02,
+ 0xc7, 0x55, 0x79, 0x54, 0x54, 0x7a, 0x54, 0xfd, 0x9f, 0xf5, 0x01, 0xb1,
+ 0xf7, 0xf7, 0xfe, 0x4f, 0xf5, 0x02, 0xed, 0x9a, 0xfe, 0xf6, 0x9b, 0x12,
+ 0x14, 0x32, 0x52, 0x78, 0x7a, 0x51, 0x2d, 0x15, 0x10, 0x01, 0x61, 0x5f,
+ 0x5e, 0x87, 0x5c, 0x5c, 0x02, 0x68, 0x01, 0x38, 0xfe, 0xc8, 0xfd, 0xd9,
+ 0xfe, 0xc7, 0x01, 0x39, 0x01, 0xda, 0xe9, 0xe7, 0xc9, 0x60, 0x4d, 0x47,
+ 0x38, 0x5d, 0x5f, 0x32, 0x42, 0x49, 0x5b, 0x00, 0x00, 0x01, 0x00, 0x58,
+ 0x00, 0x00, 0x02, 0xe2, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x02, 0xe1,
+ 0xfd, 0x77, 0x01, 0xe2, 0xfe, 0x3f, 0x01, 0xc1, 0xfe, 0x2a, 0x04, 0x60,
+ 0xfb, 0xa0, 0x93, 0x01, 0x78, 0x94, 0x01, 0x2d, 0x94, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xeb, 0xff, 0x11, 0x00, 0xd7, 0x03, 0x67, 0x12, 0x07,
+ 0x02, 0x74, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09,
+ 0x02, 0x9c, 0x03, 0x11, 0x05, 0xe0, 0x00, 0x06, 0x00, 0x00, 0x09, 0x01,
+ 0x33, 0x09, 0x01, 0x33, 0x01, 0x01, 0x4c, 0xfe, 0xbd, 0x78, 0x01, 0x0c,
+ 0x01, 0x0d, 0x77, 0xfe, 0xbd, 0x02, 0x9c, 0x03, 0x44, 0xfd, 0x40, 0x02,
+ 0xc0, 0xfc, 0xbc, 0x00, 0x00, 0x01, 0x00, 0x79, 0xfe, 0x10, 0x04, 0x4e,
+ 0x05, 0xf0, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x17, 0x1e, 0x01, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x2e,
+ 0x02, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x35, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x03, 0xda, 0x67, 0xb8, 0x55, 0x95, 0xa1, 0x36,
+ 0x31, 0x9a, 0x6d, 0xd0, 0x5d, 0x60, 0x83, 0x67, 0xb5, 0x79, 0x70, 0x84,
+ 0x3f, 0x16, 0x39, 0x1e, 0x47, 0x5d, 0x6e, 0x36, 0xc9, 0x2c, 0x0d, 0x2d,
+ 0x22, 0x6c, 0x73, 0x6f, 0xd4, 0x67, 0x9b, 0xaa, 0x7a, 0x8b, 0x6e, 0xcc,
+ 0xb5, 0xfb, 0xdc, 0x5f, 0xc4, 0x05, 0xa4, 0xc5, 0x37, 0x36, 0x80, 0x76,
+ 0x63, 0x33, 0x2e, 0x23, 0x19, 0x2f, 0x69, 0x6c, 0xb6, 0xd9, 0x70, 0x59,
+ 0x12, 0x77, 0x6e, 0x49, 0xaa, 0x10, 0x27, 0x4f, 0x38, 0xce, 0x2d, 0x0a,
+ 0x21, 0x07, 0x18, 0x2f, 0xd0, 0x45, 0x46, 0x88, 0x7e, 0x6e, 0x7c, 0x1f,
+ 0x18, 0x2d, 0xc0, 0xab, 0xc6, 0xe4, 0x26, 0x00, 0x00, 0x01, 0x00, 0x52,
+ 0xfe, 0x10, 0x04, 0x9c, 0x05, 0xd5, 0x00, 0x18, 0x00, 0x00, 0x01, 0x33,
+ 0x15, 0x23, 0x22, 0x2e, 0x02, 0x27, 0x25, 0x26, 0x2b, 0x01, 0x35, 0x01,
+ 0x21, 0x35, 0x21, 0x15, 0x01, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x04, 0x3b,
+ 0x61, 0x84, 0x23, 0x51, 0x6a, 0x7e, 0x3e, 0xfe, 0xf2, 0x47, 0x66, 0x70,
+ 0x03, 0x51, 0xfc, 0xc4, 0x04, 0x1f, 0xfc, 0xb3, 0x67, 0x69, 0xe3, 0x7a,
+ 0x90, 0xfe, 0xba, 0xaa, 0x10, 0x27, 0x4f, 0x38, 0xf3, 0x3f, 0x9a, 0x04,
+ 0x91, 0xaa, 0x9a, 0xfb, 0x6f, 0x0d, 0x5f, 0xcd, 0x6e, 0x49, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x01, 0x11, 0x33, 0x11,
+ 0xc1, 0x99, 0x99, 0x01, 0x92, 0x7a, 0x05, 0x58, 0x88, 0xfb, 0x30, 0x05,
+ 0x58, 0xfa, 0xa8, 0x00, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce,
+ 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23,
+ 0x01, 0x11, 0x33, 0x11, 0xc1, 0x99, 0x99, 0x01, 0x92, 0x7a, 0x04, 0x24,
+ 0x88, 0xfc, 0x64, 0x05, 0x58, 0xfa, 0xa8, 0x00, 0x00, 0x02, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x15, 0x23, 0x01, 0x11, 0x33, 0x11, 0xc1, 0x99, 0x99, 0x01,
+ 0x92, 0x7a, 0x02, 0xf0, 0x88, 0xfd, 0x98, 0x05, 0x58, 0xfa, 0xa8, 0x00,
+ 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x01, 0x11, 0x33, 0x11,
+ 0xc1, 0x99, 0x99, 0x01, 0x92, 0x7a, 0x01, 0xbc, 0x88, 0xfe, 0xcc, 0x05,
+ 0x58, 0xfa, 0xa8, 0x00, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce,
+ 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x37, 0x33, 0x15, 0x23,
+ 0x01, 0x33, 0x11, 0x23, 0xc1, 0x99, 0x99, 0x01, 0x92, 0x7a, 0x7a, 0x88,
+ 0x88, 0x05, 0x58, 0xfa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x03, 0x23, 0x11, 0x33, 0x02, 0x34, 0x99, 0x99,
+ 0xf9, 0x7a, 0x7a, 0x05, 0x58, 0x88, 0xfb, 0x30, 0x05, 0x58, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x03, 0x23, 0x11, 0x33,
+ 0x02, 0x34, 0x99, 0x99, 0xf9, 0x7a, 0x7a, 0x04, 0x24, 0x88, 0xfc, 0x64,
+ 0x05, 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce,
+ 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23,
+ 0x03, 0x23, 0x11, 0x33, 0x02, 0x34, 0x99, 0x99, 0xf9, 0x7a, 0x7a, 0x02,
+ 0xf0, 0x88, 0xfd, 0x98, 0x05, 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x01, 0x33, 0x15, 0x23, 0x03, 0x23, 0x11, 0x33, 0x02, 0x34, 0x99, 0x99,
+ 0xf9, 0x7a, 0x7a, 0x01, 0xbc, 0x88, 0xfe, 0xcc, 0x05, 0x58, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x25, 0x33, 0x15, 0x2b, 0x02, 0x11, 0x33, 0x02,
+ 0x34, 0x99, 0x99, 0xf9, 0x7a, 0x7a, 0x88, 0x88, 0x05, 0x58, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x05,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x15, 0x21, 0x01, 0x3b, 0x7a, 0x02,
+ 0x0c, 0xfe, 0x6e, 0x05, 0x58, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07, 0x00, 0x00, 0x21, 0x23,
+ 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x01, 0x3b, 0x7a, 0x7a, 0x01, 0x92,
+ 0xfe, 0x6e, 0x05, 0x58, 0xfe, 0xcc, 0x88, 0x00, 0x00, 0x01, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07, 0x00, 0x00, 0x21, 0x23,
+ 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x01, 0x3b, 0x7a, 0x7a, 0x01, 0x92,
+ 0xfe, 0x6e, 0x05, 0x58, 0xfd, 0x98, 0x88, 0x00, 0x00, 0x01, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x07, 0x00, 0x00, 0x21, 0x23,
+ 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x01, 0x3b, 0x7a, 0x7a, 0x01, 0x92,
+ 0xfe, 0x6e, 0x05, 0x58, 0xfc, 0x64, 0x88, 0x00, 0x00, 0x01, 0x00, 0xc0,
+ 0x00, 0x00, 0x02, 0xce, 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x25, 0x21,
+ 0x15, 0x21, 0x11, 0x33, 0x01, 0x3b, 0x01, 0x92, 0xfd, 0xf4, 0x7a, 0x88,
+ 0x88, 0x05, 0x58, 0x00, 0x00, 0x01, 0x00, 0x5b, 0x02, 0x9c, 0x02, 0x4d,
+ 0x05, 0xe4, 0x00, 0x09, 0x00, 0x00, 0x01, 0x33, 0x17, 0x07, 0x27, 0x11,
+ 0x23, 0x11, 0x07, 0x27, 0x01, 0x3b, 0x33, 0xdf, 0x45, 0x83, 0x61, 0x84,
+ 0x44, 0x05, 0xe4, 0xdd, 0x43, 0x83, 0xfd, 0x55, 0x02, 0xab, 0x83, 0x43,
+ 0x00, 0x01, 0x00, 0x5b, 0x02, 0x98, 0x02, 0x4d, 0x05, 0xe0, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x23, 0x27, 0x37, 0x17, 0x11, 0x33, 0x11, 0x37, 0x17,
+ 0x01, 0x6e, 0x33, 0xdf, 0x44, 0x84, 0x61, 0x83, 0x45, 0x02, 0x98, 0xdd,
+ 0x43, 0x83, 0x02, 0xab, 0xfd, 0x55, 0x83, 0x43, 0x00, 0x02, 0x00, 0xaf,
+ 0x02, 0x9c, 0x01, 0x23, 0x05, 0xe0, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00,
+ 0x13, 0x33, 0x15, 0x23, 0x11, 0x33, 0x11, 0x07, 0x23, 0x27, 0xb0, 0x73,
+ 0x73, 0x73, 0x0c, 0x5c, 0x0b, 0x03, 0x2a, 0x8e, 0x03, 0x44, 0xfe, 0x91,
+ 0xc8, 0xc8, 0x00, 0x00, 0x00, 0x02, 0x00, 0xaf, 0x02, 0x9c, 0x01, 0x23,
+ 0x05, 0xe0, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x01, 0x23, 0x35, 0x33,
+ 0x11, 0x23, 0x11, 0x37, 0x33, 0x17, 0x01, 0x23, 0x73, 0x73, 0x73, 0x0a,
+ 0x5c, 0x0d, 0x05, 0x52, 0x8e, 0xfc, 0xbc, 0x01, 0x6f, 0xc8, 0xc8, 0x00,
+ 0xff, 0xff, 0x00, 0xaf, 0x00, 0x00, 0x01, 0x23, 0x03, 0x44, 0x10, 0x07,
+ 0x0e, 0x5c, 0x00, 0x00, 0xfd, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x7b,
+ 0x00, 0x00, 0x02, 0x86, 0x05, 0xd4, 0x00, 0x10, 0x00, 0x00, 0x33, 0x35,
+ 0x20, 0x02, 0x21, 0x35, 0x20, 0x02, 0x21, 0x35, 0x20, 0x13, 0x16, 0x07,
+ 0x16, 0x13, 0x12, 0xba, 0x01, 0x29, 0x12, 0xfe, 0xd7, 0x01, 0x29, 0x1b,
+ 0xfe, 0xc5, 0x01, 0xe7, 0x0d, 0x08, 0x9d, 0xa6, 0x05, 0x09, 0xa3, 0x02,
+ 0x27, 0xa3, 0x01, 0xc5, 0xa2, 0xfe, 0x8c, 0xe5, 0x63, 0x6d, 0xfe, 0xfb,
+ 0xfe, 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x7b, 0x00, 0x00, 0x02, 0x50,
+ 0x04, 0x60, 0x00, 0x10, 0x00, 0x00, 0x33, 0x35, 0x20, 0x02, 0x21, 0x35,
+ 0x20, 0x02, 0x21, 0x35, 0x20, 0x13, 0x16, 0x07, 0x16, 0x17, 0x12, 0xa8,
+ 0x01, 0x0e, 0x12, 0xfe, 0xf2, 0x01, 0x0e, 0x1b, 0xfe, 0xf2, 0x01, 0xb1,
+ 0x0d, 0x07, 0x77, 0x81, 0x05, 0x09, 0x99, 0x01, 0x7c, 0x99, 0x01, 0x1a,
+ 0x98, 0xfe, 0xe8, 0x9e, 0x4d, 0x59, 0xbc, 0xfe, 0xb8, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x67, 0x01, 0xcb, 0x02, 0xf6, 0x05, 0xf0, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x10, 0x17, 0x07, 0x02, 0x35, 0x10, 0x21, 0x15, 0x20,
+ 0x01, 0x0f, 0x69, 0x93, 0x7d, 0x02, 0x8e, 0xfe, 0x19, 0x03, 0xcd, 0xfe,
+ 0xfe, 0xd2, 0x2e, 0x01, 0x31, 0xd4, 0x02, 0x20, 0xdb, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x67, 0x00, 0x56, 0x02, 0xf6, 0x04, 0x7b, 0x00, 0x09,
+ 0x00, 0x00, 0x01, 0x10, 0x17, 0x07, 0x02, 0x35, 0x10, 0x21, 0x15, 0x20,
+ 0x01, 0x0f, 0x69, 0x93, 0x7d, 0x02, 0x8e, 0xfe, 0x19, 0x02, 0x58, 0xfe,
+ 0xfe, 0xd2, 0x2e, 0x01, 0x31, 0xd4, 0x02, 0x20, 0xbd, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x66, 0x04, 0xb6, 0x05, 0xd5, 0x00, 0x13,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x10, 0x06, 0x2b,
+ 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x11, 0x21, 0x11, 0x23, 0xb5, 0xb6,
+ 0x02, 0x94, 0xb6, 0xb8, 0xcd, 0x45, 0x39, 0x78, 0x63, 0xfd, 0x6c, 0xb6,
+ 0x05, 0xd5, 0xfd, 0x9c, 0x02, 0x64, 0xfa, 0x93, 0xfe, 0xf2, 0xf4, 0xaa,
+ 0x96, 0xc2, 0x02, 0x5f, 0xfd, 0x39, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7,
+ 0xfe, 0x56, 0x03, 0xf4, 0x06, 0x14, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x11, 0x3e, 0x01,
+ 0x33, 0x32, 0x16, 0x15, 0x11, 0x14, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x03, 0x4e, 0x70, 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b,
+ 0xa1, 0x6a, 0xad, 0xb3, 0x93, 0xa3, 0x3f, 0x2c, 0x63, 0x1e, 0x22, 0x02,
+ 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87, 0x06, 0x14, 0xfd, 0x9e, 0x65,
+ 0x64, 0xef, 0xe8, 0xfd, 0x48, 0xd6, 0xc0, 0x9c, 0x30, 0x38, 0x92, 0x00,
+ 0x00, 0x01, 0xff, 0xfa, 0xfe, 0x4c, 0x05, 0xe6, 0x05, 0xd5, 0x00, 0x2a,
+ 0x00, 0x00, 0x03, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x01, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x2b, 0x01, 0x35, 0x01, 0x21, 0x11, 0x23, 0x11, 0x21, 0x05, 0x04, 0x70,
+ 0xfe, 0x23, 0x03, 0x08, 0xfe, 0x8e, 0x5f, 0x74, 0x59, 0x4c, 0x49, 0x89,
+ 0x88, 0xfc, 0x68, 0x74, 0x75, 0x75, 0x60, 0x72, 0x71, 0x7b, 0xad, 0x59,
+ 0x5a, 0x52, 0x54, 0x95, 0x9c, 0x01, 0x5a, 0xfd, 0xdb, 0xb6, 0xfe, 0x23,
+ 0x05, 0xd5, 0xaa, 0xcb, 0x9a, 0xfe, 0x16, 0x38, 0x2b, 0x6c, 0x68, 0x8a,
+ 0xdc, 0x7a, 0x79, 0x13, 0x13, 0x24, 0xc3, 0x31, 0x19, 0x19, 0x4b, 0x4b,
+ 0x8f, 0x86, 0x49, 0x4a, 0x98, 0x01, 0xea, 0xfc, 0x4a, 0x05, 0x2b, 0x00,
+ 0x00, 0x01, 0x00, 0x31, 0xfe, 0x4c, 0x04, 0xaf, 0x05, 0x9e, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x04, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x35, 0x01, 0x21, 0x11, 0x14, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33,
+ 0x11, 0x21, 0x15, 0x02, 0xee, 0x5e, 0x74, 0x59, 0x4d, 0x49, 0xfe, 0xee,
+ 0xfc, 0x54, 0x59, 0x5a, 0x60, 0x4c, 0xb4, 0x62, 0xab, 0x59, 0x5a, 0x53,
+ 0x52, 0x96, 0x9d, 0x01, 0x83, 0xfd, 0xad, 0x43, 0x67, 0xab, 0xab, 0xbf,
+ 0x92, 0x79, 0x79, 0xa7, 0x03, 0x0e, 0x01, 0xdc, 0x38, 0x2b, 0x6c, 0x68,
+ 0x8a, 0xdd, 0xf2, 0x12, 0x13, 0x25, 0xc3, 0x31, 0x32, 0x4b, 0x4b, 0x8f,
+ 0x84, 0x4b, 0x4a, 0xa6, 0x01, 0xf3, 0xfd, 0xa4, 0x89, 0x4e, 0x9a, 0x9f,
+ 0xd2, 0x02, 0x60, 0x8f, 0x01, 0x3e, 0xfe, 0xc2, 0xa8, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x93, 0xff, 0xe3, 0x04, 0x09, 0x05, 0xf0, 0x10, 0x06,
+ 0x01, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x77, 0xfe, 0x67, 0x03, 0x68,
+ 0x04, 0x7c, 0x00, 0x31, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x15, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0x64, 0x65, 0x36,
+ 0x36, 0x66, 0x66, 0xb0, 0x45, 0x99, 0x58, 0x57, 0x48, 0x49, 0x40, 0x74,
+ 0x35, 0x3f, 0x3d, 0x3c, 0x69, 0x8b, 0x85, 0x7b, 0x41, 0x46, 0x4b, 0x4d,
+ 0x88, 0x57, 0x49, 0x4c, 0x40, 0x51, 0x4b, 0x4d, 0x48, 0xd6, 0xe8, 0x7c,
+ 0x01, 0xac, 0x20, 0x56, 0x55, 0x7b, 0xba, 0x68, 0x68, 0x1a, 0x26, 0xb6,
+ 0x2d, 0x14, 0x15, 0x3e, 0x48, 0x6d, 0x6d, 0x46, 0x45, 0x98, 0x4d, 0x55,
+ 0x85, 0x88, 0x55, 0x55, 0x1c, 0x1c, 0x38, 0xbe, 0x25, 0x13, 0x12, 0xf0,
+ 0xe5, 0x8f, 0xc1, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x25,
+ 0x04, 0x60, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x11, 0x23, 0xa7, 0x02, 0x7e, 0xfe, 0x2a, 0x01, 0xa6, 0xfe,
+ 0x5a, 0xa8, 0x04, 0x60, 0x94, 0xfe, 0xd3, 0x94, 0xfd, 0xf5, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x56, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x08, 0xf0,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x12, 0x00, 0x15, 0x00, 0x00, 0x01, 0x33,
+ 0x09, 0x01, 0x33, 0x01, 0x23, 0x03, 0x21, 0x03, 0x2b, 0x01, 0x03, 0x21,
+ 0x03, 0x23, 0x01, 0x03, 0x21, 0x01, 0x03, 0x21, 0x02, 0x0f, 0xcf, 0x01,
+ 0xa1, 0x01, 0xa3, 0xce, 0x02, 0x00, 0xbd, 0x7b, 0xfd, 0xa3, 0x7b, 0x02,
+ 0xbd, 0x7b, 0xfd, 0xa2, 0x7a, 0xc0, 0x02, 0x68, 0xf7, 0x01, 0xef, 0x03,
+ 0x1a, 0xf6, 0x01, 0xee, 0x05, 0xd5, 0xfb, 0x3e, 0x04, 0xc2, 0xfa, 0x2b,
+ 0x01, 0x7f, 0xfe, 0x81, 0x01, 0x7f, 0xfe, 0x81, 0x05, 0x0e, 0xfd, 0x19,
+ 0x02, 0xe7, 0xfd, 0x19, 0x00, 0x04, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0x70,
+ 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x35, 0x00, 0x40, 0x00, 0x4d, 0x00, 0x00,
+ 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x25,
+ 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x15, 0x23, 0x35, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x30, 0x17,
+ 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x3d, 0x01, 0x01, 0x16, 0x17, 0x36, 0x3b, 0x01, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x02, 0x78, 0xc9, 0x9b, 0x74, 0x64,
+ 0x8a, 0xa6, 0x03, 0x54, 0xa6, 0x38, 0xaa, 0x7a, 0x63, 0x49, 0xa6, 0x38,
+ 0xa9, 0x7b, 0x9b, 0xb6, 0xe3, 0xe2, 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c,
+ 0x5b, 0xab, 0x51, 0xdb, 0x6c, 0x10, 0x5b, 0xab, 0x51, 0xdb, 0xd8, 0xfe,
+ 0xb6, 0xc9, 0x9b, 0x74, 0x64, 0x8a, 0xa6, 0xfd, 0xc8, 0x2f, 0x01, 0x6d,
+ 0xb3, 0xe8, 0x96, 0x88, 0x56, 0x52, 0x3b, 0x02, 0x33, 0x66, 0x7b, 0x62,
+ 0x73, 0xd9, 0xb4, 0x29, 0x4c, 0xfd, 0x81, 0xaa, 0x66, 0x61, 0x27, 0x0a,
+ 0xaa, 0x66, 0x61, 0xc1, 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b, 0x2e, 0x2e,
+ 0xaa, 0x27, 0x27, 0x7e, 0x14, 0x44, 0x27, 0x27, 0xfc, 0xfe, 0xb4, 0x66,
+ 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x01, 0x68, 0x6e, 0xa6, 0x3c, 0x12,
+ 0x7f, 0x8b, 0x17, 0x10, 0x00, 0x03, 0x00, 0x0e, 0xff, 0xe3, 0x08, 0x43,
+ 0x05, 0xf0, 0x00, 0x13, 0x00, 0x16, 0x00, 0x20, 0x00, 0x00, 0x01, 0x33,
+ 0x13, 0x36, 0x37, 0x36, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20,
+ 0x27, 0x26, 0x27, 0x21, 0x03, 0x23, 0x01, 0x03, 0x21, 0x00, 0x20, 0x02,
+ 0x11, 0x10, 0x12, 0x20, 0x12, 0x11, 0x10, 0x02, 0x0f, 0xcf, 0xa5, 0x29,
+ 0x64, 0xaa, 0x01, 0x1b, 0x01, 0x1b, 0x01, 0x52, 0xfe, 0xae, 0xfe, 0xe5,
+ 0xfe, 0xe5, 0xaa, 0x47, 0x2a, 0xfd, 0xa9, 0x7a, 0xc0, 0x02, 0x68, 0xf7,
+ 0x01, 0xef, 0x03, 0x2d, 0xfe, 0x74, 0xe9, 0xe9, 0x01, 0x8c, 0xe7, 0x05,
+ 0xd5, 0xfe, 0x1e, 0xae, 0x7d, 0xd2, 0xfe, 0x5b, 0xfe, 0x9e, 0xfe, 0x9f,
+ 0xfe, 0x5b, 0xd2, 0x58, 0x72, 0xfe, 0x81, 0x05, 0x0e, 0xfd, 0x19, 0x03,
+ 0x25, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8, 0x01, 0x48, 0x01,
+ 0x1a, 0x01, 0x1b, 0x00, 0x00, 0x03, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0xbc,
+ 0x04, 0x7b, 0x00, 0x22, 0x00, 0x2d, 0x00, 0x38, 0x00, 0x00, 0x01, 0x32,
+ 0x12, 0x11, 0x10, 0x02, 0x20, 0x27, 0x26, 0x27, 0x0e, 0x02, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x07, 0x35, 0x3e, 0x01, 0x33, 0x20, 0x17, 0x36, 0x01, 0x22, 0x06, 0x15,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x01, 0x22, 0x06, 0x10, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x04, 0xed, 0xd8, 0xf7, 0xf7, 0xfe,
+ 0x4f, 0x7b, 0x31, 0x1e, 0x10, 0x56, 0x7e, 0xa0, 0xa0, 0xb7, 0xe3, 0xe2,
+ 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0x01, 0x0c, 0x66,
+ 0x7c, 0xfe, 0x7b, 0xc9, 0x9b, 0x74, 0x64, 0x8a, 0xa6, 0x01, 0xd1, 0x85,
+ 0x9b, 0x9a, 0x86, 0x84, 0x9b, 0x9b, 0x04, 0x7b, 0xfe, 0xc8, 0xfe, 0xec,
+ 0xfe, 0xed, 0xfe, 0xc7, 0x9d, 0x3e, 0x52, 0x45, 0x87, 0x61, 0xc1, 0xa2,
+ 0xbd, 0xc0, 0x12, 0x7f, 0x8b, 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0xbd, 0xbd,
+ 0xfd, 0xb8, 0x66, 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x01, 0xac, 0xe7,
+ 0xfe, 0x6e, 0xe7, 0xe8, 0xc8, 0xc7, 0xe9, 0x00, 0x00, 0x02, 0x00, 0x0e,
+ 0xff, 0xe3, 0x07, 0x99, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x16, 0x00, 0x00,
+ 0x01, 0x03, 0x21, 0x01, 0x33, 0x01, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x10, 0x00, 0x23, 0x20, 0x03, 0x27, 0x21, 0x03, 0x23, 0x02,
+ 0x76, 0xf7, 0x01, 0xef, 0xfe, 0xa1, 0xcf, 0x01, 0x8f, 0x42, 0xe8, 0xaf,
+ 0x9c, 0xb7, 0xfe, 0xfc, 0xfe, 0xfe, 0x9a, 0x69, 0x22, 0xfd, 0xa2, 0x7a,
+ 0xc0, 0x05, 0x0e, 0xfd, 0x19, 0x03, 0xae, 0xfb, 0x72, 0xc0, 0xd3, 0xf0,
+ 0x03, 0x8b, 0xfc, 0x5c, 0xfe, 0xdc, 0xfe, 0xd6, 0x01, 0x34, 0x68, 0xfe,
+ 0x81, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6e, 0xff, 0xe3, 0x06, 0x69,
+ 0x04, 0x7b, 0x00, 0x28, 0x00, 0x33, 0x00, 0x00, 0x25, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x11, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11, 0x23, 0x35, 0x0e, 0x01, 0x23,
+ 0x22, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01,
+ 0x03, 0x37, 0x41, 0x91, 0xa0, 0x9f, 0xb7, 0xe3, 0xe2, 0xe8, 0x96, 0x88,
+ 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0xdb, 0xd8, 0x70, 0x6f, 0x86, 0x9c,
+ 0xa6, 0xa6, 0x3c, 0x9f, 0x6a, 0xfe, 0xfe, 0xf8, 0xc9, 0x9b, 0x74, 0x64,
+ 0x8a, 0xa6, 0xdf, 0x8d, 0x6f, 0xc1, 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b,
+ 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0xfc, 0xff, 0x00, 0xbe, 0x9f, 0x9f, 0xbe,
+ 0xa4, 0x02, 0x7b, 0xfb, 0xa0, 0xac, 0x66, 0x63, 0x02, 0x50, 0x66, 0x7b,
+ 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e,
+ 0x00, 0x00, 0x06, 0xef, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x03, 0x21, 0x13, 0x03, 0x21, 0x03, 0x23, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x01, 0x02, 0x76, 0xf7, 0x01, 0xef, 0xb3, 0x7b, 0xfd, 0xa2, 0x7a,
+ 0xc0, 0x02, 0x01, 0xcf, 0x01, 0xac, 0x01, 0xa8, 0xbd, 0xfe, 0x00, 0x05,
+ 0x0e, 0xfd, 0x19, 0xfd, 0xd9, 0x01, 0x7f, 0xfe, 0x81, 0x05, 0xd5, 0xfb,
+ 0x1f, 0x04, 0xe1, 0xfa, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x6e,
+ 0xff, 0xe3, 0x05, 0xad, 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x28, 0x00, 0x00,
+ 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x11,
+ 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x35,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0x19, 0x01, 0x01, 0x33, 0x01, 0x02, 0x78, 0xc9, 0x9b, 0x74, 0x64, 0x8a,
+ 0xa6, 0x38, 0xa9, 0x7b, 0x9b, 0xb6, 0xe3, 0xe2, 0xe8, 0x96, 0x88, 0x56,
+ 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0xdb, 0xd8, 0x01, 0x3b, 0xb0, 0xfe, 0x86,
+ 0x02, 0x33, 0x66, 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0xfd, 0xcd, 0xaa,
+ 0x66, 0x61, 0xc1, 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b, 0x2e, 0x2e, 0xaa,
+ 0x27, 0x27, 0xfc, 0xff, 0x00, 0xfe, 0x35, 0x03, 0xac, 0xfb, 0xa0, 0x00,
+ 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x06, 0xef, 0x05, 0xd5, 0x00, 0x02,
+ 0x00, 0x12, 0x00, 0x15, 0x00, 0x00, 0x01, 0x03, 0x29, 0x02, 0x15, 0x21,
+ 0x03, 0x23, 0x03, 0x21, 0x03, 0x23, 0x01, 0x33, 0x01, 0x33, 0x01, 0x33,
+ 0x01, 0x23, 0x17, 0x02, 0x76, 0xf7, 0x01, 0xef, 0x02, 0x3e, 0x01, 0x43,
+ 0xfe, 0x83, 0x83, 0xce, 0x7b, 0xfd, 0xa2, 0x7a, 0xc0, 0x02, 0x01, 0xcf,
+ 0x01, 0x43, 0xd1, 0x01, 0x40, 0xbd, 0xfd, 0xca, 0x5f, 0x30, 0x05, 0x0e,
+ 0xfd, 0x19, 0xa8, 0xfe, 0x81, 0x01, 0x7f, 0xfe, 0x81, 0x05, 0xd5, 0xfc,
+ 0x52, 0x03, 0xae, 0xfb, 0xaa, 0x8b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x6e,
+ 0xff, 0xe3, 0x05, 0xad, 0x04, 0x7b, 0x00, 0x22, 0x00, 0x2d, 0x00, 0x30,
+ 0x00, 0x00, 0x21, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x33, 0x13, 0x33, 0x03, 0x33, 0x15, 0x23,
+ 0x03, 0x01, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x3d, 0x01,
+ 0x21, 0x23, 0x11, 0x03, 0x1c, 0x38, 0xa9, 0x7b, 0x9b, 0xb6, 0xe3, 0xe2,
+ 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0xdb, 0x6c, 0x5d,
+ 0x0d, 0xb2, 0x8b, 0xb0, 0x8c, 0x8c, 0xbd, 0xbd, 0xfe, 0x45, 0xc9, 0x9b,
+ 0x74, 0x64, 0x8a, 0xa6, 0x01, 0x27, 0x81, 0xaa, 0x66, 0x61, 0xc1, 0xa2,
+ 0xbd, 0xc0, 0x12, 0x7f, 0x8b, 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0x7e, 0x6d,
+ 0xcd, 0x01, 0x9d, 0xfe, 0x63, 0x90, 0xfd, 0xcd, 0x02, 0x33, 0x66, 0x7b,
+ 0x62, 0x73, 0xd9, 0xb4, 0x29, 0xfe, 0x81, 0x00, 0x00, 0x02, 0x00, 0x0e,
+ 0xfe, 0x56, 0x06, 0xd9, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00,
+ 0x01, 0x03, 0x21, 0x01, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x3f, 0x01, 0x03, 0x21, 0x03, 0x23, 0x01, 0x33, 0x09, 0x01,
+ 0x33, 0x02, 0x76, 0xf7, 0x01, 0xef, 0x01, 0x47, 0x43, 0x46, 0x42, 0x70,
+ 0xc2, 0x9a, 0x44, 0x26, 0x26, 0x2e, 0x11, 0x7b, 0xfd, 0xa2, 0x7a, 0xc0,
+ 0x02, 0x01, 0xcf, 0x01, 0xa0, 0x01, 0x9d, 0xbd, 0x05, 0x0e, 0xfd, 0x19,
+ 0xfd, 0x71, 0xc6, 0x3f, 0x3d, 0xaa, 0x24, 0x25, 0x85, 0x32, 0x01, 0x7f,
+ 0xfe, 0x81, 0x05, 0xd5, 0xfb, 0x40, 0x04, 0xc0, 0x00, 0x02, 0x00, 0x6e,
+ 0xfe, 0x56, 0x05, 0xad, 0x04, 0x7b, 0x00, 0x27, 0x00, 0x32, 0x00, 0x00,
+ 0x21, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3b, 0x01,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32,
+ 0x16, 0x19, 0x01, 0x01, 0x33, 0x01, 0x0e, 0x01, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x36, 0x3f, 0x01, 0x03, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x36, 0x3d, 0x01, 0x03, 0x1c, 0x38, 0xa9, 0x7b, 0x9b, 0xb6, 0xe3, 0xe2,
+ 0xe8, 0x96, 0x88, 0x56, 0xa4, 0x4c, 0x5b, 0xab, 0x51, 0xdb, 0xd8, 0x01,
+ 0x3b, 0xb0, 0xfe, 0x45, 0x46, 0x86, 0x6f, 0x85, 0x62, 0x44, 0x4c, 0x2e,
+ 0x17, 0xf1, 0xc9, 0x9b, 0x74, 0x64, 0x8a, 0xa6, 0xaa, 0x66, 0x61, 0xc1,
+ 0xa2, 0xbd, 0xc0, 0x12, 0x7f, 0x8b, 0x2e, 0x2e, 0xaa, 0x27, 0x27, 0xfc,
+ 0xff, 0x00, 0xfe, 0x77, 0x03, 0x6a, 0xfb, 0x38, 0xc8, 0x7a, 0x9a, 0x48,
+ 0x86, 0x42, 0x02, 0x33, 0x66, 0x7b, 0x62, 0x73, 0xd9, 0xb4, 0x29, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4, 0x05, 0xf0, 0x10, 0x06,
+ 0x03, 0x93, 0x00, 0x00, 0xff, 0xff, 0x00, 0x72, 0xff, 0xe3, 0x03, 0x90,
+ 0x04, 0x7b, 0x10, 0x06, 0x03, 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09,
+ 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x00, 0x12, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0x11, 0x23, 0x35, 0x33, 0xb5, 0xb6, 0xac, 0xac, 0x02, 0x5b, 0xea,
+ 0xfd, 0x65, 0x02, 0xca, 0xef, 0xfd, 0x7b, 0xb6, 0xac, 0xac, 0x05, 0xd5,
+ 0xb9, 0xaa, 0xfe, 0xec, 0x02, 0x77, 0xfd, 0x48, 0xfc, 0xe3, 0x02, 0xcf,
+ 0xfd, 0x31, 0x04, 0x72, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0c,
+ 0x00, 0x00, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x12, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x21, 0x15, 0x21, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0x11, 0x23, 0x35, 0x33, 0xaf, 0xa6, 0x01, 0x05, 0xfe, 0xfb, 0x01,
+ 0xee, 0xd4, 0xfd, 0xe9, 0x02, 0x2d, 0xd8, 0xfe, 0x00, 0xa6, 0xa2, 0xa2,
+ 0x06, 0x14, 0xac, 0xa4, 0xfd, 0xb9, 0x01, 0xe3, 0xfd, 0xf4, 0xfd, 0xac,
+ 0x02, 0x23, 0xfd, 0xdd, 0x04, 0xc4, 0xa4, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xdc, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x13, 0x11,
+ 0x33, 0x11, 0x37, 0x11, 0x21, 0x15, 0x21, 0x11, 0xb5, 0xb6, 0xe3, 0x02,
+ 0x8e, 0xfc, 0xbc, 0x02, 0xad, 0x03, 0x28, 0xfd, 0x5e, 0x4d, 0xfd, 0x2a,
+ 0xaa, 0x02, 0xfa, 0x00, 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x02, 0x26,
+ 0x06, 0x14, 0x00, 0x07, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x37, 0x11,
+ 0x23, 0x11, 0xae, 0xa5, 0xd3, 0xa6, 0x02, 0x9c, 0x03, 0x78, 0xfd, 0x05,
+ 0x49, 0xfc, 0x9e, 0x02, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x4a,
+ 0x00, 0x00, 0x04, 0x26, 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x35, 0x33,
+ 0xe2, 0xb6, 0x97, 0x97, 0x02, 0x8e, 0xfc, 0xbc, 0x97, 0x97, 0x05, 0xd5,
+ 0xe0, 0xa4, 0xfc, 0x59, 0xaa, 0x04, 0x51, 0xa4, 0x00, 0x01, 0x00, 0x6c,
+ 0x00, 0x00, 0x02, 0xa7, 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x33,
+ 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x01, 0x36,
+ 0xa6, 0xcb, 0xcb, 0xa6, 0xca, 0xca, 0x06, 0x14, 0xfe, 0xe2, 0xa4, 0xfb,
+ 0xae, 0x04, 0x52, 0xa4, 0x00, 0x03, 0x00, 0x09, 0xff, 0xe3, 0x05, 0xc6,
+ 0x05, 0xf0, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x25, 0x00, 0x00, 0x01, 0x20,
+ 0x17, 0x16, 0x13, 0x33, 0x15, 0x23, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27,
+ 0x26, 0x03, 0x23, 0x35, 0x33, 0x12, 0x37, 0x36, 0x04, 0x20, 0x07, 0x06,
+ 0x07, 0x21, 0x26, 0x27, 0x13, 0x21, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36,
+ 0x02, 0xe8, 0x01, 0x1b, 0xa9, 0x91, 0x15, 0x74, 0x72, 0x0a, 0x9e, 0xa9,
+ 0xfe, 0xe5, 0xfe, 0xe5, 0xa9, 0xa0, 0x0a, 0x71, 0x74, 0x15, 0x92, 0xa9,
+ 0x01, 0xe1, 0xfe, 0x74, 0x74, 0x5f, 0x12, 0x03, 0x55, 0x11, 0x5f, 0x73,
+ 0xfc, 0xa5, 0x09, 0x6b, 0x74, 0x01, 0x8c, 0x74, 0x6b, 0x05, 0xf0, 0xd2,
+ 0xb5, 0xfe, 0xe3, 0x90, 0xfe, 0xbe, 0xc4, 0xd3, 0xd2, 0xc4, 0x01, 0x43,
+ 0x90, 0x01, 0x1d, 0xb5, 0xd2, 0xa4, 0xa4, 0x86, 0xd6, 0xd6, 0x86, 0xfe,
+ 0x14, 0xfa, 0x97, 0xa4, 0xa4, 0x97, 0x00, 0x00, 0x00, 0x03, 0x00, 0x09,
+ 0xff, 0xe3, 0x05, 0x00, 0x04, 0x7b, 0x00, 0x15, 0x00, 0x1e, 0x00, 0x27,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x33, 0x15, 0x23, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x23, 0x35, 0x33, 0x36, 0x37, 0x36,
+ 0x17, 0x22, 0x07, 0x06, 0x07, 0x21, 0x26, 0x27, 0x26, 0x13, 0x21, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x02, 0x85, 0xd8, 0x7c, 0x63, 0x13,
+ 0xb1, 0xad, 0x09, 0x71, 0x7c, 0xd8, 0xd9, 0x7a, 0x71, 0x09, 0xaf, 0xb2,
+ 0x13, 0x64, 0x7a, 0xd9, 0x85, 0x4d, 0x39, 0x0f, 0x02, 0x34, 0x0f, 0x39,
+ 0x4d, 0x9a, 0xfd, 0xc2, 0x07, 0x45, 0x4d, 0x86, 0x85, 0x4d, 0x45, 0x04,
+ 0x7b, 0x9c, 0x7e, 0xcd, 0x90, 0xf4, 0x90, 0x9d, 0x9d, 0x90, 0xf4, 0x90,
+ 0xcd, 0x7e, 0x9c, 0x9c, 0x73, 0x55, 0x83, 0x81, 0x55, 0x75, 0xfe, 0x25,
+ 0xab, 0x67, 0x73, 0x74, 0x67, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x67,
+ 0xff, 0xe3, 0x09, 0x60, 0x05, 0xf0, 0x00, 0x1a, 0x00, 0x24, 0x00, 0x2e,
+ 0x00, 0x00, 0x01, 0x20, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x21, 0x20, 0x00, 0x10, 0x00, 0x04, 0x20, 0x02, 0x11, 0x10, 0x12, 0x20,
+ 0x12, 0x11, 0x10, 0x00, 0x20, 0x02, 0x11, 0x10, 0x12, 0x20, 0x12, 0x11,
+ 0x10, 0x02, 0xd6, 0x01, 0x1b, 0xa9, 0x2a, 0x20, 0x1f, 0x2a, 0xaa, 0x01,
+ 0x1b, 0x01, 0x1b, 0x01, 0x52, 0xfe, 0xae, 0xfe, 0xe5, 0xfe, 0xe5, 0xaa,
+ 0x2a, 0x20, 0x1f, 0x2a, 0xa9, 0xfe, 0xe5, 0xfe, 0xe5, 0xfe, 0xad, 0x01,
+ 0x53, 0x01, 0xe1, 0xfe, 0x74, 0xe9, 0xe9, 0x01, 0x8c, 0xe8, 0x03, 0x34,
+ 0xfe, 0x74, 0xe9, 0xe9, 0x01, 0x8c, 0xe8, 0x05, 0xf0, 0xd2, 0x35, 0x3d,
+ 0x3d, 0x35, 0xd2, 0xfe, 0x5b, 0xfe, 0x9e, 0xfe, 0x9f, 0xfe, 0x5b, 0xd2,
+ 0x34, 0x3d, 0x3c, 0x34, 0xd3, 0x01, 0xa4, 0x02, 0xc4, 0x01, 0xa5, 0xa4,
+ 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8, 0x01, 0x48, 0x01, 0x1a,
+ 0x01, 0x1b, 0x01, 0x48, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8,
+ 0x01, 0x48, 0x01, 0x1a, 0x01, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x65,
+ 0xff, 0xe3, 0x06, 0xf1, 0x04, 0x7b, 0x00, 0x0a, 0x00, 0x15, 0x00, 0x31,
+ 0x00, 0x00, 0x01, 0x22, 0x06, 0x10, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x21, 0x22, 0x06, 0x10, 0x16, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x27, 0x32, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x12, 0x11,
+ 0x10, 0x02, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x02, 0x11, 0x10, 0x12, 0x05, 0x22, 0x85, 0x9b, 0x9a, 0x86, 0x84, 0x9b,
+ 0x9b, 0xfc, 0x8e, 0x85, 0x9b, 0x9a, 0x86, 0x85, 0x9a, 0x9a, 0x85, 0xd8,
+ 0x7c, 0x12, 0x11, 0x10, 0x13, 0x7b, 0xd9, 0xd8, 0xf7, 0xf7, 0xd8, 0xd9,
+ 0x7b, 0x13, 0x10, 0x11, 0x12, 0x7c, 0xd8, 0xd9, 0xf5, 0xf5, 0x03, 0xdf,
+ 0xe7, 0xfe, 0x6e, 0xe7, 0xe8, 0xc8, 0xc7, 0xe9, 0xe7, 0xfe, 0x6e, 0xe7,
+ 0xe8, 0xc8, 0xc7, 0xe9, 0x9c, 0x9c, 0x18, 0x1b, 0x1b, 0x18, 0x9c, 0xfe,
+ 0xc8, 0xfe, 0xec, 0xfe, 0xed, 0xfe, 0xc7, 0x9d, 0x18, 0x1b, 0x1b, 0x18,
+ 0x9d, 0x01, 0x39, 0x01, 0x13, 0x01, 0x14, 0x01, 0x38, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x1d, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x25, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x2b, 0x01,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x01, 0x6b,
+ 0xe4, 0x7f, 0x8b, 0x8b, 0x7f, 0xfe, 0x66, 0x01, 0x9a, 0xe2, 0x73, 0x74,
+ 0x74, 0x73, 0xe2, 0xe4, 0xd5, 0xd5, 0xb6, 0xac, 0xac, 0x05, 0x2f, 0xfd,
+ 0xcf, 0x92, 0x87, 0x86, 0x92, 0xa6, 0x71, 0x72, 0xdb, 0xdd, 0x71, 0x71,
+ 0xc4, 0x90, 0xfe, 0xfc, 0x01, 0x04, 0x90, 0x00, 0x00, 0x02, 0xff, 0xfb,
+ 0xfe, 0x56, 0x04, 0x2e, 0x04, 0x7b, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x00,
+ 0x00, 0x10, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20, 0x01, 0x35, 0x33, 0x11,
+ 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x27, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x03, 0x81, 0x96, 0xfe,
+ 0xf9, 0x96, 0x96, 0x01, 0x07, 0xfd, 0x11, 0xab, 0xa7, 0x34, 0x9f, 0x6f,
+ 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x34, 0xe4, 0xe4, 0xa7, 0x01, 0x64,
+ 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0xfe, 0x67, 0x90, 0x04, 0xec,
+ 0xaa, 0x64, 0x61, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0x61, 0x64, 0xfe,
+ 0xcc, 0x90, 0x8e, 0x8e, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x05, 0x0a,
+ 0x05, 0xd5, 0x00, 0x1e, 0x00, 0x27, 0x00, 0x00, 0x01, 0x21, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x23, 0x22, 0x07, 0x06,
+ 0x15, 0x16, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x3b, 0x03, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x01, 0xa6,
+ 0x01, 0x9a, 0xe2, 0xe8, 0xe8, 0xe2, 0xe4, 0xb6, 0x28, 0x53, 0x2b, 0x35,
+ 0x01, 0x18, 0x15, 0x35, 0x3d, 0x47, 0x3e, 0x3f, 0x72, 0x58, 0x91, 0x1e,
+ 0xb6, 0xe4, 0x7f, 0x8b, 0x8b, 0x7f, 0xe4, 0x05, 0xd5, 0xe3, 0xdb, 0xdd,
+ 0xe2, 0xfd, 0xa8, 0x02, 0x58, 0x18, 0x1f, 0x3d, 0x35, 0x27, 0x20, 0x18,
+ 0x94, 0x17, 0x49, 0x4b, 0x7d, 0x93, 0x4c, 0x3b, 0x92, 0x87, 0x86, 0x92,
+ 0x00, 0x02, 0x00, 0x2d, 0xfe, 0x56, 0x05, 0x2f, 0x04, 0x7b, 0x00, 0x0c,
+ 0x00, 0x31, 0x00, 0x00, 0x01, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x26, 0x20, 0x06, 0x15, 0x03, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10,
+ 0x02, 0x23, 0x22, 0x27, 0x11, 0x23, 0x02, 0x4f, 0x09, 0x8e, 0x83, 0x80,
+ 0x4f, 0x4b, 0x97, 0xfe, 0xfa, 0x97, 0xa6, 0x2e, 0x25, 0x28, 0x2e, 0x35,
+ 0x19, 0x15, 0x35, 0x3d, 0x47, 0x3e, 0x3f, 0x72, 0x4b, 0x5e, 0x30, 0x31,
+ 0xa6, 0x35, 0x9f, 0x6f, 0xb7, 0xe6, 0xe6, 0xb6, 0xac, 0x98, 0xa6, 0x01,
+ 0x32, 0x0b, 0xaa, 0x73, 0x70, 0xcf, 0xcb, 0xe7, 0xe7, 0xcb, 0xfe, 0xe3,
+ 0x19, 0x18, 0x1b, 0x41, 0x34, 0x28, 0x20, 0x18, 0x94, 0x17, 0x49, 0x4b,
+ 0x7d, 0x86, 0x59, 0x3b, 0x17, 0x02, 0xa6, 0xaa, 0x64, 0x61, 0xfe, 0xbc,
+ 0xfd, 0xf0, 0xfe, 0xbc, 0xa2, 0xfd, 0xd1, 0x00, 0x00, 0x02, 0x00, 0x67,
+ 0xfe, 0x94, 0x05, 0x44, 0x05, 0xf0, 0x00, 0x09, 0x00, 0x23, 0x00, 0x00,
+ 0x00, 0x20, 0x02, 0x11, 0x10, 0x12, 0x20, 0x12, 0x11, 0x10, 0x01, 0x27,
+ 0x37, 0x27, 0x07, 0x06, 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x02, 0x07, 0x17, 0x37, 0x17, 0x07, 0x17, 0x23, 0x27,
+ 0x03, 0x9c, 0xfe, 0x74, 0xe9, 0xe9, 0x01, 0x8c, 0xe8, 0xfe, 0xa6, 0x41,
+ 0x99, 0x60, 0x2e, 0x10, 0x0e, 0xfe, 0xe5, 0xfe, 0xad, 0x01, 0x53, 0x01,
+ 0x1b, 0x01, 0x1b, 0x01, 0x52, 0xbc, 0xb2, 0x3e, 0xc2, 0x40, 0xa9, 0x58,
+ 0xdb, 0x0d, 0x05, 0x4c, 0xfe, 0xb8, 0xfe, 0xe5, 0xfe, 0xe6, 0xfe, 0xb8,
+ 0x01, 0x48, 0x01, 0x1a, 0x01, 0x1b, 0xfa, 0x90, 0x7d, 0x62, 0x74, 0x03,
+ 0x01, 0x01, 0xa5, 0x01, 0x61, 0x01, 0x62, 0x01, 0xa5, 0xfe, 0x5b, 0xfe,
+ 0x9e, 0xfe, 0xfc, 0xfe, 0x8e, 0x58, 0x4b, 0x7c, 0x7d, 0x6c, 0x6b, 0x0f,
+ 0x00, 0x02, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x97, 0x04, 0x7b, 0x00, 0x17,
+ 0x00, 0x1f, 0x00, 0x00, 0x25, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x10, 0x12,
+ 0x33, 0x32, 0x16, 0x17, 0x35, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23,
+ 0x35, 0x23, 0x35, 0x33, 0x00, 0x10, 0x16, 0x20, 0x36, 0x10, 0x26, 0x20,
+ 0x03, 0x45, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34,
+ 0xa6, 0xab, 0xab, 0xa6, 0xe5, 0xe5, 0xfd, 0xcc, 0x96, 0x01, 0x07, 0x97,
+ 0x97, 0xfe, 0xf9, 0xa8, 0x64, 0x61, 0x01, 0x44, 0x02, 0x10, 0x01, 0x44,
+ 0x61, 0x64, 0xaa, 0xfb, 0x14, 0x90, 0x8e, 0x8e, 0x90, 0x03, 0x86, 0xfe,
+ 0x6a, 0xe7, 0xe7, 0x01, 0x96, 0xe7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09,
+ 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23, 0x01, 0x33, 0x15, 0x33,
+ 0x15, 0x23, 0x15, 0x33, 0x32, 0x16, 0x10, 0x06, 0x2b, 0x01, 0x11, 0x23,
+ 0x11, 0x23, 0x35, 0x33, 0x01, 0x6b, 0xe4, 0x7f, 0x8b, 0x8a, 0x80, 0xfe,
+ 0x66, 0xb6, 0xd5, 0xd5, 0xe4, 0xe2, 0xe7, 0xe7, 0xe2, 0xe4, 0xb6, 0xac,
+ 0xac, 0x04, 0x27, 0xfd, 0xd1, 0x92, 0x01, 0x0c, 0x91, 0x01, 0xae, 0x2d,
+ 0x90, 0x4b, 0xe1, 0xfe, 0x48, 0xe2, 0xfe, 0xae, 0x05, 0x18, 0x90, 0x00,
+ 0x00, 0x02, 0xff, 0xfb, 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x07,
+ 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20,
+ 0x25, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15,
+ 0x23, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x03, 0x81, 0x96, 0xfe, 0xf9, 0x96, 0x96, 0x01, 0x07, 0xfe, 0x63, 0xa7,
+ 0xab, 0xab, 0xa7, 0xe4, 0xe4, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8,
+ 0x6f, 0x9f, 0x01, 0x64, 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0x2b,
+ 0xfd, 0xae, 0x06, 0x9b, 0x90, 0x93, 0x93, 0x90, 0xfe, 0xc5, 0x64, 0x61,
+ 0xfe, 0xbc, 0xfd, 0xf0, 0xfe, 0xbc, 0x61, 0x00, 0x00, 0x02, 0x00, 0x09,
+ 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x32, 0x36, 0x10, 0x26, 0x23, 0x01, 0x33, 0x11, 0x33,
+ 0x32, 0x16, 0x10, 0x06, 0x2b, 0x01, 0x15, 0x33, 0x15, 0x23, 0x15, 0x23,
+ 0x35, 0x23, 0x35, 0x33, 0x01, 0x6b, 0xe4, 0x7f, 0x8b, 0x8a, 0x80, 0xfe,
+ 0x66, 0xb6, 0xe4, 0xe2, 0xe7, 0xe7, 0xe2, 0xe4, 0xd5, 0xd5, 0xb6, 0xac,
+ 0xac, 0x04, 0x27, 0xfd, 0xd1, 0x92, 0x01, 0x0c, 0x91, 0x01, 0xae, 0xfe,
+ 0xf8, 0xe1, 0xfe, 0x48, 0xe2, 0x5e, 0x90, 0x64, 0x64, 0x90, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xfb, 0xfe, 0x56, 0x04, 0x2e, 0x06, 0x14, 0x00, 0x07,
+ 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x26, 0x20, 0x06, 0x10, 0x16, 0x20,
+ 0x01, 0x35, 0x33, 0x11, 0x33, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10,
+ 0x02, 0x23, 0x22, 0x26, 0x27, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35,
+ 0x03, 0x81, 0x96, 0xfe, 0xf9, 0x96, 0x96, 0x01, 0x07, 0xfd, 0x11, 0xab,
+ 0xa7, 0x34, 0x9f, 0x6f, 0xb8, 0xe5, 0xe5, 0xb8, 0x6f, 0x9f, 0x34, 0xe4,
+ 0xe4, 0xa7, 0x01, 0x64, 0x01, 0x96, 0xe7, 0xe7, 0xfe, 0x6a, 0xe7, 0xfe,
+ 0x67, 0x90, 0x06, 0xa0, 0xfd, 0xa2, 0x64, 0x61, 0xfe, 0xbc, 0xfd, 0xf0,
+ 0xfe, 0xbc, 0x61, 0x64, 0xfe, 0xcc, 0x90, 0x8e, 0x8e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x03, 0x4e, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x21, 0x35, 0x21, 0x03, 0x4e, 0xb6, 0xfd,
+ 0x72, 0x03, 0x44, 0x05, 0x2b, 0xaa, 0x00, 0x00, 0x00, 0x02, 0x00, 0xad,
+ 0xfe, 0x56, 0x01, 0x54, 0x04, 0x7b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
+ 0x01, 0x07, 0x33, 0x11, 0x23, 0x01, 0x00, 0x52, 0xa5, 0xa5, 0x04, 0x7b,
+ 0x1b, 0xf9, 0xf6, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x04, 0x97,
+ 0x05, 0xf0, 0x00, 0x14, 0x00, 0x00, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x12,
+ 0x19, 0x01, 0x23, 0x03, 0xe2, 0x8b, 0x8a, 0xa1, 0xc1, 0xb6, 0xb6, 0x48,
+ 0x5c, 0x5b, 0x8e, 0xcd, 0xd1, 0xb4, 0x03, 0x7f, 0xd7, 0xd5, 0xff, 0xde,
+ 0xfb, 0x08, 0x07, 0x7f, 0xf1, 0x87, 0x43, 0x42, 0xfe, 0xc1, 0xfe, 0xcc,
+ 0xfc, 0x83, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0xfe, 0x56, 0x03, 0xf4,
+ 0x04, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x03, 0xf4, 0xa6, 0x70, 0x6f, 0x86, 0x9b, 0xa7, 0xa7, 0x3b,
+ 0xa1, 0x6a, 0xad, 0xb3, 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x9e, 0x9f, 0x9e,
+ 0xbe, 0xa4, 0xfb, 0xdd, 0x06, 0x0a, 0xae, 0x65, 0x64, 0xef, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xd8, 0x00, 0x00, 0x01, 0x96, 0x04, 0x23, 0x12, 0x06,
+ 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x90, 0x01, 0x49, 0x02, 0x25,
+ 0x03, 0x0b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21,
+ 0x35, 0x21, 0x35, 0x21, 0x02, 0x25, 0xfe, 0x6b, 0x01, 0x95, 0xfe, 0x6b,
+ 0x01, 0x95, 0x01, 0x49, 0x96, 0x96, 0x96, 0x00, 0x00, 0x01, 0x01, 0x16,
+ 0x01, 0xe1, 0x01, 0xcd, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x01, 0x33,
+ 0x11, 0x03, 0x23, 0x03, 0x01, 0x16, 0xb7, 0x12, 0x92, 0x13, 0x05, 0xd5,
+ 0xfd, 0x71, 0xfe, 0x9b, 0x01, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb1,
+ 0x03, 0xaa, 0x01, 0x4b, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x01, 0x4a, 0x99, 0x05, 0xd5, 0xfd, 0xd5, 0x02, 0x2b, 0x00,
+ 0xff, 0xff, 0x00, 0x9d, 0x00, 0x00, 0x04, 0x3b, 0x05, 0xd5, 0x12, 0x06,
+ 0x03, 0xbb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x45, 0xfe, 0x56, 0x02, 0xff,
+ 0x06, 0x14, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x26, 0x23, 0x22,
+ 0x07, 0x14, 0x33, 0x37, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x14,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0x30, 0x03, 0x23, 0x22,
+ 0x37, 0x36, 0x33, 0x32, 0x01, 0x6a, 0x15, 0x31, 0x46, 0x01, 0x53, 0x48,
+ 0xa6, 0xe1, 0xe1, 0x37, 0x6c, 0x2c, 0x3f, 0xac, 0x8a, 0x02, 0x36, 0xfc,
+ 0x01, 0x01, 0xdd, 0x30, 0x03, 0x12, 0x84, 0x4b, 0x39, 0xfa, 0x02, 0x08,
+ 0xfc, 0xfe, 0xa0, 0xfd, 0x70, 0x7c, 0x74, 0x9c, 0xcc, 0xca, 0x02, 0x86,
+ 0xbd, 0xf6, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xfe, 0xbf, 0x05, 0x47,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x33, 0x01, 0x11, 0x33, 0x11,
+ 0x33, 0x11, 0x23, 0x11, 0x23, 0x01, 0x11, 0x23, 0xb5, 0xf5, 0x02, 0x54,
+ 0xb0, 0x99, 0x99, 0xf5, 0xfd, 0xac, 0xb0, 0x05, 0xd5, 0xfb, 0x1f, 0x04,
+ 0xe1, 0xfa, 0xd5, 0xfe, 0x15, 0x01, 0x41, 0x04, 0xe1, 0xfb, 0x1f, 0x00,
+ 0x00, 0x01, 0x00, 0xa7, 0xfe, 0xe5, 0x04, 0x78, 0x04, 0x7b, 0x00, 0x17,
+ 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x03, 0xf4, 0x84, 0x84, 0xa6, 0x70, 0x6f, 0x86, 0x9b, 0xa7,
+ 0xa7, 0x3b, 0xa1, 0x6a, 0xad, 0xb3, 0x02, 0xa4, 0xfd, 0xef, 0xfe, 0x52,
+ 0x01, 0x1b, 0x02, 0x9e, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x87, 0x04, 0x60,
+ 0xae, 0x65, 0x64, 0xef, 0x00, 0x01, 0x00, 0x03, 0xff, 0xe3, 0x05, 0x9a,
+ 0x05, 0xf0, 0x00, 0x28, 0x00, 0x00, 0x25, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x0e, 0x01, 0x23, 0x24, 0x27, 0x26, 0x27, 0x07, 0x27, 0x37, 0x34, 0x35,
+ 0x10, 0x00, 0x21, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x07,
+ 0x06, 0x03, 0x01, 0x17, 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x04,
+ 0x49, 0xfe, 0xd7, 0x01, 0xdd, 0x69, 0xfe, 0x90, 0xfe, 0xc5, 0xb2, 0x7f,
+ 0x24, 0x4c, 0x26, 0x64, 0x01, 0x63, 0x01, 0x3b, 0x83, 0xed, 0x64, 0x65,
+ 0xe3, 0x7d, 0xf5, 0x7d, 0x79, 0x03, 0x04, 0x4c, 0x27, 0xfb, 0x94, 0x16,
+ 0x5f, 0x7d, 0xf5, 0x61, 0x97, 0xd5, 0x01, 0x91, 0xa6, 0xfd, 0x7f, 0x53,
+ 0x55, 0x01, 0xcc, 0x92, 0xe2, 0x1c, 0x7f, 0x25, 0x1e, 0x1f, 0x01, 0x6e,
+ 0x01, 0x99, 0x48, 0x46, 0xd7, 0x5f, 0x60, 0x99, 0x97, 0xfe, 0xd9, 0x01,
+ 0x95, 0x7f, 0xfe, 0x5f, 0xcf, 0x77, 0x99, 0x25, 0x00, 0x03, 0x00, 0x03,
+ 0xfe, 0x56, 0x04, 0x8f, 0x04, 0x7b, 0x00, 0x26, 0x00, 0x30, 0x00, 0x3a,
+ 0x00, 0x00, 0x25, 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01,
+ 0x33, 0x32, 0x36, 0x3d, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x07, 0x27, 0x37, 0x26, 0x35, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35,
+ 0x33, 0x11, 0x37, 0x17, 0x0f, 0x01, 0x05, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x15, 0x14,
+ 0x17, 0x03, 0xeb, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e, 0x4a, 0xa3,
+ 0xa2, 0x33, 0xa0, 0x70, 0xba, 0x71, 0x3c, 0x1c, 0x5e, 0x1d, 0x68, 0x06,
+ 0xe2, 0xba, 0x70, 0xa0, 0x33, 0xa6, 0x86, 0x1d, 0xa3, 0xa7, 0xfd, 0xdc,
+ 0x12, 0x29, 0x4a, 0x85, 0x86, 0x95, 0x0c, 0x11, 0x2d, 0x4a, 0x87, 0x85,
+ 0x94, 0x01, 0x8b, 0xfe, 0xe2, 0xfe, 0xe9, 0x1d, 0x1e, 0xb3, 0x2c, 0x2a,
+ 0xbd, 0xbf, 0x5b, 0x63, 0x62, 0x9d, 0x53, 0x70, 0x23, 0x63, 0x27, 0x38,
+ 0x3e, 0x01, 0x04, 0x01, 0x3a, 0x62, 0x63, 0xaa, 0xfe, 0xb1, 0x32, 0x63,
+ 0x3d, 0x3d, 0xcb, 0x57, 0x3c, 0x6e, 0xdc, 0xc7, 0x15, 0x7e, 0x62, 0x41,
+ 0x6e, 0xdc, 0xc8, 0x1d, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03,
+ 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x16, 0x00, 0x00,
+ 0x13, 0x33, 0x11, 0x01, 0x33, 0x01, 0x17, 0x25, 0x17, 0x05, 0x01, 0x23,
+ 0x01, 0x07, 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0x25, 0x27, 0x15, 0xb5,
+ 0xb6, 0x02, 0x5b, 0xea, 0xfd, 0x65, 0x6d, 0x02, 0x16, 0x27, 0xfe, 0x22,
+ 0x01, 0xfe, 0xef, 0xfe, 0x3d, 0xc2, 0xb6, 0x8b, 0x26, 0xb1, 0x01, 0x19,
+ 0x63, 0x05, 0xd5, 0xfd, 0x89, 0x02, 0x77, 0xfd, 0x48, 0x7a, 0xc5, 0x7f,
+ 0xb0, 0xfd, 0xc7, 0x01, 0xf7, 0x48, 0xfe, 0x51, 0x01, 0x6c, 0x33, 0x7f,
+ 0x41, 0x68, 0x6e, 0x93, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x04, 0x28,
+ 0x06, 0x14, 0x00, 0x13, 0x00, 0x16, 0x00, 0x00, 0x13, 0x33, 0x11, 0x01,
+ 0x33, 0x01, 0x17, 0x25, 0x17, 0x05, 0x01, 0x23, 0x01, 0x07, 0x11, 0x23,
+ 0x35, 0x07, 0x27, 0x37, 0x25, 0x27, 0x15, 0xa7, 0xa7, 0x01, 0xee, 0xd4,
+ 0xfd, 0xe9, 0x55, 0x01, 0xbc, 0x1e, 0xfe, 0x72, 0x01, 0x8c, 0xd8, 0xfe,
+ 0xab, 0xab, 0xa7, 0x86, 0x1d, 0xa3, 0x01, 0x05, 0x5e, 0x06, 0x14, 0xfc,
+ 0x69, 0x01, 0xe3, 0xfd, 0xf4, 0x5b, 0xa4, 0x62, 0x93, 0xfe, 0x58, 0x01,
+ 0x6c, 0x3f, 0xfe, 0xd3, 0xf0, 0x32, 0x63, 0x3c, 0x61, 0x65, 0x88, 0x00,
+ 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x05, 0x60, 0x05, 0xd5, 0x00, 0x13,
+ 0x00, 0x16, 0x00, 0x19, 0x00, 0x00, 0x13, 0x33, 0x01, 0x25, 0x11, 0x33,
+ 0x11, 0x37, 0x17, 0x07, 0x11, 0x23, 0x01, 0x05, 0x11, 0x23, 0x11, 0x07,
+ 0x27, 0x37, 0x25, 0x03, 0x11, 0x25, 0x13, 0x11, 0xb5, 0xf5, 0x01, 0x3b,
+ 0x01, 0x19, 0xb0, 0x8a, 0x27, 0xb1, 0xf5, 0xfe, 0xc9, 0xfe, 0xe3, 0xb0,
+ 0x8b, 0x26, 0xb1, 0x01, 0x93, 0xe3, 0x01, 0xb9, 0xe0, 0x05, 0xd5, 0xfd,
+ 0x6b, 0x67, 0x02, 0x2e, 0xfe, 0x13, 0x33, 0x7f, 0x41, 0xfc, 0xa5, 0x02,
+ 0x8e, 0x69, 0xfd, 0xdb, 0x01, 0xe4, 0x33, 0x7f, 0x41, 0x95, 0x01, 0xdb,
+ 0xfd, 0xd1, 0x16, 0xfe, 0x2c, 0x02, 0x26, 0x00, 0x00, 0x02, 0x00, 0x03,
+ 0x00, 0x00, 0x04, 0x8f, 0x04, 0x7b, 0x00, 0x17, 0x00, 0x20, 0x00, 0x00,
+ 0x01, 0x11, 0x23, 0x11, 0x05, 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0x11,
+ 0x33, 0x15, 0x3e, 0x01, 0x33, 0x36, 0x17, 0x16, 0x17, 0x37, 0x17, 0x07,
+ 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x03, 0xf4, 0xa6,
+ 0xfe, 0x00, 0xa7, 0x86, 0x1d, 0xa3, 0xa7, 0x3b, 0xa1, 0x6a, 0xad, 0x59,
+ 0x43, 0x11, 0x83, 0x1d, 0x9a, 0xa8, 0x08, 0x2e, 0x38, 0x6f, 0x86, 0x9b,
+ 0x02, 0xa4, 0xfd, 0x5c, 0x02, 0x6a, 0xbe, 0xfe, 0x54, 0x01, 0x6f, 0x32,
+ 0x63, 0x3d, 0x02, 0x83, 0xae, 0x65, 0x64, 0x01, 0x78, 0x59, 0x99, 0x31,
+ 0x63, 0x39, 0x30, 0x75, 0x40, 0x4f, 0xbe, 0xa4, 0x5f, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x04, 0xfe, 0x05, 0xd5, 0x00, 0x1d,
+ 0x00, 0x24, 0x00, 0x2b, 0x00, 0x00, 0x01, 0x1e, 0x01, 0x17, 0x13, 0x23,
+ 0x03, 0x2e, 0x01, 0x2b, 0x01, 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0x11,
+ 0x21, 0x32, 0x17, 0x16, 0x17, 0x37, 0x17, 0x07, 0x14, 0x15, 0x14, 0x06,
+ 0x2d, 0x01, 0x26, 0x27, 0x26, 0x27, 0x23, 0x11, 0x15, 0x33, 0x16, 0x37,
+ 0x36, 0x37, 0x03, 0x32, 0x3b, 0x6e, 0x38, 0xb9, 0xc4, 0xac, 0x42, 0x7d,
+ 0x6c, 0xc6, 0xb6, 0x8b, 0x26, 0xb1, 0x01, 0x9a, 0xe7, 0x71, 0x42, 0x1c,
+ 0xd1, 0x27, 0xe5, 0x75, 0xfd, 0xc8, 0x01, 0xe3, 0x10, 0x28, 0x42, 0x85,
+ 0xe4, 0xe4, 0x85, 0x42, 0x37, 0x0a, 0x02, 0xbc, 0x16, 0x90, 0x7e, 0xfe,
+ 0x68, 0x01, 0x7f, 0x96, 0x62, 0xfd, 0x89, 0x03, 0x01, 0x33, 0x7f, 0x42,
+ 0x02, 0x46, 0x6b, 0x3e, 0x64, 0x4e, 0x7f, 0x55, 0x0d, 0x0e, 0x8d, 0xba,
+ 0xf2, 0xb3, 0x3f, 0x28, 0x42, 0x01, 0xfe, 0x16, 0x28, 0x01, 0x44, 0x38,
+ 0x63, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0xf6,
+ 0x04, 0x7b, 0x00, 0x19, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x06,
+ 0x1d, 0x01, 0x25, 0x17, 0x05, 0x11, 0x23, 0x11, 0x07, 0x27, 0x37, 0x11,
+ 0x33, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x02, 0xf6, 0x1c, 0x42,
+ 0x27, 0x8d, 0x96, 0x01, 0x86, 0x1e, 0xfe, 0x5c, 0xa7, 0x86, 0x1d, 0xa3,
+ 0xa7, 0x34, 0xa8, 0x77, 0x11, 0x2a, 0x19, 0x03, 0xb4, 0x12, 0x11, 0xcb,
+ 0xbe, 0x34, 0x90, 0x62, 0x9c, 0xfe, 0x54, 0x01, 0x6f, 0x32, 0x63, 0x3c,
+ 0x02, 0x84, 0xae, 0x66, 0x63, 0x05, 0x05, 0x00, 0x00, 0x01, 0x00, 0x03,
+ 0xff, 0xe3, 0x04, 0x8f, 0x05, 0xf0, 0x00, 0x2f, 0x00, 0x00, 0x01, 0x15,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x25, 0x17,
+ 0x05, 0x16, 0x17, 0x16, 0x15, 0x14, 0x04, 0x23, 0x22, 0x26, 0x27, 0x35,
+ 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x05, 0x27,
+ 0x25, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x03, 0xda,
+ 0x67, 0xb8, 0x55, 0x95, 0xa1, 0x6b, 0x96, 0x4b, 0x01, 0xec, 0x26, 0xfe,
+ 0xbd, 0x4f, 0x30, 0x61, 0xfe, 0xfb, 0xfd, 0x60, 0xd7, 0x73, 0x6f, 0xd4,
+ 0x67, 0x9b, 0xaa, 0x7a, 0x8b, 0x57, 0xfe, 0x18, 0x26, 0x01, 0x41, 0x45,
+ 0x2c, 0x5a, 0xfb, 0xdc, 0x5f, 0xc4, 0x05, 0xa4, 0xc5, 0x37, 0x36, 0x80,
+ 0x76, 0x63, 0x65, 0x1f, 0x11, 0xb5, 0x7f, 0x77, 0x27, 0x38, 0x6c, 0xb6,
+ 0xd9, 0xe0, 0x30, 0x2f, 0xd0, 0x45, 0x46, 0x88, 0x7e, 0x6e, 0x7c, 0x1f,
+ 0x13, 0xb4, 0x7f, 0x77, 0x22, 0x2e, 0x60, 0xab, 0xc6, 0xe4, 0x26, 0x00,
+ 0x00, 0x01, 0x00, 0x03, 0xff, 0xe3, 0x03, 0xbd, 0x04, 0x7b, 0x00, 0x2f,
+ 0x00, 0x00, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x1f, 0x01, 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x17, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x2f, 0x01, 0x05, 0x27, 0x25, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x03, 0x30, 0x46, 0x97, 0x51, 0x7b, 0x7c, 0x59, 0x85, 0x28,
+ 0x01, 0x8e, 0x1e, 0xfe, 0xf3, 0x44, 0x28, 0x49, 0x01, 0xde, 0xc2, 0x51,
+ 0xb0, 0x61, 0x5c, 0xb2, 0x57, 0x75, 0x7e, 0x5b, 0x9a, 0x20, 0xfe, 0x7a,
+ 0x1d, 0x01, 0x06, 0x38, 0x22, 0x45, 0xca, 0xb9, 0x5c, 0xa2, 0x04, 0x3f,
+ 0xae, 0x28, 0x28, 0x54, 0x54, 0x40, 0x49, 0x21, 0x0a, 0x93, 0x63, 0x63,
+ 0x20, 0x28, 0x4c, 0x89, 0x9c, 0xb6, 0x23, 0x23, 0xbe, 0x35, 0x35, 0x59,
+ 0x51, 0x4b, 0x50, 0x25, 0x08, 0x90, 0x63, 0x61, 0x1b, 0x26, 0x4a, 0x83,
+ 0x9e, 0xac, 0x1e, 0x00, 0x00, 0x01, 0xff, 0xa1, 0x00, 0x00, 0x05, 0x10,
+ 0x05, 0xd5, 0x00, 0x14, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x1d, 0x01, 0x23,
+ 0x35, 0x34, 0x36, 0x3b, 0x01, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11,
+ 0x21, 0x11, 0x23, 0x01, 0x0f, 0x77, 0x6a, 0x8c, 0xac, 0xc1, 0xb6, 0x02,
+ 0x94, 0xb6, 0xb6, 0xfd, 0x6c, 0xb6, 0x05, 0x30, 0x01, 0x5e, 0x69, 0x31,
+ 0x46, 0xb5, 0xa3, 0xfd, 0x9c, 0x02, 0x64, 0xfa, 0x2b, 0x02, 0xc7, 0xfd,
+ 0x39, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x05, 0xf0,
+ 0x04, 0x60, 0x12, 0x06, 0x03, 0xdc, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6b,
+ 0x00, 0x00, 0x03, 0x70, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x03, 0x6f, 0xb5, 0xfd,
+ 0xeb, 0x02, 0x15, 0xfd, 0xb1, 0x05, 0xd5, 0xfa, 0x2b, 0x02, 0xc9, 0xaa,
+ 0x01, 0xb8, 0xaa, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x00, 0x00, 0x03, 0xa3,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x13, 0x00, 0x00, 0x01, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x3b, 0x01, 0x13, 0x11, 0x23, 0x11, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x02, 0xed, 0xe5, 0x7f, 0x8a, 0x8a, 0x7f, 0xe5,
+ 0xb6, 0xb6, 0xe5, 0xe2, 0xe7, 0xe7, 0xe2, 0x05, 0x2f, 0x92, 0x86, 0x87,
+ 0x92, 0x02, 0xd7, 0xfa, 0x2b, 0x02, 0x58, 0xe2, 0xdd, 0xdb, 0xe3, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x00, 0x0c,
+ 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0x01, 0x33, 0x01, 0x11, 0x33, 0x11,
+ 0x21, 0x09, 0x01, 0xb5, 0xb0, 0x01, 0x5b, 0xb6, 0x01, 0x5b, 0xb1, 0xfe,
+ 0xf1, 0xfe, 0xa8, 0xfe, 0xa9, 0x05, 0xd5, 0xfa, 0xe1, 0x04, 0x00, 0xfc,
+ 0x00, 0x05, 0x1f, 0xfa, 0x2b, 0x03, 0xf8, 0xfc, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x6b, 0x07, 0x6d, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0xb5, 0xb6, 0xb6, 0x07, 0x6d, 0xf8,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3d, 0x00, 0x00, 0x08, 0x67,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x25, 0x01, 0x33, 0x09, 0x01, 0x33,
+ 0x01, 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23, 0x01, 0x33, 0x03, 0x8f,
+ 0x01, 0x1e, 0xcc, 0x01, 0x1b, 0x01, 0x1a, 0xb8, 0xfe, 0xaf, 0xe5, 0xfe,
+ 0xe4, 0xfe, 0xe2, 0xcc, 0xfe, 0xe5, 0xfe, 0xe7, 0xb9, 0x01, 0x52, 0xe4,
+ 0xc5, 0x05, 0x10, 0xfb, 0x12, 0x04, 0xee, 0xfa, 0x2b, 0x05, 0x10, 0xfa,
+ 0xf0, 0x04, 0xee, 0xfb, 0x12, 0x05, 0xd5, 0x00, 0x00, 0x01, 0x00, 0xae,
+ 0x04, 0xd0, 0x02, 0x53, 0x05, 0x58, 0x00, 0x03, 0x00, 0x00, 0x01, 0x21,
+ 0x35, 0x21, 0x02, 0x53, 0xfe, 0x5c, 0x01, 0xa4, 0x04, 0xd0, 0x88, 0x00,
+ 0x00, 0x01, 0x00, 0x7e, 0x03, 0x9c, 0x02, 0x77, 0x05, 0x58, 0x00, 0x04,
+ 0x00, 0x00, 0x13, 0x27, 0x01, 0x33, 0x15, 0xc1, 0x42, 0x01, 0xd4, 0x24,
+ 0x03, 0x9c, 0x73, 0x01, 0x49, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0x02, 0x68, 0x02, 0x9a, 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x01, 0x23,
+ 0x01, 0x27, 0x01, 0x33, 0x02, 0x9a, 0x0e, 0xfe, 0x35, 0x5e, 0x01, 0xf0,
+ 0x47, 0x04, 0xd0, 0xfd, 0x98, 0x57, 0x02, 0x99, 0x00, 0x01, 0x00, 0x56,
+ 0x01, 0x34, 0x02, 0xa7, 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x01, 0x23,
+ 0x01, 0x27, 0x01, 0x33, 0x02, 0xa7, 0x0d, 0xfe, 0x27, 0x6b, 0x01, 0xfd,
+ 0x54, 0x04, 0xd0, 0xfc, 0x64, 0x44, 0x03, 0xe0, 0x00, 0x01, 0x00, 0x51,
+ 0x00, 0x00, 0x02, 0xad, 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x01, 0x23,
+ 0x01, 0x27, 0x01, 0x33, 0x02, 0xad, 0x0a, 0xfe, 0x1e, 0x70, 0x02, 0x02,
+ 0x5a, 0x04, 0xd0, 0xfb, 0x30, 0x37, 0x05, 0x21, 0x00, 0x01, 0x00, 0x7e,
+ 0x03, 0x9c, 0x02, 0x77, 0x05, 0x58, 0x00, 0x04, 0x00, 0x00, 0x13, 0x01,
+ 0x15, 0x23, 0x01, 0xc1, 0x01, 0xb6, 0x24, 0xfe, 0x2c, 0x05, 0x58, 0xfe,
+ 0xcc, 0x88, 0x01, 0x49, 0xff, 0xff, 0x00, 0xae, 0x03, 0x9c, 0x02, 0x53,
+ 0x04, 0x24, 0x10, 0x07, 0x0e, 0xa9, 0x00, 0x00, 0xfe, 0xcc, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x7e, 0x02, 0x68, 0x02, 0x77, 0x04, 0x24, 0x10, 0x07,
+ 0x0e, 0xaa, 0x00, 0x00, 0xfe, 0xcc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63,
+ 0x01, 0x34, 0x02, 0x9a, 0x04, 0x24, 0x10, 0x07, 0x0e, 0xab, 0x00, 0x00,
+ 0xfe, 0xcc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0x00, 0x00, 0x02, 0xa7,
+ 0x04, 0x24, 0x10, 0x07, 0x0e, 0xac, 0x00, 0x00, 0xfe, 0xcc, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0x02, 0x68, 0x02, 0x9a, 0x05, 0x58, 0x00, 0x05,
+ 0x00, 0x00, 0x01, 0x15, 0x23, 0x01, 0x37, 0x01, 0x02, 0x9a, 0x47, 0xfe,
+ 0x10, 0x5e, 0x01, 0xcb, 0x02, 0xf0, 0x88, 0x02, 0x99, 0x57, 0xfd, 0x98,
+ 0xff, 0xff, 0x00, 0x7e, 0x02, 0x68, 0x02, 0x77, 0x04, 0x24, 0x10, 0x07,
+ 0x0e, 0xae, 0x00, 0x00, 0xfe, 0xcc, 0x00, 0x00, 0xff, 0xff, 0x00, 0xae,
+ 0x02, 0x68, 0x02, 0x53, 0x02, 0xf0, 0x10, 0x07, 0x0e, 0xa9, 0x00, 0x00,
+ 0xfd, 0x98, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7e, 0x01, 0x34, 0x02, 0x77,
+ 0x02, 0xf0, 0x10, 0x07, 0x0e, 0xaa, 0x00, 0x00, 0xfd, 0x98, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0x00, 0x00, 0x02, 0x9a, 0x02, 0xf0, 0x10, 0x07,
+ 0x0e, 0xab, 0x00, 0x00, 0xfd, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x56,
+ 0x01, 0x34, 0x02, 0xa7, 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x01, 0x15,
+ 0x23, 0x01, 0x37, 0x01, 0x02, 0xa7, 0x54, 0xfe, 0x03, 0x6b, 0x01, 0xd9,
+ 0x01, 0xbc, 0x88, 0x03, 0xe0, 0x44, 0xfc, 0x64, 0xff, 0xff, 0x00, 0x63,
+ 0x01, 0x34, 0x02, 0x9a, 0x04, 0x24, 0x10, 0x07, 0x0e, 0xb3, 0x00, 0x00,
+ 0xfe, 0xcc, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7e, 0x01, 0x34, 0x02, 0x77,
+ 0x02, 0xf0, 0x10, 0x07, 0x0e, 0xae, 0x00, 0x00, 0xfd, 0x98, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xae, 0x01, 0x34, 0x02, 0x53, 0x01, 0xbc, 0x10, 0x07,
+ 0x0e, 0xa9, 0x00, 0x00, 0xfc, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7e,
+ 0x00, 0x00, 0x02, 0x77, 0x01, 0xbc, 0x10, 0x07, 0x0e, 0xaa, 0x00, 0x00,
+ 0xfc, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51, 0x00, 0x00, 0x02, 0xad,
+ 0x05, 0x58, 0x00, 0x05, 0x00, 0x00, 0x25, 0x15, 0x23, 0x01, 0x37, 0x01,
+ 0x02, 0xad, 0x5a, 0xfd, 0xfe, 0x70, 0x01, 0xe2, 0x88, 0x88, 0x05, 0x21,
+ 0x37, 0xfb, 0x30, 0x00, 0xff, 0xff, 0x00, 0x56, 0x00, 0x00, 0x02, 0xa7,
+ 0x04, 0x24, 0x10, 0x07, 0x0e, 0xb8, 0x00, 0x00, 0xfe, 0xcc, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x63, 0x00, 0x00, 0x02, 0x9a, 0x02, 0xf0, 0x10, 0x07,
+ 0x0e, 0xb3, 0x00, 0x00, 0xfd, 0x98, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7e,
+ 0x00, 0x00, 0x02, 0x77, 0x01, 0xbc, 0x10, 0x07, 0x0e, 0xae, 0x00, 0x00,
+ 0xfc, 0x64, 0x00, 0x00, 0xff, 0xff, 0x00, 0xae, 0x00, 0x00, 0x02, 0x53,
+ 0x00, 0x88, 0x11, 0x07, 0x0e, 0xa9, 0x00, 0x00, 0xfb, 0x30, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x01, 0x3b, 0x05, 0x58, 0x00, 0x03,
+ 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0xc1, 0x7a, 0x05, 0x58, 0xfa, 0xa8,
+ 0x00, 0x0e, 0x00, 0x87, 0x00, 0x00, 0x06, 0x81, 0x05, 0xdc, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b,
+ 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33,
+ 0x00, 0x37, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x01, 0x11, 0x33, 0x11,
+ 0x03, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x06, 0x27, 0x5a, 0x5a, 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11, 0x01,
+ 0xef, 0xfd, 0xb7, 0x5a, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0xfe, 0x98, 0x5a,
+ 0x5a, 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11, 0x01, 0xef, 0xfd, 0xb7,
+ 0x5a, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x03, 0x25, 0x02, 0x4e, 0xfd, 0xb2,
+ 0xfd, 0x44, 0x02, 0x4e, 0xfd, 0xb2, 0x05, 0x0f, 0x64, 0x64, 0xfa, 0x88,
+ 0x64, 0x64, 0x03, 0x25, 0x02, 0x4e, 0xfd, 0xb2, 0x69, 0x64, 0x64, 0xfd,
+ 0xad, 0x02, 0x4e, 0xfd, 0xb2, 0x02, 0xbc, 0x02, 0x4e, 0xfd, 0xb2, 0xfd,
+ 0x44, 0x02, 0x4e, 0xfd, 0xb2, 0x05, 0x0f, 0x64, 0x64, 0xfa, 0x88, 0x64,
+ 0x64, 0x03, 0x25, 0x02, 0x4e, 0xfd, 0xb2, 0x69, 0x64, 0x64, 0xfd, 0xad,
+ 0x02, 0x4e, 0xfd, 0xb2, 0x00, 0x0e, 0x00, 0x87, 0x00, 0x00, 0x06, 0x81,
+ 0x05, 0xdc, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13,
+ 0x00, 0x17, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b,
+ 0x00, 0x2f, 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x03, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x01, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x15,
+ 0x01, 0x11, 0x33, 0x11, 0x06, 0x27, 0x5a, 0x5a, 0x5a, 0xfd, 0xb7, 0x01,
+ 0xef, 0xfe, 0x11, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x01, 0xef, 0xfd, 0xb7,
+ 0x5a, 0xfe, 0x98, 0x5a, 0x5a, 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11,
+ 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x03, 0x1b,
+ 0x02, 0x58, 0xfd, 0xa8, 0xfd, 0x44, 0x02, 0x58, 0xfd, 0xa8, 0x05, 0x19,
+ 0x64, 0x64, 0xfa, 0x88, 0x64, 0x64, 0x03, 0x1b, 0x02, 0x58, 0xfd, 0xa8,
+ 0x5f, 0x64, 0x64, 0xfd, 0xa3, 0x02, 0x58, 0xfd, 0xa8, 0x02, 0xbc, 0x02,
+ 0x58, 0xfd, 0xa8, 0xfd, 0x44, 0x02, 0x58, 0xfd, 0xa8, 0x05, 0x19, 0x64,
+ 0x64, 0xfa, 0x88, 0x64, 0x64, 0x03, 0x1b, 0x02, 0x58, 0xfd, 0xa8, 0x5f,
+ 0x64, 0x64, 0xfd, 0xa3, 0x02, 0x58, 0xfd, 0xa8, 0x00, 0x0e, 0x00, 0x87,
+ 0x00, 0x00, 0x06, 0x81, 0x05, 0xdc, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x23,
+ 0x00, 0x27, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33, 0x00, 0x37, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x15,
+ 0x01, 0x11, 0x33, 0x11, 0x01, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x06, 0x27, 0x5a, 0x5a,
+ 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11, 0x01, 0xef, 0xfd, 0xb7, 0x5a,
+ 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0xfe, 0x98, 0x5a, 0x5a, 0x5a, 0xfd, 0xb7,
+ 0x01, 0xef, 0xfe, 0x11, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x01, 0xef, 0xfd,
+ 0xb7, 0x5a, 0x03, 0x25, 0x02, 0x4e, 0xfd, 0xb2, 0xfd, 0x44, 0x02, 0x4e,
+ 0xfd, 0xb2, 0x05, 0x0f, 0x64, 0x64, 0xfa, 0x88, 0x64, 0x64, 0x03, 0x25,
+ 0x02, 0x4e, 0xfd, 0xb2, 0x69, 0x64, 0x64, 0xfd, 0xad, 0x02, 0x4e, 0xfd,
+ 0xb2, 0x02, 0xbc, 0x02, 0x4e, 0xfd, 0xb2, 0xfd, 0x44, 0x02, 0x4e, 0xfd,
+ 0xb2, 0x05, 0x0f, 0x64, 0x64, 0xfa, 0x88, 0x64, 0x64, 0x03, 0x25, 0x02,
+ 0x4e, 0xfd, 0xb2, 0x69, 0x64, 0x64, 0xfd, 0xad, 0x02, 0x4e, 0xfd, 0xb2,
+ 0x00, 0x0e, 0x00, 0x87, 0x00, 0x00, 0x06, 0x81, 0x05, 0xdc, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b,
+ 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33,
+ 0x00, 0x37, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x03, 0x11, 0x33, 0x11,
+ 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11, 0x01, 0x11, 0x33, 0x11,
+ 0x03, 0x11, 0x33, 0x11, 0x01, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15,
+ 0x01, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x15, 0x01, 0x11, 0x33, 0x11,
+ 0x06, 0x27, 0x5a, 0x5a, 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11, 0x01,
+ 0xef, 0xfd, 0xb7, 0x5a, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0xfe, 0x98, 0x5a,
+ 0x5a, 0x5a, 0xfd, 0xb7, 0x01, 0xef, 0xfe, 0x11, 0x01, 0xef, 0xfd, 0xb7,
+ 0x5a, 0x01, 0xef, 0xfd, 0xb7, 0x5a, 0x03, 0x1b, 0x02, 0x58, 0xfd, 0xa8,
+ 0xfd, 0x44, 0x02, 0x58, 0xfd, 0xa8, 0x05, 0x19, 0x64, 0x64, 0xfa, 0x88,
+ 0x64, 0x64, 0x03, 0x1b, 0x02, 0x58, 0xfd, 0xa8, 0x5f, 0x64, 0x64, 0xfd,
+ 0xa3, 0x02, 0x58, 0xfd, 0xa8, 0x02, 0xbc, 0x02, 0x58, 0xfd, 0xa8, 0xfd,
+ 0x44, 0x02, 0x58, 0xfd, 0xa8, 0x05, 0x19, 0x64, 0x64, 0xfa, 0x88, 0x64,
+ 0x64, 0x03, 0x1b, 0x02, 0x58, 0xfd, 0xa8, 0x5f, 0x64, 0x64, 0xfd, 0xa3,
+ 0x02, 0x58, 0xfd, 0xa8, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xcb,
+ 0x06, 0x9f, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x10, 0x21, 0x20, 0x11,
+ 0x35, 0x13, 0x33, 0x03, 0x15, 0x10, 0x21, 0x20, 0x11, 0x35, 0x34, 0x00,
+ 0x11, 0x33, 0x16, 0x00, 0x03, 0xca, 0xfe, 0x56, 0xfe, 0x43, 0x35, 0xb4,
+ 0x3e, 0x01, 0x12, 0x01, 0x08, 0xfe, 0x41, 0xa3, 0x01, 0x01, 0xbd, 0x02,
+ 0xa1, 0x9f, 0xfd, 0xe0, 0x02, 0x25, 0x8b, 0x01, 0x09, 0xfe, 0xda, 0x73,
+ 0xfe, 0x80, 0x01, 0x8a, 0xb8, 0xf9, 0x01, 0xcb, 0x01, 0x17, 0xc5, 0xfe,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xcb,
+ 0x06, 0x9f, 0x00, 0x09, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x12, 0x25, 0x04,
+ 0x03, 0x15, 0x10, 0x21, 0x20, 0x11, 0x37, 0x15, 0x10, 0x20, 0x11, 0x35,
+ 0x10, 0x25, 0x33, 0x36, 0x27, 0x26, 0x27, 0x33, 0x14, 0x16, 0x07, 0x33,
+ 0x04, 0x03, 0x28, 0x01, 0xfe, 0xe8, 0xfe, 0xfe, 0x01, 0x01, 0x09, 0x01,
+ 0x11, 0xa2, 0xfc, 0x99, 0x01, 0x6b, 0x12, 0x2e, 0x78, 0x78, 0x02, 0xbb,
+ 0xc4, 0x21, 0x12, 0x01, 0x3c, 0x02, 0x9d, 0x01, 0x67, 0x0b, 0x08, 0xfe,
+ 0x82, 0x55, 0xfe, 0x4e, 0x01, 0xad, 0x4b, 0x37, 0xfd, 0x9f, 0x02, 0x61,
+ 0x3c, 0x01, 0xeb, 0x3d, 0xa3, 0x51, 0x52, 0xb2, 0x6c, 0x9e, 0xf3, 0x45,
+ 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x04, 0x1b, 0x06, 0xb3, 0x00, 0x09,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x10, 0x21, 0x20, 0x11, 0x15, 0x10, 0x21,
+ 0x20, 0x11, 0x37, 0x15, 0x10, 0x21, 0x20, 0x11, 0x35, 0x10, 0x25, 0x33,
+ 0x36, 0x27, 0x36, 0x23, 0x22, 0x15, 0x23, 0x10, 0x21, 0x20, 0x03, 0x06,
+ 0x07, 0x04, 0x03, 0x70, 0xfe, 0xd8, 0xfe, 0xc6, 0x01, 0x36, 0x01, 0x2c,
+ 0xaa, 0xfe, 0x26, 0xfe, 0x23, 0x01, 0xd3, 0x55, 0x45, 0x02, 0x01, 0xab,
+ 0xa4, 0x93, 0x01, 0x34, 0x01, 0x3a, 0x01, 0x0b, 0x3d, 0x01, 0x08, 0x02,
+ 0x7e, 0x01, 0xa4, 0xfe, 0x62, 0x5f, 0xfe, 0x5d, 0x01, 0xa3, 0x61, 0x57,
+ 0xfd, 0xb3, 0x02, 0x3e, 0x78, 0x01, 0xd6, 0x4e, 0x5c, 0x61, 0x9a, 0xc4,
+ 0x01, 0x64, 0xfe, 0xc1, 0x8b, 0x55, 0x72, 0x00, 0x00, 0x02, 0x00, 0x63,
+ 0x00, 0x00, 0x06, 0x04, 0x06, 0xb3, 0x00, 0x24, 0x00, 0x2e, 0x00, 0x00,
+ 0x37, 0x36, 0x37, 0x00, 0x11, 0x35, 0x10, 0x21, 0x32, 0x17, 0x36, 0x33,
+ 0x20, 0x11, 0x15, 0x10, 0x05, 0x24, 0x11, 0x35, 0x34, 0x37, 0x26, 0x23,
+ 0x22, 0x11, 0x15, 0x10, 0x01, 0x17, 0x04, 0x17, 0x23, 0x26, 0x27, 0x26,
+ 0x07, 0x01, 0x10, 0x23, 0x22, 0x11, 0x15, 0x02, 0x17, 0x36, 0x13, 0xf2,
+ 0x59, 0x73, 0xfe, 0xa5, 0x01, 0x8d, 0x98, 0x8f, 0x5b, 0xe8, 0x01, 0xaa,
+ 0xfe, 0x56, 0xfe, 0x62, 0x23, 0x4b, 0x9c, 0xeb, 0x01, 0x7e, 0xbf, 0x01,
+ 0x5f, 0x33, 0xee, 0x0c, 0xd6, 0xe8, 0xdc, 0x04, 0x11, 0xff, 0xf6, 0x01,
+ 0xf7, 0xfe, 0x01, 0xc3, 0x4e, 0x21, 0x01, 0x56, 0x01, 0xc6, 0x6d, 0x01,
+ 0xf8, 0xb3, 0xa9, 0xfd, 0xff, 0x95, 0xfd, 0xd2, 0x1e, 0x1c, 0x02, 0x30,
+ 0x77, 0x5f, 0x8c, 0x9a, 0xfe, 0xb7, 0x63, 0xfe, 0x2d, 0xfe, 0xb1, 0x18,
+ 0x53, 0xd6, 0x52, 0x40, 0x40, 0xb4, 0x04, 0x5d, 0x01, 0x8f, 0xfe, 0x9e,
+ 0x9a, 0xfe, 0x77, 0x1d, 0x1c, 0x01, 0x6c, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xcb, 0x06, 0xb3, 0x00, 0x17, 0x00, 0x00, 0x01, 0x10,
+ 0x21, 0x20, 0x1b, 0x01, 0x33, 0x03, 0x10, 0x21, 0x04, 0x19, 0x01, 0x34,
+ 0x23, 0x22, 0x11, 0x17, 0x23, 0x03, 0x10, 0x21, 0x20, 0x11, 0x03, 0xca,
+ 0xfe, 0x47, 0xfe, 0x52, 0x01, 0x51, 0xbb, 0x63, 0x01, 0x0a, 0x01, 0x1a,
+ 0xff, 0xdb, 0x4b, 0xab, 0x3f, 0x01, 0x87, 0x01, 0x8b, 0x01, 0xc8, 0xfe,
+ 0x1a, 0x01, 0xe9, 0x01, 0x2f, 0xfe, 0xd1, 0xfe, 0xb7, 0x01, 0x01, 0x4f,
+ 0x03, 0x73, 0xd1, 0xfe, 0xff, 0xf6, 0x01, 0x0d, 0x01, 0x89, 0xfe, 0x8b,
+ 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xcb, 0x06, 0xb3, 0x00, 0x21,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x16, 0x1d, 0x01, 0x10, 0x20, 0x11, 0x13,
+ 0x33, 0x03, 0x10, 0x21, 0x20, 0x11, 0x35, 0x34, 0x27, 0x23, 0x35, 0x33,
+ 0x36, 0x03, 0x34, 0x23, 0x06, 0x07, 0x17, 0x23, 0x27, 0x10, 0x21, 0x20,
+ 0x03, 0xa6, 0x04, 0xb9, 0xe1, 0xfc, 0x99, 0x30, 0xb0, 0x36, 0x01, 0x0a,
+ 0x01, 0x11, 0xab, 0x99, 0x52, 0xc6, 0x02, 0xe2, 0xe9, 0x02, 0x21, 0xa8,
+ 0x16, 0x01, 0x88, 0x01, 0x8e, 0x05, 0x1b, 0xe6, 0x7c, 0x73, 0xfe, 0x7d,
+ 0xfe, 0x17, 0x02, 0x01, 0x01, 0x17, 0xfe, 0xe0, 0xfe, 0xa8, 0x01, 0x4e,
+ 0x73, 0xcd, 0x28, 0xa9, 0x50, 0x01, 0x0a, 0xda, 0x01, 0xf5, 0x9a, 0x9e,
+ 0x01, 0x90, 0x00, 0x00, 0x00, 0x03, 0x00, 0x63, 0xff, 0xe2, 0x04, 0x51,
+ 0x06, 0xb3, 0x00, 0x09, 0x00, 0x13, 0x00, 0x26, 0x00, 0x00, 0x01, 0x12,
+ 0x07, 0x22, 0x15, 0x14, 0x17, 0x36, 0x37, 0x33, 0x01, 0x10, 0x21, 0x20,
+ 0x11, 0x15, 0x10, 0x21, 0x20, 0x11, 0x37, 0x15, 0x10, 0x21, 0x20, 0x11,
+ 0x35, 0x34, 0x37, 0x26, 0x35, 0x10, 0x21, 0x20, 0x11, 0x14, 0x07, 0x33,
+ 0x04, 0x02, 0x89, 0x02, 0xc1, 0xbc, 0x5e, 0x5b, 0xad, 0x10, 0x01, 0x1e,
+ 0xfe, 0xe7, 0xfe, 0xd5, 0x01, 0x26, 0x01, 0x1e, 0xae, 0xfe, 0x33, 0xfe,
+ 0x30, 0x5b, 0xab, 0x01, 0x5e, 0x01, 0x69, 0x0b, 0x0a, 0x01, 0x27, 0x04,
+ 0xde, 0x01, 0x36, 0x01, 0xdf, 0xb4, 0x5f, 0x63, 0x09, 0xfd, 0xe5, 0x01,
+ 0x88, 0xfe, 0x76, 0x4b, 0xfe, 0x5d, 0x01, 0x9b, 0x58, 0x4b, 0xfd, 0xb8,
+ 0x02, 0x52, 0x46, 0x8d, 0xbc, 0x94, 0xce, 0x01, 0x8e, 0xfe, 0x2e, 0x25,
+ 0x40, 0x7f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x05, 0xf7,
+ 0x06, 0xb3, 0x00, 0x09, 0x00, 0x22, 0x00, 0x00, 0x01, 0x10, 0x23, 0x22,
+ 0x19, 0x01, 0x10, 0x33, 0x32, 0x11, 0x25, 0x02, 0x03, 0x23, 0x36, 0x13,
+ 0x11, 0x10, 0x23, 0x22, 0x03, 0x11, 0x10, 0x21, 0x20, 0x19, 0x01, 0x10,
+ 0x21, 0x36, 0x17, 0x36, 0x33, 0x20, 0x13, 0x02, 0xf5, 0xf2, 0xf8, 0xf8,
+ 0xf2, 0x03, 0x01, 0x09, 0xb7, 0xef, 0xee, 0x15, 0xda, 0xc2, 0x11, 0xfe,
+ 0x5d, 0xfe, 0x69, 0x01, 0xa0, 0xc9, 0x86, 0x68, 0xde, 0x01, 0x5d, 0x01,
+ 0x04, 0x92, 0x01, 0x82, 0xfe, 0x7e, 0xfd, 0x93, 0xfe, 0x5c, 0x01, 0xa4,
+ 0x9b, 0xfe, 0x46, 0xfe, 0xfa, 0xe5, 0x01, 0xdb, 0x01, 0xd2, 0x01, 0x79,
+ 0xfe, 0xed, 0xfd, 0x2d, 0xfd, 0xbd, 0x02, 0x43, 0x02, 0x6d, 0x02, 0x21,
+ 0x02, 0xe6, 0xda, 0xfd, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0x00, 0x00, 0x03, 0x9d, 0x06, 0xb3, 0x00, 0x15, 0x00, 0x00, 0x01, 0x10,
+ 0x03, 0x23, 0x12, 0x19, 0x01, 0x10, 0x23, 0x20, 0x19, 0x01, 0x10, 0x13,
+ 0x23, 0x02, 0x19, 0x01, 0x10, 0x21, 0x20, 0x11, 0x03, 0x9c, 0x8b, 0xb2,
+ 0x93, 0xdc, 0xfe, 0xf8, 0x9d, 0xb4, 0x94, 0x01, 0xb3, 0x01, 0x86, 0x02,
+ 0xfb, 0xfe, 0x8a, 0xfe, 0x7b, 0x01, 0x43, 0x01, 0xb8, 0x01, 0x9a, 0x01,
+ 0x7e, 0xfe, 0x82, 0xfe, 0x66, 0xfe, 0x53, 0xfe, 0xb2, 0x01, 0x79, 0x01,
+ 0x82, 0x01, 0x9a, 0x02, 0x1e, 0xfd, 0xe2, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xcb, 0x06, 0xa0, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x02,
+ 0x21, 0x20, 0x11, 0x13, 0x33, 0x03, 0x10, 0x05, 0x20, 0x11, 0x35, 0x10,
+ 0x2b, 0x01, 0x35, 0x33, 0x36, 0x35, 0x34, 0x27, 0x33, 0x16, 0x15, 0x10,
+ 0x07, 0x16, 0x11, 0x03, 0xca, 0x01, 0xfe, 0x4e, 0xfe, 0x4c, 0x27, 0xb9,
+ 0x36, 0x01, 0x0a, 0x01, 0x11, 0xbd, 0xc6, 0x9e, 0xe5, 0xb4, 0xfc, 0x5a,
+ 0xe1, 0xe1, 0x01, 0xc6, 0xfe, 0x1c, 0x01, 0xf3, 0x01, 0x24, 0xfe, 0xdc,
+ 0xfe, 0xae, 0x01, 0x01, 0x44, 0x78, 0x01, 0x3c, 0xa8, 0x81, 0xaf, 0x95,
+ 0xb9, 0xbe, 0x6d, 0xfe, 0xf7, 0x64, 0x63, 0xfe, 0x9e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0x00, 0x00, 0x08, 0x07, 0x06, 0xb3, 0x00, 0x35,
+ 0x00, 0x00, 0x25, 0x36, 0x37, 0x24, 0x03, 0x35, 0x10, 0x21, 0x32, 0x17,
+ 0x36, 0x20, 0x17, 0x36, 0x33, 0x20, 0x11, 0x15, 0x14, 0x03, 0x23, 0x12,
+ 0x3d, 0x01, 0x12, 0x23, 0x22, 0x15, 0x11, 0x23, 0x11, 0x10, 0x23, 0x06,
+ 0x15, 0x11, 0x23, 0x11, 0x26, 0x23, 0x22, 0x11, 0x15, 0x12, 0x05, 0x36,
+ 0x17, 0x04, 0x13, 0x21, 0x26, 0x25, 0x24, 0x01, 0x01, 0x3a, 0x68, 0x82,
+ 0xfe, 0x6a, 0x2b, 0x01, 0x8b, 0xd1, 0x65, 0x5a, 0x01, 0x74, 0x62, 0x55,
+ 0xdb, 0x01, 0x83, 0xc9, 0xb8, 0xe2, 0x01, 0xe3, 0xe7, 0x9b, 0xcc, 0xc5,
+ 0x9c, 0x02, 0xe8, 0xdf, 0x28, 0x01, 0x87, 0x6e, 0x81, 0x01, 0xda, 0xf6,
+ 0xfe, 0xef, 0x24, 0xfe, 0xbd, 0xfe, 0xbe, 0xfe, 0xe9, 0xa6, 0x78, 0x43,
+ 0xf3, 0x01, 0xf0, 0x7b, 0x01, 0xeb, 0xb2, 0xbb, 0xbb, 0xb2, 0xfe, 0x1f,
+ 0x67, 0xba, 0xfe, 0x64, 0x01, 0xb1, 0xc8, 0x3f, 0x01, 0x47, 0xe7, 0xfe,
+ 0x5a, 0x01, 0xa6, 0x01, 0x00, 0x02, 0xfe, 0xfe, 0x5a, 0x01, 0xa6, 0xe7,
+ 0xfe, 0xb7, 0x79, 0xfe, 0x41, 0xe9, 0x17, 0x0b, 0x23, 0xfe, 0x76, 0xa5,
+ 0x5c, 0x5b, 0xfe, 0xc3, 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xc9,
+ 0x06, 0xb3, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x11, 0x26, 0x27,
+ 0x20, 0x11, 0x15, 0x10, 0x05, 0x20, 0x13, 0x10, 0x21, 0x20, 0x11, 0x35,
+ 0x10, 0x25, 0x32, 0x17, 0x35, 0x34, 0x21, 0x22, 0x06, 0x15, 0x23, 0x10,
+ 0x21, 0x20, 0x11, 0x03, 0x30, 0x5f, 0xa6, 0xfe, 0xe3, 0x01, 0x1b, 0x01,
+ 0x07, 0x98, 0xfe, 0x61, 0xfe, 0x3a, 0x01, 0xb3, 0x8e, 0x8d, 0xfe, 0xfe,
+ 0x8a, 0x6f, 0xa1, 0x01, 0x8e, 0x01, 0xa5, 0x01, 0xda, 0x01, 0xcb, 0x3f,
+ 0x01, 0xfe, 0xc1, 0xb8, 0xfe, 0x95, 0x01, 0x01, 0x62, 0xfd, 0xfe, 0x02,
+ 0x02, 0xae, 0x01, 0xee, 0x14, 0x4a, 0xd1, 0xf9, 0x71, 0x6c, 0x01, 0x7c,
+ 0xfe, 0x63, 0x00, 0x00, 0x00, 0x02, 0x00, 0x75, 0xff, 0xe2, 0x03, 0xdd,
+ 0x06, 0xa0, 0x00, 0x09, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x10, 0x21, 0x22,
+ 0x07, 0x11, 0x10, 0x21, 0x20, 0x11, 0x37, 0x15, 0x10, 0x21, 0x20, 0x19,
+ 0x01, 0x10, 0x29, 0x01, 0x15, 0x21, 0x22, 0x1d, 0x01, 0x36, 0x33, 0x20,
+ 0x03, 0x3a, 0xfe, 0xe8, 0x97, 0x74, 0x01, 0x16, 0x01, 0x0d, 0xa2, 0xfe,
+ 0x46, 0xfe, 0x53, 0x01, 0x2f, 0x01, 0xd0, 0xfe, 0x35, 0x9b, 0x98, 0x7e,
+ 0x01, 0xb8, 0x02, 0xab, 0x01, 0x4f, 0x4b, 0xfe, 0x26, 0xfe, 0xad, 0x01,
+ 0x44, 0xfe, 0xfa, 0xfe, 0x18, 0x01, 0xe8, 0x03, 0x54, 0x01, 0x82, 0xa0,
+ 0xe6, 0xc7, 0x55, 0x00, 0x00, 0x01, 0x00, 0x63, 0x00, 0x00, 0x05, 0xdf,
+ 0x06, 0xb3, 0x00, 0x20, 0x00, 0x00, 0x01, 0x10, 0x01, 0x23, 0x00, 0x19,
+ 0x01, 0x10, 0x23, 0x22, 0x19, 0x01, 0x23, 0x11, 0x10, 0x23, 0x22, 0x19,
+ 0x01, 0x10, 0x01, 0x23, 0x00, 0x19, 0x01, 0x10, 0x21, 0x32, 0x17, 0x36,
+ 0x33, 0x20, 0x11, 0x05, 0xdf, 0xfe, 0xe6, 0xc9, 0x01, 0x3b, 0xf3, 0xce,
+ 0xa5, 0xef, 0xd3, 0x01, 0x1e, 0xc1, 0xfe, 0xf7, 0x01, 0x91, 0xc8, 0x6c,
+ 0x75, 0xa7, 0x01, 0x9b, 0x02, 0xc2, 0xfe, 0x66, 0xfe, 0xd8, 0x01, 0x6e,
+ 0x01, 0x55, 0x01, 0xcf, 0x01, 0x83, 0xfe, 0xcf, 0xfd, 0x82, 0x02, 0x87,
+ 0x01, 0x28, 0xfe, 0x7d, 0xfe, 0x31, 0xfe, 0xa7, 0xfe, 0x96, 0x01, 0x28,
+ 0x01, 0x9b, 0x01, 0xcf, 0x02, 0x21, 0xf0, 0xf0, 0xfd, 0xdf, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xcb, 0x06, 0x9f, 0x00, 0x1e,
+ 0x00, 0x00, 0x01, 0x15, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10,
+ 0x21, 0x20, 0x11, 0x35, 0x34, 0x27, 0x23, 0x35, 0x33, 0x36, 0x35, 0x34,
+ 0x24, 0x35, 0x33, 0x14, 0x04, 0x15, 0x14, 0x07, 0x16, 0x03, 0xca, 0xfe,
+ 0x5f, 0xfe, 0x3a, 0x12, 0xb3, 0x1a, 0x01, 0x16, 0x01, 0x04, 0x9e, 0xc4,
+ 0x67, 0xe9, 0xfe, 0x87, 0xc6, 0x01, 0x55, 0xd3, 0xe5, 0x01, 0xd7, 0x25,
+ 0xfe, 0x30, 0x01, 0xdf, 0xb3, 0xb3, 0xfe, 0xc1, 0x01, 0x3f, 0x43, 0xc0,
+ 0x2d, 0xb6, 0x3f, 0xb0, 0xa3, 0x72, 0xf4, 0x96, 0x8e, 0xdd, 0xb2, 0x79,
+ 0x6e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xca,
+ 0x06, 0xc1, 0x00, 0x16, 0x00, 0x00, 0x01, 0x10, 0x25, 0x20, 0x11, 0x33,
+ 0x10, 0x21, 0x20, 0x19, 0x01, 0x05, 0x04, 0x15, 0x10, 0x25, 0x35, 0x04,
+ 0x27, 0x36, 0x25, 0x35, 0x25, 0x03, 0xc9, 0xfe, 0x49, 0xfe, 0x51, 0xab,
+ 0x01, 0x04, 0x01, 0x14, 0xfe, 0x0f, 0x01, 0x3d, 0xfd, 0xf2, 0x01, 0x78,
+ 0x01, 0x02, 0xfe, 0x87, 0x03, 0x65, 0x01, 0xd1, 0xfe, 0x0f, 0x02, 0x02,
+ 0x4a, 0xfe, 0x56, 0x01, 0x4f, 0x04, 0x3b, 0x32, 0x78, 0xd6, 0xfe, 0x7d,
+ 0x02, 0xb2, 0x02, 0xce, 0xb0, 0x5f, 0xa7, 0x82, 0x00, 0x01, 0x00, 0x63,
+ 0x00, 0x00, 0x06, 0x31, 0x06, 0xb3, 0x00, 0x26, 0x00, 0x00, 0x01, 0x15,
+ 0x10, 0x01, 0x23, 0x00, 0x11, 0x35, 0x10, 0x27, 0x22, 0x03, 0x11, 0x23,
+ 0x11, 0x10, 0x23, 0x22, 0x11, 0x15, 0x10, 0x01, 0x23, 0x00, 0x11, 0x35,
+ 0x10, 0x37, 0x36, 0x21, 0x15, 0x24, 0x03, 0x37, 0x32, 0x17, 0x36, 0x33,
+ 0x20, 0x06, 0x31, 0xfe, 0xc5, 0xd7, 0x01, 0x60, 0xeb, 0xf0, 0x01, 0xad,
+ 0xfe, 0xea, 0x01, 0x6c, 0xd4, 0xfe, 0xbd, 0xf8, 0xfa, 0x02, 0x82, 0xfd,
+ 0x41, 0x9f, 0x71, 0xef, 0x7c, 0x69, 0xc6, 0x01, 0xac, 0x03, 0x1e, 0x7c,
+ 0xfe, 0x62, 0xfe, 0xfc, 0x01, 0x62, 0x01, 0x49, 0x8c, 0x01, 0x4b, 0x02,
+ 0xfe, 0xd7, 0xfe, 0xa2, 0x01, 0x5e, 0x01, 0x28, 0xfe, 0xb4, 0x95, 0xfe,
+ 0xc1, 0xfe, 0x9d, 0x01, 0x04, 0x01, 0x9e, 0x77, 0x01, 0xa3, 0xfc, 0xfb,
+ 0xa0, 0x01, 0xfe, 0xd8, 0x34, 0xf4, 0xf4, 0x00, 0x00, 0x01, 0x00, 0x75,
+ 0xff, 0xe2, 0x03, 0xdd, 0x06, 0x9f, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15,
+ 0x10, 0x21, 0x20, 0x19, 0x01, 0x33, 0x11, 0x10, 0x21, 0x20, 0x11, 0x35,
+ 0x34, 0x02, 0x27, 0x37, 0x33, 0x07, 0x14, 0x12, 0x03, 0xdc, 0xfe, 0x46,
+ 0xfe, 0x53, 0xa2, 0x01, 0x0d, 0x01, 0x16, 0xe3, 0x02, 0x28, 0xb4, 0x42,
+ 0xed, 0x02, 0x07, 0x2d, 0xfe, 0x08, 0x02, 0x52, 0x04, 0x6b, 0xfb, 0x6d,
+ 0xfe, 0x76, 0x01, 0x49, 0x4b, 0xb3, 0x01, 0x26, 0x99, 0xd9, 0xe6, 0x7c,
+ 0xfe, 0xfb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x04, 0xe0,
+ 0x06, 0xb3, 0x00, 0x24, 0x00, 0x00, 0x01, 0x0e, 0x01, 0x07, 0x11, 0x16,
+ 0x12, 0x33, 0x32, 0x12, 0x35, 0x11, 0x34, 0x02, 0x27, 0x23, 0x13, 0x23,
+ 0x13, 0x35, 0x33, 0x15, 0x33, 0x04, 0x12, 0x07, 0x11, 0x16, 0x00, 0x21,
+ 0x20, 0x00, 0x35, 0x11, 0x34, 0x12, 0x37, 0x01, 0xd6, 0x77, 0x4f, 0x02,
+ 0x01, 0xbc, 0xd9, 0xd7, 0xb9, 0xc1, 0x83, 0x11, 0x12, 0xa8, 0x12, 0x84,
+ 0x11, 0x01, 0x0f, 0xe1, 0x01, 0x01, 0xfe, 0xf5, 0xfe, 0xcb, 0xfe, 0xdd,
+ 0xfe, 0xe6, 0xad, 0xc6, 0x05, 0xa7, 0x2f, 0xf0, 0xb3, 0xfe, 0xbd, 0x98,
+ 0xfe, 0x88, 0x01, 0x77, 0x99, 0x01, 0x40, 0xb6, 0x01, 0x44, 0x02, 0xfc,
+ 0xed, 0x03, 0x11, 0xe7, 0x44, 0x5c, 0xfe, 0x75, 0xb1, 0xfe, 0xb6, 0xd1,
+ 0xfe, 0x26, 0x01, 0xd6, 0xd5, 0x01, 0x49, 0xb0, 0x01, 0x8d, 0x52, 0x00,
+ 0x00, 0x01, 0x00, 0x2d, 0xff, 0xe1, 0x03, 0xbd, 0x06, 0xb3, 0x00, 0x1e,
+ 0x00, 0x00, 0x01, 0x12, 0x21, 0x20, 0x03, 0x13, 0x33, 0x03, 0x10, 0x21,
+ 0x20, 0x19, 0x01, 0x26, 0x23, 0x22, 0x17, 0x11, 0x23, 0x11, 0x26, 0x27,
+ 0x23, 0x35, 0x33, 0x32, 0x17, 0x36, 0x33, 0x20, 0x11, 0x03, 0xbd, 0x01,
+ 0xfe, 0x62, 0xfe, 0x3a, 0x04, 0x33, 0xb7, 0x3e, 0x01, 0x22, 0x01, 0x01,
+ 0x01, 0xaf, 0x96, 0x02, 0x8f, 0x12, 0x8f, 0x84, 0x7e, 0x8b, 0x44, 0x5e,
+ 0x99, 0x01, 0x4c, 0x01, 0xee, 0xfd, 0xf3, 0x01, 0xea, 0x01, 0x2e, 0xfe,
+ 0xd7, 0xfe, 0xb2, 0x01, 0x35, 0x03, 0xb4, 0xa9, 0x54, 0xfe, 0x68, 0x01,
+ 0x4d, 0x8c, 0x13, 0x9f, 0x9f, 0x9f, 0xfe, 0x86, 0x00, 0x02, 0x00, 0x63,
+ 0xff, 0xe2, 0x05, 0xe5, 0x06, 0xb3, 0x00, 0x09, 0x00, 0x37, 0x00, 0x00,
+ 0x01, 0x10, 0x23, 0x22, 0x11, 0x15, 0x10, 0x33, 0x32, 0x11, 0x01, 0x14,
+ 0x00, 0x2b, 0x01, 0x22, 0x24, 0x35, 0x33, 0x14, 0x16, 0x3b, 0x01, 0x32,
+ 0x36, 0x35, 0x10, 0x2b, 0x01, 0x35, 0x37, 0x36, 0x35, 0x10, 0x23, 0x22,
+ 0x07, 0x16, 0x07, 0x15, 0x10, 0x25, 0x04, 0x11, 0x35, 0x10, 0x21, 0x32,
+ 0x17, 0x36, 0x33, 0x20, 0x11, 0x10, 0x07, 0x16, 0x02, 0xf2, 0xf6, 0xee,
+ 0xfa, 0xea, 0x02, 0xe0, 0xfe, 0xdf, 0xfb, 0x5a, 0xbb, 0xfe, 0xd6, 0xb7,
+ 0xc4, 0x75, 0x43, 0xb2, 0xd1, 0x73, 0x6f, 0x35, 0xbf, 0xef, 0x77, 0x64,
+ 0x22, 0x03, 0xfe, 0x75, 0xfe, 0x5a, 0x01, 0x96, 0xe4, 0x62, 0x7e, 0xa8,
+ 0x01, 0x7f, 0xd4, 0xc2, 0x04, 0x9e, 0x01, 0x76, 0xfe, 0x8f, 0x8b, 0xfe,
+ 0x79, 0x01, 0x87, 0xfd, 0xc0, 0xd4, 0xfe, 0xde, 0xd9, 0x81, 0x3b, 0x80,
+ 0xcd, 0x89, 0x01, 0x01, 0x97, 0x02, 0x89, 0xdf, 0x01, 0x35, 0x80, 0x70,
+ 0x94, 0x72, 0xfd, 0xd7, 0x01, 0x01, 0x02, 0x29, 0x8b, 0x02, 0x10, 0xc7,
+ 0xc1, 0xfe, 0x5a, 0xfe, 0xe5, 0x92, 0x7b, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xca, 0x06, 0x9f, 0x00, 0x19, 0x00, 0x00, 0x01, 0x10,
+ 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x21, 0x20, 0x19, 0x01, 0x02,
+ 0x27, 0x06, 0x07, 0x13, 0x23, 0x27, 0x10, 0x05, 0x32, 0x13, 0x11, 0x33,
+ 0x03, 0xc9, 0xfe, 0x47, 0xfe, 0x53, 0x31, 0xb8, 0x3e, 0x01, 0x04, 0x01,
+ 0x1f, 0xbb, 0xa2, 0xb0, 0x01, 0x3b, 0xa1, 0x36, 0x01, 0x49, 0x9a, 0xc7,
+ 0x98, 0x01, 0xca, 0xfe, 0x18, 0x01, 0xe8, 0xdd, 0xdc, 0xfe, 0xb7, 0x01,
+ 0x4e, 0x02, 0x24, 0x01, 0xb2, 0x02, 0x01, 0xa8, 0xfe, 0xff, 0xf9, 0x01,
+ 0x5e, 0x02, 0xfe, 0xaa, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x06, 0x0f, 0x06, 0xb3, 0x00, 0x2a, 0x00, 0x00, 0x37, 0x36,
+ 0x37, 0x00, 0x11, 0x35, 0x10, 0x21, 0x32, 0x13, 0x12, 0x33, 0x20, 0x13,
+ 0x15, 0x06, 0x03, 0x23, 0x12, 0x3d, 0x01, 0x10, 0x23, 0x22, 0x19, 0x01,
+ 0x23, 0x11, 0x10, 0x20, 0x13, 0x15, 0x02, 0x01, 0x16, 0x17, 0x04, 0x17,
+ 0x23, 0x26, 0x27, 0x26, 0x05, 0xe3, 0x6c, 0x8a, 0xfe, 0x8a, 0x01, 0x99,
+ 0xc3, 0x7b, 0x6c, 0xcf, 0x01, 0x99, 0x01, 0x02, 0x9e, 0xce, 0xc1, 0xe9,
+ 0xf4, 0x9a, 0xfe, 0x21, 0x02, 0x01, 0x01, 0x88, 0x6a, 0x4b, 0x01, 0x7a,
+ 0x33, 0xee, 0x03, 0xe3, 0xf6, 0xfe, 0xfc, 0xb1, 0x62, 0x22, 0x01, 0x1c,
+ 0x02, 0x20, 0x4b, 0x01, 0xf7, 0xfe, 0xf9, 0x01, 0x07, 0xfe, 0x20, 0x61,
+ 0xeb, 0xfe, 0x94, 0x01, 0x60, 0xf2, 0x54, 0x01, 0x54, 0xfe, 0x72, 0xfe,
+ 0xc0, 0x01, 0x40, 0x01, 0x8d, 0xfe, 0xa8, 0x6d, 0xfe, 0x4d, 0xfe, 0xad,
+ 0x04, 0x12, 0x70, 0xe1, 0x52, 0x63, 0x45, 0xbe, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xc9, 0x06, 0xa1, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x10,
+ 0x21, 0x20, 0x11, 0x13, 0x33, 0x03, 0x10, 0x21, 0x20, 0x19, 0x01, 0x06,
+ 0x07, 0x04, 0x11, 0x35, 0x34, 0x37, 0x33, 0x06, 0x1d, 0x01, 0x10, 0x17,
+ 0x36, 0x37, 0x11, 0x33, 0x03, 0xc8, 0xfe, 0x4a, 0xfe, 0x51, 0x1b, 0xaf,
+ 0x1f, 0x01, 0x04, 0x01, 0x1f, 0x94, 0x82, 0xfe, 0x63, 0x82, 0xca, 0xa1,
+ 0xe9, 0x94, 0x8b, 0x97, 0x01, 0xc5, 0xfe, 0x1d, 0x01, 0xbb, 0x01, 0x09,
+ 0xfe, 0xf3, 0xfe, 0xe9, 0x01, 0x44, 0x01, 0xf8, 0x63, 0x0b, 0x02, 0x01,
+ 0xb9, 0x28, 0xa9, 0xc9, 0xd4, 0x94, 0x28, 0xfe, 0xda, 0x01, 0x0a, 0x74,
+ 0x02, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xc9,
+ 0x06, 0xb3, 0x00, 0x08, 0x00, 0x23, 0x00, 0x00, 0x01, 0x11, 0x26, 0x23,
+ 0x20, 0x11, 0x15, 0x02, 0x20, 0x13, 0x10, 0x21, 0x20, 0x11, 0x35, 0x12,
+ 0x21, 0x16, 0x17, 0x11, 0x34, 0x23, 0x22, 0x1d, 0x01, 0x23, 0x35, 0x34,
+ 0x23, 0x35, 0x20, 0x17, 0x36, 0x33, 0x20, 0x11, 0x03, 0x31, 0x67, 0xb3,
+ 0xfe, 0xf8, 0x01, 0x02, 0x23, 0x97, 0xfe, 0x60, 0xfe, 0x3b, 0x01, 0x01,
+ 0xb3, 0x7a, 0xa0, 0x9c, 0xa1, 0x94, 0xfd, 0x01, 0x00, 0x30, 0x4d, 0xbe,
+ 0x01, 0x2a, 0x01, 0xcb, 0x01, 0xc6, 0x49, 0xfe, 0x90, 0x72, 0xfe, 0x8a,
+ 0x01, 0x5d, 0xfe, 0x03, 0x02, 0x0c, 0x90, 0x01, 0xf9, 0x02, 0x3d, 0x01,
+ 0x60, 0x7c, 0xb4, 0x3a, 0x3a, 0xb4, 0x9f, 0xc0, 0xc0, 0xfe, 0xb3, 0x00,
+ 0x00, 0x01, 0x00, 0x75, 0x00, 0x00, 0x03, 0xdd, 0x06, 0xb3, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x37, 0x34, 0x23, 0x22, 0x11, 0x15, 0x36, 0x17, 0x04,
+ 0x03, 0x15, 0x10, 0x03, 0x23, 0x12, 0x3d, 0x01, 0x10, 0x05, 0x26, 0x07,
+ 0x11, 0x23, 0x11, 0x02, 0x21, 0x20, 0x13, 0x07, 0x02, 0x4e, 0x0e, 0x95,
+ 0xb0, 0x9d, 0x8b, 0x01, 0x9e, 0x01, 0xad, 0xc6, 0xd1, 0xfe, 0xf8, 0x74,
+ 0xa7, 0xa1, 0x01, 0x01, 0x33, 0x01, 0x59, 0x01, 0x12, 0x05, 0x0e, 0x92,
+ 0x75, 0xfe, 0xe6, 0xe1, 0x68, 0x04, 0x01, 0xfe, 0x3d, 0x5e, 0xfe, 0xfd,
+ 0xfe, 0xa7, 0x01, 0x75, 0xb0, 0xae, 0x01, 0x13, 0x01, 0x01, 0x62, 0xfc,
+ 0x7c, 0x04, 0xf0, 0x01, 0xc3, 0xfe, 0xed, 0x92, 0x00, 0x01, 0x00, 0x64,
+ 0xff, 0xe2, 0x04, 0x4a, 0x06, 0xa0, 0x00, 0x23, 0x00, 0x00, 0x01, 0x16,
+ 0x07, 0x04, 0x11, 0x10, 0x02, 0x20, 0x00, 0x19, 0x01, 0x02, 0x13, 0x33,
+ 0x02, 0x15, 0x11, 0x1a, 0x01, 0x17, 0x32, 0x12, 0x35, 0x26, 0x2b, 0x01,
+ 0x35, 0x33, 0x36, 0x35, 0x34, 0x24, 0x37, 0x33, 0x14, 0x04, 0x04, 0x1c,
+ 0x02, 0xdf, 0x01, 0x0a, 0xff, 0xfe, 0x35, 0xfe, 0xe6, 0x02, 0x67, 0xc1,
+ 0x79, 0x01, 0xb8, 0x9a, 0x9d, 0x9b, 0x03, 0xac, 0xbd, 0x51, 0xee, 0xff,
+ 0x00, 0x01, 0xa5, 0x01, 0x07, 0x05, 0x07, 0xae, 0x8c, 0x7b, 0xfe, 0xf6,
+ 0xfe, 0xe2, 0xfe, 0xb8, 0x01, 0x48, 0x01, 0x70, 0x01, 0x9d, 0x01, 0x2c,
+ 0x01, 0x3d, 0xfe, 0x8b, 0xf4, 0xfe, 0x63, 0xfe, 0xf6, 0xfe, 0xf2, 0x01,
+ 0x01, 0x0f, 0xad, 0xfb, 0xa3, 0x65, 0xc2, 0x81, 0x91, 0x8c, 0x54, 0x88,
+ 0x00, 0x02, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xc9, 0x06, 0x9f, 0x00, 0x09,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x11, 0x26, 0x23, 0x20, 0x11, 0x15, 0x10,
+ 0x21, 0x20, 0x13, 0x10, 0x21, 0x20, 0x11, 0x35, 0x10, 0x21, 0x36, 0x17,
+ 0x11, 0x33, 0x03, 0x31, 0x6e, 0xb5, 0xff, 0x00, 0x01, 0x00, 0x01, 0x23,
+ 0x97, 0xfe, 0x4f, 0xfe, 0x4c, 0x01, 0xb4, 0x95, 0x85, 0x97, 0x02, 0x07,
+ 0x01, 0xa3, 0x50, 0xfe, 0x70, 0x59, 0xfe, 0x71, 0x01, 0x6c, 0xfd, 0xf4,
+ 0x02, 0x3e, 0x4a, 0x02, 0x3d, 0x01, 0x52, 0x02, 0x49, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x75, 0xff, 0xe2, 0x03, 0xdc, 0x06, 0xb3, 0x00, 0x1a,
+ 0x00, 0x24, 0x00, 0x00, 0x13, 0x10, 0x21, 0x32, 0x17, 0x36, 0x21, 0x15,
+ 0x22, 0x1d, 0x01, 0x23, 0x35, 0x34, 0x23, 0x22, 0x15, 0x11, 0x36, 0x37,
+ 0x20, 0x13, 0x15, 0x10, 0x21, 0x20, 0x13, 0x33, 0x10, 0x33, 0x20, 0x11,
+ 0x35, 0x10, 0x21, 0x22, 0x07, 0x76, 0x01, 0x38, 0xb4, 0x57, 0x21, 0x01,
+ 0x01, 0xfd, 0x93, 0x97, 0x9d, 0x95, 0x7d, 0x01, 0xb1, 0x01, 0xfe, 0x3c,
+ 0xfe, 0x5e, 0x02, 0xa1, 0xfb, 0x01, 0x28, 0xfe, 0xee, 0x7c, 0x95, 0x05,
+ 0x79, 0x01, 0x3a, 0xbd, 0xbd, 0x9f, 0xa0, 0x44, 0x44, 0xa0, 0x9b, 0xfe,
+ 0x9e, 0x55, 0x01, 0xfe, 0x11, 0x77, 0xfd, 0xdb, 0x02, 0x1b, 0xfe, 0x85,
+ 0x01, 0x71, 0x8b, 0x01, 0x52, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xed, 0x06, 0xa0, 0x00, 0x1c, 0x00, 0x23, 0x00, 0x00,
+ 0x01, 0x23, 0x13, 0x33, 0x15, 0x23, 0x13, 0x10, 0x21, 0x20, 0x11, 0x37,
+ 0x33, 0x07, 0x10, 0x21, 0x20, 0x11, 0x03, 0x23, 0x20, 0x11, 0x10, 0x21,
+ 0x33, 0x27, 0x33, 0x17, 0x33, 0x01, 0x14, 0x3b, 0x01, 0x03, 0x23, 0x22,
+ 0x03, 0xec, 0xc6, 0x38, 0x8e, 0x71, 0x4e, 0xfe, 0x47, 0xfe, 0x53, 0x35,
+ 0xb8, 0x41, 0x01, 0x03, 0x01, 0x16, 0x54, 0xcb, 0xfe, 0x90, 0x01, 0x73,
+ 0x54, 0x21, 0xb4, 0x1f, 0xda, 0xfd, 0x3c, 0xda, 0xc0, 0x3e, 0x7f, 0xdd,
+ 0x05, 0x69, 0xfe, 0xb9, 0x8d, 0xfe, 0x35, 0xfe, 0x18, 0x01, 0xe8, 0xdd,
+ 0xdc, 0xfe, 0xb7, 0x01, 0x4e, 0x01, 0xc5, 0x01, 0x2d, 0x01, 0x36, 0xa8,
+ 0xa8, 0xfe, 0xcf, 0xa5, 0x01, 0x47, 0x00, 0x00, 0x00, 0x02, 0x00, 0x75,
+ 0xff, 0xe2, 0x03, 0xdd, 0x06, 0x9f, 0x00, 0x09, 0x00, 0x15, 0x00, 0x00,
+ 0x01, 0x10, 0x21, 0x06, 0x07, 0x11, 0x10, 0x21, 0x20, 0x11, 0x37, 0x15,
+ 0x10, 0x21, 0x20, 0x19, 0x01, 0x33, 0x11, 0x36, 0x33, 0x04, 0x03, 0x3a,
+ 0xfe, 0xea, 0x92, 0x7a, 0x01, 0x1a, 0x01, 0x08, 0xa2, 0xfe, 0x56, 0xfe,
+ 0x43, 0xa3, 0x91, 0x7b, 0x01, 0xb8, 0x02, 0x8d, 0x01, 0x7f, 0x03, 0x55,
+ 0xfe, 0x58, 0xfe, 0x76, 0x01, 0x80, 0x6e, 0x5f, 0xfd, 0xd1, 0x02, 0x25,
+ 0x04, 0x98, 0xfd, 0xbc, 0x4e, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2d,
+ 0xff, 0xe2, 0x03, 0x8b, 0x06, 0xb3, 0x00, 0x21, 0x00, 0x00, 0x01, 0x07,
+ 0x25, 0x03, 0x04, 0x17, 0x06, 0x04, 0x21, 0x35, 0x32, 0x36, 0x35, 0x26,
+ 0x2f, 0x01, 0x13, 0x25, 0x37, 0x05, 0x37, 0x36, 0x34, 0x26, 0x23, 0x07,
+ 0x35, 0x33, 0x32, 0x17, 0x16, 0x14, 0x0f, 0x01, 0x03, 0x8a, 0x45, 0xfe,
+ 0xc9, 0x82, 0x01, 0x2e, 0x01, 0x01, 0xfe, 0xe8, 0xfe, 0xbd, 0xfb, 0xb5,
+ 0x01, 0xeb, 0x68, 0xd2, 0xfe, 0xa0, 0x48, 0x01, 0x5b, 0x5f, 0x11, 0x43,
+ 0x39, 0x75, 0x8c, 0x77, 0x43, 0x43, 0x1b, 0x65, 0x03, 0xcc, 0x8a, 0xab,
+ 0xfe, 0xeb, 0x6e, 0xdc, 0xc6, 0xe6, 0xa0, 0x7f, 0x7a, 0xc0, 0x28, 0x45,
+ 0x01, 0x95, 0xbe, 0x8c, 0xc5, 0xc2, 0x1c, 0x53, 0x38, 0x13, 0x9b, 0x4b,
+ 0x4a, 0xb2, 0x37, 0xc4, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xca,
+ 0x06, 0xb3, 0x00, 0x26, 0x00, 0x00, 0x01, 0x10, 0x21, 0x20, 0x11, 0x33,
+ 0x10, 0x21, 0x20, 0x11, 0x34, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x35, 0x34,
+ 0x27, 0x23, 0x35, 0x33, 0x32, 0x35, 0x34, 0x21, 0x23, 0x35, 0x33, 0x20,
+ 0x11, 0x14, 0x07, 0x33, 0x16, 0x15, 0x16, 0x07, 0x16, 0x03, 0xc9, 0xfe,
+ 0x49, 0xfe, 0x51, 0xab, 0x01, 0x04, 0x01, 0x0f, 0x8b, 0xd0, 0xbe, 0x8b,
+ 0x8b, 0xd0, 0xd0, 0x76, 0xfe, 0x96, 0x6b, 0x6b, 0x02, 0x15, 0x88, 0x02,
+ 0x98, 0x01, 0x76, 0x87, 0x01, 0x99, 0xfe, 0x49, 0x02, 0x04, 0xfe, 0x9c,
+ 0x01, 0x17, 0xc5, 0xb3, 0x84, 0x79, 0x01, 0xb5, 0x99, 0xb8, 0x9e, 0xfe,
+ 0xaa, 0x9b, 0x61, 0x4e, 0x87, 0x94, 0x47, 0x6e, 0x00, 0x01, 0x00, 0x6c,
+ 0xff, 0xe2, 0x03, 0xd2, 0x06, 0xb2, 0x00, 0x26, 0x00, 0x00, 0x05, 0x20,
+ 0x19, 0x01, 0x33, 0x11, 0x10, 0x21, 0x20, 0x11, 0x34, 0x27, 0x23, 0x35,
+ 0x33, 0x32, 0x37, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x36, 0x35, 0x34, 0x21,
+ 0x35, 0x20, 0x11, 0x06, 0x07, 0x23, 0x16, 0x17, 0x06, 0x07, 0x16, 0x15,
+ 0x10, 0x02, 0x20, 0xfe, 0x4c, 0xa3, 0x01, 0x11, 0x01, 0x0a, 0x76, 0x98,
+ 0x98, 0x61, 0x05, 0x05, 0x76, 0x95, 0x95, 0x64, 0xfe, 0xf5, 0x01, 0xb6,
+ 0x01, 0x8f, 0x02, 0xa4, 0x01, 0x01, 0x9b, 0xac, 0x1e, 0x01, 0xe6, 0x04,
+ 0x4d, 0xfb, 0xb3, 0xfe, 0xba, 0x01, 0x12, 0xe0, 0x02, 0xb1, 0x83, 0x7d,
+ 0xb7, 0x01, 0xb4, 0x81, 0x9e, 0xfe, 0xd2, 0xa5, 0x53, 0x67, 0x7e, 0x80,
+ 0x5c, 0x56, 0xe1, 0xfe, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63,
+ 0xff, 0x5f, 0x03, 0xcb, 0x06, 0xb3, 0x00, 0x09, 0x00, 0x1f, 0x00, 0x00,
+ 0x01, 0x10, 0x05, 0x24, 0x19, 0x01, 0x10, 0x21, 0x20, 0x11, 0x03, 0x32,
+ 0x37, 0x23, 0x02, 0x19, 0x01, 0x10, 0x21, 0x20, 0x19, 0x01, 0x10, 0x03,
+ 0x16, 0x33, 0x15, 0x22, 0x27, 0x23, 0x06, 0x27, 0x01, 0x0e, 0x01, 0x07,
+ 0x01, 0x0c, 0xfe, 0xf5, 0xfe, 0xf8, 0xab, 0xc3, 0x39, 0x02, 0xfa, 0x01,
+ 0xb2, 0x01, 0xb3, 0xfe, 0x29, 0xd7, 0xaf, 0xfd, 0x13, 0xf7, 0xb1, 0x02,
+ 0xd2, 0xfe, 0x68, 0x78, 0x78, 0x01, 0x98, 0x01, 0xa2, 0x01, 0xa0, 0xfe,
+ 0x60, 0xfb, 0xa9, 0x53, 0x01, 0x04, 0x01, 0x5e, 0x01, 0xa6, 0x02, 0x3b,
+ 0xfd, 0xc1, 0xfe, 0x5e, 0xfe, 0xa2, 0xfe, 0xf8, 0x4f, 0xbe, 0xe6, 0xe7,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe2, 0x03, 0xc9,
+ 0x06, 0xb5, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x10, 0x21, 0x20, 0x11, 0x35,
+ 0x33, 0x15, 0x10, 0x21, 0x20, 0x11, 0x35, 0x10, 0x2b, 0x01, 0x35, 0x33,
+ 0x24, 0x11, 0x05, 0x15, 0x23, 0x11, 0x25, 0x10, 0x05, 0x04, 0x11, 0x03,
+ 0xc8, 0xfe, 0x48, 0xfe, 0x55, 0xaa, 0x01, 0x08, 0x01, 0x0a, 0xda, 0xcd,
+ 0x6f, 0x01, 0x38, 0xfd, 0xf0, 0xae, 0x03, 0x65, 0xfe, 0xdb, 0x01, 0x25,
+ 0x01, 0x96, 0xfe, 0x4c, 0x01, 0xd4, 0xd3, 0xdd, 0xfe, 0xd6, 0x01, 0x14,
+ 0x9b, 0x01, 0x1a, 0xa4, 0xad, 0x01, 0x78, 0x17, 0xec, 0x01, 0x8f, 0x15,
+ 0xfd, 0xbf, 0x9e, 0x71, 0xfe, 0xd2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63,
+ 0xff, 0xe2, 0x03, 0xd5, 0x06, 0xb4, 0x00, 0x20, 0x00, 0x00, 0x01, 0x10,
+ 0x21, 0x20, 0x11, 0x35, 0x33, 0x15, 0x10, 0x21, 0x20, 0x11, 0x10, 0x2b,
+ 0x01, 0x35, 0x33, 0x24, 0x03, 0x06, 0x23, 0x04, 0x11, 0x33, 0x14, 0x21,
+ 0x32, 0x37, 0x33, 0x15, 0x02, 0x05, 0x04, 0x03, 0xc9, 0xfe, 0x49, 0xfe,
+ 0x51, 0xac, 0x01, 0x03, 0x01, 0x0f, 0xfa, 0xad, 0x63, 0x01, 0x43, 0x02,
+ 0x96, 0x76, 0xfe, 0x51, 0xab, 0x01, 0x04, 0xc8, 0x70, 0x8b, 0x0a, 0xfe,
+ 0xf3, 0x01, 0x0b, 0x01, 0xc8, 0xfe, 0x1a, 0x01, 0xe6, 0x8e, 0x8e, 0xfe,
+ 0xba, 0x01, 0x46, 0x01, 0x60, 0xad, 0x1e, 0x01, 0xbb, 0x6f, 0x02, 0x01,
+ 0x77, 0xc6, 0xc5, 0xe1, 0xfe, 0x80, 0xa6, 0x9c, 0x00, 0x03, 0x00, 0x63,
+ 0xff, 0xe2, 0x04, 0x48, 0x06, 0xb3, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x25,
+ 0x00, 0x00, 0x01, 0x21, 0x24, 0x11, 0x10, 0x21, 0x20, 0x35, 0x01, 0x10,
+ 0x29, 0x01, 0x11, 0x34, 0x21, 0x20, 0x01, 0x15, 0x10, 0x21, 0x20, 0x11,
+ 0x10, 0x37, 0x23, 0x26, 0x11, 0x10, 0x21, 0x20, 0x11, 0x15, 0x33, 0x15,
+ 0x23, 0x11, 0x33, 0x15, 0x03, 0x2a, 0xfe, 0xe6, 0xfe, 0xfe, 0x01, 0x09,
+ 0x01, 0x13, 0xfd, 0xe4, 0x01, 0x02, 0x01, 0x1a, 0xfe, 0xed, 0xfe, 0xf7,
+ 0x02, 0xbb, 0xfe, 0x47, 0xfe, 0x53, 0xf1, 0x01, 0xf0, 0x01, 0xb4, 0x01,
+ 0xb2, 0x7e, 0x7e, 0x7e, 0x02, 0xde, 0x02, 0xfe, 0xce, 0xfe, 0xd4, 0xf4,
+ 0x03, 0x62, 0xfe, 0xba, 0x01, 0x9f, 0xe3, 0xfb, 0xda, 0x78, 0xfe, 0x6c,
+ 0x01, 0xcc, 0x01, 0x21, 0x6a, 0x60, 0x01, 0x3f, 0x01, 0xdb, 0xfe, 0x7e,
+ 0x97, 0xbe, 0xfe, 0xca, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x63,
+ 0xff, 0xe2, 0x06, 0x7e, 0x06, 0xb4, 0x00, 0x0a, 0x00, 0x2c, 0x00, 0x00,
+ 0x01, 0x11, 0x34, 0x26, 0x23, 0x20, 0x13, 0x11, 0x10, 0x05, 0x20, 0x13,
+ 0x10, 0x21, 0x22, 0x27, 0x15, 0x10, 0x21, 0x35, 0x32, 0x35, 0x11, 0x10,
+ 0x21, 0x22, 0x06, 0x1d, 0x01, 0x10, 0x21, 0x15, 0x20, 0x03, 0x35, 0x10,
+ 0x36, 0x37, 0x32, 0x17, 0x36, 0x33, 0x04, 0x12, 0x15, 0x05, 0xd6, 0x74,
+ 0x96, 0xfe, 0xfc, 0x01, 0x01, 0x03, 0x01, 0x0a, 0xa7, 0xfe, 0x49, 0x73,
+ 0x8b, 0xfe, 0x5e, 0xf8, 0xfe, 0xf8, 0x7d, 0x8a, 0x01, 0x08, 0xfe, 0x4d,
+ 0x01, 0xfc, 0xb7, 0xea, 0x7b, 0x6a, 0xe7, 0x01, 0x0a, 0xa7, 0x03, 0xb5,
+ 0x01, 0x03, 0xc3, 0x9a, 0xfe, 0xd9, 0xfe, 0x6b, 0xfe, 0xd4, 0x01, 0x01,
+ 0x84, 0xfd, 0xdd, 0x87, 0x9e, 0xfe, 0x6c, 0xa0, 0xf4, 0x03, 0x78, 0x01,
+ 0x27, 0x9b, 0xc2, 0xfd, 0xfe, 0xaf, 0xa5, 0x01, 0xf6, 0xfd, 0x01, 0x01,
+ 0xfa, 0x01, 0xd8, 0xd8, 0x01, 0xfe, 0xc4, 0xbf, 0x00, 0x03, 0x00, 0x6d,
+ 0xfe, 0x1e, 0x06, 0x47, 0x06, 0x87, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x23,
+ 0x00, 0x00, 0x01, 0x04, 0x07, 0x03, 0x06, 0x33, 0x32, 0x25, 0x17, 0x24,
+ 0x37, 0x13, 0x36, 0x23, 0x22, 0x05, 0x01, 0x06, 0x05, 0x13, 0x23, 0x03,
+ 0x04, 0x23, 0x22, 0x1b, 0x01, 0x36, 0x25, 0x03, 0x33, 0x13, 0x24, 0x33,
+ 0x32, 0x03, 0x03, 0x3e, 0xfe, 0x2f, 0x18, 0x3b, 0x15, 0x65, 0x66, 0x01,
+ 0x10, 0x9a, 0x01, 0xd0, 0x0d, 0x41, 0x18, 0x80, 0x52, 0xff, 0x00, 0x02,
+ 0x27, 0x1d, 0xfd, 0x8a, 0x54, 0xbb, 0x53, 0xfe, 0xe6, 0x98, 0xbe, 0x26,
+ 0x41, 0x20, 0x02, 0x76, 0x47, 0xab, 0x41, 0x01, 0x16, 0xae, 0xbe, 0x26,
+ 0x03, 0xfc, 0x4e, 0xa8, 0xfe, 0x2c, 0xae, 0xae, 0xae, 0x46, 0x68, 0x01,
+ 0xfa, 0xae, 0x49, 0xfd, 0xa1, 0xe0, 0x28, 0xfd, 0xf4, 0x02, 0x91, 0xaf,
+ 0x01, 0x32, 0x01, 0xf9, 0xfa, 0x3a, 0x02, 0x28, 0xfd, 0x6a, 0x6e, 0xfe,
+ 0xcd, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0xfe, 0x28, 0x05, 0x78,
+ 0x06, 0xd3, 0x00, 0x30, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x14, 0x00, 0x15,
+ 0x14, 0x07, 0x04, 0x11, 0x02, 0x05, 0x24, 0x03, 0x34, 0x37, 0x27, 0x26,
+ 0x27, 0x06, 0x11, 0x10, 0x05, 0x04, 0x17, 0x23, 0x26, 0x25, 0x06, 0x07,
+ 0x27, 0x36, 0x37, 0x24, 0x11, 0x10, 0x25, 0x26, 0x35, 0x37, 0x17, 0x07,
+ 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x26, 0x00, 0x35, 0x01, 0x10, 0x23,
+ 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x12, 0x17, 0x36, 0x03, 0x14, 0x01,
+ 0x34, 0x1b, 0x01, 0x4b, 0x13, 0xfe, 0x99, 0xfe, 0x8c, 0x12, 0x36, 0x3f,
+ 0x60, 0x4c, 0xc7, 0x01, 0x41, 0x01, 0xf4, 0x04, 0xc5, 0x0a, 0xfe, 0xa3,
+ 0x87, 0x68, 0x6e, 0x60, 0x8d, 0xfe, 0xc1, 0x01, 0x1b, 0x21, 0x22, 0x90,
+ 0x15, 0x88, 0x57, 0x64, 0x73, 0x01, 0xfe, 0xce, 0x02, 0x62, 0xd8, 0x1c,
+ 0x18, 0x30, 0x50, 0x3c, 0x09, 0xe7, 0xce, 0x06, 0xd3, 0xa4, 0xfe, 0xe6,
+ 0xab, 0x66, 0x45, 0x14, 0xfe, 0x2c, 0xfe, 0x20, 0x14, 0x14, 0x01, 0xeb,
+ 0x66, 0x8e, 0x0a, 0x09, 0x5c, 0x37, 0xfe, 0xb9, 0xfe, 0xac, 0xad, 0xc0,
+ 0xde, 0xa8, 0x59, 0x03, 0x98, 0x6c, 0x67, 0x2f, 0xe9, 0x01, 0x42, 0x01,
+ 0xbf, 0x38, 0x4d, 0x75, 0xb1, 0x38, 0x79, 0x8e, 0x90, 0x89, 0x8b, 0x7a,
+ 0x01, 0x1b, 0xd4, 0xfb, 0x0e, 0x01, 0x52, 0x05, 0x34, 0x1a, 0x5d, 0xa1,
+ 0xfe, 0x95, 0x0a, 0x0a, 0x00, 0x02, 0x00, 0x5a, 0xff, 0xe2, 0x03, 0x4e,
+ 0x06, 0x1e, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x11,
+ 0x26, 0x24, 0x35, 0x33, 0x16, 0x17, 0x16, 0xc3, 0x02, 0x1b, 0xfd, 0xe5,
+ 0x02, 0x8b, 0xfe, 0x85, 0xfe, 0x87, 0x23, 0x9f, 0x20, 0xda, 0xd7, 0x01,
+ 0xfe, 0xa1, 0xa8, 0x02, 0xab, 0xac, 0x06, 0x1e, 0x94, 0xfc, 0x20, 0xfe,
+ 0x38, 0x01, 0xbe, 0xd0, 0xd0, 0xfe, 0xce, 0x01, 0x3c, 0xdd, 0xfe, 0xdd,
+ 0xad, 0x7e, 0x7e, 0x00, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xe2, 0x03, 0x4e,
+ 0x06, 0x38, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x33,
+ 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x01, 0x10, 0x21, 0x20, 0x11, 0x37,
+ 0x33, 0x07, 0x10, 0x33, 0x32, 0x11, 0x26, 0x24, 0x35, 0x33, 0x16, 0x17,
+ 0x16, 0x02, 0x11, 0xb7, 0xb7, 0xfe, 0xa0, 0xb7, 0xb7, 0x02, 0x9d, 0xfe,
+ 0x85, 0xfe, 0x87, 0x23, 0x9f, 0x20, 0xda, 0xd7, 0x01, 0xfe, 0xa1, 0xa8,
+ 0x02, 0xab, 0xac, 0x06, 0x38, 0xca, 0xca, 0xca, 0xfc, 0x3c, 0xfe, 0x38,
+ 0x01, 0xbe, 0xd0, 0xd0, 0xfe, 0xce, 0x01, 0x3c, 0xdd, 0xfe, 0xdd, 0xad,
+ 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x5a, 0xff, 0xe2, 0x03, 0x4e,
+ 0x07, 0x00, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x00,
+ 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x11,
+ 0x26, 0x24, 0x35, 0x33, 0x16, 0x17, 0x16, 0x01, 0x21, 0x15, 0x21, 0x01,
+ 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x03, 0x4e, 0xfe, 0x85, 0xfe,
+ 0x87, 0x23, 0x9f, 0x20, 0xda, 0xd7, 0x01, 0xfe, 0xa1, 0xa8, 0x02, 0xab,
+ 0xac, 0xfd, 0x58, 0x02, 0x1b, 0xfd, 0xe5, 0x01, 0x62, 0xb7, 0xb7, 0xfe,
+ 0xa0, 0xb7, 0xb7, 0x01, 0xaa, 0xfe, 0x38, 0x01, 0xbe, 0xd0, 0xd0, 0xfe,
+ 0xce, 0x01, 0x3c, 0xdd, 0xfe, 0xdd, 0xad, 0x7e, 0x7e, 0x02, 0xb6, 0x94,
+ 0x02, 0x25, 0xca, 0xca, 0xca, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0xff, 0xe2, 0x03, 0x4e, 0x06, 0x8c, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00,
+ 0x01, 0x33, 0x03, 0x23, 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07,
+ 0x10, 0x33, 0x32, 0x11, 0x26, 0x24, 0x35, 0x33, 0x16, 0x17, 0x16, 0x01,
+ 0xf0, 0xd3, 0xe8, 0x9b, 0x02, 0x0e, 0xfe, 0x85, 0xfe, 0x87, 0x23, 0x9f,
+ 0x20, 0xda, 0xd7, 0x01, 0xfe, 0xa1, 0xa8, 0x02, 0xab, 0xac, 0x06, 0x8c,
+ 0xfe, 0xf8, 0xfc, 0x26, 0xfe, 0x38, 0x01, 0xbe, 0xd0, 0xd0, 0xfe, 0xce,
+ 0x01, 0x3c, 0xdd, 0xfe, 0xdd, 0xad, 0x7e, 0x7e, 0x00, 0x03, 0x00, 0x5a,
+ 0xff, 0xe2, 0x03, 0x4e, 0x07, 0x18, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1a,
+ 0x00, 0x00, 0x01, 0x33, 0x03, 0x23, 0x07, 0x21, 0x15, 0x21, 0x01, 0x10,
+ 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x11, 0x26, 0x24,
+ 0x35, 0x33, 0x16, 0x17, 0x16, 0x01, 0xf0, 0xa6, 0xcd, 0x89, 0x88, 0x02,
+ 0x1b, 0xfd, 0xe5, 0x02, 0x96, 0xfe, 0x85, 0xfe, 0x87, 0x23, 0x9f, 0x20,
+ 0xda, 0xd7, 0x01, 0xfe, 0xa1, 0xa8, 0x02, 0xab, 0xac, 0x07, 0x18, 0xfe,
+ 0xf8, 0x79, 0x94, 0xfc, 0xa7, 0xfe, 0x38, 0x01, 0xbe, 0xd0, 0xd0, 0xfe,
+ 0xce, 0x01, 0x3c, 0xdd, 0xfe, 0xdd, 0xad, 0x7e, 0x7e, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5a, 0xff, 0xe2, 0x03, 0x4e, 0x06, 0x79, 0x00, 0x08,
+ 0x00, 0x1b, 0x00, 0x00, 0x01, 0x02, 0x20, 0x03, 0x33, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32,
+ 0x11, 0x26, 0x24, 0x35, 0x33, 0x16, 0x17, 0x16, 0x02, 0xd7, 0x11, 0xfd,
+ 0xef, 0x11, 0x6a, 0x16, 0x9a, 0x9a, 0x15, 0xe1, 0xfe, 0x85, 0xfe, 0x87,
+ 0x23, 0x9f, 0x20, 0xda, 0xd7, 0x01, 0xfe, 0xa1, 0xa8, 0x02, 0xab, 0xac,
+ 0x06, 0x79, 0xfe, 0xe1, 0x01, 0x1f, 0x96, 0x96, 0xfb, 0x31, 0xfe, 0x38,
+ 0x01, 0xbe, 0xd0, 0xd0, 0xfe, 0xce, 0x01, 0x3c, 0xdd, 0xfe, 0xdd, 0xad,
+ 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0xfe, 0x1d, 0x03, 0x3c,
+ 0x06, 0x1e, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19,
+ 0x01, 0x10, 0x23, 0x22, 0x15, 0x17, 0x23, 0x27, 0x10, 0x21, 0x20, 0x11,
+ 0xf0, 0x02, 0x1a, 0xfd, 0xe6, 0x02, 0x4c, 0xfe, 0x9c, 0xfe, 0x82, 0x1e,
+ 0x9a, 0x16, 0xdc, 0xcb, 0xcb, 0xb4, 0x32, 0x9b, 0x2c, 0x01, 0x49, 0x01,
+ 0x64, 0x06, 0x1e, 0x94, 0xfa, 0x37, 0xfe, 0x5c, 0x01, 0xa6, 0xe1, 0xe3,
+ 0xfe, 0xe8, 0x01, 0x16, 0x03, 0x13, 0x01, 0x02, 0xf4, 0xe2, 0xdc, 0x01,
+ 0x86, 0xfe, 0x6f, 0x00, 0x00, 0x02, 0x00, 0x5a, 0xfe, 0x1d, 0x03, 0x3c,
+ 0x06, 0x64, 0x00, 0x03, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x33, 0x03, 0x23,
+ 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19,
+ 0x01, 0x10, 0x23, 0x22, 0x15, 0x17, 0x23, 0x27, 0x10, 0x21, 0x20, 0x11,
+ 0x02, 0x2f, 0xd3, 0xe8, 0x9c, 0x01, 0xbe, 0xfe, 0x9c, 0xfe, 0x82, 0x1e,
+ 0x9a, 0x16, 0xdc, 0xcb, 0xcb, 0xb4, 0x32, 0x9b, 0x2c, 0x01, 0x49, 0x01,
+ 0x64, 0x06, 0x64, 0xfe, 0xf8, 0xfa, 0x65, 0xfe, 0x5c, 0x01, 0xa6, 0xe1,
+ 0xe3, 0xfe, 0xe8, 0x01, 0x16, 0x03, 0x13, 0x01, 0x02, 0xf4, 0xe2, 0xdc,
+ 0x01, 0x86, 0xfe, 0x6f, 0x00, 0x03, 0x00, 0x5a, 0xfe, 0x1d, 0x03, 0x3c,
+ 0x07, 0x36, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x33,
+ 0x03, 0x23, 0x07, 0x21, 0x15, 0x21, 0x01, 0x10, 0x21, 0x20, 0x11, 0x37,
+ 0x33, 0x07, 0x10, 0x33, 0x32, 0x19, 0x01, 0x10, 0x23, 0x22, 0x15, 0x17,
+ 0x23, 0x27, 0x10, 0x21, 0x20, 0x11, 0x02, 0x1d, 0xc1, 0xcd, 0xa5, 0x86,
+ 0x02, 0x1a, 0xfd, 0xe6, 0x02, 0x56, 0xfe, 0x9c, 0xfe, 0x82, 0x1e, 0x9a,
+ 0x16, 0xdc, 0xcb, 0xcb, 0xb4, 0x32, 0x9b, 0x2c, 0x01, 0x49, 0x01, 0x64,
+ 0x07, 0x36, 0xfe, 0xf8, 0x79, 0x94, 0xfa, 0xa0, 0xfe, 0x5c, 0x01, 0xa6,
+ 0xe1, 0xe3, 0xfe, 0xe8, 0x01, 0x16, 0x03, 0x13, 0x01, 0x02, 0xf4, 0xe2,
+ 0xdc, 0x01, 0x86, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0xfe, 0x1d, 0x03, 0x3c, 0x06, 0x79, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00,
+ 0x01, 0x02, 0x20, 0x03, 0x33, 0x16, 0x33, 0x32, 0x37, 0x13, 0x10, 0x21,
+ 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19, 0x01, 0x10, 0x23,
+ 0x22, 0x15, 0x17, 0x23, 0x27, 0x10, 0x21, 0x20, 0x11, 0x02, 0xfb, 0x11,
+ 0xfd, 0xef, 0x11, 0x6a, 0x16, 0x9a, 0x9a, 0x15, 0xab, 0xfe, 0x9c, 0xfe,
+ 0x82, 0x1e, 0x9a, 0x16, 0xdc, 0xcb, 0xcb, 0xb4, 0x32, 0x9b, 0x2c, 0x01,
+ 0x49, 0x01, 0x64, 0x06, 0x79, 0xfe, 0xe1, 0x01, 0x1f, 0x96, 0x96, 0xf9,
+ 0x48, 0xfe, 0x5c, 0x01, 0xa6, 0xe1, 0xe3, 0xfe, 0xe8, 0x01, 0x16, 0x03,
+ 0x13, 0x01, 0x02, 0xf4, 0xe2, 0xdc, 0x01, 0x86, 0xfe, 0x6f, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x60, 0x06, 0x1e, 0x00, 0x11,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x10, 0x03, 0x23, 0x12, 0x11, 0x10, 0x23,
+ 0x22, 0x11, 0x10, 0x13, 0x23, 0x02, 0x11, 0x10, 0x21, 0x20, 0x01, 0x21,
+ 0x15, 0x21, 0x03, 0x60, 0x8a, 0x9b, 0x83, 0xdd, 0xe5, 0x82, 0x9c, 0x88,
+ 0x01, 0x87, 0x01, 0x7f, 0xfd, 0x7e, 0x02, 0x1a, 0xfd, 0xe6, 0x02, 0x44,
+ 0xfe, 0xf4, 0xfe, 0xc8, 0x01, 0x21, 0x01, 0x23, 0x01, 0x90, 0xfe, 0x6d,
+ 0xfe, 0xe0, 0xfe, 0xdf, 0x01, 0x3a, 0x01, 0x0d, 0x02, 0x19, 0x01, 0xbe,
+ 0x94, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x60,
+ 0x06, 0x64, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00, 0x01, 0x10, 0x03, 0x23,
+ 0x12, 0x11, 0x10, 0x23, 0x22, 0x11, 0x10, 0x13, 0x23, 0x02, 0x11, 0x10,
+ 0x21, 0x20, 0x01, 0x33, 0x03, 0x23, 0x03, 0x60, 0x8a, 0x9b, 0x83, 0xdd,
+ 0xe5, 0x82, 0x9c, 0x88, 0x01, 0x87, 0x01, 0x7f, 0xfe, 0xd8, 0xca, 0xe8,
+ 0x92, 0x02, 0x44, 0xfe, 0xf4, 0xfe, 0xc9, 0x01, 0x20, 0x01, 0x23, 0x01,
+ 0x90, 0xfe, 0x6d, 0xfe, 0xe0, 0xfe, 0xdf, 0x01, 0x3a, 0x01, 0x0d, 0x02,
+ 0x19, 0x02, 0x04, 0xfe, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a,
+ 0x00, 0x00, 0x03, 0x60, 0x06, 0x79, 0x00, 0x11, 0x00, 0x1a, 0x00, 0x00,
+ 0x01, 0x10, 0x03, 0x23, 0x12, 0x11, 0x10, 0x23, 0x22, 0x11, 0x10, 0x13,
+ 0x23, 0x02, 0x11, 0x10, 0x21, 0x20, 0x03, 0x02, 0x20, 0x03, 0x33, 0x16,
+ 0x33, 0x32, 0x37, 0x03, 0x60, 0x8a, 0x9b, 0x83, 0xdd, 0xe5, 0x82, 0x9c,
+ 0x88, 0x01, 0x87, 0x01, 0x7f, 0x65, 0x11, 0xfd, 0xef, 0x11, 0x6a, 0x16,
+ 0x9a, 0x9a, 0x15, 0x02, 0x44, 0xfe, 0xf4, 0xfe, 0xc9, 0x01, 0x20, 0x01,
+ 0x23, 0x01, 0x90, 0xfe, 0x6d, 0xfe, 0xe0, 0xfe, 0xdf, 0x01, 0x3a, 0x01,
+ 0x0d, 0x02, 0x19, 0x02, 0x19, 0xfe, 0xe1, 0x01, 0x1f, 0x96, 0x96, 0x00,
+ 0x00, 0x02, 0x00, 0x5a, 0xff, 0xff, 0x05, 0x4f, 0x06, 0x1e, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x00, 0x01, 0x12, 0x03, 0x23, 0x00, 0x11, 0x02, 0x23,
+ 0x22, 0x11, 0x15, 0x23, 0x35, 0x10, 0x23, 0x22, 0x11, 0x02, 0x01, 0x23,
+ 0x02, 0x11, 0x10, 0x21, 0x32, 0x17, 0x36, 0x33, 0x20, 0x01, 0x21, 0x15,
+ 0x21, 0x05, 0x4f, 0x01, 0xf8, 0xbc, 0x01, 0x11, 0x01, 0xbd, 0xd0, 0x95,
+ 0xd0, 0xbe, 0x01, 0x01, 0x19, 0xbc, 0xfe, 0x01, 0x61, 0xca, 0x4f, 0x58,
+ 0xc6, 0x01, 0x5e, 0xfc, 0x78, 0x02, 0x1a, 0xfd, 0xe6, 0x02, 0x56, 0xfe,
+ 0xd1, 0xfe, 0xd9, 0x01, 0x16, 0x01, 0x40, 0x01, 0x7e, 0xfe, 0xa7, 0xd2,
+ 0xd2, 0x01, 0x59, 0xfe, 0x82, 0xfe, 0xcd, 0xfe, 0xdc, 0x01, 0x24, 0x01,
+ 0x33, 0x02, 0x0a, 0xe3, 0xe3, 0x01, 0xbe, 0x94, 0x00, 0x03, 0x00, 0x5a,
+ 0xff, 0xff, 0x05, 0x4f, 0x06, 0x38, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x24,
+ 0x00, 0x00, 0x01, 0x12, 0x03, 0x23, 0x00, 0x11, 0x02, 0x23, 0x22, 0x11,
+ 0x15, 0x23, 0x35, 0x10, 0x23, 0x22, 0x11, 0x02, 0x01, 0x23, 0x02, 0x11,
+ 0x10, 0x21, 0x32, 0x17, 0x36, 0x33, 0x20, 0x01, 0x33, 0x15, 0x23, 0x25,
+ 0x33, 0x15, 0x23, 0x05, 0x4f, 0x01, 0xf8, 0xbc, 0x01, 0x11, 0x01, 0xbd,
+ 0xd0, 0x95, 0xd0, 0xbe, 0x01, 0x01, 0x19, 0xbc, 0xfe, 0x01, 0x61, 0xca,
+ 0x4f, 0x58, 0xc6, 0x01, 0x5e, 0xfd, 0xd8, 0xb7, 0xb7, 0xfe, 0xa0, 0xb7,
+ 0xb7, 0x02, 0x56, 0xfe, 0xd1, 0xfe, 0xd9, 0x01, 0x16, 0x01, 0x40, 0x01,
+ 0x7e, 0xfe, 0xa7, 0xd2, 0xd2, 0x01, 0x59, 0xfe, 0x82, 0xfe, 0xcd, 0xfe,
+ 0xdc, 0x01, 0x24, 0x01, 0x33, 0x02, 0x0a, 0xe3, 0xe3, 0x01, 0xd8, 0xca,
+ 0xca, 0xca, 0x00, 0x00, 0x00, 0x04, 0x00, 0x5a, 0xff, 0xff, 0x05, 0x4f,
+ 0x07, 0x28, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00,
+ 0x01, 0x12, 0x03, 0x23, 0x00, 0x11, 0x02, 0x23, 0x22, 0x11, 0x15, 0x23,
+ 0x35, 0x10, 0x23, 0x22, 0x11, 0x02, 0x01, 0x23, 0x02, 0x11, 0x10, 0x21,
+ 0x32, 0x17, 0x36, 0x33, 0x20, 0x01, 0x21, 0x15, 0x21, 0x01, 0x33, 0x15,
+ 0x23, 0x25, 0x33, 0x15, 0x23, 0x05, 0x4f, 0x01, 0xf8, 0xbc, 0x01, 0x11,
+ 0x01, 0xbd, 0xd0, 0x95, 0xd0, 0xbe, 0x01, 0x01, 0x19, 0xbc, 0xfe, 0x01,
+ 0x61, 0xca, 0x4f, 0x58, 0xc6, 0x01, 0x5e, 0xfc, 0x76, 0x02, 0x1b, 0xfd,
+ 0xe5, 0x01, 0x62, 0xb7, 0xb7, 0xfe, 0xa0, 0xb7, 0xb7, 0x02, 0x56, 0xfe,
+ 0xd1, 0xfe, 0xd9, 0x01, 0x16, 0x01, 0x40, 0x01, 0x7e, 0xfe, 0xa7, 0xd2,
+ 0xd2, 0x01, 0x59, 0xfe, 0x82, 0xfe, 0xcd, 0xfe, 0xdc, 0x01, 0x24, 0x01,
+ 0x33, 0x02, 0x0a, 0xe3, 0xe3, 0x01, 0x37, 0x94, 0x02, 0x25, 0xca, 0xca,
+ 0xca, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0xff, 0xff, 0x05, 0x4f,
+ 0x06, 0x64, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x01, 0x12, 0x03, 0x23,
+ 0x00, 0x11, 0x02, 0x23, 0x22, 0x11, 0x15, 0x23, 0x35, 0x10, 0x23, 0x22,
+ 0x11, 0x02, 0x01, 0x23, 0x02, 0x11, 0x10, 0x21, 0x32, 0x17, 0x36, 0x33,
+ 0x20, 0x01, 0x33, 0x03, 0x23, 0x05, 0x4f, 0x01, 0xf8, 0xbc, 0x01, 0x11,
+ 0x01, 0xbd, 0xd0, 0x95, 0xd0, 0xbe, 0x01, 0x01, 0x19, 0xbc, 0xfe, 0x01,
+ 0x61, 0xca, 0x4f, 0x58, 0xc6, 0x01, 0x5e, 0xfd, 0xb7, 0xca, 0xe8, 0x93,
+ 0x02, 0x56, 0xfe, 0xd1, 0xfe, 0xd9, 0x01, 0x16, 0x01, 0x40, 0x01, 0x7e,
+ 0xfe, 0xa7, 0xd2, 0xd2, 0x01, 0x59, 0xfe, 0x82, 0xfe, 0xcd, 0xfe, 0xdc,
+ 0x01, 0x24, 0x01, 0x33, 0x02, 0x0a, 0xe3, 0xe3, 0x02, 0x04, 0xfe, 0xf8,
+ 0x00, 0x02, 0x00, 0x5a, 0xff, 0xff, 0x05, 0x4f, 0x06, 0x79, 0x00, 0x1c,
+ 0x00, 0x25, 0x00, 0x00, 0x01, 0x12, 0x03, 0x23, 0x00, 0x11, 0x02, 0x23,
+ 0x22, 0x11, 0x15, 0x23, 0x35, 0x10, 0x23, 0x22, 0x11, 0x02, 0x01, 0x23,
+ 0x02, 0x11, 0x10, 0x21, 0x32, 0x17, 0x36, 0x33, 0x20, 0x01, 0x02, 0x20,
+ 0x03, 0x33, 0x16, 0x33, 0x32, 0x37, 0x05, 0x4f, 0x01, 0xf8, 0xbc, 0x01,
+ 0x11, 0x01, 0xbd, 0xd0, 0x95, 0xd0, 0xbe, 0x01, 0x01, 0x19, 0xbc, 0xfe,
+ 0x01, 0x61, 0xca, 0x4f, 0x58, 0xc6, 0x01, 0x5e, 0xfe, 0xb0, 0x11, 0xfd,
+ 0xef, 0x11, 0x6a, 0x17, 0x98, 0x9b, 0x15, 0x02, 0x56, 0xfe, 0xd1, 0xfe,
+ 0xd9, 0x01, 0x16, 0x01, 0x40, 0x01, 0x7e, 0xfe, 0xa7, 0xd2, 0xd2, 0x01,
+ 0x59, 0xfe, 0x82, 0xfe, 0xcd, 0xfe, 0xdc, 0x01, 0x24, 0x01, 0x33, 0x02,
+ 0x0a, 0xe3, 0xe3, 0x02, 0x19, 0xfe, 0xe1, 0x01, 0x1f, 0x96, 0x96, 0x00,
+ 0x00, 0x02, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84, 0x06, 0x1e, 0x00, 0x03,
+ 0x00, 0x24, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x01, 0x10, 0x21, 0x20,
+ 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19, 0x01, 0x26, 0x23, 0x22,
+ 0x15, 0x03, 0x23, 0x03, 0x34, 0x2b, 0x01, 0x27, 0x37, 0x17, 0x33, 0x32,
+ 0x17, 0x36, 0x33, 0x20, 0x11, 0xd5, 0x02, 0x1b, 0xfd, 0xe5, 0x02, 0xaf,
+ 0xfe, 0x96, 0xfe, 0x73, 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f,
+ 0x09, 0x81, 0x09, 0x8c, 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c,
+ 0x90, 0x01, 0x12, 0x06, 0x1e, 0x94, 0xfa, 0x36, 0xfe, 0x5d, 0x01, 0xa3,
+ 0xe3, 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6, 0x8c, 0xfe, 0xa5,
+ 0x01, 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe, 0xc7, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84, 0x06, 0x38, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x28, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x25, 0x33,
+ 0x15, 0x23, 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33,
+ 0x32, 0x19, 0x01, 0x26, 0x23, 0x22, 0x15, 0x03, 0x23, 0x03, 0x34, 0x2b,
+ 0x01, 0x27, 0x37, 0x17, 0x33, 0x32, 0x17, 0x36, 0x33, 0x20, 0x11, 0x02,
+ 0x35, 0xb7, 0xb7, 0xfe, 0xa0, 0xb7, 0xb7, 0x02, 0xaf, 0xfe, 0x96, 0xfe,
+ 0x73, 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f, 0x09, 0x81, 0x09,
+ 0x8c, 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c, 0x90, 0x01, 0x12,
+ 0x06, 0x38, 0xca, 0xca, 0xca, 0xfa, 0x52, 0xfe, 0x5d, 0x01, 0xa3, 0xe3,
+ 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6, 0x8c, 0xfe, 0xa5, 0x01,
+ 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe, 0xc7, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84, 0x07, 0x3c, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x2c, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21,
+ 0x01, 0x33, 0x15, 0x23, 0x25, 0x33, 0x15, 0x23, 0x01, 0x10, 0x21, 0x20,
+ 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19, 0x01, 0x26, 0x23, 0x22,
+ 0x15, 0x03, 0x23, 0x03, 0x34, 0x2b, 0x01, 0x27, 0x37, 0x17, 0x33, 0x32,
+ 0x17, 0x36, 0x33, 0x20, 0x11, 0xd4, 0x02, 0x1a, 0xfd, 0xe6, 0x01, 0x61,
+ 0xb7, 0xb7, 0xfe, 0xa0, 0xb7, 0xb7, 0x02, 0xaf, 0xfe, 0x96, 0xfe, 0x73,
+ 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f, 0x09, 0x81, 0x09, 0x8c,
+ 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c, 0x90, 0x01, 0x12, 0x05,
+ 0xab, 0x94, 0x02, 0x25, 0xca, 0xca, 0xca, 0xf9, 0x4e, 0xfe, 0x5d, 0x01,
+ 0xa3, 0xe3, 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6, 0x8c, 0xfe,
+ 0xa5, 0x01, 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe, 0xc7, 0x00,
+ 0x00, 0x02, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84, 0x06, 0x64, 0x00, 0x03,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x33, 0x03, 0x23, 0x01, 0x10, 0x21, 0x20,
+ 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32, 0x19, 0x01, 0x26, 0x23, 0x22,
+ 0x15, 0x03, 0x23, 0x03, 0x34, 0x2b, 0x01, 0x27, 0x37, 0x17, 0x33, 0x32,
+ 0x17, 0x36, 0x33, 0x20, 0x11, 0x02, 0x1d, 0xc1, 0xdf, 0x93, 0x02, 0x18,
+ 0xfe, 0x96, 0xfe, 0x73, 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f,
+ 0x09, 0x81, 0x09, 0x8c, 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c,
+ 0x90, 0x01, 0x12, 0x06, 0x64, 0xfe, 0xf8, 0xfa, 0x64, 0xfe, 0x5d, 0x01,
+ 0xa3, 0xe3, 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6, 0x8c, 0xfe,
+ 0xa5, 0x01, 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe, 0xc7, 0x00,
+ 0x00, 0x02, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84, 0x06, 0x79, 0x00, 0x08,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x02, 0x20, 0x03, 0x33, 0x16, 0x33, 0x32,
+ 0x37, 0x13, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10, 0x33, 0x32,
+ 0x19, 0x01, 0x26, 0x23, 0x22, 0x15, 0x03, 0x23, 0x03, 0x34, 0x2b, 0x01,
+ 0x27, 0x37, 0x17, 0x33, 0x32, 0x17, 0x36, 0x33, 0x20, 0x11, 0x02, 0xf2,
+ 0x11, 0xfd, 0xef, 0x11, 0x6a, 0x17, 0x98, 0x9b, 0x15, 0xfc, 0xfe, 0x96,
+ 0xfe, 0x73, 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f, 0x09, 0x81,
+ 0x09, 0x8c, 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c, 0x90, 0x01,
+ 0x12, 0x06, 0x79, 0xfe, 0xe1, 0x01, 0x1f, 0x96, 0x96, 0xf9, 0x47, 0xfe,
+ 0x5d, 0x01, 0xa3, 0xe3, 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6,
+ 0x8c, 0xfe, 0xa5, 0x01, 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe,
+ 0xc7, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x36, 0xfe, 0x1d, 0x03, 0x84,
+ 0x06, 0xd1, 0x00, 0x06, 0x00, 0x27, 0x00, 0x00, 0x01, 0x13, 0x23, 0x27,
+ 0x07, 0x23, 0x13, 0x01, 0x10, 0x21, 0x20, 0x11, 0x37, 0x33, 0x07, 0x10,
+ 0x33, 0x32, 0x19, 0x01, 0x26, 0x23, 0x22, 0x15, 0x03, 0x23, 0x03, 0x34,
+ 0x2b, 0x01, 0x27, 0x37, 0x17, 0x33, 0x32, 0x17, 0x36, 0x33, 0x20, 0x11,
+ 0x02, 0x1c, 0xdc, 0x7d, 0xa2, 0xa2, 0x7d, 0xdd, 0x01, 0xed, 0xfe, 0x96,
+ 0xfe, 0x73, 0x17, 0xa0, 0x15, 0xeb, 0xd1, 0x02, 0x79, 0x6f, 0x09, 0x81,
+ 0x09, 0x8c, 0x4a, 0x62, 0x12, 0x4e, 0x48, 0x81, 0x47, 0x3c, 0x90, 0x01,
+ 0x12, 0x06, 0xd1, 0xfe, 0x88, 0xf5, 0xf5, 0x01, 0x78, 0xf8, 0xef, 0xfe,
+ 0x5d, 0x01, 0xa3, 0xe3, 0xe3, 0xfe, 0xe9, 0x01, 0x17, 0x03, 0x67, 0xb6,
+ 0x8c, 0xfe, 0xa5, 0x01, 0x5b, 0x78, 0x28, 0xa1, 0x32, 0xbb, 0xbb, 0xfe,
+ 0xc7, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03,
+ 0x06, 0x14, 0x00, 0x09, 0x00, 0x20, 0x00, 0x00, 0x01, 0x22, 0x06, 0x10,
+ 0x16, 0x20, 0x36, 0x35, 0x34, 0x26, 0x01, 0x10, 0x37, 0x2e, 0x01, 0x35,
+ 0x34, 0x36, 0x33, 0x21, 0x15, 0x21, 0x22, 0x15, 0x14, 0x16, 0x33, 0x32,
+ 0x12, 0x10, 0x02, 0x20, 0x02, 0x02, 0x33, 0x84, 0x9b, 0x9a, 0x01, 0x0b,
+ 0x9a, 0x9a, 0xfd, 0xad, 0xaf, 0x47, 0x3a, 0xae, 0x8e, 0x01, 0xca, 0xfe,
+ 0x57, 0xa9, 0x69, 0x83, 0xd6, 0xf9, 0xf8, 0xfe, 0x50, 0xf5, 0x03, 0xdf,
+ 0xe7, 0xfe, 0x6e, 0xe7, 0xe8, 0xc7, 0xc8, 0xe9, 0xfe, 0x50, 0x01, 0x4d,
+ 0x9b, 0x2f, 0x8d, 0x31, 0x7c, 0x94, 0x93, 0x89, 0x49, 0x34, 0xfe, 0xc8,
+ 0xfd, 0xda, 0xfe, 0xc6, 0x01, 0x39, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2a,
+ 0x00, 0x00, 0x05, 0x19, 0x06, 0x14, 0x00, 0x24, 0x00, 0x00, 0x01, 0x15,
+ 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x07, 0x06, 0x1d, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x05,
+ 0x19, 0x9e, 0x59, 0x46, 0x01, 0x11, 0xfe, 0xef, 0xa6, 0xfe, 0x39, 0xa6,
+ 0x9f, 0x9f, 0x9c, 0xaa, 0x9d, 0x9e, 0x5a, 0x22, 0x23, 0x01, 0xc7, 0x9c,
+ 0xaa, 0x06, 0x14, 0x99, 0x50, 0x68, 0x63, 0x8f, 0xfc, 0x2f, 0x03, 0xd1,
+ 0xfc, 0x2f, 0x03, 0xd1, 0x8f, 0x4e, 0xbb, 0xab, 0x99, 0x28, 0x28, 0x68,
+ 0x63, 0x4e, 0xbb, 0xab, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x03, 0xdd,
+ 0x06, 0x14, 0x00, 0x15, 0x00, 0x19, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11,
+ 0x21, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x01, 0x33, 0x15, 0x23, 0x03, 0xdc,
+ 0xa6, 0xfe, 0x39, 0xa6, 0x9f, 0x9f, 0x9b, 0xa2, 0xa6, 0x9e, 0x5a, 0x45,
+ 0x01, 0xc7, 0xa6, 0xa6, 0x04, 0x60, 0xfb, 0xa0, 0x03, 0xd1, 0xfc, 0x2f,
+ 0x03, 0xd1, 0x8f, 0x4e, 0xb7, 0xaf, 0x99, 0x50, 0x68, 0x63, 0x01, 0xb2,
+ 0xe9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x03, 0xdd,
+ 0x06, 0x14, 0x00, 0x15, 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x22, 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35,
+ 0x33, 0x35, 0x34, 0x36, 0x02, 0x0f, 0x01, 0xcd, 0xa6, 0xfe, 0xd8, 0x5a,
+ 0x45, 0x01, 0x11, 0xfe, 0xef, 0xa6, 0x9f, 0x9f, 0x9c, 0x06, 0x14, 0xf9,
+ 0xec, 0x05, 0x7b, 0x50, 0x68, 0x63, 0x8f, 0xfc, 0x2f, 0x03, 0xd1, 0x8f,
+ 0x4e, 0xbb, 0xab, 0x00, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x06, 0x4a,
+ 0x06, 0x14, 0x00, 0x29, 0x00, 0x2d, 0x00, 0x00, 0x01, 0x15, 0x23, 0x22,
+ 0x07, 0x06, 0x1d, 0x01, 0x21, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34,
+ 0x36, 0x33, 0x05, 0x33, 0x15, 0x23, 0x02, 0xac, 0x9e, 0x5a, 0x22, 0x23,
+ 0x01, 0xc7, 0x4e, 0x19, 0x23, 0x47, 0x75, 0x9d, 0x9e, 0x59, 0x46, 0x02,
+ 0x6d, 0xa6, 0xfe, 0x39, 0xa6, 0xfe, 0x39, 0xa6, 0x9f, 0x9f, 0x9c, 0xaa,
+ 0x03, 0x94, 0xa6, 0xa6, 0x06, 0x14, 0x99, 0x28, 0x28, 0x68, 0x63, 0x4e,
+ 0xbb, 0x55, 0x1c, 0x13, 0x27, 0x99, 0x50, 0x68, 0x63, 0xfb, 0xa0, 0x03,
+ 0xd1, 0xfc, 0x2f, 0x03, 0xd1, 0xfc, 0x2f, 0x03, 0xd1, 0x8f, 0x4e, 0xbb,
+ 0xab, 0x02, 0xe9, 0x00, 0x00, 0x01, 0x00, 0x2a, 0x00, 0x00, 0x06, 0x4a,
+ 0x06, 0x14, 0x00, 0x26, 0x00, 0x00, 0x01, 0x15, 0x23, 0x22, 0x07, 0x06,
+ 0x1d, 0x01, 0x21, 0x35, 0x34, 0x36, 0x33, 0x21, 0x11, 0x23, 0x11, 0x21,
+ 0x22, 0x06, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x36, 0x33, 0x02, 0xac, 0x9e,
+ 0x5a, 0x22, 0x23, 0x01, 0xc7, 0x9c, 0xaa, 0x01, 0xcd, 0xa6, 0xfe, 0xd8,
+ 0x59, 0x46, 0x01, 0x11, 0xfe, 0xef, 0xa6, 0xfe, 0x39, 0xa6, 0x9f, 0x9f,
+ 0x9c, 0xaa, 0x06, 0x14, 0x99, 0x28, 0x28, 0x68, 0x63, 0x4e, 0xbb, 0xab,
+ 0xf9, 0xec, 0x05, 0x7b, 0x50, 0x68, 0x63, 0x8f, 0xfc, 0x2f, 0x03, 0xd1,
+ 0xfc, 0x2f, 0x03, 0xd1, 0x8f, 0x4e, 0xbb, 0xab, 0x00, 0x01, 0x00, 0x2a,
+ 0x00, 0x00, 0x04, 0xc5, 0x06, 0x14, 0x00, 0x2d, 0x00, 0x00, 0x01, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11,
+ 0x23, 0x35, 0x33, 0x35, 0x34, 0x37, 0x36, 0x3b, 0x01, 0x32, 0x17, 0x16,
+ 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23, 0x35, 0x02, 0xc9, 0x21, 0x21,
+ 0x5b, 0x1e, 0x5a, 0x23, 0x22, 0xa6, 0x9f, 0x9f, 0x4e, 0x4e, 0xaa, 0x1b,
+ 0xaa, 0x4f, 0x4c, 0x01, 0x55, 0xfe, 0xab, 0x22, 0x22, 0x67, 0xaa, 0xaa,
+ 0xbf, 0x49, 0x49, 0x7a, 0x04, 0x60, 0x63, 0x68, 0x28, 0x28, 0x28, 0x28,
+ 0x68, 0xfb, 0x3d, 0x03, 0xd1, 0x8f, 0x4e, 0xbb, 0x55, 0x56, 0x56, 0x53,
+ 0xbd, 0x4e, 0x8f, 0xfd, 0xa0, 0x89, 0x27, 0x27, 0x9a, 0x50, 0x4f, 0xd2,
+ 0x02, 0x60, 0x8f, 0x00, 0x00, 0x01, 0x00, 0x63, 0xff, 0xe3, 0x06, 0x07,
+ 0x05, 0xf0, 0x00, 0x59, 0x00, 0x00, 0x01, 0x15, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x15,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2f, 0x01, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x21, 0x15, 0x21, 0x11, 0x14,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23,
+ 0x35, 0x33, 0x35, 0x34, 0x27, 0x26, 0x07, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x02, 0xfc, 0x4d, 0x42, 0x4c, 0x3f, 0x69, 0x39, 0x35, 0x2c, 0x2d, 0x85,
+ 0x38, 0xb0, 0x95, 0x6e, 0x70, 0xc2, 0x57, 0x53, 0x57, 0x61, 0x5c, 0x59,
+ 0x59, 0x57, 0x75, 0x3f, 0x3f, 0x2d, 0x28, 0xa0, 0x39, 0x9a, 0x44, 0x45,
+ 0x5c, 0x65, 0xa3, 0x40, 0x46, 0x05, 0x53, 0x52, 0x92, 0x7e, 0x58, 0x55,
+ 0x01, 0x55, 0xfe, 0xab, 0x21, 0x22, 0x67, 0xab, 0xab, 0xbf, 0x49, 0x49,
+ 0x79, 0x79, 0x2b, 0x31, 0x3d, 0x3e, 0x31, 0x2f, 0x04, 0x3f, 0xae, 0x2b,
+ 0x11, 0x14, 0x2a, 0x27, 0x57, 0x40, 0x25, 0x24, 0x21, 0x0e, 0x2b, 0x98,
+ 0x89, 0x9c, 0x5b, 0x5b, 0x11, 0x12, 0x23, 0xbe, 0x35, 0x1a, 0x1b, 0x2d,
+ 0x2c, 0x51, 0x4b, 0x28, 0x23, 0x2a, 0x0f, 0x24, 0x4a, 0x4b, 0x82, 0xa6,
+ 0x4e, 0x56, 0x0b, 0x1d, 0x1f, 0x87, 0x5f, 0x5d, 0x01, 0x60, 0x5c, 0x88,
+ 0x4c, 0x8f, 0xfd, 0xa0, 0x89, 0x27, 0x27, 0x9a, 0x50, 0x4f, 0xd2, 0x02,
+ 0x60, 0x8f, 0x4e, 0x41, 0x2b, 0x32, 0x01, 0x31, 0x30, 0x40, 0x3d, 0x00,
+ 0x00, 0x01, 0xfc, 0xcb, 0x06, 0x04, 0x00, 0x00, 0x07, 0x6e, 0x00, 0x07,
+ 0x00, 0x00, 0x11, 0x22, 0x04, 0x07, 0x35, 0x36, 0x24, 0x33, 0xd0, 0xfe,
+ 0x6a, 0xcf, 0xd5, 0x01, 0x97, 0xc9, 0x06, 0xd4, 0x67, 0x69, 0x7e, 0x77,
+ 0x75, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x04, 0x03, 0x35,
+ 0x07, 0x6e, 0x00, 0x07, 0x00, 0x00, 0x11, 0x35, 0x32, 0x04, 0x17, 0x15,
+ 0x26, 0x24, 0xc9, 0x01, 0x97, 0xd5, 0xcf, 0xfe, 0x6a, 0x06, 0xd4, 0x9a,
+ 0x75, 0x77, 0x7e, 0x69, 0x67, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x72,
+ 0x06, 0x0d, 0x00, 0x00, 0x07, 0x27, 0x00, 0x13, 0x00, 0x00, 0x11, 0x2f,
+ 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x04, 0x81, 0x19, 0x48, 0x27, 0x21,
+ 0x5a, 0x30, 0x3f, 0x05, 0x91, 0x03, 0x66, 0x65, 0xb4, 0x52, 0x38, 0x32,
+ 0x4f, 0x06, 0x48, 0x02, 0x37, 0x0b, 0x12, 0x0a, 0x24, 0x30, 0x47, 0x87,
+ 0x4a, 0x49, 0x0e, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x06, 0x0d, 0x02, 0x8e, 0x07, 0x27, 0x00, 0x13, 0x00, 0x00, 0x11, 0x1f,
+ 0x01, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x04, 0x81, 0x19, 0x48, 0x27, 0x21,
+ 0x57, 0x33, 0x40, 0x04, 0x91, 0x03, 0x66, 0x65, 0xb4, 0x52, 0x38, 0x32,
+ 0x4f, 0x06, 0xec, 0x02, 0x37, 0x0b, 0x12, 0x0a, 0x24, 0x2c, 0x4b, 0x87,
+ 0x4a, 0x49, 0x0e, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1b,
+ 0xff, 0x54, 0x07, 0x47, 0x07, 0x4c, 0x00, 0x03, 0x00, 0x07, 0x00, 0x2a,
+ 0x00, 0x00, 0x09, 0x04, 0x15, 0x33, 0x35, 0x27, 0x35, 0x34, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x0f, 0x01, 0x0e, 0x01, 0x1d, 0x01, 0x03, 0xb1, 0x03, 0x96, 0xfc, 0x6a,
+ 0xfc, 0x6a, 0x03, 0x3a, 0xb7, 0x06, 0x06, 0x05, 0x07, 0x12, 0x14, 0x28,
+ 0x4f, 0x53, 0x1e, 0x21, 0xc9, 0xa5, 0x5d, 0xae, 0x54, 0x57, 0xa1, 0x47,
+ 0x61, 0x76, 0x2e, 0x33, 0x51, 0x51, 0x32, 0x07, 0x4c, 0xfc, 0x04, 0xfc,
+ 0x04, 0x03, 0xfc, 0xfd, 0xae, 0xfe, 0xfe, 0x93, 0x7b, 0x34, 0x3c, 0x15,
+ 0x19, 0x1a, 0x1f, 0x2b, 0x56, 0x5a, 0x40, 0x45, 0x4c, 0x9f, 0xc2, 0x38,
+ 0x39, 0xbc, 0x43, 0x46, 0x6e, 0x59, 0x31, 0x5e, 0x35, 0x59, 0x56, 0x82,
+ 0x65, 0x9a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5a, 0xff, 0xe3, 0x05, 0x19,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, 0x37, 0x01, 0x33, 0x01,
+ 0x07, 0x03, 0x21, 0x03, 0x13, 0x21, 0x03, 0x5a, 0x01, 0xf8, 0xcf, 0x01,
+ 0xf8, 0x97, 0xae, 0xfd, 0xcb, 0xae, 0xec, 0x01, 0xb9, 0xdc, 0x23, 0x05,
+ 0xb2, 0xfa, 0x4e, 0x40, 0x01, 0xf6, 0xfe, 0x0a, 0x02, 0xaa, 0x02, 0x7c,
+ 0x00, 0x03, 0x00, 0xb4, 0xff, 0xed, 0x03, 0xac, 0x05, 0xe8, 0x00, 0x09,
+ 0x00, 0x1a, 0x00, 0x24, 0x00, 0x00, 0x01, 0x11, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x01, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x16, 0x15, 0x14, 0x07, 0x06, 0x21, 0x22, 0x27, 0x13, 0x11, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x01, 0x56, 0x2f, 0xe2, 0x6b,
+ 0x37, 0xb3, 0x9d, 0xfe, 0xfb, 0x7a, 0x5a, 0xd8, 0x92, 0xba, 0xc2, 0xc1,
+ 0x6a, 0x99, 0xfe, 0xdd, 0x5a, 0x77, 0xa2, 0x64, 0xd2, 0x55, 0x28, 0xd5,
+ 0xac, 0x02, 0x7e, 0xfe, 0x23, 0x72, 0x3b, 0x42, 0x59, 0x95, 0x03, 0x57,
+ 0x13, 0x61, 0x7b, 0xd0, 0xd5, 0x7a, 0x7a, 0xe4, 0x8e, 0x70, 0xa4, 0x13,
+ 0x05, 0x34, 0xfe, 0x15, 0x80, 0x3d, 0x38, 0x68, 0x8e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5a, 0xff, 0xe3, 0x03, 0x86, 0x05, 0xf3, 0x00, 0x05,
+ 0x00, 0x00, 0x05, 0x09, 0x01, 0x17, 0x09, 0x01, 0x03, 0x14, 0xfd, 0x46,
+ 0x02, 0xba, 0x72, 0xfd, 0xb9, 0x02, 0x47, 0x1d, 0x03, 0x08, 0x03, 0x08,
+ 0x7f, 0xfd, 0x77, 0xfd, 0x77, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0x9f, 0x05, 0xd2, 0x00, 0x0c, 0x00, 0x15, 0x00, 0x00,
+ 0x33, 0x11, 0x33, 0x20, 0x17, 0x16, 0x17, 0x16, 0x10, 0x07, 0x06, 0x04,
+ 0x21, 0x37, 0x3e, 0x02, 0x10, 0x27, 0x2e, 0x01, 0x27, 0xb4, 0x51, 0x01,
+ 0x5d, 0x8e, 0x90, 0x16, 0x09, 0x23, 0x32, 0xfe, 0xd9, 0xfe, 0xe2, 0x51,
+ 0xb9, 0xb3, 0x3b, 0x09, 0x10, 0xa9, 0xe5, 0x05, 0xd2, 0x78, 0x7a, 0xf9,
+ 0x65, 0xfe, 0x62, 0x7f, 0xb8, 0xad, 0xc0, 0x08, 0x63, 0xd4, 0x01, 0x7a,
+ 0x5c, 0xac, 0x91, 0x0a, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0x40,
+ 0x05, 0xf2, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x05, 0x07,
+ 0x25, 0x11, 0x05, 0x07, 0x25, 0x11, 0x05, 0x07, 0x01, 0x56, 0xa2, 0x02,
+ 0x8c, 0x1a, 0xfe, 0x30, 0x01, 0xea, 0x1a, 0xfe, 0x30, 0x01, 0xea, 0x1a,
+ 0x01, 0x36, 0xfe, 0xca, 0x05, 0xf2, 0x75, 0xb2, 0x53, 0xfe, 0xc3, 0x58,
+ 0xb2, 0x53, 0xfe, 0xc3, 0x58, 0xb2, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0x40, 0x05, 0xf2, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x05, 0x07, 0x25, 0x11, 0x05, 0x07, 0x01, 0x56, 0xa2, 0x02,
+ 0x8c, 0x1a, 0xfe, 0x30, 0x01, 0xea, 0x1a, 0x03, 0x2a, 0xfc, 0xd6, 0x05,
+ 0xf2, 0x75, 0xb2, 0x53, 0xfe, 0xc3, 0x58, 0xb2, 0x00, 0x01, 0x00, 0x87,
+ 0x00, 0x00, 0x02, 0xa3, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x87, 0x02,
+ 0x1c, 0xbd, 0xbd, 0xfd, 0xe4, 0xbd, 0xbd, 0x05, 0xd5, 0xb4, 0xfb, 0x93,
+ 0xb4, 0xb4, 0x04, 0x6d, 0x00, 0x03, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xcc,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21,
+ 0x11, 0x21, 0x01, 0x11, 0x21, 0x11, 0x05, 0x21, 0x11, 0x21, 0xb4, 0x03,
+ 0x18, 0xfc, 0xe8, 0x02, 0x76, 0xfe, 0x2c, 0x01, 0xd4, 0xfe, 0x2c, 0x01,
+ 0xd4, 0x05, 0xd5, 0xfa, 0x2b, 0x03, 0x45, 0x01, 0xdc, 0xfe, 0x24, 0xb4,
+ 0xfe, 0x23, 0x00, 0x00, 0x00, 0x05, 0x00, 0x87, 0xff, 0xe3, 0x05, 0xfa,
+ 0x05, 0xf3, 0x00, 0x0f, 0x00, 0x14, 0x00, 0x19, 0x00, 0x1e, 0x00, 0x23,
+ 0x00, 0x00, 0x00, 0x02, 0x06, 0x04, 0x20, 0x24, 0x26, 0x02, 0x10, 0x12,
+ 0x36, 0x24, 0x20, 0x04, 0x16, 0x12, 0x01, 0x36, 0x12, 0x37, 0x21, 0x03,
+ 0x11, 0x21, 0x16, 0x12, 0x01, 0x21, 0x11, 0x06, 0x02, 0x01, 0x11, 0x21,
+ 0x26, 0x02, 0x05, 0xfa, 0x6e, 0xbb, 0xfe, 0xfd, 0xfe, 0xe5, 0xfe, 0xfd,
+ 0xbb, 0x6e, 0x6e, 0xbb, 0x01, 0x03, 0x01, 0x1b, 0x01, 0x03, 0xbb, 0x6e,
+ 0xfd, 0x98, 0xae, 0xf7, 0x1b, 0xfe, 0x40, 0xa2, 0xfe, 0x3f, 0x1b, 0xf7,
+ 0xfe, 0xee, 0x01, 0xc1, 0xaf, 0xf7, 0x02, 0x48, 0x01, 0xc0, 0x1b, 0xf7,
+ 0x02, 0x4e, 0xfe, 0xe0, 0xd0, 0x7b, 0x7b, 0xd0, 0x01, 0x20, 0x01, 0x3a,
+ 0x01, 0x20, 0xd0, 0x7b, 0x7b, 0xd0, 0xfe, 0xe0, 0xfd, 0x16, 0x1e, 0x01,
+ 0x12, 0xc3, 0xfe, 0x0d, 0x01, 0xf3, 0xc3, 0xfe, 0xee, 0x02, 0x89, 0x01,
+ 0xf3, 0x1e, 0xfe, 0xee, 0x01, 0x30, 0xfe, 0x0d, 0xc3, 0x01, 0x12, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x56, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0xb4, 0xa2, 0xa2, 0x05, 0xd5, 0xfa,
+ 0x2b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0xff, 0xe3, 0x04, 0x10,
+ 0x05, 0xf3, 0x00, 0x0a, 0x00, 0x00, 0x21, 0x23, 0x11, 0x33, 0x11, 0x01,
+ 0x17, 0x09, 0x01, 0x07, 0x01, 0x01, 0x56, 0xa2, 0xa2, 0x02, 0x47, 0x6c,
+ 0xfd, 0x76, 0x02, 0x91, 0x6c, 0xfd, 0xb2, 0x05, 0xd5, 0xfd, 0xe1, 0x02,
+ 0x3d, 0x86, 0xfd, 0x81, 0xfd, 0x7b, 0x86, 0x02, 0x43, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x03, 0x96, 0x05, 0xd5, 0x00, 0x06,
+ 0x00, 0x00, 0x09, 0x01, 0x17, 0x01, 0x23, 0x11, 0x33, 0x01, 0x56, 0x01,
+ 0xcc, 0x73, 0xfd, 0x92, 0x73, 0xa2, 0x01, 0x33, 0x02, 0x00, 0x80, 0xfd,
+ 0x4d, 0x05, 0xd5, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x09, 0xbf,
+ 0x05, 0xf3, 0x00, 0x0c, 0x00, 0x00, 0x13, 0x33, 0x09, 0x03, 0x17, 0x09,
+ 0x03, 0x11, 0x23, 0xb4, 0x68, 0x02, 0x43, 0x01, 0xff, 0x01, 0xf7, 0x01,
+ 0xf7, 0x73, 0xfd, 0x96, 0xfe, 0x0a, 0xfe, 0x09, 0xfd, 0xee, 0xa2, 0x05,
+ 0xd5, 0xfd, 0xe5, 0x02, 0x39, 0xfd, 0xd1, 0x02, 0x2f, 0x80, 0xfd, 0x53,
+ 0x02, 0x2e, 0xfd, 0xd2, 0x01, 0xee, 0xfb, 0x4c, 0x00, 0x01, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0xd2, 0x05, 0xf3, 0x00, 0x08, 0x00, 0x00, 0x13, 0x33,
+ 0x09, 0x01, 0x17, 0x09, 0x01, 0x11, 0x23, 0xb4, 0x68, 0x02, 0x43, 0x01,
+ 0xff, 0x74, 0xfd, 0x96, 0xfd, 0xee, 0xa2, 0x05, 0xd5, 0xfd, 0xe5, 0x02,
+ 0x39, 0x80, 0xfd, 0x53, 0x01, 0xee, 0xfb, 0x4c, 0x00, 0x05, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0xf3, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x01, 0x21,
+ 0x11, 0x21, 0x01, 0x11, 0x21, 0x11, 0x21, 0x11, 0x21, 0x11, 0x13, 0x11,
+ 0x21, 0x11, 0x01, 0x56, 0x01, 0xac, 0xfd, 0xb2, 0x05, 0x3f, 0xfa, 0xc1,
+ 0x02, 0xf0, 0x01, 0xad, 0xfc, 0x05, 0x01, 0xac, 0xa2, 0x01, 0xad, 0x02,
+ 0x90, 0xfe, 0x24, 0x01, 0xdc, 0x03, 0x45, 0xfa, 0x2b, 0x05, 0x21, 0xfe,
+ 0x24, 0x01, 0xdc, 0xfe, 0x24, 0x01, 0xdc, 0xfd, 0x6f, 0xfe, 0x24, 0x01,
+ 0xdc, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x87, 0xff, 0xe3, 0x05, 0xfa,
+ 0x05, 0xf3, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x27, 0x00, 0x00, 0x00, 0x36,
+ 0x34, 0x2e, 0x02, 0x22, 0x0e, 0x02, 0x14, 0x1e, 0x02, 0x32, 0x36, 0x00,
+ 0x02, 0x06, 0x04, 0x20, 0x24, 0x26, 0x02, 0x10, 0x12, 0x36, 0x24, 0x20,
+ 0x04, 0x16, 0x12, 0x04, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x05,
+ 0x03, 0x55, 0x55, 0x8f, 0xc8, 0xd8, 0xc7, 0x8f, 0x55, 0x55, 0x8f, 0xc7,
+ 0xd8, 0xc8, 0x01, 0x86, 0x6e, 0xbb, 0xfe, 0xfd, 0xfe, 0xe5, 0xfe, 0xfd,
+ 0xbb, 0x6e, 0x6e, 0xbb, 0x01, 0x03, 0x01, 0x1b, 0x01, 0x03, 0xbb, 0x6e,
+ 0xfd, 0xc4, 0x49, 0x69, 0x4a, 0x4a, 0x69, 0x49, 0x01, 0x94, 0xdf, 0xf0,
+ 0xdf, 0x9e, 0x5f, 0x5f, 0x9e, 0xdf, 0xf0, 0xdf, 0x9e, 0x5f, 0x5f, 0x01,
+ 0x58, 0xfe, 0xe0, 0xd0, 0x7b, 0x7b, 0xd0, 0x01, 0x20, 0x01, 0x3a, 0x01,
+ 0x20, 0xd0, 0x7b, 0x7b, 0xd0, 0xfe, 0xe0, 0xd7, 0x52, 0x52, 0x74, 0x52,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6a,
+ 0x05, 0xe8, 0x00, 0x11, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34, 0x24, 0x21,
+ 0x22, 0x07, 0x11, 0x23, 0x11, 0x36, 0x33, 0x20, 0x00, 0x11, 0x10, 0x05,
+ 0x02, 0xd7, 0xf1, 0xfe, 0xf1, 0xfe, 0xfe, 0x2f, 0x32, 0xa2, 0x92, 0x71,
+ 0x01, 0x3f, 0x01, 0x74, 0xfe, 0xa7, 0x02, 0x59, 0x66, 0xd4, 0xb6, 0xf9,
+ 0x06, 0xfa, 0xc4, 0x05, 0xd4, 0x14, 0xfe, 0xbf, 0xfe, 0xec, 0xfe, 0xb0,
+ 0x92, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x05, 0x8d,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x33, 0x11, 0x33, 0x09, 0x01, 0x33,
+ 0x11, 0x23, 0x11, 0x09, 0x01, 0x11, 0xb4, 0xa2, 0x01, 0xca, 0x01, 0xca,
+ 0xa2, 0xa2, 0xfe, 0x36, 0xfe, 0x36, 0x05, 0xd5, 0xfd, 0xa2, 0x02, 0x5e,
+ 0xfa, 0x2b, 0x04, 0xbd, 0xfd, 0xa1, 0x02, 0x5f, 0xfb, 0x43, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x87, 0x00, 0x00, 0x03, 0xb1, 0x05, 0xf2, 0x00, 0x0b,
+ 0x00, 0x1d, 0x00, 0x00, 0x00, 0x34, 0x2e, 0x01, 0x22, 0x0e, 0x01, 0x14,
+ 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x06, 0x07, 0x06, 0x07, 0x11, 0x23, 0x11,
+ 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x32, 0x1e, 0x01, 0x03, 0x0f,
+ 0x41, 0x70, 0x84, 0x70, 0x41, 0x41, 0x70, 0x84, 0x70, 0xe3, 0x6e, 0x5c,
+ 0x39, 0x41, 0xa2, 0x40, 0x3a, 0x5e, 0x6c, 0x6d, 0xba, 0xdc, 0xba, 0x6d,
+ 0x03, 0xe7, 0x93, 0x7c, 0x48, 0x48, 0x7c, 0x93, 0x7d, 0x48, 0x48, 0x4c,
+ 0xd1, 0x3b, 0x25, 0x0e, 0xfd, 0x89, 0x02, 0x77, 0x0e, 0x25, 0x3c, 0xd0,
+ 0xf4, 0xcf, 0x79, 0x79, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0xd7, 0x05, 0xe9, 0x00, 0x0c, 0x00, 0x17, 0x00, 0x00,
+ 0x08, 0x01, 0x15, 0x14, 0x02, 0x07, 0x06, 0x23, 0x11, 0x23, 0x11, 0x36,
+ 0x33, 0x03, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x02, 0x8f, 0x01, 0x48, 0xb4, 0xe6, 0x6a, 0x7d, 0xa2, 0x92, 0x71, 0x61,
+ 0xee, 0x78, 0x79, 0x7d, 0x67, 0xab, 0x26, 0x2a, 0x05, 0xe9, 0xfe, 0xe5,
+ 0xfc, 0x8d, 0xfe, 0xd1, 0x4e, 0x24, 0xfe, 0x5c, 0x05, 0xd5, 0x14, 0xfc,
+ 0x6f, 0x73, 0x72, 0x96, 0x9e, 0x6c, 0x58, 0x04, 0x00, 0x01, 0x00, 0x87,
+ 0xff, 0xf2, 0x02, 0xa7, 0x05, 0xea, 0x00, 0x09, 0x00, 0x00, 0x09, 0x03,
+ 0x07, 0x09, 0x03, 0x17, 0x01, 0x6c, 0x01, 0x3b, 0xfe, 0xc5, 0x01, 0x02,
+ 0x73, 0xfe, 0x8c, 0x01, 0x3b, 0xfe, 0xc5, 0x01, 0x74, 0x73, 0x04, 0x4c,
+ 0xfe, 0xa2, 0xfe, 0xa2, 0xfe, 0xe2, 0x80, 0x01, 0x9e, 0x01, 0x5e, 0x01,
+ 0x5e, 0x01, 0x9e, 0x80, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x04, 0x7d,
+ 0x05, 0xf2, 0x00, 0x07, 0x00, 0x00, 0x01, 0x07, 0x25, 0x11, 0x23, 0x11,
+ 0x25, 0x37, 0x04, 0x7c, 0x32, 0xfe, 0x60, 0xa2, 0xfe, 0x52, 0x32, 0x04,
+ 0x8a, 0xac, 0x95, 0xfb, 0x8d, 0x04, 0xad, 0x99, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x3c, 0x05, 0xea, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x17, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x03, 0xc8,
+ 0x74, 0xfd, 0x1a, 0xa2, 0xa2, 0x05, 0xea, 0x80, 0xfc, 0xc9, 0xfd, 0xcd,
+ 0x05, 0xd5, 0xfd, 0x5c, 0x00, 0x01, 0x00, 0x87, 0xff, 0xe3, 0x04, 0x6a,
+ 0x05, 0xf2, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01, 0x37, 0x09, 0x01, 0x17,
+ 0x09, 0x01, 0x07, 0x09, 0x01, 0x27, 0x02, 0x16, 0xfe, 0x71, 0x87, 0x01,
+ 0x6a, 0x01, 0x6a, 0x88, 0xfe, 0x71, 0x01, 0x8f, 0x88, 0xfe, 0x96, 0xfe,
+ 0x96, 0x87, 0x02, 0xed, 0x02, 0xa3, 0x62, 0xfd, 0xa1, 0x02, 0x5f, 0x62,
+ 0xfd, 0x5d, 0xfd, 0x58, 0x62, 0x02, 0x64, 0xfd, 0x9c, 0x62, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x87, 0x00, 0x00, 0x04, 0x65, 0x05, 0xd5, 0x00, 0x13,
+ 0x00, 0x1b, 0x00, 0x24, 0x00, 0x00, 0x21, 0x23, 0x35, 0x26, 0x27, 0x26,
+ 0x10, 0x37, 0x36, 0x37, 0x35, 0x33, 0x15, 0x16, 0x17, 0x16, 0x10, 0x07,
+ 0x06, 0x07, 0x19, 0x01, 0x36, 0x37, 0x36, 0x10, 0x27, 0x26, 0x03, 0x11,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x02, 0xc7, 0xa2, 0x99, 0x74,
+ 0x91, 0x91, 0x73, 0x9a, 0xa2, 0x99, 0x74, 0x91, 0x91, 0x73, 0x9a, 0x56,
+ 0x44, 0x62, 0x62, 0x44, 0xf8, 0x56, 0x44, 0x62, 0x62, 0x44, 0xcc, 0x1a,
+ 0x80, 0xa1, 0x01, 0xc7, 0xa2, 0x80, 0x1a, 0xcb, 0xcb, 0x1a, 0x80, 0xa1,
+ 0xfe, 0x39, 0xa2, 0x80, 0x1a, 0x03, 0x87, 0xfd, 0x30, 0x17, 0x4c, 0x6c,
+ 0x01, 0x32, 0x6c, 0x4b, 0xfd, 0x48, 0x02, 0xd0, 0x17, 0x4c, 0x6e, 0x98,
+ 0x96, 0x6e, 0x4c, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x05, 0x7b,
+ 0x05, 0xf2, 0x00, 0x0b, 0x00, 0x00, 0x21, 0x23, 0x11, 0x01, 0x37, 0x01,
+ 0x11, 0x33, 0x11, 0x01, 0x17, 0x01, 0x03, 0x3b, 0xa2, 0xfd, 0xc1, 0x73,
+ 0x01, 0xcc, 0xa2, 0x01, 0xcc, 0x73, 0xfd, 0xc1, 0x02, 0xf4, 0x02, 0x7e,
+ 0x80, 0xfe, 0x00, 0x01, 0xe3, 0xfe, 0x1d, 0x02, 0x00, 0x80, 0xfd, 0x82,
+ 0x00, 0x03, 0x00, 0x87, 0xff, 0xf1, 0x03, 0x45, 0x05, 0xb9, 0x00, 0x07,
+ 0x00, 0x1d, 0x00, 0x25, 0x00, 0x00, 0x00, 0x34, 0x26, 0x22, 0x06, 0x14,
+ 0x16, 0x32, 0x24, 0x06, 0x20, 0x26, 0x10, 0x37, 0x36, 0x37, 0x26, 0x27,
+ 0x26, 0x10, 0x36, 0x20, 0x16, 0x10, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16,
+ 0x02, 0x34, 0x26, 0x22, 0x06, 0x14, 0x16, 0x32, 0x02, 0xa3, 0x6f, 0x9c,
+ 0x6f, 0x6f, 0x9c, 0x01, 0x11, 0xce, 0xfe, 0xde, 0xce, 0x67, 0x2a, 0x31,
+ 0x31, 0x2a, 0x67, 0xce, 0x01, 0x22, 0xce, 0x67, 0x2a, 0x31, 0x31, 0x2a,
+ 0x67, 0xa2, 0x6f, 0x9c, 0x6f, 0x6f, 0x9c, 0x01, 0x20, 0xae, 0x7b, 0x7b,
+ 0xae, 0x7b, 0x31, 0xe5, 0xe5, 0x01, 0x42, 0x73, 0x2f, 0x1b, 0x1c, 0x2e,
+ 0x72, 0x01, 0x43, 0xe5, 0xe5, 0xfe, 0xbe, 0x73, 0x2f, 0x1b, 0x1c, 0x2e,
+ 0x72, 0x01, 0xc3, 0xae, 0x7b, 0x7b, 0xae, 0x7b, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x03, 0x7d, 0x05, 0xe8, 0x00, 0x0a, 0x00, 0x13, 0x00, 0x00,
+ 0x33, 0x11, 0x36, 0x33, 0x32, 0x04, 0x15, 0x14, 0x04, 0x23, 0x19, 0x01,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0xb4, 0x77, 0x74, 0xdb,
+ 0x01, 0x03, 0xfe, 0xcb, 0xf2, 0xb6, 0xcf, 0xa2, 0x92, 0x26, 0x2b, 0x05,
+ 0xd5, 0x13, 0xe6, 0xbd, 0xd0, 0xdc, 0xfd, 0x67, 0x03, 0x4e, 0x7f, 0x76,
+ 0x63, 0x9c, 0x06, 0x00, 0x00, 0x02, 0x00, 0xb4, 0xff, 0xed, 0x03, 0x7d,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x14, 0x00, 0x00, 0x13, 0x33, 0x11, 0x32,
+ 0x04, 0x15, 0x14, 0x04, 0x23, 0x22, 0x27, 0x13, 0x30, 0x11, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0xb4, 0xa2, 0xf2, 0x01, 0x35, 0xfe, 0xfd,
+ 0xdb, 0x74, 0x77, 0xa2, 0x2b, 0x26, 0x92, 0xa2, 0xcf, 0x05, 0xd5, 0xfd,
+ 0x67, 0xdc, 0xd0, 0xbd, 0xe6, 0x13, 0x02, 0x87, 0xfe, 0x12, 0x06, 0x9c,
+ 0x63, 0x76, 0x7f, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x00, 0x00, 0x02, 0x76,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x00, 0x13, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x23, 0x11, 0x5a, 0x01, 0x7a, 0xa2, 0xa2, 0x02, 0x91, 0xb4, 0x02, 0x90,
+ 0xfa, 0x2b, 0x02, 0x91, 0x00, 0x02, 0x00, 0x5a, 0x00, 0x00, 0x05, 0x19,
+ 0x05, 0xf2, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x00, 0x09, 0x01, 0x23, 0x01,
+ 0x37, 0x09, 0x01, 0x00, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x16, 0x05,
+ 0x19, 0xfe, 0x08, 0xcf, 0xfe, 0x08, 0x97, 0x01, 0xc9, 0x01, 0xc8, 0xfe,
+ 0xb6, 0x4a, 0x69, 0x49, 0x49, 0x69, 0x4a, 0x05, 0xb2, 0xfa, 0x4e, 0x05,
+ 0xb2, 0x40, 0xfa, 0xda, 0x05, 0x26, 0xfd, 0xd8, 0x52, 0x52, 0x74, 0x52,
+ 0x52, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x01, 0x56,
+ 0x05, 0xd5, 0x12, 0x06, 0x0f, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0xff, 0xe3, 0x05, 0x19, 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, 0x37, 0x01,
+ 0x33, 0x01, 0x07, 0x09, 0x01, 0x5a, 0x01, 0xf8, 0xcf, 0x01, 0xf8, 0x97,
+ 0xfe, 0x38, 0xfe, 0x37, 0x23, 0x05, 0xb2, 0xfa, 0x4e, 0x40, 0x05, 0x26,
+ 0xfa, 0xda, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87, 0xff, 0xe3, 0x04, 0x6a,
+ 0x05, 0xf2, 0x12, 0x06, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5a,
+ 0x00, 0x00, 0x05, 0x8a, 0x05, 0xf3, 0x00, 0x08, 0x00, 0x00, 0x13, 0x09,
+ 0x01, 0x07, 0x01, 0x11, 0x23, 0x11, 0x01, 0x5a, 0x02, 0x81, 0x02, 0xaf,
+ 0x6e, 0xfe, 0x12, 0xa2, 0xfe, 0x41, 0x03, 0x2c, 0x02, 0xc7, 0xfd, 0x3b,
+ 0x84, 0x01, 0xfe, 0xfb, 0x58, 0x04, 0x9d, 0xfe, 0x0f, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x99, 0x01, 0xe0, 0x05, 0xdc, 0x02, 0xa8, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x21, 0x35, 0x21, 0x05, 0x35,
+ 0x21, 0x15, 0x29, 0x01, 0x35, 0x21, 0x01, 0xca, 0xfe, 0xcf, 0x01, 0x31,
+ 0x02, 0xe0, 0x01, 0x31, 0xfd, 0xf7, 0xfe, 0xd0, 0x01, 0x30, 0x01, 0xe0,
+ 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x01, 0x37, 0x05, 0xdc, 0x04, 0x0e, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xff, 0x58, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x46, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x01, 0x3a, 0x05, 0xdc, 0x04, 0x0a, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x62, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x01, 0x3d, 0x05, 0xdc,
+ 0x04, 0x0b, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0xff, 0x5d, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x43, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x01, 0x3b, 0x05, 0xdc, 0x04, 0x0a, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x3c, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x62, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x01, 0x3d, 0x05, 0xdc, 0x04, 0x0a, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xff, 0x5d, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x62, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06,
+ 0x0b, 0xb4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x26, 0x0f, 0x3c,
+ 0x00, 0xa0, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x06, 0x0f, 0x3c, 0x00, 0xa0,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x07, 0x0b, 0xb3,
+ 0x00, 0x00, 0x04, 0x80, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x26,
+ 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00,
+ 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x26,
+ 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x26,
+ 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26,
+ 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x04, 0x80, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0xfe, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4,
+ 0x00, 0x00, 0x01, 0x80, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x06, 0x0b, 0xb3,
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26,
+ 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0f, 0x3c, 0x00, 0xa0, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x06, 0x0f, 0x3c,
+ 0x00, 0xa0, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x06, 0x0f, 0x3c, 0x00, 0xa0, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x06,
+ 0x0b, 0xb4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x07, 0x0b, 0xb4,
+ 0x00, 0x00, 0x01, 0x80, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x07,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x04, 0x80, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x26, 0x0f, 0x3c,
+ 0x00, 0xa0, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x04, 0x80, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80,
+ 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb3,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06,
+ 0x0b, 0xb4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00,
+ 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26,
+ 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x07,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0f, 0x3c, 0x00, 0xa0,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x06,
+ 0x0b, 0xb3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26,
+ 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0xfe, 0x20, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07,
+ 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x27, 0x0b, 0xb4,
+ 0x00, 0x00, 0x03, 0x00, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26,
+ 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00, 0x03, 0x00,
+ 0x10, 0x07, 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x10, 0x26, 0x0b, 0xb3, 0x00, 0x00, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0x01, 0x20, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x26, 0x0b, 0xb4, 0x00, 0x00,
+ 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x01, 0x80, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0xfe, 0x20, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00,
+ 0x01, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc,
+ 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0,
+ 0x10, 0x06, 0x0b, 0xb3, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x99,
+ 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00, 0x01, 0x20, 0x10, 0x26,
+ 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x06, 0x0b, 0xb4, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x00, 0x00, 0x05, 0xdc, 0x05, 0x48, 0x10, 0x27,
+ 0x0f, 0x3c, 0x00, 0x00, 0x02, 0xa0, 0x10, 0x27, 0x0f, 0x3c, 0x00, 0x00,
+ 0x01, 0x20, 0x10, 0x26, 0x0f, 0x3c, 0x00, 0xa0, 0x10, 0x07, 0x0f, 0x3c,
+ 0x00, 0x00, 0xfe, 0x20, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x46,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x23,
+ 0x01, 0x33, 0x09, 0x01, 0x21, 0x03, 0x21, 0x03, 0x23, 0x01, 0x17, 0x01,
+ 0x21, 0x03, 0x07, 0xb9, 0x01, 0xbd, 0xb9, 0xfe, 0x81, 0x02, 0x01, 0xfe,
+ 0x86, 0x89, 0xfd, 0xc0, 0x89, 0x6c, 0x02, 0x00, 0x16, 0xff, 0x00, 0x01,
+ 0xff, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x71, 0xfa, 0x2b, 0x01, 0xa1, 0xfe,
+ 0x5f, 0x05, 0xd5, 0xc7, 0xfc, 0xf7, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xc7, 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x14, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x25, 0x00, 0x2a, 0x00, 0x00, 0x13, 0x21, 0x32, 0x16,
+ 0x15, 0x14, 0x07, 0x16, 0x11, 0x14, 0x06, 0x23, 0x21, 0x01, 0x11, 0x33,
+ 0x32, 0x37, 0x11, 0x26, 0x23, 0x03, 0x11, 0x33, 0x36, 0x33, 0x11, 0x26,
+ 0x23, 0x21, 0x11, 0x33, 0x11, 0x01, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x36,
+ 0x35, 0x34, 0x27, 0xb5, 0x02, 0x29, 0xcf, 0xe1, 0xac, 0xe4, 0xf5, 0xe1,
+ 0xfd, 0xc5, 0x01, 0x68, 0xd3, 0x35, 0x2d, 0x2d, 0x35, 0xd3, 0xc1, 0x20,
+ 0x1d, 0x1d, 0x20, 0xfe, 0x31, 0xb6, 0x01, 0xec, 0xbb, 0xbb, 0x38, 0xbb,
+ 0xbb, 0x05, 0xd5, 0xc0, 0xb1, 0xe5, 0x5d, 0x61, 0xfe, 0xe1, 0xc8, 0xda,
+ 0x02, 0xe9, 0xfd, 0x7b, 0x07, 0x02, 0x77, 0x07, 0x02, 0x88, 0xfd, 0xdc,
+ 0x03, 0x02, 0x1f, 0x02, 0xfa, 0xf3, 0x05, 0x0d, 0xfb, 0x11, 0x44, 0xdc,
+ 0xe5, 0x44, 0x96, 0x36, 0xcd, 0xc4, 0x36, 0x00, 0x00, 0x04, 0x00, 0xd0,
+ 0x00, 0x00, 0x05, 0x95, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x10, 0x00, 0x14,
+ 0x00, 0x19, 0x00, 0x00, 0x13, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x29,
+ 0x01, 0x01, 0x13, 0x33, 0x32, 0x37, 0x11, 0x26, 0x23, 0x21, 0x11, 0x33,
+ 0x03, 0x01, 0x36, 0x11, 0x10, 0x27, 0xd1, 0x01, 0xcf, 0x01, 0x87, 0x01,
+ 0x6d, 0xfe, 0x91, 0xfe, 0x7b, 0xfe, 0x31, 0x01, 0x6a, 0x01, 0x59, 0xdc,
+ 0x90, 0x90, 0xdd, 0xfe, 0x98, 0xb6, 0x01, 0x02, 0x7f, 0xc8, 0xc8, 0x05,
+ 0xd5, 0xfe, 0x97, 0xfe, 0x80, 0xfe, 0x7e, 0xfe, 0x96, 0x05, 0x71, 0xfa,
+ 0xf3, 0x41, 0x04, 0x8b, 0x41, 0xfa, 0xf3, 0x05, 0x0d, 0xfb, 0x6b, 0x95,
+ 0x01, 0x7b, 0x01, 0x71, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0xcb, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x11, 0x25, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x21, 0x15, 0x21, 0x01, 0x0f, 0xb6, 0xfe, 0xf0, 0x04, 0x05, 0xfd,
+ 0x65, 0x02, 0x80, 0xfd, 0x80, 0x02, 0xac, 0xfb, 0xea, 0x05, 0x71, 0xfa,
+ 0xf3, 0x05, 0x0d, 0x64, 0x64, 0xfd, 0xe4, 0x64, 0xfd, 0x73, 0x64, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x00, 0x09,
+ 0x00, 0x0d, 0x00, 0x00, 0x13, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21,
+ 0x11, 0x21, 0x01, 0x23, 0x11, 0x33, 0xb5, 0x03, 0xb9, 0xfd, 0xb1, 0x02,
+ 0x15, 0xfd, 0xeb, 0xfe, 0x96, 0x01, 0x10, 0xb6, 0xb6, 0x05, 0xd5, 0x64,
+ 0xfd, 0xe4, 0x64, 0xfd, 0x0f, 0x05, 0x71, 0xfa, 0xf3, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xfe, 0x05, 0xf0, 0x00, 0x1d,
+ 0x00, 0x26, 0x00, 0x00, 0x01, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x11, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x11, 0x21, 0x35, 0x21, 0x11, 0x0e, 0x01,
+ 0x23, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x32, 0x16, 0x17, 0x01, 0x11,
+ 0x06, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16, 0x04, 0xda, 0x72, 0xea, 0x78,
+ 0xa8, 0x7a, 0x7a, 0xa8, 0x82, 0x73, 0x5b, 0x4d, 0xfe, 0x7d, 0x01, 0xdd,
+ 0x69, 0xfe, 0x90, 0xfe, 0xc5, 0xfe, 0x9d, 0x01, 0x63, 0x01, 0x3b, 0x83,
+ 0xed, 0x64, 0xfc, 0xb0, 0x19, 0x17, 0x98, 0x98, 0x17, 0x04, 0xe4, 0x61,
+ 0x47, 0x40, 0xfb, 0x3b, 0x40, 0x26, 0x1f, 0x35, 0x01, 0xe7, 0x64, 0xfd,
+ 0x7f, 0x53, 0x55, 0x01, 0x99, 0x01, 0x6d, 0x01, 0x6e, 0x01, 0x99, 0x48,
+ 0x46, 0xfb, 0x63, 0x04, 0x49, 0x16, 0x1a, 0xaf, 0xfe, 0xba, 0xfe, 0xbb,
+ 0xaf, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x5b, 0x00, 0x00, 0x02, 0x78,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11,
+ 0x25, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23,
+ 0x01, 0x10, 0xb6, 0xfe, 0x96, 0x02, 0x1c, 0x5a, 0x5a, 0xfd, 0xe4, 0x5a,
+ 0x5a, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0x64, 0xfa, 0xf3, 0x64,
+ 0x64, 0x05, 0x0d, 0x00, 0x00, 0x02, 0xff, 0xa0, 0xfe, 0x66, 0x02, 0x1d,
+ 0x05, 0xd5, 0x00, 0x08, 0x00, 0x14, 0x00, 0x00, 0x01, 0x11, 0x14, 0x07,
+ 0x36, 0x37, 0x36, 0x35, 0x11, 0x25, 0x21, 0x11, 0x10, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x36, 0x35, 0x01, 0x0f, 0x4d, 0x81, 0x39, 0x47, 0xfe,
+ 0xf2, 0x01, 0x68, 0xb9, 0xcc, 0xf7, 0x38, 0x79, 0x63, 0x05, 0x71, 0xfa,
+ 0xb1, 0xf2, 0x64, 0x0a, 0x4a, 0x5e, 0xea, 0x05, 0x09, 0x64, 0xfa, 0x93,
+ 0xfe, 0xf2, 0xf4, 0x64, 0x96, 0xc2, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x92, 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x00,
+ 0x13, 0x21, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x21, 0x13,
+ 0x11, 0x33, 0x11, 0xb5, 0x01, 0x68, 0x02, 0xb6, 0x8f, 0xfc, 0xf9, 0x03,
+ 0x37, 0x8a, 0xfd, 0x15, 0xfe, 0x98, 0x5a, 0xb6, 0x05, 0xd5, 0xfd, 0x89,
+ 0x02, 0x77, 0xfd, 0x40, 0xfc, 0xeb, 0x02, 0xcf, 0xfd, 0x31, 0x05, 0x71,
+ 0xfa, 0xf3, 0x05, 0x0d, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xad,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x13, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x13, 0x11, 0x33, 0x11, 0xb5, 0x01, 0x6a, 0x02, 0x8e, 0xfc,
+ 0x08, 0x5a, 0xb6, 0x05, 0xd5, 0xfa, 0x8f, 0x64, 0x05, 0x6f, 0xfa, 0xf3,
+ 0x05, 0x0d, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb0, 0x00, 0x00, 0x06, 0xb1,
+ 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x00, 0x00, 0x21, 0x11,
+ 0x01, 0x23, 0x01, 0x03, 0x21, 0x11, 0x21, 0x09, 0x01, 0x21, 0x11, 0x01,
+ 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x05, 0x47, 0xfe, 0x89, 0x40,
+ 0xfe, 0x8b, 0x01, 0xfe, 0x96, 0x01, 0xa9, 0x01, 0x57, 0x01, 0x59, 0x01,
+ 0xa8, 0xfe, 0xf0, 0xb6, 0xfa, 0xb3, 0xb6, 0x05, 0x71, 0xfb, 0xae, 0x04,
+ 0x52, 0xfa, 0x8f, 0x05, 0xd5, 0xfc, 0x08, 0x03, 0xf8, 0xfa, 0x2b, 0x05,
+ 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0xfa, 0xf3, 0x05, 0x0d, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x66, 0xff, 0xe3, 0x05, 0x45, 0x05, 0xf0, 0x00, 0x0f,
+ 0x00, 0x17, 0x00, 0x1f, 0x00, 0x27, 0x00, 0x28, 0x00, 0x00, 0x01, 0x20,
+ 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26, 0x11, 0x10,
+ 0x37, 0x36, 0x13, 0x16, 0x32, 0x37, 0x11, 0x26, 0x22, 0x07, 0x03, 0x11,
+ 0x06, 0x07, 0x06, 0x10, 0x17, 0x16, 0x01, 0x11, 0x36, 0x37, 0x36, 0x10,
+ 0x27, 0x26, 0x01, 0x02, 0xd5, 0x01, 0x1b, 0xa9, 0xab, 0xaa, 0xaa, 0xfe,
+ 0xe5, 0xfe, 0xe5, 0xa9, 0xaa, 0xaa, 0xa9, 0x40, 0x61, 0xf5, 0x61, 0x61,
+ 0xf5, 0x61, 0x5f, 0x20, 0x1d, 0x8b, 0x8b, 0x1d, 0x02, 0x95, 0x1f, 0x1c,
+ 0x8b, 0x8b, 0x1c, 0xfc, 0x38, 0x05, 0xf0, 0xd2, 0xd5, 0xfe, 0xa0, 0xfe,
+ 0xa1, 0xd4, 0xd3, 0xd3, 0xd2, 0x01, 0x61, 0x01, 0x62, 0xd3, 0xd2, 0xfa,
+ 0x8e, 0x32, 0x32, 0x04, 0xd7, 0x32, 0x32, 0xfb, 0x6a, 0x04, 0x54, 0x1d,
+ 0x25, 0xb6, 0xfd, 0x9c, 0xb5, 0x25, 0x04, 0x35, 0xfb, 0xaf, 0x1d, 0x24,
+ 0xb6, 0x02, 0x63, 0xb6, 0x24, 0xfd, 0xf4, 0x00, 0x00, 0x02, 0x00, 0x7a,
+ 0xff, 0xdc, 0x04, 0x29, 0x05, 0xf6, 0x00, 0x11, 0x00, 0x2d, 0x00, 0x00,
+ 0x01, 0x06, 0x10, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x10, 0x07, 0x36, 0x10,
+ 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x34, 0x25, 0x15, 0x26, 0x20, 0x06, 0x14,
+ 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x10, 0x04, 0x20, 0x27, 0x35, 0x16, 0x20,
+ 0x36, 0x34, 0x26, 0x2f, 0x01, 0x2e, 0x01, 0x10, 0x36, 0x20, 0x01, 0x2e,
+ 0x5a, 0x7b, 0x9b, 0x64, 0x98, 0x97, 0x22, 0x74, 0x8d, 0x99, 0x63, 0x9e,
+ 0x8e, 0x02, 0xc0, 0xb9, 0xfe, 0xe5, 0x92, 0x62, 0x85, 0x63, 0xb6, 0xb5,
+ 0xfe, 0xfd, 0xfe, 0x44, 0xeb, 0xc9, 0x01, 0x43, 0x98, 0x6e, 0x7c, 0x64,
+ 0xb6, 0xa5, 0xfb, 0x01, 0x98, 0x05, 0x2d, 0x5b, 0xfe, 0xca, 0x9a, 0x29,
+ 0x1a, 0x27, 0xb9, 0xfe, 0xff, 0x4e, 0x58, 0x01, 0x64, 0xbb, 0x27, 0x1b,
+ 0x27, 0x9d, 0xe3, 0xb4, 0x70, 0x75, 0x89, 0xe9, 0x69, 0x24, 0x1b, 0x32,
+ 0xeb, 0xfe, 0x58, 0xee, 0x66, 0x7c, 0x95, 0x92, 0xfd, 0x86, 0x20, 0x1a,
+ 0x2f, 0xcf, 0x01, 0x8c, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfa,
+ 0x00, 0x00, 0x05, 0x1f, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0b, 0x00, 0x00,
+ 0x01, 0x11, 0x33, 0x11, 0x25, 0x21, 0x15, 0x21, 0x11, 0x21, 0x11, 0x21,
+ 0x02, 0x33, 0xb4, 0xfd, 0x14, 0x05, 0x23, 0xfe, 0x23, 0xfe, 0x98, 0xfe,
+ 0x22, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0x64, 0xfa, 0x8f, 0x05,
+ 0x71, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x9f, 0xff, 0xe3, 0x05, 0x5b,
+ 0x05, 0xd5, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x11,
+ 0x10, 0x07, 0x24, 0x19, 0x01, 0x21, 0x11, 0x10, 0x05, 0x26, 0x13, 0x11,
+ 0x25, 0x21, 0x11, 0x14, 0x16, 0x20, 0x36, 0x35, 0x11, 0x21, 0x11, 0x10,
+ 0x00, 0x20, 0x00, 0x11, 0x04, 0x4c, 0x4f, 0x01, 0x04, 0xfb, 0xf8, 0x01,
+ 0x04, 0x50, 0x01, 0xfe, 0xf1, 0x01, 0x69, 0x73, 0x01, 0x04, 0x73, 0x01,
+ 0x69, 0xfe, 0xce, 0xfd, 0xa8, 0xfe, 0xce, 0x05, 0x71, 0xfc, 0x99, 0xfe,
+ 0xe6, 0x82, 0x62, 0x01, 0x61, 0x03, 0x40, 0xfc, 0xc0, 0xfe, 0x9e, 0x60,
+ 0x7c, 0x01, 0x1f, 0x03, 0x67, 0x64, 0xfc, 0x35, 0xf0, 0xd3, 0xd3, 0xf0,
+ 0x03, 0xcb, 0xfc, 0x5c, 0xfe, 0xdc, 0xfe, 0xd6, 0x01, 0x2a, 0x01, 0x24,
+ 0x00, 0x02, 0x00, 0x0e, 0x00, 0x00, 0x05, 0x25, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x0a, 0x00, 0x00, 0x13, 0x01, 0x33, 0x01, 0x25, 0x21, 0x09, 0x01,
+ 0x33, 0x01, 0x21, 0x8b, 0x01, 0xbc, 0xb4, 0xfe, 0x44, 0xfe, 0xcf, 0x01,
+ 0x68, 0x01, 0xaa, 0x01, 0xab, 0x5a, 0xfe, 0x00, 0xfe, 0xea, 0x05, 0x71,
+ 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0xfb, 0x17, 0x04, 0xe9, 0xfa, 0x2b, 0x00,
+ 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x07, 0xd0, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x09, 0x01, 0x33, 0x01, 0x21, 0x01,
+ 0x33, 0x01, 0x25, 0x21, 0x09, 0x01, 0x21, 0x09, 0x01, 0x33, 0x01, 0x21,
+ 0x09, 0x01, 0x21, 0x04, 0x4a, 0x01, 0x24, 0xb4, 0xfe, 0xdc, 0xfb, 0xb0,
+ 0x01, 0x23, 0xb4, 0xfe, 0xdd, 0xfe, 0xdb, 0x01, 0x68, 0x01, 0x1b, 0x01,
+ 0x1a, 0x01, 0x68, 0x01, 0x1a, 0x01, 0x1a, 0x5a, 0xfe, 0xae, 0xfe, 0xa3,
+ 0xfe, 0xe5, 0xfe, 0xe1, 0xfe, 0xa7, 0x05, 0x71, 0xfa, 0xf3, 0x05, 0x0d,
+ 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0xfb, 0x12, 0x04, 0xee, 0xfb, 0x12, 0x04,
+ 0xee, 0xfa, 0x2b, 0x05, 0x10, 0xfa, 0xf0, 0x00, 0x00, 0x02, 0x00, 0x61,
+ 0x00, 0x00, 0x05, 0x6c, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00,
+ 0x09, 0x01, 0x33, 0x01, 0x25, 0x21, 0x09, 0x01, 0x33, 0x09, 0x01, 0x21,
+ 0x09, 0x01, 0x23, 0x01, 0x01, 0x0a, 0x03, 0x06, 0xb3, 0xfc, 0xfa, 0xfe,
+ 0xa4, 0x01, 0x8c, 0x01, 0x51, 0x01, 0x5d, 0x58, 0xfe, 0x78, 0x02, 0x01,
+ 0xfe, 0x74, 0xfe, 0xaf, 0xfe, 0xa3, 0x5a, 0x01, 0x8a, 0x05, 0x71, 0xfa,
+ 0xf3, 0x05, 0x0d, 0x64, 0xfd, 0xce, 0x02, 0x32, 0xfd, 0x84, 0xfc, 0xa7,
+ 0x02, 0x32, 0xfd, 0xce, 0x02, 0x7b, 0x00, 0x00, 0x00, 0x02, 0xff, 0xfc,
+ 0x00, 0x00, 0x05, 0x1b, 0x05, 0xd5, 0x00, 0x08, 0x00, 0x0e, 0x00, 0x00,
+ 0x09, 0x01, 0x33, 0x01, 0x11, 0x21, 0x11, 0x01, 0x21, 0x09, 0x01, 0x23,
+ 0x01, 0x11, 0x33, 0x03, 0x16, 0x01, 0xab, 0x5a, 0xfe, 0x25, 0xfe, 0x98,
+ 0xfe, 0x24, 0x01, 0x6c, 0x01, 0x7f, 0xfe, 0x61, 0xb4, 0x01, 0x9e, 0xb5,
+ 0x03, 0x13, 0x02, 0xc2, 0xfc, 0xf2, 0xfd, 0x39, 0x02, 0xc7, 0x03, 0x0e,
+ 0xfc, 0xf2, 0x02, 0xaa, 0xfd, 0x56, 0xfd, 0x9d, 0x00, 0x04, 0x00, 0x6e,
+ 0xff, 0xe3, 0x04, 0x1e, 0x04, 0x7b, 0x00, 0x07, 0x00, 0x22, 0x00, 0x2c,
+ 0x00, 0x33, 0x00, 0x00, 0x01, 0x34, 0x26, 0x27, 0x16, 0x15, 0x11, 0x33,
+ 0x13, 0x11, 0x21, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36,
+ 0x3b, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01,
+ 0x33, 0x20, 0x16, 0x01, 0x35, 0x23, 0x22, 0x07, 0x11, 0x3e, 0x01, 0x37,
+ 0x36, 0x05, 0x11, 0x0e, 0x01, 0x15, 0x14, 0x16, 0x03, 0xc4, 0x87, 0x37,
+ 0x44, 0x7a, 0x5a, 0xfe, 0xd2, 0x39, 0xa9, 0x4e, 0x9b, 0xb6, 0xe3, 0xe2,
+ 0xbc, 0x6a, 0x88, 0x56, 0xa4, 0x4c, 0x6c, 0xc8, 0x33, 0x01, 0x01, 0xfe,
+ 0xfe, 0xd2, 0xbc, 0x30, 0x2b, 0x55, 0x58, 0x35, 0x35, 0xfe, 0x8f, 0x3c,
+ 0x7a, 0x6d, 0x02, 0x7f, 0xd3, 0x86, 0x18, 0x5d, 0x88, 0xfd, 0x59, 0x02,
+ 0x1b, 0xfd, 0x81, 0xaa, 0x66, 0x61, 0xc1, 0xa2, 0xbd, 0xc0, 0x48, 0x7f,
+ 0x8b, 0x2e, 0x2e, 0x74, 0x27, 0x27, 0xfc, 0xfe, 0x8b, 0x55, 0x04, 0xfd,
+ 0xed, 0x04, 0x4e, 0x48, 0x47, 0xdc, 0x01, 0xfd, 0x12, 0x67, 0x8b, 0x77,
+ 0x74, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x85, 0xff, 0xe3, 0x04, 0x92,
+ 0x06, 0x14, 0x00, 0x0f, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x00,
+ 0x13, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10, 0x02, 0x23, 0x22,
+ 0x26, 0x27, 0x15, 0x21, 0x01, 0x34, 0x27, 0x26, 0x27, 0x11, 0x36, 0x37,
+ 0x36, 0x37, 0x36, 0x01, 0x11, 0x33, 0x11, 0x01, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x85, 0x01,
+ 0x2d, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34, 0xfe,
+ 0xd3, 0x03, 0xaa, 0x55, 0x27, 0x36, 0x36, 0x27, 0x34, 0x14, 0x0d, 0xfc,
+ 0xb0, 0x79, 0x01, 0xc6, 0x16, 0x18, 0x94, 0x44, 0x45, 0x14, 0x0c, 0x55,
+ 0x54, 0x94, 0x18, 0x16, 0x06, 0x14, 0xfd, 0xa2, 0x64, 0x61, 0xfe, 0xbc,
+ 0xfd, 0xf0, 0xfe, 0xbc, 0x61, 0x64, 0xa8, 0x02, 0x74, 0x9f, 0x82, 0x3d,
+ 0x20, 0xfc, 0x7a, 0x20, 0x3d, 0x4f, 0x73, 0x4b, 0x03, 0xda, 0xfa, 0xac,
+ 0x05, 0x54, 0xfe, 0x64, 0x03, 0x69, 0x68, 0x74, 0x4a, 0x9e, 0x9f, 0x82,
+ 0x82, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84,
+ 0x04, 0x7b, 0x00, 0x1a, 0x00, 0x23, 0x00, 0x00, 0x25, 0x15, 0x0e, 0x01,
+ 0x23, 0x22, 0x00, 0x11, 0x10, 0x00, 0x33, 0x32, 0x16, 0x17, 0x15, 0x26,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x11, 0x16, 0x33, 0x32, 0x37, 0x36, 0x25,
+ 0x11, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x03, 0x83, 0x45, 0x95,
+ 0x53, 0xe4, 0xfe, 0xf4, 0x01, 0x0f, 0xeb, 0x4d, 0x92, 0x44, 0x3e, 0x62,
+ 0x40, 0x43, 0x4f, 0x41, 0x3d, 0x49, 0x49, 0x41, 0x4e, 0xfe, 0x48, 0x27,
+ 0x21, 0x6e, 0x6e, 0x20, 0x8f, 0x64, 0x24, 0x24, 0x01, 0x3e, 0x01, 0x0e,
+ 0x01, 0x12, 0x01, 0x3a, 0x23, 0x23, 0x64, 0x1f, 0x18, 0x0f, 0x14, 0xfc,
+ 0x57, 0x13, 0x10, 0x13, 0x1b, 0x03, 0x53, 0x1a, 0x25, 0x80, 0xea, 0xe6,
+ 0x83, 0x26, 0x00, 0x00, 0x00, 0x04, 0x00, 0x85, 0xff, 0xe3, 0x04, 0x92,
+ 0x06, 0x14, 0x00, 0x0f, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x11, 0x21, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x02, 0x10,
+ 0x12, 0x33, 0x32, 0x16, 0x01, 0x14, 0x17, 0x16, 0x17, 0x16, 0x17, 0x11,
+ 0x06, 0x07, 0x06, 0x01, 0x11, 0x33, 0x11, 0x01, 0x11, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x03, 0x64,
+ 0x01, 0x2d, 0xfe, 0xd3, 0x34, 0x9f, 0x70, 0xb6, 0xe6, 0xe6, 0xb6, 0x70,
+ 0x9f, 0xfd, 0xb7, 0x0e, 0x14, 0x33, 0x28, 0x36, 0x36, 0x28, 0x55, 0x02,
+ 0xd7, 0x79, 0xfd, 0xc1, 0x16, 0x18, 0x94, 0x54, 0x56, 0x0d, 0x14, 0x45,
+ 0x44, 0x94, 0x18, 0x03, 0xb6, 0x02, 0x5e, 0xf9, 0xec, 0xa8, 0x64, 0x61,
+ 0x01, 0x44, 0x02, 0x10, 0x01, 0x44, 0x61, 0xfe, 0x5a, 0x9e, 0x4b, 0x73,
+ 0x4f, 0x3d, 0x20, 0x03, 0x86, 0x20, 0x3d, 0x82, 0x02, 0x9d, 0xfa, 0xac,
+ 0x05, 0x54, 0xfe, 0x64, 0xfc, 0x36, 0x03, 0x82, 0x82, 0x9f, 0x9e, 0x4a,
+ 0x74, 0x68, 0x69, 0x00, 0x00, 0x03, 0x00, 0x63, 0xff, 0xe3, 0x04, 0x0b,
+ 0x04, 0x7b, 0x00, 0x13, 0x00, 0x18, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x21,
+ 0x13, 0x16, 0x33, 0x32, 0x37, 0x15, 0x0e, 0x01, 0x23, 0x22, 0x00, 0x11,
+ 0x10, 0x00, 0x33, 0x32, 0x12, 0x15, 0x01, 0x06, 0x11, 0x12, 0x17, 0x13,
+ 0x21, 0x2e, 0x01, 0x23, 0x22, 0x07, 0x04, 0x0a, 0xfd, 0xca, 0x01, 0x43,
+ 0x56, 0xc3, 0xb0, 0x62, 0xb0, 0x60, 0xf1, 0xfe, 0xe6, 0x01, 0x0b, 0xe3,
+ 0xce, 0xea, 0xfd, 0x6c, 0xb2, 0x01, 0xb1, 0x5f, 0x01, 0xce, 0x03, 0xb8,
+ 0x98, 0x42, 0x3a, 0x02, 0x04, 0xfe, 0x62, 0x15, 0x5d, 0x75, 0x2d, 0x29,
+ 0x01, 0x38, 0x01, 0x0a, 0x01, 0x13, 0x01, 0x43, 0xfe, 0xda, 0xf7, 0x01,
+ 0x71, 0x7a, 0xfe, 0xdb, 0xfe, 0xf3, 0x8e, 0x01, 0xd3, 0xbe, 0xe7, 0x11,
+ 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x03, 0x80, 0x06, 0x14, 0x00, 0x0a,
+ 0x00, 0x20, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x15, 0x11, 0x33, 0x11,
+ 0x34, 0x37, 0x36, 0x25, 0x15, 0x23, 0x22, 0x07, 0x06, 0x1d, 0x01, 0x21,
+ 0x15, 0x21, 0x11, 0x21, 0x11, 0x23, 0x35, 0x33, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x01, 0xdc, 0x5d, 0x29, 0x33, 0x79, 0x14, 0x10, 0x01, 0xc0, 0x9d,
+ 0x85, 0x34, 0x34, 0x01, 0x5d, 0xfe, 0xa3, 0xfe, 0xd3, 0x9f, 0x9f, 0x4e,
+ 0x4f, 0xa9, 0x05, 0xae, 0x0a, 0x2d, 0x38, 0x91, 0xfb, 0xb6, 0x04, 0x4a,
+ 0x5f, 0x44, 0x38, 0x8b, 0x64, 0x39, 0x37, 0x92, 0x64, 0x64, 0xfc, 0x1a,
+ 0x03, 0xe6, 0x64, 0x64, 0xbc, 0x54, 0x56, 0x00, 0x00, 0x04, 0x00, 0x65,
+ 0xfe, 0x56, 0x04, 0x72, 0x04, 0x7b, 0x00, 0x07, 0x00, 0x23, 0x00, 0x2e,
+ 0x00, 0x3d, 0x00, 0x00, 0x01, 0x11, 0x14, 0x07, 0x16, 0x36, 0x19, 0x01,
+ 0x01, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x3d, 0x01, 0x0e, 0x01, 0x23,
+ 0x22, 0x02, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x21, 0x11, 0x10,
+ 0x00, 0x21, 0x22, 0x26, 0x03, 0x14, 0x17, 0x16, 0x17, 0x11, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x03, 0x9f, 0x5f, 0x04, 0xd4, 0xfc,
+ 0xc7, 0x49, 0x8e, 0x4a, 0xa3, 0xa2, 0x34, 0x9f, 0x70, 0xb7, 0xe5, 0xe5,
+ 0xb7, 0x70, 0x9f, 0x34, 0x01, 0x2d, 0xfe, 0xf3, 0xfe, 0xec, 0x67, 0xb5,
+ 0x6d, 0x54, 0x28, 0x36, 0x36, 0x28, 0x33, 0x14, 0x0d, 0x01, 0x10, 0x17,
+ 0x17, 0x95, 0x43, 0x46, 0x14, 0x0c, 0x55, 0x54, 0x95, 0x17, 0x17, 0x03,
+ 0xfa, 0xfc, 0x3d, 0xca, 0x8c, 0x05, 0x9d, 0x01, 0x12, 0x03, 0x6f, 0xfa,
+ 0x97, 0x80, 0x2c, 0x2a, 0xbd, 0xbf, 0x71, 0x64, 0x61, 0x01, 0x44, 0x02,
+ 0x10, 0x01, 0x44, 0x61, 0x64, 0xa8, 0xfc, 0x2d, 0xfe, 0xe2, 0xfe, 0xe9,
+ 0x1d, 0x03, 0x77, 0x9f, 0x82, 0x3d, 0x20, 0x03, 0x86, 0x20, 0x3d, 0x4f,
+ 0x73, 0x4b, 0xfd, 0xc2, 0x03, 0x69, 0x68, 0x74, 0x4a, 0x9e, 0x9f, 0x82,
+ 0x82, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc1,
+ 0x06, 0x14, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x22, 0x00, 0x00, 0x01, 0x16,
+ 0x17, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34, 0x27, 0x26, 0x01, 0x11, 0x33,
+ 0x11, 0x27, 0x21, 0x11, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x21,
+ 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x21, 0x03, 0x9a, 0x08,
+ 0x07, 0x40, 0x7e, 0x4b, 0x30, 0xfd, 0x15, 0x7a, 0xd4, 0x01, 0x2e, 0x42,
+ 0xb2, 0x74, 0xbf, 0xc5, 0xfe, 0xce, 0x61, 0x60, 0x73, 0x86, 0xfe, 0xd2,
+ 0x04, 0x0d, 0x0b, 0x0c, 0x68, 0xbe, 0xfd, 0x94, 0x02, 0x40, 0xc1, 0x5b,
+ 0x3a, 0x01, 0xb6, 0xfa, 0xb4, 0x05, 0x4c, 0x64, 0xfd, 0x9e, 0x65, 0x64,
+ 0xef, 0xe8, 0xfd, 0x5c, 0x02, 0xd0, 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x55,
+ 0x00, 0x03, 0x00, 0xcf, 0x00, 0x00, 0x01, 0xfd, 0x06, 0x14, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x03, 0x33,
+ 0x15, 0x23, 0x07, 0x21, 0x11, 0x21, 0x01, 0x29, 0x79, 0x90, 0xa7, 0xa7,
+ 0x43, 0x01, 0x2d, 0xfe, 0xd3, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0x02,
+ 0x18, 0xe9, 0xcb, 0xfb, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xdb,
+ 0xfe, 0x56, 0x01, 0xd8, 0x06, 0x14, 0x00, 0x08, 0x00, 0x16, 0x00, 0x1a,
+ 0x00, 0x00, 0x05, 0x11, 0x23, 0x11, 0x14, 0x07, 0x36, 0x37, 0x36, 0x07,
+ 0x23, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x21, 0x11, 0x14, 0x07,
+ 0x06, 0x03, 0x33, 0x15, 0x23, 0x01, 0x7e, 0x7a, 0x21, 0x40, 0x24, 0x37,
+ 0xdc, 0xc7, 0x2c, 0x61, 0x21, 0x21, 0x01, 0x2e, 0x49, 0x4a, 0x57, 0xa5,
+ 0xa5, 0x16, 0x04, 0x12, 0xfb, 0xd0, 0xb5, 0x54, 0x0f, 0x30, 0x48, 0xf4,
+ 0x64, 0x30, 0x31, 0x99, 0x04, 0xac, 0xfb, 0x8c, 0xd6, 0x60, 0x60, 0x07,
+ 0xbe, 0xe9, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xad,
+ 0x06, 0x14, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x00, 0x13, 0x21, 0x11, 0x01,
+ 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x21, 0x13, 0x11, 0x33, 0x11, 0xa7,
+ 0x01, 0x2e, 0x02, 0x43, 0x7e, 0xfd, 0x8e, 0x02, 0x89, 0x87, 0xfd, 0xaf,
+ 0xfe, 0xd2, 0x5a, 0x7a, 0x06, 0x14, 0xfc, 0x69, 0x01, 0xe3, 0xfd, 0xf6,
+ 0xfd, 0xaa, 0x02, 0x23, 0xfd, 0xdd, 0x05, 0xb0, 0xfa, 0xb4, 0x05, 0x4c,
+ 0x00, 0x02, 0x00, 0xcf, 0x00, 0x00, 0x02, 0xa0, 0x06, 0x14, 0x00, 0x08,
+ 0x00, 0x14, 0x00, 0x00, 0x01, 0x14, 0x17, 0x16, 0x17, 0x26, 0x35, 0x11,
+ 0x23, 0x13, 0x22, 0x27, 0x26, 0x35, 0x11, 0x21, 0x11, 0x14, 0x16, 0x33,
+ 0x15, 0x01, 0x29, 0x37, 0x24, 0x40, 0x22, 0x79, 0xdd, 0xa4, 0x4a, 0x49,
+ 0x01, 0x2d, 0x45, 0x5e, 0x01, 0x94, 0xa0, 0x48, 0x30, 0x0f, 0x54, 0xb5,
+ 0x04, 0x30, 0xfa, 0x5a, 0x60, 0x60, 0xd6, 0x04, 0x7e, 0xfb, 0x4a, 0x9c,
+ 0x5e, 0x64, 0x00, 0x00, 0x00, 0x04, 0x00, 0xa7, 0x00, 0x00, 0x07, 0xad,
+ 0x04, 0x7b, 0x00, 0x22, 0x00, 0x26, 0x00, 0x31, 0x00, 0x3c, 0x00, 0x00,
+ 0x13, 0x21, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x17, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x15, 0x11, 0x21, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x21, 0x11, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x21, 0x13,
+ 0x11, 0x33, 0x11, 0x25, 0x16, 0x17, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34,
+ 0x27, 0x26, 0x25, 0x16, 0x17, 0x16, 0x15, 0x11, 0x33, 0x11, 0x34, 0x27,
+ 0x26, 0xa7, 0x01, 0x2e, 0x42, 0xb2, 0x74, 0xbf, 0x8d, 0x18, 0x4c, 0xc8,
+ 0x74, 0xbf, 0xc5, 0xfe, 0xce, 0x61, 0x60, 0x73, 0x86, 0xfe, 0xce, 0x61,
+ 0x60, 0x73, 0x86, 0xfe, 0xd2, 0x5a, 0x7a, 0x02, 0x1f, 0x08, 0x07, 0x40,
+ 0x7e, 0x4b, 0x30, 0x02, 0x9a, 0x08, 0x07, 0x40, 0x7e, 0x4b, 0x30, 0x04,
+ 0x60, 0xae, 0x65, 0x64, 0xac, 0x4a, 0x80, 0x76, 0xef, 0xe8, 0xfd, 0x5c,
+ 0x02, 0xd0, 0x9f, 0x9e, 0xbe, 0xab, 0xfd, 0x5c, 0x02, 0xd0, 0x9f, 0x9e,
+ 0xbe, 0xa4, 0xfd, 0x55, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0x11, 0x0b,
+ 0x0c, 0x68, 0xbe, 0xfd, 0x94, 0x02, 0x40, 0xc1, 0x5b, 0x3a, 0x13, 0x0b,
+ 0x0c, 0x68, 0xbe, 0xfd, 0x94, 0x02, 0x40, 0xc1, 0x5b, 0x3a, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc1, 0x04, 0x7b, 0x00, 0x0a,
+ 0x00, 0x0e, 0x00, 0x22, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x15, 0x11,
+ 0x33, 0x11, 0x34, 0x27, 0x26, 0x25, 0x11, 0x33, 0x11, 0x27, 0x21, 0x15,
+ 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x11, 0x21, 0x11, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x15, 0x11, 0x21, 0x03, 0x9a, 0x08, 0x07, 0x40, 0x7e, 0x4b,
+ 0x30, 0xfd, 0x15, 0x7a, 0xd4, 0x01, 0x2e, 0x42, 0xb2, 0x74, 0xbf, 0xc5,
+ 0xfe, 0xce, 0x61, 0x60, 0x73, 0x86, 0xfe, 0xd2, 0x04, 0x0d, 0x0b, 0x0c,
+ 0x68, 0xbe, 0xfd, 0x94, 0x02, 0x40, 0xc1, 0x5b, 0x3a, 0x02, 0xfc, 0x68,
+ 0x03, 0x98, 0x64, 0xae, 0x65, 0x64, 0xef, 0xe8, 0xfd, 0x5c, 0x02, 0xd0,
+ 0x9f, 0x9e, 0xbe, 0xa4, 0xfd, 0x55, 0x00, 0x00, 0x00, 0x04, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x00, 0x0b, 0x00, 0x13, 0x00, 0x1b,
+ 0x00, 0x23, 0x00, 0x00, 0x01, 0x32, 0x12, 0x11, 0x10, 0x02, 0x23, 0x22,
+ 0x02, 0x11, 0x10, 0x12, 0x13, 0x16, 0x32, 0x37, 0x11, 0x26, 0x22, 0x07,
+ 0x03, 0x11, 0x06, 0x07, 0x06, 0x10, 0x17, 0x16, 0x01, 0x11, 0x36, 0x37,
+ 0x36, 0x10, 0x27, 0x26, 0x02, 0x34, 0xd8, 0xf7, 0xf7, 0xd8, 0xd9, 0xf5,
+ 0xf5, 0x75, 0x2e, 0x6c, 0x2e, 0x2e, 0x6c, 0x2e, 0x5a, 0x2e, 0x24, 0x64,
+ 0x64, 0x24, 0x01, 0xaa, 0x2e, 0x24, 0x65, 0x65, 0x24, 0x04, 0x7b, 0xfe,
+ 0xc8, 0xfe, 0xec, 0xfe, 0xed, 0xfe, 0xc7, 0x01, 0x39, 0x01, 0x13, 0x01,
+ 0x14, 0x01, 0x38, 0xfb, 0xd7, 0x0b, 0x0b, 0x03, 0xba, 0x0b, 0x0b, 0xfc,
+ 0x6b, 0x03, 0x70, 0x1d, 0x2d, 0x80, 0xfe, 0x24, 0x80, 0x2d, 0x03, 0x52,
+ 0xfc, 0x92, 0x1c, 0x2d, 0x81, 0x01, 0xdb, 0x80, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x72, 0x04, 0x7b, 0x00, 0x0f,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x00, 0x25, 0x11, 0x21, 0x11,
+ 0x21, 0x15, 0x3e, 0x01, 0x33, 0x32, 0x12, 0x10, 0x02, 0x23, 0x22, 0x26,
+ 0x01, 0x34, 0x27, 0x26, 0x27, 0x26, 0x27, 0x11, 0x36, 0x37, 0x36, 0x01,
+ 0x11, 0x23, 0x11, 0x01, 0x11, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x01, 0x92, 0xfe, 0xd4, 0x01, 0x2c,
+ 0x34, 0xa0, 0x6f, 0xb7, 0xe6, 0xe6, 0xb7, 0x6f, 0xa0, 0x02, 0x4a, 0x0e,
+ 0x14, 0x33, 0x28, 0x36, 0x36, 0x28, 0x55, 0xfd, 0x28, 0x78, 0x02, 0x3f,
+ 0x17, 0x17, 0x95, 0x53, 0x56, 0x0d, 0x14, 0x45, 0x43, 0x95, 0x17, 0xa8,
+ 0xfd, 0xae, 0x06, 0x08, 0xa8, 0x64, 0x61, 0xfe, 0xbc, 0xfd, 0xf0, 0xfe,
+ 0xbc, 0x61, 0x01, 0xa6, 0x9e, 0x4b, 0x73, 0x4f, 0x3d, 0x20, 0xfc, 0x7a,
+ 0x20, 0x3d, 0x82, 0xfd, 0x6f, 0x05, 0x48, 0xfa, 0xb8, 0x01, 0x90, 0x03,
+ 0xca, 0x03, 0x82, 0x82, 0x9f, 0x9e, 0x4a, 0x74, 0x68, 0x69, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x65, 0xfe, 0x56, 0x04, 0x72, 0x04, 0x7b, 0x00, 0x0f,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x00, 0x25, 0x0e, 0x01, 0x23,
+ 0x22, 0x02, 0x10, 0x12, 0x33, 0x32, 0x16, 0x17, 0x35, 0x21, 0x11, 0x21,
+ 0x01, 0x14, 0x17, 0x16, 0x17, 0x11, 0x06, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x33, 0x11, 0x23, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x03, 0x45, 0x34, 0x9f, 0x70, 0xb7,
+ 0xe5, 0xe5, 0xb7, 0x70, 0x9f, 0x34, 0x01, 0x2d, 0xfe, 0xd3, 0xfd, 0x83,
+ 0x54, 0x28, 0x36, 0x36, 0x28, 0x33, 0x14, 0x0d, 0x02, 0xd7, 0x79, 0x79,
+ 0xfe, 0x39, 0x17, 0x17, 0x95, 0x43, 0x46, 0x14, 0x0c, 0x55, 0x54, 0x95,
+ 0x17, 0x17, 0xa8, 0x64, 0x61, 0x01, 0x44, 0x02, 0x10, 0x01, 0x44, 0x61,
+ 0x64, 0xa8, 0xf9, 0xf8, 0x03, 0x94, 0x9f, 0x82, 0x3d, 0x20, 0x03, 0x86,
+ 0x20, 0x3d, 0x4f, 0x73, 0x4b, 0xfc, 0x32, 0x05, 0x48, 0xfc, 0x48, 0x03,
+ 0x69, 0x68, 0x74, 0x4a, 0x9e, 0x9f, 0x82, 0x82, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x03, 0x7c, 0x04, 0x7b, 0x00, 0x03,
+ 0x00, 0x15, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x27, 0x21, 0x15, 0x3e,
+ 0x01, 0x33, 0x32, 0x1f, 0x01, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15,
+ 0x11, 0x21, 0x01, 0x01, 0x79, 0xd3, 0x01, 0x2d, 0x34, 0xa8, 0x77, 0x19,
+ 0x0d, 0x2f, 0x1c, 0x42, 0x27, 0x8d, 0x96, 0xfe, 0xd3, 0x03, 0xfc, 0xfc,
+ 0x68, 0x03, 0x98, 0x64, 0xae, 0x66, 0x63, 0x03, 0x07, 0x85, 0x12, 0x11,
+ 0xcb, 0xbe, 0xfd, 0x7a, 0x00, 0x02, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67,
+ 0x04, 0x7b, 0x00, 0x1d, 0x00, 0x45, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2f, 0x01, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x03, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2f,
+ 0x01, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x01, 0x45, 0x23, 0x19, 0x44, 0x22,
+ 0x23, 0x66, 0x2f, 0x94, 0x37, 0x3c, 0x22, 0x22, 0x1a, 0x4c, 0x26, 0x2a,
+ 0x77, 0x2d, 0x82, 0x33, 0x40, 0xbe, 0x4b, 0x90, 0x47, 0x5f, 0x66, 0x45,
+ 0x82, 0x2f, 0x81, 0x6a, 0xca, 0xb9, 0x5c, 0xa2, 0x44, 0x42, 0x53, 0x56,
+ 0x63, 0x65, 0x48, 0x6c, 0x2e, 0x91, 0x76, 0xde, 0xc2, 0x51, 0xb0, 0x61,
+ 0x03, 0xf9, 0x0f, 0x17, 0x3d, 0x76, 0x66, 0x30, 0x33, 0x22, 0x10, 0x33,
+ 0x3b, 0x40, 0x7b, 0x52, 0x3f, 0x10, 0x17, 0x42, 0x73, 0x6c, 0x33, 0x37,
+ 0x27, 0x0f, 0x2a, 0x37, 0x43, 0x6f, 0x54, 0xfc, 0xfe, 0x37, 0x38, 0x5e,
+ 0x55, 0x4e, 0x4f, 0x2c, 0x10, 0x2c, 0x97, 0x88, 0xa6, 0xb5, 0x20, 0x1f,
+ 0x7a, 0x31, 0x24, 0x59, 0x58, 0x44, 0x4c, 0x23, 0x0f, 0x2f, 0x9e, 0x90,
+ 0xa4, 0xc0, 0x25, 0x25, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x03, 0x2e,
+ 0x05, 0x9e, 0x00, 0x07, 0x00, 0x1b, 0x00, 0x00, 0x25, 0x26, 0x37, 0x11,
+ 0x23, 0x11, 0x06, 0x16, 0x13, 0x11, 0x21, 0x15, 0x21, 0x11, 0x14, 0x16,
+ 0x3b, 0x01, 0x15, 0x21, 0x22, 0x26, 0x35, 0x11, 0x23, 0x35, 0x33, 0x11,
+ 0x01, 0xa2, 0x26, 0x02, 0x79, 0x01, 0x53, 0x81, 0x01, 0x56, 0xfe, 0xaa,
+ 0x44, 0x68, 0xaa, 0xfe, 0xce, 0xbf, 0x92, 0x79, 0x79, 0x6a, 0x55, 0x7c,
+ 0x03, 0xff, 0xfc, 0x37, 0xad, 0x4e, 0x05, 0x28, 0xfe, 0xac, 0x64, 0xfd,
+ 0x55, 0x89, 0x4e, 0x64, 0x9f, 0xd2, 0x02, 0x75, 0x64, 0x01, 0x54, 0x00,
+ 0x00, 0x03, 0x00, 0x9f, 0xff, 0xe5, 0x04, 0xbe, 0x04, 0x60, 0x00, 0x0a,
+ 0x00, 0x0e, 0x00, 0x22, 0x00, 0x00, 0x25, 0x26, 0x27, 0x26, 0x35, 0x11,
+ 0x23, 0x11, 0x14, 0x17, 0x16, 0x05, 0x11, 0x23, 0x11, 0x17, 0x21, 0x35,
+ 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x11, 0x21, 0x11, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x11, 0x21, 0x01, 0xc6, 0x08, 0x07, 0x40, 0x7e, 0x4b,
+ 0x30, 0x02, 0xef, 0x79, 0xd3, 0xfe, 0xce, 0x41, 0xb3, 0x74, 0xbf, 0xc5,
+ 0x01, 0x32, 0x61, 0x60, 0x73, 0x86, 0x01, 0x32, 0x53, 0x0b, 0x0c, 0x68,
+ 0xbe, 0x02, 0x6c, 0xfd, 0xc0, 0xc1, 0x5b, 0x3a, 0x02, 0x03, 0x98, 0xfc,
+ 0x68, 0x64, 0xae, 0x65, 0x64, 0xef, 0xe8, 0x02, 0xa4, 0xfd, 0x30, 0x9f,
+ 0x9e, 0xbe, 0xa4, 0x02, 0xab, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x36,
+ 0x00, 0x00, 0x04, 0x39, 0x04, 0x60, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x00,
+ 0x13, 0x01, 0x33, 0x01, 0x27, 0x21, 0x09, 0x01, 0x33, 0x01, 0x21, 0xb8,
+ 0x01, 0x37, 0x76, 0xfe, 0xc6, 0xf4, 0x01, 0x32, 0x01, 0x3b, 0x01, 0x3b,
+ 0x5a, 0xfe, 0x86, 0xfe, 0xf2, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0x64,
+ 0xfc, 0x54, 0x03, 0xac, 0xfb, 0xa0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x4d,
+ 0x00, 0x00, 0x06, 0x41, 0x04, 0x60, 0x00, 0x03, 0x00, 0x07, 0x00, 0x14,
+ 0x00, 0x00, 0x01, 0x13, 0x33, 0x03, 0x21, 0x13, 0x33, 0x03, 0x27, 0x21,
+ 0x1b, 0x01, 0x21, 0x1b, 0x01, 0x33, 0x01, 0x21, 0x0b, 0x01, 0x21, 0x03,
+ 0x8c, 0xd8, 0x7a, 0xda, 0xfc, 0xbe, 0xd8, 0x7a, 0xda, 0xed, 0x01, 0x32,
+ 0xcf, 0xce, 0x01, 0x2d, 0xcf, 0xce, 0x5a, 0xfe, 0xf8, 0xfe, 0xea, 0xd9,
+ 0xda, 0xfe, 0xe6, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0xfc, 0x68, 0x03,
+ 0x98, 0x64, 0xfc, 0x96, 0x03, 0x6a, 0xfc, 0x96, 0x03, 0x6a, 0xfb, 0xa0,
+ 0x03, 0x96, 0xfc, 0x6a, 0x00, 0x02, 0x00, 0x44, 0x00, 0x00, 0x04, 0x9a,
+ 0x04, 0x60, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x13, 0x01, 0x33, 0x01,
+ 0x25, 0x21, 0x09, 0x01, 0x33, 0x09, 0x01, 0x21, 0x09, 0x01, 0x23, 0x01,
+ 0xf8, 0x02, 0x66, 0x88, 0xfd, 0x99, 0xfe, 0xc5, 0x01, 0x68, 0x01, 0x01,
+ 0x01, 0x00, 0x70, 0xfe, 0xc8, 0x01, 0xb4, 0xfe, 0x98, 0xff, 0x00, 0xfe,
+ 0xff, 0x6f, 0x01, 0x38, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0x64, 0xfe,
+ 0x81, 0x01, 0x7f, 0xfe, 0x2d, 0xfd, 0x73, 0x01, 0x7f, 0xfe, 0x81, 0x01,
+ 0xd3, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x4a,
+ 0x04, 0x60, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x13, 0x01, 0x37, 0x01,
+ 0x27, 0x21, 0x09, 0x01, 0x33, 0x01, 0x0e, 0x01, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x36, 0x37, 0xbd, 0x01, 0x87, 0x37, 0xfe, 0xba, 0xfe, 0x01, 0x3b,
+ 0x01, 0x3a, 0x01, 0x3c, 0x61, 0xfe, 0x45, 0x48, 0x83, 0x70, 0x84, 0x84,
+ 0x4f, 0x49, 0x27, 0x03, 0xfc, 0xfb, 0xdb, 0x99, 0x03, 0x8c, 0x64, 0xfc,
+ 0x97, 0x03, 0x69, 0xfb, 0x38, 0xc7, 0x7b, 0x64, 0x43, 0x59, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x4f, 0x00, 0x00, 0x03, 0xf2, 0x04, 0x60, 0x00, 0x03,
+ 0x00, 0x0d, 0x00, 0x00, 0x09, 0x01, 0x33, 0x01, 0x25, 0x21, 0x15, 0x01,
+ 0x21, 0x15, 0x21, 0x35, 0x01, 0x21, 0x03, 0x06, 0xfd, 0xb7, 0x7e, 0x02,
+ 0x49, 0xfc, 0xe2, 0x03, 0x8c, 0xfd, 0xb8, 0x02, 0x48, 0xfc, 0x5d, 0x02,
+ 0x48, 0xfd, 0xcf, 0x03, 0xfc, 0xfc, 0x68, 0x03, 0x98, 0x64, 0x64, 0xfc,
+ 0x68, 0x64, 0x64, 0x03, 0x98, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x24, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x6e, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x25, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x04, 0xa4,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x26, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x1f, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x27, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0x17, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x28, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xba,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67,
+ 0xff, 0xe3, 0x04, 0xfe, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x2a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xb6, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87, 0x00, 0x00, 0x02, 0xab,
+ 0x05, 0xd5, 0x10, 0x06, 0x11, 0x48, 0x00, 0x00, 0xff, 0xff, 0xff, 0xa0,
+ 0xfe, 0x66, 0x01, 0x6b, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x2d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xe0, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x2e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x03, 0xf9,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x05, 0x83, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x30, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xae, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x31, 0x00, 0x00, 0xff, 0xff, 0x00, 0x67, 0xff, 0xe3, 0x05, 0x44,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x32, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4,
+ 0x00, 0x00, 0x04, 0x19, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x67, 0xfe, 0xf8, 0x05, 0x44, 0x05, 0xf0, 0x10, 0x06,
+ 0x00, 0x34, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb4, 0x00, 0x00, 0x04, 0xcc,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x35, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x2c, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x36, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x04, 0x6c, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x37, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa0, 0xff, 0xe3, 0x04, 0xa5,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x38, 0x00, 0x00, 0xff, 0xff, 0x00, 0x0e,
+ 0x00, 0x00, 0x04, 0xde, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x3d, 0x00, 0x00, 0x06, 0xe3, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x3a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0xb6,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfc,
+ 0x00, 0x00, 0x04, 0x6a, 0x05, 0xd5, 0x10, 0x06, 0x00, 0x3c, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x52, 0x00, 0x00, 0x04, 0x9c, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x6e, 0xff, 0xe3, 0x03, 0xc3,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x44, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0xff, 0xe3, 0x04, 0x2e, 0x06, 0x14, 0x10, 0x06, 0x00, 0x45, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0x84, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x46, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x03, 0xeb,
+ 0x06, 0x14, 0x10, 0x06, 0x00, 0x47, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x0c, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x48, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x2a, 0x00, 0x00, 0x02, 0xac, 0x06, 0x14, 0x10, 0x06,
+ 0x00, 0x49, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xfe, 0x56, 0x03, 0xeb,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x4a, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x06, 0x14, 0x10, 0x06, 0x00, 0x4b, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x01, 0x54, 0x06, 0x14, 0x10, 0x06,
+ 0x00, 0x4c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xde, 0xfe, 0x56, 0x01, 0x54,
+ 0x06, 0x14, 0x10, 0x06, 0x00, 0x4d, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0x26, 0x06, 0x14, 0x10, 0x06, 0x00, 0x4e, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xad, 0x00, 0x00, 0x02, 0x01, 0x06, 0x14, 0x10, 0x06,
+ 0x11, 0x3e, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x06, 0x67,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x50, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7,
+ 0x00, 0x00, 0x03, 0xf4, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x51, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x03, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0xa7, 0xfe, 0x56, 0x04, 0x2e,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65,
+ 0xfe, 0x56, 0x03, 0xeb, 0x04, 0x7b, 0x10, 0x06, 0x00, 0x54, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xa7, 0x00, 0x00, 0x02, 0xf6, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x55, 0x00, 0x00, 0xff, 0xff, 0x00, 0x63, 0xff, 0xe3, 0x03, 0x67,
+ 0x04, 0x7b, 0x10, 0x06, 0x00, 0x56, 0x00, 0x00, 0xff, 0xff, 0x00, 0x31,
+ 0x00, 0x00, 0x02, 0xa7, 0x05, 0x9e, 0x10, 0x06, 0x00, 0x57, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x9c, 0xff, 0xe3, 0x03, 0xe9, 0x04, 0x7b, 0x10, 0x06,
+ 0x00, 0x58, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0x00, 0x00, 0x04, 0x0c,
+ 0x04, 0x60, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4d,
+ 0x00, 0x00, 0x05, 0x97, 0x04, 0x60, 0x10, 0x06, 0x00, 0x5a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x35, 0x00, 0x00, 0x04, 0x07, 0x04, 0x60, 0x10, 0x06,
+ 0x00, 0x5b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x36, 0xfe, 0x56, 0x04, 0x0c,
+ 0x04, 0x60, 0x10, 0x06, 0x00, 0x5c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4f,
+ 0x00, 0x00, 0x03, 0x79, 0x04, 0x60, 0x10, 0x06, 0x00, 0x5d, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x7a, 0xff, 0xe3, 0x04, 0x1c, 0x05, 0xf0, 0x00, 0x07,
+ 0x00, 0x0c, 0x00, 0x14, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x12, 0x10,
+ 0x02, 0x20, 0x02, 0x10, 0x01, 0x36, 0x11, 0x10, 0x2f, 0x01, 0x26, 0x22,
+ 0x07, 0x11, 0x16, 0x32, 0x37, 0x01, 0x06, 0x11, 0x10, 0x17, 0x01, 0x68,
+ 0x01, 0xc4, 0xef, 0xef, 0xfe, 0x3c, 0xee, 0x02, 0x90, 0xb7, 0xb7, 0x5a,
+ 0x2e, 0x6f, 0x2f, 0x2f, 0x6f, 0x2e, 0xfe, 0xda, 0xb6, 0xb6, 0x05, 0xf0,
+ 0xfe, 0x73, 0xfd, 0x0d, 0xfe, 0x73, 0x01, 0x8d, 0x02, 0xf3, 0xfc, 0x23,
+ 0x8f, 0x01, 0xd4, 0x01, 0xd5, 0x8f, 0x30, 0x0f, 0x0f, 0xfa, 0xd9, 0x0f,
+ 0x0f, 0x04, 0xf7, 0x90, 0xfe, 0x2c, 0xfe, 0x2d, 0x90, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x04, 0x35, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x0e, 0x00, 0x00, 0x01, 0x11, 0x33, 0x11, 0x37, 0x11, 0x21, 0x15,
+ 0x21, 0x35, 0x21, 0x11, 0x05, 0x35, 0x25, 0x01, 0xfd, 0xb6, 0x58, 0x01,
+ 0x29, 0xfc, 0x46, 0x01, 0x29, 0xfe, 0xbd, 0x01, 0x43, 0x05, 0x71, 0xfa,
+ 0xf3, 0x05, 0x0d, 0x64, 0xfa, 0x8f, 0x64, 0x64, 0x05, 0x0d, 0x48, 0x64,
+ 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x04, 0x25,
+ 0x05, 0xf0, 0x00, 0x10, 0x00, 0x28, 0x00, 0x00, 0x37, 0x33, 0x01, 0x36,
+ 0x37, 0x36, 0x10, 0x27, 0x26, 0x27, 0x17, 0x16, 0x15, 0x14, 0x0e, 0x01,
+ 0x0b, 0x01, 0x36, 0x33, 0x32, 0x04, 0x15, 0x14, 0x0e, 0x01, 0x07, 0x03,
+ 0x21, 0x15, 0x21, 0x37, 0x36, 0x00, 0x37, 0x36, 0x10, 0x26, 0x23, 0x22,
+ 0x07, 0xe2, 0xe6, 0x01, 0x0c, 0x56, 0x1f, 0x44, 0x61, 0x3d, 0x59, 0x03,
+ 0x51, 0x3e, 0x75, 0xbc, 0xfd, 0xe9, 0xa3, 0xdb, 0x01, 0x02, 0x2b, 0x49,
+ 0x54, 0xec, 0x01, 0xf1, 0xfc, 0x51, 0x01, 0x02, 0x01, 0x74, 0x37, 0x6d,
+ 0x79, 0x63, 0x88, 0xae, 0x64, 0x01, 0xcd, 0x95, 0x40, 0x8f, 0x01, 0x39,
+ 0x5c, 0x39, 0x18, 0x04, 0x70, 0xa8, 0x64, 0xba, 0xcf, 0xfe, 0xdd, 0x04,
+ 0x39, 0x68, 0xf4, 0xcc, 0x62, 0xac, 0x96, 0x91, 0xfe, 0x69, 0x64, 0x64,
+ 0x05, 0x02, 0x41, 0x62, 0xbf, 0x01, 0x19, 0xa8, 0x95, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x8c, 0xff, 0xe3, 0x04, 0x02, 0x05, 0xf0, 0x00, 0x24,
+ 0x00, 0x2a, 0x00, 0x30, 0x00, 0x00, 0x05, 0x22, 0x27, 0x35, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x11, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x11,
+ 0x26, 0x23, 0x22, 0x0f, 0x01, 0x35, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x07, 0x1e, 0x01, 0x15, 0x14, 0x04, 0x35, 0x36, 0x35, 0x34, 0x26,
+ 0x27, 0x19, 0x01, 0x3e, 0x01, 0x35, 0x34, 0x01, 0xf4, 0xa9, 0xbf, 0x1e,
+ 0xb0, 0x9a, 0x5a, 0x48, 0x31, 0x39, 0xb7, 0xbe, 0x35, 0x2e, 0x35, 0x44,
+ 0x8d, 0xc3, 0x18, 0xcf, 0x9d, 0xcf, 0xf2, 0x7f, 0x73, 0x7f, 0x92, 0xfe,
+ 0xef, 0xb7, 0x69, 0x4e, 0x3e, 0x5a, 0x1d, 0x4a, 0x6a, 0x0c, 0x44, 0x10,
+ 0x02, 0x95, 0x0a, 0x64, 0x08, 0x02, 0x20, 0x0a, 0x3c, 0x08, 0x68, 0x40,
+ 0xd1, 0xb2, 0x7c, 0xaa, 0x21, 0x1f, 0xc5, 0x90, 0xdd, 0xf2, 0x92, 0x55,
+ 0xe8, 0x6c, 0x8d, 0x24, 0x02, 0x96, 0xfe, 0x1a, 0x1d, 0x79, 0x58, 0xac,
+ 0x00, 0x03, 0x00, 0x51, 0x00, 0x00, 0x04, 0x40, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x11, 0x00, 0x00, 0x01, 0x23, 0x13, 0x33, 0x09, 0x01,
+ 0x21, 0x03, 0x21, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x11, 0x21, 0x35,
+ 0x03, 0x4a, 0xb7, 0x03, 0xb4, 0xfe, 0xf2, 0xfe, 0x7c, 0x01, 0x84, 0x03,
+ 0x01, 0x6b, 0x9b, 0x9b, 0xfe, 0x98, 0xfe, 0x15, 0x05, 0x71, 0xfa, 0xf3,
+ 0x04, 0xc1, 0xfc, 0xe3, 0x03, 0xcd, 0xfc, 0x33, 0x64, 0xfe, 0x5c, 0x01,
+ 0xa4, 0x7f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x85, 0xff, 0xe3, 0x04, 0x18,
+ 0x05, 0xd5, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1e, 0x00, 0x00, 0x01, 0x11,
+ 0x23, 0x11, 0x36, 0x01, 0x36, 0x10, 0x27, 0x03, 0x11, 0x26, 0x23, 0x22,
+ 0x07, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1e, 0x01, 0x10, 0x04, 0x21, 0x22,
+ 0x27, 0x35, 0x16, 0x33, 0x32, 0x01, 0xcc, 0xb4, 0x5d, 0x01, 0x8a, 0xb7,
+ 0xb7, 0x5a, 0x2c, 0x60, 0xa2, 0xb9, 0x02, 0xf7, 0xfe, 0x71, 0xf6, 0xfc,
+ 0xfe, 0xf2, 0xfe, 0xdd, 0xa7, 0xbb, 0xaa, 0xc6, 0x74, 0x03, 0x91, 0x01,
+ 0xe0, 0xfd, 0xfd, 0x1b, 0xfc, 0xe6, 0x5c, 0x01, 0xdc, 0x60, 0xfd, 0x49,
+ 0x02, 0xd7, 0x0a, 0x4b, 0x02, 0xef, 0x64, 0xfe, 0x23, 0x09, 0xf5, 0xfe,
+ 0x46, 0xf9, 0x3c, 0x88, 0x64, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x65,
+ 0xff, 0xe3, 0x04, 0x33, 0x05, 0xf0, 0x00, 0x04, 0x00, 0x09, 0x00, 0x11,
+ 0x00, 0x25, 0x00, 0x00, 0x25, 0x36, 0x11, 0x10, 0x27, 0x01, 0x06, 0x11,
+ 0x10, 0x1f, 0x01, 0x16, 0x32, 0x37, 0x11, 0x26, 0x22, 0x07, 0x13, 0x32,
+ 0x17, 0x15, 0x27, 0x26, 0x20, 0x07, 0x11, 0x36, 0x33, 0x32, 0x12, 0x10,
+ 0x02, 0x23, 0x20, 0x02, 0x10, 0x00, 0x03, 0x23, 0xb6, 0xb6, 0xfe, 0x55,
+ 0xb8, 0xb8, 0x5a, 0x34, 0x9a, 0x29, 0x24, 0x9a, 0x39, 0xdc, 0x96, 0x97,
+ 0x1e, 0x8a, 0xfe, 0xf4, 0x55, 0x3c, 0x5d, 0xdd, 0xeb, 0xf5, 0xde, 0xfe,
+ 0xfc, 0xf6, 0x01, 0x2e, 0x70, 0x63, 0x01, 0x0c, 0x01, 0x18, 0x5c, 0x01,
+ 0xca, 0xb3, 0xfe, 0x91, 0xfe, 0x23, 0x95, 0x32, 0x10, 0x08, 0x03, 0x22,
+ 0x06, 0x13, 0x02, 0x8c, 0x3c, 0x6a, 0x0c, 0x36, 0x2d, 0xfe, 0x66, 0x16,
+ 0xfe, 0xef, 0xfe, 0x2f, 0xfe, 0xea, 0x01, 0x8d, 0x02, 0xdb, 0x01, 0xa5,
+ 0x00, 0x02, 0x00, 0x3a, 0x00, 0x00, 0x04, 0x5b, 0x05, 0xd5, 0x00, 0x03,
+ 0x00, 0x0a, 0x00, 0x00, 0x09, 0x01, 0x33, 0x01, 0x25, 0x21, 0x15, 0x01,
+ 0x21, 0x01, 0x21, 0x03, 0x39, 0xfe, 0x3f, 0xc1, 0x01, 0xc1, 0xfc, 0x40,
+ 0x04, 0x20, 0xfe, 0x1d, 0xfe, 0x7e, 0x01, 0xe4, 0xfd, 0x61, 0x05, 0x71,
+ 0xfa, 0xf3, 0x05, 0x0d, 0x64, 0x64, 0xfa, 0x8f, 0x05, 0x71, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x7d, 0xff, 0xe3, 0x04, 0x17, 0x05, 0xf0, 0x00, 0x04,
+ 0x00, 0x0c, 0x00, 0x24, 0x00, 0x29, 0x00, 0x31, 0x00, 0x39, 0x00, 0x41,
+ 0x00, 0x00, 0x25, 0x36, 0x27, 0x26, 0x27, 0x00, 0x10, 0x17, 0x16, 0x17,
+ 0x11, 0x06, 0x07, 0x13, 0x35, 0x2e, 0x01, 0x35, 0x34, 0x36, 0x20, 0x16,
+ 0x15, 0x14, 0x06, 0x07, 0x15, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x20, 0x26,
+ 0x35, 0x34, 0x36, 0x13, 0x11, 0x06, 0x07, 0x06, 0x05, 0x16, 0x32, 0x37,
+ 0x11, 0x26, 0x22, 0x07, 0x19, 0x01, 0x16, 0x32, 0x37, 0x11, 0x26, 0x22,
+ 0x17, 0x11, 0x36, 0x37, 0x36, 0x10, 0x27, 0x26, 0x03, 0x02, 0xbc, 0x06,
+ 0x06, 0xb0, 0xfd, 0xf5, 0x55, 0x1e, 0x27, 0x27, 0x1d, 0x44, 0x73, 0x81,
+ 0xe5, 0x01, 0x91, 0xe4, 0x81, 0x74, 0x83, 0x92, 0xef, 0xfe, 0x44, 0xef,
+ 0x93, 0x81, 0xaf, 0x06, 0x07, 0x01, 0x16, 0x2d, 0x64, 0x2c, 0x2c, 0x64,
+ 0x2d, 0x2c, 0x66, 0x2b, 0x2b, 0x66, 0xeb, 0x28, 0x1d, 0x56, 0x55, 0x1e,
+ 0x64, 0x4a, 0xea, 0xe4, 0x4e, 0x02, 0x27, 0xfe, 0xf8, 0x4d, 0x1b, 0x12,
+ 0x01, 0xfc, 0x12, 0x1b, 0xfd, 0xdc, 0x02, 0x20, 0xb1, 0x80, 0xb3, 0xd0,
+ 0xd0, 0xb3, 0x80, 0xb1, 0x20, 0x01, 0x23, 0xc5, 0x8f, 0xd9, 0xe8, 0xe8,
+ 0xd9, 0x8f, 0xc5, 0xfd, 0x6c, 0x02, 0x66, 0x4e, 0xe4, 0xea, 0x61, 0x06,
+ 0x06, 0x02, 0x96, 0x07, 0x07, 0x02, 0xa2, 0xfd, 0xd0, 0x07, 0x07, 0x02,
+ 0x30, 0x07, 0x21, 0xfe, 0x04, 0x12, 0x1b, 0x4d, 0x01, 0x08, 0x4d, 0x1b,
+ 0x00, 0x04, 0x00, 0x5f, 0xff, 0xe3, 0x04, 0x2d, 0x05, 0xf0, 0x00, 0x04,
+ 0x00, 0x09, 0x00, 0x11, 0x00, 0x25, 0x00, 0x00, 0x01, 0x06, 0x11, 0x10,
+ 0x17, 0x01, 0x36, 0x11, 0x10, 0x2f, 0x01, 0x26, 0x22, 0x07, 0x11, 0x16,
+ 0x32, 0x37, 0x03, 0x22, 0x27, 0x35, 0x17, 0x16, 0x20, 0x37, 0x11, 0x06,
+ 0x23, 0x22, 0x02, 0x10, 0x12, 0x33, 0x20, 0x12, 0x10, 0x00, 0x01, 0x6f,
+ 0xb6, 0xb6, 0x01, 0xab, 0xb8, 0xb8, 0x5a, 0x34, 0x9a, 0x29, 0x24, 0x9a,
+ 0x39, 0xdc, 0x96, 0x97, 0x1e, 0x8a, 0x01, 0x0c, 0x55, 0x3c, 0x5d, 0xdd,
+ 0xeb, 0xf5, 0xde, 0x01, 0x04, 0xf6, 0xfe, 0xd2, 0x05, 0x63, 0x63, 0xfe,
+ 0xf4, 0xfe, 0xe8, 0x5c, 0xfe, 0x36, 0xb3, 0x01, 0x6f, 0x01, 0xdd, 0x95,
+ 0x32, 0x10, 0x08, 0xfc, 0xde, 0x06, 0x13, 0xfd, 0x74, 0x3c, 0x6a, 0x0c,
+ 0x36, 0x2d, 0x01, 0x9a, 0x16, 0x01, 0x11, 0x01, 0xd1, 0x01, 0x16, 0xfe,
+ 0x73, 0xfd, 0x25, 0xfe, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x79,
+ 0xff, 0xe3, 0x04, 0x1b, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x13, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xca, 0x00, 0x00, 0x03, 0xeb, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x14, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87, 0x00, 0x00, 0x03, 0xdd,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x15, 0x00, 0x00, 0xff, 0xff, 0x00, 0x8c,
+ 0xff, 0xe3, 0x04, 0x02, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x16, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x5a, 0x00, 0x00, 0x04, 0x2e, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x17, 0x00, 0x00, 0xff, 0xff, 0x00, 0x8e, 0xff, 0xe3, 0x03, 0xf4,
+ 0x05, 0xd5, 0x10, 0x06, 0x00, 0x18, 0x00, 0x00, 0xff, 0xff, 0x00, 0x80,
+ 0xff, 0xe3, 0x04, 0x21, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x19, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x97, 0x00, 0x00, 0x03, 0xf8, 0x05, 0xd5, 0x10, 0x06,
+ 0x00, 0x1a, 0x00, 0x00, 0xff, 0xff, 0x00, 0x7d, 0xff, 0xe3, 0x04, 0x17,
+ 0x05, 0xf0, 0x10, 0x06, 0x00, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x00, 0x74,
+ 0xff, 0xe3, 0x04, 0x14, 0x05, 0xf0, 0x10, 0x06, 0x00, 0x1c, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x11, 0x23, 0x01, 0x11, 0x21, 0x11,
+ 0x04, 0xa9, 0x7f, 0x7f, 0xfc, 0x0b, 0x08, 0x6a, 0x01, 0x5f, 0x02, 0xc3,
+ 0xfc, 0x24, 0x04, 0xf5, 0xfb, 0x0b, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x37, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0xb4, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x46,
+ 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3,
+ 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x00,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x06,
+ 0x78, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb,
+ 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x38, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x07, 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15,
+ 0xfd, 0xfe, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21,
+ 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08,
+ 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x01, 0x3f, 0x10, 0x10, 0x1b,
+ 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10,
+ 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x06, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11,
+ 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x07, 0xd2,
+ 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe, 0xec, 0x20, 0x15, 0x17,
+ 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x01, 0x3f,
+ 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11, 0x1b,
+ 0x17, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48, 0x19,
+ 0x1a, 0x12, 0x0f, 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc,
+ 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02,
+ 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x07, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b,
+ 0x00, 0x5f, 0x00, 0x63, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11,
+ 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x05, 0x8a,
+ 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01,
+ 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x03, 0xcc, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25,
+ 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x57, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x00,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x05, 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f,
+ 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20,
+ 0x22, 0x15, 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0xee, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08,
+ 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x03, 0xcc, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8,
+ 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3,
+ 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0x00, 0x01, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x02, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x06, 0xe0, 0x20, 0x15, 0x17, 0x11,
+ 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xeb, 0x42,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18,
+ 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0x02, 0x19, 0x42, 0x14, 0x17, 0x11,
+ 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d,
+ 0x0f, 0x19, 0x15, 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18,
+ 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0xfd, 0xbe, 0x42,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18,
+ 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0xfa, 0xb3, 0x08, 0x6a, 0x7f, 0xf8,
+ 0x94, 0x03, 0x76, 0x7f, 0x03, 0x52, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10,
+ 0xfd, 0xef, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24,
+ 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd,
+ 0xde, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11,
+ 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18,
+ 0x19, 0x13, 0xfc, 0xe3, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc,
+ 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1d,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x02, 0x83, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0xfe, 0x31,
+ 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d,
+ 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38, 0x00, 0x00, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x02, 0x84, 0x0f, 0x0e, 0x19,
+ 0x14, 0x43, 0x15, 0x16, 0x11, 0x0f, 0x0f, 0x0f, 0x18, 0x16, 0x41, 0x15,
+ 0x18, 0x0f, 0x0f, 0x03, 0xf4, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16,
+ 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e,
+ 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x02, 0xc3,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb,
+ 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2c, 0x00, 0x42,
+ 0x00, 0x46, 0x00, 0x4a, 0x00, 0x4e, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x02, 0x83, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16,
+ 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x05,
+ 0x4f, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfd, 0xfe, 0x20, 0x16,
+ 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0xfe, 0xa1, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10,
+ 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18,
+ 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d,
+ 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2c, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x02, 0x83, 0x0e, 0x0f, 0x18, 0x14,
+ 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18,
+ 0x0f, 0x0e, 0x05, 0x4f, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe,
+ 0xec, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18,
+ 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfe,
+ 0xa1, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11,
+ 0x1b, 0x17, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48,
+ 0x19, 0x1a, 0x12, 0x0f, 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10,
+ 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x08, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d,
+ 0x00, 0x71, 0x00, 0x75, 0x00, 0x79, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11,
+ 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x02, 0x83,
+ 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17,
+ 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x03, 0x07, 0x0e, 0x0f, 0x18, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe,
+ 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01,
+ 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b,
+ 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d, 0x00, 0x84, 0x00, 0x88,
+ 0x00, 0x8c, 0x00, 0x90, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x02, 0x83, 0x0e, 0x0f, 0x18,
+ 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16,
+ 0x18, 0x0f, 0x0e, 0x03, 0x07, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f,
+ 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20,
+ 0x22, 0x15, 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0xee, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08,
+ 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00,
+ 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2a, 0x00, 0x40, 0x00, 0x56, 0x00, 0x6b, 0x00, 0x7f, 0x00, 0x95,
+ 0x00, 0x99, 0x00, 0x9d, 0x00, 0xa1, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x02, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x02, 0x83, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x04, 0x5d,
+ 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x11, 0x0f,
+ 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0xfe, 0xeb, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0x02, 0x19,
+ 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0x15, 0x42, 0x14, 0x17, 0x11, 0x0e,
+ 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f,
+ 0x19, 0xfd, 0xbe, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0xfa, 0xb3,
+ 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x02, 0xc3, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0xb4, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10,
+ 0xfd, 0xef, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24,
+ 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd,
+ 0xde, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11,
+ 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18,
+ 0x19, 0x13, 0xfc, 0xe3, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc,
+ 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x2f,
+ 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfd, 0xe8,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0x95, 0x08, 0x6a, 0x7f, 0xf8,
+ 0x94, 0x03, 0x76, 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfc, 0xf4, 0x04,
+ 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd,
+ 0x3d, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x04, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x06,
+ 0x78, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0xfd, 0xe8, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x02, 0xc3,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x1f,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x00, 0x00, 0x07, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x64, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x04, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfd, 0xfe, 0x20, 0x16,
+ 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfd,
+ 0xe8, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x01, 0x3f, 0x10, 0x10, 0x1b,
+ 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10,
+ 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x1f, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02,
+ 0x02, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x08, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x00,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe,
+ 0xec, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18,
+ 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfd, 0xe8,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x01, 0x3f, 0x10, 0x10, 0x1b, 0x18,
+ 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x17, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48, 0x19, 0x1a, 0x12, 0x0f, 0x01,
+ 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x1f,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x00, 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x14, 0x00, 0x29, 0x00, 0x3e, 0x00, 0x53, 0x00, 0x57,
+ 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x74, 0x00, 0x89, 0x00, 0x00, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11,
+ 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x05, 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x42, 0x15, 0x17, 0x10, 0x0e,
+ 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x42, 0x15, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x42, 0x15,
+ 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x42, 0x15, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e,
+ 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15,
+ 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10,
+ 0x0e, 0x0e, 0x10, 0x17, 0xfd, 0xe8, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x03, 0xcc, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49,
+ 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x49, 0x18,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02,
+ 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49, 0x18,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x1f,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x49, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e,
+ 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0x00,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x04, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x05,
+ 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f,
+ 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10,
+ 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x10,
+ 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfd,
+ 0xe8, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x03, 0xcc, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8,
+ 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3,
+ 0xfd, 0x3d, 0x1f, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x00, 0x00, 0x0b, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40,
+ 0x00, 0x55, 0x00, 0x69, 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b,
+ 0x00, 0xa1, 0x00, 0xb7, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x02, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x04, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x06, 0xe0,
+ 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x11, 0x0f,
+ 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0xfe, 0xeb, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0x02, 0x19,
+ 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0x15, 0x42, 0x14, 0x17, 0x11, 0x0e,
+ 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f,
+ 0x19, 0xfd, 0xbe, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0xfa, 0xb3,
+ 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfe, 0xd8, 0x42, 0x15,
+ 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10,
+ 0x0e, 0x0e, 0x10, 0x17, 0xfd, 0xe8, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x03, 0x52, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f,
+ 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a,
+ 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24, 0x18, 0x1a, 0x12, 0x02,
+ 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd, 0xde, 0x10, 0x11, 0x1b,
+ 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfc, 0xe3,
+ 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3,
+ 0xfd, 0x3d, 0x1f, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfe, 0xd7,
+ 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xf0, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0xfe, 0x95, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76,
+ 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xf9, 0x10, 0x11,
+ 0x1a, 0x17, 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0xfc, 0xf4, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25,
+ 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x58, 0x00, 0x5c, 0x00, 0x60, 0x00, 0x64, 0x00, 0x00, 0x00, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x25, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfe,
+ 0xd7, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xf0, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x14, 0x04, 0x59, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20,
+ 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11,
+ 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x01,
+ 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xf9, 0x10, 0x11, 0x1a, 0x17,
+ 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19,
+ 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x8f,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00,
+ 0x00, 0x08, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x58, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76,
+ 0x00, 0x7a, 0x00, 0x00, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17,
+ 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0xfe, 0xd7, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0xfe, 0xf0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x05, 0xb3, 0x20, 0x15,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfd, 0xfe, 0x20, 0x16, 0x18, 0x10, 0x0d,
+ 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f,
+ 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xf9, 0x10, 0x11, 0x1a,
+ 0x17, 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18,
+ 0x19, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0xfd, 0xed, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10,
+ 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18,
+ 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d,
+ 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x58, 0x00, 0x6d, 0x00, 0x83, 0x00, 0x87,
+ 0x00, 0x8b, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0xfe, 0xd7, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe,
+ 0xf0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x05, 0xb3, 0x20, 0x15, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x18, 0x15, 0xfe, 0xec, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f,
+ 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0xfe, 0xf0, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21,
+ 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08,
+ 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0xf9, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x01, 0x09,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xed, 0x10, 0x10, 0x1b,
+ 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48, 0x19, 0x1a, 0x12, 0x0f,
+ 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5,
+ 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d,
+ 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d, 0x00, 0x83, 0x00, 0x99,
+ 0x00, 0x9d, 0x00, 0xa1, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x25, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0xfe, 0xd7, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe,
+ 0xf0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x03, 0x6b, 0x0e, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f,
+ 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xf9,
+ 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x7a, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04,
+ 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd,
+ 0x3d, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d,
+ 0x00, 0x83, 0x00, 0x99, 0x00, 0xb0, 0x00, 0xb4, 0x00, 0xb8, 0x00, 0xbc,
+ 0x00, 0x00, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x25, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x04,
+ 0x00, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20,
+ 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfe, 0xd7, 0x20, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xf0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x03, 0x6b, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f,
+ 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17,
+ 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e,
+ 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17,
+ 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8,
+ 0x94, 0x03, 0x76, 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0xf9, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x7a, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd,
+ 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b,
+ 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00,
+ 0x00, 0x0c, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x56, 0x00, 0x6c, 0x00, 0x82, 0x00, 0x97,
+ 0x00, 0xab, 0x00, 0xc1, 0x00, 0xc5, 0x00, 0xc9, 0x00, 0xcd, 0x00, 0x00,
+ 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x25, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x21, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x02, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x04, 0x00, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0xfe, 0xd7,
+ 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xf0, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x04, 0xc1, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f,
+ 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xeb, 0x42, 0x16, 0x16, 0x11,
+ 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01,
+ 0x0f, 0x0f, 0x18, 0x02, 0x19, 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f,
+ 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0x15,
+ 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0xfd, 0xbe, 0x42, 0x16, 0x16, 0x11,
+ 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01,
+ 0x0f, 0x0f, 0x18, 0xfa, 0xb3, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76,
+ 0x7f, 0x01, 0x40, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xf9, 0x10, 0x11,
+ 0x1a, 0x17, 0x4a, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11,
+ 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13,
+ 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24, 0x18, 0x1a, 0x12, 0x02, 0x02,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd, 0xde, 0x10, 0x11, 0x1b, 0x18,
+ 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfc, 0xe3, 0x04,
+ 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd,
+ 0x3d, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x14, 0x00, 0x29, 0x00, 0x3e, 0x00, 0x53, 0x00, 0x57,
+ 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x94, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x41, 0x16, 0x16,
+ 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x42, 0x15, 0x17, 0x10,
+ 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x41, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x42, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0xfd, 0x43, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0x03, 0xcc,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49, 0x18, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x49, 0x18, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b, 0x8d,
+ 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x19, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x36, 0x00, 0x4b, 0x00, 0x60,
+ 0x00, 0x75, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x06, 0x78, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17,
+ 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa,
+ 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x41, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x42,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0xfe, 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x15, 0x41, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19,
+ 0x15, 0x42, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0x0f, 0x02, 0xc3, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd,
+ 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02,
+ 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x49, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd,
+ 0xe9, 0x49, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x49, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16,
+ 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38, 0x00, 0x4e, 0x00, 0x64,
+ 0x00, 0x7a, 0x00, 0x90, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25,
+ 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0xd2, 0x20, 0x15, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x18, 0x15, 0xfd, 0xfe, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d,
+ 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc,
+ 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x01, 0x3f, 0x10,
+ 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a,
+ 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc,
+ 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f, 0x00, 0xa5, 0x00, 0x00,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0xd2,
+ 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe, 0xec, 0x20, 0x15, 0x17,
+ 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c,
+ 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01,
+ 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x01, 0x3f, 0x10, 0x10,
+ 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11, 0x1b, 0x17, 0x4a,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48, 0x19, 0x1a, 0x12,
+ 0x0f, 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04,
+ 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd,
+ 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x00, 0x0b, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f,
+ 0x00, 0xa5, 0x00, 0xbb, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11,
+ 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x05, 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01,
+ 0xdc, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0xf9, 0x4e, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c,
+ 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01,
+ 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x03, 0xcc, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb,
+ 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e,
+ 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0xbc,
+ 0x00, 0xd2, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x05,
+ 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f,
+ 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10,
+ 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x10,
+ 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0x03, 0xcc, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03,
+ 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x00, 0x00, 0x0d, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7,
+ 0x00, 0xcd, 0x00, 0xe3, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x02, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x06, 0xe0, 0x20, 0x15, 0x17, 0x11,
+ 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xeb, 0x42,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18,
+ 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0x02, 0x19, 0x42, 0x14, 0x17, 0x11,
+ 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d,
+ 0x0f, 0x19, 0x15, 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18,
+ 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0xfd, 0xbe, 0x42,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18,
+ 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0xfa, 0xb3, 0x08, 0x6a, 0x7f, 0xf8,
+ 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10,
+ 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20,
+ 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x03, 0x52, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12,
+ 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10, 0xfd, 0xef,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11,
+ 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47,
+ 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24, 0x18, 0x1a,
+ 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd, 0xde, 0x10,
+ 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13,
+ 0xfc, 0xe3, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x00,
+ 0x00, 0x08, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x21, 0x00, 0x37, 0x00, 0x4d, 0x00, 0x63,
+ 0x00, 0x79, 0x00, 0x00, 0x37, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11,
+ 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0xb4, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x46, 0x04, 0xf5, 0xfb,
+ 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02,
+ 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x00, 0x00, 0x00, 0x09, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x64, 0x00, 0x7a, 0x00, 0x90, 0x00, 0x00, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21,
+ 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x06,
+ 0x78, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe,
+ 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16,
+ 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x02,
+ 0xc3, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5,
+ 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d,
+ 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02,
+ 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x00, 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x64, 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0x00,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21,
+ 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07,
+ 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfd, 0xfe, 0x20, 0x16,
+ 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x01, 0x3f, 0x10, 0x10,
+ 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10, 0x11, 0x1c, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13,
+ 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25,
+ 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x00, 0x0b, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f,
+ 0x00, 0xa5, 0x00, 0xbb, 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x01, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x07, 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe,
+ 0xec, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18,
+ 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01,
+ 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10, 0x17,
+ 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f,
+ 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x01, 0x3f, 0x10, 0x10, 0x1b,
+ 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x48, 0x19, 0x1a, 0x12, 0x0f,
+ 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5,
+ 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d,
+ 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02,
+ 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x00, 0x00, 0x0c, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b,
+ 0x00, 0x5f, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f, 0x00, 0xa5, 0x00, 0xbb,
+ 0x00, 0xd1, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11,
+ 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x05, 0x8a,
+ 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01,
+ 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15,
+ 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe,
+ 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16,
+ 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x03,
+ 0xcc, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b,
+ 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x02, 0x6d,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e,
+ 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0xbc,
+ 0x00, 0xd2, 0x00, 0xe8, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21,
+ 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x05,
+ 0x8a, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e,
+ 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f,
+ 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0x41, 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10,
+ 0x01, 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x10,
+ 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94,
+ 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10, 0xfe, 0x14, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x16, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f, 0x0e, 0x03, 0xcc, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd,
+ 0xa8, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02,
+ 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd,
+ 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40,
+ 0x00, 0x55, 0x00, 0x69, 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b,
+ 0x00, 0xa1, 0x00, 0xb7, 0x00, 0xcd, 0x00, 0xe3, 0x00, 0xf9, 0x00, 0x00,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x17, 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x02, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x00, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x01, 0x11, 0x21, 0x11,
+ 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x07, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x06, 0xe0,
+ 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x11, 0x0f,
+ 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0xfe, 0xeb, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0x02, 0x19,
+ 0x42, 0x14, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15,
+ 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0x15, 0x42, 0x14, 0x17, 0x11, 0x0e,
+ 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f,
+ 0x19, 0xfd, 0xbe, 0x42, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x15,
+ 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f, 0x0f, 0x18, 0xfa, 0xb3,
+ 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfc, 0x6c, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0f, 0x0e, 0x19, 0x15, 0x20,
+ 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0xfe, 0x14, 0x0e, 0x10, 0x17, 0x16, 0x41, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0f,
+ 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17,
+ 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x0f, 0x18, 0x14, 0x43,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x41, 0x16, 0x18, 0x0f,
+ 0x0e, 0x03, 0x52, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f,
+ 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x13, 0x10, 0xfd, 0xef, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c,
+ 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18,
+ 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24, 0x18, 0x1a, 0x12,
+ 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd, 0xde, 0x10, 0x11,
+ 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfc,
+ 0xe3, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02,
+ 0xc3, 0xfd, 0x3d, 0x02, 0x6d, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd,
+ 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xe4, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x00, 0x00, 0x00, 0x09, 0x00, 0xb4,
+ 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x22, 0x00, 0x3a, 0x00, 0x50, 0x00, 0x66, 0x00, 0x7c, 0x00, 0x92,
+ 0x00, 0x00, 0x37, 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11,
+ 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27,
+ 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x00, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x1e, 0x01, 0x07, 0x06, 0x07, 0xb4, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x21,
+ 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xec, 0x43, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f,
+ 0x01, 0x10, 0x0e, 0x18, 0x01, 0xf8, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01,
+ 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14,
+ 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0xfd, 0xd3, 0x43,
+ 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17,
+ 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x46, 0x04, 0xf5, 0xfb, 0x0b, 0x8d,
+ 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x00, 0x0a, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x39, 0x00, 0x51, 0x00, 0x67,
+ 0x00, 0x7d, 0x00, 0x93, 0x00, 0xa9, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x06, 0x78,
+ 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x41, 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f,
+ 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x21, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xec,
+ 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15,
+ 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x01, 0xf8, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f,
+ 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0xfd, 0xd3, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x02, 0xc3, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04, 0xf5, 0xfb, 0x0b,
+ 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11,
+ 0x1a, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a,
+ 0x17, 0x26, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02,
+ 0x02, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4f, 0x00, 0x67, 0x00, 0x7d, 0x00, 0x93, 0x00, 0xa9, 0x00, 0xbf,
+ 0x00, 0x00, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x11, 0x21, 0x11, 0x27, 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x2e,
+ 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x07, 0xd2, 0x20, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfd,
+ 0xfe, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x21, 0x20,
+ 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa, 0xa1, 0x08, 0x6a,
+ 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x21, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe,
+ 0xec, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x01, 0xf8, 0x21, 0x14,
+ 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01,
+ 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0xfd, 0xd3, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x01, 0x3f,
+ 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x02, 0x11, 0x10, 0x11, 0x1c,
+ 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18,
+ 0x1a, 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb,
+ 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x00, 0x00,
+ 0x00, 0x0c, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x16,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x64,
+ 0x00, 0x7c, 0x00, 0x92, 0x00, 0xa8, 0x00, 0xbe, 0x00, 0xd4, 0x00, 0x00,
+ 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x07, 0xd2, 0x20,
+ 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x15, 0xfe, 0xec, 0x20, 0x15, 0x17, 0x11,
+ 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0xfe, 0xf0, 0x20, 0x16, 0x18, 0x10, 0x0d, 0x0d, 0x10, 0x18,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0xfa,
+ 0xa1, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfd, 0xc4, 0x20,
+ 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16,
+ 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x21, 0x20, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0xfe, 0xec, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x01,
+ 0xf8, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41,
+ 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0xfd, 0xd3, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e,
+ 0x18, 0x01, 0x3f, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x01, 0x09,
+ 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x48, 0x19, 0x1a, 0x12, 0x0f, 0x01, 0x08, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a,
+ 0x13, 0x10, 0xfc, 0xf6, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc,
+ 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x00, 0x00, 0x00,
+ 0x00, 0x0d, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x7a, 0x00, 0x92, 0x00, 0xa8, 0x00, 0xbe, 0x00, 0xd4, 0x00, 0xea,
+ 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x00,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x05, 0x8a, 0x0e,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15,
+ 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18, 0x15,
+ 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16,
+ 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01, 0xce,
+ 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f,
+ 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xf9, 0x4e, 0x08, 0x6a, 0x7f,
+ 0xf8, 0x94, 0x03, 0x76, 0x7f, 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x21, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xec,
+ 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15,
+ 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x01, 0xf8, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f,
+ 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15,
+ 0xfd, 0xd3, 0x43, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x03, 0xcc, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10,
+ 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x9f, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03,
+ 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a, 0x17, 0x26,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x02, 0x02, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x00,
+ 0x00, 0x0e, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e, 0x05, 0x3b, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76,
+ 0x00, 0x7a, 0x00, 0x91, 0x00, 0xa9, 0x00, 0xbf, 0x00, 0xd5, 0x00, 0xeb,
+ 0x01, 0x01, 0x00, 0x00, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x07, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x11, 0x21, 0x11, 0x27,
+ 0x11, 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17,
+ 0x14, 0x07, 0x06, 0x07, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x05, 0x8a,
+ 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0e, 0x19,
+ 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41,
+ 0x16, 0x17, 0x10, 0xfe, 0x15, 0x0e, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17,
+ 0x10, 0x0f, 0x0f, 0x0e, 0x19, 0x15, 0x20, 0x22, 0x15, 0x17, 0x10, 0x01,
+ 0xce, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x18, 0x15, 0x41, 0x16, 0x17, 0x10, 0x0f, 0xee, 0x0e, 0x10, 0x17,
+ 0x15, 0x22, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x41,
+ 0x16, 0x16, 0x11, 0x0e, 0xfa, 0x3c, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03,
+ 0x76, 0x7f, 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x21,
+ 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0xfe, 0xec, 0x43, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f,
+ 0x01, 0x10, 0x0e, 0x18, 0x01, 0xf8, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01,
+ 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14,
+ 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0xfd, 0xd3, 0x43,
+ 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17,
+ 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18, 0x03, 0xcc, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0xfd, 0xe9, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0xe4, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0xfd, 0xa8, 0x04,
+ 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c, 0x02, 0xc3, 0xfd,
+ 0x3d, 0x01, 0xf2, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0xfd, 0xef,
+ 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd,
+ 0xee, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x02, 0x12, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x00, 0x0f, 0x00, 0xb4, 0x00, 0x46, 0x09, 0x1e,
+ 0x05, 0x3b, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7,
+ 0x00, 0xcc, 0x00, 0xe1, 0x00, 0xf6, 0x01, 0x0b, 0x00, 0x00, 0x01, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14,
+ 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x02, 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x00, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x01, 0x11, 0x21, 0x11, 0x27, 0x11,
+ 0x21, 0x11, 0x25, 0x11, 0x33, 0x11, 0x01, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x20, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07, 0x06, 0x07, 0x01,
+ 0x22, 0x27, 0x26, 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x03, 0x22, 0x27, 0x26,
+ 0x27, 0x2e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x00, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x1e, 0x01, 0x07,
+ 0x06, 0x07, 0x06, 0xe0, 0x20, 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19,
+ 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x15, 0x17, 0x11, 0x0f, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0xfe, 0xea, 0x41, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f,
+ 0x0f, 0x18, 0x02, 0x19, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10,
+ 0x18, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0x15, 0x41,
+ 0x15, 0x17, 0x11, 0x0e, 0x01, 0x0f, 0x10, 0x18, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0d, 0x0d, 0x0f, 0x19, 0xfd, 0xbd, 0x41, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x0f, 0x0e, 0x01, 0x0f,
+ 0x0f, 0x18, 0xfa, 0xb3, 0x08, 0x6a, 0x7f, 0xf8, 0x94, 0x03, 0x76, 0x7f,
+ 0xfd, 0xc4, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x41,
+ 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x21, 0x20, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0xfe, 0xeb, 0x42, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10, 0x0e, 0x18,
+ 0x01, 0xf8, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14,
+ 0x41, 0x16, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x14,
+ 0x18, 0x10, 0x0e, 0x01, 0x0f, 0x0f, 0x19, 0x14, 0x41, 0x16, 0x17, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0xfd, 0xd2, 0x42, 0x14, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x15, 0x17, 0x0f, 0x0f, 0x01, 0x10,
+ 0x0e, 0x18, 0x03, 0x52, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12,
+ 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x49, 0x17, 0x1a, 0x13, 0x10, 0xfd, 0xef,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11,
+ 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x47,
+ 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x24, 0x24, 0x18, 0x1a,
+ 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13, 0xfd, 0xde, 0x10,
+ 0x11, 0x1b, 0x18, 0x47, 0x18, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x18, 0x48, 0x18, 0x19, 0x13,
+ 0xfc, 0xe3, 0x04, 0xf5, 0xfb, 0x0b, 0x8d, 0x03, 0xdb, 0xfc, 0x25, 0x8c,
+ 0x02, 0xc3, 0xfd, 0x3d, 0x01, 0xf2, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x49, 0x18, 0x19, 0x13,
+ 0x10, 0xfd, 0xef, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49,
+ 0x18, 0x19, 0x12, 0x02, 0x02, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0xfd,
+ 0xee, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x02, 0x12, 0x10, 0x11, 0x1b,
+ 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35,
+ 0x01, 0x21, 0x11, 0x21, 0x01, 0xb1, 0x02, 0x7c, 0xfc, 0x87, 0x04, 0x76,
+ 0xfb, 0x8a, 0x03, 0x07, 0x8d, 0x8d, 0x04, 0x66, 0xf6, 0xa7, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0xb4, 0x04, 0x76, 0xfb, 0x8a, 0x7f,
+ 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x07, 0x6d, 0xf6,
+ 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e,
+ 0x00, 0x22, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13,
+ 0x21, 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e,
+ 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16,
+ 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x01, 0x05, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12,
+ 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x05, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x94, 0x0e, 0x0f, 0x18, 0x16,
+ 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16,
+ 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18,
+ 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd,
+ 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02,
+ 0x7c, 0xfd, 0x84, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02, 0x3b,
+ 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x00, 0x05, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0xef,
+ 0x0d, 0x0f, 0x19, 0x14, 0x43, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x18, 0x10, 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15, 0x41,
+ 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11,
+ 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88,
+ 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x01, 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01, 0x2e, 0x24,
+ 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08,
+ 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x07, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b,
+ 0x00, 0x5f, 0x00, 0x63, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x03, 0xe0,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f,
+ 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x0e, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x57, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x00,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13,
+ 0x21, 0x15, 0x21, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe,
+ 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd, 0x21,
+ 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16,
+ 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a,
+ 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x0e,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd,
+ 0xfe, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11,
+ 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f,
+ 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0x00, 0x25, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22,
+ 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x03, 0x72, 0x0e, 0x10, 0x19, 0x15,
+ 0x40, 0x16, 0x17, 0x11, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x42, 0x14, 0x17,
+ 0x12, 0x0e, 0xfe, 0x24, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15, 0x17,
+ 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e,
+ 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15,
+ 0x20, 0x20, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21,
+ 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17,
+ 0x11, 0xfe, 0x15, 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e,
+ 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16,
+ 0x41, 0x15, 0x17, 0x11, 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x91, 0x24, 0x17, 0x1a,
+ 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c,
+ 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01, 0x33,
+ 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17,
+ 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd, 0xab, 0x4a, 0x16, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f,
+ 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11,
+ 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x02, 0x82,
+ 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17,
+ 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05, 0xe4, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1d,
+ 0x00, 0x21, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a,
+ 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd,
+ 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02,
+ 0x7c, 0xfd, 0x84, 0x05, 0x6b, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10, 0x02,
+ 0x02, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x13, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0x21, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e,
+ 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16,
+ 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x05, 0x69, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x18, 0x48, 0x18, 0x1a, 0x11, 0x10,
+ 0xfb, 0x9c, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6,
+ 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2c, 0x00, 0x42,
+ 0x00, 0x46, 0x00, 0x4a, 0x00, 0x4e, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13,
+ 0x21, 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e,
+ 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16,
+ 0xfe, 0xc4, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f,
+ 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f,
+ 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x05, 0x6b, 0x10,
+ 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x19, 0x1a, 0x11, 0x10, 0xfa, 0x19, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x02, 0x3b, 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05,
+ 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2c, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10,
+ 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f,
+ 0x0f, 0x17, 0x16, 0xfe, 0xc4, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e,
+ 0xef, 0x0d, 0x0f, 0x19, 0x14, 0x43, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f,
+ 0x18, 0x15, 0x41, 0x16, 0x18, 0x10, 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15,
+ 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17,
+ 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc,
+ 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x05, 0x6b, 0x10, 0x11, 0x1a, 0x17,
+ 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a,
+ 0x11, 0x10, 0xfa, 0x19, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01,
+ 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01, 0x2e, 0x24, 0x18, 0x1a,
+ 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc,
+ 0x27, 0x8d, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d,
+ 0x00, 0x71, 0x00, 0x75, 0x00, 0x79, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0xf1,
+ 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16,
+ 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x01, 0x10, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc,
+ 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x05, 0x6b, 0x10, 0x11, 0x1a, 0x17,
+ 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a,
+ 0x11, 0x10, 0xfc, 0xa3, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd,
+ 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x07, 0x71, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d, 0x00, 0x84, 0x00, 0x88,
+ 0x00, 0x8c, 0x00, 0x90, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0x01, 0x10, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd,
+ 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16,
+ 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb,
+ 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x05,
+ 0x6b, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10, 0xfc, 0xa3, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x26,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19,
+ 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d,
+ 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2a, 0x00, 0x40, 0x00, 0x56, 0x00, 0x6b, 0x00, 0x7f, 0x00, 0x95,
+ 0x00, 0x99, 0x00, 0x9d, 0x00, 0xa1, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x00,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36,
+ 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27,
+ 0x26, 0x27, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a,
+ 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xa2,
+ 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0d, 0x0d, 0x10, 0x18,
+ 0x15, 0x42, 0x14, 0x17, 0x12, 0x0e, 0xfe, 0x24, 0x0e, 0x10, 0x18, 0x15,
+ 0x21, 0x20, 0x15, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e,
+ 0x0e, 0x10, 0x19, 0x15, 0x20, 0x20, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e,
+ 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18,
+ 0x16, 0x41, 0x15, 0x17, 0x11, 0xfe, 0x15, 0x0e, 0x10, 0x18, 0x16, 0x3f,
+ 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10,
+ 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e,
+ 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0xfd, 0x33, 0x04, 0x76,
+ 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84,
+ 0x05, 0x6b, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10, 0xfb, 0x26, 0x24, 0x17,
+ 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11,
+ 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01,
+ 0x33, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd, 0xab, 0x4a, 0x16,
+ 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12,
+ 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11,
+ 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x02,
+ 0x82, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05, 0xe4, 0xf6, 0xa7,
+ 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x2f,
+ 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x95, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf,
+ 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfd, 0x42, 0x04, 0x76, 0xfb,
+ 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x03,
+ 0xc3, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x01, 0x93, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27,
+ 0x8d, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13,
+ 0x21, 0x15, 0x21, 0x02, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x02,
+ 0xf1, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76,
+ 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84,
+ 0x1c, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40,
+ 0x16, 0x17, 0x11, 0x0e, 0x01, 0x05, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12,
+ 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x01,
+ 0x49, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x00, 0x00, 0x07, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x64, 0x00, 0x00, 0x05, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13,
+ 0x21, 0x15, 0x21, 0x02, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f,
+ 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40,
+ 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x1c, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e,
+ 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02, 0x3b, 0x24, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f,
+ 0xfc, 0x27, 0x8d, 0x01, 0x49, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x02,
+ 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x00, 0x00, 0x08, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x00,
+ 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0xef,
+ 0x0d, 0x0f, 0x19, 0x14, 0x43, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18,
+ 0x15, 0x41, 0x16, 0x18, 0x10, 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15, 0x41,
+ 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11,
+ 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88,
+ 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x1c, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x7c, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8,
+ 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x01, 0x49, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x11, 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x79, 0x00, 0x8f, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88,
+ 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x1c, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x02, 0x0e, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x01, 0x49, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11,
+ 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x00, 0x00, 0x00,
+ 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76,
+ 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01,
+ 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03, 0xe0, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14,
+ 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4,
+ 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c,
+ 0xfd, 0x84, 0x1c, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e,
+ 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x02, 0x0e, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02,
+ 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12,
+ 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x01,
+ 0x49, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x00, 0x00, 0x0b, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7,
+ 0x00, 0x00, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x02, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03, 0x72, 0x0e, 0x10, 0x19, 0x15,
+ 0x40, 0x16, 0x17, 0x11, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x42, 0x14, 0x17,
+ 0x12, 0x0e, 0xfe, 0x24, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15, 0x17,
+ 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e,
+ 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15,
+ 0x20, 0x20, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21,
+ 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17,
+ 0x11, 0xfe, 0x15, 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e,
+ 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16,
+ 0x41, 0x15, 0x17, 0x11, 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x1c, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e,
+ 0x91, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13,
+ 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x01, 0x33, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x17, 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd,
+ 0xab, 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12,
+ 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f,
+ 0x11, 0x1b, 0x02, 0x82, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x17, 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05,
+ 0xe4, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x01, 0x49, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x11, 0x1a, 0x02, 0x53, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10,
+ 0x0e, 0xee, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfd, 0x42, 0x04,
+ 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd,
+ 0x84, 0x03, 0xc3, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x01, 0x4a, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x01, 0x93, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d,
+ 0x00, 0x07, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x58, 0x00, 0x5c, 0x00, 0x60, 0x00, 0x64,
+ 0x00, 0x00, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x03, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10, 0x0e, 0xee, 0x0e,
+ 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x81, 0x21, 0x14, 0x18, 0x10, 0x0e,
+ 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f,
+ 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc,
+ 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x03, 0xc3, 0x4a, 0x17, 0x19, 0x13,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x11, 0x1a, 0x01, 0x4a, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01,
+ 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfb, 0x2b, 0x10, 0x11, 0x1a,
+ 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc,
+ 0x27, 0x8d, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x58, 0x00, 0x6e,
+ 0x00, 0x72, 0x00, 0x76, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01,
+ 0x95, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14,
+ 0x43, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17,
+ 0x10, 0x0e, 0xee, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x22,
+ 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f, 0x19,
+ 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16,
+ 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78,
+ 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x03, 0xc3, 0x4a, 0x17, 0x19,
+ 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x11, 0x1a, 0x01, 0x4a, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xf9, 0xaa, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02, 0x3b, 0x24, 0x18, 0x1a, 0x12, 0x0f,
+ 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d,
+ 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x58, 0x00, 0x6d, 0x00, 0x83, 0x00, 0x87,
+ 0x00, 0x8b, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95, 0x0e, 0x10, 0x17, 0x16,
+ 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10, 0x0e, 0xee, 0x0e, 0x10,
+ 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x22, 0x0e, 0x0f, 0x18, 0x16, 0x41,
+ 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17,
+ 0x10, 0x0e, 0xef, 0x0d, 0x0f, 0x19, 0x14, 0x43, 0x15, 0x17, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x18, 0x10, 0x0d, 0xed, 0x0f, 0x0f,
+ 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40,
+ 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x03, 0xc3, 0x4a, 0x17,
+ 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x11, 0x1a, 0x01, 0x4a, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17,
+ 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xf9, 0xaa, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x32, 0x24, 0x17, 0x1a, 0x13,
+ 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05,
+ 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00,
+ 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d, 0x00, 0x83, 0x00, 0x99,
+ 0x00, 0x9d, 0x00, 0xa1, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x13, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95, 0x0e, 0x10, 0x17, 0x16,
+ 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16,
+ 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10, 0x0e, 0xee, 0x0e, 0x10,
+ 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16,
+ 0x40, 0x16, 0x17, 0x11, 0x0e, 0x6e, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfc,
+ 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02,
+ 0x7c, 0xfd, 0x84, 0x03, 0xc3, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x01,
+ 0x4a, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x2e, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0xfc, 0x34, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d,
+ 0x00, 0x0b, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6d, 0x00, 0x83, 0x00, 0x99,
+ 0x00, 0xb0, 0x00, 0xb4, 0x00, 0xb8, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x13, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21,
+ 0x16, 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10, 0x0e, 0xee, 0x0e,
+ 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x6e, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76,
+ 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84,
+ 0x03, 0xc3, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x01, 0x4a, 0x24, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10,
+ 0x10, 0x10, 0x1b, 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0xfc, 0x34, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01,
+ 0x09, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7,
+ 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x56, 0x00, 0x6c, 0x00, 0x82, 0x00, 0x97, 0x00, 0xab, 0x00, 0xc1,
+ 0x00, 0xc5, 0x00, 0xc9, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x11, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x95,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0xe1, 0x0e, 0x0f, 0x18, 0x14, 0x43,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x42, 0x15, 0x17, 0x10,
+ 0x0e, 0xee, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x19,
+ 0x15, 0x40, 0x16, 0x17, 0x11, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x42, 0x14,
+ 0x17, 0x12, 0x0e, 0xfe, 0x24, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15,
+ 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e,
+ 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19,
+ 0x15, 0x20, 0x20, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15,
+ 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15,
+ 0x17, 0x11, 0xfe, 0x15, 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12,
+ 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e,
+ 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18,
+ 0x16, 0x41, 0x15, 0x17, 0x11, 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f,
+ 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x03, 0xc3, 0x4a,
+ 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x11, 0x1a, 0x01, 0x4a, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x10, 0x1b,
+ 0x17, 0x4a, 0x17, 0x19, 0x13, 0x10, 0x10, 0x11, 0x1b, 0x17, 0xfa, 0xb7,
+ 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x01, 0x33, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd, 0xab,
+ 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12, 0x10,
+ 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11,
+ 0x1b, 0x02, 0x82, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05, 0xe4,
+ 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x00, 0x07, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x14, 0x00, 0x29, 0x00, 0x3e,
+ 0x00, 0x53, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x03, 0xe0,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17,
+ 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f,
+ 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x06, 0x74, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x49, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c,
+ 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x03, 0x0b, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27,
+ 0x8d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x19, 0x00, 0x1d, 0x00, 0x21, 0x00, 0x36,
+ 0x00, 0x4b, 0x00, 0x60, 0x00, 0x75, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x02, 0xf1, 0x21, 0x14, 0x18, 0x10,
+ 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x42, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f,
+ 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc,
+ 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xfe, 0x1f, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42,
+ 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0x01, 0x05, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68,
+ 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49,
+ 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02,
+ 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17,
+ 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x00, 0x00, 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4e, 0x00, 0x64, 0x00, 0x7a, 0x00, 0x90, 0x00, 0x00, 0x05, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01,
+ 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01, 0xdc, 0x0f, 0x0f,
+ 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x40,
+ 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02,
+ 0x3b, 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7,
+ 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02,
+ 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f, 0x00, 0xa5, 0x00, 0x00,
+ 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x94,
+ 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0xef, 0x0d, 0x0f, 0x19, 0x14,
+ 0x43, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x18,
+ 0x10, 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04,
+ 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd,
+ 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0x7c, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x01, 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10,
+ 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x01, 0x2e, 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6,
+ 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f,
+ 0x00, 0xa5, 0x00, 0xbb, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfc, 0xf6, 0x04,
+ 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd,
+ 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0x02, 0x0e, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d, 0x08,
+ 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x14, 0x00, 0x29, 0x00, 0x3e, 0x00, 0x53, 0x00, 0x69,
+ 0x00, 0x6d, 0x00, 0x71, 0x00, 0x75, 0x00, 0x8a, 0x00, 0x9f, 0x00, 0xb4,
+ 0x00, 0xc9, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f,
+ 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x42, 0x16, 0x16, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0x02, 0x0e, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0xfd,
+ 0xee, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19,
+ 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10,
+ 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08,
+ 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10,
+ 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18,
+ 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x00,
+ 0x00, 0x0d, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x14,
+ 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69, 0x00, 0x7f, 0x00, 0x83,
+ 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7, 0x00, 0xcd, 0x00, 0xe3,
+ 0x00, 0x00, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x24, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x03, 0x72, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x17, 0x11,
+ 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x42, 0x14, 0x17, 0x12, 0x0e, 0xfe, 0x24,
+ 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15, 0x17, 0x12, 0x0e, 0x0e, 0x10,
+ 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x16, 0x3f,
+ 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x20, 0x20, 0x16, 0x18,
+ 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0xfe, 0x15, 0x0e,
+ 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15,
+ 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20,
+ 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11,
+ 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17,
+ 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0x91,
+ 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x01, 0x33, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd, 0xab,
+ 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12, 0x10,
+ 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11,
+ 0x1b, 0x02, 0x82, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05, 0xe4,
+ 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x21, 0x00, 0x37, 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x00,
+ 0x13, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0xb4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88,
+ 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x07, 0x6d, 0xf6, 0xa7,
+ 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02,
+ 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10,
+ 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x38, 0x00, 0x4e, 0x00, 0x64,
+ 0x00, 0x7a, 0x00, 0x90, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11,
+ 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x02, 0xf1, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a,
+ 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x01,
+ 0x05, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a, 0x11, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06, 0x68, 0xf6, 0xa7,
+ 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02,
+ 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10,
+ 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x2f, 0x00, 0x33, 0x00, 0x37, 0x00, 0x4c, 0x00, 0x61,
+ 0x00, 0x76, 0x00, 0x8b, 0x00, 0xa0, 0x00, 0x00, 0x05, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21,
+ 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x01, 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01, 0xdc,
+ 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb, 0x8a,
+ 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f,
+ 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17,
+ 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e,
+ 0x0e, 0x1a, 0x14, 0x42, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16,
+ 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02, 0x3b, 0x24, 0x18, 0x1a,
+ 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc,
+ 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee,
+ 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12,
+ 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11,
+ 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x19, 0x1a, 0x11, 0x10, 0x00, 0x0b, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x63, 0x00, 0x79, 0x00, 0x8f, 0x00, 0xa5, 0x00, 0xbb,
+ 0x00, 0x00, 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x13, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21,
+ 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x94,
+ 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0xef, 0x0d, 0x0f, 0x19, 0x14,
+ 0x43, 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x18,
+ 0x10, 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e,
+ 0x0e, 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04,
+ 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd,
+ 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18,
+ 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f,
+ 0x0f, 0x0f, 0x17, 0x16, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x01, 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01, 0x2e, 0x24, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12,
+ 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f,
+ 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x0c, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63,
+ 0x00, 0x79, 0x00, 0x8f, 0x00, 0xa5, 0x00, 0xbb, 0x00, 0xd1, 0x00, 0x00,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21,
+ 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43,
+ 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88,
+ 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x02, 0x0e, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10,
+ 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d, 0x08,
+ 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12,
+ 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a, 0x11, 0x10, 0x00, 0x00,
+ 0x00, 0x0d, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x57, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x76,
+ 0x00, 0x7a, 0x00, 0x90, 0x00, 0xa6, 0x00, 0xbc, 0x00, 0xd2, 0x00, 0xe8,
+ 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11,
+ 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0xe0, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f,
+ 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14,
+ 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4,
+ 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c,
+ 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e,
+ 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15,
+ 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14,
+ 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16, 0x16, 0x10,
+ 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x02, 0x0e, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x02, 0x22,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11, 0x1b, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18,
+ 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10,
+ 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd,
+ 0xfe, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11,
+ 0x1a, 0x17, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x19, 0x1a, 0x11, 0x10, 0x00, 0x0e, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7,
+ 0x00, 0xcd, 0x00, 0xe3, 0x00, 0xf9, 0x00, 0x00, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22, 0x27, 0x26,
+ 0x27, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x24, 0x34,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e,
+ 0x01, 0x27, 0x26, 0x27, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21,
+ 0x13, 0x21, 0x15, 0x21, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x00, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37,
+ 0x12, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x03, 0x72, 0x0e, 0x10, 0x19, 0x15,
+ 0x40, 0x16, 0x17, 0x11, 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x42, 0x14, 0x17,
+ 0x12, 0x0e, 0xfe, 0x24, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15, 0x17,
+ 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e,
+ 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15,
+ 0x20, 0x20, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21,
+ 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17,
+ 0x11, 0xfe, 0x15, 0x0e, 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e,
+ 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10,
+ 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16,
+ 0x41, 0x15, 0x17, 0x11, 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03,
+ 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x02, 0x2f, 0x20, 0x16,
+ 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e,
+ 0x0e, 0x10, 0x18, 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18,
+ 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20,
+ 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e,
+ 0x10, 0x18, 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a,
+ 0x14, 0x21, 0x21, 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0x91,
+ 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x13, 0x10,
+ 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x01, 0x33, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0xfd, 0xab,
+ 0x4a, 0x16, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x4a, 0x16, 0x1a, 0x12, 0x10,
+ 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11,
+ 0x1b, 0x02, 0x82, 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x17,
+ 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11, 0x1a, 0x05, 0xe4,
+ 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x03, 0xfa, 0x10, 0x11,
+ 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x10, 0x1c, 0x17, 0x24,
+ 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17,
+ 0x4a, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x19, 0x1a,
+ 0x11, 0x10, 0x00, 0x00, 0x00, 0x09, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x22, 0x00, 0x3a,
+ 0x00, 0x50, 0x00, 0x66, 0x00, 0x7c, 0x00, 0x92, 0x00, 0x00, 0x13, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26,
+ 0x27, 0xb4, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x01, 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x42, 0x15, 0x16, 0x11,
+ 0x0f, 0xfe, 0x24, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17,
+ 0x11, 0x0e, 0xfe, 0x23, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01,
+ 0xdd, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x07, 0x6d, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x02, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x33,
+ 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17,
+ 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd, 0xd0, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11,
+ 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x02, 0x6b, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0x00, 0x00, 0x00,
+ 0x00, 0x0a, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16,
+ 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x39, 0x00, 0x51, 0x00, 0x67,
+ 0x00, 0x7d, 0x00, 0x93, 0x00, 0xa9, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37,
+ 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17,
+ 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x02, 0xf1,
+ 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x21, 0x21, 0x16,
+ 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76, 0xfb,
+ 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x01,
+ 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x15, 0x42, 0x15, 0x16, 0x11, 0x0f, 0xfe, 0x24, 0x0e, 0x10,
+ 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x23, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x17, 0x11, 0x01, 0x05, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24, 0x18, 0x1a,
+ 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12, 0x10, 0x06,
+ 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x02, 0x7c, 0x24,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19,
+ 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x01, 0x33, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd,
+ 0xd0, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x02, 0x6b, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x4f, 0x00, 0x67, 0x00, 0x7d, 0x00, 0x93, 0x00, 0xa9, 0x00, 0xbf,
+ 0x00, 0x00, 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01,
+ 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x3e,
+ 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27,
+ 0x26, 0x27, 0x01, 0x94, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11,
+ 0x0e, 0x0e, 0x0f, 0x19, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0x01,
+ 0xdc, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76, 0xfb,
+ 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84, 0x01,
+ 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0e, 0x0e,
+ 0x10, 0x17, 0x15, 0x42, 0x15, 0x16, 0x11, 0x0f, 0xfe, 0x24, 0x0e, 0x10,
+ 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x23, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x17, 0x11, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x02, 0x3b,
+ 0x24, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d,
+ 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x02, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17,
+ 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x33,
+ 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17,
+ 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd, 0xd0, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11,
+ 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17,
+ 0x02, 0x6b, 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25,
+ 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0x00, 0x00, 0x00,
+ 0x00, 0x0c, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x16,
+ 0x00, 0x2b, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x64,
+ 0x00, 0x7c, 0x00, 0x92, 0x00, 0xa8, 0x00, 0xbe, 0x00, 0xd4, 0x00, 0x00,
+ 0x05, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x13, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22,
+ 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x94, 0x0e,
+ 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x15,
+ 0x21, 0x20, 0x16, 0x17, 0x10, 0x0e, 0xef, 0x0d, 0x0f, 0x19, 0x14, 0x43,
+ 0x15, 0x17, 0x10, 0x0f, 0x0f, 0x0f, 0x18, 0x15, 0x41, 0x16, 0x18, 0x10,
+ 0x0d, 0xed, 0x0f, 0x0f, 0x19, 0x15, 0x41, 0x15, 0x18, 0x10, 0x0e, 0x0e,
+ 0x10, 0x18, 0x15, 0x40, 0x16, 0x17, 0x11, 0x0f, 0xfd, 0x44, 0x04, 0x76,
+ 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84,
+ 0x01, 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x42, 0x15, 0x16, 0x11, 0x0f, 0xfe, 0x24, 0x0e,
+ 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40,
+ 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16,
+ 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11,
+ 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x23,
+ 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0e, 0x10, 0x18,
+ 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40,
+ 0x16, 0x17, 0x11, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01,
+ 0x32, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x01, 0x2e, 0x24, 0x18, 0x1a,
+ 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x05, 0xf8, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc,
+ 0x27, 0x8d, 0x02, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x25,
+ 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x33, 0x4a, 0x17, 0x1a,
+ 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10,
+ 0x01, 0x11, 0x10, 0x1b, 0xfd, 0xd0, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01,
+ 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x02, 0x6b, 0x4a,
+ 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a,
+ 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x2b, 0x00, 0x41,
+ 0x00, 0x57, 0x00, 0x5b, 0x00, 0x5f, 0x00, 0x63, 0x00, 0x7a, 0x00, 0x92,
+ 0x00, 0xa8, 0x00, 0xbe, 0x00, 0xd4, 0x00, 0xea, 0x00, 0x00, 0x01, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21,
+ 0x15, 0x21, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22, 0x27, 0x26, 0x27, 0x01,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37,
+ 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x0e, 0x01, 0x27, 0x26, 0x27, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xfe, 0x1f, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14,
+ 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x43, 0x14,
+ 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f,
+ 0x0e, 0x18, 0x15, 0x43, 0x14, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18, 0x14,
+ 0xfc, 0xf6, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x01, 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x42, 0x15, 0x16, 0x11,
+ 0x0f, 0xfe, 0x24, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15,
+ 0x20, 0x21, 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x20,
+ 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17,
+ 0x11, 0x0e, 0xfe, 0x23, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x01,
+ 0xdd, 0x0e, 0x10, 0x18, 0x15, 0x20, 0x21, 0x16, 0x16, 0x11, 0x0e, 0x0e,
+ 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x02, 0x0e, 0x10, 0x11, 0x1a,
+ 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12,
+ 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10,
+ 0x10, 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11,
+ 0x1b, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x07, 0x71, 0xf6, 0xa7, 0x8d, 0x08, 0x3f,
+ 0xfc, 0x27, 0x8d, 0x02, 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10,
+ 0x1c, 0x17, 0x24, 0x25, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18,
+ 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x24, 0x25,
+ 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x01, 0x33, 0x4a, 0x17,
+ 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11,
+ 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd, 0xd0, 0x24, 0x17, 0x1a, 0x12, 0x10,
+ 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11,
+ 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b,
+ 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x02, 0x6b,
+ 0x4a, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17,
+ 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0x00, 0x00, 0x0e, 0x00, 0xb4,
+ 0xfe, 0x14, 0x05, 0x2b, 0x07, 0x6d, 0x00, 0x14, 0x00, 0x29, 0x00, 0x3e,
+ 0x00, 0x53, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x71, 0x00, 0x75, 0x00, 0x8b,
+ 0x00, 0xa1, 0x00, 0xb6, 0x00, 0xcb, 0x00, 0xe0, 0x00, 0xf5, 0x00, 0x00,
+ 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x00, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x12, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34,
+ 0x37, 0x36, 0x37, 0x01, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x03, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x34, 0x37, 0x36, 0x37, 0x36, 0x01, 0x21,
+ 0x11, 0x21, 0x37, 0x21, 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01,
+ 0x27, 0x26, 0x27, 0x01, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16,
+ 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26,
+ 0x25, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x03, 0xe0, 0x20, 0x16, 0x17, 0x0f,
+ 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10,
+ 0x18, 0x14, 0xfe, 0x1f, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19,
+ 0x14, 0x22, 0x20, 0x16, 0x17, 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x15, 0x42,
+ 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x0f, 0x19, 0x14, 0x22, 0x20, 0x16, 0x17,
+ 0x0f, 0x0f, 0x0f, 0x0e, 0x18, 0x02, 0x18, 0x20, 0x16, 0x17, 0x0f, 0x0f,
+ 0x0f, 0x0e, 0x18, 0x15, 0x42, 0x15, 0x17, 0x11, 0x0e, 0x0e, 0x10, 0x18,
+ 0x14, 0xcd, 0x21, 0x14, 0x18, 0x10, 0x0e, 0x0e, 0x0e, 0x1a, 0x14, 0x42,
+ 0x16, 0x16, 0x10, 0x0f, 0x0f, 0x0f, 0x17, 0x16, 0xfd, 0xe4, 0x04, 0x76,
+ 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e, 0x02, 0x7c, 0xfd, 0x84,
+ 0x01, 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21, 0x15, 0x17, 0x10, 0x0e,
+ 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x16, 0x11, 0x0f, 0xfe, 0x24, 0x0e,
+ 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18,
+ 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16, 0x16, 0x11, 0x01,
+ 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe, 0x23, 0x0e, 0x10, 0x17,
+ 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16,
+ 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16, 0x16,
+ 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x02, 0x0e,
+ 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c,
+ 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0xfd, 0xee, 0x10, 0x11, 0x1b, 0x17,
+ 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a,
+ 0x12, 0x02, 0x22, 0x10, 0x11, 0x1a, 0x18, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0xfd, 0xfe, 0x10, 0x11,
+ 0x1b, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x01, 0x09, 0x10, 0x11, 0x1a, 0x17, 0x26, 0x24,
+ 0x18, 0x1a, 0x11, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x49, 0x18, 0x19, 0x12,
+ 0x10, 0x06, 0x68, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x02,
+ 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x01, 0x34, 0x49, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd,
+ 0xd0, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x02, 0x6c, 0x49, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xb4, 0xfe, 0x14, 0x05, 0x2b,
+ 0x07, 0x6d, 0x00, 0x14, 0x00, 0x2a, 0x00, 0x40, 0x00, 0x55, 0x00, 0x69,
+ 0x00, 0x7f, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0xa1, 0x00, 0xb7,
+ 0x00, 0xcc, 0x00, 0xe1, 0x00, 0xf6, 0x01, 0x0b, 0x00, 0x00, 0x25, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x22,
+ 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x32, 0x17,
+ 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27,
+ 0x24, 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x00, 0x34, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01, 0x21, 0x11, 0x21, 0x37, 0x21,
+ 0x11, 0x21, 0x13, 0x21, 0x15, 0x21, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27, 0x26,
+ 0x27, 0x26, 0x10, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x01,
+ 0x34, 0x37, 0x36, 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x27, 0x26, 0x27, 0x26, 0x25, 0x34, 0x37, 0x36,
+ 0x37, 0x3e, 0x01, 0x17, 0x16, 0x17, 0x16, 0x14, 0x07, 0x06, 0x07, 0x06,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x00, 0x34, 0x37, 0x36, 0x37, 0x36, 0x32,
+ 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27,
+ 0x26, 0x27, 0x03, 0x72, 0x0e, 0x10, 0x19, 0x15, 0x40, 0x16, 0x17, 0x11,
+ 0x0d, 0x0d, 0x10, 0x18, 0x15, 0x41, 0x15, 0x17, 0x12, 0x0e, 0xfe, 0x24,
+ 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x15, 0x17, 0x12, 0x0e, 0x0e, 0x10,
+ 0x19, 0x15, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x16, 0x3f,
+ 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15, 0x20, 0x20, 0x16, 0x18,
+ 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20, 0x16, 0x17, 0x10,
+ 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11, 0xfe, 0x15, 0x0e,
+ 0x10, 0x18, 0x16, 0x3f, 0x16, 0x17, 0x12, 0x0e, 0x0e, 0x10, 0x19, 0x15,
+ 0x40, 0x16, 0x18, 0x10, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x21, 0x20,
+ 0x16, 0x17, 0x10, 0x0e, 0x0e, 0x0f, 0x18, 0x16, 0x41, 0x15, 0x17, 0x11,
+ 0xfd, 0x33, 0x04, 0x76, 0xfb, 0x8a, 0x7f, 0x03, 0x78, 0xfc, 0x88, 0x7e,
+ 0x02, 0x7c, 0xfd, 0x84, 0x01, 0xc0, 0x0f, 0x0f, 0x18, 0x15, 0x21, 0x21,
+ 0x15, 0x17, 0x10, 0x0e, 0x0e, 0x10, 0x17, 0x15, 0x41, 0x16, 0x16, 0x11,
+ 0x0f, 0xfe, 0x24, 0x0e, 0x10, 0x17, 0x15, 0x22, 0x20, 0x15, 0x18, 0x10,
+ 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10,
+ 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10, 0x18, 0x15, 0x41,
+ 0x16, 0x16, 0x11, 0x01, 0xcf, 0x0e, 0x10, 0x18, 0x15, 0x41, 0x16, 0x16,
+ 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x17, 0x11, 0x0e, 0xfe,
+ 0x23, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16, 0x18, 0x10, 0x0e, 0x0e, 0x10,
+ 0x18, 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x01, 0xdd, 0x0e, 0x10, 0x18,
+ 0x15, 0x41, 0x16, 0x16, 0x11, 0x0e, 0x0e, 0x10, 0x17, 0x16, 0x40, 0x16,
+ 0x17, 0x11, 0x91, 0x24, 0x17, 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17,
+ 0x48, 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17,
+ 0x1a, 0x13, 0x10, 0x10, 0x11, 0x1c, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x01, 0x34, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11,
+ 0x1a, 0xfd, 0xab, 0x49, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b,
+ 0x17, 0x48, 0x18, 0x1a, 0x12, 0x0f, 0x0f, 0x11, 0x1b, 0x17, 0x49, 0x17,
+ 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12,
+ 0x0f, 0x0f, 0x11, 0x1b, 0x02, 0x83, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10,
+ 0x11, 0x1a, 0x17, 0x26, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x11,
+ 0x1a, 0x05, 0xe4, 0xf6, 0xa7, 0x8d, 0x08, 0x3f, 0xfc, 0x27, 0x8d, 0x02,
+ 0x7c, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18,
+ 0x19, 0x12, 0x10, 0x10, 0x11, 0x1a, 0x18, 0x25, 0x24, 0x17, 0x1a, 0x12,
+ 0x10, 0x10, 0x10, 0x1c, 0x17, 0x49, 0x18, 0x19, 0x12, 0x10, 0x10, 0x11,
+ 0x1a, 0x18, 0x01, 0x34, 0x49, 0x17, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b,
+ 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10, 0x1b, 0xfd,
+ 0xd0, 0x24, 0x17, 0x1a, 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48,
+ 0x18, 0x1a, 0x12, 0x10, 0x10, 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a,
+ 0x12, 0x10, 0x01, 0x11, 0x11, 0x1b, 0x17, 0x48, 0x18, 0x1a, 0x12, 0x10,
+ 0x10, 0x11, 0x1b, 0x17, 0x02, 0x6c, 0x49, 0x17, 0x1a, 0x12, 0x10, 0x10,
+ 0x11, 0x1b, 0x17, 0x25, 0x24, 0x17, 0x1a, 0x11, 0x10, 0x01, 0x11, 0x10,
+ 0x1b, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x00, 0x01, 0x22,
+ 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21,
+ 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x11,
+ 0x21, 0x11, 0x01, 0x8c, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x0e, 0x03, 0xda, 0x06,
+ 0xf5, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf7, 0xd3, 0x07, 0x01, 0xf8, 0xff,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x33, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x16,
+ 0x00, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23,
+ 0x36, 0x35, 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01,
+ 0x03, 0x33, 0x03, 0x33, 0x01, 0x23, 0x27, 0x21, 0x07, 0x23, 0x04, 0x5b,
+ 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35,
+ 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x02, 0x10, 0x78, 0xf1, 0xbd, 0x8a, 0x01, 0x04, 0x77, 0x3d, 0xfe,
+ 0xd7, 0x3d, 0x77, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4,
+ 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82,
+ 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xac, 0xfe, 0x55, 0x02,
+ 0x0f, 0xfc, 0xbc, 0xda, 0xda, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18, 0x00, 0x24, 0x00, 0x30,
+ 0x00, 0x49, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35, 0x23, 0x06, 0x23, 0x22,
+ 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21,
+ 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23,
+ 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x21, 0x15, 0x21, 0x35, 0x36, 0x37,
+ 0x00, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x01, 0x06, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08,
+ 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf,
+ 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x75, 0x01,
+ 0x7d, 0xfd, 0xe6, 0x1f, 0x38, 0x01, 0x36, 0x5e, 0x4c, 0x2f, 0x6e, 0x41,
+ 0x46, 0x77, 0x34, 0x82, 0x9d, 0xfe, 0xd6, 0x33, 0x03, 0x18, 0x79, 0xfe,
+ 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4,
+ 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78,
+ 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0,
+ 0xfc, 0x3f, 0x72, 0x6e, 0x1f, 0x38, 0x01, 0x31, 0x5e, 0x42, 0x51, 0x23,
+ 0x23, 0x7b, 0x1c, 0x1c, 0x84, 0x6c, 0x8b, 0xfe, 0xe4, 0x30, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x59, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35,
+ 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x1e, 0x01,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32,
+ 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c,
+ 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c,
+ 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x57, 0x53, 0x5b, 0xab, 0x9f, 0x33,
+ 0x71, 0x3f, 0x2f, 0x6b, 0x3c, 0x62, 0x6c, 0x64, 0x61, 0x4d, 0x54, 0x55,
+ 0x57, 0x5a, 0x55, 0x24, 0x5c, 0x49, 0x42, 0x73, 0x31, 0x82, 0x98, 0x51,
+ 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc, 0x6b,
+ 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x91, 0x12, 0x6d, 0x52, 0x7c, 0x86, 0x15,
+ 0x14, 0x79, 0x1b, 0x1a, 0x4f, 0x46, 0x4a, 0x4c, 0x6c, 0x3f, 0x3c, 0x3a,
+ 0x3d, 0x12, 0x17, 0x73, 0x11, 0x12, 0x76, 0x63, 0x45, 0x60, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x33, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x16,
+ 0x00, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23,
+ 0x36, 0x35, 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x09,
+ 0x01, 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x21,
+ 0x35, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b,
+ 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd,
+ 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8,
+ 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x4d, 0xfe, 0xe9, 0x01, 0x17, 0x14, 0x95,
+ 0x7a, 0x7a, 0x81, 0xfe, 0x8b, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25,
+ 0x4e, 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26,
+ 0x01, 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78,
+ 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0x97, 0xfe,
+ 0x5d, 0x02, 0x1c, 0xfd, 0xe4, 0x6d, 0xba, 0xba, 0x79, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x51, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35,
+ 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x21, 0x15,
+ 0x21, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08,
+ 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf,
+ 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xfc, 0x01, 0xcb,
+ 0xfe, 0xa0, 0x19, 0x1a, 0x1a, 0x19, 0x91, 0x54, 0x55, 0x57, 0x57, 0x9e,
+ 0x36, 0x72, 0x3b, 0x33, 0x38, 0x38, 0x3e, 0x64, 0x75, 0x75, 0x64, 0x2f,
+ 0x5d, 0x31, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b,
+ 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04,
+ 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x5f, 0xcc, 0x09, 0x04, 0x04,
+ 0x4d, 0x4c, 0x83, 0x87, 0x4b, 0x4a, 0x12, 0x12, 0x71, 0x1b, 0x0e, 0x0d,
+ 0x66, 0xae, 0x66, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18, 0x00, 0x24, 0x00, 0x30,
+ 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17, 0x16, 0x15,
+ 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35, 0x23, 0x06,
+ 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15, 0x11, 0x14,
+ 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11,
+ 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x13,
+ 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x04, 0x5b, 0x3b, 0x01, 0x1b,
+ 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61,
+ 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x0d,
+ 0x4f, 0x2e, 0x2e, 0x2e, 0x2e, 0x4f, 0x4e, 0x2e, 0x2e, 0x2e, 0x2e, 0x9a,
+ 0x2c, 0x2d, 0x2d, 0x2c, 0x73, 0x3e, 0x3d, 0x09, 0x22, 0x34, 0x34, 0x3d,
+ 0x83, 0x4b, 0x4c, 0x4f, 0x4f, 0x82, 0x97, 0x9e, 0x61, 0x61, 0xa4, 0x2c,
+ 0x2d, 0x2d, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b,
+ 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04,
+ 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x9e, 0x34, 0x35, 0x5b, 0x5a,
+ 0x34, 0x35, 0x35, 0x34, 0x5a, 0x5b, 0x35, 0x34, 0x01, 0x62, 0x67, 0x14,
+ 0x0a, 0x0b, 0x4b, 0x4c, 0x99, 0x31, 0x1a, 0x1a, 0x4c, 0x4d, 0x84, 0x7f,
+ 0x4f, 0x4e, 0xde, 0xd4, 0xc6, 0x75, 0x76, 0x08, 0x09, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x37, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35,
+ 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x21, 0x15,
+ 0x01, 0x23, 0x01, 0x21, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0,
+ 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08,
+ 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x02, 0x2b, 0xfe, 0xc7,
+ 0x7a, 0x01, 0x27, 0xfe, 0x61, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25,
+ 0x4e, 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26,
+ 0x01, 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78,
+ 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x30, 0xfc,
+ 0xed, 0x02, 0xe4, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x3d, 0x00, 0x5b,
+ 0x00, 0x6a, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35, 0x23, 0x06, 0x23, 0x22,
+ 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21,
+ 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23,
+ 0x21, 0x22, 0x35, 0x11, 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x34, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x36, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x22, 0x07, 0x06, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61,
+ 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01,
+ 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04,
+ 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x55, 0xa8, 0x2f, 0x30, 0x5f,
+ 0x54, 0x53, 0x30, 0x30, 0x30, 0xf8, 0x4c, 0x29, 0x2a, 0x93, 0x01, 0x02,
+ 0x4a, 0x48, 0x29, 0x2a, 0x4b, 0x51, 0x32, 0x30, 0x4c, 0x4e, 0x8e, 0x8f,
+ 0x4d, 0x4d, 0x30, 0x30, 0x29, 0x2a, 0x29, 0x4d, 0x49, 0x2c, 0x2b, 0x2b,
+ 0x2a, 0x96, 0x2b, 0x2a, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e,
+ 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01,
+ 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x5b, 0x2c, 0x2b,
+ 0x4b, 0x4c, 0x56, 0x2c, 0x2b, 0x96, 0x2b, 0x5d, 0x12, 0x31, 0x32, 0x48,
+ 0x64, 0x74, 0x3a, 0x3a, 0x64, 0x4a, 0x30, 0x31, 0x12, 0x12, 0x3a, 0x37,
+ 0x50, 0x79, 0x41, 0x41, 0x41, 0x41, 0x79, 0x4e, 0x39, 0x38, 0xc6, 0x3f,
+ 0x26, 0x25, 0x25, 0x24, 0x41, 0x3f, 0x26, 0x25, 0x25, 0x24, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x50, 0x00, 0x5f, 0x00, 0x00, 0x01, 0x16,
+ 0x00, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23,
+ 0x36, 0x35, 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01,
+ 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x13, 0x32, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x04, 0x5b,
+ 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35,
+ 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x01, 0x10, 0x2c, 0x2d, 0x2d, 0x2b, 0x74, 0x3d, 0x3d, 0x09, 0x20,
+ 0x36, 0x33, 0x3e, 0x82, 0x97, 0x4e, 0x50, 0x82, 0x96, 0x4f, 0x4f, 0x60,
+ 0x62, 0xa4, 0x2c, 0x2d, 0x2d, 0xb8, 0x4f, 0x5c, 0x2e, 0x2e, 0x4f, 0x4c,
+ 0x30, 0x2f, 0x2f, 0x2e, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e,
+ 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01,
+ 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfb, 0xdf, 0x67, 0x14,
+ 0x0b, 0x0a, 0x4b, 0x4b, 0x9a, 0x2f, 0x1b, 0x1a, 0x98, 0x84, 0x81, 0x4d,
+ 0x4e, 0x6f, 0x6f, 0xd4, 0xc6, 0x75, 0x76, 0x08, 0x09, 0x01, 0x72, 0x68,
+ 0x5c, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a, 0x5c, 0x34, 0x34, 0x00, 0x00,
+ 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x3e, 0x00, 0x4a, 0x00, 0x51, 0x00, 0x00,
+ 0x01, 0x16, 0x00, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14,
+ 0x17, 0x23, 0x36, 0x35, 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36,
+ 0x00, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34,
+ 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11,
+ 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x2f, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x01, 0x11, 0x07, 0x35, 0x37, 0x33, 0x11, 0x04, 0x5b,
+ 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35,
+ 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x03, 0x86, 0x80, 0x2d, 0x2e, 0x2e, 0x2d, 0x80, 0x2d, 0x2e, 0x2e,
+ 0x6d, 0x76, 0x99, 0x99, 0x76, 0x92, 0x7e, 0x7e, 0xfe, 0x9c, 0x78, 0x7e,
+ 0x7b, 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc,
+ 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56,
+ 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87,
+ 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xc8, 0x56, 0x56, 0xac, 0xad, 0x56,
+ 0x56, 0x56, 0x56, 0xad, 0xac, 0x56, 0xaf, 0xde, 0xd3, 0xd4, 0xde, 0xde,
+ 0xd4, 0xd3, 0xde, 0xfc, 0xac, 0x02, 0xd1, 0x29, 0x74, 0x27, 0xfc, 0xbd,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35,
+ 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x05, 0x33, 0x11,
+ 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x04, 0x5b,
+ 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35,
+ 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x01, 0x87, 0x72, 0x3b, 0x39, 0x81, 0x2c, 0x24, 0x4c, 0x3f, 0x03,
+ 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc, 0x6b, 0x6b,
+ 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56, 0x78, 0xf8,
+ 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0,
+ 0x07, 0x79, 0xf0, 0xf0, 0xfd, 0xdc, 0x95, 0x46, 0x45, 0x60, 0x54, 0x6c,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18,
+ 0x00, 0x24, 0x00, 0x30, 0x00, 0x4a, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17,
+ 0x16, 0x15, 0x14, 0x23, 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35,
+ 0x23, 0x06, 0x23, 0x22, 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x0e, 0x01,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e,
+ 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x04,
+ 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c, 0x1b, 0x36, 0x89,
+ 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c, 0xfd, 0x6b, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x02, 0xe9, 0x2c, 0x5b, 0x33, 0xa3, 0xb4, 0xb5, 0xa2, 0x33,
+ 0x5c, 0x2b, 0x2a, 0x5f, 0x31, 0x70, 0x6f, 0x6e, 0x71, 0x31, 0x60, 0x29,
+ 0x03, 0x18, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc, 0x6b,
+ 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfb, 0xeb, 0x17, 0x16, 0xe3, 0xce, 0xcd, 0xe5,
+ 0x17, 0x17, 0x74, 0x22, 0x24, 0xaa, 0xac, 0xab, 0xab, 0x24, 0x22, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x11,
+ 0x00, 0x1b, 0x00, 0x34, 0x00, 0x40, 0x00, 0x4c, 0x00, 0x00, 0x01, 0x22,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x07, 0x17, 0x07, 0x12, 0x10, 0x26, 0x23, 0x22, 0x06, 0x10, 0x16,
+ 0x33, 0x32, 0x05, 0x16, 0x00, 0x17, 0x16, 0x15, 0x14, 0x23, 0x22, 0x27,
+ 0x23, 0x14, 0x17, 0x23, 0x36, 0x35, 0x23, 0x06, 0x23, 0x22, 0x35, 0x34,
+ 0x37, 0x36, 0x00, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35,
+ 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22,
+ 0x35, 0x11, 0x34, 0x02, 0xaf, 0x04, 0x0f, 0x05, 0x8e, 0x8b, 0x8c, 0x8e,
+ 0x8f, 0x8d, 0x4e, 0x4f, 0x71, 0x55, 0x09, 0x4c, 0x58, 0x56, 0x4d, 0x4d,
+ 0x56, 0x58, 0x01, 0x6b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0, 0x61, 0x3c,
+ 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08, 0x01, 0x1c,
+ 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x03, 0x2c, 0x01, 0xd7, 0xda, 0xdb, 0xd7,
+ 0xd7, 0xdb, 0xa5, 0xc9, 0x28, 0x6a, 0x38, 0x01, 0x80, 0x01, 0x70, 0x9e,
+ 0x9e, 0xfe, 0x90, 0x9e, 0x6e, 0x79, 0xfe, 0x7e, 0x26, 0x25, 0x4e, 0xe4,
+ 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4, 0x4e, 0x25, 0x26, 0x01, 0x82,
+ 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x18, 0x00, 0x24, 0x00, 0x30,
+ 0x00, 0x3b, 0x00, 0x00, 0x01, 0x16, 0x00, 0x17, 0x16, 0x15, 0x14, 0x23,
+ 0x22, 0x27, 0x23, 0x14, 0x17, 0x23, 0x36, 0x35, 0x23, 0x06, 0x23, 0x22,
+ 0x35, 0x34, 0x37, 0x36, 0x00, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21,
+ 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23,
+ 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01,
+ 0x23, 0x01, 0x11, 0x23, 0x04, 0x5b, 0x3b, 0x01, 0x1b, 0x08, 0x19, 0xb0,
+ 0x61, 0x3c, 0x1b, 0x36, 0x89, 0x35, 0x1b, 0x3c, 0x61, 0xaf, 0x18, 0x08,
+ 0x01, 0x1c, 0xfd, 0x6b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x72, 0x01, 0x46, 0x94,
+ 0xfe, 0x91, 0x01, 0x8c, 0x96, 0xfe, 0x9f, 0x72, 0x03, 0x18, 0x79, 0xfe,
+ 0x7e, 0x26, 0x25, 0x4e, 0xe4, 0x9b, 0xcc, 0x6b, 0x6b, 0xcc, 0x9b, 0xe4,
+ 0x4e, 0x25, 0x26, 0x01, 0x82, 0x04, 0x56, 0x78, 0xf8, 0x87, 0x78, 0x78,
+ 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0,
+ 0xf0, 0xfe, 0x9f, 0x01, 0x61, 0xfe, 0x7a, 0xfe, 0x42, 0x01, 0x93, 0xfe,
+ 0x6d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x38,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x01, 0x03, 0x33, 0x03, 0x33, 0x01, 0x23, 0x27, 0x21, 0x07, 0x23, 0x04,
+ 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4, 0xfe,
+ 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x02, 0x10, 0x78, 0xf1, 0xbd, 0x8a, 0x01, 0x04, 0x77, 0x3d, 0xfe,
+ 0xd7, 0x3d, 0x77, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b, 0x9e,
+ 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47, 0x41,
+ 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xac, 0xfe, 0x55, 0x02,
+ 0x0f, 0xfc, 0xbc, 0xda, 0xda, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d,
+ 0x00, 0x46, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x01, 0x21, 0x15, 0x21, 0x35, 0x36, 0x37, 0x00, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15,
+ 0x14, 0x01, 0x06, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11,
+ 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31,
+ 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x75, 0x01, 0x7d, 0xfd, 0xe6, 0x1f,
+ 0x38, 0x01, 0x36, 0x5e, 0x4c, 0x2f, 0x6e, 0x41, 0x46, 0x77, 0x34, 0x82,
+ 0x9d, 0xfe, 0xd6, 0x33, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b,
+ 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47,
+ 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfc, 0x3f, 0x72, 0x6e,
+ 0x1f, 0x38, 0x01, 0x31, 0x5e, 0x42, 0x51, 0x23, 0x23, 0x7b, 0x1c, 0x1c,
+ 0x84, 0x6c, 0x8b, 0xfe, 0xe4, 0x30, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d,
+ 0x00, 0x56, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x01, 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x27,
+ 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e,
+ 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x04, 0x51, 0x14, 0x31, 0x38,
+ 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38,
+ 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x57, 0x53,
+ 0x5b, 0xab, 0x9f, 0x33, 0x71, 0x3f, 0x2f, 0x6b, 0x3c, 0x62, 0x6c, 0x64,
+ 0x61, 0x4d, 0x54, 0x55, 0x57, 0x5a, 0x55, 0x24, 0x5c, 0x49, 0x42, 0x73,
+ 0x31, 0x82, 0x98, 0x51, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b,
+ 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47,
+ 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x91, 0x12, 0x6d,
+ 0x52, 0x7c, 0x86, 0x15, 0x14, 0x79, 0x1b, 0x1a, 0x4f, 0x46, 0x4a, 0x4c,
+ 0x6c, 0x3f, 0x3c, 0x3a, 0x3d, 0x12, 0x17, 0x73, 0x11, 0x12, 0x76, 0x63,
+ 0x45, 0x60, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x3b,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x09, 0x01, 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35,
+ 0x21, 0x35, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71,
+ 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd,
+ 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8,
+ 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x4d, 0xfe, 0xe9, 0x01, 0x17, 0x14, 0x95,
+ 0x7a, 0x7a, 0x81, 0xfe, 0x8b, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d,
+ 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95,
+ 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78,
+ 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0x97, 0xfe,
+ 0x5d, 0x02, 0x1c, 0xfd, 0xe4, 0x6d, 0xba, 0xba, 0x79, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x21, 0x00, 0x2d, 0x00, 0x4e, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33,
+ 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14,
+ 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x21, 0x15, 0x21, 0x15, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11,
+ 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31,
+ 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xfc, 0x01, 0xcb, 0xfe, 0xa0, 0x19, 0x1a,
+ 0x1a, 0x19, 0x91, 0x54, 0x55, 0x57, 0x57, 0x9e, 0x36, 0x72, 0x3b, 0x33,
+ 0x38, 0x38, 0x3e, 0x64, 0x75, 0x75, 0x64, 0x2f, 0x5d, 0x31, 0x01, 0xb6,
+ 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92,
+ 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87,
+ 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07,
+ 0x79, 0xf0, 0xf0, 0x5f, 0xcc, 0x09, 0x04, 0x04, 0x4d, 0x4c, 0x83, 0x87,
+ 0x4b, 0x4a, 0x12, 0x12, 0x71, 0x1b, 0x0e, 0x0d, 0x66, 0xae, 0x66, 0x14,
+ 0x15, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3d, 0x00, 0x5d,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x13, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x07, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4,
+ 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x02, 0x0d, 0x4f, 0x2e, 0x2e, 0x2e, 0x2e, 0x4f, 0x4e, 0x2e,
+ 0x2e, 0x2e, 0x2e, 0x9a, 0x2c, 0x2d, 0x2d, 0x2c, 0x73, 0x3e, 0x3d, 0x09,
+ 0x22, 0x34, 0x34, 0x3d, 0x83, 0x4b, 0x4c, 0x4f, 0x4f, 0x82, 0x97, 0x9e,
+ 0x61, 0x61, 0xa4, 0x2c, 0x2d, 0x2d, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95,
+ 0x2d, 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d,
+ 0x95, 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79,
+ 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x9e,
+ 0x34, 0x35, 0x5b, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a, 0x5b, 0x35, 0x34,
+ 0x01, 0x62, 0x67, 0x14, 0x0a, 0x0b, 0x4b, 0x4c, 0x99, 0x31, 0x1a, 0x1a,
+ 0x4c, 0x4d, 0x84, 0x7f, 0x4f, 0x4e, 0xde, 0xd4, 0xc6, 0x75, 0x76, 0x08,
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x34, 0x00, 0x00,
+ 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x09,
+ 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x01, 0x22,
+ 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21,
+ 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17, 0x21,
+ 0x15, 0x01, 0x23, 0x01, 0x21, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d,
+ 0x38, 0x11, 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e,
+ 0x36, 0x31, 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x02, 0x2b, 0xfe, 0xc7,
+ 0x7a, 0x01, 0x27, 0xfe, 0x61, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d,
+ 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95,
+ 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78,
+ 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x30, 0xfc,
+ 0xed, 0x02, 0xe4, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3a, 0x00, 0x58,
+ 0x00, 0x67, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x34, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x20, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06,
+ 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4,
+ 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x02, 0x55, 0xa8, 0x2f, 0x30, 0x5f, 0x54, 0x53, 0x30, 0x30,
+ 0x30, 0xf8, 0x4c, 0x29, 0x2a, 0x93, 0x01, 0x02, 0x4a, 0x48, 0x29, 0x2a,
+ 0x4b, 0x51, 0x32, 0x30, 0x4c, 0x4e, 0x8e, 0x8f, 0x4d, 0x4d, 0x30, 0x30,
+ 0x29, 0x2a, 0x29, 0x4d, 0x49, 0x2c, 0x2b, 0x2b, 0x2a, 0x96, 0x2b, 0x2a,
+ 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b, 0x9e, 0x9f, 0xfe, 0x6e,
+ 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47, 0x41, 0x04, 0xcc, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x5b, 0x2c, 0x2b, 0x4b, 0x4c, 0x56, 0x2c,
+ 0x2b, 0x96, 0x2b, 0x5d, 0x12, 0x31, 0x32, 0x48, 0x64, 0x74, 0x3a, 0x3a,
+ 0x64, 0x4a, 0x30, 0x31, 0x12, 0x12, 0x3a, 0x37, 0x50, 0x79, 0x41, 0x41,
+ 0x41, 0x41, 0x79, 0x4e, 0x39, 0x38, 0xc6, 0x3f, 0x26, 0x25, 0x25, 0x24,
+ 0x41, 0x3f, 0x26, 0x25, 0x25, 0x24, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d,
+ 0x00, 0x4d, 0x00, 0x5c, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21,
+ 0x22, 0x35, 0x11, 0x34, 0x01, 0x35, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x13, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11,
+ 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31,
+ 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x10, 0x2c, 0x2d, 0x2d, 0x2b, 0x74,
+ 0x3d, 0x3d, 0x09, 0x20, 0x36, 0x33, 0x3e, 0x82, 0x97, 0x4e, 0x50, 0x82,
+ 0x96, 0x4f, 0x4f, 0x60, 0x62, 0xa4, 0x2c, 0x2d, 0x2d, 0xb8, 0x4f, 0x5c,
+ 0x2e, 0x2e, 0x4f, 0x4c, 0x30, 0x2f, 0x2f, 0x2e, 0x01, 0xb6, 0x76, 0x3e,
+ 0x47, 0x95, 0x2d, 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0,
+ 0x3b, 0x2d, 0x95, 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78,
+ 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0,
+ 0xfb, 0xdf, 0x67, 0x14, 0x0b, 0x0a, 0x4b, 0x4b, 0x9a, 0x2f, 0x1b, 0x1a,
+ 0x98, 0x84, 0x81, 0x4d, 0x4e, 0x6f, 0x6f, 0xd4, 0xc6, 0x75, 0x76, 0x08,
+ 0x09, 0x01, 0x72, 0x68, 0x5c, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a, 0x5c,
+ 0x34, 0x34, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3b, 0x00, 0x47,
+ 0x00, 0x4e, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x2f, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x01, 0x11, 0x07, 0x35, 0x37, 0x33, 0x11, 0x04,
+ 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4, 0xfe,
+ 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x03, 0x86, 0x80, 0x2d, 0x2e, 0x2e, 0x2d, 0x80, 0x2d, 0x2e, 0x2e,
+ 0x6d, 0x76, 0x99, 0x99, 0x76, 0x92, 0x7e, 0x7e, 0xfe, 0x9c, 0x78, 0x7e,
+ 0x7b, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b, 0x9e, 0x9f, 0xfe,
+ 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47, 0x41, 0x04, 0xcc,
+ 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87,
+ 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xc8, 0x56, 0x56, 0xac, 0xad, 0x56,
+ 0x56, 0x56, 0x56, 0xad, 0xac, 0x56, 0xaf, 0xde, 0xd3, 0xd4, 0xde, 0xde,
+ 0xd4, 0xd3, 0xde, 0xfc, 0xac, 0x02, 0xd1, 0x29, 0x74, 0x27, 0xfc, 0xbd,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15,
+ 0x00, 0x21, 0x00, 0x2d, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33,
+ 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14,
+ 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x05, 0x33, 0x11, 0x14, 0x07, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x04, 0x51, 0x14, 0x31, 0x38,
+ 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38,
+ 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x87, 0x72,
+ 0x3b, 0x39, 0x81, 0x2c, 0x24, 0x4c, 0x3f, 0x01, 0xb6, 0x76, 0x3e, 0x47,
+ 0x95, 0x2d, 0x3b, 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b,
+ 0x2d, 0x95, 0x47, 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0,
+ 0xfd, 0xdc, 0x95, 0x46, 0x45, 0x60, 0x54, 0x6c, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d,
+ 0x00, 0x47, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x01, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x15, 0x14, 0x16,
+ 0x33, 0x32, 0x36, 0x37, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38,
+ 0x11, 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36,
+ 0x31, 0xfd, 0x4f, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04,
+ 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0xe9, 0x2c, 0x5b, 0x33, 0xa3,
+ 0xb4, 0xb5, 0xa2, 0x33, 0x5c, 0x2b, 0x2a, 0x5f, 0x31, 0x70, 0x6f, 0x6e,
+ 0x71, 0x31, 0x60, 0x29, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b,
+ 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47,
+ 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfb, 0xeb, 0x17, 0x16,
+ 0xe3, 0xce, 0xcd, 0xe5, 0x17, 0x17, 0x74, 0x22, 0x24, 0xaa, 0xac, 0xab,
+ 0xab, 0x24, 0x22, 0x00, 0x00, 0x05, 0x00, 0xc3, 0xfe, 0x14, 0x06, 0xb9,
+ 0x07, 0x6d, 0x00, 0x11, 0x00, 0x1b, 0x00, 0x31, 0x00, 0x3d, 0x00, 0x49,
+ 0x00, 0x00, 0x01, 0x22, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x07, 0x12, 0x10, 0x26, 0x23,
+ 0x22, 0x06, 0x10, 0x16, 0x33, 0x32, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21,
+ 0x22, 0x35, 0x11, 0x34, 0x02, 0xaf, 0x04, 0x0f, 0x05, 0x8e, 0x8b, 0x8c,
+ 0x8e, 0x8f, 0x8d, 0x4e, 0x4f, 0x71, 0x55, 0x09, 0x4c, 0x58, 0x56, 0x4d,
+ 0x4d, 0x56, 0x58, 0x01, 0x61, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11,
+ 0x71, 0xfe, 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31,
+ 0xfd, 0x5e, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x03, 0x2c, 0x01, 0xd7, 0xda, 0xdb, 0xd7,
+ 0xd7, 0xdb, 0xa5, 0xc9, 0x28, 0x6a, 0x38, 0x01, 0x80, 0x01, 0x70, 0x9e,
+ 0x9e, 0xfe, 0x90, 0x9e, 0xfe, 0x30, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b,
+ 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47,
+ 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d,
+ 0x00, 0x38, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x09, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x17, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11,
+ 0x23, 0x04, 0x51, 0x14, 0x31, 0x38, 0x4c, 0x7d, 0x38, 0x11, 0x71, 0xfe,
+ 0xe4, 0xfe, 0xe0, 0x71, 0x12, 0x38, 0x7c, 0x4e, 0x36, 0x31, 0xfd, 0x4f,
+ 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8,
+ 0xfb, 0xba, 0xd8, 0xd8, 0x72, 0x01, 0x46, 0x94, 0xfe, 0x91, 0x01, 0x8c,
+ 0x96, 0xfe, 0x9f, 0x72, 0x01, 0xb6, 0x76, 0x3e, 0x47, 0x95, 0x2d, 0x3b,
+ 0x9e, 0x9f, 0xfe, 0x6e, 0x01, 0x92, 0x9d, 0xa0, 0x3b, 0x2d, 0x95, 0x47,
+ 0x41, 0x04, 0xcc, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0xfe, 0x9f, 0x01,
+ 0x61, 0xfe, 0x7a, 0xfe, 0x42, 0x01, 0x93, 0xfe, 0x6d, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06,
+ 0x00, 0x12, 0x00, 0x1e, 0x00, 0x21, 0x00, 0x29, 0x00, 0x00, 0x01, 0x30,
+ 0x09, 0x01, 0x30, 0x01, 0x30, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21,
+ 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23,
+ 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x03, 0x33, 0x03, 0x33, 0x01, 0x23,
+ 0x27, 0x21, 0x07, 0x23, 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f,
+ 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x10, 0x78, 0xf1, 0xbd, 0x8a, 0x01,
+ 0x04, 0x77, 0x3d, 0xfe, 0xd7, 0x3d, 0x77, 0x02, 0xf9, 0xfd, 0xf2, 0xfd,
+ 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79,
+ 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xac,
+ 0xfe, 0x55, 0x02, 0x0f, 0xfc, 0xbc, 0xda, 0xda, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x37, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01,
+ 0x21, 0x15, 0x21, 0x35, 0x36, 0x37, 0x00, 0x35, 0x34, 0x26, 0x23, 0x22,
+ 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x01, 0x06,
+ 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x01, 0x75, 0x01, 0x7d, 0xfd, 0xe6, 0x1f, 0x38, 0x01, 0x36, 0x5e,
+ 0x4c, 0x2f, 0x6e, 0x41, 0x46, 0x77, 0x34, 0x82, 0x9d, 0xfe, 0xd6, 0x33,
+ 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8,
+ 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0,
+ 0x07, 0x79, 0xf0, 0xfc, 0x3f, 0x72, 0x6e, 0x1f, 0x38, 0x01, 0x31, 0x5e,
+ 0x42, 0x51, 0x23, 0x23, 0x7b, 0x1c, 0x1c, 0x84, 0x6c, 0x8b, 0xfe, 0xe4,
+ 0x30, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x47, 0x00, 0x00,
+ 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01, 0x22, 0x15, 0x11, 0x14,
+ 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11,
+ 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x1e, 0x01, 0x15, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35,
+ 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x02, 0x57, 0x53, 0x5b, 0xab, 0x9f, 0x33, 0x71, 0x3f, 0x2f, 0x6b,
+ 0x3c, 0x62, 0x6c, 0x64, 0x61, 0x4d, 0x54, 0x55, 0x57, 0x5a, 0x55, 0x24,
+ 0x5c, 0x49, 0x42, 0x73, 0x31, 0x82, 0x98, 0x51, 0x02, 0xf9, 0xfd, 0xf2,
+ 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd,
+ 0x91, 0x12, 0x6d, 0x52, 0x7c, 0x86, 0x15, 0x14, 0x79, 0x1b, 0x1a, 0x4f,
+ 0x46, 0x4a, 0x4c, 0x6c, 0x3f, 0x3c, 0x3a, 0x3d, 0x12, 0x17, 0x73, 0x11,
+ 0x12, 0x76, 0x63, 0x45, 0x60, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x21, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01,
+ 0x30, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34,
+ 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11,
+ 0x34, 0x09, 0x01, 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23,
+ 0x35, 0x21, 0x35, 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe,
+ 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8,
+ 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x4d, 0xfe, 0xe9, 0x01, 0x17, 0x14, 0x95,
+ 0x7a, 0x7a, 0x81, 0xfe, 0x8b, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02,
+ 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0x97, 0xfe, 0x5d,
+ 0x02, 0x1c, 0xfd, 0xe4, 0x6d, 0xba, 0xba, 0x79, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x3f, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17,
+ 0x21, 0x15, 0x21, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16, 0x33,
+ 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x04, 0x4f, 0x01, 0x70,
+ 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xfc, 0x01, 0xcb,
+ 0xfe, 0xa0, 0x19, 0x1a, 0x1a, 0x19, 0x91, 0x54, 0x55, 0x57, 0x57, 0x9e,
+ 0x36, 0x72, 0x3b, 0x33, 0x38, 0x38, 0x3e, 0x64, 0x75, 0x75, 0x64, 0x2f,
+ 0x5d, 0x31, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a,
+ 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87,
+ 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x5f, 0xcc, 0x09, 0x04, 0x04, 0x4d,
+ 0x4c, 0x83, 0x87, 0x4b, 0x4a, 0x12, 0x12, 0x71, 0x1b, 0x0e, 0x0d, 0x66,
+ 0xae, 0x66, 0x14, 0x15, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x2e, 0x00, 0x4e,
+ 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x13, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x04, 0x4f, 0x01,
+ 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x0d,
+ 0x4f, 0x2e, 0x2e, 0x2e, 0x2e, 0x4f, 0x4e, 0x2e, 0x2e, 0x2e, 0x2e, 0x9a,
+ 0x2c, 0x2d, 0x2d, 0x2c, 0x73, 0x3e, 0x3d, 0x09, 0x22, 0x34, 0x34, 0x3d,
+ 0x83, 0x4b, 0x4c, 0x4f, 0x4f, 0x82, 0x97, 0x9e, 0x61, 0x61, 0xa4, 0x2c,
+ 0x2d, 0x2d, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a,
+ 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87,
+ 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x9e, 0x34, 0x35, 0x5b, 0x5a, 0x34,
+ 0x35, 0x35, 0x34, 0x5a, 0x5b, 0x35, 0x34, 0x01, 0x62, 0x67, 0x14, 0x0a,
+ 0x0b, 0x4b, 0x4c, 0x99, 0x31, 0x1a, 0x1a, 0x4c, 0x4d, 0x84, 0x7f, 0x4f,
+ 0x4e, 0xde, 0xd4, 0xc6, 0x75, 0x76, 0x08, 0x09, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x25, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17,
+ 0x21, 0x15, 0x01, 0x23, 0x01, 0x21, 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90,
+ 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x02, 0x2b, 0xfe, 0xc7,
+ 0x7a, 0x01, 0x27, 0xfe, 0x61, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02,
+ 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78,
+ 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x30, 0xfc, 0xed,
+ 0x02, 0xe4, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x2b, 0x00, 0x49,
+ 0x00, 0x58, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x00,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x34, 0x2f,
+ 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x20, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x04, 0x4f, 0x01,
+ 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x55,
+ 0xa8, 0x2f, 0x30, 0x5f, 0x54, 0x53, 0x30, 0x30, 0x30, 0xf8, 0x4c, 0x29,
+ 0x2a, 0x93, 0x01, 0x02, 0x4a, 0x48, 0x29, 0x2a, 0x4b, 0x51, 0x32, 0x30,
+ 0x4c, 0x4e, 0x8e, 0x8f, 0x4d, 0x4d, 0x30, 0x30, 0x29, 0x2a, 0x29, 0x4d,
+ 0x49, 0x2c, 0x2b, 0x2b, 0x2a, 0x96, 0x2b, 0x2a, 0x02, 0xf9, 0xfd, 0xf2,
+ 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd,
+ 0x5b, 0x2c, 0x2b, 0x4b, 0x4c, 0x56, 0x2c, 0x2b, 0x96, 0x2b, 0x5d, 0x12,
+ 0x31, 0x32, 0x48, 0x64, 0x74, 0x3a, 0x3a, 0x64, 0x4a, 0x30, 0x31, 0x12,
+ 0x12, 0x3a, 0x37, 0x50, 0x79, 0x41, 0x41, 0x41, 0x41, 0x79, 0x4e, 0x39,
+ 0x38, 0xc6, 0x3f, 0x26, 0x25, 0x25, 0x24, 0x41, 0x3f, 0x26, 0x25, 0x25,
+ 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x4d,
+ 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01, 0x22, 0x15,
+ 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32,
+ 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x35, 0x16,
+ 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x13, 0x32, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x04, 0x4f, 0x01, 0x70,
+ 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c,
+ 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x10, 0x2c,
+ 0x2d, 0x2d, 0x2b, 0x74, 0x3d, 0x3d, 0x09, 0x20, 0x36, 0x33, 0x3e, 0x82,
+ 0x97, 0x4e, 0x50, 0x82, 0x96, 0x4f, 0x4f, 0x60, 0x62, 0xa4, 0x2c, 0x2d,
+ 0x2d, 0xb8, 0x4f, 0x5c, 0x2e, 0x2e, 0x4f, 0x4c, 0x30, 0x2f, 0x2f, 0x2e,
+ 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8,
+ 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0,
+ 0x07, 0x79, 0xf0, 0xfb, 0xdf, 0x67, 0x14, 0x0b, 0x0a, 0x4b, 0x4b, 0x9a,
+ 0x2f, 0x1b, 0x1a, 0x98, 0x84, 0x81, 0x4d, 0x4e, 0x6f, 0x6f, 0xd4, 0xc6,
+ 0x75, 0x76, 0x08, 0x09, 0x01, 0x72, 0x68, 0x5c, 0x5a, 0x34, 0x35, 0x35,
+ 0x34, 0x5a, 0x5c, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x2c, 0x00, 0x38, 0x00, 0x3f, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01,
+ 0x30, 0x01, 0x30, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35,
+ 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22,
+ 0x35, 0x11, 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0x11, 0x07, 0x35, 0x37, 0x33, 0x11,
+ 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x03, 0x86, 0x80, 0x2d, 0x2e, 0x2e, 0x2d, 0x80, 0x2d, 0x2e, 0x2e,
+ 0x6d, 0x76, 0x99, 0x99, 0x76, 0x92, 0x7e, 0x7e, 0xfe, 0x9c, 0x78, 0x7e,
+ 0x7b, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xc8, 0x56, 0x56, 0xac, 0xad, 0x56, 0x56,
+ 0x56, 0x56, 0xad, 0xac, 0x56, 0xaf, 0xde, 0xd3, 0xd4, 0xde, 0xde, 0xd4,
+ 0xd3, 0xde, 0xfc, 0xac, 0x02, 0xd1, 0x29, 0x74, 0x27, 0xfc, 0xbd, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06,
+ 0x00, 0x12, 0x00, 0x1e, 0x00, 0x2b, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01,
+ 0x30, 0x01, 0x30, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35,
+ 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22,
+ 0x35, 0x11, 0x34, 0x05, 0x33, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x36, 0x35, 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f,
+ 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46,
+ 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x87, 0x72, 0x3b, 0x39, 0x81, 0x2c,
+ 0x24, 0x4c, 0x3f, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06,
+ 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0xfd, 0xdc, 0x95, 0x46, 0x45,
+ 0x60, 0x54, 0x6c, 0x00, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e, 0x00, 0x38, 0x00, 0x00,
+ 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01, 0x22, 0x15, 0x11, 0x14,
+ 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11,
+ 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x0e, 0x01, 0x23, 0x22,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01, 0x23,
+ 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x04, 0x4f, 0x01,
+ 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0xe9,
+ 0x2c, 0x5b, 0x33, 0xa3, 0xb4, 0xb5, 0xa2, 0x33, 0x5c, 0x2b, 0x2a, 0x5f,
+ 0x31, 0x70, 0x6f, 0x6e, 0x71, 0x31, 0x60, 0x29, 0x02, 0xf9, 0xfd, 0xf2,
+ 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfb,
+ 0xeb, 0x17, 0x16, 0xe3, 0xce, 0xcd, 0xe5, 0x17, 0x17, 0x74, 0x22, 0x24,
+ 0xaa, 0xac, 0xab, 0xab, 0x24, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x18, 0x00, 0x22,
+ 0x00, 0x2e, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01,
+ 0x30, 0x03, 0x22, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x07, 0x12, 0x10, 0x26, 0x23, 0x22,
+ 0x06, 0x10, 0x16, 0x33, 0x32, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21,
+ 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23,
+ 0x21, 0x22, 0x35, 0x11, 0x34, 0x04, 0x4f, 0x01, 0x70, 0xfe, 0x90, 0xfe,
+ 0x8f, 0x2f, 0x04, 0x0f, 0x05, 0x8e, 0x8b, 0x8c, 0x8e, 0x8f, 0x8d, 0x4e,
+ 0x4f, 0x71, 0x55, 0x09, 0x4c, 0x58, 0x56, 0x4d, 0x4d, 0x56, 0x58, 0xfe,
+ 0x9c, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8,
+ 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06,
+ 0x02, 0x41, 0x01, 0xd7, 0xda, 0xdb, 0xd7, 0xd7, 0xdb, 0xa5, 0xc9, 0x28,
+ 0x6a, 0x38, 0x01, 0x80, 0x01, 0x70, 0x9e, 0x9e, 0xfe, 0x90, 0x9e, 0x03,
+ 0x6f, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x06, 0x00, 0x12, 0x00, 0x1e,
+ 0x00, 0x29, 0x00, 0x00, 0x01, 0x30, 0x09, 0x01, 0x30, 0x01, 0x30, 0x01,
+ 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25,
+ 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x17,
+ 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0x04, 0x4f,
+ 0x01, 0x70, 0xfe, 0x90, 0xfe, 0x8f, 0xfe, 0xae, 0x6c, 0x6c, 0x04, 0x46,
+ 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8,
+ 0x72, 0x01, 0x46, 0x94, 0xfe, 0x91, 0x01, 0x8c, 0x96, 0xfe, 0x9f, 0x72,
+ 0x02, 0xf9, 0xfd, 0xf2, 0xfd, 0xfa, 0x02, 0x06, 0x06, 0x0a, 0x78, 0xf8,
+ 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0,
+ 0x07, 0x79, 0xf0, 0xf0, 0xfe, 0x9f, 0x01, 0x61, 0xfe, 0x7a, 0xfe, 0x42,
+ 0x01, 0x93, 0xfe, 0x6d, 0x00, 0x03, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x09, 0x00, 0x15, 0x00, 0x21, 0x00, 0x00, 0x01, 0x13,
+ 0x21, 0x01, 0x13, 0x09, 0x01, 0x13, 0x01, 0x21, 0x01, 0x22, 0x15, 0x11,
+ 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15,
+ 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x03, 0xaf, 0x80, 0x01,
+ 0xa3, 0xfe, 0xae, 0x81, 0xfe, 0xae, 0xfe, 0xad, 0x82, 0xfe, 0xae, 0x01,
+ 0xa2, 0xfe, 0x5e, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04,
+ 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x05, 0x31, 0xfe, 0x47, 0xfe, 0xef,
+ 0xfe, 0x47, 0x01, 0x11, 0xfe, 0xef, 0x01, 0xb9, 0x01, 0x11, 0x03, 0x7d,
+ 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87,
+ 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b,
+ 0x00, 0x3e, 0x00, 0x46, 0x00, 0x00, 0x05, 0x36, 0x35, 0x06, 0x27, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34,
+ 0x20, 0x15, 0x14, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x27, 0x14, 0x17, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33,
+ 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14,
+ 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x03, 0x33, 0x03, 0x33, 0x01,
+ 0x23, 0x27, 0x21, 0x07, 0x23, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17,
+ 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44,
+ 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x02, 0x10, 0x78, 0xf1, 0xbd, 0x8a, 0x01, 0x04, 0x77, 0x3d,
+ 0xfe, 0xd7, 0x3d, 0x77, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43,
+ 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13,
+ 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07,
+ 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8,
+ 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0xac, 0xfe, 0x55, 0x02, 0x0f,
+ 0xfc, 0xbc, 0xda, 0xda, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x54, 0x00, 0x00,
+ 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x01, 0x21, 0x15, 0x21, 0x35, 0x36, 0x37, 0x00, 0x35, 0x34, 0x26, 0x23,
+ 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14, 0x01,
+ 0x06, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a,
+ 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84,
+ 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x75,
+ 0x01, 0x7d, 0xfd, 0xe6, 0x1f, 0x38, 0x01, 0x36, 0x5e, 0x4c, 0x2f, 0x6e,
+ 0x41, 0x46, 0x77, 0x34, 0x82, 0x9d, 0xfe, 0xd6, 0x33, 0xfc, 0x4c, 0xfb,
+ 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a,
+ 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01,
+ 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfc,
+ 0x3f, 0x72, 0x6e, 0x1f, 0x38, 0x01, 0x31, 0x5e, 0x42, 0x51, 0x23, 0x23,
+ 0x7b, 0x1c, 0x1c, 0x84, 0x6c, 0x8b, 0xfe, 0xe4, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x64, 0x00, 0x00, 0x05, 0x36, 0x35, 0x06,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26,
+ 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17, 0x01, 0x22, 0x15, 0x11,
+ 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15,
+ 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x1e, 0x01, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x36, 0x35, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x07, 0x35, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x06, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a,
+ 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84,
+ 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x57,
+ 0x53, 0x5b, 0xab, 0x9f, 0x33, 0x71, 0x3f, 0x2f, 0x6b, 0x3c, 0x62, 0x6c,
+ 0x64, 0x61, 0x4d, 0x54, 0x55, 0x57, 0x5a, 0x55, 0x24, 0x5c, 0x49, 0x42,
+ 0x73, 0x31, 0x82, 0x98, 0x51, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c,
+ 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82,
+ 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c,
+ 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x91, 0x12, 0x6d, 0x52,
+ 0x7c, 0x86, 0x15, 0x14, 0x79, 0x1b, 0x1a, 0x4f, 0x46, 0x4a, 0x4c, 0x6c,
+ 0x3f, 0x3c, 0x3a, 0x3d, 0x12, 0x17, 0x73, 0x11, 0x12, 0x76, 0x63, 0x45,
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x3e, 0x00, 0x49,
+ 0x00, 0x00, 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27,
+ 0x14, 0x17, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x09, 0x01, 0x21, 0x03, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15,
+ 0x23, 0x35, 0x21, 0x35, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17, 0x83,
+ 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a,
+ 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c,
+ 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba,
+ 0xd8, 0x02, 0x4d, 0xfe, 0xe9, 0x01, 0x17, 0x14, 0x95, 0x7a, 0x7a, 0x81,
+ 0xfe, 0x8b, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34,
+ 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24,
+ 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfe, 0x97, 0xfe, 0x5d, 0x02, 0x1c, 0xfd, 0xe4,
+ 0x6d, 0xba, 0xba, 0x79, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x5c, 0x00, 0x00,
+ 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x17, 0x21, 0x15, 0x21, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x26, 0x27, 0x35, 0x16, 0x17, 0x16,
+ 0x33, 0x32, 0x36, 0x34, 0x26, 0x23, 0x22, 0x06, 0x07, 0x03, 0xe6, 0x33,
+ 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01,
+ 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42,
+ 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04,
+ 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xfc, 0x01, 0xcb, 0xfe, 0xa0, 0x19,
+ 0x1a, 0x1a, 0x19, 0x91, 0x54, 0x55, 0x57, 0x57, 0x9e, 0x36, 0x72, 0x3b,
+ 0x33, 0x38, 0x38, 0x3e, 0x64, 0x75, 0x75, 0x64, 0x2f, 0x5d, 0x31, 0xfc,
+ 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13,
+ 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46,
+ 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78,
+ 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79,
+ 0xf0, 0xf0, 0x5f, 0xcc, 0x09, 0x04, 0x04, 0x4d, 0x4c, 0x83, 0x87, 0x4b,
+ 0x4a, 0x12, 0x12, 0x71, 0x1b, 0x0e, 0x0d, 0x66, 0xae, 0x66, 0x14, 0x15,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x4b, 0x00, 0x6b, 0x00, 0x00, 0x05, 0x36,
+ 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17, 0x01, 0x22,
+ 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21,
+ 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x22,
+ 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x13, 0x15, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x03, 0xe6,
+ 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70,
+ 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98,
+ 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x0d, 0x4f, 0x2e, 0x2e,
+ 0x2e, 0x2e, 0x4f, 0x4e, 0x2e, 0x2e, 0x2e, 0x2e, 0x9a, 0x2c, 0x2d, 0x2d,
+ 0x2c, 0x73, 0x3e, 0x3d, 0x09, 0x22, 0x34, 0x34, 0x3d, 0x83, 0x4b, 0x4c,
+ 0x4f, 0x4f, 0x82, 0x97, 0x9e, 0x61, 0x61, 0xa4, 0x2c, 0x2d, 0x2d, 0xfc,
+ 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13,
+ 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46,
+ 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78,
+ 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79,
+ 0xf0, 0xfd, 0x9e, 0x34, 0x35, 0x5b, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a,
+ 0x5b, 0x35, 0x34, 0x01, 0x62, 0x67, 0x14, 0x0a, 0x0b, 0x4b, 0x4c, 0x99,
+ 0x31, 0x1a, 0x1a, 0x4c, 0x4d, 0x84, 0x7f, 0x4f, 0x4e, 0xde, 0xd4, 0xc6,
+ 0x75, 0x76, 0x08, 0x09, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x42, 0x00, 0x00,
+ 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x17, 0x21, 0x15, 0x01, 0x23, 0x01, 0x21, 0x03, 0xe6, 0x33, 0x40, 0x99,
+ 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70,
+ 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd,
+ 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8,
+ 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x02, 0x2b, 0xfe, 0xc7, 0x7a, 0x01, 0x27,
+ 0xfe, 0x61, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34,
+ 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24,
+ 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xf0, 0x30, 0xfc, 0xed, 0x02, 0xe4, 0x00, 0x00,
+ 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x48, 0x00, 0x66, 0x00, 0x75, 0x00, 0x00,
+ 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x37, 0x36, 0x34,
+ 0x2f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x20, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x22, 0x07, 0x06, 0x03, 0xe6,
+ 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70,
+ 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98,
+ 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0x55, 0xa8, 0x2f, 0x30,
+ 0x5f, 0x54, 0x53, 0x30, 0x30, 0x30, 0xf8, 0x4c, 0x29, 0x2a, 0x93, 0x01,
+ 0x02, 0x4a, 0x48, 0x29, 0x2a, 0x4b, 0x51, 0x32, 0x30, 0x4c, 0x4e, 0x8e,
+ 0x8f, 0x4d, 0x4d, 0x30, 0x30, 0x29, 0x2a, 0x29, 0x4d, 0x49, 0x2c, 0x2b,
+ 0x2b, 0x2a, 0x96, 0x2b, 0x2a, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c,
+ 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82,
+ 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c,
+ 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfd, 0x5b, 0x2c, 0x2b, 0x4b,
+ 0x4c, 0x56, 0x2c, 0x2b, 0x96, 0x2b, 0x5d, 0x12, 0x31, 0x32, 0x48, 0x64,
+ 0x74, 0x3a, 0x3a, 0x64, 0x4a, 0x30, 0x31, 0x12, 0x12, 0x3a, 0x37, 0x50,
+ 0x79, 0x41, 0x41, 0x41, 0x41, 0x79, 0x4e, 0x39, 0x38, 0xc6, 0x3f, 0x26,
+ 0x25, 0x25, 0x24, 0x41, 0x3f, 0x26, 0x25, 0x25, 0x24, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x5b, 0x00, 0x6a, 0x00, 0x00, 0x05, 0x36,
+ 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17, 0x01, 0x22,
+ 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21,
+ 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x35,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x13, 0x32, 0x36, 0x35, 0x34, 0x27,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x03, 0xe6, 0x33,
+ 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01,
+ 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42,
+ 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04,
+ 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x01, 0x10, 0x2c, 0x2d, 0x2d, 0x2b,
+ 0x74, 0x3d, 0x3d, 0x09, 0x20, 0x36, 0x33, 0x3e, 0x82, 0x97, 0x4e, 0x50,
+ 0x82, 0x96, 0x4f, 0x4f, 0x60, 0x62, 0xa4, 0x2c, 0x2d, 0x2d, 0xb8, 0x4f,
+ 0x5c, 0x2e, 0x2e, 0x4f, 0x4c, 0x30, 0x2f, 0x2f, 0x2e, 0xfc, 0x4c, 0xfb,
+ 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a,
+ 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01,
+ 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfb,
+ 0xdf, 0x67, 0x14, 0x0b, 0x0a, 0x4b, 0x4b, 0x9a, 0x2f, 0x1b, 0x1a, 0x98,
+ 0x84, 0x81, 0x4d, 0x4e, 0x6f, 0x6f, 0xd4, 0xc6, 0x75, 0x76, 0x08, 0x09,
+ 0x01, 0x72, 0x68, 0x5c, 0x5a, 0x34, 0x35, 0x35, 0x34, 0x5a, 0x5c, 0x34,
+ 0x34, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x49, 0x00, 0x55,
+ 0x00, 0x5c, 0x00, 0x00, 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15,
+ 0x14, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x27, 0x14, 0x17, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21,
+ 0x22, 0x35, 0x11, 0x34, 0x00, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x01, 0x11, 0x07, 0x35, 0x37, 0x33,
+ 0x11, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a,
+ 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84,
+ 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c,
+ 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x03, 0x86,
+ 0x80, 0x2d, 0x2e, 0x2e, 0x2d, 0x80, 0x2d, 0x2e, 0x2e, 0x6d, 0x76, 0x99,
+ 0x99, 0x76, 0x92, 0x7e, 0x7e, 0xfe, 0x9c, 0x78, 0x7e, 0x7b, 0xfc, 0x4c,
+ 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82,
+ 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c,
+ 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78,
+ 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0,
+ 0xfe, 0xc8, 0x56, 0x56, 0xac, 0xad, 0x56, 0x56, 0x56, 0x56, 0xad, 0xac,
+ 0x56, 0xaf, 0xde, 0xd3, 0xd4, 0xde, 0xde, 0xd4, 0xd3, 0xde, 0xfc, 0xac,
+ 0x02, 0xd1, 0x29, 0x74, 0x27, 0xfc, 0xbd, 0x00, 0x00, 0x04, 0x00, 0xb4,
+ 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b,
+ 0x00, 0x48, 0x00, 0x00, 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15,
+ 0x14, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x27, 0x14, 0x17, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21,
+ 0x22, 0x35, 0x11, 0x34, 0x05, 0x33, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x36, 0x35, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17,
+ 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44,
+ 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x01, 0x87, 0x72, 0x3b, 0x39, 0x81, 0x2c, 0x24, 0x4c, 0x3f,
+ 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d,
+ 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92,
+ 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87,
+ 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07,
+ 0x79, 0xf0, 0xf0, 0xfd, 0xdc, 0x95, 0x46, 0x45, 0x60, 0x54, 0x6c, 0x00,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x55, 0x00, 0x00, 0x05, 0x36, 0x35, 0x06,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x26,
+ 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17, 0x01, 0x22, 0x15, 0x11,
+ 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15,
+ 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34, 0x01, 0x0e, 0x01, 0x23,
+ 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x15, 0x2e, 0x01,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x37, 0x03, 0xe6,
+ 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70,
+ 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98,
+ 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba,
+ 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0x02, 0xe9, 0x2c, 0x5b, 0x33,
+ 0xa3, 0xb4, 0xb5, 0xa2, 0x33, 0x5c, 0x2b, 0x2a, 0x5f, 0x31, 0x70, 0x6f,
+ 0x6e, 0x71, 0x31, 0x60, 0x29, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c,
+ 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82,
+ 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c,
+ 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0,
+ 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xfb, 0xeb, 0x17, 0x16, 0xe3,
+ 0xce, 0xcd, 0xe5, 0x17, 0x17, 0x74, 0x22, 0x24, 0xaa, 0xac, 0xab, 0xab,
+ 0x24, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x4d, 0x00, 0x57,
+ 0x00, 0x00, 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27,
+ 0x14, 0x17, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11,
+ 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35,
+ 0x11, 0x34, 0x01, 0x22, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x07, 0x17, 0x07, 0x12, 0x10, 0x26, 0x23,
+ 0x22, 0x06, 0x10, 0x16, 0x33, 0x32, 0x03, 0xe6, 0x33, 0x40, 0x99, 0x30,
+ 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d, 0x70, 0x01, 0xa9, 0x70, 0x2c,
+ 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30, 0x98, 0x42, 0x34, 0xfd, 0x1b,
+ 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8,
+ 0xfb, 0xba, 0xd8, 0x01, 0xfb, 0x04, 0x0f, 0x05, 0x8e, 0x8b, 0x8c, 0x8e,
+ 0x8f, 0x8d, 0x4e, 0x4f, 0x71, 0x55, 0x09, 0x4c, 0x58, 0x56, 0x4d, 0x4d,
+ 0x56, 0x58, 0xfc, 0x4c, 0xfb, 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34,
+ 0x24, 0x8d, 0x13, 0x82, 0x6a, 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24,
+ 0x34, 0x92, 0x46, 0x0c, 0x01, 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78,
+ 0xf8, 0x87, 0x78, 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0,
+ 0xf0, 0x07, 0x79, 0xf0, 0xfb, 0xbf, 0x01, 0xd7, 0xda, 0xdb, 0xd7, 0xd7,
+ 0xdb, 0xa5, 0xc9, 0x28, 0x6a, 0x38, 0x01, 0x80, 0x01, 0x70, 0x9e, 0x9e,
+ 0xfe, 0x90, 0x9e, 0x00, 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa,
+ 0x07, 0x6d, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x46, 0x00, 0x00,
+ 0x05, 0x36, 0x35, 0x06, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x26, 0x35, 0x34, 0x20, 0x15, 0x14, 0x07, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x14, 0x17,
+ 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32, 0x35, 0x11, 0x34, 0x23,
+ 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21, 0x22, 0x35, 0x11, 0x34,
+ 0x17, 0x33, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, 0x11, 0x23, 0x03,
+ 0xe6, 0x33, 0x40, 0x99, 0x30, 0x17, 0x83, 0x0e, 0x39, 0x9a, 0x43, 0x2d,
+ 0x70, 0x01, 0xa9, 0x70, 0x2c, 0x44, 0x9a, 0x38, 0x0f, 0x84, 0x16, 0x30,
+ 0x98, 0x42, 0x34, 0xfd, 0x1b, 0x6c, 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb,
+ 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb, 0xba, 0xd8, 0xd8, 0x72, 0x01, 0x46,
+ 0x94, 0xfe, 0x91, 0x01, 0x8c, 0x96, 0xfe, 0x9f, 0x72, 0xfc, 0x4c, 0xfb,
+ 0xc3, 0x03, 0x01, 0x0c, 0x43, 0x95, 0x34, 0x24, 0x8d, 0x13, 0x82, 0x6a,
+ 0xea, 0xea, 0x6a, 0x82, 0x13, 0x8d, 0x24, 0x34, 0x92, 0x46, 0x0c, 0x01,
+ 0x05, 0xc5, 0xfb, 0x4c, 0x07, 0xf1, 0x78, 0xf8, 0x87, 0x78, 0x78, 0x07,
+ 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79, 0xf0, 0xf0,
+ 0xfe, 0x9f, 0x01, 0x61, 0xfe, 0x7a, 0xfe, 0x42, 0x01, 0x93, 0xfe, 0x6d,
+ 0x00, 0x04, 0x00, 0xb4, 0xfe, 0x14, 0x06, 0xaa, 0x07, 0x6d, 0x00, 0x09,
+ 0x00, 0x13, 0x00, 0x1f, 0x00, 0x2b, 0x00, 0x00, 0x01, 0x03, 0x21, 0x17,
+ 0x03, 0x37, 0x17, 0x03, 0x37, 0x21, 0x03, 0x13, 0x05, 0x01, 0x13, 0x25,
+ 0x05, 0x13, 0x01, 0x25, 0x01, 0x22, 0x15, 0x11, 0x14, 0x33, 0x21, 0x32,
+ 0x35, 0x11, 0x34, 0x23, 0x25, 0x21, 0x32, 0x15, 0x11, 0x14, 0x23, 0x21,
+ 0x22, 0x35, 0x11, 0x34, 0x03, 0xaf, 0x5a, 0xfe, 0xdd, 0xeb, 0x5b, 0xed,
+ 0xeb, 0x59, 0xeb, 0xfe, 0xdb, 0x58, 0x9c, 0x01, 0x87, 0xfe, 0xd8, 0x57,
+ 0xfe, 0xae, 0xfe, 0xad, 0x58, 0xfe, 0xd8, 0x01, 0x88, 0xfe, 0x78, 0x6c,
+ 0x6c, 0x04, 0x46, 0x6c, 0x6c, 0xfb, 0xba, 0x04, 0x46, 0xd8, 0xd8, 0xfb,
+ 0xba, 0xd8, 0x04, 0x6e, 0xfe, 0xce, 0xbe, 0xfe, 0xcd, 0xbe, 0xbe, 0x01,
+ 0x33, 0xbe, 0x01, 0xf5, 0xfe, 0x6f, 0x28, 0xfe, 0xe2, 0xfe, 0x54, 0xdf,
+ 0xdf, 0x01, 0xa8, 0x01, 0x22, 0x28, 0x03, 0x55, 0x78, 0xf8, 0x87, 0x78,
+ 0x78, 0x07, 0x79, 0x78, 0x78, 0xf0, 0xf8, 0x87, 0xf0, 0xf0, 0x07, 0x79,
+ 0xf0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x89, 0xff, 0x6a, 0x06, 0xf9,
+ 0x07, 0x56, 0x00, 0x07, 0x00, 0x11, 0x00, 0x19, 0x00, 0x23, 0x00, 0x2b,
+ 0x00, 0x33, 0x00, 0x7f, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x34, 0x36, 0x32,
+ 0x16, 0x14, 0x06, 0x22, 0x37, 0x22, 0x06, 0x15, 0x14, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x24, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32, 0x17, 0x22,
+ 0x06, 0x15, 0x14, 0x33, 0x32, 0x36, 0x35, 0x34, 0x00, 0x34, 0x36, 0x32,
+ 0x16, 0x14, 0x06, 0x22, 0x36, 0x14, 0x06, 0x22, 0x26, 0x34, 0x36, 0x32,
+ 0x06, 0x32, 0x3e, 0x03, 0x37, 0x13, 0x17, 0x07, 0x3e, 0x04, 0x35, 0x34,
+ 0x26, 0x27, 0x26, 0x27, 0x3e, 0x01, 0x35, 0x34, 0x26, 0x23, 0x22, 0x0e,
+ 0x01, 0x15, 0x14, 0x17, 0x07, 0x26, 0x35, 0x34, 0x37, 0x26, 0x22, 0x07,
+ 0x16, 0x15, 0x14, 0x07, 0x27, 0x36, 0x35, 0x34, 0x2e, 0x01, 0x23, 0x22,
+ 0x06, 0x15, 0x14, 0x16, 0x17, 0x06, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x1e,
+ 0x03, 0x17, 0x27, 0x37, 0x13, 0x1e, 0x03, 0x12, 0x32, 0x17, 0x3e, 0x01,
+ 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x16, 0x15, 0x14, 0x0e, 0x02, 0x07,
+ 0x05, 0x07, 0x25, 0x07, 0x06, 0x07, 0x05, 0x07, 0x25, 0x0e, 0x01, 0x22,
+ 0x26, 0x27, 0x05, 0x27, 0x25, 0x26, 0x2f, 0x01, 0x05, 0x27, 0x25, 0x2e,
+ 0x03, 0x35, 0x34, 0x37, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17,
+ 0x02, 0x9c, 0x3b, 0x53, 0x3b, 0x3b, 0x53, 0x69, 0x10, 0x28, 0x0c, 0x0f,
+ 0x29, 0x01, 0x84, 0x3b, 0x53, 0x3c, 0x3c, 0x53, 0x14, 0x0f, 0x28, 0x0c,
+ 0x10, 0x28, 0xfe, 0x97, 0x14, 0x1d, 0x14, 0x14, 0x1d, 0xd4, 0x13, 0x1d,
+ 0x14, 0x14, 0x1d, 0x91, 0x61, 0x46, 0x29, 0x19, 0x08, 0x02, 0x0e, 0x79,
+ 0x0b, 0x35, 0x66, 0x67, 0x4e, 0x30, 0x3c, 0x32, 0x2b, 0x3a, 0x41, 0x58,
+ 0x58, 0x47, 0x4b, 0x74, 0x3d, 0x10, 0x75, 0x14, 0x01, 0x26, 0x97, 0x26,
+ 0x01, 0x15, 0x75, 0x10, 0x3c, 0x75, 0x4b, 0x47, 0x58, 0x58, 0x42, 0x3b,
+ 0x2b, 0x31, 0x3d, 0x31, 0x4d, 0x68, 0x66, 0x35, 0x0b, 0x78, 0x0f, 0x02,
+ 0x08, 0x18, 0x29, 0x33, 0x89, 0x44, 0x27, 0xb5, 0x81, 0x7d, 0x9c, 0x54,
+ 0x8d, 0x44, 0x76, 0x89, 0x50, 0x01, 0x76, 0x04, 0xfe, 0x22, 0x01, 0x02,
+ 0x04, 0x01, 0xc9, 0x14, 0xfe, 0x3f, 0x1d, 0x98, 0xe1, 0x98, 0x1d, 0xfe,
+ 0x3f, 0x14, 0x01, 0xc8, 0x03, 0x02, 0x01, 0xfe, 0x21, 0x04, 0x01, 0x76,
+ 0x50, 0x89, 0x76, 0x43, 0x8c, 0x54, 0x9c, 0x7d, 0x81, 0xb6, 0x26, 0x03,
+ 0x38, 0x90, 0x67, 0x67, 0x90, 0x67, 0x82, 0x3d, 0x18, 0x12, 0x3e, 0x18,
+ 0x11, 0x75, 0x90, 0x67, 0x67, 0x90, 0x67, 0xdc, 0x3d, 0x18, 0x12, 0x3e,
+ 0x18, 0x11, 0xfd, 0x22, 0x36, 0x27, 0x27, 0x36, 0x27, 0x5d, 0x36, 0x27,
+ 0x27, 0x36, 0x27, 0xe0, 0x24, 0x39, 0x5d, 0x57, 0x3e, 0x01, 0x3a, 0x06,
+ 0xfb, 0x1f, 0x4c, 0x6b, 0x74, 0x93, 0x4c, 0x4a, 0x98, 0x37, 0x33, 0x28,
+ 0x23, 0x83, 0x58, 0x51, 0x69, 0x6b, 0xa4, 0x5c, 0x42, 0x3f, 0x26, 0x53,
+ 0x54, 0x1b, 0x0e, 0x03, 0x03, 0x0e, 0x1b, 0x54, 0x53, 0x26, 0x3f, 0x42,
+ 0x5c, 0xa4, 0x6b, 0x69, 0x51, 0x58, 0x83, 0x23, 0x28, 0x33, 0x37, 0x98,
+ 0x4a, 0x4c, 0x93, 0x74, 0x6b, 0x4c, 0x1f, 0xfb, 0x06, 0xfe, 0xc6, 0x3e,
+ 0x57, 0x5d, 0x39, 0x06, 0x02, 0x06, 0x86, 0xbe, 0xb7, 0x8c, 0x8a, 0x72,
+ 0xac, 0xc8, 0x6c, 0xc8, 0xa1, 0x7e, 0x33, 0x1a, 0x44, 0x23, 0x01, 0x1f,
+ 0x1f, 0xae, 0x40, 0xac, 0x6d, 0x8a, 0x8a, 0x6d, 0xac, 0x40, 0xae, 0x1f,
+ 0x1f, 0x01, 0x23, 0x44, 0x1a, 0x33, 0x7e, 0xa1, 0xc8, 0x6c, 0xc8, 0xac,
+ 0x72, 0x8a, 0x8c, 0xb7, 0xbe, 0x86, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x43,
+ 0xff, 0x6a, 0x08, 0x43, 0x06, 0x8a, 0x00, 0x09, 0x00, 0x14, 0x00, 0x18,
+ 0x00, 0x22, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x8e, 0x00, 0x99, 0x00, 0x9f,
+ 0x00, 0xfd, 0x01, 0x07, 0x00, 0x00, 0x01, 0x22, 0x26, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x14, 0x06, 0x27, 0x32, 0x36, 0x35, 0x34, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x33, 0x15, 0x23, 0x01, 0x22, 0x26, 0x34, 0x36,
+ 0x33, 0x32, 0x16, 0x14, 0x06, 0x01, 0x37, 0x17, 0x07, 0x27, 0x37, 0x01,
+ 0x15, 0x23, 0x35, 0x25, 0x17, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x1e,
+ 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27,
+ 0x37, 0x16, 0x17, 0x3e, 0x04, 0x37, 0x16, 0x33, 0x32, 0x3e, 0x04, 0x37,
+ 0x3e, 0x01, 0x35, 0x34, 0x27, 0x2e, 0x04, 0x23, 0x22, 0x0e, 0x02, 0x0f,
+ 0x01, 0x06, 0x07, 0x2e, 0x01, 0x20, 0x06, 0x07, 0x26, 0x2f, 0x01, 0x2e,
+ 0x03, 0x23, 0x22, 0x0e, 0x03, 0x07, 0x06, 0x15, 0x14, 0x16, 0x17, 0x1e,
+ 0x05, 0x33, 0x32, 0x37, 0x1e, 0x04, 0x17, 0x36, 0x25, 0x32, 0x36, 0x35,
+ 0x34, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x01, 0x07, 0x17, 0x07, 0x27,
+ 0x37, 0x01, 0x34, 0x37, 0x27, 0x26, 0x27, 0x23, 0x22, 0x2e, 0x06, 0x27,
+ 0x2e, 0x01, 0x35, 0x34, 0x3e, 0x01, 0x37, 0x3e, 0x01, 0x33, 0x32, 0x1e,
+ 0x02, 0x17, 0x16, 0x1f, 0x01, 0x36, 0x37, 0x36, 0x20, 0x17, 0x16, 0x17,
+ 0x37, 0x36, 0x37, 0x3e, 0x03, 0x33, 0x32, 0x16, 0x17, 0x1e, 0x02, 0x15,
+ 0x14, 0x06, 0x07, 0x0e, 0x07, 0x2b, 0x01, 0x06, 0x0f, 0x01, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x0e, 0x01, 0x22, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x01, 0x06, 0x20, 0x27,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x36, 0x03, 0x20, 0x2d, 0x38, 0x37, 0x2e,
+ 0x2d, 0x38, 0x37, 0x1b, 0x10, 0x29, 0x0d, 0x0f, 0x15, 0x14, 0x30, 0x63,
+ 0x63, 0x02, 0x0f, 0x2e, 0x37, 0x37, 0x2e, 0x2d, 0x37, 0x38, 0xfb, 0xcb,
+ 0x2e, 0xb1, 0x33, 0x39, 0x26, 0x03, 0x39, 0x63, 0xfe, 0x09, 0x3c, 0x39,
+ 0x0f, 0x05, 0x34, 0x2e, 0xa0, 0x7d, 0x5e, 0x3e, 0x74, 0x3b, 0x33, 0x04,
+ 0x0f, 0x39, 0x3b, 0x16, 0x10, 0x04, 0x1c, 0x0b, 0x12, 0x09, 0x01, 0x4a,
+ 0x23, 0x1d, 0x32, 0x21, 0x2b, 0x14, 0x30, 0x0b, 0x2c, 0x2a, 0x2f, 0x02,
+ 0x22, 0x1b, 0x27, 0x27, 0x10, 0x0f, 0x1d, 0x20, 0x0e, 0x11, 0x11, 0x39,
+ 0x50, 0x37, 0xee, 0xfe, 0xde, 0xef, 0x37, 0x50, 0x38, 0x11, 0x11, 0x0f,
+ 0x1f, 0x1d, 0x0f, 0x11, 0x26, 0x27, 0x1b, 0x22, 0x02, 0x2f, 0x2a, 0x2c,
+ 0x0a, 0x31, 0x14, 0x2a, 0x21, 0x33, 0x1d, 0x23, 0x49, 0x01, 0x09, 0x12,
+ 0x0c, 0x1b, 0x05, 0x10, 0x02, 0xb8, 0x11, 0x28, 0x0d, 0x0f, 0x15, 0x13,
+ 0x01, 0xbb, 0x99, 0x26, 0x39, 0x33, 0xb1, 0xfb, 0x51, 0x0b, 0x12, 0x34,
+ 0x0e, 0x09, 0x1e, 0x35, 0x27, 0x2f, 0x19, 0x31, 0x11, 0x39, 0x09, 0x3b,
+ 0x34, 0x24, 0x28, 0x20, 0x2d, 0x7a, 0x3a, 0x1b, 0x2d, 0x2d, 0x17, 0x15,
+ 0x21, 0x0f, 0x3b, 0x24, 0x31, 0x94, 0x01, 0x7a, 0x93, 0x32, 0x24, 0x3a,
+ 0x10, 0x21, 0x15, 0x16, 0x2d, 0x2e, 0x1a, 0x3b, 0x79, 0x2e, 0x20, 0x27,
+ 0x25, 0x34, 0x3c, 0x08, 0x39, 0x11, 0x32, 0x18, 0x30, 0x26, 0x36, 0x1d,
+ 0x09, 0x0f, 0x33, 0x13, 0x0c, 0x0c, 0x1f, 0x56, 0x08, 0x14, 0x1d, 0x3b,
+ 0x31, 0x7a, 0xb0, 0x7b, 0x30, 0x3c, 0x1d, 0x13, 0x08, 0x56, 0x20, 0x0b,
+ 0x02, 0xe2, 0x57, 0xfe, 0xda, 0x57, 0x0f, 0x1c, 0x32, 0x8d, 0x60, 0x71,
+ 0x02, 0xd1, 0x6e, 0x82, 0x6e, 0x6e, 0x82, 0x6e, 0x1b, 0x41, 0x15, 0x11,
+ 0x1f, 0x1d, 0x19, 0x12, 0xd4, 0xd2, 0x01, 0x8b, 0x6e, 0x82, 0x6e, 0x6e,
+ 0x82, 0x6e, 0x02, 0xb5, 0x2d, 0xda, 0xba, 0x18, 0x94, 0xfd, 0x4d, 0xd2,
+ 0xd2, 0x93, 0x76, 0x24, 0x44, 0x11, 0x19, 0x4b, 0x3b, 0x37, 0x22, 0x08,
+ 0x0d, 0x44, 0x3b, 0x4b, 0x19, 0x11, 0x44, 0x24, 0x76, 0x0d, 0x0f, 0x13,
+ 0x68, 0x35, 0x57, 0x4d, 0x27, 0x14, 0x0b, 0x0c, 0x20, 0x11, 0x31, 0x0a,
+ 0x2a, 0x4c, 0x37, 0x2e, 0x34, 0x02, 0x28, 0x1a, 0x23, 0x13, 0x0e, 0x22,
+ 0x11, 0x19, 0x19, 0x4e, 0x83, 0x65, 0x6d, 0x6d, 0x65, 0x83, 0x4e, 0x19,
+ 0x19, 0x11, 0x22, 0x0e, 0x13, 0x23, 0x1a, 0x28, 0x02, 0x34, 0x2e, 0x37,
+ 0x4c, 0x2a, 0x0a, 0x31, 0x11, 0x20, 0x0c, 0x0b, 0x14, 0x27, 0x4d, 0x57,
+ 0x35, 0x68, 0x13, 0x0f, 0x4e, 0x41, 0x15, 0x11, 0x1f, 0x1d, 0x19, 0x12,
+ 0x02, 0x9a, 0xbb, 0x94, 0x18, 0xba, 0xda, 0xfb, 0xef, 0x2a, 0x2c, 0x50,
+ 0xdd, 0x49, 0x09, 0x08, 0x1b, 0x0d, 0x2c, 0x0f, 0x39, 0x09, 0x3a, 0x6b,
+ 0x52, 0x34, 0x5f, 0x35, 0x22, 0x32, 0x53, 0x12, 0x27, 0x18, 0x19, 0x27,
+ 0x15, 0x52, 0x1d, 0x1b, 0x4e, 0x4e, 0x1b, 0x1d, 0x52, 0x15, 0x27, 0x19,
+ 0x18, 0x27, 0x12, 0x53, 0x32, 0x22, 0x35, 0x5f, 0x34, 0x52, 0x6b, 0x3a,
+ 0x09, 0x39, 0x0f, 0x2c, 0x0d, 0x1b, 0x08, 0x09, 0x49, 0xdd, 0x50, 0x2c,
+ 0x2a, 0x30, 0x28, 0x73, 0x42, 0x44, 0x30, 0x48, 0x2e, 0x26, 0x1b, 0x1b,
+ 0x26, 0x2e, 0x48, 0x30, 0x44, 0x42, 0x73, 0x28, 0xfe, 0xe0, 0x16, 0x16,
+ 0x24, 0x15, 0x27, 0x26, 0x00, 0x08, 0x00, 0x36, 0xff, 0x6a, 0x07, 0x4e,
+ 0x07, 0x14, 0x00, 0x11, 0x00, 0x19, 0x00, 0x28, 0x00, 0x32, 0x00, 0x41,
+ 0x00, 0x4e, 0x00, 0x7f, 0x00, 0xb8, 0x00, 0x00, 0x01, 0x37, 0x16, 0x33,
+ 0x32, 0x37, 0x16, 0x33, 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x27, 0x06,
+ 0x23, 0x22, 0x01, 0x17, 0x06, 0x22, 0x27, 0x37, 0x16, 0x32, 0x03, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32,
+ 0x16, 0x07, 0x22, 0x06, 0x15, 0x14, 0x17, 0x3e, 0x01, 0x37, 0x26, 0x05,
+ 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x23, 0x22, 0x06, 0x05, 0x36, 0x35, 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27,
+ 0x06, 0x07, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03,
+ 0x15, 0x14, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x25, 0x17, 0x05, 0x16,
+ 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x25,
+ 0x37, 0x05, 0x26, 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17,
+ 0x1e, 0x01, 0x17, 0x36, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16,
+ 0x17, 0x1e, 0x04, 0x15, 0x14, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17,
+ 0x07, 0x27, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26, 0x03, 0x07, 0x27,
+ 0x37, 0x26, 0x27, 0x07, 0x27, 0x02, 0x62, 0x53, 0x3e, 0x52, 0x34, 0x4c,
+ 0x4b, 0x35, 0x51, 0x3f, 0x52, 0x61, 0x81, 0x43, 0x3d, 0x3e, 0x42, 0x82,
+ 0x01, 0x8c, 0x38, 0x6e, 0xae, 0x6e, 0x38, 0x51, 0x78, 0xea, 0x26, 0x49,
+ 0x1d, 0x24, 0x3f, 0x31, 0x12, 0x2f, 0x2b, 0x3a, 0x3f, 0x5b, 0x46, 0x21,
+ 0x2b, 0x05, 0x26, 0x3e, 0x11, 0x14, 0x01, 0x8c, 0x04, 0x5a, 0x3f, 0x3c,
+ 0x2a, 0x30, 0x13, 0x31, 0x3f, 0x24, 0x1d, 0x49, 0x6d, 0x0b, 0x18, 0x2b,
+ 0x24, 0x0e, 0x03, 0x0b, 0x0c, 0x27, 0x3a, 0x01, 0x6b, 0x10, 0x09, 0x09,
+ 0x14, 0x04, 0x18, 0x26, 0xda, 0x8a, 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb,
+ 0x26, 0x18, 0x05, 0x13, 0x09, 0x0a, 0x11, 0x01, 0x21, 0x0a, 0xfe, 0xdf,
+ 0x0c, 0x15, 0x01, 0x01, 0x18, 0xfe, 0xfd, 0x5d, 0x94, 0xa3, 0x01, 0xb9,
+ 0xa3, 0x93, 0x5d, 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0,
+ 0x09, 0xfb, 0x46, 0x0f, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e,
+ 0x36, 0x80, 0xe4, 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e,
+ 0x22, 0x15, 0x04, 0x1c, 0x0b, 0x11, 0x06, 0x0f, 0x61, 0x09, 0x62, 0x0d,
+ 0x1d, 0x63, 0x17, 0x63, 0x69, 0xaf, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3,
+ 0xae, 0x6a, 0x62, 0x18, 0x62, 0x1b, 0x0e, 0x62, 0x09, 0x01, 0x8c, 0x62,
+ 0x40, 0x2c, 0x2c, 0x40, 0x62, 0x64, 0x1c, 0x1c, 0x01, 0xa8, 0x78, 0x3d,
+ 0x3d, 0x78, 0x2e, 0x01, 0x06, 0x4c, 0x1c, 0x0b, 0x23, 0x24, 0x2d, 0x47,
+ 0x30, 0x2c, 0x61, 0x26, 0x30, 0x24, 0x0e, 0x0f, 0x07, 0x34, 0x25, 0x11,
+ 0x1d, 0x43, 0x61, 0x2c, 0x30, 0x47, 0x2d, 0x24, 0x23, 0x0b, 0x1c, 0x04,
+ 0x03, 0x16, 0x18, 0x1c, 0x0e, 0x0c, 0x03, 0x3b, 0xa7, 0x82, 0x74, 0x2e,
+ 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a,
+ 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65, 0x2e, 0x74, 0x82, 0x2b, 0x42, 0x2c,
+ 0x45, 0x40, 0x79, 0x3e, 0x7a, 0xe7, 0x77, 0x84, 0x84, 0x77, 0xe7, 0x7a,
+ 0x3e, 0x79, 0x39, 0x4c, 0x2c, 0x42, 0x3d, 0x7c, 0x8f, 0x39, 0x6a, 0x77,
+ 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61, 0x0d, 0x0d,
+ 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93, 0x41, 0x77, 0x6a,
+ 0x39, 0x8f, 0x7c, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e, 0x3e, 0x2e, 0xfe,
+ 0xf7, 0x8e, 0x9e, 0x9e, 0x8c, 0x01, 0x0b, 0x2e, 0x3e, 0x2e, 0x51, 0x57,
+ 0x0e, 0x42, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x99, 0xff, 0x6a, 0x07, 0xbb,
+ 0x07, 0x0b, 0x00, 0x07, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x25, 0x00, 0x31,
+ 0x00, 0x3b, 0x00, 0x47, 0x00, 0x68, 0x00, 0x98, 0x00, 0xaa, 0x00, 0xbc,
+ 0x00, 0x00, 0x00, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x37, 0x22,
+ 0x06, 0x15, 0x14, 0x33, 0x32, 0x36, 0x35, 0x34, 0x03, 0x22, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x15, 0x14, 0x07, 0x06, 0x00, 0x14, 0x06, 0x22,
+ 0x26, 0x34, 0x36, 0x32, 0x03, 0x34, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x23, 0x22, 0x27, 0x26, 0x01, 0x22, 0x06, 0x15, 0x14, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x01, 0x37, 0x16, 0x33, 0x32, 0x36, 0x37, 0x17, 0x06, 0x23,
+ 0x22, 0x26, 0x12, 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x3e, 0x02, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x07, 0x2e, 0x01, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x1e, 0x01, 0x17, 0x06, 0x15, 0x14, 0x17, 0x12, 0x20,
+ 0x04, 0x17, 0x16, 0x17, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x07, 0x0e, 0x01, 0x2b, 0x01, 0x06, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x20,
+ 0x27, 0x2e, 0x01, 0x27, 0x26, 0x27, 0x23, 0x22, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x17, 0x36, 0x37, 0x36, 0x03, 0x26,
+ 0x23, 0x22, 0x07, 0x0e, 0x01, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x3b,
+ 0x01, 0x36, 0x37, 0x26, 0x25, 0x06, 0x07, 0x16, 0x17, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x34, 0x26, 0x27, 0x26, 0x23, 0x22, 0x02, 0xca,
+ 0x4a, 0x68, 0x4a, 0x4a, 0x68, 0x82, 0x14, 0x31, 0x0e, 0x14, 0x32, 0x0e,
+ 0x16, 0x28, 0x21, 0x1b, 0x16, 0x28, 0x21, 0x01, 0xd8, 0x49, 0x69, 0x4a,
+ 0x4a, 0x69, 0xe8, 0x16, 0x1c, 0x21, 0x28, 0x16, 0x1c, 0x21, 0x28, 0x01,
+ 0x02, 0x14, 0x32, 0x0f, 0x14, 0x32, 0xfd, 0x33, 0x5f, 0x75, 0xb9, 0x57,
+ 0xa2, 0x35, 0x5f, 0x97, 0xf6, 0x74, 0xd2, 0x7c, 0x01, 0x93, 0x95, 0x6f,
+ 0x4b, 0x1b, 0x1a, 0x1c, 0x4e, 0x51, 0x75, 0x40, 0x65, 0x1c, 0x19, 0x65,
+ 0x40, 0x75, 0x51, 0x4e, 0x1c, 0x1a, 0x1c, 0x4c, 0x70, 0xbb, 0x01, 0x45,
+ 0x01, 0x18, 0x58, 0x5e, 0x0f, 0x16, 0x1a, 0x60, 0x81, 0x07, 0x0c, 0x19,
+ 0x1e, 0x79, 0x50, 0x07, 0x0d, 0x34, 0x33, 0x9a, 0x62, 0x85, 0xfe, 0xfd,
+ 0x85, 0x62, 0x9a, 0x33, 0x34, 0x0d, 0x07, 0x50, 0x78, 0x1f, 0x19, 0x0c,
+ 0x07, 0x82, 0x5f, 0x1a, 0x17, 0x0e, 0x5f, 0x57, 0xc1, 0x15, 0x1d, 0x0c,
+ 0x13, 0x24, 0x27, 0x07, 0x15, 0x3f, 0x1c, 0x23, 0x03, 0x07, 0x36, 0x2f,
+ 0x04, 0xe8, 0x0e, 0x30, 0x36, 0x07, 0x04, 0x22, 0x1c, 0x40, 0x14, 0x07,
+ 0x27, 0x24, 0x13, 0x0c, 0x1c, 0x04, 0x08, 0x74, 0x52, 0x52, 0x74, 0x52,
+ 0x68, 0x31, 0x13, 0x0e, 0x31, 0x13, 0x0e, 0xfe, 0x52, 0x15, 0x20, 0x24,
+ 0x1f, 0x15, 0x20, 0x24, 0x1f, 0x02, 0x0c, 0x74, 0x52, 0x52, 0x74, 0x52,
+ 0xfe, 0x05, 0x15, 0x1f, 0x24, 0x20, 0x15, 0x1f, 0x24, 0x01, 0x6b, 0x31,
+ 0x13, 0x0e, 0x31, 0x13, 0x0e, 0xfd, 0xa8, 0x54, 0xa4, 0x58, 0x4c, 0x54,
+ 0xd6, 0x72, 0xfe, 0xde, 0xcb, 0x9a, 0xb8, 0x86, 0x95, 0x2c, 0x30, 0x5e,
+ 0x31, 0x8a, 0x69, 0x6f, 0x45, 0x35, 0x35, 0x45, 0x6f, 0x69, 0x8a, 0x31,
+ 0x5e, 0x30, 0x2c, 0x95, 0x86, 0xb8, 0x9a, 0x06, 0x00, 0xa4, 0x7c, 0x88,
+ 0x9b, 0x06, 0xa4, 0x87, 0x2c, 0x36, 0x5b, 0x3f, 0x4b, 0x69, 0x7b, 0x70,
+ 0x6e, 0xad, 0x37, 0x4c, 0x4c, 0x37, 0xad, 0x6e, 0x70, 0x7b, 0x69, 0x4b,
+ 0x3f, 0x5b, 0x36, 0x2c, 0x87, 0xa4, 0x06, 0x9b, 0x88, 0x7c, 0xfd, 0xcc,
+ 0x15, 0x07, 0x0f, 0x52, 0x3a, 0x1e, 0x33, 0x97, 0x2f, 0x15, 0x87, 0x7b,
+ 0x57, 0x60, 0x60, 0x57, 0x7b, 0x87, 0x15, 0x2f, 0x97, 0x33, 0x1e, 0x3a,
+ 0x52, 0x0f, 0x07, 0x00, 0x00, 0x09, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x34,
+ 0x00, 0x39, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x46, 0x00, 0x00, 0x01, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34,
+ 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x21, 0x10,
+ 0x00, 0x20, 0x00, 0x05, 0x36, 0x37, 0x11, 0x23, 0x03, 0x11, 0x23, 0x11,
+ 0x16, 0x25, 0x36, 0x37, 0x23, 0x05, 0x35, 0x23, 0x16, 0x02, 0x42, 0x49,
+ 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b,
+ 0x4b, 0x34, 0x35, 0x49, 0xfc, 0xc8, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d,
+ 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01,
+ 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0xf8, 0x04, 0x5f, 0xfe, 0xb9, 0xfe, 0x30, 0xfe, 0xb8,
+ 0x02, 0x6d, 0x50, 0x44, 0x94, 0x7a, 0x94, 0x45, 0x01, 0xd7, 0x41, 0x19,
+ 0x5a, 0xfd, 0x6a, 0x5b, 0x19, 0x03, 0xff, 0x3b, 0x51, 0x51, 0x3b, 0x3a,
+ 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xdb, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe,
+ 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x6a, 0xfe, 0xfe, 0xfe, 0x96, 0x01,
+ 0x6a, 0xdf, 0x0b, 0x2a, 0x01, 0x25, 0xfe, 0xa6, 0x01, 0x5a, 0xfe, 0xdb,
+ 0x2a, 0x99, 0x52, 0x64, 0xb8, 0xb8, 0x66, 0x00, 0x00, 0x09, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x35, 0x00, 0x3a, 0x00, 0x3f, 0x00, 0x43, 0x00, 0x47,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x07, 0x21, 0x10, 0x00, 0x20, 0x00, 0x05, 0x36, 0x37, 0x11,
+ 0x23, 0x03, 0x11, 0x23, 0x11, 0x16, 0x25, 0x36, 0x37, 0x23, 0x05, 0x35,
+ 0x23, 0x16, 0x01, 0x12, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x03, 0x5c, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfd, 0x72,
+ 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xc9, 0x04, 0x5f, 0xfe, 0xb9,
+ 0xfe, 0x30, 0xfe, 0xb8, 0x02, 0x6d, 0x50, 0x44, 0x94, 0x7a, 0x94, 0x45,
+ 0x01, 0xd7, 0x41, 0x19, 0x5a, 0xfd, 0x6a, 0x5b, 0x19, 0x02, 0xea, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe,
+ 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x02, 0x16, 0x8b, 0xc5, 0xc5, 0x8b, 0x53,
+ 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xac,
+ 0xfe, 0xfe, 0xfe, 0x96, 0x01, 0x6a, 0xdf, 0x0b, 0x2a, 0x01, 0x25, 0xfe,
+ 0xa6, 0x01, 0x5a, 0xfe, 0xdb, 0x2a, 0x99, 0x52, 0x64, 0xb8, 0xb8, 0x66,
+ 0x00, 0x09, 0x00, 0x55, 0xff, 0x6a, 0x08, 0x14, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0c, 0x00, 0x11, 0x00, 0x17, 0x00, 0x23, 0x00, 0x2f,
+ 0x00, 0x59, 0x00, 0x7e, 0x00, 0x00, 0x01, 0x35, 0x23, 0x16, 0x05, 0x36,
+ 0x37, 0x23, 0x01, 0x11, 0x23, 0x11, 0x16, 0x17, 0x36, 0x37, 0x11, 0x23,
+ 0x25, 0x21, 0x10, 0x00, 0x20, 0x00, 0x13, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x14, 0x07, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x06, 0x22, 0x27,
+ 0x26, 0x2f, 0x01, 0x02, 0x07, 0x02, 0x21, 0x20, 0x03, 0x26, 0x03, 0x07,
+ 0x06, 0x07, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x36, 0x3f, 0x01, 0x26,
+ 0x37, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x27, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x2f, 0x01, 0x17, 0x16, 0x17, 0x26, 0x27, 0x26, 0x21, 0x20,
+ 0x07, 0x06, 0x07, 0x36, 0x3f, 0x01, 0x07, 0x06, 0x07, 0x06, 0x22, 0x27,
+ 0x06, 0x02, 0xe9, 0x5b, 0x1a, 0x02, 0xd8, 0x40, 0x1a, 0x5a, 0xfe, 0x77,
+ 0x93, 0x44, 0xca, 0x4f, 0x44, 0x93, 0xfd, 0x93, 0x04, 0x5e, 0xfe, 0xba,
+ 0xfe, 0x2f, 0xfe, 0xb9, 0x4f, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37,
+ 0x01, 0x9c, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfc, 0x2a, 0x01,
+ 0xda, 0x01, 0x4e, 0x01, 0x50, 0x01, 0xd8, 0x02, 0x54, 0x35, 0x15, 0x1b,
+ 0x30, 0x45, 0x1c, 0x16, 0x10, 0x0a, 0x26, 0xbc, 0xec, 0xfe, 0xb0, 0xfe,
+ 0xb2, 0xed, 0xbc, 0x27, 0x09, 0x10, 0x17, 0x1c, 0x44, 0x30, 0x1a, 0x15,
+ 0x36, 0x53, 0x02, 0x7a, 0x01, 0x92, 0x01, 0x1c, 0x01, 0x1e, 0x01, 0x90,
+ 0x01, 0x18, 0x21, 0x22, 0x1c, 0x17, 0x10, 0x29, 0x7b, 0x25, 0x15, 0x2a,
+ 0x8b, 0xc7, 0xfe, 0xe1, 0xfe, 0xe4, 0xca, 0x8a, 0x2a, 0x15, 0x25, 0x7a,
+ 0x28, 0x10, 0x17, 0x1c, 0x44, 0x18, 0x01, 0x01, 0xa1, 0xb8, 0x66, 0x50,
+ 0x52, 0x64, 0xfe, 0xa6, 0x01, 0x5a, 0xfe, 0xdb, 0x2a, 0x0b, 0x0b, 0x2a,
+ 0x01, 0x25, 0x87, 0xfe, 0xfe, 0xfe, 0x96, 0x01, 0x6a, 0x01, 0xae, 0x8b,
+ 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53,
+ 0x77, 0x77, 0x53, 0xa2, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b,
+ 0x1d, 0x1b, 0x1f, 0x14, 0x18, 0x1f, 0x25, 0x26, 0x36, 0x1f, 0x19, 0x39,
+ 0x20, 0xfe, 0xe9, 0xd1, 0xfe, 0xfa, 0x01, 0x06, 0xd0, 0x01, 0x16, 0x1e,
+ 0x39, 0x19, 0x1f, 0x36, 0x26, 0x25, 0x1f, 0x19, 0x13, 0x1e, 0x1c, 0x1d,
+ 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x14, 0x13, 0x1a, 0x1f,
+ 0x19, 0x39, 0x88, 0x2d, 0x0e, 0x0f, 0xc7, 0x9a, 0xe0, 0xe0, 0x9b, 0xc6,
+ 0x10, 0x0d, 0x2d, 0x88, 0x39, 0x19, 0x1f, 0x1b, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x06, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b,
+ 0x00, 0x16, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x34, 0x00, 0x3c, 0x00, 0x00,
+ 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13,
+ 0x21, 0x10, 0x00, 0x20, 0x00, 0x25, 0x21, 0x16, 0x17, 0x16, 0x24, 0x37,
+ 0x36, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02,
+ 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9,
+ 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1,
+ 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe,
+ 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x7f, 0x04, 0x5f, 0xfe, 0xb9,
+ 0xfe, 0x30, 0xfe, 0xb8, 0x03, 0xd5, 0xfc, 0xb5, 0x1e, 0x53, 0x7f, 0x01,
+ 0x6c, 0x80, 0x53, 0x03, 0xff, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53,
+ 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xdb, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01,
+ 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfe, 0xb9, 0xfe, 0xfe, 0xfe, 0x96, 0x01, 0x6a, 0x7b,
+ 0x75, 0x5c, 0x8e, 0x01, 0x8e, 0x5c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x35, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x34, 0x36, 0x32,
+ 0x16, 0x15, 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x21, 0x34, 0x36, 0x32,
+ 0x16, 0x15, 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x21, 0x10, 0x00,
+ 0x20, 0x00, 0x25, 0x21, 0x16, 0x17, 0x16, 0x37, 0x32, 0x37, 0x36, 0x01,
+ 0xe1, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0x01, 0x9b, 0x7e, 0xb1,
+ 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfc, 0x2a, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0x7f, 0x04, 0x5f, 0xfe, 0xb9, 0xfe, 0x30, 0xfe,
+ 0xb8, 0x03, 0xd5, 0xfc, 0xb5, 0x1e, 0x53, 0x7f, 0xb6, 0xb6, 0x80, 0x53,
+ 0x03, 0x8c, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5,
+ 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xa2, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0xfe, 0xb9, 0xfe, 0xfe, 0xfe, 0x96, 0x01, 0x6a, 0x7b, 0x75, 0x5c,
+ 0x8e, 0x01, 0x8e, 0x5c, 0x00, 0x07, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b,
+ 0x00, 0x41, 0x00, 0x4a, 0x00, 0x00, 0x01, 0x17, 0x16, 0x07, 0x14, 0x07,
+ 0x06, 0x22, 0x26, 0x35, 0x34, 0x37, 0x05, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x21, 0x10, 0x00, 0x20, 0x00,
+ 0x25, 0x21, 0x16, 0x17, 0x16, 0x37, 0x32, 0x37, 0x36, 0x05, 0xfe, 0x3a,
+ 0x19, 0x01, 0x18, 0x18, 0x45, 0x30, 0x18, 0xfc, 0x1e, 0x7e, 0xb0, 0x7e,
+ 0x79, 0x37, 0x4c, 0x37, 0x01, 0x9b, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b,
+ 0x37, 0xfc, 0x2a, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe,
+ 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0x7f, 0x04, 0x5f, 0xfe, 0xb9, 0xfe, 0x30, 0xfe, 0xb8, 0x03, 0xd5, 0xfc,
+ 0xb5, 0x1e, 0x53, 0x7f, 0xb6, 0xb6, 0x80, 0x53, 0x04, 0x2c, 0x80, 0x38,
+ 0x22, 0x2b, 0x1a, 0x1b, 0x36, 0x2c, 0x23, 0x35, 0x20, 0x8b, 0xc5, 0xc5,
+ 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77,
+ 0x53, 0xa2, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c,
+ 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd,
+ 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xb9, 0xfe, 0xfe,
+ 0xfe, 0x96, 0x01, 0x6a, 0x7b, 0x75, 0x5c, 0x8e, 0x01, 0x8e, 0x5c, 0x00,
+ 0x00, 0x06, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x06,
+ 0x00, 0x0d, 0x00, 0x19, 0x00, 0x25, 0x00, 0x2b, 0x00, 0x33, 0x00, 0x00,
+ 0x01, 0x25, 0x17, 0x07, 0x17, 0x07, 0x25, 0x27, 0x15, 0x05, 0x27, 0x37,
+ 0x27, 0x37, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x21, 0x10, 0x00, 0x20, 0x00, 0x25, 0x21, 0x16, 0x17,
+ 0x16, 0x24, 0x37, 0x36, 0x04, 0x09, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45,
+ 0xfe, 0xf6, 0x90, 0xfe, 0xf7, 0x46, 0xb3, 0xb3, 0x46, 0xfe, 0x29, 0x01,
+ 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x7f, 0x04, 0x5f, 0xfe,
+ 0xb9, 0xfe, 0x30, 0xfe, 0xb8, 0x03, 0xd5, 0xfc, 0xb5, 0x1e, 0x53, 0x7f,
+ 0x01, 0x6c, 0x80, 0x53, 0x04, 0x27, 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce,
+ 0x55, 0x55, 0xce, 0x6e, 0x8a, 0x8b, 0x6e, 0xfd, 0xf5, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01,
+ 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfe, 0xb9, 0xfe, 0xfe, 0xfe, 0x96, 0x01, 0x6a, 0x7b,
+ 0x75, 0x5c, 0x8e, 0x01, 0x8e, 0x5c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x80,
+ 0xff, 0x6a, 0x07, 0x01, 0x07, 0x63, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x2a,
+ 0x00, 0x35, 0x00, 0x49, 0x00, 0x57, 0x00, 0x5f, 0x00, 0x00, 0x01, 0x37,
+ 0x16, 0x17, 0x16, 0x04, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x2f, 0x01,
+ 0x06, 0x21, 0x20, 0x27, 0x07, 0x06, 0x05, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x01, 0x34, 0x24, 0x21, 0x20, 0x04, 0x15, 0x14,
+ 0x07, 0x16, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x37, 0x26,
+ 0x25, 0x36, 0x35, 0x34, 0x24, 0x21, 0x20, 0x04, 0x15, 0x14, 0x17, 0x36,
+ 0x21, 0x20, 0x17, 0x26, 0x23, 0x22, 0x07, 0x16, 0x33, 0x32, 0x01, 0xe7,
+ 0x67, 0x1a, 0x24, 0x80, 0x01, 0x6b, 0x80, 0x23, 0x1a, 0x68, 0x22, 0x2d,
+ 0xa4, 0xfe, 0x30, 0xa4, 0x2d, 0xf6, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d,
+ 0x01, 0x91, 0xc8, 0x0c, 0xcf, 0xfe, 0xf5, 0xfe, 0xf6, 0xcf, 0x0d, 0xc9,
+ 0x03, 0x38, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfd, 0xf8, 0x49,
+ 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0xfe, 0x3f, 0x01, 0xe7, 0x01,
+ 0x59, 0x01, 0x5a, 0x01, 0xe6, 0xe4, 0xcb, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0xcc, 0xe4, 0x05, 0x45, 0xa9, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0xab, 0xdb, 0x01, 0x29, 0x01, 0x2a, 0x3c, 0x9e,
+ 0xc8, 0xc7, 0x9e, 0x9e, 0xc7, 0xc8, 0x01, 0xd1, 0x47, 0x2c, 0x26, 0x8d,
+ 0x01, 0x8e, 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5, 0xb5, 0x33, 0x01, 0x51,
+ 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0xe0, 0x0e,
+ 0x39, 0x39, 0x0e, 0xe0, 0x2a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53,
+ 0x3a, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x02, 0x5c, 0x86, 0xbe, 0xbe,
+ 0x86, 0x82, 0x5c, 0xfc, 0xfe, 0xa5, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c,
+ 0x01, 0x74, 0x01, 0x5b, 0xfc, 0x5c, 0x02, 0x36, 0x4a, 0x51, 0x72, 0x72,
+ 0x51, 0x4a, 0x36, 0xcf, 0xf5, 0x6e, 0x6e, 0x1c, 0x00, 0x07, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x07, 0x30, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x19,
+ 0x00, 0x1d, 0x00, 0x2d, 0x00, 0x39, 0x00, 0x4a, 0x00, 0x00, 0x01, 0x05,
+ 0x07, 0x25, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x25, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x01, 0x17, 0x05, 0x27, 0x01, 0x37, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36,
+ 0x37, 0x17, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x03, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x36, 0x20, 0x17,
+ 0x25, 0x11, 0x16, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x37,
+ 0x11, 0x02, 0x8a, 0x01, 0x10, 0x45, 0xfe, 0xef, 0x02, 0x06, 0x4a, 0x68,
+ 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfd, 0xf8, 0x49, 0x35, 0x34, 0x4a, 0x4a,
+ 0x34, 0x35, 0x49, 0x02, 0xb7, 0x45, 0xfe, 0xef, 0x45, 0xfd, 0xff, 0x67,
+ 0x1a, 0x24, 0x7f, 0x01, 0x6c, 0x80, 0x23, 0x1a, 0x68, 0x22, 0x2d, 0xa4,
+ 0xfe, 0x30, 0xa4, 0x2d, 0xf6, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01,
+ 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0xb2, 0x77,
+ 0x01, 0x0c, 0x77, 0x01, 0x8f, 0x9b, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1,
+ 0xfe, 0x27, 0x9d, 0x05, 0x67, 0xd4, 0x6f, 0xd5, 0xfe, 0xbc, 0x3b, 0x51,
+ 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53,
+ 0x01, 0xec, 0x6e, 0xd5, 0x6f, 0xfd, 0x3e, 0x47, 0x2c, 0x26, 0x8e, 0x8e,
+ 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5, 0xb5, 0x33, 0x01, 0x51, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0x02, 0x1d, 0x2a, 0x2a, 0xec, 0xfd, 0xd0, 0xe7, 0xfe, 0xd1, 0xfe, 0x8c,
+ 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0x01, 0x2f, 0xe7, 0x02, 0x30, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0f,
+ 0x00, 0x1b, 0x00, 0x27, 0x00, 0x32, 0x00, 0x39, 0x00, 0x00, 0x01, 0x37,
+ 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x2d, 0x01, 0x17, 0x07, 0x17, 0x07, 0x25, 0x01, 0xe7, 0x67, 0x1a,
+ 0x24, 0x7f, 0x01, 0x6c, 0x80, 0x23, 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xfe,
+ 0x30, 0xa4, 0x2d, 0xf6, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x01, 0xa9, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x01,
+ 0xc7, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45, 0xfe, 0xf6, 0x01, 0xd1, 0x47,
+ 0x2c, 0x26, 0x8e, 0x8e, 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5, 0xb5, 0x33,
+ 0x01, 0x51, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d,
+ 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x02, 0x87, 0x3b, 0x51,
+ 0x51, 0x76, 0x52, 0x53, 0x64, 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0f,
+ 0x00, 0x1b, 0x00, 0x27, 0x00, 0x33, 0x00, 0x3f, 0x00, 0x00, 0x01, 0x37,
+ 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x03, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0xe7, 0x67, 0x1a, 0x24, 0x7f, 0x01, 0x6c, 0x80, 0x23,
+ 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xfe, 0x30, 0xa4, 0x2d, 0x27, 0x7e, 0xb0,
+ 0x7e, 0x79, 0x37, 0x4c, 0x37, 0x01, 0x9b, 0x7e, 0xb1, 0x7e, 0x7a, 0x37,
+ 0x4b, 0x37, 0xfc, 0x2a, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7,
+ 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01,
+ 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe,
+ 0x6d, 0x01, 0xd1, 0x47, 0x2c, 0x26, 0x8e, 0x8e, 0x27, 0x2c, 0x48, 0x39,
+ 0x32, 0xb5, 0xb5, 0x33, 0x01, 0xf3, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77,
+ 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xa2, 0x01,
+ 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02,
+ 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01,
+ 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x37,
+ 0x00, 0x43, 0x00, 0x51, 0x00, 0x00, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x23, 0x34, 0x26, 0x22, 0x06, 0x15, 0x05, 0x10, 0x00, 0x21, 0x32, 0x37,
+ 0x26, 0x27, 0x06, 0x23, 0x22, 0x00, 0x11, 0x33, 0x14, 0x00, 0x20, 0x00,
+ 0x35, 0x33, 0x14, 0x07, 0x16, 0x1d, 0x01, 0x36, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x05, 0x06, 0x07, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x34, 0x27, 0x26, 0x03, 0xf5, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b,
+ 0x37, 0xfd, 0x72, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfe, 0xb8,
+ 0x01, 0x93, 0x01, 0x1c, 0x7b, 0x6a, 0x5b, 0x3b, 0x26, 0x29, 0xe8, 0xfe,
+ 0xb8, 0x7a, 0x01, 0x00, 0x01, 0x6c, 0x01, 0x00, 0x79, 0x6f, 0x32, 0xbc,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x04, 0x8e, 0x47, 0x52, 0x1b, 0x23, 0x20, 0x18, 0x0f, 0x0b, 0x1e,
+ 0x01, 0x01, 0x02, 0x03, 0x8c, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77,
+ 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xa2, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x29, 0x30, 0x6c, 0x05, 0x01, 0x6a, 0x01, 0x02, 0xca, 0xfe,
+ 0xe5, 0x01, 0x1c, 0xc9, 0xd5, 0xa0, 0x64, 0x63, 0x04, 0xda, 0x01, 0x33,
+ 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x36, 0x43,
+ 0x24, 0x28, 0x18, 0x17, 0x08, 0x13, 0x39, 0x05, 0x06, 0x2e, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0f,
+ 0x00, 0x1b, 0x00, 0x27, 0x00, 0x33, 0x00, 0x3f, 0x00, 0x00, 0x01, 0x37,
+ 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x20,
+ 0x27, 0x26, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32,
+ 0x36, 0x35, 0x21, 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32,
+ 0x36, 0x35, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0xe7, 0x67, 0x1a, 0x24, 0x7f, 0x01, 0x6c, 0x80, 0x23,
+ 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xfe, 0x30, 0xa4, 0x2d, 0x03, 0x9a, 0x7e,
+ 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65, 0x7e, 0xb0, 0x7e, 0x79,
+ 0x37, 0x4c, 0x37, 0xfd, 0x85, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01,
+ 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93,
+ 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4,
+ 0xfe, 0x6d, 0x01, 0xd1, 0x47, 0x2c, 0x26, 0x8e, 0x8e, 0x27, 0x2c, 0x48,
+ 0x39, 0x32, 0xb5, 0xb5, 0x33, 0x02, 0xef, 0x8b, 0xc5, 0xc5, 0x8b, 0x53,
+ 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xfe,
+ 0x62, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd,
+ 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01,
+ 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x17, 0x00, 0x2f, 0x00, 0x3b,
+ 0x00, 0x47, 0x00, 0x57, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x15, 0x06,
+ 0x0f, 0x01, 0x23, 0x27, 0x26, 0x35, 0x26, 0x37, 0x36, 0x33, 0x16, 0x17,
+ 0x16, 0x17, 0x33, 0x34, 0x37, 0x36, 0x21, 0x32, 0x17, 0x16, 0x15, 0x33,
+ 0x36, 0x37, 0x36, 0x37, 0x32, 0x17, 0x16, 0x07, 0x14, 0x0f, 0x01, 0x23,
+ 0x27, 0x26, 0x27, 0x34, 0x37, 0x36, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x37, 0x16, 0x17, 0x16, 0x20,
+ 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x20, 0x27, 0x26, 0x05, 0x15,
+ 0x18, 0x16, 0x36, 0x01, 0x2d, 0x97, 0x02, 0x8f, 0x37, 0x01, 0x09, 0x22,
+ 0x38, 0x25, 0x1d, 0x19, 0x09, 0x01, 0x0c, 0x1f, 0xfd, 0x8f, 0x37, 0x1f,
+ 0x0c, 0x01, 0x09, 0x19, 0x1d, 0x25, 0x39, 0x22, 0x09, 0x01, 0x38, 0x8f,
+ 0x02, 0x97, 0x2d, 0x01, 0x36, 0x17, 0xfe, 0x43, 0x01, 0xd9, 0x01, 0x4f,
+ 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27,
+ 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe,
+ 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x67, 0x1a, 0x24, 0x7f, 0x01, 0x6c,
+ 0x80, 0x23, 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xfe, 0x30, 0xa4, 0x2d, 0x04,
+ 0xc0, 0x0e, 0x25, 0x3f, 0x41, 0x3e, 0xcf, 0xbe, 0x44, 0x4c, 0x15, 0x19,
+ 0x44, 0x01, 0x20, 0x20, 0x31, 0x0e, 0x1d, 0x47, 0x47, 0x1d, 0x0e, 0x31,
+ 0x20, 0x20, 0x01, 0x44, 0x19, 0x15, 0x4c, 0x44, 0xbe, 0xcf, 0x3e, 0x41,
+ 0x3f, 0x25, 0x0e, 0xfe, 0x2a, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe,
+ 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfd,
+ 0xaa, 0x47, 0x2c, 0x26, 0x8e, 0x8e, 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5,
+ 0xb5, 0x33, 0x00, 0x00, 0x00, 0x04, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x17, 0x00, 0x23, 0x00, 0x33, 0x00, 0x3c, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x27, 0x23, 0x15, 0x14,
+ 0x06, 0x22, 0x26, 0x35, 0x14, 0x06, 0x22, 0x26, 0x3d, 0x01, 0x23, 0x06,
+ 0x07, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x25, 0x37, 0x16, 0x17, 0x16, 0x04, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07,
+ 0x06, 0x20, 0x27, 0x26, 0x03, 0x21, 0x26, 0x27, 0x26, 0x21, 0x20, 0x07,
+ 0x06, 0x01, 0x12, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0x4c,
+ 0x63, 0x95, 0xd4, 0x96, 0x95, 0xd5, 0x95, 0x63, 0x4d, 0x79, 0x01, 0xd9,
+ 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1,
+ 0xfe, 0x27, 0x01, 0x4e, 0x67, 0x1a, 0x24, 0x80, 0x01, 0x6b, 0x80, 0x23,
+ 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xfe, 0x30, 0xa4, 0x2d, 0x56, 0x04, 0x1f,
+ 0x14, 0x16, 0xc8, 0xfe, 0xe2, 0xfe, 0xe4, 0xca, 0x15, 0x02, 0xea, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0xc3, 0xa0, 0x4f, 0x64, 0x8e,
+ 0x8e, 0x64, 0x64, 0x8e, 0x8e, 0x64, 0x4f, 0xa0, 0xc3, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x5b,
+ 0x47, 0x2c, 0x26, 0x8d, 0x01, 0x8e, 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5,
+ 0xb5, 0x33, 0x03, 0x3b, 0x1a, 0x19, 0xe0, 0xe0, 0x19, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x29, 0x00, 0x00, 0x01, 0x35,
+ 0x21, 0x15, 0x21, 0x35, 0x21, 0x15, 0x13, 0x32, 0x37, 0x36, 0x37, 0x17,
+ 0x06, 0x07, 0x06, 0x23, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x04, 0x22, 0x01, 0x80, 0xfc, 0x3f, 0x01, 0x7f,
+ 0x61, 0xb6, 0x80, 0x23, 0x1a, 0x68, 0x22, 0x2d, 0xa4, 0xe8, 0xfc, 0xd8,
+ 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0,
+ 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01,
+ 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x03, 0x8c, 0x87,
+ 0x87, 0x87, 0x87, 0xfd, 0xac, 0x8e, 0x27, 0x2c, 0x48, 0x39, 0x32, 0xb5,
+ 0x02, 0x39, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c,
+ 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd,
+ 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x19,
+ 0x00, 0x25, 0x00, 0x31, 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0x01, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0x11, 0x03, 0x60,
+ 0xfc, 0xd1, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08,
+ 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f,
+ 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0x71, 0x87, 0x87, 0x02, 0x8c,
+ 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a,
+ 0x53, 0x53, 0xd9, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe,
+ 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01,
+ 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x00, 0x01, 0x35,
+ 0x21, 0x15, 0x21, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x15, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x04, 0x22,
+ 0x01, 0x80, 0xfc, 0x3f, 0x01, 0x7f, 0xfe, 0xb1, 0x03, 0x60, 0xfb, 0x28,
+ 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0,
+ 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01,
+ 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x03, 0x8c, 0x87,
+ 0x87, 0x87, 0x87, 0xfd, 0xe5, 0x87, 0x87, 0x01, 0x79, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01,
+ 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x29, 0x00, 0x37,
+ 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x05, 0x35, 0x21, 0x15, 0x01, 0x35, 0x21, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x35, 0x21, 0x35, 0x21, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x35, 0x34, 0x35, 0x01, 0x12,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01,
+ 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x01, 0x78, 0x03,
+ 0x60, 0xfc, 0x68, 0x01, 0x53, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x01,
+ 0x34, 0x01, 0x52, 0x34, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0x02, 0xea, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe,
+ 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x05, 0x87, 0x87, 0x02, 0x2d, 0x87, 0x51,
+ 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x03, 0x02, 0x87, 0x51, 0x3b, 0x3a, 0x53,
+ 0x53, 0x3a, 0x03, 0x02, 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x00, 0x1f,
+ 0x00, 0x2a, 0x00, 0x36, 0x00, 0x42, 0x00, 0x00, 0x01, 0x17, 0x16, 0x14,
+ 0x06, 0x22, 0x26, 0x34, 0x37, 0x01, 0x35, 0x21, 0x15, 0x13, 0x25, 0x37,
+ 0x0d, 0x01, 0x27, 0x25, 0x17, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x05, 0xae, 0x3b, 0x18, 0x30, 0x45, 0x30, 0x18, 0xfc,
+ 0x9d, 0x03, 0x60, 0x0a, 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfc, 0x47, 0x45,
+ 0x01, 0x36, 0x45, 0xfb, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49,
+ 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01,
+ 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x03, 0xac, 0x80, 0x35,
+ 0x4f, 0x36, 0x36, 0x4f, 0x35, 0xfe, 0x45, 0x87, 0x87, 0x02, 0xa5, 0xf0,
+ 0x6f, 0xf1, 0x6e, 0x6e, 0xf1, 0x6f, 0xfe, 0xaf, 0x3b, 0x51, 0x51, 0x76,
+ 0x52, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x91, 0x01,
+ 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02,
+ 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01,
+ 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x1b,
+ 0x00, 0x27, 0x00, 0x33, 0x00, 0x00, 0x01, 0x35, 0x21, 0x15, 0x13, 0x14,
+ 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x21, 0x14,
+ 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0x11,
+ 0x03, 0x60, 0x31, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65,
+ 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfd, 0x85, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f,
+ 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0x71, 0x87, 0x87, 0x03, 0x17,
+ 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b,
+ 0x53, 0x77, 0x77, 0x53, 0xfe, 0x62, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x0e, 0x00, 0x19, 0x00, 0x25, 0x00, 0x31, 0x00, 0x00, 0x25, 0x27,
+ 0x01, 0x17, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x02, 0x53, 0x33, 0x03, 0x10, 0x33, 0xfc, 0xdf, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35,
+ 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe,
+ 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0xac, 0x7b, 0x01, 0x96, 0x7b, 0x01, 0xbb, 0x3b, 0x51, 0x51, 0x76, 0x52,
+ 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xd9, 0x01, 0x75,
+ 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c,
+ 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d,
+ 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x42,
+ 0x00, 0x00, 0x01, 0x27, 0x13, 0x17, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x03, 0x37, 0x13, 0x03, 0x22,
+ 0x07, 0x06, 0x07, 0x0e, 0x01, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x27, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x07, 0x26, 0x02, 0x82, 0x56,
+ 0xf3, 0x56, 0xfd, 0x9d, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x04, 0x68, 0xf3, 0x55, 0xf3, 0x8a, 0x2f, 0x25, 0x0a, 0x16, 0x3f,
+ 0xb0, 0x3f, 0x19, 0x0b, 0x1f, 0x2f, 0x33, 0x1d, 0x6c, 0x0e, 0x16, 0x40,
+ 0xb0, 0x3f, 0x19, 0x0b, 0x1f, 0x2f, 0x2f, 0x24, 0x0b, 0x15, 0x3f, 0xb1,
+ 0x3f, 0x15, 0x0f, 0x6d, 0x1c, 0x03, 0x5c, 0x5f, 0x01, 0x0e, 0x5f, 0xfe,
+ 0x80, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0xe6, 0x01, 0x0e, 0x5f,
+ 0xfe, 0xf2, 0xfe, 0x57, 0x69, 0x1d, 0x22, 0x62, 0x01, 0x63, 0x28, 0x21,
+ 0x5f, 0x5f, 0x39, 0x28, 0x22, 0x62, 0x62, 0x28, 0x22, 0x5f, 0x69, 0x1e,
+ 0x22, 0x62, 0x62, 0x22, 0x28, 0x39, 0x5f, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x23,
+ 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x03, 0x37, 0x27, 0x37, 0x17, 0x15, 0x07,
+ 0x17, 0x15, 0x07, 0x27, 0x37, 0x27, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35,
+ 0x49, 0xb9, 0x48, 0x82, 0x3b, 0xe9, 0x36, 0x36, 0xe9, 0x3b, 0x82, 0x48,
+ 0xfd, 0x08, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29,
+ 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01,
+ 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x03,
+ 0xff, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51,
+ 0x3b, 0x3a, 0x53, 0x53, 0xfe, 0x24, 0x3e, 0x4e, 0x76, 0x8d, 0x58, 0x2e,
+ 0x2e, 0x58, 0x8d, 0x76, 0x4e, 0x3e, 0x01, 0x23, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74,
+ 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0,
+ 0xfe, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x17, 0x00, 0x22, 0x00, 0x29, 0x00, 0x36, 0x00, 0x42,
+ 0x00, 0x4e, 0x00, 0x00, 0x01, 0x32, 0x17, 0x16, 0x15, 0x06, 0x0f, 0x01,
+ 0x23, 0x27, 0x26, 0x35, 0x26, 0x37, 0x36, 0x33, 0x16, 0x17, 0x16, 0x17,
+ 0x33, 0x34, 0x37, 0x36, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x2d, 0x01, 0x17, 0x07, 0x17, 0x07, 0x25, 0x03, 0x37,
+ 0x27, 0x37, 0x17, 0x15, 0x07, 0x17, 0x15, 0x07, 0x27, 0x37, 0x27, 0x01,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x05,
+ 0xc6, 0x17, 0x18, 0x36, 0x02, 0x2d, 0x97, 0x02, 0x8e, 0x38, 0x02, 0x09,
+ 0x22, 0x3a, 0x24, 0x1d, 0x19, 0x09, 0x02, 0x0a, 0x1f, 0xfc, 0xb4, 0x49,
+ 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x01, 0xc7, 0x01, 0x0a, 0x45,
+ 0xb2, 0xb2, 0x45, 0xfe, 0xf6, 0x78, 0x48, 0x82, 0x3b, 0xe9, 0x36, 0x36,
+ 0xe9, 0x3b, 0x82, 0x48, 0xfd, 0x08, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50,
+ 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01,
+ 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe,
+ 0xe4, 0xfe, 0x6d, 0x02, 0xaf, 0x0e, 0x25, 0x3f, 0x41, 0x3e, 0xcf, 0xbe,
+ 0x44, 0x4c, 0x15, 0x19, 0x44, 0x01, 0x20, 0x20, 0x31, 0x0e, 0x1d, 0x47,
+ 0x01, 0x4e, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x64, 0xce, 0x6e, 0x8b,
+ 0x8a, 0x6e, 0xce, 0xfe, 0x17, 0x3e, 0x4e, 0x76, 0x8d, 0x58, 0x2e, 0x2e,
+ 0x58, 0x8d, 0x76, 0x4e, 0x3e, 0x01, 0x23, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x24, 0x00, 0x30, 0x00, 0x3c,
+ 0x00, 0x00, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x21, 0x34, 0x36, 0x32, 0x16, 0x15, 0x23, 0x34, 0x26, 0x22,
+ 0x06, 0x15, 0x03, 0x37, 0x27, 0x37, 0x17, 0x15, 0x07, 0x17, 0x15, 0x07,
+ 0x27, 0x37, 0x27, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x01, 0xe1, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37,
+ 0x01, 0x9b, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xde, 0x48, 0x82,
+ 0x3b, 0xe9, 0x36, 0x36, 0xe9, 0x3b, 0x82, 0x48, 0xfd, 0x08, 0x01, 0xd9,
+ 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1,
+ 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe,
+ 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x03, 0x8c, 0x8b, 0xc5, 0xc5,
+ 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77,
+ 0x53, 0xfe, 0x5d, 0x3e, 0x4e, 0x76, 0x8d, 0x58, 0x2e, 0x2e, 0x58, 0x8d,
+ 0x76, 0x4e, 0x3e, 0x01, 0x23, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe,
+ 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0c,
+ 0x00, 0x18, 0x00, 0x24, 0x00, 0x30, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x37,
+ 0x27, 0x37, 0x17, 0x15, 0x07, 0x17, 0x15, 0x07, 0x27, 0x37, 0x27, 0x01,
+ 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x21,
+ 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x01,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03,
+ 0x91, 0x48, 0x82, 0x3b, 0xe9, 0x36, 0x36, 0xe9, 0x3b, 0x82, 0x48, 0x02,
+ 0x11, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65, 0x7e, 0xb0,
+ 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfd, 0x85, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0xe9, 0x3e, 0x4e, 0x76, 0x8d, 0x58, 0x2e,
+ 0x2e, 0x58, 0x8d, 0x76, 0x4e, 0x3e, 0x02, 0xc1, 0x8b, 0xc5, 0xc5, 0x8b,
+ 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53,
+ 0xfe, 0x62, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c,
+ 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd,
+ 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x06, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x22,
+ 0x00, 0x2e, 0x00, 0x38, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x25, 0x35, 0x21, 0x15, 0x23,
+ 0x14, 0x06, 0x22, 0x26, 0x35, 0x21, 0x23, 0x14, 0x16, 0x32, 0x36, 0x02,
+ 0x42, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a,
+ 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0xc8, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe,
+ 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x01, 0x78, 0x03, 0x60, 0xda, 0x7e, 0xb0,
+ 0x7e, 0x01, 0x33, 0xba, 0x37, 0x4c, 0x37, 0x03, 0xff, 0x3b, 0x51, 0x51,
+ 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53,
+ 0xdb, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x63, 0x87, 0x87, 0x8b, 0xc5,
+ 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x1d,
+ 0x00, 0x29, 0x00, 0x33, 0x00, 0x39, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x2d, 0x01, 0x17, 0x07, 0x17,
+ 0x07, 0x25, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x25, 0x35, 0x21, 0x15, 0x23, 0x14, 0x06, 0x22, 0x26, 0x35,
+ 0x21, 0x23, 0x14, 0x16, 0x32, 0x36, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x01, 0xc7, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45,
+ 0xfe, 0xf6, 0xfd, 0x09, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x01, 0x78, 0x03, 0x60, 0xda, 0x7e, 0xb0, 0x7e, 0x01, 0x33, 0xba,
+ 0x37, 0x4c, 0x37, 0x03, 0xfd, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x64,
+ 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce, 0xe8, 0xfe, 0xc4, 0xfe, 0x43, 0x01,
+ 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01,
+ 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02,
+ 0x0c, 0x63, 0x87, 0x87, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x00,
+ 0x00, 0x06, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b,
+ 0x00, 0x17, 0x00, 0x1e, 0x00, 0x25, 0x00, 0x2f, 0x00, 0x35, 0x00, 0x00,
+ 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x01, 0x15, 0x05, 0x27, 0x37, 0x27, 0x37, 0x05, 0x25, 0x17, 0x07, 0x17,
+ 0x07, 0x25, 0x01, 0x35, 0x21, 0x15, 0x23, 0x14, 0x06, 0x22, 0x26, 0x35,
+ 0x21, 0x23, 0x14, 0x16, 0x32, 0x36, 0x01, 0x12, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe,
+ 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x02, 0xe0, 0xfe, 0xf7, 0x46, 0xb3, 0xb3,
+ 0x46, 0x01, 0x99, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45, 0xfe, 0xf6, 0xfe,
+ 0x08, 0x03, 0x60, 0xda, 0x7e, 0xb0, 0x7e, 0x01, 0x33, 0xba, 0x37, 0x4c,
+ 0x37, 0x02, 0xea, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01,
+ 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x02, 0xb1, 0x55,
+ 0xce, 0x6e, 0x8a, 0x8b, 0x6e, 0xce, 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce,
+ 0xfe, 0x07, 0x87, 0x87, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x00,
+ 0x00, 0x07, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x29, 0x00, 0x35, 0x00, 0x46,
+ 0x00, 0x00, 0x01, 0x25, 0x37, 0x0d, 0x01, 0x27, 0x25, 0x17, 0x03, 0x34,
+ 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x36, 0x37, 0x36,
+ 0x20, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06,
+ 0x07, 0x05, 0x7b, 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfc, 0x47, 0x45, 0x01,
+ 0x36, 0x45, 0xfb, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02,
+ 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9,
+ 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1,
+ 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe,
+ 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x21, 0x2d, 0xa4, 0x01,
+ 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6, 0xb6, 0x7f, 0x24,
+ 0x1a, 0x04, 0x16, 0xf0, 0x6f, 0xf1, 0x6e, 0x6e, 0xf1, 0x6f, 0xfe, 0xaf,
+ 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a,
+ 0x53, 0x53, 0x91, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe,
+ 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01,
+ 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfd, 0x25, 0x38,
+ 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x01, 0x8e, 0x27,
+ 0x2c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x22, 0x00, 0x2d,
+ 0x00, 0x39, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x25, 0x27, 0x36, 0x37,
+ 0x36, 0x32, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06,
+ 0x01, 0x25, 0x37, 0x0d, 0x01, 0x27, 0x25, 0x17, 0x03, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x36, 0x37, 0x36, 0x20, 0x17,
+ 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06, 0x07, 0x03,
+ 0x73, 0x6d, 0x0e, 0x16, 0x3f, 0xb0, 0x3f, 0x16, 0x0e, 0x6c, 0x07, 0x07,
+ 0x1b, 0x4c, 0x1b, 0x07, 0x02, 0x02, 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfc,
+ 0x47, 0x45, 0x01, 0x36, 0x45, 0xfb, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34,
+ 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc,
+ 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe,
+ 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d,
+ 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x21,
+ 0x2d, 0xa4, 0x01, 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6,
+ 0xb6, 0x7f, 0x24, 0x1a, 0x9f, 0x39, 0x28, 0x22, 0x62, 0x62, 0x22, 0x28,
+ 0x39, 0x13, 0x10, 0x3c, 0x3c, 0x10, 0x03, 0x64, 0xf0, 0x6f, 0xf1, 0x6e,
+ 0x6e, 0xf1, 0x6f, 0xfe, 0xaf, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a,
+ 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x91, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74,
+ 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0,
+ 0xfe, 0x40, 0xfd, 0x25, 0x38, 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c,
+ 0x27, 0x8e, 0x01, 0x8e, 0x27, 0x2c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03, 0x00, 0x0e, 0x00, 0x19,
+ 0x00, 0x1d, 0x00, 0x29, 0x00, 0x35, 0x00, 0x46, 0x00, 0x00, 0x01, 0x17,
+ 0x05, 0x27, 0x05, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x01, 0x05, 0x07, 0x25, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x13, 0x36, 0x37, 0x36, 0x20, 0x17, 0x16, 0x17,
+ 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06, 0x07, 0x04, 0xf9, 0x45,
+ 0xfe, 0xef, 0x45, 0xfe, 0x5a, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35,
+ 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfe, 0x40,
+ 0x01, 0x10, 0x45, 0xfe, 0xef, 0xfe, 0x55, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0xd5, 0x21, 0x2d, 0xa4, 0x01, 0xd0, 0xa4, 0x2e,
+ 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6, 0xb6, 0x7f, 0x24, 0x1a, 0x05, 0x67,
+ 0x6e, 0xd5, 0x6f, 0xde, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b,
+ 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x01, 0xec, 0xd4, 0x6f, 0xd5, 0xfd,
+ 0xf1, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd,
+ 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01,
+ 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfd, 0x25, 0x38, 0x33, 0xb5,
+ 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x01, 0x8e, 0x27, 0x2c, 0x00,
+ 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x10,
+ 0x00, 0x1c, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x37, 0x00, 0x42, 0x00, 0x46,
+ 0x00, 0x56, 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x20, 0x17, 0x16, 0x17,
+ 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06, 0x07, 0x01, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x05, 0x07,
+ 0x25, 0x01, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x25, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x01,
+ 0x17, 0x05, 0x27, 0x03, 0x27, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17,
+ 0x07, 0x26, 0x27, 0x26, 0x22, 0x07, 0x06, 0x01, 0xe7, 0x21, 0x2d, 0xa4,
+ 0x01, 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6, 0xb6, 0x7f,
+ 0x24, 0x1a, 0xfe, 0xc4, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x01, 0xf1, 0x01, 0x10, 0x45, 0xfe, 0xef, 0x02, 0x06, 0x4a, 0x68,
+ 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfd, 0xf8, 0x49, 0x35, 0x34, 0x4a, 0x4a,
+ 0x34, 0x35, 0x49, 0x02, 0xb7, 0x45, 0xfe, 0xef, 0x45, 0x75, 0x6d, 0x0e,
+ 0x16, 0x3f, 0xb0, 0x3f, 0x16, 0x0e, 0x6c, 0x07, 0x07, 0x1b, 0x4c, 0x1b,
+ 0x07, 0x01, 0x4c, 0x38, 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27,
+ 0x8e, 0x01, 0x8e, 0x27, 0x2c, 0x01, 0xe5, 0xfe, 0xc4, 0xfe, 0x43, 0x01,
+ 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01,
+ 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02,
+ 0x0c, 0x03, 0xf1, 0xd4, 0x6f, 0xd5, 0xfe, 0xbc, 0x3b, 0x51, 0x51, 0x3b,
+ 0x3a, 0x53, 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x01, 0xec,
+ 0x6e, 0xd5, 0x6f, 0xfc, 0x0c, 0x39, 0x28, 0x22, 0x62, 0x62, 0x22, 0x28,
+ 0x39, 0x13, 0x10, 0x3c, 0x3c, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23,
+ 0x00, 0x34, 0x00, 0x4f, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x14, 0x06, 0x22, 0x26, 0x35,
+ 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x01, 0x36, 0x37, 0x36, 0x20, 0x17,
+ 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06, 0x07, 0x01,
+ 0x14, 0x07, 0x06, 0x07, 0x17, 0x16, 0x07, 0x14, 0x07, 0x06, 0x22, 0x26,
+ 0x35, 0x34, 0x3f, 0x01, 0x26, 0x27, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32,
+ 0x36, 0x35, 0x01, 0x12, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x02, 0xf4, 0x7e, 0xb0, 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfe, 0xd3,
+ 0x21, 0x2d, 0xa4, 0x01, 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80,
+ 0xb6, 0xb6, 0x7f, 0x24, 0x1a, 0x03, 0x54, 0x3f, 0x34, 0x46, 0x1d, 0x19,
+ 0x01, 0x18, 0x18, 0x45, 0x30, 0x18, 0x1d, 0x45, 0x35, 0x3f, 0x7a, 0x37,
+ 0x4b, 0x37, 0x02, 0xea, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c,
+ 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x03, 0x12,
+ 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xfc, 0xc4, 0x38, 0x33,
+ 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x01, 0x8e, 0x27, 0x2c,
+ 0x03, 0x83, 0x8c, 0x62, 0x51, 0x0e, 0x3f, 0x37, 0x23, 0x2b, 0x1a, 0x1b,
+ 0x36, 0x2c, 0x23, 0x35, 0x3f, 0x0d, 0x52, 0x62, 0x8c, 0x53, 0x77, 0x77,
+ 0x53, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x10, 0x00, 0x17, 0x00, 0x1e, 0x00, 0x2a, 0x00, 0x36,
+ 0x00, 0x00, 0x01, 0x36, 0x37, 0x36, 0x20, 0x17, 0x16, 0x17, 0x07, 0x26,
+ 0x27, 0x26, 0x23, 0x26, 0x07, 0x06, 0x07, 0x01, 0x25, 0x17, 0x07, 0x17,
+ 0x07, 0x25, 0x27, 0x15, 0x05, 0x27, 0x37, 0x27, 0x37, 0x01, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0xe7, 0x21,
+ 0x2d, 0xa4, 0x01, 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6,
+ 0xb6, 0x7f, 0x24, 0x1a, 0x01, 0xbb, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45,
+ 0xfe, 0xf6, 0x90, 0xfe, 0xf7, 0x46, 0xb3, 0xb3, 0x46, 0xfe, 0x29, 0x01,
+ 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0x4c, 0x38, 0x33,
+ 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e, 0x01, 0x8e, 0x27, 0x2c,
+ 0x03, 0x22, 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce, 0x55, 0x55, 0xce, 0x6e,
+ 0x8a, 0x8b, 0x6e, 0xfd, 0xf5, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe,
+ 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00,
+ 0x00, 0x06, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x18, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x39, 0x00, 0x00,
+ 0x01, 0x27, 0x13, 0x17, 0x01, 0x03, 0x37, 0x13, 0x01, 0x36, 0x37, 0x36,
+ 0x20, 0x17, 0x16, 0x17, 0x07, 0x26, 0x27, 0x26, 0x23, 0x26, 0x07, 0x06,
+ 0x07, 0x01, 0x17, 0x16, 0x0e, 0x01, 0x22, 0x26, 0x34, 0x37, 0x05, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x03, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0x82,
+ 0x56, 0xf3, 0x56, 0x01, 0x8c, 0xf3, 0x55, 0xf3, 0xfc, 0x91, 0x21, 0x2d,
+ 0xa4, 0x01, 0xd0, 0xa4, 0x2e, 0x21, 0x68, 0x19, 0x24, 0x80, 0xb6, 0xb6,
+ 0x7f, 0x24, 0x1a, 0x03, 0x78, 0x3b, 0x19, 0x01, 0x31, 0x44, 0x31, 0x19,
+ 0xfb, 0x86, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f,
+ 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x03,
+ 0x5c, 0x5f, 0x01, 0x0e, 0x5f, 0xfe, 0xf2, 0x01, 0x0e, 0x5f, 0xfe, 0xf2,
+ 0xfd, 0x91, 0x38, 0x33, 0xb5, 0xb5, 0x33, 0x38, 0x48, 0x2c, 0x27, 0x8e,
+ 0x01, 0x8e, 0x27, 0x2c, 0x03, 0x23, 0x80, 0x35, 0x4f, 0x36, 0x36, 0x4f,
+ 0x35, 0xbe, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d,
+ 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x00, 0x06, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x16, 0x00, 0x22,
+ 0x00, 0x2e, 0x00, 0x34, 0x00, 0x3c, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32,
+ 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x21, 0x34, 0x00, 0x20,
+ 0x00, 0x05, 0x21, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x02, 0x42, 0x49,
+ 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b,
+ 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50,
+ 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01,
+ 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe,
+ 0xe4, 0xfe, 0x6d, 0x04, 0x75, 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79, 0x01,
+ 0x0a, 0xfc, 0xfe, 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e,
+ 0x03, 0xff, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x3b, 0x51,
+ 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xdb, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0xfc, 0xa4, 0xe8, 0x01, 0x46, 0xfe, 0xba, 0x61, 0x60, 0x4c, 0x74, 0x75,
+ 0x4c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x3b, 0x00, 0x43, 0x00, 0x00, 0x01, 0x25, 0x37, 0x0d,
+ 0x01, 0x27, 0x25, 0x17, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23,
+ 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x01, 0x21, 0x34, 0x00, 0x20, 0x00, 0x05, 0x21, 0x26, 0x27,
+ 0x26, 0x20, 0x07, 0x06, 0x05, 0x7b, 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfc,
+ 0x47, 0x45, 0x01, 0x36, 0x45, 0xfb, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34,
+ 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc,
+ 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe,
+ 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d,
+ 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x04, 0x75,
+ 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79, 0x01, 0x0a, 0xfc, 0xfe, 0x02, 0x77,
+ 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e, 0x04, 0x16, 0xf0, 0x6f, 0xf1,
+ 0x6e, 0x6e, 0xf1, 0x6f, 0xfe, 0xaf, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53,
+ 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x91, 0x01, 0x75, 0x02,
+ 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01,
+ 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01,
+ 0xc0, 0xfe, 0x40, 0xfc, 0xa4, 0xe8, 0x01, 0x46, 0xfe, 0xba, 0x61, 0x60,
+ 0x4c, 0x74, 0x75, 0x4c, 0x00, 0x0e, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x13, 0x00, 0x19, 0x00, 0x4e, 0x00, 0x5a,
+ 0x00, 0x66, 0x00, 0x6c, 0x00, 0x78, 0x00, 0x84, 0x00, 0x8a, 0x00, 0x90,
+ 0x00, 0x96, 0x00, 0x9c, 0x00, 0xa2, 0x00, 0x00, 0x01, 0x14, 0x16, 0x33,
+ 0x32, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x01, 0x21, 0x26, 0x27,
+ 0x26, 0x20, 0x07, 0x06, 0x05, 0x21, 0x34, 0x00, 0x20, 0x00, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x34, 0x27, 0x15, 0x23, 0x11, 0x26, 0x27,
+ 0x11, 0x23, 0x35, 0x0e, 0x01, 0x22, 0x27, 0x23, 0x35, 0x26, 0x34, 0x37,
+ 0x11, 0x26, 0x27, 0x11, 0x23, 0x11, 0x06, 0x07, 0x11, 0x16, 0x14, 0x07,
+ 0x15, 0x23, 0x06, 0x22, 0x26, 0x27, 0x15, 0x23, 0x11, 0x06, 0x07, 0x11,
+ 0x23, 0x35, 0x06, 0x07, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x25, 0x36, 0x37, 0x35, 0x06, 0x07, 0x13, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x27, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x01, 0x15, 0x16,
+ 0x17, 0x35, 0x26, 0x27, 0x26, 0x27, 0x15, 0x36, 0x3f, 0x01, 0x26, 0x27,
+ 0x15, 0x16, 0x17, 0x25, 0x06, 0x07, 0x15, 0x36, 0x3f, 0x01, 0x06, 0x07,
+ 0x15, 0x16, 0x17, 0x04, 0x21, 0x68, 0x43, 0x4c, 0x5f, 0x64, 0x47, 0x45,
+ 0x66, 0xfe, 0x64, 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e,
+ 0x02, 0xec, 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79, 0x01, 0x0a, 0xfb, 0x8b,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0x30, 0x3d, 0x1b, 0x21,
+ 0x3d, 0x1b, 0x62, 0x80, 0x33, 0x3d, 0x27, 0x27, 0x1e, 0x1e, 0x3d, 0x1f,
+ 0x1e, 0x27, 0x27, 0x3d, 0x32, 0x80, 0x63, 0x1a, 0x3d, 0x22, 0x1b, 0x3d,
+ 0x31, 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29,
+ 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x03, 0xff, 0x1f, 0x15, 0x15, 0x1e,
+ 0x1c, 0x17, 0x14, 0x20, 0xfd, 0xdb, 0x1d, 0x20, 0x20, 0x1d, 0xef, 0x67,
+ 0x44, 0x47, 0x64, 0x5e, 0x4d, 0x42, 0x69, 0x78, 0x1f, 0x14, 0x18, 0x1b,
+ 0x1d, 0x16, 0x15, 0x1e, 0x01, 0xe9, 0x20, 0x1c, 0x1d, 0x5c, 0x1e, 0x1f,
+ 0x1c, 0x21, 0xf3, 0x1e, 0x1f, 0x27, 0x16, 0xfc, 0xad, 0x1f, 0x1d, 0x16,
+ 0x26, 0xf3, 0x1f, 0x1d, 0x20, 0x1c, 0x04, 0x1a, 0x52, 0x6c, 0x75, 0x49,
+ 0x4f, 0x6f, 0x6f, 0xfc, 0xe9, 0x60, 0x4c, 0x74, 0x75, 0x4c, 0xe6, 0xe8,
+ 0x01, 0x46, 0xfe, 0xba, 0x01, 0x37, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd,
+ 0x01, 0x3c, 0x9b, 0x85, 0xba, 0x01, 0x3b, 0x2e, 0x29, 0xfe, 0x6e, 0x59,
+ 0x36, 0x47, 0x24, 0x40, 0x3c, 0x9c, 0x3c, 0x01, 0x3d, 0x04, 0x01, 0xfd,
+ 0x6a, 0x02, 0x96, 0x01, 0x04, 0xfe, 0xc3, 0x3c, 0x9c, 0x3c, 0x40, 0x24,
+ 0x46, 0x37, 0x59, 0x01, 0x93, 0x2a, 0x2e, 0xfe, 0xc5, 0xbc, 0x86, 0x9c,
+ 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4,
+ 0x02, 0x0c, 0x02, 0xa4, 0x18, 0x21, 0x21, 0x18, 0x16, 0x23, 0x20, 0xfc,
+ 0x0a, 0x01, 0xa2, 0x0f, 0x12, 0xfe, 0x91, 0x4f, 0x6f, 0x6f, 0x4f, 0x49,
+ 0x75, 0x6c, 0x52, 0x19, 0x20, 0x23, 0x16, 0x18, 0x21, 0x21, 0x01, 0x79,
+ 0xa3, 0x01, 0x0a, 0x8c, 0x13, 0x28, 0x0a, 0x08, 0xf2, 0x14, 0x09, 0x26,
+ 0x1e, 0x18, 0x84, 0x21, 0x2d, 0xd2, 0x19, 0x1d, 0x9c, 0x2d, 0x21, 0xfd,
+ 0x07, 0x0b, 0xc3, 0x09, 0x14, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x27, 0x00, 0x2d, 0x00, 0x35, 0x00, 0x00,
+ 0x01, 0x27, 0x13, 0x17, 0x01, 0x03, 0x37, 0x13, 0x01, 0x27, 0x13, 0x17,
+ 0x01, 0x03, 0x37, 0x13, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x01, 0x21, 0x34, 0x00, 0x20, 0x00, 0x05, 0x21,
+ 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x02, 0x82, 0x56, 0xf3, 0x56, 0x01,
+ 0x8c, 0xf3, 0x55, 0xf3, 0xfd, 0x2c, 0x56, 0xf3, 0x56, 0x01, 0x8c, 0xf3,
+ 0x55, 0xf3, 0xfb, 0x43, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7,
+ 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01,
+ 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe,
+ 0x6d, 0x04, 0x75, 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79, 0x01, 0x0a, 0xfc,
+ 0xfe, 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e, 0x04, 0x13,
+ 0x5f, 0x01, 0x0e, 0x5f, 0xfe, 0xf2, 0x01, 0x0e, 0x5f, 0xfe, 0xf2, 0xfe,
+ 0x58, 0x5f, 0x01, 0x0e, 0x5f, 0xfe, 0xf2, 0x01, 0x0e, 0x5f, 0xfe, 0xf2,
+ 0x3f, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd,
+ 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01,
+ 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfc, 0xa4, 0xe8, 0x01, 0x46,
+ 0xfe, 0xba, 0x61, 0x60, 0x4c, 0x74, 0x75, 0x4c, 0x00, 0x07, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x41, 0x00, 0x47, 0x00, 0x4f, 0x00, 0x00, 0x01, 0x37,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x03, 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14,
+ 0x16, 0x32, 0x36, 0x35, 0x21, 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14,
+ 0x16, 0x32, 0x36, 0x35, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x01, 0x21, 0x34, 0x00, 0x20, 0x00, 0x05, 0x21,
+ 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x05, 0x30, 0x4d, 0x21, 0x1c, 0x17,
+ 0x13, 0x0c, 0x0c, 0x20, 0x10, 0x09, 0x04, 0x0b, 0x23, 0x1c, 0x35, 0x10,
+ 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65, 0x7e, 0xb0, 0x7e,
+ 0x79, 0x37, 0x4c, 0x37, 0xfd, 0x85, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50,
+ 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01,
+ 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe,
+ 0xe4, 0xfe, 0x6d, 0x04, 0x75, 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79, 0x01,
+ 0x0a, 0xfc, 0xfe, 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e,
+ 0x02, 0xc8, 0x74, 0x32, 0x0f, 0x0b, 0x04, 0x0c, 0x22, 0x14, 0x15, 0x0e,
+ 0x0f, 0x24, 0x14, 0x10, 0x01, 0xc0, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77,
+ 0x77, 0x53, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xfe, 0x62,
+ 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4,
+ 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c,
+ 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfc, 0xa4, 0xe8, 0x01, 0x46, 0xfe,
+ 0xba, 0x61, 0x60, 0x4c, 0x74, 0x75, 0x4c, 0x00, 0x00, 0x06, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x19,
+ 0x00, 0x25, 0x00, 0x2b, 0x00, 0x33, 0x00, 0x00, 0x01, 0x25, 0x17, 0x07,
+ 0x17, 0x07, 0x25, 0x27, 0x15, 0x05, 0x27, 0x37, 0x27, 0x37, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x21,
+ 0x34, 0x00, 0x20, 0x00, 0x05, 0x21, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06,
+ 0x04, 0x09, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45, 0xfe, 0xf6, 0x90, 0xfe,
+ 0xf7, 0x46, 0xb3, 0xb3, 0x46, 0xfe, 0x29, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0x04, 0x75, 0xfc, 0x74, 0x01, 0x09, 0x01, 0x79,
+ 0x01, 0x0a, 0xfc, 0xfe, 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f,
+ 0x3e, 0x04, 0x27, 0xce, 0x6e, 0x8b, 0x8a, 0x6e, 0xce, 0x55, 0x55, 0xce,
+ 0x6e, 0x8a, 0x8b, 0x6e, 0xfd, 0xf5, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0xfc, 0xa4, 0xe8, 0x01, 0x46, 0xfe, 0xba, 0x61, 0x60, 0x4c, 0x74, 0x75,
+ 0x4c, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x55, 0xff, 0x6a, 0x08, 0x14,
+ 0x06, 0x6e, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x13, 0x00, 0x3d, 0x00, 0x62,
+ 0x00, 0x00, 0x25, 0x21, 0x34, 0x00, 0x20, 0x00, 0x01, 0x15, 0x05, 0x27,
+ 0x37, 0x27, 0x37, 0x05, 0x25, 0x17, 0x07, 0x17, 0x07, 0x25, 0x05, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x14, 0x07, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x06, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x02, 0x07, 0x02, 0x21, 0x20,
+ 0x03, 0x26, 0x03, 0x07, 0x06, 0x07, 0x06, 0x22, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x3f, 0x01, 0x26, 0x37, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x27, 0x06, 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x17, 0x16, 0x17, 0x26,
+ 0x27, 0x26, 0x21, 0x20, 0x07, 0x06, 0x07, 0x36, 0x3f, 0x01, 0x07, 0x06,
+ 0x07, 0x06, 0x22, 0x27, 0x06, 0x05, 0xfa, 0xfc, 0x74, 0x01, 0x09, 0x01,
+ 0x79, 0x01, 0x0a, 0xfd, 0xf2, 0xfe, 0xf7, 0x45, 0xb2, 0xb2, 0x45, 0x01,
+ 0x99, 0x01, 0x0a, 0x45, 0xb2, 0xb2, 0x45, 0xfe, 0xf6, 0xfc, 0x90, 0x01,
+ 0xda, 0x01, 0x4e, 0x01, 0x50, 0x01, 0xd8, 0x02, 0x54, 0x35, 0x15, 0x1b,
+ 0x30, 0x45, 0x1c, 0x16, 0x10, 0x0a, 0x26, 0xbc, 0xec, 0xfe, 0xb0, 0xfe,
+ 0xb2, 0xed, 0xbc, 0x27, 0x09, 0x10, 0x17, 0x1c, 0x44, 0x30, 0x1a, 0x15,
+ 0x36, 0x53, 0x02, 0x7a, 0x01, 0x92, 0x01, 0x1c, 0x01, 0x1e, 0x01, 0x90,
+ 0x01, 0x18, 0x21, 0x22, 0x1c, 0x17, 0x10, 0x29, 0x7b, 0x25, 0x15, 0x2a,
+ 0x8b, 0xc7, 0xfe, 0xe1, 0xfe, 0xe4, 0xca, 0x8a, 0x2a, 0x15, 0x25, 0x7a,
+ 0x28, 0x10, 0x17, 0x1c, 0x44, 0x18, 0x01, 0xcb, 0xe8, 0x01, 0x46, 0xfe,
+ 0xba, 0x02, 0x74, 0x55, 0xce, 0x6e, 0x8a, 0x8b, 0x6e, 0xce, 0xce, 0x6e,
+ 0x8b, 0x8a, 0x6e, 0xce, 0xe8, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0x1d, 0x1b, 0x1f, 0x14, 0x18, 0x1f, 0x25, 0x26, 0x36, 0x1f, 0x19,
+ 0x39, 0x20, 0xfe, 0xe9, 0xd1, 0xfe, 0xfa, 0x01, 0x06, 0xd0, 0x01, 0x16,
+ 0x1e, 0x39, 0x19, 0x1f, 0x36, 0x26, 0x25, 0x1f, 0x19, 0x13, 0x1e, 0x1c,
+ 0x1d, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x14, 0x13, 0x1a,
+ 0x1f, 0x19, 0x39, 0x88, 0x2d, 0x0e, 0x0f, 0xc7, 0x9a, 0xe0, 0xe0, 0x9b,
+ 0xc6, 0x10, 0x0d, 0x2d, 0x88, 0x39, 0x19, 0x1f, 0x1b, 0x14, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x07,
+ 0x00, 0x13, 0x00, 0x1e, 0x00, 0x2a, 0x00, 0x36, 0x00, 0x00, 0x00, 0x34,
+ 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x34, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15,
+ 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11,
+ 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0xdb, 0x87, 0xbf, 0x87, 0x87, 0xbf,
+ 0xfe, 0xe0, 0x49, 0x35, 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08,
+ 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35, 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01,
+ 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe,
+ 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f,
+ 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x01, 0x5a, 0xd4, 0x96, 0x96, 0xd4,
+ 0x96, 0x03, 0x3b, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x3a, 0x3b,
+ 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xdb, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x12, 0x00, 0x1d, 0x00, 0x25,
+ 0x00, 0x31, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x25, 0x37, 0x0d, 0x01, 0x27,
+ 0x25, 0x17, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14, 0x06, 0x23, 0x22,
+ 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x02, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x05, 0x7b, 0xfe, 0xcb,
+ 0x45, 0x01, 0x35, 0xfc, 0x47, 0x45, 0x01, 0x36, 0x45, 0xfb, 0x49, 0x35,
+ 0x34, 0x4a, 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b,
+ 0x34, 0x35, 0x49, 0xfc, 0x44, 0x5f, 0x43, 0x43, 0x5f, 0xfd, 0x07, 0x01,
+ 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe,
+ 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91,
+ 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x04, 0x16, 0xf0, 0x6f,
+ 0xf1, 0x6e, 0x6e, 0xf1, 0x6f, 0xfe, 0xaf, 0x3b, 0x51, 0x51, 0x76, 0x52,
+ 0x53, 0x3a, 0x3b, 0x51, 0x51, 0x3b, 0x3a, 0x53, 0x53, 0xfe, 0x14, 0x6a,
+ 0x4b, 0x4b, 0x6a, 0x4b, 0x01, 0xa6, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x08,
+ 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x23, 0x00, 0x2e, 0x00, 0x3a,
+ 0x00, 0x46, 0x00, 0x00, 0x01, 0x17, 0x16, 0x14, 0x06, 0x22, 0x26, 0x34,
+ 0x37, 0x00, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x25, 0x37,
+ 0x0d, 0x01, 0x27, 0x25, 0x17, 0x03, 0x34, 0x36, 0x33, 0x32, 0x16, 0x14,
+ 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16, 0x15, 0x14, 0x06,
+ 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00,
+ 0x21, 0x20, 0x00, 0x05, 0xae, 0x3b, 0x18, 0x30, 0x45, 0x30, 0x18, 0xfd,
+ 0x67, 0x87, 0xbf, 0x87, 0x87, 0xbf, 0x02, 0x19, 0xfe, 0xcb, 0x45, 0x01,
+ 0x35, 0xfc, 0x47, 0x45, 0x01, 0x36, 0x45, 0xfb, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35,
+ 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe,
+ 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0x03, 0xac, 0x80, 0x35, 0x4f, 0x36, 0x36, 0x4f, 0x35, 0xfe, 0x2e, 0xd4,
+ 0x96, 0x96, 0xd4, 0x96, 0x03, 0x52, 0xf0, 0x6f, 0xf1, 0x6e, 0x6e, 0xf1,
+ 0x6f, 0xfe, 0xaf, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b, 0x51,
+ 0x51, 0x3b, 0x3a, 0x53, 0x53, 0x91, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1,
+ 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4,
+ 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40,
+ 0x00, 0x07, 0x00, 0x1f, 0xff, 0x3c, 0x07, 0x63, 0x06, 0x6e, 0x00, 0x07,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1f, 0x00, 0x6b, 0x00, 0x94,
+ 0x00, 0x00, 0x00, 0x26, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x20, 0x26,
+ 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x2f, 0x01, 0x25, 0x17, 0x05, 0x25,
+ 0x37, 0x05, 0x00, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x35,
+ 0x2e, 0x01, 0x27, 0x02, 0x11, 0x34, 0x36, 0x37, 0x36, 0x37, 0x12, 0x20,
+ 0x13, 0x16, 0x17, 0x1e, 0x01, 0x15, 0x10, 0x03, 0x0e, 0x01, 0x07, 0x15,
+ 0x23, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x13, 0x34, 0x26, 0x22, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x0f, 0x01, 0x0e, 0x01, 0x1d, 0x01, 0x23, 0x35,
+ 0x06, 0x22, 0x27, 0x15, 0x23, 0x35, 0x34, 0x26, 0x2f, 0x01, 0x26, 0x27,
+ 0x26, 0x27, 0x2e, 0x01, 0x22, 0x06, 0x15, 0x12, 0x17, 0x16, 0x17, 0x16,
+ 0x1d, 0x01, 0x25, 0x16, 0x32, 0x37, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27,
+ 0x26, 0x20, 0x07, 0x06, 0x07, 0x16, 0x17, 0x1e, 0x02, 0x17, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x04, 0x93, 0x49, 0x4a, 0x68, 0x4b,
+ 0x4b, 0xfd, 0x8f, 0x49, 0x49, 0x69, 0x4a, 0x4a, 0xed, 0x45, 0x01, 0x36,
+ 0x45, 0x02, 0x3e, 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfd, 0x1b, 0x87, 0xbf,
+ 0x87, 0x87, 0xbf, 0xfd, 0xde, 0x41, 0x4e, 0x15, 0x7c, 0x5d, 0x37, 0x35,
+ 0x9d, 0xec, 0x02, 0x9f, 0xec, 0x9c, 0x35, 0x37, 0x5e, 0x7c, 0x16, 0x4d,
+ 0x41, 0x7a, 0x23, 0x74, 0x1a, 0x6e, 0x01, 0x23, 0x34, 0x21, 0x06, 0x0c,
+ 0x5f, 0x25, 0x32, 0x55, 0x23, 0x18, 0x7a, 0x63, 0xeb, 0x6d, 0x7b, 0x18,
+ 0x23, 0x55, 0x32, 0x25, 0x5e, 0x0d, 0x05, 0x22, 0x34, 0x23, 0x02, 0x6e,
+ 0x1a, 0x74, 0x22, 0x01, 0x2b, 0x6b, 0xee, 0x62, 0x18, 0x2b, 0x83, 0x32,
+ 0x0f, 0x36, 0x10, 0x01, 0x08, 0x0a, 0x0b, 0x2e, 0x0e, 0x0f, 0x2d, 0x81,
+ 0xc8, 0xfd, 0xc6, 0xca, 0x81, 0x2d, 0x10, 0x0d, 0x2e, 0x16, 0x07, 0x02,
+ 0x0f, 0x36, 0x0f, 0x33, 0x82, 0x2c, 0x18, 0x03, 0x28, 0x53, 0x75, 0x51,
+ 0x51, 0x75, 0x53, 0x53, 0x75, 0x51, 0x51, 0x76, 0x52, 0xee, 0x6e, 0xf1,
+ 0x6f, 0xf0, 0xf0, 0x6f, 0xf1, 0xfc, 0xd6, 0xd4, 0x96, 0x96, 0xd4, 0x96,
+ 0xfe, 0x78, 0xcb, 0x3e, 0x5b, 0x31, 0x01, 0x17, 0x01, 0x27, 0x53, 0x6b,
+ 0x0a, 0xdf, 0xb0, 0x01, 0x08, 0xfe, 0xf8, 0xaf, 0xe0, 0x0a, 0x6b, 0x53,
+ 0xfe, 0xd9, 0xfe, 0xe9, 0x31, 0x5b, 0x3e, 0xcb, 0xe7, 0x24, 0x1f, 0x6e,
+ 0x39, 0xf0, 0x01, 0x12, 0x1c, 0x28, 0x23, 0x6d, 0xf3, 0x71, 0x2c, 0x25,
+ 0x40, 0x1c, 0x3c, 0x3f, 0xfb, 0x4c, 0x1e, 0x20, 0x4e, 0xfb, 0x3f, 0x3c,
+ 0x1c, 0x40, 0x25, 0x2c, 0x71, 0xf3, 0x6d, 0x23, 0x28, 0x1c, 0xfe, 0xee,
+ 0xf0, 0x39, 0x6e, 0x1f, 0x24, 0xe7, 0xdb, 0x26, 0x25, 0x21, 0x59, 0x3b,
+ 0x65, 0x56, 0x22, 0x13, 0x44, 0x78, 0x0f, 0x86, 0x38, 0x36, 0x30, 0x0e,
+ 0x0a, 0xb5, 0x90, 0xe0, 0xe0, 0x8f, 0xb5, 0x0b, 0x0e, 0x30, 0x6e, 0x86,
+ 0x0f, 0x78, 0x44, 0x13, 0x22, 0x56, 0x65, 0x3b, 0x59, 0x00, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b,
+ 0x00, 0x17, 0x00, 0x23, 0x00, 0x2f, 0x00, 0x3b, 0x00, 0x47, 0x00, 0x4f,
+ 0x00, 0x5b, 0x00, 0x67, 0x00, 0x00, 0x01, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x34, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x37, 0x14, 0x16, 0x33, 0x32, 0x36,
+ 0x35, 0x34, 0x26, 0x23, 0x22, 0x06, 0x17, 0x34, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x26, 0x23, 0x22, 0x06,
+ 0x15, 0x14, 0x16, 0x33, 0x32, 0x36, 0x27, 0x14, 0x06, 0x23, 0x22, 0x26,
+ 0x35, 0x34, 0x36, 0x33, 0x32, 0x16, 0x02, 0x34, 0x36, 0x32, 0x16, 0x14,
+ 0x06, 0x22, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x8d, 0x83, 0x53, 0x60, 0x76, 0x7d, 0x59, 0x55, 0x81,
+ 0x68, 0x81, 0x56, 0x59, 0x7d, 0x77, 0x5f, 0x53, 0x84, 0x2c, 0x68, 0x43,
+ 0x4c, 0x5f, 0x64, 0x47, 0x45, 0x66, 0x77, 0x1f, 0x15, 0x15, 0x1e, 0x1c,
+ 0x17, 0x14, 0x20, 0xfe, 0xca, 0x67, 0x44, 0x47, 0x64, 0x5e, 0x4d, 0x42,
+ 0x69, 0x78, 0x1f, 0x14, 0x18, 0x1b, 0x1d, 0x16, 0x15, 0x1e, 0x0f, 0x87,
+ 0xbf, 0x87, 0x87, 0xbf, 0xfd, 0x37, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50,
+ 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01,
+ 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe,
+ 0xe4, 0xfe, 0x6d, 0x04, 0x1a, 0x66, 0x88, 0x93, 0x5b, 0x63, 0x8b, 0x8b,
+ 0x63, 0x63, 0x8b, 0x8b, 0x63, 0x5b, 0x93, 0x88, 0x66, 0x52, 0x6c, 0x75,
+ 0x49, 0x4f, 0x6f, 0x6f, 0x4f, 0x18, 0x21, 0x21, 0x18, 0x16, 0x23, 0x20,
+ 0x19, 0x4f, 0x6f, 0x6f, 0x4f, 0x49, 0x75, 0x6c, 0x52, 0x19, 0x20, 0x23,
+ 0x16, 0x18, 0x21, 0x21, 0xfd, 0x28, 0xd4, 0x96, 0x96, 0xd4, 0x96, 0x02,
+ 0x26, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd,
+ 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01,
+ 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00, 0x00, 0x0a, 0x00, 0x99,
+ 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x4a, 0x00, 0x56, 0x00, 0x5e,
+ 0x00, 0x62, 0x00, 0x66, 0x00, 0x6b, 0x00, 0x70, 0x00, 0x74, 0x00, 0x79,
+ 0x00, 0x7e, 0x00, 0x00, 0x01, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x34,
+ 0x27, 0x11, 0x23, 0x11, 0x26, 0x27, 0x15, 0x17, 0x07, 0x11, 0x23, 0x35,
+ 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x11,
+ 0x33, 0x11, 0x33, 0x11, 0x27, 0x37, 0x17, 0x35, 0x26, 0x20, 0x07, 0x15,
+ 0x37, 0x17, 0x07, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x23, 0x15,
+ 0x23, 0x35, 0x23, 0x15, 0x23, 0x35, 0x23, 0x15, 0x23, 0x11, 0x27, 0x37,
+ 0x35, 0x06, 0x07, 0x11, 0x23, 0x11, 0x06, 0x07, 0x10, 0x00, 0x21, 0x20,
+ 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x24, 0x34, 0x36, 0x32, 0x16,
+ 0x14, 0x06, 0x22, 0x13, 0x11, 0x33, 0x11, 0x13, 0x33, 0x35, 0x27, 0x17,
+ 0x33, 0x35, 0x07, 0x27, 0x11, 0x15, 0x17, 0x35, 0x26, 0x01, 0x35, 0x07,
+ 0x15, 0x03, 0x06, 0x07, 0x15, 0x37, 0x11, 0x35, 0x07, 0x27, 0x15, 0x01,
+ 0x12, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0x3a, 0x3d, 0x1b,
+ 0x22, 0x05, 0x05, 0x3d, 0x2f, 0x3d, 0x3d, 0x3e, 0x3d, 0x3d, 0x3d, 0x3d,
+ 0x51, 0x45, 0x87, 0x96, 0xfe, 0x8b, 0x96, 0x87, 0x45, 0x52, 0x3d, 0x3d,
+ 0x3d, 0x3d, 0x3d, 0x3d, 0x3e, 0x2e, 0x3e, 0x05, 0x05, 0x21, 0x1c, 0x3d,
+ 0x3b, 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe, 0x29,
+ 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x02, 0xb5, 0x44, 0x5f, 0x43, 0x43,
+ 0x5f, 0x11, 0x3d, 0xf5, 0x3d, 0x3d, 0x7a, 0x2f, 0x03, 0x2c, 0x2f, 0x17,
+ 0xfd, 0x47, 0x3d, 0x3e, 0x18, 0x16, 0x2e, 0x2c, 0x02, 0x02, 0xea, 0xfe,
+ 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0xaa, 0x8f, 0xfe, 0x85, 0x01,
+ 0xf3, 0x2c, 0x28, 0x67, 0x04, 0x09, 0xfe, 0x2d, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x02, 0x38, 0xfe, 0xd7, 0x01, 0x10, 0x3f, 0x6f, 0x69, 0x7b,
+ 0x60, 0x60, 0x7b, 0x69, 0x6f, 0x3f, 0xfe, 0xf0, 0x01, 0x29, 0xfd, 0xc8,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x01, 0xd3, 0x09, 0x04, 0x68, 0x28,
+ 0x2c, 0xfe, 0x0c, 0x01, 0x7d, 0x90, 0xab, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x19, 0x6a, 0x4b,
+ 0x4b, 0x6a, 0x4b, 0x01, 0x64, 0x02, 0x38, 0xfd, 0xc8, 0x01, 0x0f, 0xb1,
+ 0x2f, 0xe0, 0x63, 0x04, 0x22, 0x01, 0x23, 0x7f, 0x24, 0x7a, 0x16, 0xfe,
+ 0x6f, 0xe0, 0x2f, 0xb1, 0x01, 0xa4, 0x13, 0x17, 0x79, 0x24, 0xfe, 0xdb,
+ 0x81, 0x22, 0x04, 0x63, 0x00, 0x08, 0x00, 0x99, 0xff, 0x6a, 0x0b, 0x33,
+ 0x07, 0x6c, 0x00, 0x09, 0x00, 0x13, 0x00, 0x1d, 0x00, 0x25, 0x00, 0x31,
+ 0x00, 0x3d, 0x00, 0x49, 0x00, 0x55, 0x00, 0x00, 0x01, 0x21, 0x15, 0x03,
+ 0x33, 0x15, 0x21, 0x35, 0x13, 0x23, 0x25, 0x21, 0x15, 0x03, 0x33, 0x15,
+ 0x21, 0x35, 0x13, 0x23, 0x25, 0x21, 0x15, 0x03, 0x33, 0x15, 0x21, 0x35,
+ 0x13, 0x23, 0x00, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x14,
+ 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x21, 0x14,
+ 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16, 0x32, 0x36, 0x35, 0x01, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10,
+ 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x09, 0xdd,
+ 0x01, 0x55, 0xdf, 0xdf, 0xfe, 0xa2, 0xe0, 0xd7, 0xfe, 0x48, 0x01, 0x55,
+ 0xdf, 0xdf, 0xfe, 0xa2, 0xe0, 0xd7, 0xfe, 0x48, 0x01, 0x55, 0xdf, 0xdf,
+ 0xfe, 0xa2, 0xdf, 0xd6, 0xfc, 0xe1, 0x44, 0x5f, 0x43, 0x43, 0x5f, 0x02,
+ 0x10, 0x7e, 0xb1, 0x7e, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65, 0x7e, 0xb0,
+ 0x7e, 0x79, 0x37, 0x4c, 0x37, 0xfd, 0x85, 0x01, 0xd9, 0x01, 0x4f, 0x01,
+ 0x50, 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79,
+ 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3,
+ 0xfe, 0xe4, 0xfe, 0x6d, 0x07, 0x6c, 0x68, 0xfe, 0xf4, 0x5c, 0x68, 0x01,
+ 0x0c, 0x5c, 0x68, 0xfe, 0xf4, 0x5c, 0x68, 0x01, 0x0c, 0x5c, 0x68, 0xfe,
+ 0xf4, 0x5c, 0x68, 0x01, 0x0c, 0xfa, 0x7f, 0x6a, 0x4b, 0x4b, 0x6a, 0x4b,
+ 0x03, 0x44, 0x8b, 0xc5, 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5,
+ 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xfe, 0x62, 0x01, 0x75, 0x02, 0x0f,
+ 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74,
+ 0xfe, 0xc4, 0xfe, 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0,
+ 0xfe, 0x40, 0x00, 0x00, 0x00, 0x05, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9,
+ 0x06, 0x6e, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x23, 0x00, 0x2b, 0x00, 0x37,
+ 0x00, 0x00, 0x01, 0x27, 0x37, 0x27, 0x37, 0x17, 0x37, 0x17, 0x07, 0x17,
+ 0x07, 0x27, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x03, 0x10, 0x00, 0x21, 0x20, 0x00, 0x11, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x04, 0x34, 0x36, 0x32, 0x16, 0x14, 0x06, 0x22, 0x01, 0x27,
+ 0x37, 0x27, 0x37, 0x17, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, 0x02, 0x53,
+ 0x56, 0x66, 0x66, 0x56, 0x66, 0x66, 0x56, 0x66, 0x66, 0x56, 0x66, 0xfe,
+ 0x59, 0x01, 0x93, 0x01, 0x1c, 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe,
+ 0xe3, 0xfe, 0xe4, 0xfe, 0x6d, 0x79, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50,
+ 0x01, 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x02, 0x42,
+ 0x87, 0xbf, 0x87, 0x87, 0xbf, 0x01, 0x01, 0x55, 0x65, 0x65, 0x55, 0x66,
+ 0x67, 0x55, 0x66, 0x66, 0x55, 0x67, 0x03, 0x28, 0x5f, 0x71, 0x72, 0x5f,
+ 0x71, 0x71, 0x5f, 0x72, 0x71, 0x5f, 0x71, 0xaf, 0xfe, 0xc4, 0xfe, 0x43,
+ 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0xfe, 0xc3,
+ 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4,
+ 0x02, 0x0c, 0x1c, 0xd4, 0x96, 0x96, 0xd4, 0x96, 0x02, 0x64, 0x5f, 0x71,
+ 0x72, 0x5f, 0x71, 0x71, 0x5f, 0x72, 0x71, 0x5f, 0x71, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0a,
+ 0x00, 0x15, 0x00, 0x21, 0x00, 0x2d, 0x00, 0x00, 0x01, 0x34, 0x36, 0x33,
+ 0x32, 0x16, 0x14, 0x06, 0x23, 0x22, 0x26, 0x25, 0x34, 0x36, 0x32, 0x16,
+ 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x05, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x13, 0x10, 0x00, 0x21, 0x20, 0x00,
+ 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x02, 0x42, 0x49, 0x35, 0x34, 0x4a,
+ 0x4a, 0x34, 0x35, 0x49, 0x02, 0x08, 0x4a, 0x68, 0x4b, 0x4b, 0x34, 0x35,
+ 0x49, 0xfc, 0x4f, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01, 0xd7, 0xfe,
+ 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x79, 0x01, 0x93, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x91, 0xfe, 0x6f, 0xfe, 0xe3, 0xfe, 0xe4, 0xfe, 0x6d,
+ 0x03, 0xfd, 0x3b, 0x51, 0x51, 0x76, 0x52, 0x53, 0x3a, 0x3b, 0x51, 0x51,
+ 0x3b, 0x3a, 0x53, 0x53, 0xd9, 0x01, 0x75, 0x02, 0x0f, 0xfd, 0xf1, 0xfe,
+ 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0x74, 0xfe, 0xc4, 0xfe,
+ 0x43, 0x01, 0xbd, 0x01, 0x3c, 0x01, 0x3d, 0x01, 0xc0, 0xfe, 0x40, 0x00,
+ 0x00, 0x0a, 0x00, 0x99, 0xff, 0x6a, 0x06, 0xe9, 0x06, 0x6e, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x24,
+ 0x00, 0x28, 0x00, 0x2c, 0x00, 0x37, 0x00, 0x00, 0x13, 0x10, 0x00, 0x21,
+ 0x20, 0x00, 0x11, 0x10, 0x00, 0x21, 0x20, 0x00, 0x01, 0x35, 0x21, 0x15,
+ 0x33, 0x35, 0x21, 0x15, 0x25, 0x27, 0x25, 0x17, 0x05, 0x25, 0x37, 0x05,
+ 0x01, 0x21, 0x11, 0x21, 0x01, 0x21, 0x16, 0x33, 0x32, 0x37, 0x36, 0x13,
+ 0x07, 0x01, 0x11, 0x27, 0x12, 0x01, 0x02, 0x27, 0x26, 0x21, 0x20, 0x07,
+ 0x06, 0x03, 0x17, 0x21, 0x99, 0x01, 0xd9, 0x01, 0x4f, 0x01, 0x50, 0x01,
+ 0xd7, 0xfe, 0x29, 0xfe, 0xb0, 0xfe, 0xb1, 0xfe, 0x27, 0x01, 0x48, 0x01,
+ 0x7f, 0xc2, 0x01, 0x80, 0xfc, 0x65, 0x45, 0x01, 0x36, 0x45, 0x02, 0x3e,
+ 0xfe, 0xcb, 0x45, 0x01, 0x35, 0xfc, 0x9a, 0x02, 0xce, 0xfd, 0x32, 0x02,
+ 0xff, 0xfc, 0xd1, 0xb0, 0xe7, 0xe8, 0xf9, 0xb6, 0x14, 0xca, 0xfc, 0x3f,
+ 0xcc, 0x14, 0x05, 0x41, 0x18, 0xab, 0xc8, 0xfe, 0xe2, 0xfe, 0xe4, 0xca,
+ 0xab, 0x19, 0xca, 0x03, 0xc1, 0x02, 0xea, 0x01, 0x75, 0x02, 0x0f, 0xfd,
+ 0xf1, 0xfe, 0x8b, 0xfe, 0x8c, 0xfd, 0xf4, 0x02, 0x0c, 0x01, 0xba, 0x87,
+ 0x87, 0x87, 0x87, 0xe6, 0x6e, 0xf1, 0x6f, 0xf0, 0xf0, 0x6f, 0xf1, 0xfc,
+ 0x87, 0x01, 0x18, 0xfe, 0x61, 0x93, 0xd9, 0xc9, 0x01, 0x11, 0x9e, 0xfe,
+ 0xc4, 0x01, 0x3c, 0x9e, 0xfe, 0xef, 0x01, 0xb3, 0x01, 0x02, 0xbf, 0xe0,
+ 0xe0, 0xbf, 0xfe, 0xff, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x34,
+ 0xff, 0x6a, 0x07, 0x56, 0x07, 0x14, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x52,
+ 0x00, 0x8f, 0x00, 0x9d, 0x00, 0xab, 0x00, 0xb5, 0x00, 0xbb, 0x00, 0xc1,
+ 0x00, 0x00, 0x00, 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x27, 0x37, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x16, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x20, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x16, 0x33, 0x32, 0x01, 0x14, 0x17, 0x25,
+ 0x17, 0x05, 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x25,
+ 0x37, 0x05, 0x36, 0x35, 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27, 0x06, 0x07,
+ 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03, 0x07, 0x26,
+ 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17,
+ 0x36, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x17, 0x1e, 0x04,
+ 0x15, 0x14, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x06,
+ 0x07, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26, 0x03, 0x26, 0x27, 0x07,
+ 0x27, 0x37, 0x26, 0x27, 0x07, 0x27, 0x25, 0x34, 0x2e, 0x01, 0x22, 0x0e,
+ 0x01, 0x15, 0x23, 0x34, 0x36, 0x32, 0x16, 0x15, 0x21, 0x34, 0x2e, 0x01,
+ 0x22, 0x0e, 0x01, 0x15, 0x23, 0x34, 0x36, 0x32, 0x16, 0x15, 0x01, 0x26,
+ 0x27, 0x06, 0x07, 0x15, 0x16, 0x33, 0x32, 0x3f, 0x01, 0x15, 0x36, 0x37,
+ 0x06, 0x23, 0x05, 0x35, 0x23, 0x22, 0x27, 0x16, 0x03, 0x88, 0x75, 0x52,
+ 0x38, 0x6c, 0x59, 0x5b, 0x6a, 0x38, 0x90, 0x66, 0x69, 0x8e, 0x83, 0x05,
+ 0x1a, 0x31, 0xf7, 0xfe, 0xbf, 0xf8, 0x35, 0x20, 0x03, 0x86, 0x90, 0x6d,
+ 0xfd, 0xa0, 0x07, 0x01, 0x2b, 0x05, 0xfe, 0xd5, 0x07, 0x0d, 0x01, 0x15,
+ 0x14, 0xfe, 0xe7, 0x10, 0x14, 0x5c, 0x93, 0xa3, 0x01, 0xb9, 0xa3, 0x90,
+ 0x5d, 0x17, 0x0f, 0xfe, 0xec, 0x13, 0x01, 0x10, 0x0d, 0x07, 0xfe, 0xdb,
+ 0x04, 0x01, 0x26, 0x06, 0x09, 0x09, 0x14, 0x04, 0x18, 0x26, 0xda, 0x8a,
+ 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05, 0x13, 0x09, 0x0a,
+ 0x73, 0x04, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80,
+ 0xe4, 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15,
+ 0x04, 0x1c, 0x0b, 0x11, 0x06, 0x04, 0x5e, 0x03, 0x60, 0x08, 0x13, 0x5e,
+ 0x14, 0x5a, 0x11, 0x18, 0x69, 0xac, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3,
+ 0xad, 0x68, 0x1b, 0x0e, 0x55, 0x13, 0x58, 0x12, 0x08, 0x5b, 0x04, 0x02,
+ 0xe0, 0x13, 0x2d, 0x3b, 0x2c, 0x13, 0x79, 0x7e, 0xb0, 0x7e, 0x01, 0x9b,
+ 0x13, 0x2c, 0x3b, 0x2c, 0x13, 0x7a, 0x7e, 0xb1, 0x7e, 0xfe, 0x67, 0x20,
+ 0x24, 0x18, 0x2d, 0x27, 0x21, 0x24, 0x1d, 0x7b, 0x56, 0x2e, 0x41, 0x34,
+ 0xfe, 0x73, 0x13, 0x39, 0x38, 0x2e, 0x02, 0xfc, 0x2e, 0x78, 0x3d, 0x3d,
+ 0x78, 0xfc, 0x25, 0x42, 0x20, 0x19, 0x44, 0x47, 0x81, 0x93, 0x8f, 0x7d,
+ 0x4b, 0x53, 0x17, 0x17, 0x42, 0x01, 0xc7, 0x24, 0x62, 0x15, 0x43, 0x16,
+ 0x4a, 0x41, 0x69, 0x3f, 0x6c, 0x3a, 0x31, 0xe2, 0x77, 0x84, 0x84, 0x76,
+ 0xe3, 0x38, 0x35, 0x6a, 0x3f, 0x67, 0x3e, 0x4c, 0x15, 0x43, 0x15, 0x52,
+ 0x34, 0x2e, 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15,
+ 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65, 0xbd, 0x4d, 0x45, 0x39,
+ 0x6a, 0x77, 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61,
+ 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93, 0x41,
+ 0x77, 0x6a, 0x39, 0x44, 0x4d, 0x07, 0x44, 0x07, 0x56, 0x57, 0x24, 0x40,
+ 0x22, 0x3c, 0x3c, 0xfe, 0xfd, 0x8c, 0x9e, 0x9e, 0x8c, 0x01, 0x03, 0x40,
+ 0x36, 0x20, 0x40, 0x22, 0x4f, 0x60, 0x07, 0x44, 0x51, 0x2b, 0x5a, 0x45,
+ 0x45, 0x59, 0x2c, 0x8c, 0xc4, 0xc4, 0x8c, 0x2b, 0x5a, 0x45, 0x45, 0x59,
+ 0x2c, 0x8c, 0xc4, 0xc4, 0x8c, 0xfe, 0x03, 0x07, 0x0b, 0x07, 0x0a, 0x91,
+ 0x05, 0x04, 0x84, 0x63, 0x27, 0x46, 0x0a, 0x61, 0x61, 0x09, 0x43, 0x00,
+ 0x00, 0x09, 0x00, 0x56, 0xff, 0x6a, 0x08, 0x13, 0x07, 0x14, 0x00, 0x3f,
+ 0x00, 0x48, 0x00, 0x5d, 0x00, 0xa8, 0x00, 0xb6, 0x00, 0xc4, 0x00, 0xce,
+ 0x00, 0xd4, 0x00, 0xda, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34, 0x2e, 0x02,
+ 0x27, 0x26, 0x27, 0x06, 0x07, 0x26, 0x20, 0x07, 0x26, 0x27, 0x06, 0x07,
+ 0x0e, 0x03, 0x15, 0x14, 0x17, 0x36, 0x3f, 0x01, 0x07, 0x0e, 0x01, 0x23,
+ 0x22, 0x27, 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x06,
+ 0x23, 0x22, 0x26, 0x2f, 0x01, 0x17, 0x16, 0x04, 0x32, 0x37, 0x17, 0x06,
+ 0x23, 0x22, 0x27, 0x37, 0x17, 0x16, 0x33, 0x32, 0x37, 0x16, 0x15, 0x14,
+ 0x07, 0x0e, 0x01, 0x20, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x16, 0x33,
+ 0x32, 0x05, 0x22, 0x26, 0x35, 0x34, 0x36, 0x3f, 0x01, 0x34, 0x27, 0x07,
+ 0x27, 0x37, 0x26, 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17,
+ 0x1e, 0x01, 0x17, 0x36, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16,
+ 0x17, 0x1e, 0x04, 0x15, 0x14, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17,
+ 0x1e, 0x01, 0x15, 0x14, 0x06, 0x23, 0x22, 0x26, 0x2f, 0x01, 0x06, 0x07,
+ 0x02, 0x07, 0x06, 0x20, 0x27, 0x26, 0x03, 0x26, 0x27, 0x07, 0x06, 0x01,
+ 0x34, 0x2e, 0x01, 0x22, 0x0e, 0x01, 0x15, 0x23, 0x34, 0x36, 0x32, 0x16,
+ 0x15, 0x21, 0x34, 0x2e, 0x01, 0x22, 0x0e, 0x01, 0x15, 0x23, 0x34, 0x36,
+ 0x32, 0x16, 0x15, 0x01, 0x26, 0x27, 0x06, 0x07, 0x15, 0x16, 0x33, 0x32,
+ 0x3f, 0x01, 0x15, 0x36, 0x37, 0x06, 0x23, 0x05, 0x35, 0x23, 0x22, 0x27,
+ 0x16, 0x06, 0xf4, 0x02, 0x09, 0x09, 0x14, 0x03, 0x18, 0x26, 0xd9, 0x8b,
+ 0x68, 0xfe, 0xe7, 0x69, 0x88, 0xdc, 0x26, 0x19, 0x04, 0x13, 0x09, 0x09,
+ 0x01, 0x16, 0x48, 0x7a, 0x27, 0x0f, 0x2e, 0x28, 0x2b, 0x19, 0x07, 0x0e,
+ 0x01, 0x15, 0x14, 0xfe, 0xe7, 0x11, 0x13, 0x5c, 0x94, 0xa3, 0x01, 0xb8,
+ 0xa4, 0x91, 0x5c, 0x18, 0x0e, 0xfe, 0xeb, 0x14, 0x01, 0x0f, 0x0f, 0x07,
+ 0x19, 0x2b, 0x28, 0x2f, 0x0e, 0x2a, 0x7d, 0x49, 0xfd, 0x1b, 0x75, 0x53,
+ 0x37, 0x6c, 0x58, 0x5c, 0x6a, 0x38, 0x90, 0x67, 0x68, 0x8e, 0x84, 0x05,
+ 0x1b, 0x31, 0xf6, 0xfe, 0xbf, 0xf8, 0x36, 0x1f, 0x02, 0x87, 0x90, 0x6c,
+ 0xfc, 0xd6, 0x21, 0x32, 0x38, 0x2f, 0x51, 0x07, 0x5c, 0x04, 0x5a, 0x05,
+ 0x07, 0x10, 0x0b, 0x1d, 0x04, 0x15, 0x22, 0x0d, 0x36, 0x81, 0xe3, 0x55,
+ 0x5e, 0xcb, 0x5f, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x14, 0x04, 0x1c,
+ 0x0b, 0x12, 0x06, 0x04, 0x5e, 0x04, 0x5f, 0x06, 0x03, 0x51, 0x2e, 0x36,
+ 0x30, 0x21, 0x27, 0x2f, 0x10, 0x0d, 0x15, 0x28, 0x68, 0xad, 0xc3, 0xfd,
+ 0xfa, 0xc4, 0xad, 0x68, 0x26, 0x18, 0x0e, 0x20, 0x02, 0x9a, 0x14, 0x2b,
+ 0x3c, 0x2d, 0x12, 0x7a, 0x7e, 0xb0, 0x7e, 0x01, 0x9c, 0x13, 0x2c, 0x3b,
+ 0x2d, 0x12, 0x7a, 0x7e, 0xb0, 0x7e, 0xfe, 0x67, 0x20, 0x24, 0x17, 0x2d,
+ 0x27, 0x21, 0x24, 0x1c, 0x7b, 0x56, 0x2f, 0x41, 0x34, 0xfe, 0x72, 0x12,
+ 0x38, 0x39, 0x2f, 0x03, 0x7c, 0x28, 0x2c, 0x2e, 0x66, 0x3e, 0x76, 0x19,
+ 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72,
+ 0x41, 0x65, 0x2e, 0x2a, 0x27, 0x2c, 0x19, 0x2c, 0x88, 0x33, 0x3c, 0x25,
+ 0x57, 0x4c, 0x69, 0x3f, 0x6c, 0x3a, 0x31, 0xe2, 0x77, 0x84, 0x84, 0x76,
+ 0xe3, 0x38, 0x35, 0x6a, 0x3f, 0x67, 0x44, 0x60, 0x28, 0x3c, 0x33, 0x88,
+ 0x2c, 0x19, 0xaf, 0x2e, 0x78, 0x3d, 0x3d, 0x78, 0xfc, 0x25, 0x42, 0x20,
+ 0x19, 0x44, 0x47, 0x81, 0x93, 0x8f, 0x7d, 0x4b, 0x53, 0x17, 0x17, 0x42,
+ 0x41, 0x36, 0x25, 0x2c, 0x34, 0x11, 0x1d, 0x03, 0x4a, 0x07, 0x44, 0x06,
+ 0x4d, 0x45, 0x39, 0x6a, 0x77, 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09,
+ 0x16, 0x89, 0x61, 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75,
+ 0x18, 0x93, 0x41, 0x77, 0x6a, 0x39, 0x44, 0x4d, 0x07, 0x44, 0x07, 0x34,
+ 0x19, 0x1d, 0x11, 0x34, 0x2c, 0x25, 0x36, 0x3c, 0x33, 0x2a, 0x68, 0x62,
+ 0xfe, 0xfd, 0x8c, 0x9e, 0x9e, 0x8c, 0x01, 0x03, 0x5d, 0x70, 0x2d, 0x6f,
+ 0x01, 0xc4, 0x2b, 0x5a, 0x45, 0x45, 0x59, 0x2c, 0x8c, 0xc4, 0xc4, 0x8c,
+ 0x2b, 0x5a, 0x45, 0x45, 0x59, 0x2c, 0x8c, 0xc4, 0xc4, 0x8c, 0xfe, 0x03,
+ 0x07, 0x0b, 0x07, 0x0a, 0x91, 0x05, 0x04, 0x84, 0x63, 0x27, 0x46, 0x0a,
+ 0x61, 0x61, 0x09, 0x43, 0x00, 0x09, 0x00, 0x34, 0xff, 0x6a, 0x07, 0x56,
+ 0x07, 0x14, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x2a, 0x00, 0x5f, 0x00, 0x9c,
+ 0x00, 0xaa, 0x00, 0xb4, 0x00, 0xc3, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x32,
+ 0x37, 0x17, 0x06, 0x23, 0x22, 0x27, 0x37, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x16, 0x15, 0x14, 0x07, 0x0e, 0x01, 0x20, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x16, 0x33, 0x32, 0x17, 0x06, 0x23, 0x22, 0x27, 0x1e, 0x01, 0x32,
+ 0x36, 0x37, 0x06, 0x23, 0x22, 0x01, 0x14, 0x17, 0x25, 0x17, 0x05, 0x16,
+ 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36,
+ 0x37, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36,
+ 0x35, 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27, 0x06, 0x07, 0x26, 0x23, 0x22,
+ 0x07, 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03, 0x07, 0x26, 0x35, 0x34, 0x3e,
+ 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17, 0x36, 0x32, 0x17,
+ 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x17, 0x1e, 0x04, 0x15, 0x14, 0x07,
+ 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x02, 0x07,
+ 0x06, 0x21, 0x20, 0x27, 0x26, 0x03, 0x26, 0x27, 0x07, 0x27, 0x37, 0x26,
+ 0x27, 0x07, 0x27, 0x25, 0x34, 0x36, 0x33, 0x32, 0x16, 0x17, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x37, 0x22, 0x06, 0x15, 0x14, 0x17, 0x3e,
+ 0x01, 0x37, 0x26, 0x05, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x36, 0x37, 0x36, 0x33, 0x32, 0x16, 0x07, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x03, 0x88, 0x75, 0x52, 0x38,
+ 0x6c, 0x59, 0x5b, 0x6a, 0x38, 0x90, 0x66, 0x69, 0x8e, 0x83, 0x05, 0x1a,
+ 0x31, 0xf7, 0xfe, 0xbf, 0xf8, 0x35, 0x20, 0x03, 0x86, 0x90, 0x6d, 0x65,
+ 0x67, 0x6b, 0x39, 0x38, 0x2f, 0xad, 0xd3, 0xaa, 0x2d, 0x41, 0x34, 0x69,
+ 0xfc, 0xd6, 0x07, 0x01, 0x2b, 0x05, 0xfe, 0xd5, 0x07, 0x0d, 0x01, 0x15,
+ 0x14, 0xfe, 0xe7, 0x10, 0x14, 0x5c, 0x93, 0xa3, 0x01, 0xb9, 0xa3, 0x90,
+ 0x5d, 0x17, 0x0f, 0xfe, 0xec, 0x13, 0x01, 0x10, 0x0d, 0x07, 0xfe, 0xdb,
+ 0x04, 0x01, 0x26, 0x06, 0x09, 0x09, 0x14, 0x04, 0x18, 0x26, 0xda, 0x8a,
+ 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05, 0x13, 0x09, 0x0a,
+ 0x73, 0x04, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80,
+ 0xe4, 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15,
+ 0x04, 0x1c, 0x0b, 0x11, 0x06, 0x04, 0x5e, 0x03, 0x60, 0x08, 0x13, 0x5e,
+ 0x14, 0x5a, 0x11, 0x18, 0x69, 0xac, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3,
+ 0xad, 0x68, 0x1b, 0x0e, 0x55, 0x13, 0x58, 0x12, 0x08, 0x5b, 0x04, 0x01,
+ 0xb2, 0x59, 0x3c, 0x38, 0x54, 0x06, 0x2b, 0x44, 0x1e, 0x24, 0x3c, 0x33,
+ 0x07, 0xe4, 0x21, 0x2b, 0x05, 0x26, 0x3e, 0x11, 0x13, 0x02, 0xb2, 0x07,
+ 0x33, 0x3c, 0x21, 0x21, 0x45, 0x2a, 0x07, 0x2d, 0x28, 0x36, 0x3c, 0x59,
+ 0x94, 0x0b, 0x18, 0x29, 0x26, 0x0e, 0x03, 0x0b, 0x0c, 0x27, 0x3a, 0x02,
+ 0xfc, 0x2e, 0x78, 0x3d, 0x3d, 0x78, 0xfc, 0x25, 0x42, 0x20, 0x19, 0x44,
+ 0x47, 0x81, 0x93, 0x8f, 0x7d, 0x4b, 0x53, 0x17, 0x17, 0x42, 0x68, 0x1f,
+ 0x09, 0x45, 0x4c, 0x4d, 0x45, 0x0a, 0x02, 0x4e, 0x24, 0x62, 0x15, 0x43,
+ 0x16, 0x4a, 0x41, 0x69, 0x3f, 0x6c, 0x3a, 0x31, 0xe2, 0x77, 0x84, 0x84,
+ 0x76, 0xe3, 0x38, 0x35, 0x6a, 0x3f, 0x67, 0x3e, 0x4c, 0x15, 0x43, 0x15,
+ 0x52, 0x34, 0x2e, 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15,
+ 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65, 0xbd, 0x4d, 0x45,
+ 0x39, 0x6a, 0x77, 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89,
+ 0x61, 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93,
+ 0x41, 0x77, 0x6a, 0x39, 0x44, 0x4d, 0x07, 0x44, 0x07, 0x56, 0x57, 0x24,
+ 0x40, 0x22, 0x3c, 0x3c, 0xfe, 0xfd, 0x8c, 0x9e, 0x9e, 0x8c, 0x01, 0x03,
+ 0x40, 0x36, 0x20, 0x40, 0x22, 0x4f, 0x60, 0x07, 0x44, 0x9f, 0x46, 0x5f,
+ 0x57, 0x3b, 0x45, 0x18, 0x0b, 0x21, 0x17, 0x49, 0x2b, 0x20, 0x0d, 0x0d,
+ 0x06, 0x2f, 0x21, 0x0f, 0x2d, 0x1d, 0x17, 0x21, 0x0c, 0x19, 0x43, 0x42,
+ 0x2a, 0x26, 0x5f, 0x7a, 0x03, 0x14, 0x15, 0x19, 0x0c, 0x0b, 0x03, 0x35,
+ 0x00, 0x06, 0x00, 0x36, 0xff, 0x6a, 0x07, 0x4e, 0x07, 0x14, 0x00, 0x11,
+ 0x00, 0x19, 0x00, 0x4a, 0x00, 0x83, 0x00, 0x98, 0x00, 0xad, 0x00, 0x00,
+ 0x01, 0x37, 0x16, 0x33, 0x32, 0x37, 0x16, 0x33, 0x32, 0x37, 0x17, 0x06,
+ 0x23, 0x22, 0x27, 0x06, 0x23, 0x22, 0x01, 0x17, 0x06, 0x22, 0x27, 0x37,
+ 0x16, 0x32, 0x25, 0x36, 0x35, 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27, 0x06,
+ 0x07, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03, 0x15,
+ 0x14, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17,
+ 0x16, 0x20, 0x37, 0x36, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x25, 0x37,
+ 0x05, 0x26, 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17, 0x1e,
+ 0x01, 0x17, 0x36, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x17,
+ 0x1e, 0x04, 0x15, 0x14, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07,
+ 0x27, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26, 0x03, 0x07, 0x27, 0x37,
+ 0x26, 0x27, 0x07, 0x27, 0x01, 0x3e, 0x01, 0x33, 0x32, 0x16, 0x15, 0x14,
+ 0x0f, 0x01, 0x23, 0x27, 0x26, 0x27, 0x34, 0x36, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x25, 0x32, 0x16, 0x17, 0x33, 0x34, 0x37, 0x36, 0x33, 0x32, 0x16,
+ 0x15, 0x06, 0x0f, 0x01, 0x23, 0x27, 0x26, 0x35, 0x34, 0x36, 0x02, 0x62,
+ 0x53, 0x3e, 0x52, 0x34, 0x4c, 0x4b, 0x35, 0x51, 0x3f, 0x52, 0x61, 0x81,
+ 0x43, 0x3d, 0x3e, 0x42, 0x82, 0x01, 0x8c, 0x38, 0x6e, 0xae, 0x6e, 0x38,
+ 0x51, 0x78, 0x02, 0x75, 0x10, 0x09, 0x09, 0x14, 0x04, 0x18, 0x26, 0xda,
+ 0x8a, 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05, 0x13, 0x09,
+ 0x0a, 0x11, 0x01, 0x21, 0x0a, 0xfe, 0xdf, 0x0c, 0x15, 0x01, 0x01, 0x18,
+ 0xfe, 0xfd, 0x5d, 0x94, 0xa3, 0x01, 0xb9, 0xa3, 0x93, 0x5d, 0xfe, 0xfe,
+ 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09, 0xfb, 0x46, 0x0f, 0x06,
+ 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80, 0xe4, 0x54, 0x5e,
+ 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15, 0x04, 0x1c, 0x0b,
+ 0x11, 0x06, 0x0f, 0x61, 0x09, 0x62, 0x0d, 0x1d, 0x63, 0x17, 0x63, 0x69,
+ 0xaf, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3, 0xae, 0x6a, 0x62, 0x18, 0x62,
+ 0x1b, 0x0e, 0x62, 0x09, 0x02, 0x99, 0x09, 0x34, 0x29, 0x29, 0x38, 0x38,
+ 0x8f, 0x02, 0x97, 0x2c, 0x02, 0x3a, 0x2a, 0x37, 0x1f, 0x0c, 0x01, 0x7e,
+ 0x28, 0x34, 0x09, 0x01, 0x0c, 0x1f, 0x37, 0x2b, 0x39, 0x01, 0x2d, 0x97,
+ 0x02, 0x8f, 0x37, 0x37, 0x01, 0x8c, 0x62, 0x40, 0x2c, 0x2c, 0x40, 0x62,
+ 0x64, 0x1c, 0x1c, 0x01, 0xa8, 0x78, 0x3d, 0x3d, 0x78, 0x2e, 0x38, 0x82,
+ 0x74, 0x2e, 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15,
+ 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65, 0x2e, 0x74, 0x82, 0x2b,
+ 0x42, 0x2c, 0x45, 0x40, 0x79, 0x3e, 0x7a, 0xe7, 0x77, 0x84, 0x84, 0x77,
+ 0xe7, 0x7a, 0x3e, 0x79, 0x39, 0x4c, 0x2c, 0x42, 0x3d, 0x7c, 0x8f, 0x39,
+ 0x6a, 0x77, 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61,
+ 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93, 0x41,
+ 0x77, 0x6a, 0x39, 0x8f, 0x7c, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e, 0x3e,
+ 0x2e, 0xfe, 0xf7, 0x8e, 0x9e, 0x9e, 0x8c, 0x01, 0x0b, 0x2e, 0x3e, 0x2e,
+ 0x51, 0x57, 0x0e, 0x42, 0x01, 0x95, 0x30, 0x42, 0x3d, 0x31, 0x4a, 0x4a,
+ 0xbe, 0xcf, 0x3d, 0x42, 0x2a, 0x48, 0x47, 0x1b, 0x10, 0x72, 0x42, 0x30,
+ 0x10, 0x1b, 0x47, 0x48, 0x2a, 0x42, 0x3d, 0xcf, 0xbe, 0x4a, 0x4a, 0x31,
+ 0x3d, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x36, 0xff, 0x6a, 0x07, 0x4e,
+ 0x07, 0x14, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x1e, 0x00, 0x28,
+ 0x00, 0x37, 0x00, 0x44, 0x00, 0x75, 0x00, 0xae, 0x00, 0xb8, 0x00, 0x00,
+ 0x01, 0x05, 0x07, 0x2d, 0x01, 0x17, 0x05, 0x27, 0x13, 0x17, 0x06, 0x22,
+ 0x27, 0x37, 0x16, 0x32, 0x03, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x16, 0x07, 0x22, 0x06, 0x15, 0x14,
+ 0x17, 0x3e, 0x01, 0x37, 0x26, 0x05, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x05, 0x36, 0x35,
+ 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27, 0x06, 0x07, 0x26, 0x23, 0x22, 0x07,
+ 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03, 0x15, 0x14, 0x17, 0x25, 0x17, 0x05,
+ 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37,
+ 0x25, 0x37, 0x05, 0x36, 0x37, 0x25, 0x37, 0x05, 0x26, 0x35, 0x34, 0x3e,
+ 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17, 0x36, 0x32, 0x17,
+ 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x17, 0x1e, 0x04, 0x15, 0x14, 0x07,
+ 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x02, 0x07, 0x06, 0x21,
+ 0x20, 0x27, 0x26, 0x03, 0x07, 0x27, 0x37, 0x26, 0x27, 0x07, 0x27, 0x01,
+ 0x32, 0x37, 0x36, 0x37, 0x17, 0x06, 0x07, 0x06, 0x23, 0x02, 0x8a, 0x01,
+ 0x10, 0x45, 0xfe, 0xef, 0x02, 0xb5, 0x45, 0xfe, 0xef, 0x45, 0x67, 0x38,
+ 0x6e, 0xae, 0x6e, 0x38, 0x51, 0x78, 0xea, 0x26, 0x49, 0x1d, 0x24, 0x3f,
+ 0x31, 0x12, 0x2f, 0x2b, 0x3a, 0x3f, 0x5b, 0x46, 0x21, 0x2b, 0x05, 0x26,
+ 0x3e, 0x11, 0x14, 0x01, 0x8c, 0x04, 0x5a, 0x3f, 0x3c, 0x2a, 0x30, 0x13,
+ 0x31, 0x3f, 0x24, 0x1d, 0x49, 0x6d, 0x0b, 0x18, 0x2b, 0x24, 0x0e, 0x03,
+ 0x0b, 0x0c, 0x27, 0x3a, 0x01, 0x6b, 0x10, 0x09, 0x09, 0x14, 0x04, 0x18,
+ 0x26, 0xda, 0x8a, 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05,
+ 0x13, 0x09, 0x0a, 0x11, 0x01, 0x21, 0x0a, 0xfe, 0xdf, 0x0c, 0x15, 0x01,
+ 0x01, 0x18, 0xfe, 0xfd, 0x5d, 0x94, 0xa3, 0x01, 0xb9, 0xa3, 0x93, 0x5d,
+ 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09, 0xfb, 0x46,
+ 0x0f, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80, 0xe4,
+ 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15, 0x04,
+ 0x1c, 0x0b, 0x11, 0x06, 0x0f, 0x61, 0x09, 0x62, 0x0d, 0x1d, 0x63, 0x17,
+ 0x63, 0x69, 0xaf, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3, 0xae, 0x6a, 0x62,
+ 0x18, 0x62, 0x1b, 0x0e, 0x62, 0x09, 0x03, 0x8a, 0xb6, 0x80, 0x24, 0x19,
+ 0x68, 0x1f, 0x30, 0xa3, 0xe9, 0x05, 0x67, 0xd4, 0x6f, 0xd5, 0x6e, 0x6e,
+ 0xd5, 0x6f, 0xfe, 0x3d, 0x78, 0x3d, 0x3d, 0x78, 0x2e, 0x01, 0x06, 0x4c,
+ 0x1c, 0x0b, 0x23, 0x24, 0x2d, 0x47, 0x30, 0x2c, 0x61, 0x26, 0x30, 0x24,
+ 0x0e, 0x0f, 0x07, 0x34, 0x25, 0x11, 0x1d, 0x43, 0x61, 0x2c, 0x30, 0x47,
+ 0x2d, 0x24, 0x23, 0x0b, 0x1c, 0x04, 0x03, 0x16, 0x18, 0x1c, 0x0e, 0x0c,
+ 0x03, 0x3b, 0xa7, 0x82, 0x74, 0x2e, 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7,
+ 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65,
+ 0x2e, 0x74, 0x82, 0x2b, 0x42, 0x2c, 0x45, 0x40, 0x79, 0x3e, 0x7a, 0xe7,
+ 0x77, 0x84, 0x84, 0x77, 0xe7, 0x7a, 0x3e, 0x79, 0x39, 0x4c, 0x2c, 0x42,
+ 0x3d, 0x7c, 0x8f, 0x39, 0x6a, 0x77, 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a,
+ 0x09, 0x16, 0x89, 0x61, 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c,
+ 0x75, 0x18, 0x93, 0x41, 0x77, 0x6a, 0x39, 0x8f, 0x7c, 0x0f, 0x42, 0x0e,
+ 0x51, 0x57, 0x2e, 0x3e, 0x2e, 0xfe, 0xf7, 0x8e, 0x9e, 0x9e, 0x8c, 0x01,
+ 0x0b, 0x2e, 0x3e, 0x2e, 0x51, 0x57, 0x0e, 0x42, 0xfe, 0x7f, 0x8e, 0x28,
+ 0x2b, 0x48, 0x36, 0x35, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x36,
+ 0xff, 0x6a, 0x07, 0x4e, 0x07, 0x14, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x27,
+ 0x00, 0x34, 0x00, 0x69, 0x00, 0xa8, 0x00, 0xb5, 0x00, 0xbe, 0x00, 0x00,
+ 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x16, 0x07, 0x22, 0x06, 0x15, 0x14, 0x17, 0x3e, 0x01, 0x37,
+ 0x26, 0x05, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x23, 0x22, 0x06, 0x05, 0x36, 0x35, 0x34, 0x2e, 0x02, 0x27,
+ 0x26, 0x27, 0x06, 0x07, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27, 0x06, 0x07,
+ 0x0e, 0x03, 0x15, 0x14, 0x17, 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17,
+ 0x25, 0x17, 0x05, 0x17, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x3f, 0x01,
+ 0x25, 0x37, 0x05, 0x36, 0x37, 0x25, 0x37, 0x00, 0x32, 0x17, 0x3e, 0x01,
+ 0x3f, 0x01, 0x17, 0x16, 0x17, 0x1e, 0x04, 0x15, 0x14, 0x06, 0x15, 0x06,
+ 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x07, 0x02, 0x07,
+ 0x06, 0x21, 0x20, 0x27, 0x26, 0x03, 0x27, 0x07, 0x27, 0x37, 0x26, 0x27,
+ 0x07, 0x27, 0x37, 0x26, 0x27, 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f,
+ 0x01, 0x17, 0x1e, 0x01, 0x17, 0x13, 0x37, 0x27, 0x37, 0x17, 0x15, 0x07,
+ 0x17, 0x15, 0x07, 0x27, 0x37, 0x27, 0x02, 0x32, 0x37, 0x17, 0x06, 0x23,
+ 0x22, 0x27, 0x37, 0x03, 0x14, 0x26, 0x49, 0x1d, 0x24, 0x3f, 0x31, 0x12,
+ 0x2f, 0x2b, 0x3a, 0x3f, 0x5b, 0x46, 0x21, 0x2b, 0x05, 0x26, 0x3e, 0x11,
+ 0x14, 0x01, 0x8c, 0x04, 0x5a, 0x3f, 0x3c, 0x2a, 0x30, 0x13, 0x31, 0x3f,
+ 0x24, 0x1d, 0x49, 0x6d, 0x0b, 0x18, 0x2b, 0x24, 0x0e, 0x03, 0x0b, 0x0c,
+ 0x27, 0x3a, 0x01, 0x6b, 0x10, 0x09, 0x09, 0x14, 0x04, 0x18, 0x26, 0xda,
+ 0x8a, 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05, 0x13, 0x09,
+ 0x0a, 0x02, 0x07, 0x08, 0x01, 0x21, 0x0a, 0xfe, 0xdf, 0x0c, 0x15, 0x01,
+ 0x01, 0x18, 0xfe, 0xfd, 0x02, 0x5c, 0x93, 0xa3, 0x01, 0xb9, 0xa3, 0x90,
+ 0x5d, 0x03, 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09,
+ 0xfe, 0x0a, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15, 0x04,
+ 0x1c, 0x0b, 0x11, 0x06, 0x01, 0x02, 0x0c, 0x61, 0x09, 0x62, 0x0d, 0x1d,
+ 0x63, 0x17, 0x63, 0x03, 0x69, 0xac, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3,
+ 0xad, 0x68, 0x03, 0x62, 0x18, 0x62, 0x1b, 0x0e, 0x62, 0x09, 0x61, 0x0c,
+ 0x03, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80, 0xe4,
+ 0x54, 0x93, 0x48, 0x82, 0x3b, 0xe9, 0x36, 0x36, 0xe9, 0x3b, 0x82, 0x48,
+ 0x0a, 0x77, 0x51, 0x38, 0x6b, 0x5a, 0x5b, 0x6a, 0x38, 0x03, 0xa8, 0x4c,
+ 0x1c, 0x0b, 0x23, 0x24, 0x2d, 0x47, 0x30, 0x2c, 0x61, 0x26, 0x30, 0x24,
+ 0x0e, 0x0f, 0x07, 0x34, 0x25, 0x11, 0x1d, 0x43, 0x61, 0x2c, 0x30, 0x47,
+ 0x2d, 0x24, 0x23, 0x0b, 0x1c, 0x04, 0x03, 0x16, 0x18, 0x1c, 0x0e, 0x0c,
+ 0x03, 0x3b, 0xa7, 0x83, 0x73, 0x2e, 0x66, 0x3e, 0x76, 0x19, 0xa1, 0xa7,
+ 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x1b, 0x72, 0x41, 0x65,
+ 0x2e, 0x0f, 0x24, 0x82, 0x41, 0x2b, 0x42, 0x2c, 0x45, 0x40, 0x79, 0x3e,
+ 0x7a, 0x05, 0xe2, 0x77, 0x84, 0x84, 0x76, 0xe3, 0x05, 0x7a, 0x3e, 0x79,
+ 0x39, 0x4c, 0x2c, 0x42, 0x03, 0x13, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a,
+ 0x8c, 0x75, 0x18, 0x93, 0x41, 0x77, 0x6a, 0x39, 0x07, 0x1c, 0x07, 0x8a,
+ 0x57, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e, 0x3e, 0x2e, 0x08, 0xfe, 0xfd,
+ 0x8c, 0x9e, 0x9e, 0x8c, 0x01, 0x03, 0x08, 0x2e, 0x3e, 0x2e, 0x51, 0x57,
+ 0x0e, 0x42, 0x0f, 0x60, 0x81, 0x2a, 0x39, 0x6a, 0x77, 0x41, 0x93, 0x18,
+ 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61, 0xfb, 0x3a, 0x3d, 0x4e, 0x77,
+ 0x8d, 0x59, 0x2e, 0x2d, 0x59, 0x8d, 0x77, 0x4e, 0x3d, 0x01, 0xda, 0x2e,
+ 0x78, 0x3d, 0x3d, 0x78, 0x00, 0x0b, 0x00, 0x36, 0xff, 0x6a, 0x07, 0x4e,
+ 0x07, 0x14, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x27, 0x00, 0x34, 0x00, 0x65,
+ 0x00, 0x9e, 0x00, 0xa6, 0x00, 0xaf, 0x00, 0xb8, 0x00, 0xbc, 0x00, 0xc0,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x33, 0x32, 0x16, 0x07, 0x22, 0x06, 0x15, 0x14, 0x17, 0x3e,
+ 0x01, 0x37, 0x26, 0x05, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x06, 0x05, 0x36, 0x35, 0x34, 0x2e,
+ 0x02, 0x27, 0x26, 0x27, 0x06, 0x07, 0x26, 0x23, 0x22, 0x07, 0x26, 0x27,
+ 0x06, 0x07, 0x0e, 0x03, 0x15, 0x14, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17,
+ 0x25, 0x17, 0x05, 0x16, 0x17, 0x16, 0x20, 0x37, 0x36, 0x37, 0x25, 0x37,
+ 0x05, 0x36, 0x37, 0x25, 0x37, 0x05, 0x26, 0x35, 0x34, 0x3e, 0x03, 0x37,
+ 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17, 0x36, 0x32, 0x17, 0x3e, 0x01,
+ 0x3f, 0x01, 0x17, 0x16, 0x17, 0x1e, 0x04, 0x15, 0x14, 0x07, 0x17, 0x07,
+ 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27,
+ 0x26, 0x03, 0x07, 0x27, 0x37, 0x26, 0x27, 0x07, 0x27, 0x01, 0x36, 0x32,
+ 0x17, 0x07, 0x26, 0x22, 0x07, 0x25, 0x36, 0x20, 0x17, 0x07, 0x26, 0x23,
+ 0x22, 0x07, 0x12, 0x32, 0x37, 0x17, 0x06, 0x23, 0x22, 0x27, 0x37, 0x01,
+ 0x17, 0x05, 0x27, 0x25, 0x05, 0x07, 0x25, 0x03, 0x14, 0x26, 0x49, 0x1d,
+ 0x24, 0x3f, 0x31, 0x12, 0x2f, 0x2b, 0x3a, 0x3f, 0x5b, 0x46, 0x21, 0x2b,
+ 0x05, 0x26, 0x3e, 0x11, 0x14, 0x01, 0x8c, 0x04, 0x5a, 0x3f, 0x3c, 0x2a,
+ 0x30, 0x13, 0x31, 0x3f, 0x24, 0x1d, 0x49, 0x6d, 0x0b, 0x18, 0x2b, 0x24,
+ 0x0e, 0x03, 0x0b, 0x0c, 0x27, 0x3a, 0x01, 0x6b, 0x10, 0x09, 0x09, 0x14,
+ 0x04, 0x18, 0x26, 0xda, 0x8a, 0x69, 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26,
+ 0x18, 0x05, 0x13, 0x09, 0x0a, 0x11, 0x01, 0x21, 0x0a, 0xfe, 0xdf, 0x0c,
+ 0x15, 0x01, 0x01, 0x18, 0xfe, 0xfd, 0x5d, 0x94, 0xa3, 0x01, 0xb9, 0xa3,
+ 0x93, 0x5d, 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09,
+ 0xfb, 0x46, 0x0f, 0x06, 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36,
+ 0x80, 0xe4, 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22,
+ 0x15, 0x04, 0x1c, 0x0b, 0x11, 0x06, 0x0f, 0x61, 0x09, 0x62, 0x0d, 0x1d,
+ 0x63, 0x17, 0x63, 0x69, 0xaf, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3, 0xae,
+ 0x6a, 0x62, 0x18, 0x62, 0x1b, 0x0e, 0x62, 0x09, 0x02, 0xf3, 0x3f, 0xb0,
+ 0x3f, 0x56, 0x1b, 0x4c, 0x1b, 0xfe, 0xb5, 0xa3, 0x01, 0xd2, 0xa3, 0x56,
+ 0x80, 0xb6, 0xb4, 0x81, 0xfb, 0x77, 0x51, 0x38, 0x6b, 0x5a, 0x5b, 0x6a,
+ 0x38, 0x01, 0xc4, 0x45, 0xfe, 0xef, 0x45, 0xfe, 0xa2, 0x01, 0x10, 0x45,
+ 0xfe, 0xef, 0x03, 0xa8, 0x4c, 0x1c, 0x0b, 0x23, 0x24, 0x2d, 0x47, 0x30,
+ 0x2c, 0x61, 0x26, 0x30, 0x24, 0x0e, 0x0f, 0x07, 0x34, 0x25, 0x11, 0x1d,
+ 0x43, 0x61, 0x2c, 0x30, 0x47, 0x2d, 0x24, 0x23, 0x0b, 0x1c, 0x04, 0x03,
+ 0x16, 0x18, 0x1c, 0x0e, 0x0c, 0x03, 0x3b, 0xa7, 0x82, 0x74, 0x2e, 0x66,
+ 0x3e, 0x76, 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7,
+ 0xa1, 0x1b, 0x72, 0x41, 0x65, 0x2e, 0x74, 0x82, 0x2b, 0x42, 0x2c, 0x45,
+ 0x40, 0x79, 0x3e, 0x7a, 0xe7, 0x77, 0x84, 0x84, 0x77, 0xe7, 0x7a, 0x3e,
+ 0x79, 0x39, 0x4c, 0x2c, 0x42, 0x3d, 0x7c, 0x8f, 0x39, 0x6a, 0x77, 0x41,
+ 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61, 0x0d, 0x0d, 0x61,
+ 0x89, 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93, 0x41, 0x77, 0x6a, 0x39,
+ 0x8f, 0x7c, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e, 0x3e, 0x2e, 0xfe, 0xf7,
+ 0x8e, 0x9e, 0x9e, 0x8c, 0x01, 0x0b, 0x2e, 0x3e, 0x2e, 0x51, 0x57, 0x0e,
+ 0x42, 0xfe, 0x13, 0x63, 0x63, 0x5f, 0x3c, 0x3c, 0xf5, 0xb5, 0xb5, 0x60,
+ 0x8e, 0x8e, 0x01, 0xfa, 0x2e, 0x78, 0x3d, 0x3d, 0x78, 0x02, 0x3d, 0x6e,
+ 0xd5, 0x6f, 0xd4, 0xd4, 0x6f, 0xd5, 0x00, 0x00, 0x00, 0x05, 0x00, 0x36,
+ 0xff, 0x6a, 0x07, 0x4e, 0x07, 0x14, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x34,
+ 0x00, 0x64, 0x00, 0x8e, 0x00, 0x00, 0x01, 0x14, 0x06, 0x07, 0x17, 0x16,
+ 0x14, 0x06, 0x22, 0x26, 0x35, 0x34, 0x35, 0x06, 0x22, 0x27, 0x37, 0x16,
+ 0x32, 0x37, 0x17, 0x36, 0x3f, 0x01, 0x2e, 0x01, 0x35, 0x33, 0x14, 0x16,
+ 0x32, 0x36, 0x35, 0x21, 0x14, 0x06, 0x22, 0x26, 0x35, 0x33, 0x14, 0x16,
+ 0x32, 0x36, 0x35, 0x03, 0x36, 0x20, 0x17, 0x07, 0x26, 0x20, 0x07, 0x01,
+ 0x26, 0x10, 0x36, 0x3f, 0x01, 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17,
+ 0x36, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x1f, 0x01, 0x1e,
+ 0x01, 0x14, 0x07, 0x17, 0x07, 0x27, 0x06, 0x07, 0x17, 0x07, 0x27, 0x02,
+ 0x00, 0x20, 0x00, 0x03, 0x07, 0x27, 0x37, 0x26, 0x27, 0x07, 0x27, 0x05,
+ 0x12, 0x21, 0x32, 0x24, 0x37, 0x25, 0x37, 0x05, 0x36, 0x37, 0x25, 0x37,
+ 0x05, 0x36, 0x35, 0x34, 0x2f, 0x01, 0x26, 0x27, 0x06, 0x07, 0x26, 0x20,
+ 0x07, 0x26, 0x27, 0x06, 0x0f, 0x01, 0x06, 0x15, 0x14, 0x17, 0x25, 0x17,
+ 0x05, 0x16, 0x17, 0x25, 0x17, 0x05, 0xa2, 0x73, 0x46, 0x1d, 0x18, 0x30,
+ 0x45, 0x30, 0x63, 0xaf, 0x6a, 0x38, 0x52, 0x77, 0x51, 0x2e, 0x07, 0x0d,
+ 0x1d, 0x45, 0x74, 0x7a, 0x37, 0x4b, 0x37, 0xfe, 0x65, 0x7e, 0xb0, 0x7e,
+ 0x79, 0x37, 0x4c, 0x37, 0xdf, 0xa3, 0x01, 0xd2, 0xa3, 0x56, 0x80, 0xfe,
+ 0x96, 0x81, 0xfe, 0x0c, 0x0f, 0x1d, 0x13, 0x12, 0x15, 0x22, 0x0e, 0x36,
+ 0x80, 0xe4, 0x54, 0x5e, 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22,
+ 0x15, 0x12, 0x27, 0x09, 0x0f, 0x61, 0x09, 0x62, 0x0d, 0x1d, 0x63, 0x17,
+ 0x63, 0x69, 0xfe, 0x8d, 0xfd, 0xf9, 0xfe, 0x8f, 0x6a, 0x62, 0x18, 0x62,
+ 0x1b, 0x0e, 0x62, 0x09, 0x01, 0x1b, 0xc2, 0x01, 0xae, 0xdd, 0x01, 0x36,
+ 0x5d, 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09, 0x01,
+ 0x21, 0x10, 0x18, 0x1b, 0x0e, 0x27, 0xda, 0x8a, 0x69, 0xfe, 0xe8, 0x69,
+ 0x89, 0xdb, 0x26, 0x18, 0x0f, 0x1c, 0x11, 0x01, 0x21, 0x0a, 0xfe, 0xdf,
+ 0x0c, 0x15, 0x01, 0x01, 0x18, 0x04, 0x88, 0x8b, 0xb4, 0x0e, 0x3f, 0x35,
+ 0x4f, 0x36, 0x36, 0x2c, 0x03, 0x03, 0x35, 0x3d, 0x78, 0x2e, 0x2e, 0x63,
+ 0x18, 0x1d, 0x3f, 0x0e, 0xb4, 0x8b, 0x53, 0x77, 0x77, 0x53, 0x8b, 0xc5,
+ 0xc5, 0x8b, 0x53, 0x77, 0x77, 0x53, 0xfc, 0xda, 0xb5, 0xb5, 0x60, 0x8e,
+ 0x8e, 0x01, 0xc6, 0x7c, 0x01, 0x06, 0xc4, 0x6a, 0x61, 0x75, 0x8c, 0x3a,
+ 0x09, 0x16, 0x89, 0x61, 0x0d, 0x0d, 0x61, 0x89, 0x16, 0x09, 0x3a, 0x8c,
+ 0x75, 0x61, 0xcc, 0xa0, 0xc8, 0x7c, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e,
+ 0x3e, 0x2e, 0xfe, 0xf7, 0xfe, 0xd4, 0x01, 0x2a, 0x01, 0x0b, 0x2e, 0x3e,
+ 0x2e, 0x51, 0x57, 0x0e, 0x42, 0xe6, 0xfe, 0x1e, 0xfb, 0xe7, 0x7a, 0x3e,
+ 0x79, 0x39, 0x4c, 0x2c, 0x42, 0x2b, 0x82, 0x51, 0x88, 0x8d, 0xae, 0x62,
+ 0xa7, 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x54, 0xa8, 0x6e,
+ 0x6b, 0x82, 0x2b, 0x42, 0x2c, 0x45, 0x40, 0x79, 0x3e, 0x00, 0x00, 0x00,
+ 0x00, 0x06, 0x00, 0x36, 0xff, 0x6a, 0x07, 0x4e, 0x07, 0x14, 0x00, 0x34,
+ 0x00, 0x73, 0x00, 0x7b, 0x00, 0x83, 0x00, 0x87, 0x00, 0x8b, 0x00, 0x00,
+ 0x01, 0x36, 0x35, 0x34, 0x2e, 0x02, 0x27, 0x26, 0x27, 0x06, 0x07, 0x26,
+ 0x23, 0x22, 0x07, 0x26, 0x27, 0x06, 0x07, 0x0e, 0x03, 0x15, 0x14, 0x17,
+ 0x16, 0x17, 0x25, 0x17, 0x05, 0x16, 0x17, 0x25, 0x17, 0x05, 0x17, 0x16,
+ 0x17, 0x16, 0x20, 0x37, 0x36, 0x3f, 0x01, 0x25, 0x37, 0x05, 0x36, 0x37,
+ 0x25, 0x37, 0x00, 0x32, 0x17, 0x3e, 0x01, 0x3f, 0x01, 0x17, 0x16, 0x17,
+ 0x1e, 0x04, 0x15, 0x14, 0x06, 0x15, 0x06, 0x07, 0x17, 0x07, 0x27, 0x06,
+ 0x07, 0x17, 0x07, 0x27, 0x07, 0x02, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26,
+ 0x03, 0x27, 0x07, 0x27, 0x37, 0x26, 0x27, 0x07, 0x27, 0x37, 0x26, 0x27,
+ 0x35, 0x34, 0x3e, 0x03, 0x37, 0x36, 0x3f, 0x01, 0x17, 0x1e, 0x01, 0x17,
+ 0x03, 0x21, 0x26, 0x27, 0x26, 0x20, 0x07, 0x06, 0x05, 0x21, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x00, 0x0b, 0x01, 0x37, 0x13, 0x05, 0x27, 0x13, 0x17,
+ 0x06, 0x73, 0x10, 0x09, 0x09, 0x14, 0x04, 0x18, 0x26, 0xda, 0x8a, 0x69,
+ 0x8b, 0x8d, 0x69, 0x89, 0xdb, 0x26, 0x18, 0x05, 0x13, 0x09, 0x0a, 0x02,
+ 0x07, 0x08, 0x01, 0x21, 0x0a, 0xfe, 0xdf, 0x0c, 0x15, 0x01, 0x01, 0x18,
+ 0xfe, 0xfd, 0x02, 0x5c, 0x93, 0xa3, 0x01, 0xb9, 0xa3, 0x90, 0x5d, 0x03,
+ 0xfe, 0xfe, 0x17, 0x01, 0x01, 0x13, 0x0e, 0xfe, 0xe0, 0x09, 0xfe, 0x0a,
+ 0xcc, 0x5e, 0x54, 0xe4, 0x80, 0x36, 0x0e, 0x22, 0x15, 0x04, 0x1c, 0x0b,
+ 0x11, 0x06, 0x01, 0x02, 0x0c, 0x61, 0x09, 0x62, 0x0d, 0x1d, 0x63, 0x17,
+ 0x63, 0x03, 0x69, 0xac, 0xc4, 0xfe, 0xfd, 0xfe, 0xfc, 0xc3, 0xad, 0x68,
+ 0x03, 0x62, 0x18, 0x62, 0x1b, 0x0e, 0x62, 0x09, 0x61, 0x0c, 0x03, 0x06,
+ 0x11, 0x0b, 0x1c, 0x04, 0x15, 0x22, 0x0e, 0x36, 0x80, 0xe4, 0x54, 0x79,
+ 0x02, 0x77, 0x15, 0x3f, 0x60, 0xfe, 0xf0, 0x5f, 0x3e, 0x02, 0xec, 0xfc,
+ 0x74, 0x84, 0x84, 0xbd, 0xbc, 0x01, 0x0b, 0x86, 0xf3, 0x55, 0xf3, 0xfd,
+ 0x2c, 0x56, 0xf3, 0x56, 0x02, 0xda, 0x83, 0x73, 0x2e, 0x66, 0x3e, 0x76,
+ 0x19, 0xa1, 0xa7, 0x3a, 0xc4, 0x15, 0x15, 0xc4, 0x3a, 0xa7, 0xa1, 0x1b,
+ 0x72, 0x41, 0x65, 0x2e, 0x0f, 0x24, 0x82, 0x41, 0x2b, 0x42, 0x2c, 0x45,
+ 0x40, 0x79, 0x3e, 0x7a, 0x05, 0xe2, 0x77, 0x84, 0x84, 0x76, 0xe3, 0x05,
+ 0x7a, 0x3e, 0x79, 0x39, 0x4c, 0x2c, 0x42, 0x03, 0x13, 0x0d, 0x61, 0x89,
+ 0x16, 0x09, 0x3a, 0x8c, 0x75, 0x18, 0x93, 0x41, 0x77, 0x6a, 0x39, 0x07,
+ 0x1c, 0x07, 0x8a, 0x57, 0x0f, 0x42, 0x0e, 0x51, 0x57, 0x2e, 0x3e, 0x2e,
+ 0x08, 0xfe, 0xfd, 0x8c, 0x9e, 0x9e, 0x8c, 0x01, 0x03, 0x08, 0x2e, 0x3e,
+ 0x2e, 0x51, 0x57, 0x0e, 0x42, 0x0f, 0x60, 0x81, 0x2a, 0x39, 0x6a, 0x77,
+ 0x41, 0x93, 0x18, 0x75, 0x8c, 0x3a, 0x09, 0x16, 0x89, 0x61, 0xfb, 0x47,
+ 0x61, 0x4b, 0x74, 0x75, 0x4b, 0xe7, 0xe7, 0xa4, 0xa3, 0xfe, 0xba, 0x01,
+ 0x7e, 0x01, 0x0e, 0x5f, 0xfe, 0xf2, 0x5f, 0x5f, 0x01, 0x0e, 0x5f, 0x00,
+ 0x00, 0x01, 0xff, 0xc0, 0x04, 0x9a, 0x00, 0xb4, 0x06, 0x12, 0x00, 0x03,
+ 0x00, 0x00, 0x11, 0x33, 0x03, 0x23, 0xb3, 0x69, 0x8a, 0x06, 0x12, 0xfe,
+ 0x88, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x27, 0x05, 0x0e, 0xff, 0x3f,
+ 0x05, 0xd9, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23,
+ 0x25, 0x33, 0x15, 0x23, 0xfe, 0x88, 0xb6, 0xb6, 0xfe, 0xa0, 0xb7, 0xb7,
+ 0x05, 0xd9, 0xcb, 0xcb, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0xb4,
+ 0x04, 0xee, 0xff, 0x0c, 0x05, 0xf6, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33,
+ 0x03, 0x23, 0xfe, 0x65, 0xa6, 0xcd, 0x8a, 0x05, 0xf6, 0xfe, 0xf8, 0x00,
+ 0x00, 0x01, 0xfd, 0x0a, 0x05, 0x0e, 0xff, 0x5d, 0x05, 0xe9, 0x00, 0x1d,
+ 0x00, 0x00, 0x01, 0x27, 0x2e, 0x01, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x23,
+ 0x34, 0x36, 0x33, 0x32, 0x16, 0x1f, 0x01, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x3d, 0x01, 0x33, 0x0e, 0x01, 0x23, 0x22, 0x26, 0xfe, 0x30, 0x34, 0x16,
+ 0x1c, 0x0b, 0x20, 0x24, 0x71, 0x5d, 0x4d, 0x21, 0x37, 0x2b, 0x33, 0x15,
+ 0x1e, 0x0e, 0x1d, 0x24, 0x70, 0x02, 0x5c, 0x4c, 0x1e, 0x36, 0x05, 0x39,
+ 0x21, 0x0e, 0x0b, 0x32, 0x2d, 0x06, 0x65, 0x76, 0x10, 0x1b, 0x1e, 0x0d,
+ 0x0c, 0x33, 0x29, 0x06, 0x64, 0x77, 0x10, 0x00, 0x00, 0x01, 0xfd, 0x57,
+ 0x04, 0xee, 0xfe, 0xb1, 0x05, 0xf6, 0x00, 0x03, 0x00, 0x00, 0x01, 0x13,
+ 0x23, 0x03, 0xfe, 0x00, 0xb0, 0x89, 0xcf, 0x05, 0xf6, 0xfe, 0xf8, 0x01,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x20, 0x04, 0xee, 0xff, 0x46,
+ 0x05, 0xf8, 0x00, 0x06, 0x00, 0x00, 0x01, 0x33, 0x13, 0x23, 0x27, 0x07,
+ 0x23, 0xfd, 0xdf, 0xa9, 0xbe, 0x7d, 0x96, 0x95, 0x7d, 0x05, 0xf8, 0xfe,
+ 0xf6, 0xb2, 0xb2, 0x00, 0x00, 0x01, 0xfd, 0x20, 0x04, 0xee, 0xff, 0x46,
+ 0x05, 0xf8, 0x00, 0x06, 0x00, 0x00, 0x01, 0x03, 0x33, 0x17, 0x37, 0x33,
+ 0x03, 0xfd, 0xdf, 0xbe, 0x7d, 0x95, 0x96, 0x7d, 0xbe, 0x04, 0xee, 0x01,
+ 0x0a, 0xb2, 0xb2, 0xfe, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfd, 0x19,
+ 0x05, 0x06, 0xff, 0x4d, 0x05, 0xf8, 0x00, 0x0d, 0x00, 0x00, 0x03, 0x23,
+ 0x2e, 0x01, 0x23, 0x22, 0x06, 0x07, 0x23, 0x3e, 0x01, 0x33, 0x32, 0x16,
+ 0xb3, 0x6a, 0x0c, 0x59, 0x4b, 0x4a, 0x57, 0x0e, 0x6a, 0x08, 0x90, 0x81,
+ 0x82, 0x8f, 0x05, 0x06, 0x36, 0x39, 0x37, 0x38, 0x77, 0x7b, 0x7a, 0x00,
+ 0x00, 0x01, 0xfd, 0x19, 0x05, 0x06, 0xff, 0x4d, 0x05, 0xf8, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0x33, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x37, 0x33, 0x0e,
+ 0x01, 0x23, 0x22, 0x26, 0xfd, 0x1a, 0x6a, 0x0b, 0x59, 0x4b, 0x4a, 0x57,
+ 0x0f, 0x6a, 0x09, 0x90, 0x81, 0x81, 0x90, 0x05, 0xf8, 0x36, 0x39, 0x37,
+ 0x38, 0x77, 0x7b, 0x7a, 0x00, 0x01, 0xfd, 0xd7, 0x05, 0x0e, 0xfe, 0x8f,
+ 0x05, 0xdb, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0xfd, 0xd7,
+ 0xb8, 0xb8, 0x05, 0xdb, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x35,
+ 0x04, 0xee, 0xff, 0xba, 0x05, 0xf6, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x03, 0x33, 0x03, 0x23, 0x03, 0x33, 0x03, 0x23, 0xed, 0xa7, 0xcd, 0x8a,
+ 0x7d, 0xa6, 0xcd, 0x8a, 0x05, 0xf6, 0xfe, 0xf8, 0x01, 0x08, 0xfe, 0xf8,
+ 0x00, 0x02, 0xfc, 0xac, 0x04, 0xee, 0xff, 0x31, 0x05, 0xf6, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x00, 0x01, 0x13, 0x23, 0x03, 0x21, 0x13, 0x23, 0x03,
+ 0xfd, 0x53, 0xb1, 0x8a, 0xcd, 0x01, 0xd4, 0xb0, 0x8a, 0xcd, 0x05, 0xf6,
+ 0xfe, 0xf8, 0x01, 0x08, 0xfe, 0xf8, 0x01, 0x08, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x87, 0x00, 0x96, 0x00, 0x03, 0x00, 0x00, 0x35, 0x33,
+ 0x15, 0x23, 0x87, 0x87, 0x96, 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x68, 0x00, 0x96, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x37, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0xe1, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x96, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x68, 0x01, 0x90, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x13, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x70, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x01,
+ 0x90, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+ 0xff, 0x06, 0x01, 0x68, 0x00, 0x96, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x17, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x70, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x64,
+ 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0xff, 0x06, 0x00, 0x87, 0x00, 0x96, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x15, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x87, 0x87, 0x87, 0x87,
+ 0x64, 0x96, 0x01, 0x90, 0x96, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
+ 0xff, 0x06, 0x01, 0x68, 0x00, 0x96, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x17, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23,
+ 0x07, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0xe1, 0x87, 0x87, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0x87, 0x87, 0x64, 0x96, 0x01, 0x90, 0x96, 0x64,
+ 0x96, 0x01, 0x90, 0x96, 0x00, 0x01, 0x00, 0x75, 0xff, 0xec, 0x07, 0x24,
+ 0x02, 0x9d, 0x00, 0x26, 0x00, 0x00, 0x01, 0x14, 0x17, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x24, 0x03, 0x26, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x33, 0x16, 0x06, 0x3e, 0x3e,
+ 0x39, 0x39, 0x36, 0x5c, 0x68, 0x40, 0x48, 0x16, 0x8b, 0xd2, 0xe9, 0xbe,
+ 0xb0, 0x70, 0xfe, 0xd8, 0x01, 0x01, 0x3a, 0xa5, 0x3a, 0xb7, 0x5d, 0x88,
+ 0xea, 0xab, 0xb3, 0x6f, 0x35, 0x1a, 0xa5, 0x12, 0x01, 0xf8, 0xd0, 0x3b,
+ 0x35, 0xb8, 0x49, 0x53, 0x42, 0x83, 0x35, 0x3a, 0x26, 0x65, 0x01, 0x08,
+ 0x8a, 0x5c, 0x5e, 0x88, 0x7d, 0x43, 0x22, 0x02, 0x37, 0x3a, 0x6d, 0x34,
+ 0x77, 0x3e, 0x37, 0x4b, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x01, 0x60,
+ 0x02, 0x58, 0x00, 0x0d, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x01, 0x0d, 0x41, 0x8d,
+ 0x51, 0x20, 0x59, 0x27, 0x2c, 0xa6, 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a,
+ 0xd9, 0xd9, 0xbb, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x02, 0x3f,
+ 0x02, 0x58, 0x00, 0x14, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x01, 0x0d, 0x45, 0x89, 0x51, 0x20, 0x59, 0x27, 0x2c,
+ 0xa6, 0x2c, 0x28, 0x59, 0x31, 0x63, 0x87, 0x56, 0x56, 0xb8, 0x2c, 0x31,
+ 0x6a, 0xd9, 0xd9, 0x6a, 0x31, 0x2c, 0xb8, 0x00, 0x00, 0x02, 0x00, 0x75,
+ 0xff, 0xa5, 0x07, 0x86, 0x03, 0x11, 0x00, 0x2c, 0x00, 0x3e, 0x00, 0x00,
+ 0x25, 0x06, 0x07, 0x06, 0x23, 0x24, 0x27, 0x24, 0x03, 0x26, 0x37, 0x33,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x21, 0x32, 0x25, 0x37, 0x26, 0x27, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x05, 0xd2, 0x5d, 0x63, 0xfc, 0xf5, 0xfe, 0xed, 0x70,
+ 0xfe, 0xd8, 0x01, 0x01, 0x3a, 0xa5, 0x3a, 0xb7, 0x48, 0x01, 0x0e, 0xd0,
+ 0x01, 0x01, 0x19, 0x1f, 0x1a, 0x49, 0x03, 0x14, 0xa9, 0x34, 0x2f, 0x4a,
+ 0x49, 0x7b, 0x10, 0x04, 0x48, 0x08, 0x06, 0xed, 0xf1, 0x5f, 0x64, 0x5e,
+ 0x04, 0x0d, 0x2f, 0x1e, 0x24, 0x16, 0x14, 0x37, 0x11, 0x05, 0x25, 0x2c,
+ 0x24, 0x2b, 0x18, 0x3c, 0x01, 0x27, 0x67, 0x01, 0x06, 0x8a, 0x5c, 0x5e,
+ 0x88, 0x73, 0x4d, 0x1f, 0x36, 0x04, 0x1b, 0x2c, 0x7c, 0x79, 0x1f, 0x24,
+ 0x9b, 0x4b, 0x17, 0x32, 0x53, 0x96, 0x25, 0x1e, 0x90, 0x6a, 0x01, 0xb8,
+ 0xdf, 0x41, 0x7a, 0x14, 0x1b, 0x47, 0x27, 0x19, 0x0a, 0x19, 0x3c, 0x13,
+ 0x12, 0x38, 0x42, 0x4e, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x02, 0xec,
+ 0x03, 0xd9, 0x00, 0x0f, 0x00, 0x30, 0x00, 0x00, 0x01, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x07, 0x06, 0x07, 0x06, 0x07, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x01, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x21, 0x02, 0x1a, 0x25,
+ 0x3b, 0x1c, 0x28, 0x2f, 0x24, 0x24, 0x01, 0x32, 0x24, 0x26, 0x41, 0xfd,
+ 0xe9, 0xd9, 0x4b, 0x88, 0x48, 0x36, 0x1b, 0x0e, 0x39, 0x57, 0x75, 0x46,
+ 0x58, 0x07, 0x14, 0x87, 0x47, 0x44, 0x51, 0x3b, 0x57, 0x29, 0x15, 0x46,
+ 0x43, 0x6f, 0x63, 0x82, 0xfe, 0xdf, 0x02, 0x19, 0x2b, 0x4d, 0x3b, 0x33,
+ 0x19, 0x01, 0x01, 0x2a, 0x29, 0x33, 0x50, 0x26, 0x19, 0xfe, 0xb7, 0x17,
+ 0x0c, 0x5d, 0x30, 0x32, 0x37, 0x02, 0x02, 0x45, 0x57, 0x81, 0x34, 0x2c,
+ 0x94, 0x45, 0x24, 0x32, 0x48, 0x66, 0x33, 0x8c, 0xd0, 0x8f, 0x88, 0x2c,
+ 0x27, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xb7,
+ 0x03, 0x08, 0x00, 0x21, 0x00, 0x35, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16,
+ 0x15, 0x14, 0x07, 0x06, 0x07, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x07, 0x22, 0x07, 0x06, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26,
+ 0x27, 0x26, 0x02, 0x29, 0xa4, 0x16, 0x07, 0x13, 0x1a, 0x20, 0x23, 0x84,
+ 0x72, 0xc3, 0x7a, 0xa7, 0xa6, 0x7b, 0xc3, 0x72, 0x85, 0x23, 0x1a, 0x21,
+ 0x13, 0x08, 0x14, 0xa7, 0x1b, 0x3a, 0x39, 0x39, 0x0d, 0x11, 0x32, 0x16,
+ 0x08, 0x15, 0x1c, 0x3d, 0x39, 0x20, 0x17, 0x0a, 0x15, 0x33, 0x11, 0x02,
+ 0xfa, 0x50, 0x96, 0x32, 0x2a, 0x49, 0x31, 0x43, 0x32, 0x11, 0xb8, 0x39,
+ 0x39, 0xb8, 0x11, 0x28, 0x4d, 0x2e, 0x4c, 0x2c, 0x30, 0x8f, 0x57, 0x0e,
+ 0xb8, 0x0a, 0x20, 0x35, 0x15, 0x1d, 0x2b, 0x35, 0x44, 0x16, 0x15, 0x45,
+ 0x32, 0x2e, 0x18, 0x1a, 0x34, 0x21, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x60,
+ 0xfe, 0x0c, 0x06, 0x14, 0x02, 0xe4, 0x00, 0x2e, 0x00, 0x40, 0x00, 0x00,
+ 0x25, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x2b,
+ 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x27, 0x24, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x13,
+ 0x36, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x16, 0x04, 0x3f, 0x3b, 0x2a, 0x6c, 0x34, 0x84,
+ 0x05, 0x24, 0x85, 0x24, 0x4f, 0x65, 0x32, 0x59, 0x2d, 0x12, 0x06, 0x17,
+ 0x03, 0xed, 0xf1, 0x2b, 0x28, 0x38, 0x72, 0x8f, 0x9e, 0xb8, 0xfe, 0xb3,
+ 0x55, 0x3e, 0x38, 0xa6, 0x38, 0x18, 0x36, 0xec, 0x7e, 0x87, 0xc0, 0x61,
+ 0x04, 0x14, 0x11, 0x2b, 0x1e, 0x23, 0x1f, 0x13, 0x2e, 0x13, 0x09, 0x34,
+ 0x44, 0x5a, 0x2a, 0x0a, 0x05, 0x0d, 0x23, 0x2b, 0x6d, 0xb9, 0x3d, 0x1a,
+ 0xa5, 0x45, 0x13, 0x32, 0x58, 0x91, 0x3a, 0xd6, 0x01, 0xb8, 0x7a, 0x46,
+ 0x91, 0x4e, 0x56, 0x01, 0x02, 0xbe, 0x8a, 0x7d, 0xa6, 0x60, 0x6b, 0x9b,
+ 0x4c, 0x3a, 0x82, 0x44, 0x62, 0x01, 0x5a, 0x7a, 0x57, 0x4b, 0x23, 0x19,
+ 0x0a, 0x1b, 0x3a, 0x1e, 0x19, 0x3c, 0x2c, 0x3b, 0x14, 0x09, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x02, 0xec, 0x03, 0xd9, 0x10, 0x06,
+ 0x11, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x03, 0xb7,
+ 0x03, 0x08, 0x10, 0x06, 0x11, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x01, 0x60, 0x03, 0xe8, 0x10, 0x26, 0x10, 0xfd, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x00, 0xca, 0x03, 0x52, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0x3f, 0x03, 0xe8, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x00, 0xca, 0x03, 0x52, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x8b, 0x01, 0xb7, 0x00, 0x0b, 0x00, 0x17, 0x00, 0x00,
+ 0x25, 0x34, 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e,
+ 0x01, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17,
+ 0x01, 0x1c, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x38,
+ 0x3a, 0xa6, 0x38, 0x3a, 0x3a, 0x38, 0xa6, 0x3a, 0xdc, 0x28, 0x1c, 0x1d,
+ 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40,
+ 0xb8, 0x40, 0x3f, 0x3f, 0xff, 0xff, 0x00, 0x75, 0xfe, 0x90, 0x07, 0x24,
+ 0x03, 0x20, 0x10, 0x27, 0x10, 0xf7, 0x02, 0x76, 0x02, 0x8a, 0x10, 0x27,
+ 0x11, 0x07, 0x02, 0x65, 0xfe, 0x90, 0x10, 0x06, 0x10, 0xfc, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xee, 0xfe, 0xf4, 0x01, 0xd3, 0x03, 0xe8, 0x10, 0x26,
+ 0x10, 0xfd, 0x00, 0x00, 0x10, 0x27, 0x10, 0xf7, 0x00, 0x59, 0x03, 0x52,
+ 0x10, 0x07, 0x11, 0x07, 0x00, 0x48, 0xfe, 0xf4, 0xff, 0xff, 0xff, 0xee,
+ 0xfe, 0xf4, 0x02, 0x3f, 0x03, 0xe8, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00,
+ 0x10, 0x27, 0x10, 0xf7, 0x00, 0x59, 0x03, 0x52, 0x10, 0x07, 0x11, 0x07,
+ 0x00, 0x48, 0xfe, 0xf4, 0xff, 0xff, 0x00, 0x75, 0xff, 0xec, 0x07, 0x24,
+ 0x03, 0xb6, 0x10, 0x27, 0x10, 0xf9, 0x02, 0x76, 0x03, 0x20, 0x10, 0x06,
+ 0x10, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x01, 0xc2,
+ 0x04, 0xe2, 0x10, 0x26, 0x10, 0xfd, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf9,
+ 0x00, 0x59, 0x04, 0x4c, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x02, 0x3f,
+ 0x04, 0xe2, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf9,
+ 0x00, 0x59, 0x04, 0x4c, 0x00, 0x02, 0x00, 0x8d, 0xfe, 0x0c, 0x04, 0xb8,
+ 0x05, 0xaf, 0x00, 0x30, 0x00, 0x49, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x21, 0x32, 0x37, 0x15, 0x06, 0x23, 0x20, 0x27, 0x26, 0x35, 0x10,
+ 0x37, 0x36, 0x37, 0x22, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x33,
+ 0x20, 0x17, 0x15, 0x22, 0x07, 0x17, 0x16, 0x17, 0x16, 0x01, 0x37, 0x26,
+ 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x15, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x15, 0x05, 0x04, 0x94,
+ 0x24, 0x2c, 0x74, 0x6f, 0x4a, 0x37, 0x05, 0x42, 0x67, 0x58, 0xc9, 0x42,
+ 0x74, 0x01, 0x29, 0xad, 0xbf, 0x87, 0xe1, 0xfe, 0x88, 0x98, 0x76, 0xbf,
+ 0x56, 0x7b, 0x0a, 0x0c, 0x56, 0x7e, 0x79, 0x56, 0xf5, 0xae, 0x01, 0x08,
+ 0xb4, 0x62, 0x1c, 0x1a, 0x2e, 0x41, 0x51, 0xfd, 0x62, 0x46, 0x28, 0x0e,
+ 0x0e, 0x32, 0x34, 0x53, 0x38, 0x2f, 0x2e, 0x39, 0x3b, 0x10, 0x1a, 0x55,
+ 0x1d, 0x6c, 0xfe, 0xcc, 0xb8, 0xb8, 0x96, 0x64, 0x9c, 0x0f, 0xb2, 0x18,
+ 0x50, 0xb7, 0xfc, 0x89, 0x5e, 0xa4, 0x76, 0xb8, 0x63, 0xc2, 0x96, 0xe0,
+ 0x01, 0x02, 0xdf, 0x65, 0x34, 0x13, 0x13, 0x29, 0xb8, 0x3f, 0x36, 0x9a,
+ 0x0d, 0x5b, 0xa0, 0x5f, 0x77, 0x03, 0xa3, 0x12, 0x14, 0x24, 0x25, 0x2d,
+ 0x60, 0x2b, 0x2d, 0x21, 0x64, 0x21, 0x12, 0x20, 0x1a, 0x4d, 0x1b, 0x0a,
+ 0x1d, 0x66, 0x4d, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xed,
+ 0x05, 0x4b, 0x00, 0x1e, 0x00, 0x37, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26,
+ 0x27, 0x26, 0x07, 0x35, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x15, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x01, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x33, 0x32, 0x17, 0x15, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x37, 0x15, 0x05, 0x02, 0xfe, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a, 0x91,
+ 0x41, 0x44, 0x91, 0x9b, 0xe8, 0xc6, 0x44, 0x4f, 0x96, 0x42, 0x83, 0x43,
+ 0xc7, 0x93, 0x73, 0x5a, 0xcc, 0x74, 0x5e, 0x68, 0x55, 0xfe, 0xda, 0x46,
+ 0x28, 0x0e, 0x0f, 0x33, 0x34, 0x53, 0x38, 0x2e, 0x2c, 0x3a, 0x3c, 0x0f,
+ 0x1a, 0x55, 0x1d, 0x6c, 0xfe, 0xcc, 0x02, 0x1d, 0x17, 0x17, 0x13, 0x10,
+ 0x07, 0x06, 0xb8, 0x07, 0x01, 0x23, 0x34, 0x62, 0x9a, 0x18, 0x34, 0x62,
+ 0x42, 0x81, 0x1b, 0x50, 0xb8, 0x48, 0x3a, 0x6a, 0x56, 0x01, 0xfd, 0x12,
+ 0x14, 0x24, 0x25, 0x2d, 0x60, 0x2b, 0x2d, 0x21, 0x64, 0x21, 0x12, 0x20,
+ 0x1a, 0x4d, 0x1b, 0x0a, 0x1d, 0x66, 0x4d, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0xb8, 0x05, 0x4b, 0x00, 0x29, 0x00, 0x42, 0x00, 0x00,
+ 0x01, 0x16, 0x17, 0x15, 0x06, 0x07, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x27,
+ 0x26, 0x07, 0x35, 0x36, 0x37, 0x32, 0x27, 0x37, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x15, 0x26, 0x23, 0x22, 0x07, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x37, 0x15, 0x05, 0x02, 0x3e, 0xe8, 0xc6, 0x3a,
+ 0x42, 0x2d, 0x1b, 0x5e, 0x66, 0x3c, 0x4e, 0xbc, 0x71, 0x24, 0x35, 0x3e,
+ 0x25, 0x83, 0x43, 0xc7, 0x93, 0x73, 0x5a, 0xcc, 0x74, 0x5e, 0x68, 0x55,
+ 0x5b, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a, 0x91, 0x41, 0x44, 0x91, 0x26, 0x46,
+ 0x28, 0x0e, 0x0f, 0x33, 0x34, 0x53, 0x38, 0x2e, 0x2c, 0x3a, 0x3c, 0x0f,
+ 0x1a, 0x55, 0x1d, 0x6c, 0xfe, 0xcc, 0x03, 0x0c, 0x34, 0x62, 0x9a, 0x14,
+ 0x29, 0x4e, 0x22, 0x77, 0xb8, 0xa8, 0x36, 0x61, 0x2e, 0x25, 0x81, 0x1b,
+ 0x50, 0xb8, 0x48, 0x3a, 0x6a, 0x56, 0x23, 0x17, 0x17, 0x13, 0x10, 0x07,
+ 0x06, 0xb8, 0x07, 0x01, 0xc8, 0x12, 0x14, 0x24, 0x25, 0x2d, 0x60, 0x2b,
+ 0x2d, 0x21, 0x64, 0x21, 0x12, 0x20, 0x1a, 0x4d, 0x1b, 0x0a, 0x1d, 0x66,
+ 0x4d, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x8d, 0xfe, 0x0c, 0x04, 0xb8,
+ 0x05, 0xaa, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38, 0x00, 0x00, 0x25, 0x33,
+ 0x15, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x21, 0x32, 0x37, 0x15, 0x06, 0x23, 0x20, 0x27, 0x26,
+ 0x35, 0x10, 0x37, 0x36, 0x37, 0x22, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35,
+ 0x36, 0x33, 0x20, 0x17, 0x15, 0x22, 0x07, 0x17, 0x16, 0x17, 0x16, 0x01,
+ 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x04, 0x94, 0x24, 0x2c, 0x74,
+ 0x6f, 0x4a, 0x37, 0x05, 0x42, 0x67, 0x58, 0xc9, 0x42, 0x74, 0x01, 0x29,
+ 0xad, 0xbf, 0x87, 0xe1, 0xfe, 0x88, 0x98, 0x76, 0xbf, 0x56, 0x7b, 0x0a,
+ 0x0c, 0x56, 0x7e, 0x79, 0x56, 0xf5, 0xae, 0x01, 0x08, 0xb4, 0x62, 0x1c,
+ 0x1a, 0x2e, 0x41, 0x51, 0xfd, 0xbe, 0x86, 0x86, 0x86, 0x86, 0xb8, 0xb8,
+ 0x96, 0x64, 0x9c, 0x0f, 0xb2, 0x18, 0x50, 0xb7, 0xfc, 0x89, 0x5e, 0xa4,
+ 0x76, 0xb8, 0x63, 0xc2, 0x96, 0xe0, 0x01, 0x02, 0xdf, 0x65, 0x34, 0x13,
+ 0x13, 0x29, 0xb8, 0x3f, 0x36, 0x9a, 0x0d, 0x5b, 0xa0, 0x5f, 0x77, 0x03,
+ 0xf8, 0x96, 0x01, 0x90, 0x96, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xed, 0x05, 0x46, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x26,
+ 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x07, 0x35, 0x36, 0x37,
+ 0x32, 0x17, 0x16, 0x17, 0x15, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x03, 0x33, 0x15,
+ 0x23, 0x11, 0x33, 0x15, 0x23, 0x02, 0xfe, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a,
+ 0x91, 0x41, 0x44, 0x91, 0x9b, 0xe8, 0xc6, 0x44, 0x4f, 0x96, 0x42, 0x83,
+ 0x43, 0xc7, 0x93, 0x73, 0x5a, 0xcc, 0x74, 0x5e, 0x68, 0x55, 0xcb, 0x88,
+ 0x88, 0x88, 0x88, 0x02, 0x1d, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8,
+ 0x07, 0x01, 0x23, 0x34, 0x62, 0x9a, 0x18, 0x34, 0x62, 0x42, 0x81, 0x1b,
+ 0x50, 0xb8, 0x48, 0x3a, 0x6a, 0x56, 0x02, 0x52, 0x96, 0x01, 0x90, 0x96,
+ 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x04, 0xb8, 0x05, 0x46, 0x00, 0x29,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x00, 0x01, 0x16, 0x17, 0x15, 0x06, 0x07,
+ 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x07, 0x35, 0x36, 0x37, 0x32,
+ 0x13, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x02, 0x3e, 0xe8, 0xc6,
+ 0x3a, 0x42, 0x2d, 0x1b, 0x5e, 0x66, 0x3c, 0x4e, 0xbc, 0x71, 0x24, 0x35,
+ 0x3e, 0x25, 0x83, 0x43, 0xc7, 0x93, 0x73, 0x5a, 0xcc, 0x74, 0x5e, 0x68,
+ 0x55, 0x5b, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a, 0x91, 0x41, 0x44, 0x91, 0x35,
+ 0x88, 0x88, 0x88, 0x88, 0x03, 0x0c, 0x34, 0x62, 0x9a, 0x14, 0x29, 0x4e,
+ 0x22, 0x77, 0xb8, 0xa8, 0x36, 0x61, 0x2e, 0x25, 0x81, 0x1b, 0x50, 0xb8,
+ 0x48, 0x3a, 0x6a, 0x56, 0x23, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8,
+ 0x07, 0x01, 0x01, 0x1d, 0x96, 0x01, 0x90, 0x96, 0x00, 0x04, 0x00, 0x8d,
+ 0xfe, 0x0c, 0x04, 0xb8, 0x05, 0xaa, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x3c, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23, 0x22, 0x27, 0x26, 0x27,
+ 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x21, 0x32, 0x37,
+ 0x15, 0x06, 0x23, 0x20, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x37, 0x22,
+ 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x33, 0x20, 0x17, 0x15, 0x22,
+ 0x07, 0x17, 0x16, 0x17, 0x16, 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15,
+ 0x23, 0x27, 0x33, 0x15, 0x23, 0x04, 0x94, 0x24, 0x2c, 0x74, 0x6f, 0x4a,
+ 0x37, 0x05, 0x42, 0x67, 0x58, 0xc9, 0x42, 0x74, 0x01, 0x29, 0xad, 0xbf,
+ 0x87, 0xe1, 0xfe, 0x88, 0x98, 0x76, 0xbf, 0x56, 0x7b, 0x0a, 0x0c, 0x56,
+ 0x7e, 0x79, 0x56, 0xf5, 0xae, 0x01, 0x08, 0xb4, 0x62, 0x1c, 0x1a, 0x2e,
+ 0x41, 0x51, 0xfd, 0xbe, 0x86, 0x86, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87,
+ 0xb8, 0xb8, 0x96, 0x64, 0x9c, 0x0f, 0xb2, 0x18, 0x50, 0xb7, 0xfc, 0x89,
+ 0x5e, 0xa4, 0x76, 0xb8, 0x63, 0xc2, 0x96, 0xe0, 0x01, 0x02, 0xdf, 0x65,
+ 0x34, 0x13, 0x13, 0x29, 0xb8, 0x3f, 0x36, 0x9a, 0x0d, 0x5b, 0xa0, 0x5f,
+ 0x77, 0x04, 0xf2, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x04, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xed, 0x05, 0x46, 0x00, 0x1e, 0x00, 0x22, 0x00, 0x26,
+ 0x00, 0x2a, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x27, 0x26, 0x07, 0x35,
+ 0x36, 0x37, 0x32, 0x17, 0x16, 0x17, 0x15, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x03,
+ 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x02,
+ 0xfe, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a, 0x91, 0x41, 0x44, 0x91, 0x9b, 0xe8,
+ 0xc6, 0x44, 0x4f, 0x96, 0x42, 0x83, 0x43, 0xc7, 0x93, 0x73, 0x5a, 0xcc,
+ 0x74, 0x5e, 0x68, 0x55, 0xcb, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87,
+ 0x87, 0x02, 0x1d, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8, 0x07, 0x01,
+ 0x23, 0x34, 0x62, 0x9a, 0x18, 0x34, 0x62, 0x42, 0x81, 0x1b, 0x50, 0xb8,
+ 0x48, 0x3a, 0x6a, 0x56, 0x03, 0x4c, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00,
+ 0x00, 0x04, 0xff, 0xee, 0x00, 0x00, 0x04, 0xb8, 0x05, 0x46, 0x00, 0x29,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x00, 0x01, 0x16, 0x17, 0x15,
+ 0x06, 0x07, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x07, 0x35, 0x36,
+ 0x37, 0x32, 0x13, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x02, 0x3e, 0xe8, 0xc6, 0x3a, 0x42, 0x2d, 0x1b, 0x5e, 0x66,
+ 0x3c, 0x4e, 0xbc, 0x71, 0x24, 0x35, 0x3e, 0x25, 0x83, 0x43, 0xc7, 0x93,
+ 0x73, 0x5a, 0xcc, 0x74, 0x5e, 0x68, 0x55, 0x5b, 0x4b, 0x5d, 0x4c, 0xa2,
+ 0x4a, 0x91, 0x41, 0x44, 0x91, 0x35, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x03, 0x0c, 0x34, 0x62, 0x9a, 0x14, 0x29, 0x4e, 0x22, 0x77,
+ 0xb8, 0xa8, 0x36, 0x61, 0x2e, 0x25, 0x81, 0x1b, 0x50, 0xb8, 0x48, 0x3a,
+ 0x6a, 0x56, 0x23, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8, 0x07, 0x01,
+ 0x02, 0x17, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x05, 0x00, 0x8d,
+ 0xfe, 0x0c, 0x04, 0xb8, 0x04, 0xb0, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38,
+ 0x00, 0x3c, 0x00, 0x40, 0x00, 0x00, 0x25, 0x33, 0x15, 0x23, 0x22, 0x27,
+ 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x21,
+ 0x32, 0x37, 0x15, 0x06, 0x23, 0x20, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36,
+ 0x37, 0x22, 0x23, 0x22, 0x07, 0x06, 0x07, 0x35, 0x36, 0x33, 0x20, 0x17,
+ 0x15, 0x22, 0x07, 0x17, 0x16, 0x17, 0x16, 0x01, 0x33, 0x15, 0x23, 0x13,
+ 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x04,
+ 0x94, 0x24, 0x2c, 0x74, 0x6f, 0x4a, 0x37, 0x05, 0x42, 0x67, 0x58, 0xc9,
+ 0x42, 0x74, 0x01, 0x29, 0xad, 0xbf, 0x87, 0xe1, 0xfe, 0x88, 0x98, 0x76,
+ 0xbf, 0x56, 0x7b, 0x0a, 0x0c, 0x56, 0x7e, 0x79, 0x56, 0xf5, 0xae, 0x01,
+ 0x08, 0xb4, 0x62, 0x1c, 0x1a, 0x2e, 0x41, 0x51, 0xfd, 0xbe, 0x86, 0x86,
+ 0x21, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb8, 0xb8, 0x96,
+ 0x64, 0x9c, 0x0f, 0xb2, 0x18, 0x50, 0xb7, 0xfc, 0x89, 0x5e, 0xa4, 0x76,
+ 0xb8, 0x63, 0xc2, 0x96, 0xe0, 0x01, 0x02, 0xdf, 0x65, 0x34, 0x13, 0x13,
+ 0x29, 0xb8, 0x3f, 0x36, 0x9a, 0x0d, 0x5b, 0xa0, 0x5f, 0x77, 0x03, 0xf8,
+ 0x96, 0xfb, 0x9b, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0xff, 0xee, 0xfe, 0x3e, 0x03, 0xed, 0x04, 0x4c, 0x00, 0x1e,
+ 0x00, 0x22, 0x00, 0x26, 0x00, 0x2a, 0x00, 0x2e, 0x00, 0x00, 0x01, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x07, 0x35, 0x36, 0x37, 0x32, 0x17, 0x16, 0x17,
+ 0x15, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x37, 0x36, 0x03, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15,
+ 0x23, 0x27, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x02, 0xfe, 0x4b,
+ 0x5d, 0x4c, 0xa2, 0x4a, 0x91, 0x41, 0x44, 0x91, 0x9b, 0xe8, 0xc6, 0x44,
+ 0x4f, 0x96, 0x42, 0x83, 0x43, 0xc7, 0x93, 0x73, 0x5a, 0xcc, 0x74, 0x5e,
+ 0x68, 0x55, 0xcb, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x70,
+ 0x88, 0x88, 0x02, 0x1d, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8, 0x07,
+ 0x01, 0x23, 0x34, 0x62, 0x9a, 0x18, 0x34, 0x62, 0x42, 0x81, 0x1b, 0x50,
+ 0xb8, 0x48, 0x3a, 0x6a, 0x56, 0xfc, 0xda, 0x96, 0x01, 0x90, 0x96, 0x96,
+ 0x96, 0x05, 0x14, 0x96, 0x00, 0x05, 0xff, 0xee, 0xfe, 0x3e, 0x04, 0xb8,
+ 0x04, 0x4c, 0x00, 0x29, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39,
+ 0x00, 0x00, 0x01, 0x16, 0x17, 0x15, 0x06, 0x07, 0x16, 0x17, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x37, 0x26, 0x27,
+ 0x26, 0x27, 0x26, 0x07, 0x35, 0x36, 0x37, 0x32, 0x13, 0x33, 0x15, 0x23,
+ 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23,
+ 0x02, 0x3e, 0xe8, 0xc6, 0x3a, 0x42, 0x2d, 0x1b, 0x5e, 0x66, 0x3c, 0x4e,
+ 0xbc, 0x71, 0x24, 0x35, 0x3e, 0x25, 0x83, 0x43, 0xc7, 0x93, 0x73, 0x5a,
+ 0xcc, 0x74, 0x5e, 0x68, 0x55, 0x5b, 0x4b, 0x5d, 0x4c, 0xa2, 0x4a, 0x91,
+ 0x41, 0x44, 0x91, 0x40, 0x87, 0x87, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87,
+ 0x65, 0x88, 0x88, 0x03, 0x0c, 0x34, 0x62, 0x9a, 0x14, 0x29, 0x4e, 0x22,
+ 0x77, 0xb8, 0xa8, 0x36, 0x61, 0x2e, 0x25, 0x81, 0x1b, 0x50, 0xb8, 0x48,
+ 0x3a, 0x6a, 0x56, 0x23, 0x17, 0x17, 0x13, 0x10, 0x07, 0x06, 0xb8, 0x07,
+ 0x01, 0xfb, 0xa5, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x05, 0x14, 0x96,
+ 0x00, 0x01, 0x00, 0x00, 0x05, 0x33, 0x03, 0x09, 0x07, 0x2b, 0x00, 0x03,
+ 0x00, 0x00, 0x09, 0x01, 0x35, 0x01, 0x03, 0x09, 0xfc, 0xf7, 0x03, 0x09,
+ 0x06, 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0x00, 0x00, 0x01, 0x00, 0xbf,
+ 0xfe, 0x56, 0x04, 0xa4, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x13, 0x33,
+ 0x01, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x01, 0x11, 0x23, 0xc0, 0xa5, 0x02, 0x99, 0xa5, 0x4a,
+ 0x49, 0xa2, 0xe5, 0xd2, 0x5e, 0x22, 0x23, 0xfd, 0x67, 0xa5, 0x05, 0xd5,
+ 0xfb, 0x83, 0x04, 0x7d, 0xfa, 0x17, 0xd6, 0x60, 0x60, 0x9c, 0x30, 0x31,
+ 0xad, 0x04, 0x7d, 0xfb, 0x83, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d,
+ 0x00, 0x00, 0x01, 0xe9, 0x04, 0x60, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33,
+ 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0xb0, 0xa5,
+ 0x94, 0x94, 0xa5, 0xa2, 0xa2, 0x04, 0x60, 0xfe, 0x08, 0xa4, 0xfe, 0x3c,
+ 0x01, 0xc4, 0xa4, 0x00, 0x00, 0x02, 0xff, 0x0d, 0xfe, 0x56, 0x01, 0xf7,
+ 0x04, 0x60, 0x00, 0x0e, 0x00, 0x17, 0x00, 0x00, 0x13, 0x20, 0x35, 0x34,
+ 0x3b, 0x01, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x06, 0x07, 0x06, 0x03,
+ 0x23, 0x22, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x1e, 0xfe, 0xef, 0xf3,
+ 0xae, 0xa5, 0xa3, 0xac, 0x10, 0x30, 0x49, 0x1d, 0xa3, 0x6b, 0x02, 0x04,
+ 0x6f, 0x5e, 0x23, 0x0f, 0xfe, 0x56, 0xdd, 0xcd, 0x04, 0x60, 0xfb, 0xa0,
+ 0x9b, 0x70, 0x3f, 0x60, 0x01, 0x10, 0x33, 0x41, 0x30, 0x17, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x69, 0x06, 0x63, 0x03, 0x84, 0x08, 0x33, 0x10, 0x27,
+ 0x00, 0x71, 0x00, 0xaa, 0x02, 0x3d, 0x10, 0x07, 0x10, 0xeb, 0x04, 0x43,
+ 0x01, 0x55, 0x00, 0x00, 0xff, 0xff, 0x01, 0x69, 0x06, 0x61, 0x03, 0x84,
+ 0x08, 0x34, 0x10, 0x27, 0x00, 0x71, 0x00, 0xaa, 0x00, 0xff, 0x10, 0x07,
+ 0x10, 0xeb, 0x04, 0x43, 0x02, 0x5b, 0x00, 0x00, 0xff, 0xff, 0x01, 0x69,
+ 0x06, 0x5e, 0x03, 0x84, 0x08, 0x33, 0x10, 0x27, 0x10, 0xf3, 0x04, 0x43,
+ 0x01, 0x50, 0x10, 0x07, 0x00, 0x71, 0x00, 0xaa, 0x02, 0x3d, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x6a, 0x06, 0x63, 0x03, 0x82, 0x08, 0x5a, 0x10, 0x27,
+ 0x10, 0xec, 0x04, 0x72, 0x02, 0x64, 0x10, 0x07, 0x10, 0xeb, 0x04, 0x43,
+ 0x01, 0x55, 0x00, 0x00, 0xff, 0xff, 0x01, 0x6a, 0x06, 0x63, 0x03, 0x82,
+ 0x08, 0x5a, 0x10, 0x27, 0x10, 0xee, 0x04, 0x18, 0x02, 0x64, 0x10, 0x07,
+ 0x10, 0xeb, 0x04, 0x43, 0x01, 0x55, 0x00, 0x00, 0xff, 0xff, 0x01, 0x69,
+ 0x06, 0x61, 0x03, 0x84, 0x08, 0x5a, 0x10, 0x27, 0x10, 0xec, 0x04, 0x72,
+ 0x02, 0x64, 0x10, 0x07, 0x00, 0x71, 0x00, 0xaa, 0x00, 0xff, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x69, 0x06, 0x61, 0x03, 0x84, 0x08, 0x5a, 0x10, 0x27,
+ 0x10, 0xee, 0x04, 0x18, 0x02, 0x64, 0x10, 0x07, 0x00, 0x71, 0x00, 0xaa,
+ 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x50, 0x06, 0x6a, 0x03, 0xa3,
+ 0x08, 0x33, 0x10, 0x27, 0x10, 0xed, 0x04, 0x46, 0x01, 0x5c, 0x10, 0x07,
+ 0x00, 0x71, 0x00, 0xaa, 0x02, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x01, 0x63,
+ 0x06, 0x63, 0x03, 0x89, 0x08, 0x5a, 0x10, 0x27, 0x10, 0xf0, 0x04, 0x43,
+ 0x02, 0x62, 0x10, 0x07, 0x10, 0xeb, 0x04, 0x43, 0x01, 0x55, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x50, 0x06, 0x6a, 0x03, 0xa3, 0x08, 0x56, 0x10, 0x27,
+ 0x10, 0xeb, 0x04, 0x43, 0x02, 0x7d, 0x10, 0x07, 0x10, 0xed, 0x04, 0x46,
+ 0x01, 0x5c, 0x00, 0x00, 0xff, 0xff, 0x01, 0x63, 0x06, 0x63, 0x03, 0x89,
+ 0x08, 0x57, 0x10, 0x27, 0x10, 0xf0, 0x04, 0x43, 0x01, 0x75, 0x10, 0x07,
+ 0x10, 0xf3, 0x04, 0x43, 0x02, 0x7c, 0x00, 0x00, 0xff, 0xff, 0x01, 0x50,
+ 0x06, 0x6a, 0x03, 0xc5, 0x08, 0x5a, 0x10, 0x27, 0x10, 0xec, 0x04, 0xba,
+ 0x02, 0x64, 0x10, 0x07, 0x10, 0xed, 0x04, 0x46, 0x01, 0x5c, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x63, 0x06, 0x63, 0x04, 0x96, 0x08, 0x3a, 0x10, 0x27,
+ 0x10, 0xef, 0x04, 0x43, 0x01, 0x75, 0x10, 0x07, 0x10, 0xec, 0x05, 0x8a,
+ 0x02, 0x44, 0x00, 0x00, 0xff, 0xff, 0x01, 0x63, 0x06, 0x63, 0x03, 0xfc,
+ 0x08, 0x3a, 0x10, 0x27, 0x10, 0xee, 0x05, 0x4b, 0x02, 0x44, 0x10, 0x07,
+ 0x10, 0xef, 0x04, 0x43, 0x01, 0x75, 0x00, 0x00, 0xff, 0xff, 0x01, 0x50,
+ 0x06, 0x63, 0x03, 0xa3, 0x08, 0x75, 0x10, 0x27, 0x10, 0xef, 0x04, 0x43,
+ 0x01, 0x75, 0x10, 0x07, 0x10, 0xed, 0x04, 0x46, 0x02, 0x8c, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x50, 0x06, 0x56, 0x03, 0xa3, 0x08, 0x59, 0x10, 0x27,
+ 0x10, 0xf2, 0x04, 0x43, 0x01, 0x50, 0x10, 0x07, 0x10, 0xed, 0x04, 0x46,
+ 0x02, 0x70, 0x00, 0x00, 0xff, 0xff, 0x01, 0x5c, 0x06, 0x56, 0x03, 0x90,
+ 0x08, 0x5a, 0x10, 0x27, 0x10, 0xf2, 0x04, 0x43, 0x01, 0x50, 0x10, 0x07,
+ 0x10, 0xec, 0x04, 0x72, 0x02, 0x64, 0x00, 0x00, 0xff, 0xff, 0x01, 0x5c,
+ 0x06, 0x56, 0x03, 0x90, 0x08, 0x5a, 0x10, 0x27, 0x10, 0xf2, 0x04, 0x43,
+ 0x01, 0x50, 0x10, 0x07, 0x10, 0xee, 0x04, 0x18, 0x02, 0x64, 0x00, 0x00,
+ 0xff, 0xff, 0x01, 0x5c, 0x06, 0x56, 0x03, 0x90, 0x08, 0x8b, 0x10, 0x27,
+ 0x02, 0xba, 0x04, 0x34, 0x02, 0x10, 0x10, 0x07, 0x10, 0xf2, 0x04, 0x43,
+ 0x01, 0x50, 0x00, 0x00, 0xff, 0xff, 0x01, 0x63, 0x06, 0x63, 0x04, 0x87,
+ 0x08, 0x5b, 0x10, 0x27, 0x02, 0xba, 0x05, 0x75, 0x01, 0xe0, 0x10, 0x07,
+ 0x10, 0xef, 0x04, 0x43, 0x01, 0x75, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xf1,
+ 0x04, 0x7b, 0xff, 0x62, 0x06, 0x6e, 0x10, 0x26, 0x02, 0xb2, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xb8, 0xff, 0x12, 0x00, 0x5a, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x0e, 0x01, 0x2c, 0x00, 0x03, 0x00, 0x00, 0x11, 0x21,
+ 0x11, 0x21, 0x01, 0x0e, 0xfe, 0xf2, 0x01, 0x2c, 0xfe, 0xd4, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0xe3, 0x02, 0xfb, 0x05, 0xd5, 0x00, 0x0f,
+ 0x00, 0x00, 0x3d, 0x01, 0x1e, 0x01, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x10, 0x06, 0x23, 0x22, 0x26, 0x52, 0xae, 0x5e, 0x81, 0x65, 0xb6,
+ 0xbe, 0xde, 0x56, 0xab, 0x3d, 0xec, 0x51, 0x51, 0x95, 0xcb, 0x03, 0xee,
+ 0xfc, 0x12, 0xfe, 0xe6, 0xea, 0x2c, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb3,
+ 0xfe, 0x0c, 0x04, 0x92, 0x02, 0x26, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00,
+ 0x01, 0x03, 0x33, 0x17, 0x37, 0x33, 0x03, 0x01, 0x33, 0x16, 0x17, 0x16,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x02, 0x07, 0x04, 0x21,
+ 0x35, 0x20, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x03, 0x5c, 0xaf, 0x7d,
+ 0x75, 0x75, 0x7d, 0xaf, 0xfe, 0x57, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26,
+ 0x5b, 0xaf, 0xe1, 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01,
+ 0x11, 0xb7, 0xc4, 0x20, 0x08, 0xfe, 0x0c, 0x01, 0x46, 0xc3, 0xc3, 0xfe,
+ 0xba, 0x04, 0x1a, 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8, 0x3e, 0xfe, 0xea,
+ 0x85, 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xb3, 0xfe, 0x0c, 0x04, 0x77, 0x02, 0x26, 0x00, 0x18,
+ 0x00, 0x00, 0x01, 0x33, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x02, 0x07, 0x04, 0x21, 0x35, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x02, 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26, 0x5b,
+ 0xaf, 0xe1, 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01, 0x11,
+ 0xb7, 0xc4, 0x20, 0x08, 0x02, 0x26, 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8,
+ 0x3e, 0xfe, 0xea, 0x85, 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e,
+ 0x00, 0x02, 0x00, 0x81, 0xfe, 0xc8, 0x05, 0x86, 0x07, 0xc4, 0x00, 0x24,
+ 0x00, 0x2b, 0x00, 0x00, 0x25, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x24, 0x11, 0x26, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x13, 0x03, 0x33, 0x17, 0x37, 0x33, 0x03,
+ 0x03, 0xaa, 0x46, 0xa6, 0x2c, 0x27, 0x59, 0x44, 0x75, 0x65, 0x46, 0x10,
+ 0x19, 0x6d, 0xea, 0x79, 0x4d, 0x59, 0x3e, 0xfe, 0xf9, 0x01, 0x39, 0xa6,
+ 0x3b, 0x96, 0x24, 0x41, 0x48, 0x63, 0x9c, 0x99, 0xaf, 0x7d, 0x75, 0x75,
+ 0x7d, 0xb0, 0x49, 0x7e, 0xe3, 0x04, 0x6a, 0xfb, 0x6b, 0x6a, 0x31, 0x2c,
+ 0xb8, 0x33, 0x2e, 0x28, 0xb1, 0x42, 0x22, 0x16, 0x5b, 0x01, 0x12, 0x8a,
+ 0x5c, 0x73, 0x73, 0x7e, 0x42, 0x10, 0x22, 0x35, 0x06, 0xac, 0x01, 0x46,
+ 0xc3, 0xc3, 0xfe, 0xba, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x02, 0x24,
+ 0x07, 0xc4, 0x00, 0x0d, 0x00, 0x14, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x27, 0x03,
+ 0x33, 0x17, 0x37, 0x33, 0x03, 0x01, 0x84, 0x4e, 0x48, 0x8b, 0x75, 0x44,
+ 0x59, 0x27, 0x2c, 0xa6, 0x96, 0xaf, 0x7d, 0x75, 0x75, 0x7d, 0xaf, 0x01,
+ 0x73, 0xb2, 0x65, 0x5c, 0xb8, 0x2c, 0x31, 0x6a, 0x04, 0x95, 0x6a, 0x01,
+ 0x46, 0xc3, 0xc3, 0xfe, 0xba, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0x75, 0x07, 0xc4, 0x00, 0x14, 0x00, 0x1b, 0x00, 0x00,
+ 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x0b, 0x01, 0x33,
+ 0x17, 0x37, 0x33, 0x03, 0x01, 0x31, 0x45, 0x89, 0x75, 0x44, 0x59, 0x27,
+ 0x2c, 0xa6, 0x2c, 0x28, 0x59, 0x43, 0x75, 0x87, 0x8a, 0xaf, 0x7d, 0x75,
+ 0x75, 0x7d, 0xaf, 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a, 0x04, 0x95, 0xfb,
+ 0x6b, 0x6a, 0x31, 0x2c, 0xb8, 0x06, 0x7e, 0x01, 0x46, 0xc3, 0xc3, 0xfe,
+ 0xba, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x75, 0xfe, 0xf0, 0x06, 0x13,
+ 0x03, 0x46, 0x00, 0x37, 0x00, 0x3e, 0x00, 0x00, 0x05, 0x36, 0x35, 0x26,
+ 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x24, 0x11, 0x34, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x01, 0x03, 0x33, 0x17, 0x37, 0x33, 0x03, 0x03,
+ 0xde, 0x52, 0x01, 0x2a, 0x1a, 0x1b, 0x28, 0x2f, 0x48, 0x4b, 0x1b, 0x26,
+ 0x69, 0x4f, 0x73, 0x1d, 0x1f, 0x1f, 0x67, 0x65, 0x61, 0x17, 0x21, 0x0d,
+ 0x29, 0x3b, 0x42, 0x02, 0x03, 0x66, 0x73, 0xc4, 0x50, 0x5e, 0xa9, 0x69,
+ 0xfe, 0xf8, 0x39, 0xa5, 0x3a, 0x95, 0x3c, 0xa1, 0x52, 0x45, 0x86, 0xfe,
+ 0x8b, 0xaf, 0x7d, 0x75, 0x75, 0x7d, 0xaf, 0x21, 0x33, 0x21, 0x2b, 0x0d,
+ 0x08, 0x28, 0x3b, 0x3d, 0x41, 0x3c, 0x5e, 0x0e, 0x06, 0x86, 0xc4, 0xb8,
+ 0xac, 0xa5, 0x06, 0x11, 0x23, 0x30, 0x1b, 0x1e, 0x7b, 0x62, 0x56, 0x60,
+ 0x1f, 0x0c, 0x29, 0x67, 0x01, 0x06, 0x99, 0x5a, 0x5a, 0x99, 0x72, 0x4e,
+ 0x1f, 0x08, 0x0f, 0x02, 0x42, 0x01, 0x46, 0xc3, 0xc3, 0xfe, 0xba, 0x00,
+ 0x00, 0x04, 0xff, 0xee, 0xfe, 0xd4, 0x02, 0x00, 0x04, 0x40, 0x00, 0x0d,
+ 0x00, 0x14, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x0b, 0x01,
+ 0x33, 0x17, 0x37, 0x33, 0x0b, 0x01, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15,
+ 0x23, 0x01, 0x0d, 0x41, 0x8d, 0x51, 0x20, 0x59, 0x27, 0x2c, 0xa6, 0x96,
+ 0xaf, 0x7d, 0x75, 0x75, 0x7d, 0xaf, 0x16, 0x87, 0x87, 0xe1, 0x87, 0x87,
+ 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a, 0xd9, 0xd9, 0xbb, 0x02, 0x36, 0x01,
+ 0x46, 0xc3, 0xc3, 0xfe, 0xba, 0xfc, 0x70, 0x96, 0x96, 0x96, 0x00, 0x00,
+ 0x00, 0x04, 0xff, 0xee, 0xfe, 0xd4, 0x02, 0x3f, 0x04, 0x40, 0x00, 0x14,
+ 0x00, 0x1b, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x0b, 0x01, 0x33, 0x17, 0x37, 0x33, 0x0b,
+ 0x01, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x01, 0x0d, 0x45, 0x89,
+ 0x51, 0x20, 0x59, 0x27, 0x2c, 0xa6, 0x2c, 0x28, 0x59, 0x31, 0x63, 0x87,
+ 0x8a, 0xaf, 0x7d, 0x75, 0x75, 0x7d, 0xaf, 0x16, 0x87, 0x87, 0xe1, 0x87,
+ 0x87, 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a, 0xd9, 0xd9, 0x6a, 0x31, 0x2c,
+ 0xb8, 0x02, 0xfa, 0x01, 0x46, 0xc3, 0xc3, 0xfe, 0xba, 0xfc, 0x70, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb3, 0xfe, 0x0c, 0x04, 0x0b,
+ 0x04, 0x72, 0x00, 0x18, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x33, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x02, 0x07, 0x04,
+ 0x21, 0x35, 0x20, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x0b, 0x01, 0x33,
+ 0x17, 0x37, 0x33, 0x03, 0x02, 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26,
+ 0x5b, 0x43, 0x75, 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01,
+ 0x11, 0xb7, 0xc4, 0x20, 0x08, 0x35, 0xaf, 0x7d, 0x75, 0x75, 0x7d, 0xaf,
+ 0x02, 0x26, 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8, 0x3e, 0xfe, 0xea, 0x85,
+ 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e, 0x01, 0x8e, 0x01, 0x46,
+ 0xc3, 0xc3, 0xfe, 0xba, 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x02, 0x01,
+ 0x06, 0x14, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x33, 0x11, 0x14, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x26, 0x35, 0xae, 0xa5, 0x45, 0x5e, 0x0a, 0x1d,
+ 0xa3, 0x92, 0x06, 0x14, 0xfb, 0x82, 0x99, 0x61, 0x9c, 0xc0, 0xd6, 0x00,
+ 0x00, 0x02, 0x00, 0x82, 0x00, 0x00, 0x03, 0xef, 0x02, 0xee, 0x00, 0x0a,
+ 0x00, 0x24, 0x00, 0x00, 0x01, 0x26, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x17, 0x1e, 0x01, 0x13, 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x23, 0x22, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x02, 0x60, 0x0d, 0x0c, 0x0b, 0x0b, 0x6c,
+ 0x4a, 0x64, 0x02, 0x01, 0xa2, 0x68, 0x04, 0x02, 0xa5, 0x01, 0x21, 0x13,
+ 0x32, 0x1c, 0x65, 0x43, 0x75, 0x51, 0x42, 0x28, 0x22, 0x7c, 0x8d, 0x32,
+ 0x34, 0xab, 0xb8, 0x62, 0x01, 0x1a, 0x2a, 0x31, 0x32, 0x65, 0x0c, 0x43,
+ 0x59, 0x3e, 0x29, 0x32, 0x01, 0xd1, 0x27, 0x2b, 0xa8, 0xae, 0x65, 0x4f,
+ 0x2c, 0xb8, 0x33, 0x1f, 0x3b, 0x49, 0x0f, 0x30, 0x9a, 0xad, 0x7f, 0x44,
+ 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0xa2, 0x05, 0xf0, 0x10, 0x06,
+ 0x01, 0xe4, 0x00, 0x00, 0xff, 0xff, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x00,
+ 0x05, 0x0f, 0x10, 0x06, 0x01, 0xe5, 0x00, 0x00, 0xff, 0xff, 0x00, 0x87,
+ 0xfe, 0x75, 0x01, 0xd7, 0x04, 0x7b, 0x10, 0x26, 0x00, 0xf3, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0x9d, 0xff, 0x5c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x47,
+ 0x00, 0x00, 0x02, 0x38, 0x04, 0x60, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x37, 0x33, 0x13, 0x23, 0x13, 0x21, 0x13, 0x21, 0xb3, 0x79, 0xa0, 0x79,
+ 0x21, 0xfe, 0xd3, 0xc4, 0x01, 0x2d, 0x64, 0x03, 0x98, 0xfc, 0x04, 0x04,
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x2d, 0xfe, 0x56, 0x02, 0x38,
+ 0x04, 0x60, 0x00, 0x08, 0x00, 0x16, 0x00, 0x00, 0x05, 0x13, 0x23, 0x03,
+ 0x06, 0x07, 0x36, 0x37, 0x36, 0x05, 0x23, 0x37, 0x33, 0x32, 0x37, 0x36,
+ 0x37, 0x13, 0x21, 0x03, 0x06, 0x07, 0x06, 0x01, 0x16, 0xb6, 0x79, 0xbb,
+ 0x1f, 0x30, 0x41, 0x2d, 0x43, 0xfe, 0xf9, 0xc6, 0x12, 0x2d, 0x5e, 0x2b,
+ 0x2b, 0x1a, 0xd1, 0x01, 0x2d, 0xc8, 0x25, 0x5a, 0x5b, 0x16, 0x04, 0x12,
+ 0xfb, 0xd0, 0xb5, 0x54, 0x0f, 0x30, 0x48, 0xf4, 0x64, 0x30, 0x31, 0x99,
+ 0x04, 0xac, 0xfb, 0x8c, 0xd6, 0x60, 0x60, 0x00, 0xff, 0xff, 0xff, 0xd7,
+ 0xfe, 0x76, 0x02, 0x2a, 0x04, 0x7b, 0x10, 0x27, 0x02, 0xb0, 0xff, 0x34,
+ 0x00, 0x00, 0x10, 0x06, 0x00, 0xf3, 0x00, 0x00, 0xff, 0xff, 0x00, 0xab,
+ 0xfe, 0x89, 0x01, 0x54, 0x04, 0x7b, 0x10, 0x26, 0x00, 0xf3, 0x00, 0x00,
+ 0x10, 0x07, 0x02, 0xd4, 0x02, 0xcd, 0x00, 0x00, 0x00, 0x02, 0x00, 0xd8,
+ 0x00, 0xd8, 0x01, 0x96, 0x04, 0xfb, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
+ 0x13, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0xd8, 0xbe, 0xbe, 0xbe,
+ 0xbe, 0x01, 0xd6, 0xfe, 0x04, 0x23, 0xfe, 0x00, 0x00, 0x01, 0x00, 0x87,
+ 0x00, 0x00, 0x02, 0xab, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x13, 0x21,
+ 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x88, 0x02,
+ 0x21, 0xb5, 0xb6, 0xfd, 0xdf, 0xb5, 0xb6, 0x05, 0xd5, 0xaa, 0xfb, 0x7f,
+ 0xaa, 0xaa, 0x04, 0x81, 0x00, 0x01, 0x01, 0x82, 0x02, 0x95, 0x04, 0x89,
+ 0x03, 0x3f, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x04, 0x88,
+ 0xfc, 0xfa, 0x03, 0x3f, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4,
+ 0x04, 0xcb, 0x02, 0xe6, 0x08, 0xf2, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x33, 0x16, 0x15, 0x14, 0x33, 0x32, 0x35, 0x34, 0x27, 0x33, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x26, 0x01, 0x35, 0x25, 0x15, 0x01,
+ 0x35, 0x25, 0x15, 0x01, 0xdb, 0x0d, 0x1e, 0x34, 0x3d, 0x48, 0x25, 0x1e,
+ 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d, 0x37, 0x04, 0x02, 0x56, 0x03, 0x50,
+ 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28, 0x4b, 0x40, 0x1c, 0x18, 0xfe, 0xe0,
+ 0x02, 0x0e, 0xfd, 0xf2, 0x02, 0x0e, 0x05, 0x84, 0x4c, 0x28, 0x45, 0x3f,
+ 0x34, 0x6d, 0x6d, 0x62, 0x7d, 0x38, 0x54, 0x22, 0x19, 0x14, 0x18, 0xaa,
+ 0x52, 0x59, 0x24, 0x36, 0xc3, 0xae, 0x73, 0x39, 0x49, 0x74, 0x85, 0x36,
+ 0x59, 0x0a, 0x09, 0x21, 0x1e, 0x02, 0xb3, 0x6e, 0x82, 0x6e, 0xfe, 0x8e,
+ 0x6e, 0x82, 0x6e, 0x00, 0x00, 0x03, 0x00, 0xb4, 0x04, 0xcb, 0x02, 0xe6,
+ 0x09, 0x55, 0x00, 0x28, 0x00, 0x4f, 0x00, 0x5e, 0x00, 0x00, 0x01, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x33, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x37, 0x36, 0x37, 0x36, 0x35, 0x33, 0x16, 0x15, 0x14,
+ 0x33, 0x32, 0x35, 0x34, 0x27, 0x33, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07,
+ 0x06, 0x27, 0x26, 0x03, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37,
+ 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x33, 0x16, 0x33,
+ 0x15, 0x22, 0x2f, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35,
+ 0x33, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34,
+ 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x01, 0xdb, 0x0d,
+ 0x1e, 0x34, 0x3d, 0x48, 0x25, 0x1e, 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d,
+ 0x37, 0x04, 0x02, 0x56, 0x03, 0x50, 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28,
+ 0x4b, 0x40, 0x1c, 0x18, 0x0f, 0x21, 0x13, 0x1e, 0x15, 0x61, 0x3e, 0x1a,
+ 0x38, 0x42, 0x24, 0x31, 0x0b, 0x12, 0x0c, 0x11, 0x12, 0x2b, 0x12, 0x2e,
+ 0x18, 0x43, 0x4d, 0x55, 0x66, 0x32, 0x0e, 0x51, 0x0b, 0x1f, 0x2b, 0x33,
+ 0x8f, 0x03, 0x02, 0x09, 0x1f, 0x12, 0x15, 0x0a, 0x10, 0x29, 0x11, 0x05,
+ 0x84, 0x4c, 0x28, 0x45, 0x3f, 0x34, 0x6d, 0x6d, 0x62, 0x7d, 0x38, 0x54,
+ 0x22, 0x19, 0x14, 0x18, 0xaa, 0x52, 0x59, 0x24, 0x36, 0xc3, 0xae, 0x73,
+ 0x39, 0x49, 0x74, 0x85, 0x36, 0x59, 0x0a, 0x09, 0x21, 0x1e, 0x02, 0x6d,
+ 0x24, 0x2a, 0x07, 0x0d, 0x39, 0x5e, 0x57, 0x34, 0x15, 0x27, 0x36, 0x4f,
+ 0x27, 0x26, 0x01, 0x01, 0x6e, 0x02, 0x05, 0x3d, 0x4e, 0x56, 0x9a, 0x29,
+ 0x71, 0x61, 0x1a, 0x4b, 0xee, 0x07, 0x07, 0x15, 0x18, 0x22, 0x1c, 0x09,
+ 0x0d, 0x1c, 0x25, 0x12, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4,
+ 0x04, 0xba, 0x02, 0xe6, 0x08, 0xe8, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x33, 0x16, 0x15, 0x14, 0x33, 0x32, 0x35, 0x34, 0x27, 0x33, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x26, 0x01, 0x35, 0x25, 0x15, 0x01,
+ 0x35, 0x25, 0x15, 0x01, 0xdb, 0x0d, 0x1e, 0x34, 0x3d, 0x48, 0x25, 0x1e,
+ 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d, 0x37, 0x04, 0x02, 0x56, 0x03, 0x50,
+ 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28, 0x4b, 0x40, 0x1c, 0x18, 0xfe, 0xe0,
+ 0x02, 0x0e, 0xfd, 0xf2, 0x02, 0x0e, 0x07, 0x78, 0x4c, 0x28, 0x45, 0x3f,
+ 0x34, 0x6d, 0x6d, 0x62, 0x7d, 0x38, 0x54, 0x22, 0x19, 0x14, 0x18, 0xaa,
+ 0x52, 0x59, 0x24, 0x36, 0xc3, 0xae, 0x73, 0x39, 0x49, 0x74, 0x85, 0x36,
+ 0x59, 0x0a, 0x09, 0x21, 0x1e, 0xfe, 0x67, 0x6e, 0x82, 0x6e, 0xfe, 0x8e,
+ 0x6e, 0x82, 0x6e, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x04, 0xcb, 0x02, 0xe6,
+ 0x08, 0x02, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x37, 0x36, 0x37, 0x36, 0x35, 0x33, 0x16, 0x15, 0x14, 0x33, 0x32,
+ 0x35, 0x34, 0x27, 0x33, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27,
+ 0x26, 0x01, 0x35, 0x25, 0x15, 0x01, 0xdb, 0x0d, 0x1e, 0x34, 0x3d, 0x48,
+ 0x25, 0x1e, 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d, 0x37, 0x04, 0x02, 0x56,
+ 0x03, 0x50, 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28, 0x4b, 0x40, 0x1c, 0x18,
+ 0xfe, 0xe0, 0x02, 0x0e, 0x05, 0x84, 0x4c, 0x28, 0x45, 0x3f, 0x34, 0x6d,
+ 0x6d, 0x62, 0x7d, 0x38, 0x54, 0x22, 0x19, 0x14, 0x18, 0xaa, 0x52, 0x59,
+ 0x24, 0x36, 0xc3, 0xae, 0x73, 0x39, 0x49, 0x74, 0x85, 0x36, 0x59, 0x0a,
+ 0x09, 0x21, 0x1e, 0x01, 0xc3, 0x6e, 0x82, 0x6e, 0x00, 0x03, 0x00, 0xb4,
+ 0x04, 0xcb, 0x02, 0xe6, 0x09, 0x55, 0x00, 0x28, 0x00, 0x47, 0x00, 0x56,
+ 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34,
+ 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x36, 0x37, 0x36, 0x35,
+ 0x33, 0x16, 0x15, 0x14, 0x33, 0x32, 0x35, 0x34, 0x27, 0x33, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x27, 0x26, 0x13, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x1e, 0x01,
+ 0x33, 0x15, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x35, 0x32,
+ 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x01, 0xdb, 0x0d, 0x1e, 0x34, 0x3d, 0x48,
+ 0x25, 0x1e, 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d, 0x37, 0x04, 0x02, 0x56,
+ 0x03, 0x50, 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28, 0x4b, 0x40, 0x1c, 0x18,
+ 0x0c, 0x08, 0x12, 0x61, 0x3e, 0x1a, 0x38, 0x42, 0x24, 0x31, 0x0c, 0x0f,
+ 0x21, 0x12, 0x20, 0x1d, 0x1b, 0x19, 0x26, 0x3f, 0xb4, 0x84, 0x89, 0x7d,
+ 0x15, 0x4d, 0x03, 0x02, 0x09, 0x1f, 0x12, 0x15, 0x0a, 0x10, 0x29, 0x11,
+ 0x05, 0x84, 0x4c, 0x28, 0x45, 0x3f, 0x34, 0x6d, 0x6d, 0x62, 0x7d, 0x38,
+ 0x54, 0x22, 0x19, 0x14, 0x18, 0xaa, 0x52, 0x59, 0x24, 0x36, 0xc3, 0xae,
+ 0x73, 0x39, 0x49, 0x74, 0x85, 0x36, 0x59, 0x0a, 0x09, 0x21, 0x1e, 0x02,
+ 0xc3, 0x02, 0x0a, 0x38, 0x5f, 0x57, 0x34, 0x15, 0x27, 0x36, 0x4f, 0x20,
+ 0x2d, 0x01, 0x01, 0x6e, 0x02, 0x02, 0x03, 0x3d, 0x2a, 0x7b, 0x6e, 0x6d,
+ 0x12, 0x70, 0x07, 0x07, 0x15, 0x18, 0x22, 0x1c, 0x09, 0x0d, 0x1c, 0x25,
+ 0x12, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb4, 0x04, 0xba, 0x02, 0xe6,
+ 0x08, 0x20, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x37, 0x36, 0x37, 0x36, 0x35, 0x33, 0x16, 0x15, 0x14, 0x33, 0x32,
+ 0x35, 0x34, 0x27, 0x33, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x27,
+ 0x26, 0x01, 0x35, 0x25, 0x15, 0x01, 0xdb, 0x0d, 0x1e, 0x34, 0x3d, 0x48,
+ 0x25, 0x1e, 0x0e, 0x58, 0x0a, 0x16, 0x11, 0x2d, 0x37, 0x04, 0x02, 0x56,
+ 0x03, 0x50, 0x40, 0x0c, 0x5d, 0x0b, 0x19, 0x28, 0x4b, 0x40, 0x1c, 0x18,
+ 0xfe, 0xe0, 0x02, 0x0e, 0x06, 0xb0, 0x4c, 0x28, 0x45, 0x3f, 0x34, 0x6d,
+ 0x6d, 0x62, 0x7d, 0x38, 0x54, 0x22, 0x19, 0x14, 0x18, 0xaa, 0x52, 0x59,
+ 0x24, 0x36, 0xc3, 0xae, 0x73, 0x39, 0x49, 0x74, 0x85, 0x36, 0x59, 0x0a,
+ 0x09, 0x21, 0x1e, 0xfe, 0x3f, 0x6e, 0x82, 0x6e, 0x00, 0x02, 0x00, 0xc6,
+ 0x04, 0xbf, 0x02, 0xd4, 0x07, 0x9e, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x00,
+ 0x01, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x15, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x37, 0x15,
+ 0x05, 0x03, 0x35, 0x25, 0x15, 0x01, 0x2e, 0x46, 0x28, 0x0e, 0x0f, 0x33,
+ 0x34, 0x53, 0x37, 0x2f, 0x2d, 0x39, 0x3c, 0x0f, 0x1a, 0x54, 0x1e, 0x6c,
+ 0xfe, 0xcc, 0x68, 0x02, 0x0e, 0x05, 0x23, 0x12, 0x14, 0x24, 0x25, 0x2d,
+ 0x60, 0x2b, 0x2d, 0x21, 0x64, 0x21, 0x12, 0x20, 0x1a, 0x4d, 0x1b, 0x0a,
+ 0x1d, 0x66, 0x4d, 0x01, 0xef, 0x6e, 0x82, 0x6e, 0x00, 0x03, 0x00, 0xc6,
+ 0x04, 0xbf, 0x02, 0xd4, 0x08, 0xf1, 0x00, 0x18, 0x00, 0x37, 0x00, 0x46,
+ 0x00, 0x00, 0x01, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x15, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x37, 0x15, 0x05, 0x13, 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x1e, 0x01, 0x33, 0x15, 0x22, 0x27,
+ 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x35, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x35, 0x34, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x01, 0x2e, 0x46, 0x28, 0x0e, 0x0f, 0x33, 0x34, 0x53, 0x37, 0x2f,
+ 0x2d, 0x39, 0x3c, 0x0f, 0x1a, 0x54, 0x1e, 0x6c, 0xfe, 0xcc, 0xc4, 0x08,
+ 0x12, 0x61, 0x3e, 0x1a, 0x38, 0x42, 0x24, 0x31, 0x0c, 0x0f, 0x21, 0x12,
+ 0x20, 0x1d, 0x1b, 0x19, 0x26, 0x3f, 0xb4, 0x84, 0x89, 0x7d, 0x15, 0x4d,
+ 0x03, 0x02, 0x09, 0x1f, 0x12, 0x15, 0x0a, 0x10, 0x29, 0x11, 0x05, 0x23,
+ 0x12, 0x14, 0x24, 0x25, 0x2d, 0x60, 0x2b, 0x2d, 0x21, 0x64, 0x21, 0x12,
+ 0x20, 0x1a, 0x4d, 0x1b, 0x0a, 0x1d, 0x66, 0x4d, 0x02, 0xef, 0x02, 0x0a,
+ 0x38, 0x5f, 0x57, 0x34, 0x15, 0x27, 0x36, 0x4f, 0x20, 0x2d, 0x01, 0x01,
+ 0x6e, 0x02, 0x02, 0x03, 0x3d, 0x2a, 0x7b, 0x6e, 0x6d, 0x12, 0x70, 0x07,
+ 0x07, 0x15, 0x18, 0x22, 0x1c, 0x09, 0x0d, 0x1c, 0x25, 0x12, 0x08, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x02, 0x13, 0x05, 0xd5, 0x00, 0x05,
+ 0x00, 0x00, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0xae, 0xa5, 0xc0, 0x05,
+ 0xd5, 0xfa, 0xbe, 0x93, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x02, 0x13,
+ 0x05, 0xd5, 0x00, 0x07, 0x00, 0x00, 0x25, 0x33, 0x15, 0x21, 0x35, 0x33,
+ 0x11, 0x33, 0x01, 0x53, 0xc0, 0xfd, 0xdb, 0xc0, 0xa5, 0x93, 0x93, 0x93,
+ 0x05, 0x42, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x01, 0x54,
+ 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, 0x29, 0x01, 0x35, 0x33, 0x11, 0x33,
+ 0x01, 0x53, 0xfe, 0x9b, 0xc0, 0xa5, 0x93, 0x05, 0x42, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0xff, 0xe3, 0x04, 0x2f, 0x03, 0x93, 0x00, 0x07,
+ 0x00, 0x15, 0x00, 0x00, 0x12, 0x10, 0x16, 0x32, 0x36, 0x10, 0x26, 0x22,
+ 0x01, 0x06, 0x23, 0x22, 0x02, 0x10, 0x12, 0x20, 0x12, 0x15, 0x14, 0x07,
+ 0x33, 0x15, 0xf2, 0xa7, 0xeb, 0xa7, 0xa7, 0xeb, 0x01, 0x0c, 0x46, 0x51,
+ 0xaf, 0xf9, 0xf9, 0x01, 0x5f, 0xf9, 0x5d, 0xd5, 0x02, 0x3e, 0xfe, 0xfa,
+ 0xb9, 0xb9, 0x01, 0x06, 0xb9, 0xfd, 0x09, 0x1d, 0x01, 0x15, 0x01, 0x86,
+ 0x01, 0x15, 0xfe, 0xeb, 0xc3, 0xa9, 0x7f, 0x93, 0x00, 0x02, 0xff, 0xee,
+ 0xff, 0xe3, 0x04, 0x2f, 0x03, 0x93, 0x00, 0x07, 0x00, 0x19, 0x00, 0x00,
+ 0x12, 0x10, 0x16, 0x32, 0x36, 0x10, 0x26, 0x22, 0x01, 0x06, 0x22, 0x27,
+ 0x21, 0x35, 0x33, 0x26, 0x35, 0x34, 0x12, 0x20, 0x12, 0x15, 0x14, 0x07,
+ 0x33, 0x15, 0xf2, 0xa7, 0xeb, 0xa7, 0xa7, 0xeb, 0x01, 0x0c, 0x46, 0xa1,
+ 0x46, 0xfe, 0x76, 0xd5, 0x5d, 0xf9, 0x01, 0x5f, 0xf9, 0x5d, 0xd5, 0x02,
+ 0x3e, 0xfe, 0xfa, 0xb9, 0xb9, 0x01, 0x06, 0xb9, 0xfd, 0x09, 0x1d, 0x1d,
+ 0x93, 0x7f, 0xa9, 0xc3, 0x01, 0x15, 0xfe, 0xeb, 0xc3, 0xa9, 0x7f, 0x93,
+ 0x00, 0x02, 0xff, 0xee, 0xff, 0xe3, 0x03, 0xb8, 0x03, 0x93, 0x00, 0x07,
+ 0x00, 0x15, 0x00, 0x00, 0x12, 0x10, 0x16, 0x32, 0x36, 0x10, 0x26, 0x22,
+ 0x03, 0x26, 0x35, 0x34, 0x12, 0x20, 0x12, 0x10, 0x02, 0x23, 0x22, 0x27,
+ 0x21, 0x35, 0xf2, 0xa7, 0xeb, 0xa7, 0xa7, 0xeb, 0xd6, 0x5d, 0xf9, 0x01,
+ 0x5f, 0xf9, 0xf9, 0xb0, 0x50, 0x46, 0xfe, 0x76, 0x02, 0x3e, 0xfe, 0xfa,
+ 0xb9, 0xb9, 0x01, 0x06, 0xb9, 0xfd, 0x9c, 0x7f, 0xa9, 0xc3, 0x01, 0x15,
+ 0xfe, 0xeb, 0xfe, 0x7a, 0xfe, 0xeb, 0x1d, 0x93, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x03, 0x20, 0x05, 0xd9, 0x00, 0x0a, 0x00, 0x00, 0x29, 0x01,
+ 0x11, 0x03, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x11, 0x21, 0x03, 0x1f, 0xfe,
+ 0x15, 0xfd, 0xaf, 0xa1, 0xa1, 0xae, 0xfd, 0x01, 0x46, 0x03, 0x2a, 0x02,
+ 0xaf, 0xfe, 0x5d, 0x01, 0xa3, 0xfd, 0x51, 0xfd, 0x69, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x20, 0x05, 0xd9, 0x00, 0x0c,
+ 0x00, 0x00, 0x25, 0x15, 0x21, 0x35, 0x21, 0x11, 0x03, 0x33, 0x1b, 0x01,
+ 0x33, 0x03, 0x11, 0x03, 0x1f, 0xfc, 0xcf, 0x01, 0x46, 0xfd, 0xaf, 0xa1,
+ 0xa1, 0xae, 0xfd, 0x93, 0x93, 0x93, 0x02, 0x97, 0x02, 0xaf, 0xfe, 0x5d,
+ 0x01, 0xa3, 0xfd, 0x51, 0xfd, 0x69, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0xd7, 0x05, 0xd9, 0x00, 0x0a, 0x00, 0x00, 0x23, 0x35,
+ 0x21, 0x11, 0x03, 0x33, 0x1b, 0x01, 0x33, 0x03, 0x11, 0x12, 0x01, 0x46,
+ 0xfd, 0xaf, 0xa1, 0xa1, 0xae, 0xfd, 0x93, 0x02, 0x97, 0x02, 0xaf, 0xfe,
+ 0x5d, 0x01, 0xa3, 0xfd, 0x51, 0xfc, 0xd6, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x04, 0x55, 0x03, 0x71, 0x00, 0x08, 0x00, 0x00, 0x21, 0x23,
+ 0x09, 0x01, 0x23, 0x01, 0x33, 0x01, 0x33, 0x04, 0x55, 0xf9, 0xfe, 0xc5,
+ 0xfe, 0xc5, 0xaf, 0x01, 0x7a, 0xe1, 0x01, 0x48, 0x7b, 0x02, 0xbd, 0xfd,
+ 0x43, 0x03, 0x71, 0xfd, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0x55, 0x03, 0x71, 0x00, 0x0a, 0x00, 0x00, 0x33, 0x23,
+ 0x35, 0x33, 0x01, 0x33, 0x01, 0x33, 0x15, 0x23, 0x01, 0xe6, 0xf8, 0x7a,
+ 0x01, 0x49, 0xe1, 0x01, 0x48, 0x7b, 0xf9, 0xfe, 0xc5, 0x93, 0x02, 0xde,
+ 0xfd, 0x22, 0x93, 0x02, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0x0c, 0x03, 0x71, 0x00, 0x08, 0x00, 0x00, 0x33, 0x23,
+ 0x35, 0x33, 0x01, 0x33, 0x01, 0x23, 0x01, 0xe6, 0xf8, 0x7a, 0x01, 0x49,
+ 0xe1, 0x01, 0x7a, 0xb0, 0xfe, 0xc5, 0x93, 0x02, 0xde, 0xfc, 0x8f, 0x02,
+ 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc8,
+ 0x03, 0x71, 0x00, 0x09, 0x00, 0x00, 0x29, 0x01, 0x11, 0x33, 0x11, 0x21,
+ 0x11, 0x33, 0x11, 0x33, 0x04, 0xc7, 0xfb, 0xe0, 0xa7, 0x02, 0x19, 0xa7,
+ 0xb9, 0x03, 0x71, 0xfd, 0x22, 0x02, 0xde, 0xfd, 0x22, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x04, 0xc8, 0x03, 0x71, 0x00, 0x0b,
+ 0x00, 0x00, 0x29, 0x01, 0x35, 0x33, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x11, 0x33, 0x04, 0xc7, 0xfb, 0x27, 0xb9, 0xa7, 0x02, 0x19, 0xa7, 0xb9,
+ 0x93, 0x02, 0xde, 0xfd, 0x22, 0x02, 0xde, 0xfd, 0x22, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0e, 0x03, 0x71, 0x00, 0x09,
+ 0x00, 0x00, 0x29, 0x01, 0x35, 0x33, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33,
+ 0x04, 0x0e, 0xfb, 0xe0, 0xb9, 0xa7, 0x02, 0x19, 0xa7, 0x93, 0x02, 0xde,
+ 0xfd, 0x22, 0x02, 0xde, 0x00, 0x01, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc8,
+ 0x03, 0x71, 0x00, 0x09, 0x00, 0x00, 0x33, 0x35, 0x21, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x33, 0x15, 0xa7, 0x02, 0xc0, 0xfd, 0x40, 0x03, 0x67, 0xb9,
+ 0x93, 0x02, 0x4b, 0x93, 0xfd, 0x22, 0x93, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0xc8, 0x03, 0x71, 0x00, 0x09, 0x00, 0x00, 0x23, 0x35,
+ 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x15, 0x12, 0x03, 0x79, 0xfd,
+ 0x40, 0x03, 0x67, 0xb9, 0x93, 0x02, 0x4b, 0x93, 0xfd, 0x22, 0x93, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0e, 0x03, 0x71, 0x00, 0x07,
+ 0x00, 0x00, 0x01, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x04, 0x0e,
+ 0xfb, 0xe0, 0x03, 0x79, 0xfd, 0x40, 0x03, 0x71, 0xfc, 0x8f, 0x93, 0x02,
+ 0x4b, 0x93, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xe2, 0x00, 0x13, 0x00, 0x1f, 0x00, 0x00, 0x21, 0x11, 0x26, 0x27,
+ 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x32, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06,
+ 0x07, 0x11, 0x21, 0x15, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34,
+ 0x2e, 0x01, 0x22, 0x06, 0x01, 0xd0, 0x49, 0x43, 0x67, 0x77, 0x77, 0xce,
+ 0xf1, 0xcf, 0x76, 0x76, 0x68, 0x43, 0x4a, 0x01, 0xe2, 0xfc, 0x9a, 0x52,
+ 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6, 0x8c, 0x03, 0x0e, 0x0b, 0x20,
+ 0x31, 0xa8, 0xc5, 0xa9, 0x62, 0x62, 0xa9, 0xc5, 0xa8, 0x31, 0x20, 0x0b,
+ 0xfd, 0x85, 0x93, 0x04, 0xad, 0x70, 0x60, 0x38, 0x38, 0x60, 0x70, 0x60,
+ 0x38, 0x38, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xe2, 0x00, 0x15, 0x00, 0x21, 0x00, 0x00, 0x25, 0x21, 0x15, 0x21,
+ 0x35, 0x21, 0x11, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x32, 0x1e,
+ 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e,
+ 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x02, 0x76, 0x01, 0xe2, 0xfb, 0x96,
+ 0x01, 0xe2, 0x49, 0x43, 0x67, 0x77, 0x77, 0xce, 0xf1, 0xcf, 0x76, 0x76,
+ 0x68, 0x43, 0x4a, 0xfe, 0x7c, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d,
+ 0xa6, 0x8c, 0x93, 0x93, 0x93, 0x02, 0x7b, 0x0b, 0x20, 0x31, 0xa8, 0xc5,
+ 0xa9, 0x62, 0x62, 0xa9, 0xc5, 0xa8, 0x31, 0x20, 0x0b, 0x01, 0x9f, 0x70,
+ 0x60, 0x38, 0x38, 0x60, 0x70, 0x60, 0x38, 0x38, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xe1, 0x05, 0xe2, 0x00, 0x13, 0x00, 0x1f, 0x00, 0x00,
+ 0x23, 0x35, 0x21, 0x11, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x3e, 0x01, 0x32,
+ 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x11, 0x00, 0x14, 0x1e, 0x01,
+ 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x12, 0x01, 0xe2, 0x49,
+ 0x43, 0x67, 0x77, 0x77, 0xce, 0xf1, 0xcf, 0x76, 0x76, 0x68, 0x43, 0x4a,
+ 0xfe, 0x7c, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6, 0x8c, 0x93,
+ 0x02, 0x7b, 0x0b, 0x20, 0x31, 0xa8, 0xc5, 0xa9, 0x62, 0x62, 0xa9, 0xc5,
+ 0xa8, 0x31, 0x20, 0x0b, 0xfc, 0xf2, 0x04, 0xad, 0x70, 0x60, 0x38, 0x38,
+ 0x60, 0x70, 0x60, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xa7,
+ 0x00, 0x00, 0x04, 0xc8, 0x04, 0xa6, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00,
+ 0x01, 0x10, 0x33, 0x15, 0x22, 0x07, 0x33, 0x15, 0x23, 0x01, 0x21, 0x35,
+ 0x21, 0x01, 0xdc, 0xda, 0x77, 0x02, 0x78, 0xd9, 0x02, 0xeb, 0xfb, 0xe0,
+ 0x04, 0x20, 0x03, 0x9c, 0x01, 0x0a, 0x66, 0x9a, 0x9e, 0xfc, 0xf8, 0x93,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0xc8, 0x04, 0xa6, 0x00, 0x08,
+ 0x00, 0x0c, 0x00, 0x00, 0x01, 0x10, 0x33, 0x15, 0x22, 0x07, 0x33, 0x15,
+ 0x23, 0x01, 0x21, 0x35, 0x21, 0x01, 0xdc, 0xda, 0x77, 0x02, 0x78, 0xd9,
+ 0x02, 0xeb, 0xfb, 0x27, 0x04, 0xd9, 0x03, 0x9c, 0x01, 0x0a, 0x66, 0x9a,
+ 0x9e, 0xfc, 0xf8, 0x93, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0e,
+ 0x04, 0xa6, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x10, 0x33, 0x15,
+ 0x22, 0x07, 0x33, 0x15, 0x23, 0x01, 0x21, 0x35, 0x21, 0x01, 0xdc, 0xda,
+ 0x77, 0x02, 0x78, 0xd9, 0x02, 0x32, 0xfb, 0xe0, 0x04, 0x20, 0x03, 0x9c,
+ 0x01, 0x0a, 0x66, 0x9a, 0x9e, 0xfc, 0xf8, 0x93, 0x00, 0x02, 0x00, 0x65,
+ 0x00, 0x00, 0x06, 0x0a, 0x05, 0xee, 0x00, 0x13, 0x00, 0x1d, 0x00, 0x00,
+ 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x22, 0x26, 0x10, 0x36, 0x20,
+ 0x17, 0x16, 0x1d, 0x01, 0x21, 0x11, 0x33, 0x15, 0x01, 0x35, 0x34, 0x27,
+ 0x26, 0x22, 0x06, 0x14, 0x16, 0x33, 0x04, 0xa9, 0xfe, 0x70, 0x8d, 0xdf,
+ 0xa9, 0x9e, 0x9f, 0x01, 0x42, 0x55, 0x7d, 0x02, 0x37, 0xb9, 0xfc, 0x83,
+ 0x53, 0x33, 0xb2, 0x62, 0x67, 0x54, 0x02, 0xde, 0xfe, 0xc4, 0x01, 0x3c,
+ 0xd6, 0x01, 0x55, 0xe5, 0x66, 0x98, 0xb6, 0xc9, 0xfd, 0x22, 0x93, 0x03,
+ 0x71, 0xc9, 0x83, 0x5d, 0x38, 0x98, 0xc6, 0x83, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x06, 0x0a, 0x05, 0xee, 0x00, 0x15, 0x00, 0x1f, 0x00, 0x00,
+ 0x25, 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x22, 0x26, 0x10, 0x36, 0x20,
+ 0x17, 0x16, 0x1d, 0x01, 0x21, 0x11, 0x33, 0x15, 0x21, 0x35, 0x01, 0x35,
+ 0x34, 0x27, 0x26, 0x22, 0x06, 0x14, 0x16, 0x33, 0x04, 0xa9, 0xfe, 0x70,
+ 0x8d, 0xdf, 0xa9, 0x9e, 0x9f, 0x01, 0x42, 0x55, 0x7d, 0x02, 0x37, 0xb9,
+ 0xf9, 0xe5, 0x02, 0x9e, 0x53, 0x33, 0xb2, 0x62, 0x67, 0x54, 0x93, 0x02,
+ 0x4b, 0xfe, 0xc4, 0x01, 0x3c, 0xd6, 0x01, 0x55, 0xe5, 0x66, 0x98, 0xb6,
+ 0xc9, 0xfd, 0x22, 0x93, 0x93, 0x02, 0xde, 0xc9, 0x83, 0x5d, 0x38, 0x98,
+ 0xc6, 0x83, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x05, 0x50,
+ 0x05, 0xee, 0x00, 0x13, 0x00, 0x1d, 0x00, 0x00, 0x25, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x23, 0x22, 0x26, 0x10, 0x36, 0x20, 0x17, 0x16, 0x1d, 0x01,
+ 0x21, 0x11, 0x21, 0x35, 0x01, 0x35, 0x34, 0x27, 0x26, 0x22, 0x06, 0x14,
+ 0x16, 0x33, 0x04, 0xa9, 0xfe, 0x70, 0x8d, 0xdf, 0xa9, 0x9e, 0x9f, 0x01,
+ 0x42, 0x55, 0x7d, 0x02, 0x37, 0xfa, 0x9e, 0x02, 0x9e, 0x53, 0x33, 0xb2,
+ 0x62, 0x67, 0x54, 0x93, 0x02, 0x4b, 0xfe, 0xc4, 0x01, 0x3c, 0xd6, 0x01,
+ 0x55, 0xe5, 0x66, 0x98, 0xb6, 0xc9, 0xfc, 0x8f, 0x93, 0x02, 0xde, 0xc9,
+ 0x83, 0x5d, 0x38, 0x98, 0xc6, 0x83, 0x00, 0x00, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x03, 0x3a, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x33, 0x11,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0xae, 0x02,
+ 0x42, 0xfe, 0x63, 0x01, 0x9d, 0xfe, 0x63, 0x01, 0xe6, 0x05, 0xd5, 0x93,
+ 0xfe, 0x2f, 0x92, 0xfd, 0xb4, 0x93, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0x3a, 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x23, 0x35,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15,
+ 0x12, 0xc0, 0x02, 0x42, 0xfe, 0x63, 0x01, 0x9d, 0xfe, 0x63, 0x01, 0xe6,
+ 0x93, 0x05, 0x42, 0x93, 0xfe, 0x2f, 0x92, 0xfd, 0xb4, 0x93, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x02, 0xf1, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x29, 0x01, 0x35, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21,
+ 0x15, 0x21, 0x01, 0x53, 0xfe, 0x9b, 0xc0, 0x02, 0x42, 0xfe, 0x63, 0x01,
+ 0x9d, 0xfe, 0x63, 0x93, 0x05, 0x42, 0x93, 0xfe, 0x2f, 0x92, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x03, 0x3a, 0x05, 0xd5, 0x00, 0x0b,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x33, 0x15, 0x01, 0xd4, 0xfe, 0x63, 0x01, 0x9d, 0xfe, 0x63, 0x02, 0x43,
+ 0xbf, 0x02, 0xdf, 0x92, 0x01, 0xd1, 0x93, 0xfa, 0xbe, 0x93, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x3a, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x33, 0x15, 0x12, 0x01, 0xe6, 0xfe, 0x63, 0x01, 0x9d, 0xfe,
+ 0x63, 0x02, 0x43, 0xbf, 0x93, 0x02, 0x4c, 0x92, 0x01, 0xd1, 0x93, 0xfa,
+ 0xbe, 0x93, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x02, 0x7a,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x11, 0x21,
+ 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x02, 0x7a, 0xfd, 0x74, 0x01, 0xe6,
+ 0xfe, 0x63, 0x01, 0x9d, 0xfe, 0x63, 0x02, 0x43, 0x93, 0x02, 0x4c, 0x92,
+ 0x01, 0xd1, 0x93, 0x00, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x04, 0x18,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x17, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0x11, 0x33, 0x11, 0x21,
+ 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x33, 0x15, 0x02, 0x59, 0xfe, 0xef,
+ 0x01, 0x0e, 0x49, 0x2f, 0x28, 0x28, 0x37, 0xfe, 0x10, 0xa7, 0x01, 0x33,
+ 0x5e, 0x73, 0x4f, 0x47, 0xbe, 0x02, 0xde, 0xfd, 0xb5, 0x5d, 0x4f, 0x7a,
+ 0x7d, 0x49, 0x5f, 0xfd, 0x22, 0x05, 0xd5, 0xfd, 0x9c, 0x87, 0x5f, 0xd2,
+ 0xa4, 0x82, 0x93, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x18,
+ 0x05, 0xd5, 0x00, 0x0e, 0x00, 0x19, 0x00, 0x00, 0x23, 0x35, 0x33, 0x11,
+ 0x33, 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x33, 0x15, 0x01,
+ 0x21, 0x11, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x12, 0xb9,
+ 0xa7, 0x01, 0x33, 0x5e, 0x73, 0x4f, 0x47, 0xbe, 0xfe, 0x41, 0xfe, 0xef,
+ 0x01, 0x0e, 0x49, 0x2f, 0x28, 0x28, 0x37, 0x93, 0x05, 0x42, 0xfd, 0x9c,
+ 0x87, 0x5f, 0xd2, 0xa4, 0x82, 0x93, 0x02, 0xde, 0xfd, 0xb5, 0x5d, 0x4f,
+ 0x7a, 0x7d, 0x49, 0x5f, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xa1,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x19, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0x35, 0x33, 0x11, 0x33,
+ 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x02, 0x59,
+ 0xfe, 0xef, 0x01, 0x0e, 0x49, 0x2f, 0x28, 0x28, 0x37, 0xfd, 0x57, 0xb9,
+ 0xa7, 0x01, 0x33, 0x5e, 0x73, 0x4f, 0x4f, 0x50, 0x61, 0x02, 0xde, 0xfd,
+ 0xb5, 0x5d, 0x4f, 0x7a, 0x7d, 0x49, 0x5f, 0xfd, 0x22, 0x93, 0x05, 0x42,
+ 0xfd, 0x9c, 0x87, 0x5f, 0xd2, 0xad, 0x87, 0x85, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x04, 0x7a, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x21, 0x34,
+ 0x02, 0x27, 0x26, 0x27, 0x03, 0x35, 0x21, 0x15, 0x05, 0x13, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x15, 0x21, 0x15, 0x02, 0x66, 0x18, 0x30, 0x46, 0x7b,
+ 0xaf, 0x03, 0x0c, 0xfd, 0xd6, 0x8e, 0x7a, 0x2f, 0x3b, 0x06, 0x02, 0x01,
+ 0x70, 0x99, 0x01, 0x5f, 0x96, 0xdc, 0xdc, 0x01, 0x39, 0x56, 0x93, 0x01,
+ 0xfe, 0xef, 0xea, 0xb8, 0xe6, 0x9c, 0x40, 0x39, 0x93, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x04, 0x7a, 0x05, 0xd5, 0x00, 0x16,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x03,
+ 0x35, 0x21, 0x15, 0x05, 0x13, 0x16, 0x17, 0x16, 0x17, 0x16, 0x15, 0x21,
+ 0x15, 0x12, 0x02, 0x75, 0x03, 0x07, 0x0b, 0x30, 0x46, 0x7b, 0xaf, 0x03,
+ 0x0c, 0xfd, 0xd6, 0x8e, 0x7a, 0x2f, 0x3b, 0x06, 0x02, 0x01, 0x70, 0x93,
+ 0x58, 0x5d, 0xb0, 0x96, 0xdc, 0xdc, 0x01, 0x39, 0x56, 0x93, 0x01, 0xfe,
+ 0xef, 0xea, 0xb8, 0xe6, 0x9c, 0x40, 0x39, 0x93, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xba, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x23, 0x35,
+ 0x21, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x03, 0x35, 0x21, 0x15, 0x05,
+ 0x13, 0x16, 0x17, 0x16, 0x12, 0x07, 0x12, 0x02, 0x75, 0x03, 0x07, 0x0b,
+ 0x30, 0x46, 0x7b, 0xaf, 0x03, 0x0c, 0xfd, 0xd6, 0x8e, 0x7a, 0x2f, 0x3b,
+ 0x0a, 0x01, 0x93, 0x58, 0x5d, 0xb0, 0x96, 0xdc, 0xdc, 0x01, 0x39, 0x56,
+ 0x93, 0x01, 0xfe, 0xef, 0xea, 0xb8, 0xe6, 0xfe, 0xc9, 0x71, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x02, 0x98, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x00, 0x21, 0x11, 0x03, 0x35, 0x13, 0x33, 0x11, 0x33, 0x15, 0x01,
+ 0x32, 0xfb, 0xf9, 0xa8, 0xbf, 0x04, 0xdf, 0xfe, 0xc7, 0xf6, 0x01, 0x39,
+ 0xfa, 0xbe, 0x93, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x02, 0x98,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x03, 0x35,
+ 0x13, 0x33, 0x11, 0x33, 0x15, 0x12, 0x01, 0x44, 0xfb, 0xf9, 0xa8, 0xbf,
+ 0x93, 0x04, 0x4c, 0xfe, 0xc7, 0xf6, 0x01, 0x39, 0xfa, 0xbe, 0x93, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x01, 0xd8, 0x05, 0xd5, 0x00, 0x08,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x03, 0x35, 0x13, 0x33, 0x11, 0x12,
+ 0x01, 0x44, 0xfb, 0xf9, 0xa8, 0x93, 0x04, 0x4c, 0xfe, 0xc7, 0xf6, 0x01,
+ 0x39, 0xfa, 0x2b, 0x00, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x06, 0xfa,
+ 0x04, 0x1a, 0x00, 0x11, 0x00, 0x1a, 0x00, 0x23, 0x00, 0x00, 0x33, 0x11,
+ 0x34, 0x12, 0x33, 0x32, 0x16, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16,
+ 0x15, 0x11, 0x33, 0x15, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11,
+ 0x21, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0xae, 0xdb,
+ 0xb3, 0x70, 0x6c, 0x30, 0x21, 0x87, 0xbe, 0xbd, 0x55, 0x7a, 0xc0, 0xfe,
+ 0x98, 0x93, 0x51, 0x74, 0x72, 0x01, 0xca, 0xfd, 0x8e, 0x94, 0x50, 0x62,
+ 0x85, 0x01, 0xcb, 0x01, 0xee, 0xa6, 0x00, 0xff, 0x4b, 0x2d, 0x2d, 0xd2,
+ 0x58, 0x80, 0x68, 0xfd, 0xb9, 0x93, 0x02, 0x7c, 0x82, 0x80, 0xc5, 0x95,
+ 0xfe, 0x6e, 0x01, 0x63, 0x83, 0x7f, 0xa7, 0xd2, 0xf2, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x06, 0xfa, 0x04, 0x1a, 0x00, 0x13,
+ 0x00, 0x1c, 0x00, 0x25, 0x00, 0x00, 0x23, 0x35, 0x33, 0x11, 0x34, 0x12,
+ 0x33, 0x32, 0x16, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x33, 0x15, 0x01, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x21, 0x01,
+ 0x34, 0x26, 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x12, 0xc0, 0xdb, 0xb3,
+ 0x70, 0x6c, 0x30, 0x21, 0x87, 0xbe, 0xbd, 0x55, 0x7a, 0xc0, 0xfe, 0x98,
+ 0x93, 0x51, 0x74, 0x72, 0x01, 0xca, 0xfd, 0x8e, 0x94, 0x50, 0x62, 0x85,
+ 0x01, 0xcb, 0x93, 0x01, 0x5b, 0xa6, 0x00, 0xff, 0x4b, 0x2d, 0x2d, 0xd2,
+ 0x58, 0x80, 0x68, 0xfd, 0xb9, 0x93, 0x02, 0x7c, 0x82, 0x80, 0xc5, 0x95,
+ 0xfe, 0x6e, 0x01, 0x63, 0x83, 0x7f, 0xa7, 0xd2, 0xf2, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x06, 0x3a, 0x04, 0x1a, 0x00, 0x11,
+ 0x00, 0x1a, 0x00, 0x23, 0x00, 0x00, 0x23, 0x35, 0x33, 0x11, 0x34, 0x12,
+ 0x33, 0x32, 0x16, 0x17, 0x3e, 0x01, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11,
+ 0x03, 0x34, 0x26, 0x23, 0x22, 0x06, 0x15, 0x11, 0x21, 0x01, 0x34, 0x26,
+ 0x23, 0x22, 0x06, 0x1d, 0x01, 0x21, 0x12, 0xc0, 0xdb, 0xb3, 0x70, 0x6c,
+ 0x30, 0x21, 0x87, 0xbe, 0xbd, 0x55, 0x7a, 0xa8, 0x93, 0x51, 0x74, 0x72,
+ 0x01, 0xca, 0xfd, 0x8e, 0x94, 0x50, 0x62, 0x85, 0x01, 0xcb, 0x93, 0x01,
+ 0x5b, 0xa6, 0x00, 0xff, 0x4b, 0x2d, 0x2d, 0xd2, 0x58, 0x80, 0x68, 0xfd,
+ 0x26, 0x02, 0x7c, 0x82, 0x80, 0xc5, 0x95, 0xfe, 0x6e, 0x01, 0x63, 0x83,
+ 0x7f, 0xa7, 0xd2, 0xf2, 0x00, 0x01, 0x00, 0x36, 0x00, 0x00, 0x03, 0x7a,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11,
+ 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x01, 0x61, 0xfe, 0xd6,
+ 0x01, 0x2a, 0xa5, 0x01, 0x2a, 0xfe, 0xd6, 0x01, 0x73, 0x03, 0x81, 0x93,
+ 0x01, 0xc1, 0xfe, 0x3f, 0x93, 0xfd, 0x12, 0x93, 0x00, 0x01, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0x7a, 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x23, 0x35,
+ 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x12, 0x01, 0x73, 0xfe, 0xd6, 0x01, 0x2a, 0xa5, 0x01, 0x2a,
+ 0xfe, 0xd6, 0x01, 0x73, 0x93, 0x02, 0xee, 0x93, 0x01, 0xc1, 0xfe, 0x3f,
+ 0x93, 0xfd, 0x12, 0x93, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x31,
+ 0x05, 0xd5, 0x00, 0x0d, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x11, 0x21,
+ 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x02, 0x06, 0xfd, 0xe8,
+ 0x01, 0x73, 0xfe, 0xd6, 0x01, 0x2a, 0xa5, 0x01, 0x2a, 0xfe, 0xd6, 0x93,
+ 0x02, 0xee, 0x93, 0x01, 0xc1, 0xfe, 0x3f, 0x93, 0x00, 0x02, 0x00, 0x36,
+ 0x00, 0x00, 0x05, 0xb6, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00,
+ 0x25, 0x11, 0x21, 0x11, 0x07, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x03, 0x9d,
+ 0xfe, 0x6a, 0xa6, 0xfe, 0xd6, 0x01, 0x2a, 0xa6, 0x01, 0x96, 0xa6, 0x01,
+ 0x2b, 0xfe, 0xd5, 0x01, 0x73, 0x93, 0x02, 0xee, 0xfd, 0x12, 0x93, 0x03,
+ 0x81, 0x93, 0x01, 0xc1, 0xfe, 0x3f, 0x01, 0xc1, 0xfe, 0x3f, 0x93, 0xfd,
+ 0x12, 0x93, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x05, 0xb6,
+ 0x05, 0xd5, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11,
+ 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15,
+ 0x21, 0x11, 0x21, 0x15, 0x25, 0x11, 0x21, 0x11, 0x12, 0x01, 0x73, 0xfe,
+ 0xd6, 0x01, 0x2a, 0xa6, 0x01, 0x96, 0xa6, 0x01, 0x2b, 0xfe, 0xd5, 0x01,
+ 0x73, 0xfd, 0xe7, 0xfe, 0x6a, 0x93, 0x02, 0xee, 0x93, 0x01, 0xc1, 0xfe,
+ 0x3f, 0x01, 0xc1, 0xfe, 0x3f, 0x93, 0xfd, 0x12, 0x93, 0x93, 0x02, 0xee,
+ 0xfd, 0x12, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x05, 0x6e,
+ 0x05, 0xd5, 0x00, 0x11, 0x00, 0x15, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21,
+ 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21,
+ 0x15, 0x21, 0x03, 0x11, 0x21, 0x11, 0x04, 0x43, 0xfb, 0xab, 0x01, 0x73,
+ 0xfe, 0xd6, 0x01, 0x2a, 0xa6, 0x01, 0x96, 0xa6, 0x01, 0x2b, 0xfe, 0xd5,
+ 0xa6, 0xfe, 0x6a, 0x93, 0x02, 0xee, 0x93, 0x01, 0xc1, 0xfe, 0x3f, 0x01,
+ 0xc1, 0xfe, 0x3f, 0x93, 0xfd, 0x12, 0x02, 0xee, 0xfd, 0x12, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x04, 0xc8, 0x03, 0x71, 0x00, 0x05,
+ 0x00, 0x09, 0x00, 0x00, 0x33, 0x11, 0x21, 0x11, 0x33, 0x15, 0x01, 0x11,
+ 0x21, 0x11, 0xa7, 0x03, 0x67, 0xb9, 0xfc, 0x87, 0x02, 0x19, 0x03, 0x71,
+ 0xfd, 0x22, 0x93, 0x02, 0xde, 0xfd, 0xb5, 0x02, 0x4b, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0xc8, 0x03, 0x71, 0x00, 0x07,
+ 0x00, 0x0b, 0x00, 0x00, 0x23, 0x35, 0x33, 0x11, 0x21, 0x11, 0x33, 0x15,
+ 0x01, 0x11, 0x21, 0x11, 0x12, 0xb9, 0x03, 0x67, 0xb9, 0xfc, 0x87, 0x02,
+ 0x19, 0x93, 0x02, 0xde, 0xfd, 0x22, 0x93, 0x02, 0xde, 0xfd, 0xb5, 0x02,
+ 0x4b, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0e,
+ 0x03, 0x71, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x29, 0x01, 0x35, 0x33,
+ 0x11, 0x21, 0x05, 0x11, 0x21, 0x11, 0x04, 0x0e, 0xfb, 0xe0, 0xb9, 0x03,
+ 0x67, 0xfd, 0x40, 0x02, 0x19, 0x93, 0x02, 0xde, 0x93, 0xfd, 0xb5, 0x02,
+ 0x4b, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x04, 0x92,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x01, 0x21, 0x01, 0x07,
+ 0x01, 0x21, 0x01, 0x21, 0x15, 0x03, 0x65, 0xfd, 0xb6, 0x01, 0x25, 0x68,
+ 0xfe, 0x5f, 0x04, 0x12, 0xfe, 0x91, 0x01, 0xb8, 0x05, 0x42, 0xfb, 0x7e,
+ 0xc0, 0x05, 0xd5, 0xfa, 0xbe, 0x93, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0x92, 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x05, 0x35, 0x21, 0x01, 0x21, 0x01, 0x21, 0x15, 0x03,
+ 0x65, 0xfd, 0xb6, 0x01, 0x25, 0xfd, 0xae, 0x01, 0xb8, 0xfe, 0x91, 0x04,
+ 0x12, 0xfe, 0x91, 0x01, 0xb8, 0x05, 0x42, 0xfb, 0x7e, 0xc0, 0x93, 0x05,
+ 0x42, 0xfa, 0xbe, 0x93, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x4a,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x01, 0x21, 0x01, 0x05,
+ 0x35, 0x21, 0x01, 0x21, 0x01, 0x03, 0x65, 0xfd, 0xb6, 0x01, 0x25, 0xfd,
+ 0xae, 0x01, 0xb8, 0xfe, 0x91, 0x04, 0x12, 0xfe, 0x5f, 0x05, 0x42, 0xfb,
+ 0x7e, 0xc0, 0x93, 0x05, 0x42, 0xfa, 0x2b, 0x00, 0x00, 0x03, 0x00, 0xad,
+ 0x00, 0x00, 0x05, 0x5b, 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x1f,
+ 0x00, 0x00, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b,
+ 0x01, 0x01, 0x11, 0x21, 0x11, 0x01, 0x11, 0x21, 0x11, 0x21, 0x32, 0x17,
+ 0x16, 0x15, 0x06, 0x07, 0x06, 0x2f, 0x01, 0x11, 0x21, 0x15, 0x03, 0x15,
+ 0x97, 0x55, 0x21, 0x1b, 0x1b, 0x1b, 0x5e, 0x94, 0xfe, 0x3f, 0x01, 0x1c,
+ 0xfe, 0x3e, 0x01, 0xc2, 0x01, 0x84, 0x77, 0x3a, 0x3e, 0x01, 0x3d, 0x53,
+ 0x7e, 0xbf, 0x02, 0x46, 0x03, 0x71, 0x51, 0x45, 0x3d, 0x3c, 0x64, 0x5e,
+ 0xfd, 0x9c, 0xfd, 0xb5, 0x02, 0x4b, 0xfd, 0x22, 0x03, 0x71, 0x02, 0x64,
+ 0x85, 0x90, 0x7c, 0x91, 0x5b, 0x7c, 0x01, 0x01, 0xfd, 0xb5, 0x93, 0x00,
+ 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x05, 0x5b, 0x05, 0xd5, 0x00, 0x0a,
+ 0x00, 0x0e, 0x00, 0x21, 0x00, 0x00, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x2b, 0x01, 0x01, 0x11, 0x21, 0x11, 0x01, 0x35, 0x33,
+ 0x11, 0x21, 0x11, 0x21, 0x32, 0x17, 0x16, 0x15, 0x06, 0x07, 0x06, 0x2f,
+ 0x01, 0x11, 0x21, 0x15, 0x03, 0x15, 0x97, 0x55, 0x21, 0x1b, 0x1b, 0x1b,
+ 0x5e, 0x94, 0xfe, 0x3f, 0x01, 0x1c, 0xfd, 0x7e, 0xc0, 0x01, 0xc2, 0x01,
+ 0x84, 0x77, 0x3a, 0x3e, 0x01, 0x3d, 0x53, 0x7e, 0xbf, 0x02, 0x46, 0x03,
+ 0x71, 0x51, 0x45, 0x3d, 0x3c, 0x64, 0x5e, 0xfd, 0x9c, 0xfd, 0xb5, 0x02,
+ 0x4b, 0xfd, 0x22, 0x93, 0x02, 0xde, 0x02, 0x64, 0x85, 0x90, 0x7c, 0x91,
+ 0x5b, 0x7c, 0x01, 0x01, 0xfd, 0xb5, 0x93, 0x00, 0x00, 0x03, 0xff, 0xee,
+ 0x00, 0x00, 0x04, 0xe3, 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x1f,
+ 0x00, 0x00, 0x01, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2b,
+ 0x01, 0x01, 0x11, 0x21, 0x11, 0x13, 0x21, 0x35, 0x33, 0x11, 0x21, 0x11,
+ 0x21, 0x32, 0x17, 0x16, 0x15, 0x06, 0x07, 0x06, 0x2f, 0x01, 0x03, 0x15,
+ 0x97, 0x55, 0x21, 0x1b, 0x1b, 0x1b, 0x5e, 0x94, 0xfe, 0x3f, 0x01, 0x1c,
+ 0xa5, 0xfc, 0xd9, 0xc0, 0x01, 0xc2, 0x01, 0x84, 0x77, 0x3a, 0x3e, 0x01,
+ 0x3d, 0x53, 0x7e, 0xbf, 0x03, 0x71, 0x51, 0x45, 0x3d, 0x3c, 0x64, 0x5e,
+ 0xfd, 0x9c, 0xfd, 0xb5, 0x02, 0x4b, 0xfd, 0x22, 0x93, 0x02, 0xde, 0x02,
+ 0x64, 0x85, 0x90, 0x7c, 0x91, 0x5b, 0x7c, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x03, 0xe3, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x11, 0x33, 0x15, 0x02, 0x7e, 0xfe, 0xd6, 0xa6, 0xa6, 0x01, 0x2a,
+ 0xa6, 0xbe, 0x03, 0x81, 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc, 0x01, 0xc1,
+ 0xfa, 0xbe, 0x93, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0xe3,
+ 0x05, 0xd5, 0x00, 0x0f, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x15, 0x12, 0x02,
+ 0x90, 0xfe, 0xd6, 0xa6, 0xa6, 0x01, 0x2a, 0xa6, 0xbe, 0x93, 0x02, 0xee,
+ 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc, 0x01, 0xc1, 0xfa, 0xbe, 0x93, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x24, 0x05, 0xd5, 0x00, 0x0d,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x11, 0x12, 0x02, 0x90, 0xfe, 0xd6, 0xa6, 0xa6, 0x01,
+ 0x2a, 0xa6, 0x93, 0x02, 0xee, 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc, 0x01,
+ 0xc1, 0xfa, 0x2b, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x05, 0x49,
+ 0x05, 0xd5, 0x00, 0x0a, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x01, 0x11, 0x21, 0x22, 0x27,
+ 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11,
+ 0x21, 0x15, 0x01, 0xac, 0x01, 0x12, 0xfe, 0xf2, 0x4a, 0x2f, 0x27, 0x27,
+ 0x37, 0x01, 0x4a, 0xfe, 0xcd, 0x61, 0x70, 0x4f, 0x4f, 0x4f, 0x61, 0x01,
+ 0xfa, 0x01, 0x2b, 0xfe, 0xd5, 0x01, 0xeb, 0x02, 0xf7, 0x02, 0x4b, 0x5d,
+ 0x4f, 0x7a, 0x7d, 0x49, 0x5f, 0xfd, 0x09, 0x02, 0x64, 0x87, 0x5f, 0xd2,
+ 0xad, 0x87, 0x85, 0xfd, 0x22, 0x93, 0xfe, 0x2f, 0x93, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x05, 0x49, 0x05, 0xd5, 0x00, 0x0a,
+ 0x00, 0x1f, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x01, 0x35, 0x21, 0x11, 0x21, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x33, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15,
+ 0x01, 0xac, 0x01, 0x12, 0xfe, 0xf2, 0x4a, 0x2f, 0x27, 0x27, 0x37, 0xfe,
+ 0x80, 0x02, 0xca, 0xfe, 0xcd, 0x61, 0x70, 0x4f, 0x4f, 0x4f, 0x61, 0x01,
+ 0xfa, 0x01, 0x2b, 0xfe, 0xd5, 0x01, 0xeb, 0x02, 0xf7, 0x02, 0x4b, 0x5d,
+ 0x4f, 0x7a, 0x7d, 0x49, 0x5f, 0xfd, 0x09, 0x93, 0x01, 0xd1, 0x87, 0x5f,
+ 0xd2, 0xad, 0x87, 0x85, 0xfd, 0x22, 0x93, 0xfe, 0x2f, 0x93, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x89, 0x05, 0xd5, 0x00, 0x0a,
+ 0x00, 0x1d, 0x00, 0x00, 0x01, 0x21, 0x11, 0x21, 0x22, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x01, 0x35, 0x21, 0x11, 0x21, 0x22, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x33, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0xac,
+ 0x01, 0x12, 0xfe, 0xf2, 0x4a, 0x2f, 0x27, 0x27, 0x37, 0xfe, 0x80, 0x02,
+ 0xca, 0xfe, 0xcd, 0x61, 0x70, 0x4f, 0x4f, 0x4f, 0x61, 0x01, 0xfa, 0x01,
+ 0x2b, 0xfe, 0xd5, 0x02, 0xf7, 0x02, 0x4b, 0x5d, 0x4f, 0x7a, 0x7d, 0x49,
+ 0x5f, 0xfd, 0x09, 0x93, 0x01, 0xd1, 0x87, 0x5f, 0xd2, 0xad, 0x87, 0x85,
+ 0xfd, 0x22, 0x93, 0xfd, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x36,
+ 0x00, 0x00, 0x03, 0x7a, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x21, 0x11,
+ 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x01, 0x61, 0xfe, 0xd6,
+ 0x02, 0xf9, 0xfe, 0xd6, 0x01, 0x73, 0x05, 0x42, 0x93, 0x93, 0xfb, 0x51,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x7a,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x35,
+ 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x12, 0x01, 0x73, 0xfe, 0xd6, 0x02,
+ 0xf9, 0xfe, 0xd6, 0x01, 0x73, 0x93, 0x04, 0xaf, 0x93, 0x93, 0xfb, 0x51,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x31,
+ 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x11, 0x21,
+ 0x35, 0x21, 0x15, 0x21, 0x02, 0x06, 0xfd, 0xe8, 0x01, 0x73, 0xfe, 0xd6,
+ 0x02, 0xf9, 0xfe, 0xd6, 0x93, 0x04, 0xaf, 0x93, 0x93, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x04, 0x92, 0x05, 0xd5, 0x00, 0x02,
+ 0x00, 0x08, 0x00, 0x00, 0x25, 0x09, 0x01, 0x07, 0x01, 0x33, 0x01, 0x33,
+ 0x15, 0x03, 0x65, 0xfe, 0xdb, 0xfe, 0xdb, 0xe4, 0x01, 0xa1, 0xd0, 0x01,
+ 0x6f, 0x7b, 0x93, 0x04, 0x82, 0xfb, 0x7e, 0x93, 0x05, 0xd5, 0xfa, 0xbe,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x92,
+ 0x05, 0xd5, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x00, 0x25, 0x09, 0x01, 0x05,
+ 0x35, 0x33, 0x01, 0x33, 0x01, 0x33, 0x15, 0x03, 0x65, 0xfe, 0xdb, 0xfe,
+ 0xdb, 0xfe, 0xd3, 0x7b, 0x01, 0x6f, 0xd0, 0x01, 0x6f, 0x7b, 0x93, 0x04,
+ 0x82, 0xfb, 0x7e, 0x93, 0x93, 0x05, 0x42, 0xfa, 0xbe, 0x93, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x4a, 0x05, 0xd5, 0x00, 0x02,
+ 0x00, 0x08, 0x00, 0x00, 0x25, 0x09, 0x01, 0x05, 0x35, 0x33, 0x01, 0x33,
+ 0x01, 0x03, 0x65, 0xfe, 0xdb, 0xfe, 0xdb, 0xfe, 0xd3, 0x7b, 0x01, 0x6f,
+ 0xd0, 0x01, 0xa1, 0x93, 0x04, 0x82, 0xfb, 0x7e, 0x93, 0x93, 0x05, 0x42,
+ 0xfa, 0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xd5, 0x00, 0x1c, 0x00, 0x28, 0x00, 0x00, 0x21, 0x11, 0x26, 0x27,
+ 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x35, 0x21, 0x35, 0x21,
+ 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x15, 0x21,
+ 0x15, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22,
+ 0x06, 0x01, 0xd0, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64, 0x43, 0x49,
+ 0xfe, 0xd6, 0x01, 0xd0, 0x4f, 0x3e, 0x67, 0x77, 0x77, 0x67, 0x42, 0x4b,
+ 0x01, 0xe2, 0xfc, 0x9a, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6,
+ 0x8c, 0x01, 0x86, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56, 0x2f, 0x1f,
+ 0x0b, 0xf3, 0x93, 0xfe, 0x7b, 0x0d, 0x1e, 0x32, 0xa6, 0xc6, 0xa6, 0x31,
+ 0x20, 0x0b, 0xf2, 0x93, 0x03, 0x22, 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70,
+ 0x60, 0x38, 0x38, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xd5, 0x00, 0x1e, 0x00, 0x2a, 0x00, 0x00, 0x23, 0x35, 0x21, 0x35,
+ 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x35, 0x21,
+ 0x35, 0x21, 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07,
+ 0x15, 0x21, 0x15, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e,
+ 0x01, 0x22, 0x06, 0x12, 0x01, 0xe2, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e,
+ 0x64, 0x43, 0x49, 0xfe, 0xd6, 0x01, 0xd0, 0x4f, 0x3e, 0x67, 0x77, 0x77,
+ 0x67, 0x42, 0x4b, 0x01, 0xe2, 0xfc, 0x9a, 0x52, 0x8c, 0xa6, 0x8d, 0x51,
+ 0x51, 0x8d, 0xa6, 0x8c, 0x93, 0xf3, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53,
+ 0x56, 0x2f, 0x1f, 0x0b, 0xf3, 0x93, 0xfe, 0x7b, 0x0d, 0x1e, 0x32, 0xa6,
+ 0xc6, 0xa6, 0x31, 0x20, 0x0b, 0xf2, 0x93, 0x03, 0x22, 0x70, 0x5f, 0x38,
+ 0x38, 0x5f, 0x70, 0x60, 0x38, 0x38, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xe1, 0x05, 0xd5, 0x00, 0x1c, 0x00, 0x28, 0x00, 0x00,
+ 0x23, 0x35, 0x21, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37,
+ 0x36, 0x37, 0x35, 0x21, 0x35, 0x21, 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14,
+ 0x06, 0x07, 0x06, 0x07, 0x11, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01,
+ 0x34, 0x2e, 0x01, 0x22, 0x06, 0x12, 0x01, 0xe2, 0x49, 0x43, 0x67, 0x77,
+ 0x3c, 0x3e, 0x64, 0x43, 0x49, 0xfe, 0xd6, 0x01, 0xd0, 0x4f, 0x3e, 0x67,
+ 0x77, 0x77, 0x67, 0x42, 0x4b, 0xfe, 0x7c, 0x52, 0x8c, 0xa6, 0x8d, 0x51,
+ 0x51, 0x8d, 0xa6, 0x8c, 0x93, 0xf3, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53,
+ 0x56, 0x2f, 0x1f, 0x0b, 0xf3, 0x93, 0xfe, 0x7b, 0x0d, 0x1e, 0x32, 0xa6,
+ 0xc6, 0xa6, 0x31, 0x20, 0x0b, 0xfe, 0x7b, 0x03, 0x22, 0x70, 0x5f, 0x38,
+ 0x38, 0x5f, 0x70, 0x60, 0x38, 0x38, 0x00, 0x00, 0x00, 0x01, 0x00, 0xad,
+ 0x00, 0x00, 0x03, 0xe3, 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x21, 0x11,
+ 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x33, 0x15, 0x02, 0x7e, 0xfe, 0xd6,
+ 0xa6, 0x02, 0x76, 0xbe, 0x05, 0x42, 0xfe, 0xc5, 0x01, 0xce, 0xfa, 0xbe,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0xe3,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x33, 0x15, 0x12, 0x02, 0x90, 0xfe, 0xd6, 0xa6,
+ 0x02, 0x76, 0xbe, 0x93, 0x04, 0xaf, 0xfe, 0xc5, 0x01, 0xce, 0xfa, 0xbe,
+ 0x93, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x24,
+ 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x21, 0x11, 0x12, 0x02, 0x90, 0xfe, 0xd6, 0xa6, 0x02, 0x76,
+ 0x93, 0x04, 0xaf, 0xfe, 0xc5, 0x01, 0xce, 0xfa, 0x2b, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0x00, 0x00, 0x03, 0xe3, 0x04, 0xe6, 0x00, 0x0b,
+ 0x00, 0x00, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11,
+ 0x33, 0x15, 0x02, 0x7e, 0xfe, 0xd6, 0xa6, 0xa6, 0x01, 0xd0, 0xbe, 0x03,
+ 0x4f, 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc, 0xfc, 0xb1, 0x93, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0xe3, 0x04, 0xe6, 0x00, 0x0d,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11,
+ 0x21, 0x11, 0x33, 0x15, 0x12, 0x02, 0x90, 0xfe, 0xd6, 0xa6, 0xa6, 0x01,
+ 0xd0, 0xbe, 0x93, 0x02, 0xbc, 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc, 0xfc,
+ 0xb1, 0x93, 0x00, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x03, 0x24,
+ 0x04, 0xe6, 0x00, 0x0b, 0x00, 0x00, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11,
+ 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x12, 0x02, 0x90, 0xfe, 0xd6, 0xa6,
+ 0xa6, 0x01, 0xd0, 0x93, 0x02, 0xbc, 0xfe, 0xfc, 0x02, 0x9b, 0xfe, 0xfc,
+ 0xfc, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x03, 0xd5,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x15, 0x01, 0x54,
+ 0x01, 0x1c, 0xfe, 0x3e, 0x01, 0xc2, 0xfe, 0x3e, 0x02, 0x67, 0xc0, 0x02,
+ 0xde, 0xfd, 0xb5, 0x02, 0x4b, 0xfd, 0x22, 0x03, 0x71, 0x01, 0xd1, 0x93,
+ 0xfa, 0xbe, 0x93, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xd5,
+ 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11,
+ 0x01, 0x35, 0x33, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x15,
+ 0x01, 0x54, 0x01, 0x1c, 0xfd, 0x7e, 0xc0, 0x01, 0xc2, 0xfe, 0x3e, 0x02,
+ 0x67, 0xc0, 0x02, 0xde, 0xfd, 0xb5, 0x02, 0x4b, 0xfd, 0x22, 0x93, 0x02,
+ 0xde, 0x01, 0xd1, 0x93, 0xfa, 0xbe, 0x93, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0x16, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00,
+ 0x01, 0x11, 0x21, 0x11, 0x01, 0x35, 0x33, 0x11, 0x21, 0x11, 0x21, 0x35,
+ 0x21, 0x11, 0x01, 0x54, 0x01, 0x1c, 0xfd, 0x7e, 0xc0, 0x01, 0xc2, 0xfe,
+ 0x3e, 0x02, 0x67, 0x02, 0xde, 0xfd, 0xb5, 0x02, 0x4b, 0xfd, 0x22, 0x93,
+ 0x02, 0xde, 0x01, 0xd1, 0x93, 0xfa, 0x2b, 0x00, 0x00, 0x02, 0x00, 0x65,
+ 0x00, 0x00, 0x04, 0x59, 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x26, 0x00, 0x00,
+ 0x12, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06,
+ 0x13, 0x11, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x11, 0x33, 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07,
+ 0x15, 0x21, 0x15, 0xf2, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6,
+ 0x8c, 0x8c, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64, 0x43, 0x49, 0xa6,
+ 0x4f, 0x3e, 0x67, 0x77, 0x77, 0x67, 0x42, 0x4b, 0x01, 0xe2, 0x03, 0x22,
+ 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70, 0x60, 0x38, 0x38, 0xfc, 0x7e, 0x01,
+ 0x86, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56, 0x2f, 0x1f, 0x0b, 0x01,
+ 0x86, 0xfe, 0x7b, 0x0d, 0x1e, 0x32, 0xa6, 0xc6, 0xa6, 0x31, 0x20, 0x0b,
+ 0xf2, 0x93, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x28, 0x00, 0x00, 0x12, 0x14, 0x1e, 0x01,
+ 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x01, 0x15, 0x21, 0x35,
+ 0x21, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x11, 0x33, 0x11, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07,
+ 0x15, 0xf2, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6, 0x8c, 0x03,
+ 0x14, 0xfb, 0x96, 0x01, 0xe2, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64,
+ 0x43, 0x49, 0xa6, 0x4f, 0x3e, 0x67, 0x77, 0x77, 0x67, 0x42, 0x4b, 0x03,
+ 0x22, 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70, 0x60, 0x38, 0x38, 0xfd, 0x11,
+ 0x93, 0x93, 0xf3, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56, 0x2f, 0x1f,
+ 0x0b, 0x01, 0x86, 0xfe, 0x7b, 0x0d, 0x1e, 0x32, 0xa6, 0xc6, 0xa6, 0x31,
+ 0x20, 0x0b, 0xf2, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xe1,
+ 0x05, 0xd5, 0x00, 0x0b, 0x00, 0x26, 0x00, 0x00, 0x12, 0x14, 0x1e, 0x01,
+ 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x13, 0x35, 0x26, 0x27,
+ 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x11, 0x33, 0x11, 0x16,
+ 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x11, 0x21, 0x35, 0xf2,
+ 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6, 0x8c, 0x8c, 0x49, 0x43,
+ 0x67, 0x77, 0x3c, 0x3e, 0x64, 0x43, 0x49, 0xa6, 0x4f, 0x3e, 0x67, 0x77,
+ 0x77, 0x67, 0x42, 0x4b, 0xfd, 0x78, 0x03, 0x22, 0x70, 0x5f, 0x38, 0x38,
+ 0x5f, 0x70, 0x60, 0x38, 0x38, 0xfd, 0x11, 0xf3, 0x0b, 0x1f, 0x31, 0xa6,
+ 0xc6, 0x53, 0x56, 0x2f, 0x1f, 0x0b, 0x01, 0x86, 0xfe, 0x7b, 0x0d, 0x1e,
+ 0x32, 0xa6, 0xc6, 0xa6, 0x31, 0x20, 0x0b, 0xfe, 0x7b, 0x93, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x65, 0x00, 0x00, 0x04, 0x59, 0x05, 0xd5, 0x00, 0x1e,
+ 0x00, 0x2a, 0x00, 0x00, 0x21, 0x11, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x36, 0x37, 0x35, 0x21, 0x35, 0x21, 0x15, 0x21, 0x15, 0x16,
+ 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x15, 0x21, 0x15, 0x00,
+ 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x01,
+ 0xd0, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64, 0x43, 0x49, 0xfe, 0xd6,
+ 0x02, 0xfa, 0xfe, 0xd6, 0x4f, 0x3e, 0x67, 0x77, 0x77, 0x67, 0x42, 0x4b,
+ 0x01, 0xe2, 0xfc, 0x9a, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6,
+ 0x8c, 0x01, 0x86, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56, 0x2f, 0x1f,
+ 0x0b, 0xf3, 0x93, 0x93, 0xf2, 0x0d, 0x1e, 0x32, 0xa6, 0xc6, 0xa6, 0x31,
+ 0x20, 0x0b, 0xf2, 0x93, 0x03, 0x22, 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70,
+ 0x60, 0x38, 0x38, 0x00, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x59,
+ 0x05, 0xd5, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x00, 0x25, 0x15, 0x21, 0x35,
+ 0x21, 0x35, 0x26, 0x27, 0x2e, 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37,
+ 0x35, 0x21, 0x35, 0x21, 0x15, 0x21, 0x15, 0x16, 0x17, 0x1e, 0x01, 0x14,
+ 0x06, 0x07, 0x06, 0x07, 0x15, 0x00, 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01,
+ 0x34, 0x2e, 0x01, 0x22, 0x06, 0x04, 0x58, 0xfb, 0x96, 0x01, 0xe2, 0x49,
+ 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64, 0x43, 0x49, 0xfe, 0xd6, 0x02, 0xfa,
+ 0xfe, 0xd6, 0x4f, 0x3e, 0x67, 0x77, 0x77, 0x67, 0x42, 0x4b, 0xfe, 0x7c,
+ 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51, 0x8d, 0xa6, 0x8c, 0x93, 0x93, 0x93,
+ 0xf3, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56, 0x2f, 0x1f, 0x0b, 0xf3,
+ 0x93, 0x93, 0xf2, 0x0d, 0x1e, 0x32, 0xa6, 0xc6, 0xa6, 0x31, 0x20, 0x0b,
+ 0xf2, 0x02, 0x8f, 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70, 0x60, 0x38, 0x38,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0xe1, 0x05, 0xd5, 0x00, 0x1e,
+ 0x00, 0x2a, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x35, 0x26, 0x27, 0x2e,
+ 0x01, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x35, 0x21, 0x35, 0x21, 0x15,
+ 0x21, 0x15, 0x16, 0x17, 0x1e, 0x01, 0x14, 0x06, 0x07, 0x06, 0x07, 0x00,
+ 0x14, 0x1e, 0x01, 0x32, 0x3e, 0x01, 0x34, 0x2e, 0x01, 0x22, 0x06, 0x02,
+ 0x76, 0xfd, 0x78, 0x01, 0xe2, 0x49, 0x43, 0x67, 0x77, 0x3c, 0x3e, 0x64,
+ 0x43, 0x49, 0xfe, 0xd6, 0x02, 0xfa, 0xfe, 0xd6, 0x4f, 0x3e, 0x67, 0x77,
+ 0x77, 0x67, 0x42, 0x4b, 0xfe, 0x7c, 0x52, 0x8c, 0xa6, 0x8d, 0x51, 0x51,
+ 0x8d, 0xa6, 0x8c, 0x93, 0xf3, 0x0b, 0x1f, 0x31, 0xa6, 0xc6, 0x53, 0x56,
+ 0x2f, 0x1f, 0x0b, 0xf3, 0x93, 0x93, 0xf2, 0x0d, 0x1e, 0x32, 0xa6, 0xc6,
+ 0xa6, 0x31, 0x20, 0x0b, 0x01, 0x9d, 0x70, 0x5f, 0x38, 0x38, 0x5f, 0x70,
+ 0x60, 0x38, 0x38, 0x00, 0xff, 0xff, 0xfd, 0x3a, 0x03, 0xfb, 0xff, 0x28,
+ 0x06, 0x20, 0x10, 0x07, 0x02, 0x9c, 0xfc, 0x65, 0xff, 0x1a, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0xca, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdd, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x01,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb3, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb3, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb3, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0x99, 0x02, 0x86, 0x05, 0xdc, 0x05, 0xd5, 0x12, 0x27,
+ 0x0b, 0xb4, 0x00, 0x00, 0x02, 0x86, 0x10, 0x27, 0x0b, 0xb4, 0x00, 0x00,
+ 0x03, 0xc9, 0x10, 0x07, 0x0b, 0xb4, 0x00, 0x00, 0x05, 0x0d, 0x00, 0x00,
+ 0x00, 0x01, 0x01, 0x6e, 0x05, 0x18, 0x04, 0x99, 0x05, 0xe0, 0x00, 0x0b,
+ 0x00, 0x00, 0x01, 0x07, 0x23, 0x27, 0x23, 0x07, 0x23, 0x27, 0x23, 0x07,
+ 0x23, 0x27, 0x04, 0x98, 0x5a, 0x2d, 0x2d, 0x9d, 0x2d, 0x2d, 0x2d, 0x9e,
+ 0x2d, 0x2d, 0x5a, 0x05, 0xe0, 0xc8, 0x64, 0x64, 0x64, 0x64, 0xc8, 0x00,
+ 0x00, 0x01, 0x00, 0xb4, 0xfe, 0x56, 0x05, 0x63, 0x05, 0xd5, 0x00, 0x0e,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x01, 0x23, 0x11, 0x33, 0x11, 0x01, 0x33,
+ 0x11, 0x33, 0x15, 0x01, 0x23, 0x04, 0xae, 0xb0, 0xfd, 0xac, 0xf5, 0xb0,
+ 0x02, 0x54, 0xf5, 0xb5, 0xfe, 0xb6, 0x78, 0x04, 0xe1, 0xfb, 0x1f, 0x05,
+ 0xd5, 0xfb, 0x1f, 0x04, 0xe1, 0xfa, 0xd5, 0xaa, 0xfe, 0x56, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xad, 0xfe, 0x56, 0x04, 0xb3, 0x04, 0x60, 0x00, 0x0e,
+ 0x00, 0x00, 0x21, 0x23, 0x11, 0x01, 0x23, 0x11, 0x33, 0x11, 0x01, 0x33,
+ 0x11, 0x33, 0x15, 0x01, 0x23, 0x04, 0x0d, 0xa5, 0xfe, 0x1a, 0xd4, 0xa4,
+ 0x01, 0xe6, 0xd5, 0xa5, 0xfe, 0xfb, 0x6e, 0x03, 0x83, 0xfc, 0x7d, 0x04,
+ 0x60, 0xfc, 0x7f, 0x03, 0x81, 0xfc, 0x39, 0x99, 0xfe, 0x56, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x9c, 0xfe, 0x56, 0x03, 0xe9, 0x04, 0x7b, 0x00, 0x1f,
+ 0x00, 0x20, 0x00, 0x00, 0x25, 0x35, 0x0e, 0x01, 0x23, 0x22, 0x26, 0x35,
+ 0x11, 0x33, 0x11, 0x14, 0x16, 0x33, 0x32, 0x36, 0x35, 0x11, 0x33, 0x11,
+ 0x10, 0x02, 0x23, 0x22, 0x26, 0x27, 0x35, 0x1e, 0x01, 0x33, 0x32, 0x36,
+ 0x01, 0x03, 0x43, 0x3c, 0x9f, 0x6a, 0xad, 0xb4, 0xa5, 0x70, 0x6f, 0x87,
+ 0x9b, 0xa6, 0xe5, 0xec, 0x57, 0x9b, 0x49, 0x49, 0x8e, 0x4a, 0xa3, 0xa2,
+ 0xfe, 0xfa, 0x6a, 0x42, 0x66, 0x63, 0xf0, 0xe7, 0x02, 0xa6, 0xfd, 0x61,
+ 0x9f, 0x9f, 0xbe, 0xa4, 0x02, 0x7b, 0xfc, 0x2b, 0xfe, 0xe2, 0xfe, 0xe9,
+ 0x1d, 0x1e, 0xb3, 0x2c, 0x2a, 0xbd, 0x04, 0xd0, 0x00, 0x03, 0x00, 0x70,
+ 0xfe, 0x90, 0x03, 0xda, 0x03, 0x52, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x38,
+ 0x00, 0x00, 0x01, 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x35, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x03,
+ 0x34, 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01,
+ 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x01,
+ 0xeb, 0x33, 0xa4, 0xcd, 0x57, 0x4a, 0x49, 0x4a, 0x28, 0x59, 0x44, 0x76,
+ 0x84, 0x57, 0x54, 0xba, 0x29, 0x29, 0x5c, 0x5d, 0x68, 0x4c, 0x1d, 0x1f,
+ 0x9b, 0x1f, 0x07, 0x08, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a, 0x32,
+ 0x6e, 0x39, 0x39, 0xa6, 0x39, 0x39, 0x39, 0x39, 0xa6, 0x39, 0x02, 0x3f,
+ 0x7a, 0x99, 0x4e, 0x89, 0x86, 0x75, 0x49, 0x53, 0x2c, 0xb8, 0x82, 0x80,
+ 0x21, 0x07, 0x26, 0xb8, 0x2a, 0x09, 0x31, 0x70, 0x1b, 0x2a, 0x44, 0xfd,
+ 0xab, 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8,
+ 0x40, 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f, 0x00, 0x02, 0x00, 0x70,
+ 0xfe, 0xa2, 0x03, 0xda, 0x03, 0x52, 0x00, 0x20, 0x00, 0x24, 0x00, 0x00,
+ 0x01, 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x35,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x03, 0x33, 0x15,
+ 0x23, 0x01, 0xeb, 0x33, 0xa4, 0xcd, 0x57, 0x4a, 0x49, 0x4a, 0x28, 0x59,
+ 0x44, 0x76, 0x84, 0x57, 0x54, 0xba, 0x29, 0x29, 0x5c, 0x5d, 0x68, 0x4c,
+ 0x1d, 0x1f, 0x9b, 0x1f, 0x07, 0xa3, 0x88, 0x88, 0x02, 0x3f, 0x7a, 0x99,
+ 0x4e, 0x89, 0x86, 0x75, 0x49, 0x53, 0x2c, 0xb8, 0x82, 0x80, 0x21, 0x07,
+ 0x26, 0xb8, 0x2a, 0x09, 0x31, 0x70, 0x1b, 0x2a, 0x44, 0xfd, 0x77, 0x96,
+ 0x00, 0x04, 0x00, 0x70, 0xfe, 0xa2, 0x03, 0xda, 0x05, 0xf7, 0x00, 0x20,
+ 0x00, 0x2b, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x00, 0x01, 0x26, 0x27, 0x33,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x35, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x34, 0x03, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34,
+ 0x27, 0x26, 0x07, 0x06, 0x17, 0x2b, 0x01, 0x35, 0x33, 0x11, 0x33, 0x11,
+ 0x36, 0x37, 0x36, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x03, 0x33, 0x15,
+ 0x23, 0x01, 0xeb, 0x33, 0xa4, 0xcd, 0x57, 0x4a, 0x49, 0x4a, 0x28, 0x59,
+ 0x44, 0x76, 0x84, 0x57, 0x54, 0xba, 0x29, 0x29, 0x5c, 0x5d, 0x68, 0x4c,
+ 0x1d, 0x1f, 0x9b, 0x1f, 0x07, 0xba, 0x32, 0x46, 0x14, 0x2f, 0x1b, 0x01,
+ 0x40, 0x2e, 0x15, 0x9d, 0x65, 0x49, 0x5c, 0x20, 0x5e, 0x38, 0x3f, 0x3b,
+ 0x3a, 0x30, 0x98, 0x88, 0x88, 0x02, 0x3f, 0x7a, 0x99, 0x4e, 0x89, 0x86,
+ 0x75, 0x49, 0x53, 0x2c, 0xb8, 0x82, 0x80, 0x21, 0x07, 0x26, 0xb8, 0x2a,
+ 0x09, 0x31, 0x70, 0x1b, 0x2a, 0x44, 0x02, 0xa7, 0x0d, 0x21, 0x15, 0x20,
+ 0x10, 0x01, 0x1c, 0x15, 0xa8, 0x65, 0x01, 0x8f, 0xfe, 0xbf, 0x49, 0x28,
+ 0x18, 0x1a, 0x19, 0x52, 0x5b, 0x32, 0x2a, 0xfb, 0x35, 0x96, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x70, 0xff, 0xda, 0x03, 0xda, 0x05, 0x78, 0x00, 0x20,
+ 0x00, 0x24, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x26, 0x27, 0x33,
+ 0x16, 0x17, 0x16, 0x15, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x35, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x37, 0x36, 0x35, 0x34, 0x03, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15,
+ 0x23, 0x27, 0x33, 0x15, 0x23, 0x01, 0xeb, 0x33, 0xa4, 0xcd, 0x57, 0x4a,
+ 0x49, 0x4a, 0x28, 0x59, 0x44, 0x76, 0x84, 0x57, 0x54, 0xba, 0x29, 0x29,
+ 0x5c, 0x5d, 0x68, 0x4c, 0x1d, 0x1f, 0x9b, 0x1f, 0x07, 0xcf, 0x86, 0x86,
+ 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x02, 0x3f, 0x7a, 0x99, 0x4e, 0x89,
+ 0x86, 0x75, 0x49, 0x53, 0x2c, 0xb8, 0x82, 0x80, 0x21, 0x07, 0x26, 0xb8,
+ 0x2a, 0x09, 0x31, 0x70, 0x1b, 0x2a, 0x44, 0x02, 0xbd, 0x96, 0x01, 0x90,
+ 0x96, 0x96, 0x96, 0x00, 0x00, 0x05, 0x00, 0x70, 0xff, 0xda, 0x03, 0xda,
+ 0x05, 0xaa, 0x00, 0x20, 0x00, 0x24, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x15, 0x14, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x35, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x03,
+ 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x07, 0x33, 0x15, 0x23, 0x11,
+ 0x33, 0x15, 0x23, 0x01, 0xeb, 0x33, 0xa4, 0xcd, 0x57, 0x4a, 0x49, 0x4a,
+ 0x28, 0x59, 0x44, 0x76, 0x84, 0x57, 0x54, 0xba, 0x29, 0x29, 0x5c, 0x5d,
+ 0x68, 0x4c, 0x1d, 0x1f, 0x9b, 0x1f, 0x07, 0x5f, 0x87, 0x87, 0x87, 0x87,
+ 0xe1, 0x87, 0x87, 0x87, 0x87, 0x02, 0x3f, 0x7a, 0x99, 0x4e, 0x89, 0x86,
+ 0x75, 0x49, 0x53, 0x2c, 0xb8, 0x82, 0x80, 0x21, 0x07, 0x26, 0xb8, 0x2a,
+ 0x09, 0x31, 0x70, 0x1b, 0x2a, 0x44, 0x02, 0xef, 0x96, 0x01, 0x90, 0x96,
+ 0x64, 0x96, 0x01, 0x90, 0x96, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xb3,
+ 0xfe, 0x0c, 0x04, 0x0b, 0x02, 0x26, 0x00, 0x18, 0x00, 0x24, 0x00, 0x30,
+ 0x00, 0x00, 0x01, 0x33, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x02, 0x07, 0x04, 0x21, 0x35, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x13, 0x34, 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37,
+ 0x36, 0x32, 0x17, 0x02, 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26, 0x5b,
+ 0x43, 0x75, 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01, 0x11,
+ 0xb7, 0xc4, 0x20, 0x08, 0xd0, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a,
+ 0x32, 0x6e, 0x38, 0x3a, 0xa6, 0x38, 0x3a, 0x3a, 0x38, 0xa6, 0x3a, 0x02,
+ 0x26, 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8, 0x3e, 0xfe, 0xea, 0x85, 0x97,
+ 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e, 0xfd, 0x4a, 0x28, 0x1c, 0x1d,
+ 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40,
+ 0xb8, 0x40, 0x3f, 0x3f, 0x00, 0x02, 0xff, 0xb3, 0xfe, 0x0c, 0x04, 0x0b,
+ 0x02, 0x26, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x00, 0x01, 0x33, 0x16, 0x17,
+ 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x02, 0x07, 0x04,
+ 0x21, 0x35, 0x20, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x13, 0x33, 0x15,
+ 0x23, 0x02, 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26, 0x5b, 0x43, 0x75,
+ 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01, 0x11, 0xb7, 0xc4,
+ 0x20, 0x08, 0x7a, 0x87, 0x87, 0x02, 0x26, 0x70, 0x1e, 0x67, 0x4d, 0x2c,
+ 0xb8, 0x3e, 0xfe, 0xea, 0x85, 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48,
+ 0x7e, 0xfd, 0x40, 0x96, 0x00, 0x03, 0xff, 0xb3, 0xfe, 0x0c, 0x04, 0x0b,
+ 0x02, 0x26, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x01, 0x33,
+ 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x02,
+ 0x07, 0x04, 0x21, 0x35, 0x20, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x05,
+ 0x33, 0x15, 0x23, 0x01, 0x33, 0x15, 0x23, 0x02, 0x39, 0xa5, 0x1b, 0x03,
+ 0x09, 0x42, 0x26, 0x5b, 0x43, 0x75, 0x75, 0x2d, 0x3d, 0xe2, 0xff, 0x00,
+ 0xfe, 0xdf, 0x01, 0x11, 0xb7, 0xc4, 0x20, 0x08, 0xfe, 0x3a, 0x87, 0x87,
+ 0x02, 0x40, 0x87, 0x87, 0x02, 0x26, 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8,
+ 0x3e, 0xfe, 0xea, 0x85, 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e,
+ 0xe0, 0x96, 0xfe, 0xb6, 0x96, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xb3,
+ 0xfe, 0x0c, 0x04, 0x0b, 0x03, 0xb6, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x20,
+ 0x00, 0x00, 0x01, 0x33, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x02, 0x07, 0x04, 0x21, 0x35, 0x20, 0x37, 0x36, 0x37,
+ 0x36, 0x35, 0x34, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x02,
+ 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26, 0x5b, 0x43, 0x75, 0x75, 0x2d,
+ 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01, 0x11, 0xb7, 0xc4, 0x20, 0x08,
+ 0x3b, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x02, 0x26, 0x70, 0x1e, 0x67, 0x4d,
+ 0x2c, 0xb8, 0x3e, 0xfe, 0xea, 0x85, 0x97, 0xb8, 0x80, 0x8a, 0xd0, 0x3a,
+ 0x48, 0x7e, 0x02, 0x18, 0x96, 0x96, 0x96, 0x00, 0x00, 0x05, 0xff, 0xb3,
+ 0xfe, 0x0c, 0x04, 0x0b, 0x04, 0xb0, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x20,
+ 0x00, 0x24, 0x00, 0x28, 0x00, 0x00, 0x01, 0x33, 0x16, 0x17, 0x16, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x02, 0x07, 0x04, 0x21, 0x35,
+ 0x20, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x13, 0x33, 0x15, 0x23, 0x11,
+ 0x33, 0x15, 0x23, 0x07, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x02,
+ 0x39, 0xa5, 0x1b, 0x03, 0x09, 0x42, 0x26, 0x5b, 0x43, 0x75, 0x75, 0x2d,
+ 0x3d, 0xe2, 0xff, 0x00, 0xfe, 0xdf, 0x01, 0x11, 0xb7, 0xc4, 0x20, 0x08,
+ 0x3b, 0x87, 0x87, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x87, 0x87, 0x02, 0x26,
+ 0x70, 0x1e, 0x67, 0x4d, 0x2c, 0xb8, 0x3e, 0xfe, 0xea, 0x85, 0x97, 0xb8,
+ 0x80, 0x8a, 0xd0, 0x3a, 0x48, 0x7e, 0x02, 0x18, 0x96, 0x01, 0x90, 0x96,
+ 0x64, 0x96, 0x01, 0x90, 0x96, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x75,
+ 0xfe, 0x0c, 0x09, 0x40, 0x03, 0xb6, 0x00, 0x46, 0x00, 0x4a, 0x00, 0x4e,
+ 0x00, 0x00, 0x25, 0x16, 0x37, 0x36, 0x35, 0x33, 0x14, 0x17, 0x16, 0x33,
+ 0x32, 0x19, 0x01, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07,
+ 0x06, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x26, 0x27,
+ 0x26, 0x11, 0x34, 0x37, 0x33, 0x06, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x37, 0x36, 0x27, 0x26, 0x2f, 0x01, 0x33, 0x17, 0x16, 0x17,
+ 0x16, 0x13, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x05, 0x26, 0x46,
+ 0x2b, 0x21, 0xa6, 0x11, 0x3a, 0x63, 0x7f, 0xa6, 0x4b, 0x27, 0x59, 0x44,
+ 0x75, 0x83, 0x6a, 0x3d, 0x62, 0x21, 0x1d, 0x42, 0x2b, 0x7c, 0x10, 0x2c,
+ 0x55, 0x3a, 0x32, 0x7b, 0x24, 0x15, 0x4c, 0x77, 0xae, 0x48, 0x6c, 0x73,
+ 0x63, 0xf7, 0x5f, 0xa5, 0x61, 0x01, 0x01, 0x84, 0x56, 0x48, 0x59, 0x55,
+ 0x6d, 0x55, 0x39, 0x01, 0x01, 0x0e, 0x3a, 0xa6, 0x20, 0x0f, 0x19, 0x34,
+ 0x19, 0x86, 0x86, 0x86, 0x88, 0x88, 0xb5, 0x02, 0x7c, 0x5f, 0xca, 0xcd,
+ 0x32, 0xa9, 0x01, 0x18, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c, 0xb8,
+ 0x60, 0x5b, 0x19, 0x09, 0x19, 0x46, 0x7b, 0x9f, 0x1e, 0x14, 0x02, 0x02,
+ 0x3c, 0xb3, 0x6b, 0xaa, 0x3e, 0x1a, 0x01, 0x1c, 0x47, 0x01, 0x48, 0xf6,
+ 0xb4, 0xce, 0xdc, 0xb3, 0x26, 0x18, 0x25, 0x30, 0x9e, 0x6c, 0x8e, 0x7d,
+ 0x3d, 0xea, 0x9c, 0x4a, 0x3c, 0x7e, 0x02, 0xfe, 0x96, 0xfc, 0x18, 0x96,
+ 0x00, 0x03, 0xff, 0xee, 0xfe, 0xa2, 0x05, 0x70, 0x03, 0xe8, 0x00, 0x31,
+ 0x00, 0x35, 0x00, 0x39, 0x00, 0x00, 0x25, 0x06, 0x07, 0x06, 0x2b, 0x01,
+ 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x35, 0x33, 0x14, 0x17, 0x16, 0x37, 0x36, 0x19,
+ 0x01, 0x33, 0x11, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x01, 0x33, 0x15, 0x23,
+ 0x13, 0x33, 0x15, 0x23, 0x01, 0x5a, 0x27, 0x33, 0x44, 0x59, 0x75, 0x44,
+ 0x59, 0x27, 0x48, 0xa6, 0x27, 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5, 0x11,
+ 0x3a, 0x63, 0x80, 0xa5, 0x52, 0x44, 0x5c, 0x21, 0x20, 0x38, 0x32, 0x7b,
+ 0x10, 0x2b, 0x57, 0x3d, 0x3a, 0x59, 0x41, 0x36, 0x01, 0x3c, 0x86, 0x86,
+ 0x86, 0x88, 0x88, 0x8a, 0x3b, 0x21, 0x2e, 0xb8, 0x2c, 0x50, 0x64, 0xc0,
+ 0x9c, 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32, 0xaa, 0x01, 0x02,
+ 0x01, 0x16, 0x01, 0x26, 0xfe, 0xaa, 0xc7, 0x71, 0x5c, 0x18, 0x09, 0x19,
+ 0x3d, 0x84, 0x9c, 0x21, 0x18, 0x31, 0x28, 0x03, 0xa7, 0x96, 0xfb, 0xe6,
+ 0x96, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xee, 0xfe, 0xa2, 0x06, 0x7f,
+ 0x03, 0xe8, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x00, 0x05, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d,
+ 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x33,
+ 0x14, 0x17, 0x16, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x14, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x01, 0x33, 0x15, 0x23, 0x13,
+ 0x33, 0x15, 0x23, 0x04, 0x7d, 0x21, 0x20, 0x38, 0x32, 0x7b, 0x10, 0x2b,
+ 0x57, 0x3d, 0x3a, 0x59, 0x41, 0x36, 0x24, 0x27, 0x33, 0x44, 0x59, 0x75,
+ 0x44, 0x59, 0x27, 0x48, 0xa6, 0x27, 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5,
+ 0x11, 0x3a, 0x63, 0x80, 0xa5, 0x4b, 0x28, 0x59, 0x43, 0x75, 0x82, 0x6a,
+ 0x3e, 0xfd, 0xdb, 0x86, 0x86, 0x86, 0x88, 0x88, 0x14, 0x09, 0x19, 0x3d,
+ 0x84, 0x9c, 0x21, 0x18, 0x31, 0x28, 0x49, 0x3b, 0x21, 0x2e, 0xb8, 0x2c,
+ 0x50, 0x64, 0xc0, 0x9c, 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32,
+ 0xaa, 0x01, 0x02, 0x01, 0x16, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c,
+ 0xb8, 0x60, 0x5a, 0x03, 0xe2, 0x96, 0xfb, 0xe6, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x75, 0xfe, 0x0c, 0x09, 0x40, 0x02, 0xee, 0x00, 0x46,
+ 0x00, 0x4a, 0x00, 0x4e, 0x00, 0x52, 0x00, 0x00, 0x25, 0x16, 0x37, 0x36,
+ 0x35, 0x33, 0x14, 0x17, 0x16, 0x33, 0x32, 0x19, 0x01, 0x33, 0x11, 0x14,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x27, 0x26, 0x27, 0x06, 0x07,
+ 0x06, 0x07, 0x06, 0x23, 0x26, 0x27, 0x26, 0x11, 0x34, 0x37, 0x33, 0x06,
+ 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x27, 0x26,
+ 0x2f, 0x01, 0x33, 0x17, 0x16, 0x17, 0x16, 0x13, 0x33, 0x15, 0x23, 0x13,
+ 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x05, 0x26, 0x46, 0x2b, 0x21,
+ 0xa6, 0x11, 0x3a, 0x63, 0x7f, 0xa6, 0x4b, 0x27, 0x59, 0x44, 0x75, 0x83,
+ 0x6a, 0x3d, 0x62, 0x21, 0x1d, 0x42, 0x2b, 0x7c, 0x10, 0x2c, 0x55, 0x3a,
+ 0x32, 0x7b, 0x24, 0x15, 0x4c, 0x77, 0xae, 0x48, 0x6c, 0x73, 0x63, 0xf7,
+ 0x5f, 0xa5, 0x61, 0x01, 0x01, 0x84, 0x56, 0x48, 0x59, 0x55, 0x6d, 0x55,
+ 0x39, 0x01, 0x01, 0x0e, 0x3a, 0xa6, 0x20, 0x0f, 0x19, 0x34, 0x9f, 0x88,
+ 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb5, 0x02, 0x7c, 0x5f, 0xca,
+ 0xcd, 0x32, 0xa9, 0x01, 0x18, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c,
+ 0xb8, 0x60, 0x5b, 0x19, 0x09, 0x19, 0x46, 0x7b, 0x9f, 0x1e, 0x14, 0x02,
+ 0x02, 0x3c, 0xb3, 0x6b, 0xaa, 0x3e, 0x1a, 0x01, 0x1c, 0x47, 0x01, 0x48,
+ 0xf6, 0xb4, 0xce, 0xdc, 0xb3, 0x26, 0x18, 0x25, 0x30, 0x9e, 0x6c, 0x8e,
+ 0x7d, 0x3d, 0xea, 0x9c, 0x4a, 0x3c, 0x7e, 0xfd, 0xea, 0x96, 0x01, 0x90,
+ 0x96, 0x96, 0x96, 0x00, 0x00, 0x04, 0xff, 0xee, 0xfe, 0x0c, 0x05, 0x70,
+ 0x02, 0xee, 0x00, 0x31, 0x00, 0x35, 0x00, 0x39, 0x00, 0x3d, 0x00, 0x00,
+ 0x25, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d,
+ 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x33,
+ 0x14, 0x17, 0x16, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x14, 0x07, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x01, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x01, 0x5a, 0x27, 0x33, 0x44, 0x59, 0x75, 0x44, 0x59, 0x27,
+ 0x48, 0xa6, 0x27, 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5, 0x11, 0x3a, 0x63,
+ 0x80, 0xa5, 0x52, 0x44, 0x5c, 0x21, 0x20, 0x38, 0x32, 0x7b, 0x10, 0x2b,
+ 0x57, 0x3d, 0x3a, 0x59, 0x41, 0x36, 0x01, 0xc2, 0x88, 0x88, 0x71, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0x8a, 0x3b, 0x21, 0x2e, 0xb8, 0x2c, 0x50, 0x64,
+ 0xc0, 0x9c, 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32, 0xaa, 0x01,
+ 0x02, 0x01, 0x16, 0x01, 0x26, 0xfe, 0xaa, 0xc7, 0x71, 0x5c, 0x18, 0x09,
+ 0x19, 0x3d, 0x84, 0x9c, 0x21, 0x18, 0x31, 0x28, 0xfe, 0x61, 0x96, 0x01,
+ 0x90, 0x96, 0x96, 0x96, 0x00, 0x04, 0xff, 0xee, 0xfe, 0x0c, 0x06, 0x7f,
+ 0x02, 0xee, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x44, 0x00, 0x00,
+ 0x05, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22,
+ 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x33, 0x14, 0x17, 0x16, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x14,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x01, 0x33, 0x15,
+ 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x04, 0x7d, 0x21,
+ 0x20, 0x38, 0x32, 0x7b, 0x10, 0x2b, 0x57, 0x3d, 0x3a, 0x59, 0x41, 0x36,
+ 0x24, 0x27, 0x33, 0x44, 0x59, 0x75, 0x44, 0x59, 0x27, 0x48, 0xa6, 0x27,
+ 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5, 0x11, 0x3a, 0x63, 0x80, 0xa5, 0x4b,
+ 0x28, 0x59, 0x43, 0x75, 0x82, 0x6a, 0x3e, 0xfe, 0x61, 0x88, 0x88, 0x71,
+ 0x87, 0x87, 0xe1, 0x87, 0x87, 0x14, 0x09, 0x19, 0x3d, 0x84, 0x9c, 0x21,
+ 0x18, 0x31, 0x28, 0x49, 0x3b, 0x21, 0x2e, 0xb8, 0x2c, 0x50, 0x64, 0xc0,
+ 0x9c, 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32, 0xaa, 0x01, 0x02,
+ 0x01, 0x16, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c, 0xb8, 0x60, 0x5a,
+ 0xfe, 0x9c, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x07, 0x00, 0x75,
+ 0xfe, 0x0c, 0x09, 0x40, 0x04, 0xb0, 0x00, 0x46, 0x00, 0x4a, 0x00, 0x4e,
+ 0x00, 0x52, 0x00, 0x56, 0x00, 0x5a, 0x00, 0x5e, 0x00, 0x00, 0x25, 0x16,
+ 0x37, 0x36, 0x35, 0x33, 0x14, 0x17, 0x16, 0x33, 0x32, 0x19, 0x01, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07,
+ 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x27, 0x26, 0x27,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x26, 0x27, 0x26, 0x11, 0x34, 0x37,
+ 0x33, 0x06, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x27, 0x26, 0x2f, 0x01, 0x33, 0x17, 0x16, 0x17, 0x16, 0x13, 0x33, 0x15,
+ 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15,
+ 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x05, 0x26, 0x46,
+ 0x2b, 0x21, 0xa6, 0x11, 0x3a, 0x63, 0x7f, 0xa6, 0x4b, 0x27, 0x59, 0x44,
+ 0x75, 0x83, 0x6a, 0x3d, 0x62, 0x21, 0x1d, 0x42, 0x2b, 0x7c, 0x10, 0x2c,
+ 0x55, 0x3a, 0x32, 0x7b, 0x24, 0x15, 0x4c, 0x77, 0xae, 0x48, 0x6c, 0x73,
+ 0x63, 0xf7, 0x5f, 0xa5, 0x61, 0x01, 0x01, 0x84, 0x56, 0x48, 0x59, 0x55,
+ 0x6d, 0x55, 0x39, 0x01, 0x01, 0x0e, 0x3a, 0xa6, 0x20, 0x0f, 0x19, 0x34,
+ 0x19, 0x86, 0x86, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xf7, 0x88, 0x88,
+ 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb5, 0x02, 0x7c, 0x5f, 0xca, 0xcd,
+ 0x32, 0xa9, 0x01, 0x18, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c, 0xb8,
+ 0x60, 0x5b, 0x19, 0x09, 0x19, 0x46, 0x7b, 0x9f, 0x1e, 0x14, 0x02, 0x02,
+ 0x3c, 0xb3, 0x6b, 0xaa, 0x3e, 0x1a, 0x01, 0x1c, 0x47, 0x01, 0x48, 0xf6,
+ 0xb4, 0xce, 0xdc, 0xb3, 0x26, 0x18, 0x25, 0x30, 0x9e, 0x6c, 0x8e, 0x7d,
+ 0x3d, 0xea, 0x9c, 0x4a, 0x3c, 0x7e, 0x03, 0xf8, 0x96, 0x64, 0x96, 0x96,
+ 0x96, 0xfb, 0x82, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0xff, 0xee, 0xfe, 0x0c, 0x05, 0x70, 0x04, 0xb0, 0x00, 0x31,
+ 0x00, 0x35, 0x00, 0x39, 0x00, 0x3d, 0x00, 0x41, 0x00, 0x45, 0x00, 0x49,
+ 0x00, 0x00, 0x25, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36,
+ 0x35, 0x33, 0x14, 0x17, 0x16, 0x37, 0x36, 0x19, 0x01, 0x33, 0x11, 0x14,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23,
+ 0x27, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23,
+ 0x27, 0x33, 0x15, 0x23, 0x01, 0x5a, 0x27, 0x33, 0x44, 0x59, 0x75, 0x44,
+ 0x59, 0x27, 0x48, 0xa6, 0x27, 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5, 0x11,
+ 0x3a, 0x63, 0x80, 0xa5, 0x52, 0x44, 0x5c, 0x21, 0x20, 0x38, 0x32, 0x7b,
+ 0x10, 0x2b, 0x57, 0x3d, 0x3a, 0x59, 0x41, 0x36, 0x01, 0x3c, 0x86, 0x86,
+ 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xf7, 0x88, 0x88, 0x71, 0x87, 0x87,
+ 0xe1, 0x87, 0x87, 0x8a, 0x3b, 0x21, 0x2e, 0xb8, 0x2c, 0x50, 0x64, 0xc0,
+ 0x9c, 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32, 0xaa, 0x01, 0x02,
+ 0x01, 0x16, 0x01, 0x26, 0xfe, 0xaa, 0xc7, 0x71, 0x5c, 0x18, 0x09, 0x19,
+ 0x3d, 0x84, 0x9c, 0x21, 0x18, 0x31, 0x28, 0x04, 0x6f, 0x96, 0x64, 0x96,
+ 0x96, 0x96, 0xfb, 0x82, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x00,
+ 0x00, 0x07, 0xff, 0xee, 0xfe, 0x0c, 0x06, 0x7f, 0x04, 0xb0, 0x00, 0x38,
+ 0x00, 0x3c, 0x00, 0x40, 0x00, 0x44, 0x00, 0x48, 0x00, 0x4c, 0x00, 0x50,
+ 0x00, 0x00, 0x05, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x33, 0x14, 0x17, 0x16, 0x37, 0x36, 0x19, 0x01, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x01,
+ 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x13,
+ 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x04,
+ 0x7d, 0x21, 0x20, 0x38, 0x32, 0x7b, 0x10, 0x2b, 0x57, 0x3d, 0x3a, 0x59,
+ 0x41, 0x36, 0x24, 0x27, 0x33, 0x44, 0x59, 0x75, 0x44, 0x59, 0x27, 0x48,
+ 0xa6, 0x27, 0x27, 0x5e, 0x62, 0x27, 0x22, 0xa5, 0x11, 0x3a, 0x63, 0x80,
+ 0xa5, 0x4b, 0x28, 0x59, 0x43, 0x75, 0x82, 0x6a, 0x3e, 0xfd, 0xdb, 0x86,
+ 0x86, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xf7, 0x88, 0x88, 0x71, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0x14, 0x09, 0x19, 0x3d, 0x84, 0x9c, 0x21, 0x18,
+ 0x31, 0x28, 0x49, 0x3b, 0x21, 0x2e, 0xb8, 0x2c, 0x50, 0x64, 0xc0, 0x9c,
+ 0x40, 0x64, 0x63, 0x7a, 0x67, 0xc2, 0xcd, 0x32, 0xaa, 0x01, 0x02, 0x01,
+ 0x16, 0x01, 0x26, 0xfe, 0xaa, 0x61, 0x53, 0x2c, 0xb8, 0x60, 0x5a, 0x04,
+ 0xaa, 0x96, 0x64, 0x96, 0x96, 0x96, 0xfb, 0x82, 0x96, 0x01, 0x90, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0x00, 0x04, 0x00, 0x75, 0xfe, 0x0c, 0x08, 0xe5,
+ 0x02, 0xe5, 0x00, 0x3c, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x51, 0x00, 0x00,
+ 0x21, 0x23, 0x22, 0x27, 0x26, 0x35, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x26, 0x27, 0x26, 0x11, 0x34, 0x37, 0x33, 0x06, 0x17, 0x16, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x33, 0x06, 0x17,
+ 0x16, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x17, 0x16, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x2f, 0x01,
+ 0x06, 0x03, 0x22, 0x07, 0x06, 0x07, 0x33, 0x32, 0x37, 0x36, 0x27, 0x26,
+ 0x27, 0x26, 0x01, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x05, 0xd0,
+ 0xf9, 0x22, 0x2f, 0x28, 0x43, 0x4f, 0xd6, 0x48, 0x6c, 0x73, 0x63, 0xf7,
+ 0x5f, 0xa5, 0x61, 0x01, 0x01, 0x84, 0x56, 0x48, 0x5c, 0x52, 0x92, 0x27,
+ 0x1d, 0x23, 0x9a, 0x01, 0x0d, 0x09, 0x24, 0x67, 0x6f, 0x61, 0x85, 0x40,
+ 0x50, 0x70, 0x57, 0xa8, 0x26, 0x0d, 0x0e, 0x37, 0x4a, 0x43, 0x75, 0x76,
+ 0x5d, 0x19, 0xb7, 0x10, 0x45, 0x71, 0x98, 0x82, 0xa8, 0xd6, 0x74, 0xa8,
+ 0x01, 0x02, 0x7b, 0x21, 0xfe, 0xe6, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x1e,
+ 0x1a, 0x10, 0xba, 0x80, 0x9b, 0x4d, 0x1a, 0x01, 0x1c, 0x47, 0x01, 0x48,
+ 0xf6, 0xb4, 0xce, 0xdc, 0xb3, 0x26, 0x18, 0x25, 0x44, 0x8a, 0x6c, 0x7f,
+ 0x93, 0x8a, 0x0f, 0x37, 0x28, 0x32, 0x92, 0x6c, 0x5e, 0x46, 0x22, 0x01,
+ 0x02, 0x25, 0x47, 0xe9, 0x4d, 0x46, 0x0c, 0x0b, 0x2c, 0xb8, 0x5c, 0x1a,
+ 0x76, 0x02, 0x37, 0x51, 0x6c, 0xc2, 0x3f, 0x5b, 0x46, 0x87, 0x13, 0x05,
+ 0xfd, 0x01, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee,
+ 0xfe, 0xa2, 0x05, 0x94, 0x02, 0xe5, 0x00, 0x0c, 0x00, 0x2e, 0x00, 0x32,
+ 0x00, 0x36, 0x00, 0x00, 0x01, 0x06, 0x07, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x26, 0x23, 0x22, 0x03, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14,
+ 0x16, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x05, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03,
+ 0x6e, 0x97, 0x82, 0xa8, 0xd6, 0x73, 0xa8, 0x7d, 0x21, 0x2c, 0x44, 0xa8,
+ 0xf8, 0x43, 0x46, 0x3a, 0x23, 0x5c, 0x9b, 0x75, 0x44, 0x59, 0x27, 0x48,
+ 0xa6, 0x10, 0x28, 0x5b, 0x56, 0x89, 0x82, 0x44, 0x4c, 0x68, 0x60, 0xa7,
+ 0xa5, 0xb6, 0xfe, 0xc5, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x01, 0xe6, 0x6c,
+ 0xc2, 0x3f, 0x5b, 0x46, 0x87, 0x13, 0x05, 0xfd, 0xc9, 0x2a, 0x23, 0x3d,
+ 0x8a, 0xb8, 0x2c, 0x50, 0x64, 0x72, 0x4e, 0x18, 0x50, 0x32, 0x86, 0x54,
+ 0x89, 0x3f, 0x21, 0x27, 0x44, 0xec, 0xa9, 0x6d, 0x78, 0xc8, 0x96, 0x96,
+ 0x96, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee, 0xfe, 0xa2, 0x06, 0x51,
+ 0x02, 0xe5, 0x00, 0x2b, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x00,
+ 0x21, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32,
+ 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x16, 0x17, 0x36, 0x37, 0x36,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x2f, 0x01, 0x06, 0x03, 0x06, 0x07, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x03, 0x33, 0x15,
+ 0x23, 0x27, 0x33, 0x15, 0x23, 0x03, 0x3c, 0xfc, 0x43, 0x46, 0x3a, 0x23,
+ 0x5c, 0x9b, 0x75, 0x44, 0x59, 0x27, 0x48, 0xa6, 0x10, 0x28, 0x5b, 0x56,
+ 0x89, 0x82, 0x44, 0x4c, 0x66, 0x62, 0xab, 0x26, 0x0d, 0x0e, 0x37, 0x4a,
+ 0x43, 0x75, 0x75, 0x5d, 0x19, 0xb8, 0xca, 0x97, 0x82, 0xa8, 0xd6, 0x73,
+ 0xa8, 0x7d, 0x21, 0x2c, 0x44, 0xe3, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x2a,
+ 0x23, 0x3d, 0x8a, 0xb8, 0x2c, 0x50, 0x64, 0x72, 0x4e, 0x18, 0x50, 0x32,
+ 0x86, 0x54, 0x89, 0x3f, 0x21, 0x27, 0x44, 0xec, 0x4b, 0x48, 0x0c, 0x0b,
+ 0x2c, 0xb8, 0x5c, 0x1a, 0x76, 0x01, 0xe6, 0x6c, 0xc2, 0x3f, 0x5b, 0x46,
+ 0x87, 0x13, 0x05, 0xfd, 0x01, 0x96, 0x96, 0x96, 0x00, 0x05, 0x00, 0x75,
+ 0xfe, 0x0c, 0x08, 0xe5, 0x04, 0xb0, 0x00, 0x3c, 0x00, 0x49, 0x00, 0x4d,
+ 0x00, 0x51, 0x00, 0x55, 0x00, 0x00, 0x21, 0x23, 0x22, 0x27, 0x26, 0x35,
+ 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x26, 0x27, 0x26, 0x11, 0x34, 0x37,
+ 0x33, 0x06, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x33, 0x06, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x37,
+ 0x36, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x17, 0x16, 0x3b,
+ 0x01, 0x15, 0x23, 0x22, 0x2f, 0x01, 0x06, 0x03, 0x22, 0x07, 0x06, 0x07,
+ 0x33, 0x32, 0x37, 0x36, 0x27, 0x26, 0x27, 0x26, 0x01, 0x33, 0x15, 0x23,
+ 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x05, 0xd0, 0xf9, 0x22,
+ 0x2f, 0x28, 0x43, 0x4f, 0xd6, 0x48, 0x6c, 0x73, 0x63, 0xf7, 0x5f, 0xa5,
+ 0x61, 0x01, 0x01, 0x84, 0x56, 0x48, 0x5c, 0x52, 0x92, 0x27, 0x1d, 0x23,
+ 0x9a, 0x01, 0x0d, 0x09, 0x24, 0x67, 0x6f, 0x61, 0x85, 0x40, 0x50, 0x70,
+ 0x57, 0xa8, 0x26, 0x0d, 0x0e, 0x37, 0x4a, 0x43, 0x75, 0x76, 0x5d, 0x19,
+ 0xb7, 0x10, 0x45, 0x71, 0x98, 0x82, 0xa8, 0xd6, 0x74, 0xa8, 0x01, 0x02,
+ 0x7b, 0x21, 0xfd, 0x95, 0x86, 0x86, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87,
+ 0x1e, 0x1a, 0x10, 0xba, 0x80, 0x9b, 0x4d, 0x1a, 0x01, 0x1c, 0x47, 0x01,
+ 0x48, 0xf6, 0xb4, 0xce, 0xdc, 0xb3, 0x26, 0x18, 0x25, 0x44, 0x8a, 0x6c,
+ 0x7f, 0x93, 0x8a, 0x0f, 0x37, 0x28, 0x32, 0x92, 0x6c, 0x5e, 0x46, 0x22,
+ 0x01, 0x02, 0x25, 0x47, 0xe9, 0x4d, 0x46, 0x0c, 0x0b, 0x2c, 0xb8, 0x5c,
+ 0x1a, 0x76, 0x02, 0x37, 0x51, 0x6c, 0xc2, 0x3f, 0x5b, 0x46, 0x87, 0x13,
+ 0x05, 0x02, 0x79, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x05, 0xff, 0xee,
+ 0x00, 0x00, 0x05, 0x94, 0x04, 0xb0, 0x00, 0x0c, 0x00, 0x2e, 0x00, 0x32,
+ 0x00, 0x36, 0x00, 0x3a, 0x00, 0x00, 0x01, 0x06, 0x07, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x03, 0x23, 0x22, 0x27, 0x26,
+ 0x27, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33,
+ 0x15, 0x14, 0x16, 0x17, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15,
+ 0x23, 0x27, 0x33, 0x15, 0x23, 0x03, 0x6e, 0x97, 0x82, 0xa8, 0xd6, 0x73,
+ 0xa8, 0x7d, 0x21, 0x2c, 0x44, 0xa8, 0xf8, 0x43, 0x46, 0x3a, 0x23, 0x5c,
+ 0x9b, 0x75, 0x44, 0x59, 0x27, 0x48, 0xa6, 0x10, 0x28, 0x5b, 0x56, 0x89,
+ 0x82, 0x44, 0x4c, 0x68, 0x60, 0xa7, 0xa5, 0xb6, 0xfd, 0xa0, 0x88, 0x88,
+ 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x01, 0xe6, 0x6c, 0xc2, 0x3f, 0x5b,
+ 0x46, 0x87, 0x13, 0x05, 0xfd, 0xc9, 0x2a, 0x23, 0x3d, 0x8a, 0xb8, 0x2c,
+ 0x50, 0x64, 0x72, 0x4e, 0x18, 0x50, 0x32, 0x86, 0x54, 0x89, 0x3f, 0x21,
+ 0x27, 0x44, 0xec, 0xa9, 0x6d, 0x78, 0x04, 0xb0, 0x96, 0x64, 0x96, 0x96,
+ 0x96, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xee, 0x00, 0x00, 0x06, 0x51,
+ 0x04, 0xb0, 0x00, 0x2b, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x40, 0x00, 0x44,
+ 0x00, 0x00, 0x21, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x2b, 0x01, 0x35,
+ 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x16, 0x17, 0x36,
+ 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x2f, 0x01, 0x06, 0x03, 0x06,
+ 0x07, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x01,
+ 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03,
+ 0x3c, 0xfc, 0x43, 0x46, 0x3a, 0x23, 0x5c, 0x9b, 0x75, 0x44, 0x59, 0x27,
+ 0x48, 0xa6, 0x10, 0x28, 0x5b, 0x56, 0x89, 0x82, 0x44, 0x4c, 0x66, 0x62,
+ 0xab, 0x26, 0x0d, 0x0e, 0x37, 0x4a, 0x43, 0x75, 0x75, 0x5d, 0x19, 0xb8,
+ 0xca, 0x97, 0x82, 0xa8, 0xd6, 0x73, 0xa8, 0x7d, 0x21, 0x2c, 0x44, 0xfd,
+ 0xf8, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x2a, 0x23, 0x3d,
+ 0x8a, 0xb8, 0x2c, 0x50, 0x64, 0x72, 0x4e, 0x18, 0x50, 0x32, 0x86, 0x54,
+ 0x89, 0x3f, 0x21, 0x27, 0x44, 0xec, 0x4b, 0x48, 0x0c, 0x0b, 0x2c, 0xb8,
+ 0x5c, 0x1a, 0x76, 0x01, 0xe6, 0x6c, 0xc2, 0x3f, 0x5b, 0x46, 0x87, 0x13,
+ 0x05, 0x02, 0x79, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x05, 0x00, 0x81,
+ 0x00, 0x00, 0x06, 0xe8, 0x06, 0x14, 0x00, 0x1c, 0x00, 0x29, 0x00, 0x2d,
+ 0x00, 0x31, 0x00, 0x35, 0x00, 0x00, 0x29, 0x02, 0x35, 0x21, 0x11, 0x33,
+ 0x11, 0x12, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x2f, 0x01, 0x06, 0x25, 0x33,
+ 0x32, 0x37, 0x36, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x13,
+ 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03,
+ 0xd3, 0xfd, 0xf9, 0xfe, 0xb6, 0x01, 0x4a, 0xa6, 0xc3, 0xf8, 0x53, 0x3d,
+ 0x69, 0x5f, 0xa9, 0x26, 0x0d, 0x0e, 0x37, 0x4a, 0x44, 0x75, 0x76, 0x5d,
+ 0x19, 0xb8, 0xfe, 0x1f, 0xa8, 0xd5, 0x74, 0xa9, 0x01, 0x02, 0x7b, 0x22,
+ 0x2b, 0x48, 0x6e, 0x9f, 0x32, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87,
+ 0x87, 0xb8, 0x05, 0x5c, 0xfb, 0x0e, 0x01, 0x3f, 0x63, 0x21, 0x27, 0x45,
+ 0xeb, 0x4d, 0x46, 0x0c, 0x0b, 0x2c, 0xb8, 0x5c, 0x1a, 0x76, 0xb8, 0x3f,
+ 0x5d, 0x44, 0x87, 0x13, 0x05, 0x51, 0x78, 0x03, 0x74, 0x96, 0x64, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0x00, 0x05, 0xff, 0xee, 0x00, 0x00, 0x05, 0x3f,
+ 0x06, 0x14, 0x00, 0x0c, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b,
+ 0x00, 0x00, 0x25, 0x33, 0x32, 0x37, 0x36, 0x27, 0x26, 0x27, 0x26, 0x23,
+ 0x22, 0x07, 0x06, 0x13, 0x21, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x12,
+ 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x33,
+ 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x02, 0x00,
+ 0xa8, 0xd6, 0x74, 0xa8, 0x01, 0x02, 0x7b, 0x21, 0x2b, 0x48, 0x6e, 0xa0,
+ 0x6a, 0xfd, 0xfa, 0xf0, 0xf0, 0xa6, 0xc3, 0xf9, 0x52, 0x3e, 0x69, 0x5e,
+ 0xa8, 0xa6, 0xb6, 0xfe, 0xca, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1, 0x87,
+ 0x87, 0xb8, 0x3f, 0x5d, 0x44, 0x87, 0x13, 0x05, 0x51, 0x78, 0xfe, 0x92,
+ 0xb8, 0x05, 0x5c, 0xfb, 0x0e, 0x01, 0x3f, 0x63, 0x21, 0x27, 0x45, 0xeb,
+ 0xa9, 0x6d, 0x78, 0x04, 0xe2, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00,
+ 0x00, 0x05, 0xff, 0xee, 0x00, 0x00, 0x05, 0xfa, 0x06, 0x14, 0x00, 0x1c,
+ 0x00, 0x29, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x00, 0x29, 0x01,
+ 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x12, 0x37, 0x36, 0x33, 0x32, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22,
+ 0x2f, 0x01, 0x06, 0x25, 0x33, 0x32, 0x37, 0x36, 0x27, 0x26, 0x27, 0x26,
+ 0x23, 0x22, 0x07, 0x06, 0x13, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23,
+ 0x27, 0x33, 0x15, 0x23, 0x02, 0xe6, 0xfd, 0xf8, 0xf0, 0xf0, 0xa6, 0xc3,
+ 0xf9, 0x52, 0x3e, 0x69, 0x5e, 0xaa, 0x26, 0x0c, 0x0f, 0x37, 0x49, 0x44,
+ 0x75, 0x76, 0x5d, 0x19, 0xb7, 0xfe, 0x1e, 0xa8, 0xd6, 0x74, 0xa8, 0x01,
+ 0x02, 0x7b, 0x21, 0x2b, 0x48, 0x6e, 0xa0, 0x33, 0x87, 0x87, 0x70, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0xb8, 0x05, 0x5c, 0xfb, 0x0e, 0x01, 0x3f, 0x63,
+ 0x21, 0x27, 0x45, 0xeb, 0x4d, 0x46, 0x0c, 0x0b, 0x2c, 0xb8, 0x5c, 0x1a,
+ 0x76, 0xb8, 0x3f, 0x5d, 0x44, 0x87, 0x13, 0x05, 0x51, 0x78, 0x03, 0x74,
+ 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x69,
+ 0xfe, 0x0c, 0x04, 0x3a, 0x05, 0x46, 0x00, 0x25, 0x00, 0x2b, 0x00, 0x2f,
+ 0x00, 0x33, 0x00, 0x37, 0x00, 0x00, 0x01, 0x06, 0x23, 0x20, 0x27, 0x26,
+ 0x10, 0x37, 0x2e, 0x01, 0x35, 0x34, 0x37, 0x36, 0x32, 0x17, 0x16, 0x15,
+ 0x14, 0x07, 0x06, 0x07, 0x1e, 0x01, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x21, 0x32, 0x37, 0x01, 0x36, 0x34, 0x22,
+ 0x15, 0x14, 0x13, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x04, 0x3a, 0x89, 0xe7, 0xfe, 0x85, 0x8d, 0x59, 0xa9, 0x37,
+ 0x3d, 0x70, 0x57, 0xd7, 0x55, 0x72, 0x52, 0x33, 0x54, 0x3d, 0xa3, 0x4d,
+ 0x90, 0x82, 0xef, 0xdf, 0x8b, 0x25, 0x60, 0x01, 0x3c, 0xae, 0xbf, 0xfd,
+ 0x79, 0x7a, 0xb9, 0x0a, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87,
+ 0xfe, 0x6f, 0x63, 0xbc, 0x7a, 0x01, 0x92, 0x8c, 0x32, 0x74, 0x2a, 0x6e,
+ 0x40, 0x30, 0x30, 0x40, 0x70, 0x5b, 0x43, 0x2b, 0x20, 0x40, 0x4d, 0xb8,
+ 0xe4, 0x81, 0x6b, 0x6c, 0x3d, 0x9e, 0x76, 0x02, 0x96, 0x38, 0x60, 0x33,
+ 0x24, 0x03, 0x48, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x04, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0x93, 0x06, 0x40, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x22,
+ 0x00, 0x26, 0x00, 0x00, 0x37, 0x32, 0x37, 0x26, 0x27, 0x26, 0x35, 0x10,
+ 0x37, 0x36, 0x33, 0x15, 0x22, 0x06, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x25, 0x15, 0x05, 0x04, 0x2b, 0x01, 0x35, 0x01, 0x33, 0x15, 0x23, 0x17,
+ 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x36, 0x91, 0xb6, 0x44, 0x2f,
+ 0x4f, 0xb8, 0x70, 0xe2, 0xc4, 0xa7, 0x37, 0x4b, 0x3f, 0x32, 0x42, 0x01,
+ 0x03, 0xfe, 0x86, 0xfe, 0xc5, 0xa0, 0x4f, 0x01, 0x90, 0x88, 0x88, 0x71,
+ 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb8, 0x5d, 0x18, 0x3b, 0x64, 0x8c, 0x01,
+ 0x08, 0x7d, 0x4d, 0xa9, 0x89, 0xff, 0x34, 0x46, 0x21, 0x81, 0xb8, 0xc5,
+ 0xa4, 0xb8, 0x05, 0x88, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0xff, 0xee, 0x00, 0x00, 0x03, 0x8c, 0x05, 0x46, 0x00, 0x24,
+ 0x00, 0x2f, 0x00, 0x33, 0x00, 0x37, 0x00, 0x3b, 0x00, 0x00, 0x25, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35,
+ 0x34, 0x37, 0x36, 0x37, 0x36, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14,
+ 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x02,
+ 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x36, 0x35, 0x34, 0x27, 0x03, 0x33,
+ 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x01, 0xbd,
+ 0xaf, 0xb6, 0x6a, 0x56, 0x61, 0x3b, 0x35, 0x24, 0x57, 0x3d, 0x1b, 0x0b,
+ 0x0f, 0x5d, 0x51, 0xd6, 0x50, 0x5d, 0x0f, 0x0c, 0x1c, 0x45, 0x4f, 0x1c,
+ 0x3d, 0x37, 0x65, 0x56, 0x6a, 0xb6, 0x97, 0x2f, 0x1b, 0x2a, 0x5d, 0x5c,
+ 0x2a, 0x71, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb9, 0xb9,
+ 0xb8, 0x28, 0x24, 0x27, 0x55, 0x5a, 0x27, 0x2d, 0x1f, 0x29, 0x37, 0x34,
+ 0x2d, 0x2d, 0x34, 0x37, 0x29, 0x1f, 0x2d, 0x27, 0x62, 0x4d, 0x1f, 0x2c,
+ 0x28, 0xb8, 0x02, 0x55, 0x07, 0x0c, 0x20, 0x1d, 0x5f, 0x5f, 0x1d, 0x20,
+ 0x0c, 0x02, 0xf8, 0x96, 0x64, 0x96, 0x96, 0x96, 0xff, 0xff, 0x00, 0x75,
+ 0xfe, 0xa2, 0x07, 0x86, 0x03, 0x11, 0x10, 0x26, 0x10, 0xff, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x03, 0x14, 0xfe, 0xa2, 0xff, 0xff, 0xff, 0xee,
+ 0xfe, 0xd4, 0x02, 0xec, 0x03, 0xd9, 0x10, 0x26, 0x11, 0x00, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x01, 0x7e, 0xfe, 0xd4, 0xff, 0xff, 0xff, 0xee,
+ 0xfe, 0xd4, 0x03, 0xb7, 0x03, 0x08, 0x10, 0x26, 0x11, 0x01, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x01, 0x7e, 0xfe, 0xd4, 0xff, 0xff, 0x00, 0x75,
+ 0xfe, 0xa2, 0x07, 0x86, 0x04, 0x4c, 0x10, 0x26, 0x10, 0xff, 0x00, 0x00,
+ 0x10, 0x27, 0x10, 0xf6, 0x05, 0x5c, 0x03, 0xb6, 0x10, 0x07, 0x10, 0xf6,
+ 0x03, 0x14, 0xfe, 0xa2, 0xff, 0xff, 0xff, 0xee, 0xfe, 0xd4, 0x02, 0xec,
+ 0x05, 0x14, 0x10, 0x26, 0x11, 0x00, 0x00, 0x00, 0x10, 0x27, 0x10, 0xf6,
+ 0x01, 0x7e, 0x04, 0x7e, 0x10, 0x07, 0x10, 0xf6, 0x01, 0x7e, 0xfe, 0xd4,
+ 0xff, 0xff, 0xff, 0xee, 0xfe, 0xd4, 0x03, 0xb7, 0x04, 0x7e, 0x10, 0x26,
+ 0x11, 0x01, 0x00, 0x00, 0x10, 0x27, 0x10, 0xf6, 0x01, 0x8f, 0x03, 0xe8,
+ 0x10, 0x07, 0x10, 0xf6, 0x01, 0x7e, 0xfe, 0xd4, 0xff, 0xff, 0x00, 0x75,
+ 0xfd, 0xa8, 0x07, 0x86, 0x03, 0x11, 0x10, 0x26, 0x10, 0xff, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf9, 0x02, 0xa3, 0xfe, 0xa2, 0xff, 0xff, 0xff, 0xee,
+ 0xfd, 0xda, 0x02, 0xec, 0x03, 0xd9, 0x10, 0x26, 0x11, 0x00, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf9, 0x01, 0x0e, 0xfe, 0xd4, 0xff, 0xff, 0xff, 0xee,
+ 0xfd, 0xda, 0x03, 0xb7, 0x03, 0x08, 0x10, 0x26, 0x11, 0x01, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf9, 0x01, 0x0e, 0xfe, 0xd4, 0xff, 0xff, 0x00, 0x60,
+ 0xfe, 0x0c, 0x06, 0x14, 0x04, 0x01, 0x10, 0x26, 0x11, 0x02, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x03, 0x9a, 0x03, 0x6b, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0xec, 0x05, 0x14, 0x10, 0x26, 0x11, 0x03, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x01, 0x7e, 0x04, 0x7e, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xb7, 0x04, 0x7e, 0x10, 0x26, 0x11, 0x04, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x01, 0x8f, 0x03, 0xe8, 0xff, 0xff, 0x00, 0x60,
+ 0xfe, 0x0c, 0x06, 0x14, 0x04, 0xfb, 0x10, 0x26, 0x11, 0x02, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf8, 0x03, 0x2a, 0x03, 0x6b, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0xec, 0x06, 0x0e, 0x10, 0x26, 0x11, 0x03, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf8, 0x01, 0x0e, 0x04, 0x7e, 0xff, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x03, 0xb7, 0x05, 0x78, 0x10, 0x26, 0x11, 0x04, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf8, 0x01, 0x1e, 0x03, 0xe8, 0x00, 0x01, 0x00, 0x75,
+ 0xff, 0xa7, 0x07, 0xa9, 0x06, 0x14, 0x00, 0x37, 0x00, 0x00, 0x25, 0x32,
+ 0x24, 0x36, 0x3d, 0x01, 0x34, 0x27, 0x25, 0x24, 0x3d, 0x01, 0x34, 0x37,
+ 0x36, 0x37, 0x01, 0x21, 0x01, 0x06, 0x07, 0x06, 0x17, 0x16, 0x17, 0x05,
+ 0x16, 0x1d, 0x01, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26,
+ 0x27, 0x06, 0x04, 0x23, 0x21, 0x22, 0x27, 0x24, 0x11, 0x34, 0x37, 0x33,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x04, 0x77, 0xa6, 0x01, 0x46, 0x2c,
+ 0x6d, 0xfc, 0xb7, 0xfe, 0xc1, 0x09, 0x11, 0x90, 0x02, 0x6c, 0x01, 0x3c,
+ 0xfc, 0xc4, 0x55, 0x0d, 0x09, 0x04, 0x05, 0x9d, 0x03, 0x69, 0xdf, 0x2b,
+ 0x0d, 0x14, 0x29, 0x51, 0x53, 0x33, 0x0a, 0x4b, 0xfe, 0x95, 0x91, 0xfe,
+ 0x3e, 0xad, 0x73, 0xfe, 0xd7, 0x39, 0xa5, 0x3a, 0xb7, 0x5d, 0x88, 0x58,
+ 0x96, 0x6c, 0x05, 0x09, 0x6b, 0x12, 0x91, 0x37, 0xbe, 0x07, 0x06, 0x3e,
+ 0x63, 0x60, 0x01, 0x9b, 0xfd, 0xe8, 0x37, 0x23, 0x0a, 0x23, 0x35, 0x1b,
+ 0x96, 0x26, 0xf8, 0x45, 0x5e, 0x11, 0x05, 0xb8, 0x32, 0x30, 0x39, 0x82,
+ 0x26, 0x62, 0x01, 0x0b, 0x8a, 0x5c, 0x5e, 0x88, 0x7e, 0x42, 0x22, 0x00,
+ 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x05, 0xde, 0x06, 0x14, 0x00, 0x20,
+ 0x00, 0x00, 0x23, 0x35, 0x21, 0x32, 0x37, 0x36, 0x27, 0x26, 0x27, 0x25,
+ 0x24, 0x3d, 0x01, 0x34, 0x37, 0x36, 0x37, 0x01, 0x21, 0x01, 0x06, 0x07,
+ 0x06, 0x17, 0x16, 0x17, 0x05, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x12,
+ 0x04, 0x87, 0x85, 0x29, 0x11, 0x03, 0x0b, 0x5a, 0xfc, 0xb7, 0xfe, 0xc1,
+ 0x09, 0x10, 0x91, 0x02, 0x6c, 0x01, 0x3c, 0xfc, 0xc4, 0x55, 0x0d, 0x09,
+ 0x04, 0x05, 0x9d, 0x03, 0x69, 0xdf, 0x38, 0x55, 0xc9, 0xb8, 0x68, 0x2c,
+ 0x1c, 0x6e, 0x0f, 0x91, 0x37, 0xbe, 0x08, 0x05, 0x3e, 0x62, 0x61, 0x01,
+ 0x9b, 0xfd, 0xe8, 0x37, 0x23, 0x0a, 0x23, 0x35, 0x1b, 0x96, 0x26, 0xf8,
+ 0x71, 0x65, 0x9b, 0x00, 0x00, 0x01, 0xff, 0xee, 0x00, 0x00, 0x06, 0x53,
+ 0x06, 0x14, 0x00, 0x29, 0x00, 0x00, 0x23, 0x35, 0x21, 0x32, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x25, 0x24, 0x3d, 0x01, 0x34, 0x37, 0x36, 0x37, 0x01,
+ 0x21, 0x01, 0x06, 0x07, 0x06, 0x17, 0x16, 0x17, 0x05, 0x16, 0x1d, 0x01,
+ 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x26, 0x27, 0x06, 0x23,
+ 0x12, 0x04, 0x87, 0x7b, 0x33, 0x0e, 0x65, 0xfc, 0xb7, 0xfe, 0xc1, 0x09,
+ 0x10, 0x91, 0x02, 0x6c, 0x01, 0x3c, 0xfc, 0xc4, 0x55, 0x0d, 0x09, 0x04,
+ 0x05, 0x9d, 0x03, 0x69, 0xdf, 0x2b, 0x0d, 0x14, 0x29, 0x51, 0x51, 0x32,
+ 0x0a, 0x56, 0x97, 0xb8, 0x68, 0x1d, 0x18, 0x7f, 0x11, 0x91, 0x37, 0xbe,
+ 0x08, 0x04, 0x3f, 0x62, 0x61, 0x01, 0x9b, 0xfd, 0xe8, 0x37, 0x23, 0x0a,
+ 0x23, 0x35, 0x1b, 0x96, 0x26, 0xf8, 0x45, 0x5f, 0x10, 0x05, 0xb8, 0x2f,
+ 0x28, 0x57, 0x00, 0x00, 0x00, 0x03, 0x00, 0x75, 0xff, 0xa7, 0x07, 0x11,
+ 0x06, 0x14, 0x00, 0x37, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x00, 0x25, 0x06,
+ 0x07, 0x06, 0x23, 0x22, 0x27, 0x24, 0x11, 0x34, 0x37, 0x33, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27,
+ 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x15, 0x05, 0x06, 0x07,
+ 0x06, 0x15, 0x14, 0x17, 0x01, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x13, 0x34, 0x27, 0x26, 0x22, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x05, 0x0c, 0x59, 0x98, 0xb8, 0xa5,
+ 0xad, 0x73, 0xfe, 0xd7, 0x39, 0xa5, 0x3a, 0xb7, 0x5d, 0x88, 0xa6, 0xae,
+ 0x8e, 0x20, 0x0e, 0x30, 0xfe, 0xe9, 0x2d, 0x09, 0x1f, 0x5a, 0x02, 0x9f,
+ 0xfd, 0xe8, 0x40, 0x13, 0x05, 0x1c, 0x02, 0x0d, 0x13, 0x23, 0x26, 0x3a,
+ 0x4f, 0x77, 0x3a, 0x34, 0x5d, 0x1e, 0x57, 0x17, 0x99, 0x19, 0x19, 0x4a,
+ 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x39, 0x39, 0xa6, 0x38, 0x3a, 0x3a,
+ 0x38, 0xa6, 0x39, 0x78, 0x4c, 0x3c, 0x49, 0x26, 0x62, 0x01, 0x0b, 0x8a,
+ 0x5c, 0x5e, 0x88, 0x7e, 0x42, 0x22, 0x50, 0x41, 0x37, 0x1a, 0x2e, 0x45,
+ 0x42, 0x01, 0x7c, 0x3d, 0x51, 0x23, 0x21, 0x77, 0x2a, 0x01, 0x36, 0xba,
+ 0xfa, 0x1e, 0x28, 0x0b, 0x19, 0x20, 0x25, 0xfd, 0x3f, 0x1a, 0x0e, 0x10,
+ 0xb8, 0x18, 0x2b, 0x29, 0x78, 0x40, 0x03, 0xbc, 0x28, 0x1c, 0x1d, 0x38,
+ 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8,
+ 0x40, 0x3f, 0x3f, 0x00, 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x03, 0x6e,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x2b, 0x00, 0x37, 0x00, 0x00, 0x29, 0x01,
+ 0x35, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x01, 0x26, 0x35, 0x34,
+ 0x37, 0x36, 0x37, 0x01, 0x15, 0x05, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17,
+ 0x13, 0x16, 0x15, 0x14, 0x07, 0x06, 0x13, 0x34, 0x27, 0x26, 0x22, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x01, 0x17, 0xfe, 0xd7, 0x01, 0x17,
+ 0x85, 0x29, 0x0e, 0x31, 0xfe, 0xea, 0x2e, 0x0a, 0x1b, 0x5e, 0x02, 0x9f,
+ 0xfd, 0xe8, 0x40, 0x13, 0x05, 0x1c, 0xf7, 0x5c, 0x38, 0x55, 0xfe, 0x19,
+ 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x38, 0x3a, 0xa6, 0x38,
+ 0x3a, 0x3a, 0x38, 0xa6, 0x3a, 0xb8, 0x68, 0x24, 0x24, 0x45, 0x42, 0x01,
+ 0x7c, 0x3d, 0x51, 0x23, 0x21, 0x76, 0x2b, 0x01, 0x36, 0xba, 0xfa, 0x1e,
+ 0x28, 0x0b, 0x19, 0x20, 0x25, 0xfe, 0xb6, 0x7b, 0x7b, 0x71, 0x65, 0x9b,
+ 0x04, 0x60, 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85,
+ 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f, 0x00, 0x00, 0x00,
+ 0x00, 0x03, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0c, 0x06, 0x14, 0x00, 0x29,
+ 0x00, 0x35, 0x00, 0x41, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x32, 0x37,
+ 0x36, 0x35, 0x34, 0x27, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01,
+ 0x15, 0x05, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x01, 0x16, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x07, 0x06,
+ 0x01, 0x34, 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e,
+ 0x01, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17,
+ 0x01, 0x17, 0xfe, 0xd7, 0x01, 0x17, 0x85, 0x29, 0x0e, 0x31, 0xfe, 0xea,
+ 0x2e, 0x0a, 0x1b, 0x5e, 0x02, 0x9f, 0xfd, 0xe8, 0x40, 0x13, 0x05, 0x1c,
+ 0x02, 0x0c, 0x14, 0x22, 0x27, 0x3a, 0x4f, 0x77, 0x3a, 0x35, 0x5c, 0x1e,
+ 0x57, 0x13, 0x10, 0x55, 0x01, 0x01, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19,
+ 0x4a, 0x32, 0x6e, 0x38, 0x3a, 0xa6, 0x38, 0x3a, 0x3a, 0x38, 0xa6, 0x3a,
+ 0xb8, 0x68, 0x24, 0x24, 0x45, 0x42, 0x01, 0x7c, 0x3d, 0x51, 0x23, 0x21,
+ 0x76, 0x2b, 0x01, 0x36, 0xba, 0xfa, 0x1e, 0x28, 0x0b, 0x19, 0x20, 0x25,
+ 0xfd, 0x3f, 0x1a, 0x0e, 0x10, 0xb8, 0x18, 0x2b, 0x29, 0x78, 0x2e, 0x1b,
+ 0x9b, 0x04, 0x60, 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38,
+ 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x81, 0xff, 0xc9, 0x06, 0x24, 0x06, 0x14, 0x00, 0x21,
+ 0x00, 0x44, 0x00, 0x48, 0x00, 0x00, 0x01, 0x15, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27,
+ 0x35, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26,
+ 0x37, 0x36, 0x37, 0x36, 0x13, 0x06, 0x27, 0x26, 0x27, 0x24, 0x35, 0x34,
+ 0x37, 0x33, 0x06, 0x15, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37,
+ 0x36, 0x19, 0x01, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x27, 0x06, 0x01, 0x33, 0x15, 0x23, 0x03, 0x6e, 0x42, 0x22, 0x48,
+ 0x0c, 0x0b, 0x3d, 0x5c, 0x4f, 0x4a, 0x46, 0x3c, 0x32, 0x3d, 0x29, 0x36,
+ 0x33, 0x36, 0x46, 0x43, 0x10, 0x1d, 0x01, 0x02, 0x43, 0x4d, 0x7c, 0x62,
+ 0x83, 0xba, 0x5b, 0xfe, 0xf9, 0x0e, 0xa6, 0x0d, 0x02, 0x90, 0x6d, 0x72,
+ 0x7e, 0x50, 0x89, 0x58, 0x45, 0xa5, 0x2c, 0x28, 0x59, 0x43, 0x75, 0x89,
+ 0x66, 0x8e, 0xfe, 0x72, 0x87, 0x87, 0x04, 0x6f, 0x52, 0x04, 0x0e, 0x1e,
+ 0x21, 0x1c, 0x12, 0x10, 0x0a, 0x0f, 0x58, 0x6e, 0x2a, 0x27, 0x0b, 0x58,
+ 0x0a, 0x1a, 0x1a, 0x1e, 0x26, 0x11, 0x10, 0x1c, 0x2f, 0x2e, 0x51, 0x26,
+ 0x2b, 0xfb, 0x70, 0x14, 0x02, 0x02, 0x1e, 0x58, 0xc3, 0x4b, 0x35, 0x3a,
+ 0x2c, 0x5c, 0x2e, 0x23, 0x1b, 0x2f, 0x5e, 0x49, 0x01, 0x01, 0x03, 0xb1,
+ 0xfb, 0x6b, 0x6a, 0x31, 0x2c, 0xb8, 0x7b, 0x7e, 0x05, 0xdf, 0x96, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x03, 0x6e, 0x06, 0x72, 0x00, 0x1f,
+ 0x00, 0x23, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x15, 0x05,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x13, 0x16, 0x15, 0x14, 0x07, 0x06,
+ 0x01, 0x33, 0x15, 0x23, 0x01, 0x17, 0xfe, 0xd7, 0x01, 0x17, 0x85, 0x29,
+ 0x0e, 0x31, 0xfe, 0xea, 0x2e, 0x0a, 0x1b, 0x5e, 0x02, 0x9f, 0xfd, 0xe8,
+ 0x40, 0x13, 0x05, 0x1c, 0xf7, 0x5c, 0x38, 0x55, 0xfe, 0xd4, 0x87, 0x87,
+ 0xb8, 0x68, 0x24, 0x24, 0x45, 0x42, 0x01, 0x7c, 0x3d, 0x51, 0x23, 0x21,
+ 0x76, 0x2b, 0x01, 0x36, 0xba, 0xfa, 0x1e, 0x28, 0x0b, 0x19, 0x20, 0x25,
+ 0xfe, 0xb6, 0x7b, 0x7b, 0x71, 0x65, 0x9b, 0x06, 0x72, 0x96, 0x00, 0x00,
+ 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x04, 0x0c, 0x06, 0x72, 0x00, 0x29,
+ 0x00, 0x2d, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35,
+ 0x34, 0x27, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x15, 0x05,
+ 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x01, 0x16, 0x17, 0x16, 0x3b, 0x01,
+ 0x15, 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x06, 0x07, 0x06, 0x01, 0x33,
+ 0x15, 0x23, 0x01, 0x17, 0xfe, 0xd7, 0x01, 0x17, 0x85, 0x29, 0x0e, 0x31,
+ 0xfe, 0xea, 0x2e, 0x0a, 0x1b, 0x5e, 0x02, 0x9f, 0xfd, 0xe8, 0x40, 0x13,
+ 0x05, 0x1c, 0x02, 0x0c, 0x14, 0x22, 0x27, 0x3a, 0x4f, 0x77, 0x3a, 0x35,
+ 0x5c, 0x1e, 0x57, 0x13, 0x10, 0x55, 0xfe, 0xd7, 0x87, 0x87, 0xb8, 0x68,
+ 0x24, 0x24, 0x45, 0x42, 0x01, 0x7c, 0x3d, 0x51, 0x23, 0x21, 0x76, 0x2b,
+ 0x01, 0x36, 0xba, 0xfa, 0x1e, 0x28, 0x0b, 0x19, 0x20, 0x25, 0xfd, 0x3f,
+ 0x1a, 0x0e, 0x10, 0xb8, 0x18, 0x2b, 0x29, 0x78, 0x2e, 0x1b, 0x9b, 0x06,
+ 0x72, 0x96, 0x00, 0x00, 0x00, 0x05, 0x00, 0x81, 0xfd, 0xa8, 0x06, 0x24,
+ 0x06, 0x14, 0x00, 0x21, 0x00, 0x44, 0x00, 0x48, 0x00, 0x4c, 0x00, 0x50,
+ 0x00, 0x00, 0x01, 0x15, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17,
+ 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x35, 0x16, 0x33, 0x32,
+ 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x37, 0x36, 0x37, 0x36,
+ 0x13, 0x06, 0x27, 0x26, 0x27, 0x24, 0x35, 0x34, 0x37, 0x33, 0x06, 0x15,
+ 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x19, 0x01, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x01,
+ 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03,
+ 0x6e, 0x42, 0x22, 0x48, 0x0c, 0x0b, 0x3d, 0x5c, 0x4f, 0x4a, 0x46, 0x3c,
+ 0x32, 0x3d, 0x29, 0x36, 0x33, 0x36, 0x46, 0x43, 0x10, 0x1d, 0x01, 0x02,
+ 0x43, 0x4d, 0x7c, 0x62, 0x83, 0xba, 0x5b, 0xfe, 0xf9, 0x0e, 0xa6, 0x0d,
+ 0x02, 0x90, 0x6d, 0x72, 0x7e, 0x50, 0x89, 0x58, 0x45, 0xa5, 0x2c, 0x28,
+ 0x59, 0x43, 0x75, 0x89, 0x66, 0x8e, 0xfe, 0x5b, 0x88, 0x88, 0x71, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0x04, 0x6f, 0x52, 0x04, 0x0e, 0x1e, 0x21, 0x1c,
+ 0x12, 0x10, 0x0a, 0x0f, 0x58, 0x6e, 0x2a, 0x27, 0x0b, 0x58, 0x0a, 0x1a,
+ 0x1a, 0x1e, 0x26, 0x11, 0x10, 0x1c, 0x2f, 0x2e, 0x51, 0x26, 0x2b, 0xfb,
+ 0x70, 0x14, 0x02, 0x02, 0x1e, 0x58, 0xc3, 0x4b, 0x35, 0x3a, 0x2c, 0x5c,
+ 0x2e, 0x23, 0x1b, 0x2f, 0x5e, 0x49, 0x01, 0x01, 0x03, 0xb1, 0xfb, 0x6b,
+ 0x6a, 0x31, 0x2c, 0xb8, 0x7b, 0x7e, 0xfe, 0x41, 0x96, 0x01, 0x90, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee, 0xfd, 0xda, 0x03, 0x6e,
+ 0x06, 0x14, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x27, 0x00, 0x2b, 0x00, 0x00,
+ 0x29, 0x01, 0x35, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x01, 0x26,
+ 0x35, 0x34, 0x37, 0x36, 0x37, 0x01, 0x15, 0x05, 0x06, 0x07, 0x06, 0x15,
+ 0x14, 0x17, 0x13, 0x16, 0x15, 0x14, 0x07, 0x06, 0x03, 0x33, 0x15, 0x23,
+ 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x01, 0x17, 0xfe, 0xd7,
+ 0x01, 0x17, 0x85, 0x29, 0x0e, 0x31, 0xfe, 0xea, 0x2e, 0x0a, 0x1b, 0x5e,
+ 0x02, 0x9f, 0xfd, 0xe8, 0x40, 0x13, 0x05, 0x1c, 0xf7, 0x5c, 0x38, 0x55,
+ 0xbc, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0xb8, 0x68, 0x24,
+ 0x24, 0x45, 0x42, 0x01, 0x7c, 0x3d, 0x51, 0x23, 0x21, 0x76, 0x2b, 0x01,
+ 0x36, 0xba, 0xfa, 0x1e, 0x28, 0x0b, 0x19, 0x20, 0x25, 0xfe, 0xb6, 0x7b,
+ 0x7b, 0x71, 0x65, 0x9b, 0xfe, 0x70, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96,
+ 0x00, 0x04, 0xff, 0xee, 0xfd, 0xda, 0x04, 0x0c, 0x06, 0x14, 0x00, 0x29,
+ 0x00, 0x2d, 0x00, 0x31, 0x00, 0x35, 0x00, 0x00, 0x29, 0x01, 0x35, 0x21,
+ 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x01, 0x26, 0x35, 0x34, 0x37, 0x36,
+ 0x37, 0x01, 0x15, 0x05, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x01, 0x16,
+ 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x2f, 0x01, 0x06,
+ 0x07, 0x06, 0x03, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x01, 0x17, 0xfe, 0xd7, 0x01, 0x17, 0x85, 0x29, 0x0e, 0x31,
+ 0xfe, 0xea, 0x2e, 0x0a, 0x1b, 0x5e, 0x02, 0x9f, 0xfd, 0xe8, 0x40, 0x13,
+ 0x05, 0x1c, 0x02, 0x0c, 0x14, 0x22, 0x27, 0x3a, 0x4f, 0x77, 0x3a, 0x35,
+ 0x5c, 0x1e, 0x57, 0x13, 0x10, 0x55, 0xb9, 0x88, 0x88, 0x71, 0x87, 0x87,
+ 0xe1, 0x87, 0x87, 0xb8, 0x68, 0x24, 0x24, 0x45, 0x42, 0x01, 0x7c, 0x3d,
+ 0x51, 0x23, 0x21, 0x76, 0x2b, 0x01, 0x36, 0xba, 0xfa, 0x1e, 0x28, 0x0b,
+ 0x19, 0x20, 0x25, 0xfd, 0x3f, 0x1a, 0x0e, 0x10, 0xb8, 0x18, 0x2b, 0x29,
+ 0x78, 0x2e, 0x1b, 0x9b, 0xfe, 0x70, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96,
+ 0x00, 0x03, 0x03, 0x69, 0x03, 0x84, 0x06, 0x72, 0x07, 0x2b, 0x00, 0x03,
+ 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x00, 0x09, 0x01, 0x35, 0x01, 0x03, 0x34,
+ 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01, 0x14,
+ 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x06, 0x72,
+ 0xfc, 0xf7, 0x03, 0x09, 0x97, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a,
+ 0x32, 0x6e, 0x39, 0x39, 0xa6, 0x38, 0x3a, 0x3a, 0x38, 0xa6, 0x39, 0x06,
+ 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0xfd, 0x35, 0x28, 0x1c, 0x1d, 0x38,
+ 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8,
+ 0x40, 0x3f, 0x3f, 0x00, 0x00, 0x03, 0x00, 0x64, 0x03, 0x84, 0x03, 0x6e,
+ 0x07, 0x2b, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x1b, 0x00, 0x00, 0x09, 0x01,
+ 0x35, 0x01, 0x03, 0x34, 0x27, 0x26, 0x22, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22, 0x27, 0x26, 0x34, 0x37, 0x36,
+ 0x32, 0x17, 0x03, 0x6e, 0xfc, 0xf7, 0x03, 0x09, 0x90, 0x19, 0x19, 0x4a,
+ 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x38, 0x3a, 0xa6, 0x38, 0x3a, 0x3a,
+ 0x38, 0xa6, 0x3a, 0x06, 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0xfd, 0x35,
+ 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c, 0x1b, 0x38, 0x85, 0xb8, 0x40,
+ 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f, 0x00, 0x00, 0x03, 0x00, 0x64,
+ 0x03, 0x84, 0x03, 0x6e, 0x07, 0x2b, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x1b,
+ 0x00, 0x00, 0x09, 0x01, 0x35, 0x01, 0x03, 0x34, 0x27, 0x26, 0x22, 0x06,
+ 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22, 0x27,
+ 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x03, 0x6e, 0xfc, 0xf7, 0x03, 0x09,
+ 0x90, 0x19, 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x38, 0x3a,
+ 0xa6, 0x38, 0x3a, 0x3a, 0x38, 0xa6, 0x3a, 0x06, 0x95, 0xfe, 0x9e, 0x96,
+ 0x01, 0x62, 0xfd, 0x35, 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c, 0x1b,
+ 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f, 0x00,
+ 0x00, 0x03, 0x02, 0x1c, 0xfe, 0xa2, 0x06, 0x72, 0x07, 0x2b, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01, 0x35, 0x09, 0x01, 0x33,
+ 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x06, 0x72, 0xfc, 0xf7, 0x03, 0x09,
+ 0xfc, 0x8b, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x06, 0x95, 0xfe, 0x9e, 0x96,
+ 0x01, 0x62, 0xf8, 0x0d, 0x96, 0x96, 0x96, 0x00, 0x00, 0x03, 0x00, 0x64,
+ 0xfe, 0xd4, 0x03, 0x6e, 0x07, 0x2b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x00, 0x09, 0x01, 0x35, 0x09, 0x01, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x03, 0x6e, 0xfc, 0xf7, 0x03, 0x09, 0xfe, 0x27, 0x87, 0x87,
+ 0xe1, 0x87, 0x87, 0x06, 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0xf8, 0x3f,
+ 0x96, 0x96, 0x96, 0x00, 0x00, 0x03, 0x00, 0x64, 0xfe, 0xd4, 0x03, 0x6e,
+ 0x07, 0x2b, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01,
+ 0x35, 0x09, 0x01, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03, 0x6e,
+ 0xfc, 0xf7, 0x03, 0x09, 0xfe, 0x27, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x06,
+ 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0xf8, 0x3f, 0x96, 0x96, 0x96, 0x00,
+ 0x00, 0x04, 0x03, 0x2a, 0x05, 0x33, 0x06, 0x72, 0x08, 0x34, 0x00, 0x03,
+ 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00, 0x09, 0x01, 0x35, 0x09,
+ 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23,
+ 0x06, 0x72, 0xfc, 0xf7, 0x03, 0x09, 0xfd, 0x28, 0x88, 0x88, 0x71, 0x87,
+ 0x87, 0xe1, 0x87, 0x87, 0x06, 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0x01,
+ 0x09, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x04, 0x00, 0x43,
+ 0x05, 0x33, 0x03, 0x6e, 0x08, 0x34, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
+ 0x00, 0x0f, 0x00, 0x00, 0x09, 0x01, 0x35, 0x09, 0x01, 0x33, 0x15, 0x23,
+ 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03, 0x6e, 0xfc, 0xf7,
+ 0x03, 0x09, 0xfd, 0x46, 0x87, 0x87, 0x70, 0x88, 0x88, 0xe0, 0x86, 0x86,
+ 0x06, 0x95, 0xfe, 0x9e, 0x96, 0x01, 0x62, 0x01, 0x09, 0x96, 0x64, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0x00, 0x04, 0x00, 0x43, 0x05, 0x33, 0x03, 0x6e,
+ 0x08, 0x34, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x00,
+ 0x09, 0x01, 0x35, 0x09, 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23,
+ 0x27, 0x33, 0x15, 0x23, 0x03, 0x6e, 0xfc, 0xf7, 0x03, 0x09, 0xfd, 0x46,
+ 0x87, 0x87, 0x70, 0x88, 0x88, 0xe0, 0x86, 0x86, 0x06, 0x95, 0xfe, 0x9e,
+ 0x96, 0x01, 0x62, 0x01, 0x09, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x81, 0xfe, 0xc8, 0x05, 0x86, 0x07, 0x9e, 0x00, 0x24,
+ 0x00, 0x28, 0x00, 0x00, 0x25, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17,
+ 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06,
+ 0x23, 0x22, 0x27, 0x24, 0x11, 0x26, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17,
+ 0x16, 0x33, 0x32, 0x37, 0x36, 0x13, 0x33, 0x15, 0x23, 0x03, 0xaa, 0x46,
+ 0xa6, 0x2c, 0x27, 0x59, 0x44, 0x75, 0x65, 0x46, 0x10, 0x19, 0x6d, 0xea,
+ 0x79, 0x4d, 0x59, 0x3e, 0xfe, 0xf9, 0x01, 0x39, 0xa6, 0x3b, 0x96, 0x24,
+ 0x41, 0x48, 0x63, 0x9c, 0x92, 0x87, 0x87, 0x49, 0x7e, 0xe3, 0x04, 0x6a,
+ 0xfb, 0x6b, 0x6a, 0x31, 0x2c, 0xb8, 0x33, 0x2e, 0x28, 0xb1, 0x42, 0x22,
+ 0x16, 0x5b, 0x01, 0x12, 0x8a, 0x5c, 0x73, 0x73, 0x7e, 0x42, 0x10, 0x22,
+ 0x35, 0x07, 0xcc, 0x96, 0x00, 0x02, 0xff, 0xee, 0x00, 0x00, 0x01, 0x84,
+ 0x07, 0x9e, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06,
+ 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x03, 0x33,
+ 0x15, 0x23, 0x01, 0x84, 0x4e, 0x48, 0x8b, 0x75, 0x44, 0x59, 0x27, 0x2c,
+ 0xa6, 0x9d, 0x87, 0x87, 0x01, 0x73, 0xb2, 0x65, 0x5c, 0xb8, 0x2c, 0x31,
+ 0x6a, 0x04, 0x95, 0x01, 0x8a, 0x96, 0x00, 0x00, 0x00, 0x02, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0x75, 0x07, 0x9e, 0x00, 0x14, 0x00, 0x18, 0x00, 0x00,
+ 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33,
+ 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x03, 0x33, 0x15,
+ 0x23, 0x01, 0x31, 0x45, 0x89, 0x75, 0x44, 0x59, 0x27, 0x2c, 0xa6, 0x2c,
+ 0x28, 0x59, 0x43, 0x75, 0x87, 0x91, 0x87, 0x87, 0x56, 0x56, 0xb8, 0x2c,
+ 0x31, 0x6a, 0x04, 0x95, 0xfb, 0x6b, 0x6a, 0x31, 0x2c, 0xb8, 0x07, 0x9e,
+ 0x96, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x81, 0xfe, 0xc8, 0x05, 0x86,
+ 0x08, 0x34, 0x00, 0x24, 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x00,
+ 0x25, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15,
+ 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x24,
+ 0x11, 0x26, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37,
+ 0x36, 0x13, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15,
+ 0x23, 0x03, 0xaa, 0x46, 0xa6, 0x2c, 0x27, 0x59, 0x44, 0x75, 0x65, 0x46,
+ 0x10, 0x19, 0x6d, 0xea, 0x79, 0x4d, 0x59, 0x3e, 0xfe, 0xf9, 0x01, 0x39,
+ 0xa6, 0x3b, 0x96, 0x24, 0x41, 0x48, 0x63, 0x9c, 0x8d, 0x88, 0x88, 0x71,
+ 0x87, 0x87, 0xe1, 0x87, 0x87, 0x49, 0x7e, 0xe3, 0x04, 0x6a, 0xfb, 0x6b,
+ 0x6a, 0x31, 0x2c, 0xb8, 0x33, 0x2e, 0x28, 0xb1, 0x42, 0x22, 0x16, 0x5b,
+ 0x01, 0x12, 0x8a, 0x5c, 0x73, 0x73, 0x7e, 0x42, 0x10, 0x22, 0x35, 0x08,
+ 0x62, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee,
+ 0x00, 0x00, 0x01, 0xdb, 0x08, 0x34, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x15,
+ 0x00, 0x19, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33,
+ 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x03, 0x33, 0x15, 0x23, 0x17, 0x33,
+ 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x01, 0x84, 0x4e, 0x48, 0x8b, 0x75,
+ 0x44, 0x59, 0x27, 0x2c, 0xa6, 0xa1, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x01, 0x73, 0xb2, 0x65, 0x5c, 0xb8, 0x2c, 0x31, 0x6a, 0x04,
+ 0x95, 0x02, 0x20, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00, 0x04, 0xff, 0xee,
+ 0x00, 0x00, 0x02, 0x75, 0x08, 0x34, 0x00, 0x14, 0x00, 0x18, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x03, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15,
+ 0x23, 0x01, 0x31, 0x45, 0x89, 0x75, 0x44, 0x59, 0x27, 0x2c, 0xa6, 0x2c,
+ 0x28, 0x59, 0x43, 0x75, 0x87, 0x95, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a, 0x04, 0x95, 0xfb, 0x6b,
+ 0x6a, 0x31, 0x2c, 0xb8, 0x08, 0x34, 0x96, 0x64, 0x96, 0x96, 0x96, 0x00,
+ 0x00, 0x04, 0x00, 0x81, 0xfc, 0xe0, 0x05, 0x86, 0x06, 0x14, 0x00, 0x24,
+ 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x00, 0x25, 0x36, 0x35, 0x11,
+ 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06,
+ 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x24, 0x11, 0x26, 0x37, 0x33,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x01, 0x33, 0x15,
+ 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15, 0x23, 0x03, 0xaa, 0x46,
+ 0xa6, 0x2c, 0x27, 0x59, 0x44, 0x75, 0x65, 0x46, 0x10, 0x19, 0x6d, 0xea,
+ 0x79, 0x4d, 0x59, 0x3e, 0xfe, 0xf9, 0x01, 0x39, 0xa6, 0x3b, 0x96, 0x24,
+ 0x41, 0x48, 0x63, 0x9c, 0xfe, 0xf9, 0x86, 0x86, 0x70, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x49, 0x7e, 0xe3, 0x04, 0x6a, 0xfb, 0x6b, 0x6a, 0x31, 0x2c,
+ 0xb8, 0x33, 0x2e, 0x28, 0xb1, 0x42, 0x22, 0x16, 0x5b, 0x01, 0x12, 0x8a,
+ 0x5c, 0x73, 0x73, 0x7e, 0x42, 0x10, 0x22, 0x35, 0xfd, 0xa4, 0x96, 0x01,
+ 0x90, 0x96, 0x96, 0x96, 0x00, 0x04, 0xff, 0xee, 0xfe, 0x0c, 0x01, 0xc2,
+ 0x06, 0x14, 0x00, 0x0d, 0x00, 0x11, 0x00, 0x15, 0x00, 0x19, 0x00, 0x00,
+ 0x01, 0x14, 0x07, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37, 0x36, 0x35,
+ 0x11, 0x33, 0x03, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33,
+ 0x15, 0x23, 0x01, 0x84, 0x4e, 0x48, 0x8b, 0x75, 0x44, 0x59, 0x27, 0x2c,
+ 0xa6, 0xba, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x01, 0x73,
+ 0xb2, 0x65, 0x5c, 0xb8, 0x2c, 0x31, 0x6a, 0x04, 0x95, 0xf8, 0x8e, 0x96,
+ 0x01, 0x90, 0x96, 0x96, 0x96, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xee,
+ 0xfe, 0x0c, 0x02, 0x75, 0x06, 0x14, 0x00, 0x14, 0x00, 0x18, 0x00, 0x1c,
+ 0x00, 0x20, 0x00, 0x00, 0x25, 0x06, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x37,
+ 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23,
+ 0x22, 0x03, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x23, 0x27, 0x33, 0x15,
+ 0x23, 0x01, 0x31, 0x45, 0x89, 0x75, 0x44, 0x59, 0x27, 0x2c, 0xa6, 0x2c,
+ 0x28, 0x59, 0x43, 0x75, 0x87, 0x93, 0x87, 0x87, 0x70, 0x87, 0x87, 0xe1,
+ 0x87, 0x87, 0x56, 0x56, 0xb8, 0x2c, 0x31, 0x6a, 0x04, 0x95, 0xfb, 0x6b,
+ 0x6a, 0x31, 0x2c, 0xb8, 0xfe, 0xa2, 0x96, 0x01, 0x90, 0x96, 0x96, 0x96,
+ 0x00, 0x03, 0x00, 0x84, 0xfc, 0xc7, 0x05, 0x8e, 0x02, 0xbc, 0x00, 0x26,
+ 0x00, 0x2a, 0x00, 0x2e, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, 0x17, 0x16,
+ 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x06, 0x07, 0x06, 0x07, 0x06, 0x23,
+ 0x22, 0x27, 0x24, 0x11, 0x34, 0x37, 0x33, 0x06, 0x15, 0x14, 0x17, 0x16,
+ 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x25, 0x33, 0x15,
+ 0x23, 0x13, 0x33, 0x15, 0x23, 0x04, 0x63, 0x28, 0x18, 0x14, 0x2d, 0x30,
+ 0x36, 0x43, 0x75, 0x40, 0x1e, 0x03, 0x50, 0x6c, 0xd7, 0x58, 0x52, 0x69,
+ 0x65, 0xfe, 0xd8, 0x2b, 0xa5, 0x2c, 0xb5, 0x51, 0x44, 0x50, 0x47, 0xae,
+ 0x44, 0x1d, 0x5a, 0xfe, 0x48, 0x86, 0x86, 0x70, 0x87, 0x87, 0x02, 0x45,
+ 0x61, 0x60, 0x50, 0x3c, 0x40, 0xb8, 0x30, 0x6d, 0x93, 0xc7, 0x42, 0x1b,
+ 0x25, 0x6b, 0x01, 0x63, 0xaf, 0x8d, 0x89, 0xb3, 0xec, 0x35, 0x18, 0x14,
+ 0x30, 0xe3, 0x65, 0x70, 0xb8, 0xcb, 0x77, 0x96, 0xfb, 0x37, 0x96, 0x00,
+ 0xff, 0xff, 0xff, 0xee, 0xfe, 0xd4, 0x01, 0x60, 0x03, 0xe8, 0x10, 0x27,
+ 0x10, 0xf6, 0x00, 0xca, 0x03, 0x52, 0x10, 0x26, 0x10, 0xfd, 0x00, 0x00,
+ 0x10, 0x07, 0x10, 0xf6, 0x00, 0xca, 0xfe, 0xd4, 0xff, 0xff, 0xff, 0xee,
+ 0xfe, 0xd4, 0x02, 0x3f, 0x03, 0xe8, 0x10, 0x27, 0x10, 0xf6, 0x00, 0xca,
+ 0x03, 0x52, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf6,
+ 0x00, 0xca, 0xfe, 0xd4, 0x00, 0x04, 0x00, 0x84, 0xfc, 0xae, 0x05, 0x8e,
+ 0x02, 0xbc, 0x00, 0x26, 0x00, 0x2a, 0x00, 0x36, 0x00, 0x42, 0x00, 0x00,
+ 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x24, 0x11, 0x34, 0x37,
+ 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x25, 0x33, 0x15, 0x23, 0x01, 0x34, 0x27, 0x26, 0x22,
+ 0x06, 0x15, 0x14, 0x17, 0x16, 0x32, 0x3e, 0x01, 0x14, 0x07, 0x06, 0x22,
+ 0x27, 0x26, 0x34, 0x37, 0x36, 0x32, 0x17, 0x04, 0x63, 0x28, 0x18, 0x14,
+ 0x2d, 0x30, 0x36, 0x43, 0x75, 0x40, 0x1e, 0x03, 0x50, 0x6c, 0xd7, 0x58,
+ 0x52, 0x69, 0x65, 0xfe, 0xd8, 0x2b, 0xa5, 0x2c, 0xb5, 0x51, 0x44, 0x50,
+ 0x47, 0xae, 0x44, 0x1d, 0x5a, 0xfe, 0x48, 0x86, 0x86, 0x01, 0x05, 0x19,
+ 0x19, 0x4a, 0x32, 0x19, 0x19, 0x4a, 0x32, 0x6e, 0x39, 0x39, 0xa6, 0x38,
+ 0x3a, 0x3a, 0x38, 0xa6, 0x39, 0x02, 0x45, 0x61, 0x60, 0x50, 0x3c, 0x40,
+ 0xb8, 0x30, 0x6d, 0x93, 0xc7, 0x42, 0x1b, 0x25, 0x6b, 0x01, 0x63, 0xaf,
+ 0x8d, 0x89, 0xb3, 0xec, 0x35, 0x18, 0x14, 0x30, 0xe3, 0x65, 0x70, 0xb8,
+ 0xcb, 0x77, 0x96, 0xfb, 0x64, 0x28, 0x1c, 0x1d, 0x38, 0x29, 0x2a, 0x1c,
+ 0x1b, 0x38, 0x85, 0xb8, 0x40, 0x40, 0x40, 0x40, 0xb8, 0x40, 0x3f, 0x3f,
+ 0xff, 0xff, 0xff, 0xee, 0xfe, 0xf4, 0x01, 0xd3, 0x03, 0xe8, 0x10, 0x27,
+ 0x10, 0xf6, 0x00, 0xca, 0x03, 0x52, 0x10, 0x26, 0x10, 0xfd, 0x00, 0x00,
+ 0x10, 0x07, 0x11, 0x07, 0x00, 0x48, 0xfe, 0xf4, 0xff, 0xff, 0xff, 0xee,
+ 0xfe, 0xf4, 0x02, 0x3f, 0x03, 0xe8, 0x10, 0x27, 0x10, 0xf6, 0x00, 0xca,
+ 0x03, 0x52, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00, 0x10, 0x07, 0x11, 0x07,
+ 0x00, 0x48, 0xfe, 0xf4, 0x00, 0x04, 0x00, 0x84, 0xfe, 0x0c, 0x05, 0x8e,
+ 0x03, 0xb6, 0x00, 0x26, 0x00, 0x2a, 0x00, 0x2e, 0x00, 0x32, 0x00, 0x00,
+ 0x01, 0x16, 0x17, 0x16, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x24, 0x11, 0x34, 0x37,
+ 0x33, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36,
+ 0x35, 0x34, 0x27, 0x01, 0x33, 0x15, 0x23, 0x17, 0x33, 0x15, 0x23, 0x27,
+ 0x33, 0x15, 0x23, 0x04, 0x63, 0x28, 0x18, 0x14, 0x2d, 0x30, 0x36, 0x43,
+ 0x75, 0x40, 0x1e, 0x03, 0x50, 0x6c, 0xd7, 0x58, 0x52, 0x69, 0x65, 0xfe,
+ 0xd8, 0x2b, 0xa5, 0x2c, 0xb5, 0x51, 0x44, 0x50, 0x47, 0xae, 0x44, 0x1d,
+ 0x5a, 0xfe, 0x74, 0x88, 0x88, 0x71, 0x87, 0x87, 0xe1, 0x87, 0x87, 0x02,
+ 0x45, 0x61, 0x60, 0x50, 0x3c, 0x40, 0xb8, 0x30, 0x6d, 0x93, 0xc7, 0x42,
+ 0x1b, 0x25, 0x6b, 0x01, 0x63, 0xaf, 0x8d, 0x89, 0xb3, 0xec, 0x35, 0x18,
+ 0x14, 0x30, 0xe3, 0x65, 0x70, 0xb8, 0xcb, 0x01, 0x71, 0x96, 0x64, 0x96,
+ 0x96, 0x96, 0x00, 0x00, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x01, 0xc2,
+ 0x04, 0xe2, 0x10, 0x26, 0x10, 0xfd, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf8,
+ 0x00, 0x59, 0x03, 0x52, 0xff, 0xff, 0xff, 0xee, 0x00, 0x00, 0x02, 0x3f,
+ 0x04, 0xe2, 0x10, 0x26, 0x10, 0xfe, 0x00, 0x00, 0x10, 0x07, 0x10, 0xf8,
+ 0x00, 0x59, 0x03, 0x52, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x57, 0x0a,
+ 0xdd, 0x83, 0xf3, 0x6b, 0x5f, 0x0f, 0x3c, 0xf5, 0x00, 0x1f, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xce, 0x3f, 0xd8, 0x65, 0x00, 0x00, 0x00, 0x00,
+ 0xce, 0x3f, 0xd8, 0x65, 0xf8, 0xa7, 0xfc, 0xae, 0x0c, 0x1a, 0x09, 0x55,
+ 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x07, 0x6d, 0xfe, 0x1d, 0x00, 0x00, 0x0c, 0x7e,
+ 0xf8, 0xa7, 0xfc, 0xc9, 0x0c, 0x1a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x0e,
+ 0x04, 0x52, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x02, 0xaa, 0x00, 0x00,
+ 0x02, 0x49, 0x00, 0x00, 0x02, 0xe2, 0x01, 0x16, 0x03, 0x4f, 0x00, 0xb1,
+ 0x06, 0x08, 0x00, 0x8e, 0x04, 0x94, 0x00, 0x99, 0x06, 0xd7, 0x00, 0x65,
+ 0x05, 0x9d, 0x00, 0x74, 0x01, 0xfa, 0x00, 0xb1, 0x02, 0xcf, 0x00, 0x9e,
+ 0x02, 0xcf, 0x00, 0x93, 0x03, 0x99, 0x00, 0x36, 0x06, 0x08, 0x00, 0xc3,
+ 0x02, 0x49, 0x00, 0x8e, 0x02, 0x99, 0x00, 0x5a, 0x02, 0x49, 0x00, 0xc5,
+ 0x02, 0x6d, 0x00, 0x00, 0x04, 0x94, 0x00, 0x79, 0x04, 0x94, 0x00, 0xca,
+ 0x04, 0x94, 0x00, 0x87, 0x04, 0x94, 0x00, 0x8c, 0x04, 0x94, 0x00, 0x5a,
+ 0x04, 0x94, 0x00, 0x8e, 0x04, 0x94, 0x00, 0x80, 0x04, 0x94, 0x00, 0x97,
+ 0x04, 0x94, 0x00, 0x7d, 0x04, 0x94, 0x00, 0x74, 0x02, 0x6d, 0x00, 0xd8,
+ 0x02, 0x6d, 0x00, 0x8e, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x03, 0xd2, 0x00, 0x84, 0x07, 0x33, 0x00, 0x79,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0xf0, 0x00, 0xb4, 0x05, 0x07, 0x00, 0x67,
+ 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x24, 0x00, 0xb4,
+ 0x05, 0x94, 0x00, 0x67, 0x05, 0x6a, 0x00, 0xb4, 0x02, 0x1f, 0x00, 0xb4,
+ 0x02, 0x1f, 0xff, 0xa1, 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x02, 0x00, 0xb4,
+ 0x06, 0x36, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x57, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67, 0x05, 0x00, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0x79, 0x04, 0x65, 0xff, 0xfb, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0xec, 0x00, 0x0e, 0x07, 0x1e, 0x00, 0x3d, 0x04, 0xee, 0x00, 0x36,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0xee, 0x00, 0x52, 0x02, 0xcf, 0x00, 0x9e,
+ 0x02, 0x6d, 0x00, 0x00, 0x02, 0xcf, 0x00, 0xb3, 0x06, 0x08, 0x00, 0xc3,
+ 0x03, 0x99, 0xff, 0xee, 0x03, 0x99, 0x00, 0x99, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0x92, 0x00, 0xa7, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x6e, 0x00, 0x65, 0x02, 0x88, 0x00, 0x2a, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x90, 0x00, 0xa7, 0x02, 0x00, 0x00, 0xad, 0x02, 0x00, 0xff, 0xdf,
+ 0x04, 0x2b, 0x00, 0xa7, 0x02, 0x00, 0x00, 0xad, 0x07, 0x03, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x67, 0x00, 0x65, 0x04, 0x92, 0x00, 0xa7,
+ 0x04, 0x92, 0x00, 0x65, 0x02, 0xf5, 0x00, 0xa7, 0x03, 0xc0, 0x00, 0x63,
+ 0x02, 0xd2, 0x00, 0x31, 0x04, 0x90, 0x00, 0x9c, 0x04, 0x42, 0x00, 0x36,
+ 0x05, 0xe3, 0x00, 0x4d, 0x04, 0x42, 0x00, 0x35, 0x04, 0x42, 0x00, 0x36,
+ 0x03, 0xc7, 0x00, 0x4f, 0x04, 0x94, 0x00, 0xe6, 0x02, 0x6d, 0x00, 0xea,
+ 0x04, 0x94, 0x00, 0xe6, 0x06, 0x08, 0x00, 0xc3, 0x02, 0x49, 0x00, 0x00,
+ 0x02, 0xe2, 0x01, 0x16, 0x04, 0x94, 0x00, 0x9a, 0x04, 0x94, 0x00, 0x74,
+ 0x04, 0x94, 0x00, 0x54, 0x04, 0x94, 0x00, 0x49, 0x02, 0x6d, 0x00, 0xea,
+ 0x03, 0x99, 0x00, 0x52, 0x03, 0x99, 0x00, 0xc1, 0x07, 0x33, 0x00, 0xfe,
+ 0x03, 0x64, 0x00, 0x67, 0x04, 0x67, 0x00, 0x8e, 0x06, 0x08, 0x00, 0xc3,
+ 0x02, 0x99, 0x00, 0x5a, 0x07, 0x33, 0x00, 0xfe, 0x03, 0x99, 0x00, 0xbf,
+ 0x03, 0x99, 0x00, 0xaf, 0x06, 0x08, 0x00, 0xc3, 0x02, 0xe2, 0x00, 0x54,
+ 0x02, 0xe2, 0x00, 0x58, 0x03, 0x99, 0x01, 0x4d, 0x04, 0x94, 0x00, 0x9c,
+ 0x04, 0x94, 0x00, 0x8e, 0x02, 0x49, 0x00, 0xc5, 0x03, 0x99, 0x01, 0x05,
+ 0x02, 0xe2, 0x00, 0x7b, 0x03, 0x64, 0x00, 0x56, 0x04, 0x67, 0x00, 0xad,
+ 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x58,
+ 0x03, 0xd2, 0x00, 0x80, 0x04, 0xec, 0x00, 0x0e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0xec, 0x00, 0x0e, 0x07, 0x03, 0x00, 0x07, 0x05, 0x07, 0x00, 0x67,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x8c, 0x00, 0xb4, 0x02, 0x1f, 0x00, 0x35, 0x02, 0x1f, 0x00, 0x91,
+ 0x02, 0x1f, 0xff, 0xff, 0x02, 0x1f, 0x00, 0x05, 0x05, 0x94, 0x00, 0x09,
+ 0x05, 0x62, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67, 0x05, 0xaa, 0x00, 0x67,
+ 0x05, 0xaa, 0x00, 0x67, 0x05, 0xaa, 0x00, 0x67, 0x05, 0xaa, 0x00, 0x67,
+ 0x06, 0x08, 0x00, 0xfc, 0x05, 0xaa, 0x00, 0x5b, 0x05, 0x45, 0x00, 0xa0,
+ 0x05, 0x45, 0x00, 0xa0, 0x05, 0x45, 0x00, 0xa0, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0x5b, 0x00, 0xb4, 0x04, 0x89, 0x00, 0xa7,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0x69, 0x00, 0x6e,
+ 0x07, 0x11, 0x00, 0x6e, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65,
+ 0x02, 0x00, 0xff, 0xcd, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0xff, 0xe2,
+ 0x02, 0x00, 0xff, 0xf6, 0x04, 0x67, 0x00, 0x65, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65, 0x06, 0x08, 0x00, 0xc3,
+ 0x04, 0x67, 0x00, 0x40, 0x04, 0x90, 0x00, 0x9c, 0x04, 0x90, 0x00, 0x9c,
+ 0x04, 0x90, 0x00, 0x9c, 0x04, 0x90, 0x00, 0x9c, 0x04, 0x42, 0x00, 0x36,
+ 0x04, 0x92, 0x00, 0xa7, 0x04, 0x42, 0x00, 0x36, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x05, 0x07, 0x00, 0x67,
+ 0x03, 0xf5, 0x00, 0x65, 0x05, 0x07, 0x00, 0x67, 0x03, 0xf5, 0x00, 0x65,
+ 0x05, 0x07, 0x00, 0x67, 0x03, 0xf5, 0x00, 0x65, 0x05, 0x07, 0x00, 0x67,
+ 0x03, 0xf5, 0x00, 0x65, 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x65,
+ 0x05, 0x94, 0x00, 0x09, 0x04, 0x92, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65, 0x05, 0x94, 0x00, 0x67,
+ 0x04, 0x92, 0x00, 0x65, 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65,
+ 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0x90, 0xff, 0xe8, 0x06, 0x98, 0x00, 0xb4, 0x05, 0x00, 0x00, 0x6c,
+ 0x02, 0x1f, 0xff, 0xe7, 0x02, 0x00, 0xff, 0xd8, 0x02, 0x1f, 0x00, 0x02,
+ 0x02, 0x00, 0xff, 0xf4, 0x02, 0x1f, 0xff, 0xf7, 0x02, 0x00, 0xff, 0xe7,
+ 0x02, 0x1f, 0x00, 0x9e, 0x02, 0x00, 0x00, 0x87, 0x02, 0x1f, 0x00, 0xb4,
+ 0x02, 0x00, 0x00, 0xad, 0x04, 0x3f, 0x00, 0xb4, 0x04, 0x00, 0x00, 0xad,
+ 0x02, 0x1f, 0xff, 0xa1, 0x02, 0x00, 0xff, 0xdf, 0x04, 0xb8, 0x00, 0xb4,
+ 0x04, 0x2b, 0x00, 0xa7, 0x04, 0x2b, 0x00, 0xa7, 0x04, 0x02, 0x00, 0xb4,
+ 0x02, 0x00, 0x00, 0xad, 0x04, 0x02, 0x00, 0xb4, 0x02, 0x00, 0x00, 0x7a,
+ 0x04, 0x02, 0x00, 0xb4, 0x02, 0xb3, 0x00, 0xad, 0x04, 0x02, 0x00, 0xb4,
+ 0x02, 0x76, 0x00, 0xad, 0x04, 0x0b, 0xff, 0xf4, 0x02, 0x0b, 0x00, 0x01,
+ 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0x90, 0x00, 0xa7, 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x05, 0xdb, 0x00, 0xb8, 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x07, 0xb3, 0x00, 0x67, 0x07, 0x5d, 0x00, 0x65, 0x05, 0x00, 0x00, 0xb4,
+ 0x02, 0xf5, 0x00, 0xa7, 0x05, 0x00, 0x00, 0xb4, 0x02, 0xf5, 0x00, 0x75,
+ 0x05, 0x00, 0x00, 0xb4, 0x02, 0xf5, 0x00, 0xa7, 0x04, 0x92, 0x00, 0x79,
+ 0x03, 0xc0, 0x00, 0x63, 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63,
+ 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63, 0x04, 0x92, 0x00, 0x79,
+ 0x03, 0xc0, 0x00, 0x63, 0x04, 0x65, 0xff, 0xfb, 0x02, 0xd2, 0x00, 0x31,
+ 0x04, 0x65, 0xff, 0xfb, 0x02, 0xd2, 0x00, 0x31, 0x04, 0x65, 0xff, 0xfb,
+ 0x02, 0xd2, 0x00, 0x31, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x07, 0x1e, 0x00, 0x3d, 0x05, 0xe3, 0x00, 0x4d,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36, 0x04, 0x65, 0xff, 0xfd,
+ 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0xee, 0x00, 0x52,
+ 0x03, 0xc7, 0x00, 0x4f, 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f,
+ 0x02, 0x88, 0x00, 0x2a, 0x04, 0x92, 0x00, 0x1c, 0x05, 0x4a, 0xff, 0xa2,
+ 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa7, 0x04, 0xf0, 0x00, 0x00,
+ 0x04, 0x92, 0x00, 0x00, 0x05, 0x10, 0x00, 0x67, 0x05, 0x07, 0x00, 0x67,
+ 0x03, 0xf5, 0x00, 0x65, 0x05, 0x94, 0x00, 0x09, 0x05, 0xe5, 0xff, 0xa2,
+ 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0x75, 0x05, 0xaa, 0x00, 0x69, 0x04, 0x6c, 0x00, 0x93,
+ 0x04, 0x24, 0xff, 0xa1, 0x02, 0x88, 0xff, 0x8c, 0x05, 0x94, 0x00, 0x67,
+ 0x04, 0xf1, 0x00, 0x07, 0x07, 0x15, 0x00, 0xa7, 0x02, 0x8b, 0x00, 0xb4,
+ 0x02, 0x1f, 0x00, 0x09, 0x05, 0x5e, 0x00, 0xb4, 0x04, 0x2b, 0x00, 0xa6,
+ 0x02, 0x00, 0x00, 0x09, 0x04, 0x42, 0x00, 0x36, 0x07, 0x03, 0x00, 0xa0,
+ 0x05, 0x62, 0xff, 0xa1, 0x04, 0x90, 0x00, 0xa7, 0x05, 0xaa, 0x00, 0x67,
+ 0x06, 0x93, 0x00, 0x5c, 0x04, 0x67, 0x00, 0x6a, 0x06, 0xd4, 0x00, 0x67,
+ 0x05, 0x77, 0x00, 0x65, 0x04, 0xb1, 0xff, 0xa2, 0x04, 0x92, 0x00, 0xa6,
+ 0x05, 0x00, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x66, 0x03, 0xc0, 0x00, 0x5a,
+ 0x04, 0x8c, 0x00, 0xb4, 0x02, 0x6b, 0xff, 0x0d, 0x02, 0xd2, 0x00, 0x31,
+ 0x04, 0x65, 0x00, 0x15, 0x02, 0xd2, 0x00, 0x31, 0x04, 0x65, 0xff, 0xfb,
+ 0x06, 0x2d, 0x00, 0x9b, 0x04, 0x90, 0x00, 0x9e, 0x05, 0x80, 0x00, 0x46,
+ 0x05, 0x30, 0x00, 0xb4, 0x05, 0x5a, 0xff, 0xfd, 0x05, 0x42, 0x00, 0x36,
+ 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0xcb, 0x00, 0x90,
+ 0x04, 0xcb, 0x00, 0x52, 0x04, 0x28, 0x00, 0x5d, 0x03, 0xc7, 0x00, 0x65,
+ 0x04, 0x94, 0x00, 0x87, 0x04, 0xcb, 0x00, 0x53, 0x04, 0x28, 0x00, 0x5d,
+ 0x03, 0xac, 0x00, 0x4f, 0x04, 0x92, 0x00, 0xa7, 0x02, 0x1f, 0x00, 0xb4,
+ 0x03, 0x8b, 0x00, 0xb4, 0x03, 0x4e, 0x00, 0x12, 0x02, 0x20, 0x00, 0xb4,
+ 0x0a, 0x3c, 0x00, 0xb4, 0x09, 0x5a, 0x00, 0xb4, 0x08, 0x4f, 0x00, 0x65,
+ 0x06, 0x03, 0x00, 0xb4, 0x05, 0xa9, 0x00, 0xb4, 0x03, 0x49, 0x00, 0xad,
+ 0x06, 0xb4, 0x00, 0xb4, 0x06, 0xa6, 0x00, 0xb4, 0x05, 0xbd, 0x00, 0xa7,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x02, 0x1f, 0xff, 0xff,
+ 0x02, 0x00, 0xff, 0xe4, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x04, 0x6e, 0x00, 0x65, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x07, 0x03, 0x00, 0x07, 0x07, 0x11, 0x00, 0x6e, 0x05, 0x94, 0x00, 0x67,
+ 0x04, 0x92, 0x00, 0x65, 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x2b, 0xff, 0xec, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0xcb, 0x00, 0x90, 0x04, 0x28, 0x00, 0x4f, 0x02, 0x00, 0xff, 0xdf,
+ 0x0a, 0x3c, 0x00, 0xb4, 0x09, 0x5a, 0x00, 0xb4, 0x08, 0x4f, 0x00, 0x65,
+ 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65, 0x08, 0x03, 0x00, 0xb4,
+ 0x04, 0xe9, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x07, 0x03, 0x00, 0x07,
+ 0x07, 0x11, 0x00, 0x6e, 0x05, 0xaa, 0x00, 0x5b, 0x04, 0x67, 0x00, 0x40,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x02, 0x1f, 0xff, 0xb0,
+ 0x02, 0x00, 0xff, 0xca, 0x02, 0x1f, 0x00, 0x04, 0x02, 0x00, 0xff, 0xe6,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0x00, 0x00, 0xb3, 0x02, 0xf5, 0x00, 0x75,
+ 0x05, 0x00, 0x00, 0xb4, 0x02, 0xf5, 0x00, 0xa7, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63, 0x04, 0x65, 0xff, 0xfb,
+ 0x02, 0xd2, 0x00, 0x31, 0x04, 0x83, 0x00, 0x8c, 0x03, 0xc1, 0x00, 0x3f,
+ 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0xff, 0xf2, 0x05, 0x4b, 0x00, 0xb4,
+ 0x06, 0x08, 0x00, 0x65, 0x05, 0x07, 0x00, 0x65, 0x04, 0x65, 0x00, 0x65,
+ 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x04, 0x65, 0xff, 0xfd,
+ 0x04, 0x42, 0x00, 0x36, 0x03, 0x6a, 0x00, 0x7c, 0x06, 0x11, 0x00, 0xa7,
+ 0x03, 0x6f, 0x00, 0x31, 0x02, 0x00, 0xff, 0xdf, 0x07, 0x2f, 0x00, 0x65,
+ 0x07, 0x2f, 0x00, 0x65, 0x04, 0xec, 0xff, 0xfe, 0x05, 0x07, 0x00, 0x0a,
+ 0x03, 0xf5, 0x00, 0x08, 0x04, 0x02, 0x00, 0x09, 0x04, 0x65, 0xff, 0xba,
+ 0x03, 0xc0, 0x00, 0x63, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0x57, 0x00, 0x48,
+ 0x03, 0x72, 0x00, 0x48, 0x04, 0xf0, 0x00, 0x09, 0x05, 0x45, 0x00, 0x0a,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x02, 0x1f, 0xff, 0xa1, 0x02, 0x00, 0xff, 0xdf, 0x05, 0xa0, 0x00, 0x67,
+ 0x04, 0x92, 0x00, 0x65, 0x05, 0x00, 0x00, 0x09, 0x02, 0xf5, 0x00, 0x0c,
+ 0x04, 0x65, 0xff, 0xf7, 0x04, 0x42, 0x00, 0x09, 0x04, 0x52, 0x00, 0x9c,
+ 0x04, 0x92, 0x00, 0x65, 0x04, 0x92, 0x00, 0xa7, 0x04, 0x92, 0x00, 0xa7,
+ 0x03, 0xf4, 0x00, 0x72, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x92, 0x00, 0x65,
+ 0x05, 0x03, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65,
+ 0x05, 0xe6, 0x00, 0x6f, 0x03, 0xe4, 0x00, 0x77, 0x03, 0xd4, 0x00, 0x77,
+ 0x05, 0x95, 0x00, 0x77, 0x04, 0xc8, 0x00, 0x65, 0x02, 0x00, 0xff, 0xdf,
+ 0x05, 0x02, 0x00, 0x65, 0x04, 0x92, 0x00, 0x65, 0x04, 0x88, 0x00, 0x65,
+ 0x04, 0x4a, 0x00, 0x56, 0x04, 0x4a, 0x00, 0x56, 0x04, 0x90, 0x00, 0x9c,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x02, 0x00, 0x00, 0x0c,
+ 0x02, 0x6f, 0x00, 0x95, 0x02, 0xac, 0x00, 0x68, 0x02, 0xd9, 0x00, 0x43,
+ 0x03, 0x82, 0x00, 0x45, 0x02, 0x01, 0x00, 0xad, 0x05, 0x15, 0x00, 0xad,
+ 0x07, 0x03, 0x00, 0xa7, 0x07, 0x03, 0x00, 0xa7, 0x07, 0x03, 0x00, 0xa7,
+ 0x04, 0xa6, 0xff, 0xdf, 0x04, 0x9f, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa1,
+ 0x04, 0x67, 0x00, 0x65, 0x06, 0x2d, 0x00, 0x65, 0x05, 0x3d, 0x00, 0x85,
+ 0x04, 0xbf, 0x00, 0x64, 0x02, 0xfb, 0x00, 0x00, 0x02, 0xfb, 0x00, 0x00,
+ 0x02, 0xfa, 0x00, 0x00, 0x02, 0xf5, 0x00, 0xa7, 0x02, 0xf4, 0x00, 0xa7,
+ 0x03, 0xd1, 0x00, 0x76, 0x03, 0xd1, 0x00, 0x68, 0x04, 0x58, 0x00, 0xa7,
+ 0x04, 0x58, 0x00, 0xa7, 0x03, 0xc0, 0x00, 0x63, 0x02, 0x6b, 0xff, 0xdd,
+ 0x02, 0x6b, 0xff, 0xdd, 0x03, 0x52, 0x00, 0x31, 0x02, 0x6b, 0xff, 0x0d,
+ 0x02, 0xd2, 0x00, 0x31, 0x02, 0xd2, 0x00, 0x31, 0x04, 0x90, 0x00, 0x00,
+ 0x04, 0x72, 0x00, 0x65, 0x04, 0x4e, 0x00, 0xad, 0x04, 0x42, 0x00, 0x36,
+ 0x05, 0xe3, 0x00, 0x4d, 0x04, 0x42, 0x00, 0x36, 0x04, 0x65, 0x00, 0x5b,
+ 0x03, 0xc7, 0x00, 0x4f, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0x28, 0x00, 0x4f,
+ 0x04, 0x28, 0x00, 0x62, 0x03, 0xac, 0x00, 0x4f, 0x03, 0xac, 0x00, 0x4f,
+ 0x03, 0xac, 0x00, 0x4f, 0x03, 0xac, 0x00, 0x4f, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x2c, 0x00, 0xa7, 0x04, 0xc8, 0x00, 0x65, 0x05, 0x19, 0x00, 0x65,
+ 0x04, 0xb5, 0x00, 0xa7, 0x02, 0x1a, 0xff, 0x0d, 0x04, 0xcd, 0x00, 0xa7,
+ 0x03, 0xa6, 0x00, 0xa7, 0x05, 0x3c, 0x00, 0x65, 0x03, 0xac, 0x00, 0x4f,
+ 0x03, 0xac, 0x00, 0x4f, 0x07, 0x4d, 0x00, 0x65, 0x07, 0x9d, 0x00, 0x65,
+ 0x07, 0x4a, 0x00, 0x65, 0x05, 0xfa, 0x00, 0x31, 0x04, 0x64, 0x00, 0x31,
+ 0x05, 0x9a, 0x00, 0x31, 0x06, 0x1b, 0x00, 0x2a, 0x05, 0x14, 0x00, 0xad,
+ 0x04, 0xb6, 0x00, 0xad, 0x03, 0xb5, 0x00, 0x30, 0x03, 0xb5, 0x00, 0x30,
+ 0x04, 0xc2, 0x00, 0x00, 0x04, 0xc7, 0x00, 0x00, 0x02, 0xe9, 0x00, 0x69,
+ 0x02, 0xdf, 0x00, 0x69, 0x01, 0x42, 0xff, 0xec, 0x01, 0xdd, 0x00, 0x69,
+ 0x02, 0x20, 0x00, 0x40, 0x02, 0x21, 0x00, 0x40, 0x02, 0xba, 0x00, 0x1c,
+ 0x03, 0xb5, 0x00, 0x30, 0x02, 0xae, 0x00, 0x22, 0x02, 0x01, 0x00, 0x90,
+ 0x03, 0x4f, 0x00, 0x90, 0x02, 0x49, 0x00, 0x9c, 0x02, 0x49, 0x00, 0xa0,
+ 0x02, 0x49, 0x00, 0xb0, 0x02, 0x36, 0x00, 0x69, 0x02, 0x36, 0x00, 0x69,
+ 0x02, 0xa9, 0x00, 0x69, 0x02, 0xa9, 0x00, 0x69, 0x03, 0x99, 0x00, 0xf0,
+ 0x03, 0x99, 0x00, 0xf0, 0x03, 0x99, 0x00, 0xad, 0x03, 0x99, 0x00, 0xad,
+ 0x03, 0x99, 0x00, 0xad, 0x03, 0x99, 0x00, 0xad, 0x01, 0xfa, 0x00, 0xc0,
+ 0x03, 0x99, 0x00, 0xbf, 0x03, 0x99, 0x01, 0x4d, 0x03, 0x99, 0x00, 0x99,
+ 0x01, 0xfa, 0x00, 0xc0, 0x03, 0x99, 0x00, 0xbf, 0x03, 0x99, 0x00, 0x99,
+ 0x03, 0x99, 0x01, 0x4d, 0x02, 0x6d, 0x00, 0x63, 0x02, 0x6d, 0x00, 0x63,
+ 0x02, 0x36, 0x00, 0x69, 0x02, 0x36, 0x00, 0x69, 0x03, 0x99, 0x01, 0x02,
+ 0x03, 0x99, 0x01, 0x02, 0x02, 0xce, 0x00, 0x5a, 0x02, 0x49, 0x00, 0x5a,
+ 0x03, 0x99, 0x00, 0xb3, 0x03, 0x99, 0x01, 0x71, 0x03, 0x99, 0x00, 0xd6,
+ 0x03, 0x99, 0x01, 0x2a, 0x03, 0x99, 0x00, 0xa3, 0x03, 0x99, 0x00, 0xd8,
+ 0x02, 0x45, 0x00, 0x00, 0x03, 0x99, 0x00, 0xd7, 0x03, 0x10, 0x00, 0x69,
+ 0x01, 0x32, 0x00, 0x6d, 0x02, 0xaf, 0x00, 0x69, 0x03, 0x32, 0x00, 0x69,
+ 0x02, 0xa9, 0x00, 0x69, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x99, 0x00, 0xad, 0x03, 0x99, 0x00, 0xbf, 0x03, 0xba, 0x00, 0x9c,
+ 0x03, 0x99, 0x00, 0xd6, 0x03, 0x99, 0x00, 0xa3, 0x00, 0x00, 0xfc, 0xfe,
+ 0x00, 0x00, 0xfd, 0xb3, 0x00, 0x00, 0xfd, 0x15, 0x00, 0x00, 0xfd, 0x09,
+ 0x00, 0x00, 0xfd, 0x2a, 0x00, 0x00, 0xfc, 0x55, 0x00, 0x00, 0xfd, 0x13,
+ 0x00, 0x00, 0xfd, 0xdf, 0x00, 0x00, 0xfd, 0x28, 0x00, 0x00, 0xfd, 0x7f,
+ 0x00, 0x00, 0xfd, 0x3b, 0x00, 0x00, 0xfd, 0x42, 0x00, 0x00, 0xfd, 0x18,
+ 0x00, 0x00, 0xfd, 0xf6, 0x00, 0x00, 0xfd, 0x3f, 0x00, 0x00, 0xfc, 0xbb,
+ 0x00, 0x00, 0xfd, 0x13, 0x00, 0x00, 0xfd, 0x13, 0x00, 0x00, 0xfe, 0x50,
+ 0x00, 0x00, 0xfd, 0xcf, 0x00, 0x00, 0xfd, 0xcf, 0x00, 0x00, 0xff, 0x87,
+ 0x00, 0x00, 0xfc, 0xfe, 0x00, 0x00, 0xfd, 0xb3, 0x00, 0x00, 0xfd, 0x6e,
+ 0x00, 0x00, 0xfd, 0xfe, 0x00, 0x00, 0xfe, 0x80, 0x00, 0x00, 0xff, 0x0c,
+ 0x00, 0x00, 0xfd, 0xc0, 0x00, 0x00, 0xfd, 0x57, 0x00, 0x00, 0xfd, 0x57,
+ 0x00, 0x00, 0xfd, 0x6e, 0x00, 0x00, 0xfd, 0x57, 0x00, 0x00, 0xfd, 0xbb,
+ 0x00, 0x00, 0xfd, 0xb8, 0x00, 0x00, 0xfd, 0xdf, 0x00, 0x00, 0xfd, 0x27,
+ 0x00, 0x00, 0xfd, 0x71, 0x00, 0x00, 0xfd, 0xad, 0x00, 0x00, 0xfd, 0x6d,
+ 0x00, 0x00, 0xfd, 0x92, 0x00, 0x00, 0xfd, 0xf6, 0x00, 0x00, 0xfd, 0x3f,
+ 0x00, 0x00, 0xfc, 0xc0, 0x00, 0x00, 0xfd, 0x18, 0x00, 0x00, 0xfd, 0x13,
+ 0x00, 0x00, 0xfd, 0x13, 0x00, 0x00, 0xfd, 0x13, 0x00, 0x00, 0xfd, 0x09,
+ 0x00, 0x00, 0xfd, 0x2a, 0x00, 0x00, 0xfc, 0x55, 0x00, 0x00, 0xfc, 0x55,
+ 0x00, 0x00, 0xfb, 0xfe, 0x00, 0x00, 0xfd, 0xb9, 0x00, 0x00, 0xfb, 0x6f,
+ 0x00, 0x00, 0xfb, 0xde, 0x00, 0x00, 0xfa, 0xaa, 0x00, 0x00, 0xfd, 0xe8,
+ 0x00, 0x00, 0xfd, 0x40, 0x00, 0x00, 0xfd, 0x6b, 0x00, 0x00, 0xfc, 0xc0,
+ 0x00, 0x00, 0xfd, 0x74, 0x00, 0x00, 0xfe, 0x39, 0x00, 0x00, 0xfc, 0x55,
+ 0x00, 0x00, 0xfc, 0xfe, 0x00, 0x00, 0xfd, 0xb3, 0x00, 0x00, 0xfd, 0x09,
+ 0x00, 0x00, 0xfd, 0xcf, 0x00, 0x00, 0xfd, 0x37, 0x00, 0x00, 0xfd, 0xff,
+ 0x00, 0x00, 0xfd, 0x27, 0x00, 0x00, 0xfd, 0x69, 0x00, 0x00, 0xfd, 0x60,
+ 0x00, 0x00, 0xfd, 0x69, 0x00, 0x00, 0xfd, 0x0b, 0x00, 0x00, 0xfd, 0x0b,
+ 0x00, 0x00, 0xfd, 0x0b, 0x00, 0x00, 0xfc, 0xc0, 0x00, 0x00, 0xfd, 0x7b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xb9, 0x00, 0x00, 0xfd, 0x13,
+ 0x00, 0x00, 0xfd, 0x74, 0x00, 0x00, 0xfd, 0xb9, 0x00, 0x00, 0xff, 0x43,
+ 0x00, 0x00, 0xfc, 0xe8, 0x00, 0x00, 0xfc, 0xcc, 0x00, 0x00, 0xfc, 0xcc,
+ 0x00, 0x00, 0xfc, 0xcc, 0x00, 0x00, 0xfc, 0xcc, 0x00, 0x00, 0xfd, 0x73,
+ 0x00, 0x00, 0xfc, 0xcc, 0x00, 0x00, 0xfc, 0xd2, 0x04, 0xb6, 0x00, 0xb4,
+ 0x04, 0x16, 0x00, 0xad, 0x06, 0x34, 0x00, 0xb4, 0x04, 0xa9, 0x00, 0xb4,
+ 0x02, 0x01, 0x00, 0x90, 0x02, 0x01, 0x00, 0x90, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0xad, 0x00, 0xa7, 0x03, 0x99, 0x01, 0x8a, 0x03, 0xf4, 0x00, 0x72,
+ 0x03, 0xf5, 0x00, 0x65, 0x03, 0xf4, 0x00, 0x72, 0x02, 0x6d, 0x00, 0x8e,
+ 0x03, 0x99, 0x01, 0x4d, 0x03, 0x99, 0x00, 0xc1, 0x04, 0xfc, 0x00, 0x0e,
+ 0x02, 0x49, 0x00, 0xc5, 0x05, 0x5f, 0xff, 0xea, 0x06, 0x45, 0xff, 0xf5,
+ 0x02, 0xf0, 0xff, 0xef, 0x05, 0xd9, 0xff, 0xf4, 0x05, 0xf0, 0xff, 0xe5,
+ 0x05, 0xf1, 0xff, 0xdf, 0x02, 0x6f, 0x00, 0x04, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x02, 0x00, 0xb4, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0xee, 0x00, 0x52, 0x05, 0x6a, 0x00, 0xb4,
+ 0x05, 0xaa, 0x00, 0x67, 0x02, 0x1f, 0x00, 0xb4, 0x04, 0xb8, 0x00, 0xb4,
+ 0x04, 0xec, 0x00, 0x0e, 0x06, 0x36, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0x8c, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0x57, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x65, 0xff, 0xfb,
+ 0x04, 0x65, 0xff, 0xfd, 0x05, 0xaa, 0x00, 0x67, 0x04, 0xee, 0x00, 0x36,
+ 0x05, 0xaa, 0x00, 0x67, 0x05, 0x80, 0x00, 0x46, 0x02, 0x1f, 0x00, 0x05,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0xbf, 0x00, 0x65, 0x03, 0xe4, 0x00, 0x77,
+ 0x04, 0x90, 0x00, 0xa7, 0x02, 0x6f, 0x00, 0x95, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0x98, 0x00, 0xac, 0x04, 0x42, 0x00, 0x1c,
+ 0x04, 0x67, 0x00, 0x65, 0x03, 0xe4, 0x00, 0x77, 0x03, 0xea, 0x00, 0x60,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x67, 0x00, 0x65, 0x02, 0x6f, 0x00, 0x95,
+ 0x04, 0x3e, 0x00, 0xab, 0x04, 0x42, 0x00, 0x36, 0x04, 0x94, 0x00, 0x9c,
+ 0x04, 0x05, 0x00, 0x42, 0x04, 0x03, 0x00, 0x60, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x55, 0x00, 0x42, 0x04, 0x92, 0x00, 0xa7, 0x04, 0x39, 0x00, 0x65,
+ 0x04, 0x90, 0x00, 0x65, 0x04, 0x55, 0x00, 0x5a, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0xbf, 0x00, 0x64, 0x04, 0x28, 0x00, 0x35, 0x04, 0xbf, 0x00, 0x64,
+ 0x06, 0x07, 0x00, 0x79, 0x02, 0x6f, 0x00, 0x04, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x2a, 0x00, 0x86, 0x06, 0x07, 0x00, 0x79,
+ 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x6c, 0x00, 0x96, 0x04, 0x75, 0x00, 0x65,
+ 0x05, 0x07, 0x00, 0x4e, 0x06, 0x10, 0xff, 0xe5, 0x05, 0x07, 0x00, 0x4e,
+ 0x04, 0xbf, 0x00, 0x64, 0x06, 0x07, 0x00, 0x3a, 0x04, 0xc7, 0x00, 0x64,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x04, 0xab, 0x00, 0x7d,
+ 0x04, 0x39, 0x00, 0x65, 0x04, 0x24, 0x00, 0xb4, 0x03, 0x4d, 0xff, 0x54,
+ 0x04, 0xbf, 0x00, 0xa1, 0x04, 0xbf, 0x00, 0xab, 0x06, 0x3a, 0x00, 0x66,
+ 0x04, 0x84, 0x00, 0x6b, 0x06, 0xb8, 0x00, 0x67, 0x06, 0x07, 0x00, 0x79,
+ 0x05, 0x75, 0x00, 0x67, 0x04, 0xbf, 0x00, 0x65, 0x05, 0xb2, 0x00, 0xb4,
+ 0x04, 0x6d, 0x00, 0x28, 0x04, 0xf1, 0x00, 0x47, 0x04, 0x5e, 0x00, 0x5a,
+ 0x05, 0x86, 0x00, 0x67, 0x04, 0x80, 0x00, 0x30, 0x05, 0x08, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x65, 0x00, 0x27, 0x03, 0xdc, 0x00, 0x31,
+ 0x04, 0xc7, 0x00, 0x64, 0x04, 0x92, 0x00, 0xa7, 0x03, 0xf5, 0x00, 0x65,
+ 0x02, 0x00, 0xff, 0xdf, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x6e, 0x00, 0xb0, 0x04, 0x5b, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa7,
+ 0x05, 0x07, 0x00, 0x67, 0x06, 0x36, 0x00, 0xb4, 0x04, 0xaf, 0x00, 0x72,
+ 0x04, 0x92, 0x00, 0x4c, 0x05, 0x10, 0x00, 0x67, 0x05, 0x07, 0x00, 0x67,
+ 0x05, 0x10, 0x00, 0x67, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4,
+ 0x05, 0xa9, 0xff, 0xfb, 0x04, 0x64, 0x00, 0xb4, 0x05, 0x07, 0x00, 0x67,
+ 0x04, 0x92, 0x00, 0x79, 0x02, 0x1f, 0x00, 0xb4, 0x02, 0x1f, 0x00, 0x05,
+ 0x02, 0x1f, 0xff, 0xa1, 0x07, 0xe0, 0x00, 0x4b, 0x07, 0x86, 0x00, 0xb4,
+ 0x05, 0xa9, 0xff, 0xfb, 0x05, 0x1c, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0x63, 0x00, 0x1f, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0xf0, 0x00, 0xb4, 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x64, 0x00, 0xb4,
+ 0x05, 0xa0, 0x00, 0x5a, 0x04, 0x8c, 0x00, 0xb4, 0x07, 0xc1, 0x00, 0x24,
+ 0x04, 0x9d, 0x00, 0x79, 0x05, 0x62, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4,
+ 0x05, 0x1c, 0x00, 0xb4, 0x05, 0x6a, 0x00, 0x4b, 0x06, 0x36, 0x00, 0xb4,
+ 0x05, 0x6a, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0x57, 0x00, 0xb4, 0x05, 0x07, 0x00, 0x67, 0x04, 0x65, 0xff, 0xfb,
+ 0x04, 0x63, 0x00, 0x1f, 0x06, 0x32, 0x00, 0x6c, 0x04, 0xee, 0x00, 0x36,
+ 0x05, 0x97, 0x00, 0xb4, 0x04, 0xef, 0x00, 0x9d, 0x07, 0xb3, 0x00, 0xb4,
+ 0x07, 0xe0, 0x00, 0xb4, 0x05, 0xfe, 0x00, 0x36, 0x06, 0x5a, 0x00, 0xb4,
+ 0x04, 0xf0, 0x00, 0xb4, 0x05, 0x07, 0x00, 0x63, 0x07, 0xc5, 0x00, 0xbd,
+ 0x05, 0x00, 0x00, 0x7a, 0x04, 0x69, 0x00, 0x6e, 0x04, 0x70, 0x00, 0x64,
+ 0x04, 0x3e, 0x00, 0xa7, 0x03, 0xc8, 0x00, 0xa7, 0x04, 0xfa, 0x00, 0x60,
+ 0x04, 0x6e, 0x00, 0x65, 0x06, 0x7c, 0x00, 0x3f, 0x03, 0xd4, 0x00, 0x77,
+ 0x04, 0xad, 0x00, 0xa7, 0x04, 0xad, 0x00, 0xa7, 0x04, 0x59, 0x00, 0xa7,
+ 0x04, 0x9a, 0x00, 0x44, 0x05, 0x6e, 0x00, 0xa7, 0x04, 0xb5, 0x00, 0xa7,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0xb5, 0x00, 0xa7, 0x04, 0x92, 0x00, 0xa7,
+ 0x03, 0xf5, 0x00, 0x65, 0x04, 0x31, 0x00, 0x36, 0x04, 0x42, 0x00, 0x36,
+ 0x06, 0x27, 0x00, 0x64, 0x04, 0x42, 0x00, 0x35, 0x04, 0xe6, 0x00, 0xa7,
+ 0x04, 0x41, 0x00, 0x87, 0x06, 0x96, 0x00, 0xa7, 0x06, 0xc8, 0x00, 0xa7,
+ 0x05, 0x16, 0x00, 0x37, 0x05, 0xaf, 0x00, 0xa7, 0x04, 0x3e, 0x00, 0xa7,
+ 0x03, 0xf3, 0x00, 0x65, 0x06, 0x0f, 0x00, 0xad, 0x04, 0x54, 0x00, 0x68,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x80, 0x00, 0x2a,
+ 0x03, 0xc8, 0x00, 0xa7, 0x03, 0xf3, 0x00, 0x65, 0x03, 0xc0, 0x00, 0x63,
+ 0x02, 0x00, 0x00, 0xad, 0x02, 0x00, 0xff, 0xf6, 0x02, 0x00, 0xff, 0xdf,
+ 0x06, 0x7f, 0x00, 0x44, 0x06, 0x78, 0x00, 0xa7, 0x04, 0xb1, 0x00, 0x2a,
+ 0x04, 0x59, 0x00, 0xa7, 0x04, 0xad, 0x00, 0xa7, 0x04, 0x42, 0x00, 0x36,
+ 0x04, 0xb5, 0x00, 0xa7, 0x06, 0xb8, 0x00, 0x67, 0x06, 0x07, 0x00, 0x79,
+ 0x05, 0x8c, 0x00, 0x1b, 0x04, 0xd6, 0x00, 0x1b, 0x06, 0xc9, 0x00, 0xbd,
+ 0x05, 0x64, 0x00, 0xad, 0x06, 0x54, 0x00, 0x0e, 0x05, 0xa3, 0x00, 0x2d,
+ 0x08, 0x59, 0x00, 0xb4, 0x07, 0x35, 0x00, 0xad, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x60, 0x07, 0x64, 0x00, 0xb4, 0x05, 0xef, 0x00, 0xad,
+ 0x04, 0x94, 0x00, 0x67, 0x03, 0xe4, 0x00, 0x51, 0x06, 0x2a, 0x00, 0x0e,
+ 0x06, 0x4f, 0x00, 0x2d, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0xa0, 0x00, 0x0e, 0x04, 0xc9, 0x00, 0x2d, 0x05, 0xa0, 0x00, 0x0e,
+ 0x04, 0xc9, 0x00, 0x2d, 0x07, 0x24, 0x00, 0x67, 0x06, 0x82, 0x00, 0x65,
+ 0x06, 0xdc, 0x00, 0x67, 0x05, 0x75, 0x00, 0x65, 0x08, 0x7e, 0x00, 0x6a,
+ 0x07, 0x66, 0x00, 0x88, 0x06, 0xb8, 0x00, 0x67, 0x06, 0x07, 0x00, 0x79,
+ 0x05, 0x07, 0x00, 0x67, 0x03, 0xf5, 0x00, 0x65, 0x03, 0x9e, 0x00, 0x35,
+ 0x00, 0x00, 0xfc, 0x45, 0x00, 0x00, 0xfd, 0x54, 0x00, 0x00, 0xfd, 0xee,
+ 0x00, 0x00, 0xfd, 0xee, 0x00, 0x00, 0xfa, 0x69, 0x03, 0x02, 0xf8, 0xa7,
+ 0x03, 0x02, 0xf9, 0x1c, 0x05, 0x8f, 0x00, 0xb4, 0x04, 0xdf, 0x00, 0xad,
+ 0x04, 0xf0, 0x00, 0x1d, 0x04, 0x3e, 0x00, 0x22, 0x04, 0x57, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0xa7, 0x04, 0x64, 0x00, 0xb4, 0x03, 0xc8, 0x00, 0xa7,
+ 0x04, 0xdb, 0x00, 0x3f, 0x04, 0x40, 0x00, 0x32, 0x04, 0x7e, 0x00, 0xb4,
+ 0x03, 0xd0, 0x00, 0xa7, 0x07, 0xc1, 0x00, 0x24, 0x06, 0x7c, 0x00, 0x3f,
+ 0x04, 0x9d, 0x00, 0x79, 0x03, 0xd4, 0x00, 0x77, 0x05, 0x1c, 0x00, 0xb4,
+ 0x04, 0x59, 0x00, 0xa7, 0x05, 0x1c, 0x00, 0xb4, 0x04, 0x59, 0x00, 0xa7,
+ 0x05, 0x1c, 0x00, 0x1d, 0x04, 0x59, 0x00, 0x36, 0x06, 0x2a, 0x00, 0x2d,
+ 0x05, 0xfc, 0x00, 0x25, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0xc1, 0x00, 0xad,
+ 0x07, 0x4d, 0x00, 0xb4, 0x06, 0x50, 0x00, 0xad, 0x07, 0xc8, 0x00, 0xb4,
+ 0x06, 0x97, 0x00, 0xad, 0x06, 0x52, 0x00, 0x67, 0x04, 0xfd, 0x00, 0x65,
+ 0x05, 0x07, 0x00, 0x67, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x65, 0xff, 0xfb,
+ 0x04, 0x31, 0x00, 0x36, 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36, 0x04, 0xee, 0x00, 0x36,
+ 0x04, 0x42, 0x00, 0x35, 0x06, 0xb9, 0xff, 0xfb, 0x05, 0xce, 0x00, 0x04,
+ 0x04, 0xef, 0x00, 0x9d, 0x04, 0x41, 0x00, 0x87, 0x04, 0xef, 0x00, 0x9d,
+ 0x04, 0x41, 0x00, 0x87, 0x04, 0xef, 0x00, 0x9d, 0x04, 0x90, 0x00, 0xa7,
+ 0x06, 0xc6, 0x00, 0x12, 0x05, 0x3d, 0x00, 0x0d, 0x06, 0xc6, 0x00, 0x12,
+ 0x05, 0x3d, 0x00, 0x0d, 0x02, 0x1f, 0x00, 0xb4, 0x07, 0xc1, 0x00, 0x24,
+ 0x06, 0x7c, 0x00, 0x3f, 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x59, 0x00, 0xab,
+ 0x05, 0x96, 0x00, 0x30, 0x04, 0xd3, 0x00, 0x29, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0xc1, 0x00, 0xad, 0x05, 0x97, 0x00, 0xb4, 0x04, 0xe6, 0x00, 0xad,
+ 0x04, 0xef, 0x00, 0x9d, 0x04, 0x41, 0x00, 0x87, 0x06, 0x64, 0x00, 0xb4,
+ 0x05, 0x93, 0x00, 0xad, 0x02, 0x00, 0x00, 0xad, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x07, 0x03, 0x00, 0x07, 0x07, 0x11, 0x00, 0x6e, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x69, 0x04, 0x6e, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x69, 0x04, 0x6e, 0x00, 0x65, 0x07, 0xc1, 0x00, 0x24,
+ 0x06, 0x7c, 0x00, 0x3f, 0x04, 0x9d, 0x00, 0x79, 0x03, 0xd4, 0x00, 0x77,
+ 0x04, 0xcb, 0x00, 0x90, 0x04, 0x28, 0x00, 0x4f, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0xad, 0x00, 0xa7, 0x05, 0x62, 0x00, 0xb4, 0x04, 0xad, 0x00, 0xa7,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0x07, 0x00, 0x63, 0x03, 0xf3, 0x00, 0x65, 0x04, 0x63, 0x00, 0x1f,
+ 0x04, 0x42, 0x00, 0x36, 0x04, 0x63, 0x00, 0x1f, 0x04, 0x42, 0x00, 0x36,
+ 0x04, 0x63, 0x00, 0x1f, 0x04, 0x42, 0x00, 0x36, 0x04, 0xef, 0x00, 0x9d,
+ 0x04, 0x41, 0x00, 0x87, 0x04, 0x64, 0x00, 0xb4, 0x03, 0xc8, 0x00, 0xa7,
+ 0x06, 0x5a, 0x00, 0xb4, 0x05, 0xaf, 0x00, 0xa7, 0x04, 0xdb, 0x00, 0x3f,
+ 0x04, 0x40, 0x00, 0x32, 0x04, 0xee, 0x00, 0x36, 0x04, 0x42, 0x00, 0x35,
+ 0x04, 0xee, 0x00, 0x36, 0x04, 0x42, 0x00, 0x35, 0x04, 0xf0, 0x00, 0x82,
+ 0x04, 0x3e, 0x00, 0x65, 0x07, 0x3e, 0x00, 0x82, 0x06, 0x75, 0x00, 0x65,
+ 0x07, 0x04, 0x00, 0xb4, 0x06, 0x42, 0x00, 0x99, 0x04, 0xe3, 0x00, 0xb4,
+ 0x04, 0x3c, 0x00, 0x99, 0x07, 0xb7, 0x00, 0x30, 0x06, 0xe4, 0x00, 0x29,
+ 0x08, 0x03, 0x00, 0xb4, 0x06, 0xf6, 0x00, 0xad, 0x05, 0x94, 0x00, 0x67,
+ 0x04, 0xbf, 0x00, 0x65, 0x05, 0x90, 0xff, 0xfb, 0x05, 0x1e, 0x00, 0x04,
+ 0x04, 0x6c, 0x00, 0x93, 0x03, 0xe4, 0x00, 0x77, 0x05, 0x6a, 0x00, 0x4b,
+ 0x04, 0x9a, 0x00, 0x44, 0x08, 0x6a, 0x00, 0x4b, 0x07, 0x27, 0x00, 0x44,
+ 0x06, 0x6f, 0x00, 0xb4, 0x06, 0x39, 0x00, 0xa7, 0x07, 0x6d, 0x00, 0x7a,
+ 0x07, 0x19, 0x00, 0x68, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65,
+ 0x07, 0x1e, 0x00, 0x3d, 0x05, 0xe3, 0x00, 0x4d, 0x05, 0x1c, 0x00, 0xb4,
+ 0x04, 0x59, 0x00, 0xa7, 0x07, 0xc7, 0x00, 0x4b, 0x06, 0x84, 0x00, 0x44,
+ 0x07, 0xc8, 0x00, 0xb4, 0x06, 0x91, 0x00, 0xa7, 0x05, 0xb5, 0x00, 0xb4,
+ 0x04, 0xea, 0x00, 0xa7, 0x04, 0x42, 0x00, 0x36, 0x05, 0x2a, 0x00, 0x09,
+ 0x07, 0x11, 0x00, 0x6e, 0x04, 0x38, 0x00, 0x37, 0x03, 0xf5, 0x00, 0x65,
+ 0x04, 0x5b, 0x00, 0xa7, 0x04, 0x5b, 0x00, 0x20, 0x03, 0x88, 0x00, 0xa7,
+ 0x03, 0xe4, 0x00, 0x75, 0x02, 0x00, 0x00, 0xad, 0x02, 0xd7, 0x00, 0x00,
+ 0x04, 0x2b, 0x00, 0xa7, 0x04, 0x32, 0x00, 0x01, 0x05, 0x6e, 0x00, 0xa7,
+ 0x04, 0xad, 0x00, 0xa7, 0x04, 0x67, 0x00, 0x65, 0x03, 0xf5, 0x00, 0x72,
+ 0x04, 0xec, 0x00, 0x65, 0x04, 0xec, 0x00, 0x65, 0x04, 0xec, 0x00, 0x2d,
+ 0x07, 0x5d, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x03, 0xc6, 0x00, 0x87, 0x04, 0x54, 0x00, 0x2d, 0x04, 0x54, 0x00, 0x2d,
+ 0x04, 0x31, 0x00, 0x36, 0x04, 0x22, 0x00, 0xa7, 0x05, 0x4e, 0x00, 0x9c,
+ 0x06, 0xd2, 0x00, 0x9c, 0x04, 0x97, 0x00, 0x2a, 0x04, 0x42, 0x00, 0x36,
+ 0x05, 0xe3, 0x00, 0x4d, 0x03, 0xc7, 0x00, 0x4f, 0x03, 0xc9, 0x00, 0x6c,
+ 0x04, 0x32, 0x00, 0xa1, 0x04, 0x42, 0x00, 0x36, 0x04, 0x0f, 0x00, 0x87,
+ 0x03, 0xc6, 0x00, 0x87, 0x04, 0x40, 0x00, 0x51, 0x04, 0x9a, 0x00, 0x44,
+ 0x03, 0x19, 0x00, 0x09, 0x04, 0x6a, 0x00, 0x04, 0x03, 0x1c, 0x00, 0x72,
+ 0x03, 0x7d, 0x00, 0x72, 0x02, 0xdd, 0x00, 0x72, 0x02, 0xdd, 0x00, 0x4a,
+ 0x03, 0x83, 0x00, 0x40, 0x03, 0x69, 0x00, 0x72, 0x01, 0x56, 0x00, 0x72,
+ 0x01, 0x56, 0xff, 0xc4, 0x02, 0xf9, 0x00, 0x72, 0x02, 0x86, 0x00, 0x72,
+ 0x03, 0xe9, 0x00, 0x72, 0x03, 0x64, 0x00, 0x72, 0x03, 0x64, 0x00, 0x72,
+ 0x03, 0x91, 0x00, 0x40, 0x03, 0x2a, 0x00, 0x3f, 0x02, 0xbc, 0x00, 0x72,
+ 0x03, 0x26, 0x00, 0x72, 0x02, 0xc5, 0xff, 0xfd, 0x03, 0x51, 0x00, 0x64,
+ 0x04, 0x7b, 0x00, 0x26, 0x02, 0xd1, 0x00, 0x45, 0x02, 0xd1, 0x00, 0x45,
+ 0x02, 0xeb, 0x00, 0x3f, 0x04, 0xaa, 0x00, 0x45, 0x03, 0x15, 0x00, 0x69,
+ 0x02, 0xeb, 0x00, 0x3f, 0x03, 0x00, 0x00, 0x3f, 0x03, 0x00, 0x00, 0x3f,
+ 0x02, 0x98, 0x00, 0x4b, 0x02, 0x96, 0x00, 0x49, 0x02, 0xeb, 0x00, 0x3f,
+ 0x01, 0x49, 0x00, 0x6d, 0x03, 0x10, 0x00, 0x69, 0x04, 0x7c, 0x00, 0x69,
+ 0x02, 0xf1, 0x00, 0x69, 0x02, 0xfa, 0x00, 0x3f, 0x02, 0xaa, 0x00, 0x3f,
+ 0x02, 0xfa, 0x00, 0x3f, 0x02, 0xfa, 0x00, 0x3f, 0x03, 0x15, 0x00, 0x69,
+ 0x02, 0x1f, 0x00, 0x1f, 0x02, 0xea, 0x00, 0x63, 0x03, 0x61, 0x00, 0x63,
+ 0x04, 0x7c, 0x00, 0x69, 0x03, 0x00, 0x00, 0x22, 0x02, 0xe4, 0x00, 0x6c,
+ 0x02, 0xae, 0x00, 0x12, 0x02, 0xc6, 0x00, 0x3f, 0x02, 0xfd, 0x00, 0x3f,
+ 0x02, 0x9e, 0x00, 0x21, 0x01, 0x49, 0x00, 0x6d, 0x01, 0xdd, 0x00, 0x69,
+ 0x02, 0xea, 0x00, 0x63, 0x03, 0x00, 0x00, 0x22, 0x02, 0xe4, 0x00, 0x6c,
+ 0x02, 0xae, 0x00, 0x12, 0x02, 0xf6, 0x00, 0x6c, 0x02, 0xfd, 0x00, 0x3f,
+ 0x02, 0x9e, 0x00, 0x21, 0x04, 0x92, 0x00, 0xa7, 0x03, 0x69, 0x00, 0x72,
+ 0x02, 0xac, 0x00, 0x68, 0x04, 0xcd, 0x00, 0x2d, 0x02, 0x00, 0x00, 0x82,
+ 0x02, 0xeb, 0x00, 0x3f, 0x02, 0xaa, 0x00, 0x3f, 0x02, 0xaa, 0x00, 0x3f,
+ 0x02, 0xfa, 0x00, 0x3f, 0x02, 0x98, 0x00, 0x4b, 0x02, 0x22, 0x00, 0x1b,
+ 0x01, 0xad, 0xff, 0xec, 0x02, 0xeb, 0x00, 0x3f, 0x02, 0xea, 0x00, 0x63,
+ 0x01, 0xe1, 0x00, 0x41, 0x01, 0xcb, 0x00, 0x6d, 0x01, 0xe0, 0x00, 0x41,
+ 0x01, 0xe1, 0x00, 0x41, 0x01, 0xb0, 0xff, 0x67, 0x01, 0xcb, 0x00, 0x6d,
+ 0x01, 0xb0, 0x00, 0x51, 0x02, 0xb5, 0x00, 0x65, 0x04, 0x7c, 0x00, 0x69,
+ 0x04, 0x7c, 0x00, 0x69, 0x02, 0xf4, 0xff, 0xec, 0x03, 0x73, 0x00, 0x69,
+ 0x02, 0xf1, 0x00, 0x65, 0x02, 0xfa, 0x00, 0x3f, 0x02, 0xfa, 0x00, 0x3f,
+ 0x02, 0x98, 0x00, 0x3f, 0x02, 0x10, 0xff, 0xec, 0x02, 0x1f, 0x00, 0x1f,
+ 0x03, 0xa8, 0x00, 0x54, 0x03, 0x03, 0x00, 0x3f, 0x02, 0x9a, 0x00, 0x69,
+ 0x02, 0xec, 0x00, 0x6d, 0x03, 0x00, 0x00, 0x22, 0x02, 0xa3, 0x00, 0x31,
+ 0x03, 0x24, 0x00, 0x31, 0x02, 0xa3, 0x00, 0x31, 0x02, 0xd2, 0x00, 0x31,
+ 0x02, 0xfa, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0xb9, 0x00, 0x00, 0xfc, 0xb9,
+ 0x00, 0x00, 0xfc, 0xb9, 0x00, 0x00, 0xfc, 0xb9, 0x00, 0x00, 0xfc, 0xa2,
+ 0x00, 0x00, 0xfc, 0xa2, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa5, 0x04, 0xf0, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0xa7, 0x04, 0xf0, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa7,
+ 0x05, 0x07, 0x00, 0x67, 0x03, 0xf5, 0x00, 0x65, 0x05, 0x8b, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0x65, 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x65,
+ 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x65, 0x05, 0x8b, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0x65, 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x24, 0x00, 0xb4, 0x02, 0x88, 0x00, 0x2a,
+ 0x05, 0x94, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0x90, 0x00, 0xa5, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0xff, 0xef, 0x05, 0x6a, 0x00, 0x0f,
+ 0x04, 0x90, 0x00, 0x01, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x02, 0x1f, 0x00, 0x00, 0x02, 0x00, 0xff, 0xd8, 0x02, 0x1f, 0x00, 0x06,
+ 0x02, 0x00, 0xff, 0xf6, 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x2b, 0x00, 0xa7,
+ 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x2b, 0x00, 0xa7, 0x04, 0xb8, 0x00, 0xb4,
+ 0x04, 0x2b, 0x00, 0xa7, 0x04, 0x02, 0x00, 0xb4, 0x02, 0x12, 0x00, 0xb4,
+ 0x04, 0x02, 0x00, 0x02, 0x02, 0x12, 0xff, 0xfe, 0x04, 0x02, 0x00, 0xb4,
+ 0x02, 0x00, 0xff, 0xf6, 0x04, 0x02, 0x00, 0xb4, 0x02, 0x00, 0xff, 0xe2,
+ 0x06, 0x36, 0x00, 0xb4, 0x07, 0x03, 0x00, 0xa7, 0x06, 0x36, 0x00, 0xb4,
+ 0x07, 0x03, 0x00, 0xa7, 0x06, 0x36, 0x00, 0xb4, 0x07, 0x03, 0x00, 0xa7,
+ 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7, 0x05, 0x62, 0x00, 0xb4,
+ 0x04, 0x90, 0x00, 0xa7, 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x05, 0x62, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x57, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa7,
+ 0x04, 0x57, 0x00, 0xb4, 0x04, 0x92, 0x00, 0xa7, 0x05, 0x00, 0x00, 0xb4,
+ 0x02, 0xf5, 0x00, 0xa7, 0x05, 0x00, 0x00, 0xb4, 0x02, 0xf5, 0x00, 0xa7,
+ 0x05, 0x00, 0x00, 0xb4, 0x02, 0xf5, 0x00, 0xa7, 0x05, 0x00, 0x00, 0xb4,
+ 0x02, 0xf5, 0x00, 0x4b, 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63,
+ 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63, 0x04, 0x92, 0x00, 0x79,
+ 0x03, 0xc0, 0x00, 0x63, 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63,
+ 0x04, 0x92, 0x00, 0x79, 0x03, 0xc0, 0x00, 0x63, 0x04, 0x65, 0xff, 0xfb,
+ 0x02, 0xd2, 0x00, 0x31, 0x04, 0x65, 0xff, 0xfb, 0x02, 0xd2, 0x00, 0x31,
+ 0x04, 0x65, 0xff, 0xfb, 0x02, 0xd2, 0x00, 0x31, 0x04, 0x65, 0xff, 0xfb,
+ 0x02, 0xd2, 0x00, 0x31, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0x90, 0x00, 0x9c, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x42, 0x00, 0x36, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x42, 0x00, 0x36,
+ 0x07, 0x1e, 0x00, 0x3d, 0x05, 0xe3, 0x00, 0x4d, 0x07, 0x1e, 0x00, 0x3d,
+ 0x05, 0xe3, 0x00, 0x4d, 0x07, 0x1e, 0x00, 0x3d, 0x05, 0xe3, 0x00, 0x4d,
+ 0x07, 0x1e, 0x00, 0x3d, 0x05, 0xe3, 0x00, 0x4d, 0x07, 0x1e, 0x00, 0x3d,
+ 0x05, 0xe3, 0x00, 0x4d, 0x04, 0xee, 0x00, 0x36, 0x04, 0x42, 0x00, 0x35,
+ 0x04, 0xee, 0x00, 0x36, 0x04, 0x42, 0x00, 0x35, 0x04, 0x65, 0xff, 0xfd,
+ 0x04, 0x42, 0x00, 0x36, 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f,
+ 0x04, 0xee, 0x00, 0x52, 0x03, 0xc7, 0x00, 0x4f, 0x04, 0xee, 0x00, 0x52,
+ 0x03, 0xc7, 0x00, 0x4f, 0x04, 0x90, 0x00, 0xa7, 0x02, 0xd2, 0x00, 0x03,
+ 0x05, 0xe3, 0x00, 0x4d, 0x04, 0x42, 0x00, 0x36, 0x04, 0x69, 0x00, 0x6e,
+ 0x02, 0x88, 0x00, 0x2a, 0x02, 0x88, 0x00, 0x01, 0x02, 0x88, 0x00, 0x2a,
+ 0x05, 0x88, 0x00, 0xa0, 0x04, 0x67, 0x00, 0x65, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0x69, 0x00, 0x6e, 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x69, 0x00, 0x6e, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4,
+ 0x04, 0x6e, 0x00, 0x65, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x6e, 0x00, 0x65,
+ 0x02, 0x1f, 0x00, 0x51, 0x02, 0x00, 0x00, 0x3d, 0x02, 0x1f, 0x00, 0xb4,
+ 0x02, 0x00, 0x00, 0xab, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x67, 0x00, 0x65,
+ 0x06, 0x93, 0x00, 0x5c, 0x04, 0x67, 0x00, 0x6a, 0x06, 0x93, 0x00, 0x5c,
+ 0x04, 0x67, 0x00, 0x6a, 0x06, 0x93, 0x00, 0x5c, 0x04, 0x67, 0x00, 0x6a,
+ 0x06, 0x93, 0x00, 0x5c, 0x04, 0x67, 0x00, 0x6a, 0x06, 0x93, 0x00, 0x5c,
+ 0x04, 0x67, 0x00, 0x6a, 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c,
+ 0x05, 0x45, 0x00, 0xa0, 0x04, 0x90, 0x00, 0x9c, 0x06, 0x2d, 0x00, 0x9b,
+ 0x04, 0x90, 0x00, 0x9e, 0x06, 0x2d, 0x00, 0x9b, 0x04, 0x90, 0x00, 0x9e,
+ 0x06, 0x2d, 0x00, 0x9b, 0x04, 0x90, 0x00, 0x9e, 0x06, 0x2d, 0x00, 0x9b,
+ 0x04, 0x90, 0x00, 0x9e, 0x06, 0x2d, 0x00, 0x9b, 0x04, 0x90, 0x00, 0x9e,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36, 0x04, 0x65, 0xff, 0xfd,
+ 0x04, 0x42, 0x00, 0x36, 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0x42, 0x00, 0x36, 0x05, 0x89, 0x00, 0xb4,
+ 0x03, 0x6f, 0x00, 0x1c, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0xec, 0x00, 0x0e, 0x06, 0x51, 0x00, 0x04,
+ 0x06, 0x51, 0x00, 0x05, 0x05, 0x89, 0x00, 0x06, 0x05, 0xc4, 0x00, 0x04,
+ 0x05, 0x19, 0x00, 0x06, 0x05, 0x58, 0x00, 0x03, 0x03, 0xe4, 0x00, 0x77,
+ 0x03, 0xe4, 0x00, 0x77, 0x03, 0xe4, 0x00, 0x77, 0x03, 0xe4, 0x00, 0x77,
+ 0x03, 0xe4, 0x00, 0x77, 0x03, 0xe4, 0x00, 0x77, 0x05, 0x1e, 0x00, 0x06,
+ 0x05, 0x1e, 0x00, 0x06, 0x06, 0xf4, 0x00, 0x04, 0x07, 0x04, 0x00, 0x05,
+ 0x06, 0x78, 0x00, 0x06, 0x06, 0xae, 0x00, 0x04, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x06, 0x06, 0x00, 0x06, 0x06, 0x03, 0x00, 0x06,
+ 0x07, 0xd1, 0x00, 0x04, 0x07, 0xd7, 0x00, 0x05, 0x07, 0x64, 0x00, 0x06,
+ 0x07, 0x90, 0x00, 0x04, 0x06, 0xb8, 0x00, 0x06, 0x06, 0xd1, 0x00, 0x03,
+ 0x02, 0x6f, 0x00, 0x8b, 0x02, 0x6f, 0x00, 0x82, 0x02, 0x6f, 0xff, 0xb9,
+ 0x02, 0x6f, 0xff, 0xc2, 0x02, 0x6f, 0x00, 0x04, 0x02, 0x6f, 0xff, 0xd8,
+ 0x02, 0x6f, 0xff, 0xd1, 0x02, 0x6f, 0xff, 0xcc, 0x02, 0xbc, 0x00, 0x06,
+ 0x02, 0xb1, 0x00, 0x06, 0x04, 0x92, 0x00, 0x04, 0x04, 0x92, 0x00, 0x05,
+ 0x04, 0x1b, 0x00, 0x06, 0x04, 0x51, 0x00, 0x04, 0x03, 0x85, 0x00, 0x06,
+ 0x03, 0x8c, 0x00, 0x03, 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0xca, 0x00, 0x06, 0x06, 0x1b, 0x00, 0x06,
+ 0x07, 0xe1, 0x00, 0x04, 0x07, 0xea, 0x00, 0x05, 0x06, 0xc1, 0x00, 0x06,
+ 0x06, 0xfc, 0x00, 0x04, 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86,
+ 0x05, 0xa4, 0x00, 0x06, 0x07, 0x2e, 0x00, 0x05, 0x07, 0x49, 0x00, 0x04,
+ 0x06, 0x76, 0x00, 0x03, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x05, 0xc6, 0x00, 0x06, 0x06, 0x12, 0x00, 0x06, 0x07, 0xd7, 0x00, 0x04,
+ 0x07, 0xe2, 0x00, 0x05, 0x06, 0xcf, 0x00, 0x06, 0x06, 0xff, 0x00, 0x04,
+ 0x06, 0xa2, 0x00, 0x06, 0x06, 0xdb, 0x00, 0x03, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x03, 0xe4, 0x00, 0x77, 0x03, 0xf2, 0x00, 0x77,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0xb6, 0x00, 0xa7, 0x02, 0x6f, 0xff, 0x99,
+ 0x02, 0x6f, 0x00, 0x95, 0x04, 0x67, 0x00, 0x65, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0xec, 0x00, 0x0e, 0x06, 0x51, 0x00, 0x04,
+ 0x06, 0x51, 0x00, 0x05, 0x05, 0x89, 0x00, 0x06, 0x05, 0xc4, 0x00, 0x04,
+ 0x05, 0x19, 0x00, 0x06, 0x05, 0x58, 0x00, 0x03, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x06, 0x06, 0x00, 0x06, 0x06, 0x03, 0x00, 0x06,
+ 0x07, 0xd1, 0x00, 0x04, 0x07, 0xd7, 0x00, 0x05, 0x07, 0x64, 0x00, 0x06,
+ 0x07, 0x90, 0x00, 0x04, 0x06, 0xb8, 0x00, 0x06, 0x06, 0xd1, 0x00, 0x03,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x05, 0xc6, 0x00, 0x06,
+ 0x06, 0x12, 0x00, 0x06, 0x07, 0xd7, 0x00, 0x04, 0x07, 0xe2, 0x00, 0x05,
+ 0x06, 0xcf, 0x00, 0x06, 0x06, 0xff, 0x00, 0x04, 0x06, 0xa2, 0x00, 0x06,
+ 0x06, 0xdb, 0x00, 0x03, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65,
+ 0x04, 0xbf, 0x00, 0x65, 0x04, 0xbf, 0x00, 0x65, 0x04, 0xec, 0x00, 0x0e,
+ 0x04, 0xec, 0x00, 0x0e, 0x05, 0x28, 0xff, 0xfd, 0x04, 0xfc, 0x00, 0x0e,
+ 0x04, 0xec, 0x00, 0x0e, 0x03, 0x99, 0x01, 0x5f, 0x03, 0x99, 0x01, 0x8a,
+ 0x03, 0x99, 0x01, 0x5f, 0x03, 0x99, 0x00, 0xa3, 0x03, 0x99, 0x00, 0xa3,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x04, 0xb6, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x90, 0x00, 0xa7, 0x05, 0xcb, 0xff, 0xfd,
+ 0x05, 0x5f, 0xff, 0xea, 0x06, 0xb3, 0xff, 0xfd, 0x06, 0x45, 0xff, 0xf5,
+ 0x05, 0x6a, 0x00, 0xb4, 0x03, 0x99, 0x00, 0x7b, 0x03, 0x99, 0x00, 0xa2,
+ 0x03, 0x99, 0x00, 0xa3, 0x02, 0x6f, 0xff, 0xee, 0x02, 0x6f, 0xff, 0xe6,
+ 0x02, 0x6f, 0xff, 0xdc, 0x02, 0x6f, 0x00, 0x04, 0x02, 0x6f, 0xff, 0xe7,
+ 0x02, 0x6f, 0xff, 0xe9, 0x02, 0x1f, 0xff, 0xf7, 0x02, 0x1f, 0x00, 0x02,
+ 0x03, 0x6b, 0xff, 0xfd, 0x02, 0xf0, 0xff, 0xef, 0x03, 0x99, 0x00, 0x71,
+ 0x03, 0x99, 0x00, 0x86, 0x03, 0x99, 0x00, 0xa3, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x92, 0x00, 0xa7, 0x04, 0x92, 0x00, 0xa7, 0x04, 0x2a, 0x00, 0x86,
+ 0x04, 0x2a, 0x00, 0x86, 0x04, 0x65, 0xff, 0xfd, 0x04, 0x65, 0xff, 0xfd,
+ 0x06, 0x15, 0xff, 0xfd, 0x05, 0xf0, 0xff, 0xe5, 0x04, 0xee, 0x00, 0x06,
+ 0x03, 0x99, 0x00, 0x99, 0x03, 0x99, 0x00, 0xc1, 0x03, 0x99, 0x00, 0x99,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79,
+ 0x06, 0x07, 0x00, 0x79, 0x06, 0x07, 0x00, 0x79, 0x06, 0xc6, 0xff, 0xfd,
+ 0x05, 0xd9, 0xff, 0xf4, 0x06, 0xa4, 0xff, 0xfd, 0x05, 0xf1, 0xff, 0xdf,
+ 0x05, 0x80, 0x00, 0x46, 0x03, 0x99, 0x01, 0x4d, 0x03, 0x99, 0x01, 0x5f,
+ 0x03, 0x99, 0x00, 0x00, 0x07, 0x33, 0x00, 0x00, 0x03, 0x99, 0x00, 0x00,
+ 0x07, 0x33, 0x00, 0x00, 0x02, 0x5f, 0x00, 0x00, 0x01, 0xcc, 0x00, 0x00,
+ 0x01, 0x33, 0x00, 0x00, 0x04, 0x94, 0x00, 0x00, 0x02, 0x49, 0x00, 0x00,
+ 0x01, 0x70, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x99, 0x00, 0x5a, 0x02, 0x99, 0x00, 0x5a,
+ 0x04, 0x94, 0x00, 0x5a, 0x03, 0x99, 0x00, 0x5a, 0x07, 0x33, 0x00, 0x5a,
+ 0x07, 0x33, 0x00, 0x00, 0x03, 0x99, 0x00, 0xea, 0x03, 0x99, 0xff, 0xee,
+ 0x02, 0x49, 0x00, 0x9c, 0x02, 0x49, 0x00, 0xa0, 0x02, 0x49, 0x00, 0x9c,
+ 0x02, 0x49, 0x00, 0xa0, 0x03, 0xba, 0x00, 0x9c, 0x03, 0xba, 0x00, 0x9c,
+ 0x03, 0xba, 0x00, 0x9c, 0x03, 0xba, 0x00, 0x9c, 0x03, 0x99, 0x00, 0x33,
+ 0x03, 0x99, 0x00, 0x33, 0x04, 0x3f, 0x01, 0x14, 0x04, 0x3f, 0x01, 0x14,
+ 0x02, 0x68, 0x00, 0xd4, 0x04, 0xce, 0x00, 0xd4, 0x07, 0x33, 0x00, 0xd4,
+ 0x02, 0x49, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x70, 0x00, 0x00,
+ 0x09, 0xa9, 0x00, 0x65, 0x0c, 0x7e, 0x00, 0x65, 0x01, 0xa2, 0x00, 0x24,
+ 0x02, 0xb0, 0x00, 0x24, 0x03, 0xbe, 0x00, 0x24, 0x01, 0xa2, 0x00, 0x24,
+ 0x02, 0xb0, 0x00, 0x24, 0x03, 0xbe, 0x00, 0x24, 0x02, 0x70, 0x00, 0x09,
+ 0x02, 0xe1, 0x00, 0x8e, 0x02, 0xe1, 0x00, 0xad, 0x06, 0x08, 0x00, 0xaf,
+ 0x03, 0x7e, 0x00, 0x84, 0x03, 0xd2, 0x00, 0x84, 0x03, 0x99, 0xff, 0xee,
+ 0x05, 0xc9, 0xff, 0xb0, 0x05, 0xc9, 0xff, 0xb0, 0x01, 0xcc, 0xff, 0xb3,
+ 0x07, 0x33, 0x00, 0x36, 0x03, 0x99, 0x00, 0xc6, 0x01, 0x33, 0xfe, 0xaf,
+ 0x02, 0xcf, 0x00, 0x9e, 0x02, 0xcf, 0x00, 0x9e, 0x06, 0xa3, 0x00, 0x42,
+ 0x05, 0x46, 0x00, 0x84, 0x05, 0x46, 0x00, 0x84, 0x03, 0x94, 0x00, 0x5a,
+ 0x04, 0x94, 0x00, 0xd4, 0x03, 0x99, 0x00, 0xc2, 0x03, 0x99, 0x00, 0xc2,
+ 0x03, 0x99, 0x00, 0x36, 0x02, 0x6d, 0x01, 0x00, 0x05, 0xc9, 0xff, 0xb0,
+ 0x03, 0x99, 0x00, 0x36, 0x03, 0x3c, 0x00, 0x82, 0x07, 0x33, 0x00, 0x5a,
+ 0x05, 0xc9, 0xff, 0xb0, 0x06, 0x08, 0x01, 0x18, 0x04, 0x38, 0x00, 0xe1,
+ 0x04, 0xc6, 0x00, 0x24, 0x06, 0x08, 0x01, 0x42, 0x06, 0x08, 0x01, 0x42,
+ 0x02, 0x49, 0x00, 0xc5, 0x05, 0xbd, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x64,
+ 0x02, 0x49, 0x00, 0xc5, 0x02, 0x49, 0x00, 0xc5, 0x01, 0x99, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe2, 0x00, 0x4e,
+ 0x01, 0x49, 0x00, 0x6d, 0x02, 0xe2, 0x00, 0x38, 0x02, 0xe2, 0x00, 0x5b,
+ 0x02, 0xe2, 0x00, 0x52, 0x02, 0xe2, 0x00, 0x61, 0x02, 0xe2, 0x00, 0x50,
+ 0x02, 0xe2, 0x00, 0x4a, 0x03, 0xcc, 0x00, 0x7b, 0x03, 0xcc, 0x00, 0x7b,
+ 0x03, 0xcc, 0x00, 0x7b, 0x01, 0xc4, 0x00, 0x63, 0x01, 0xc4, 0x00, 0x5c,
+ 0x02, 0xde, 0x00, 0x69, 0x02, 0xe2, 0x00, 0x4e, 0x02, 0xe2, 0x00, 0x7b,
+ 0x02, 0xe2, 0x00, 0x54, 0x02, 0xe2, 0x00, 0x58, 0x02, 0xe2, 0x00, 0x38,
+ 0x02, 0xe2, 0x00, 0x5b, 0x02, 0xe2, 0x00, 0x52, 0x02, 0xe2, 0x00, 0x61,
+ 0x02, 0xe2, 0x00, 0x50, 0x02, 0xe2, 0x00, 0x4a, 0x03, 0xcc, 0x00, 0x7b,
+ 0x03, 0xcc, 0x00, 0x7b, 0x03, 0xcc, 0x00, 0x7b, 0x01, 0xc4, 0x00, 0x63,
+ 0x01, 0xc4, 0x00, 0x5c, 0x02, 0xd1, 0x00, 0x45, 0x03, 0x00, 0x00, 0x3f,
+ 0x02, 0xfa, 0x00, 0x3f, 0x03, 0x32, 0x00, 0x69, 0x03, 0x00, 0x00, 0x3f,
+ 0x02, 0xe9, 0x00, 0x69, 0x03, 0x10, 0x00, 0x69, 0x01, 0x32, 0x00, 0x6d,
+ 0x04, 0x7c, 0x00, 0x69, 0x02, 0xde, 0x00, 0x69, 0x03, 0x15, 0x00, 0x69,
+ 0x02, 0xaf, 0x00, 0x69, 0x02, 0x1f, 0x00, 0x1f, 0x06, 0x50, 0x00, 0x4d,
+ 0x04, 0x94, 0x00, 0x67, 0x04, 0x94, 0x00, 0x56, 0x04, 0x94, 0x00, 0x77,
+ 0x04, 0x94, 0x00, 0x74, 0x07, 0x03, 0x00, 0xa7, 0x05, 0x62, 0x00, 0x69,
+ 0x09, 0x29, 0x00, 0xb4, 0x07, 0xbb, 0x00, 0xb4, 0x07, 0x1e, 0x00, 0x35,
+ 0x05, 0xa5, 0x00, 0x55, 0x04, 0x94, 0x00, 0x65, 0x04, 0x94, 0x00, 0x00,
+ 0x04, 0x94, 0x00, 0x24, 0x04, 0x94, 0x00, 0x12, 0x09, 0x29, 0x00, 0xbb,
+ 0x04, 0x94, 0x00, 0x29, 0x04, 0x94, 0x00, 0x3d, 0x04, 0x94, 0x00, 0x53,
+ 0x04, 0x94, 0x00, 0x0e, 0x05, 0x92, 0x00, 0x69, 0x04, 0x94, 0x00, 0x94,
+ 0x04, 0x94, 0x00, 0x12, 0x04, 0x94, 0x00, 0x5f, 0x04, 0xe3, 0x00, 0x09,
+ 0x00, 0x00, 0xfc, 0x77, 0x00, 0x00, 0xfc, 0x9e, 0x00, 0x00, 0xfc, 0x9e,
+ 0x00, 0x00, 0xfc, 0x9e, 0x00, 0x00, 0xfc, 0x78, 0x00, 0x00, 0xfb, 0xc8,
+ 0x00, 0x00, 0xfc, 0x9e, 0x07, 0x55, 0x00, 0x3c, 0x07, 0x55, 0x00, 0x3c,
+ 0x05, 0x07, 0x00, 0x67, 0x08, 0x16, 0x00, 0xaf, 0x04, 0x9f, 0xff, 0xdb,
+ 0x07, 0x55, 0x00, 0x36, 0x07, 0xae, 0x00, 0x36, 0x04, 0x6c, 0x00, 0x93,
+ 0x05, 0x07, 0x00, 0x63, 0x06, 0xda, 0x00, 0xaf, 0x07, 0x1d, 0x00, 0x41,
+ 0x05, 0x6e, 0x00, 0x01, 0x06, 0x1e, 0x00, 0xb4, 0x04, 0x90, 0x00, 0x40,
+ 0x04, 0x90, 0x00, 0x51, 0x03, 0x61, 0x00, 0x35, 0x05, 0x05, 0x00, 0x5f,
+ 0x05, 0x2f, 0x00, 0x3d, 0x02, 0xf9, 0xff, 0xe7, 0x05, 0xe3, 0x00, 0x1c,
+ 0x05, 0xc4, 0x00, 0xb2, 0x07, 0x7d, 0x00, 0x30, 0x07, 0x33, 0x00, 0xfe,
+ 0x05, 0x05, 0x00, 0x63, 0x05, 0x0c, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67,
+ 0x05, 0xbe, 0x00, 0x3b, 0x05, 0xdc, 0x00, 0x4a, 0x05, 0xb3, 0x00, 0xb4,
+ 0x06, 0x74, 0x00, 0x98, 0x04, 0xec, 0x00, 0xb4, 0x07, 0x57, 0x00, 0xe9,
+ 0x07, 0xbc, 0xff, 0xfd, 0x07, 0x33, 0x01, 0x09, 0x04, 0xec, 0x00, 0x0e,
+ 0x05, 0x5c, 0x00, 0x52, 0x04, 0x28, 0x00, 0x4f, 0x05, 0x80, 0x00, 0x46,
+ 0x05, 0x80, 0x00, 0x46, 0x04, 0x6f, 0x00, 0x15, 0x02, 0x6f, 0x00, 0x3d,
+ 0x04, 0xb8, 0x00, 0xb4, 0x04, 0xec, 0x00, 0x0e, 0x05, 0xa9, 0x00, 0x52,
+ 0x05, 0x10, 0x00, 0x75, 0x06, 0x27, 0x00, 0x70, 0x04, 0x42, 0x00, 0x4e,
+ 0x04, 0x5c, 0x00, 0x91, 0x05, 0xa9, 0x00, 0x4b, 0x04, 0x24, 0x00, 0xb4,
+ 0x07, 0xb3, 0x00, 0x33, 0x03, 0x53, 0x00, 0x5d, 0x05, 0x5d, 0x00, 0x5c,
+ 0x04, 0xda, 0xff, 0xfc, 0x03, 0x5a, 0x00, 0x18, 0x04, 0xa4, 0x00, 0x4d,
+ 0x02, 0xbc, 0x00, 0x3f, 0x06, 0xaa, 0x00, 0x51, 0x08, 0x98, 0x00, 0x87,
+ 0x05, 0x0e, 0x00, 0x20, 0x05, 0x3d, 0x00, 0x00, 0x04, 0xb6, 0x00, 0xb4,
+ 0x06, 0x1c, 0x00, 0xb4, 0x05, 0xd6, 0x00, 0x16, 0x05, 0x94, 0x00, 0x92,
+ 0x04, 0x02, 0x00, 0x07, 0x04, 0x02, 0x00, 0x06, 0x04, 0x65, 0xff, 0xfd,
+ 0x05, 0xe5, 0x00, 0x4e, 0x05, 0x19, 0x00, 0x51, 0x04, 0x6e, 0x00, 0x51,
+ 0x02, 0x87, 0x00, 0x47, 0x02, 0x87, 0xff, 0x2e, 0x05, 0x9d, 0x00, 0x35,
+ 0x03, 0xca, 0x00, 0x48, 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x7b,
+ 0x09, 0xdd, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x54,
+ 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x54, 0x06, 0xfa, 0x00, 0x58,
+ 0x06, 0xfa, 0x00, 0x38, 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x5b,
+ 0x06, 0xfa, 0x00, 0x7b, 0x06, 0xfa, 0x00, 0x58, 0x06, 0xfa, 0x00, 0x5b,
+ 0x06, 0xfa, 0x00, 0x61, 0x04, 0x16, 0x00, 0x7b, 0x02, 0x1f, 0x00, 0xb4,
+ 0x03, 0x8b, 0x00, 0xb4, 0x04, 0xf6, 0x00, 0xb4, 0x06, 0xa5, 0x00, 0xb4,
+ 0x04, 0xec, 0x00, 0x0e, 0x06, 0xa4, 0x00, 0x0e, 0x08, 0x0f, 0x00, 0x0e,
+ 0x09, 0x7b, 0x00, 0x0e, 0x06, 0x9b, 0x00, 0xb4, 0x04, 0xee, 0x00, 0x36,
+ 0x06, 0xb7, 0x00, 0x36, 0x08, 0x25, 0x00, 0x36, 0x04, 0x02, 0x00, 0xb4,
+ 0x05, 0x07, 0x00, 0x67, 0x05, 0x8b, 0x00, 0xb4, 0x06, 0x36, 0x00, 0xb4,
+ 0x02, 0x00, 0x00, 0xad, 0x03, 0x4b, 0x00, 0xad, 0x04, 0x96, 0x00, 0xad,
+ 0x05, 0xd7, 0x00, 0xad, 0x04, 0x42, 0x00, 0x36, 0x05, 0xd6, 0x00, 0x36,
+ 0x07, 0x22, 0x00, 0x36, 0x08, 0x6d, 0x00, 0x36, 0x05, 0xe5, 0x00, 0xad,
+ 0x04, 0x42, 0x00, 0x35, 0x05, 0xeb, 0x00, 0x35, 0x07, 0x36, 0x00, 0x35,
+ 0x02, 0x00, 0x00, 0xad, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x92, 0x00, 0x65,
+ 0x07, 0x03, 0x00, 0xa7, 0x08, 0xf7, 0x00, 0x6c, 0x05, 0x8b, 0x00, 0xb4,
+ 0x08, 0xf7, 0x00, 0x6c, 0x05, 0x10, 0x00, 0x67, 0x03, 0xf4, 0x00, 0x72,
+ 0x05, 0x07, 0x00, 0x67, 0x06, 0xfa, 0x00, 0x4e, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x01, 0x79,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x01, 0x03,
+ 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x01, 0x03,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x27,
+ 0x06, 0x08, 0x00, 0x13, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x7a,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x01, 0x7a, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x7a,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x01, 0x7a, 0x06, 0x08, 0x01, 0x7a,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x6a, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x6a, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x01, 0x0c, 0x06, 0x08, 0x01, 0x37, 0x06, 0x08, 0x01, 0x81,
+ 0x06, 0x08, 0x01, 0x37, 0x06, 0x08, 0x01, 0x81, 0x06, 0x08, 0x01, 0xad,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x28, 0x06, 0x08, 0x00, 0x47,
+ 0x06, 0x08, 0x00, 0xc7, 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0xbd,
+ 0x06, 0x08, 0x00, 0x8d, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x02, 0xb7, 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x02, 0xb7, 0x06, 0x08, 0x01, 0x79,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x6b, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x6c, 0x06, 0x08, 0x00, 0x6a,
+ 0x06, 0x08, 0x00, 0x6c, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x7a, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x01, 0x7a, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x7a,
+ 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x00, 0xa9, 0x06, 0x08, 0x00, 0xa9,
+ 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x01, 0x79,
+ 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x01, 0x79,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x00, 0x60,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x31, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x08, 0x00, 0x40, 0x06, 0x08, 0x01, 0x3b, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x08, 0x01, 0x3b, 0x06, 0x08, 0x01, 0x20, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x08, 0x01, 0x3b, 0x06, 0x08, 0x01, 0x3b, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x6d, 0x06, 0x08, 0x00, 0x6d, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x6b, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x5a,
+ 0x06, 0x08, 0x00, 0x31, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x31,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0x94, 0x00, 0x79, 0x03, 0xb9, 0x00, 0x55,
+ 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4, 0x06, 0x45, 0x00, 0x8b,
+ 0x04, 0xd1, 0xff, 0xfb, 0x04, 0xd1, 0xff, 0xfb, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x05, 0x2b, 0x00, 0xc3, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x05, 0x2b, 0x00, 0xc3, 0x04, 0x94, 0x01, 0x0e,
+ 0x05, 0x73, 0x00, 0x8c, 0x05, 0x73, 0x00, 0x8c, 0x04, 0xda, 0x00, 0x16,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x02, 0x6d, 0x00, 0x00, 0x04, 0x95, 0x01, 0x62, 0x06, 0x08, 0x00, 0xeb,
+ 0x04, 0x81, 0x01, 0x23, 0x04, 0x81, 0x01, 0x35, 0x04, 0x96, 0x00, 0x36,
+ 0x04, 0x96, 0x00, 0x36, 0x04, 0x96, 0x00, 0x36, 0x05, 0x24, 0x00, 0xc6,
+ 0x05, 0xff, 0x00, 0xc6, 0x06, 0x08, 0x00, 0xfe, 0x06, 0x74, 0x00, 0x9d,
+ 0x06, 0x74, 0x00, 0x9d, 0x06, 0x08, 0x00, 0xd5, 0x03, 0x99, 0x01, 0x84,
+ 0x03, 0x99, 0x00, 0x5b, 0x03, 0x99, 0x00, 0xf4, 0x03, 0x99, 0x00, 0x5b,
+ 0x05, 0x45, 0x00, 0xed, 0x05, 0x45, 0x00, 0xed, 0x05, 0x45, 0x00, 0xed,
+ 0x05, 0x45, 0x00, 0xed, 0x03, 0xc0, 0x00, 0x69, 0x05, 0xae, 0x00, 0x69,
+ 0x07, 0x9c, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x05, 0xae, 0x00, 0x69,
+ 0x07, 0x9c, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x04, 0x94, 0x00, 0x6c, 0x04, 0x94, 0x00, 0x6c,
+ 0x01, 0xdf, 0x00, 0x90, 0x04, 0x94, 0x00, 0x6c, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc2, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0x91,
+ 0x06, 0x08, 0x00, 0xc3, 0x02, 0xb3, 0x00, 0xbb, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc2,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x0a, 0x00, 0xc3, 0x06, 0x0a, 0x00, 0xc3,
+ 0x07, 0x33, 0x00, 0xba, 0x07, 0x33, 0x00, 0xb8, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc4, 0x06, 0x08, 0x00, 0xc4, 0x06, 0x08, 0x00, 0xc4,
+ 0x06, 0x08, 0x00, 0xc4, 0x07, 0x89, 0x00, 0x85, 0x07, 0x89, 0x00, 0x85,
+ 0x03, 0x57, 0x00, 0x9e, 0x06, 0x08, 0x00, 0xc2, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc4, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xbb, 0x06, 0x08, 0x00, 0xbb,
+ 0x06, 0x08, 0x00, 0xbb, 0x06, 0x08, 0x00, 0xbb, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xb7, 0x06, 0x08, 0x00, 0xb7,
+ 0x06, 0x08, 0x00, 0xb7, 0x06, 0x08, 0x00, 0xb7, 0x06, 0x08, 0x00, 0xab,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xab, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xab, 0x06, 0x08, 0x00, 0xab, 0x05, 0x45, 0x00, 0xed,
+ 0x05, 0x45, 0x00, 0xed, 0x05, 0x45, 0x00, 0xed, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x05, 0x9e, 0x00, 0xc3, 0x05, 0x9e, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xa8,
+ 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8,
+ 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8,
+ 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8,
+ 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0xa8,
+ 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x03, 0xbf, 0x00, 0x9d, 0x03, 0xbf, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x06, 0x45, 0x00, 0x9d, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x07, 0x33, 0x00, 0x6c,
+ 0x07, 0x33, 0x00, 0x6c, 0x06, 0x08, 0x00, 0x58, 0x06, 0x08, 0x00, 0x6c,
+ 0x03, 0xbf, 0x00, 0xd6, 0x05, 0x45, 0x00, 0xb4, 0x05, 0x45, 0x00, 0xb4,
+ 0x05, 0x45, 0x00, 0xb4, 0x06, 0x08, 0x00, 0xfe, 0x06, 0x08, 0x00, 0xfe,
+ 0x05, 0xe8, 0xff, 0xfb, 0x05, 0xe8, 0xff, 0xfb, 0x05, 0xe8, 0x00, 0x7e,
+ 0x05, 0xe8, 0x00, 0x7e, 0x03, 0x8e, 0x00, 0x05, 0x02, 0x49, 0x00, 0xc5,
+ 0x04, 0x81, 0x00, 0xe0, 0x06, 0x08, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3,
+ 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3,
+ 0x07, 0x33, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x05, 0x46, 0x00, 0x59,
+ 0x05, 0x46, 0x00, 0x59, 0x06, 0x08, 0x00, 0xab, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xbd, 0x06, 0x08, 0x00, 0xbd, 0x06, 0x08, 0x01, 0x56,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x0a, 0x3d, 0x00, 0x85, 0x0a, 0x3d, 0x00, 0x85, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xca,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xbf, 0x07, 0x33, 0x03, 0x3a, 0x07, 0x33, 0x00, 0xd4,
+ 0x07, 0x33, 0x00, 0xd4, 0x07, 0x33, 0x00, 0xd4, 0x07, 0x33, 0x00, 0x4f,
+ 0x06, 0x45, 0x00, 0x9d, 0x05, 0x2b, 0x00, 0xc3, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x05, 0x2b, 0x00, 0xc3, 0x06, 0x45, 0x00, 0x9d,
+ 0x06, 0x45, 0x00, 0x9d, 0x07, 0x33, 0x00, 0x4f, 0x06, 0x45, 0x00, 0x9d,
+ 0x05, 0x2b, 0x00, 0xc3, 0x06, 0x45, 0x00, 0x9d, 0x05, 0x2b, 0x00, 0xc3,
+ 0x06, 0x45, 0x00, 0xc3, 0x04, 0x55, 0x00, 0x42, 0x04, 0x55, 0x00, 0x66,
+ 0x04, 0x92, 0x00, 0x83, 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x01, 0x79,
+ 0x06, 0x08, 0x01, 0x79, 0x06, 0x08, 0x01, 0x79, 0x03, 0x84, 0x01, 0x1b,
+ 0x02, 0xcf, 0x00, 0x9e, 0x02, 0xcf, 0x00, 0xb3, 0x02, 0xcf, 0x00, 0x9e,
+ 0x02, 0xcf, 0x00, 0xb3, 0x05, 0xd2, 0x02, 0xa8, 0x05, 0xd2, 0x00, 0x5a,
+ 0x05, 0xd2, 0x02, 0xa8, 0x05, 0xd2, 0x00, 0x5a, 0x06, 0x08, 0x00, 0xc3,
+ 0x03, 0xb1, 0x00, 0x05, 0x07, 0x33, 0x00, 0xde, 0x06, 0x08, 0x00, 0xc3,
+ 0x03, 0x60, 0x00, 0x9e, 0x03, 0x60, 0x00, 0x78, 0x03, 0x60, 0x00, 0x9e,
+ 0x03, 0x60, 0x00, 0x78, 0x03, 0xc0, 0x01, 0x83, 0x03, 0xc0, 0x00, 0x25,
+ 0x08, 0x4c, 0x00, 0x8c, 0x08, 0x4c, 0x00, 0x8c, 0x0a, 0x2e, 0x00, 0x8c,
+ 0x08, 0x4c, 0x00, 0x8c, 0x0a, 0x64, 0x00, 0x6c, 0x0a, 0x2e, 0x00, 0x00,
+ 0x06, 0x49, 0x00, 0x87, 0x02, 0x6f, 0x00, 0x95, 0x04, 0x92, 0x00, 0xa7,
+ 0x06, 0x07, 0x00, 0x79, 0x04, 0xbf, 0x00, 0x65, 0x05, 0x73, 0x00, 0x17,
+ 0x08, 0x4c, 0x00, 0x8c, 0x06, 0x49, 0x00, 0x1f, 0x03, 0x99, 0x00, 0x9e,
+ 0x03, 0x99, 0x00, 0x9e, 0x03, 0x99, 0x00, 0x9e, 0x03, 0x99, 0x00, 0x9e,
+ 0x03, 0x99, 0x02, 0x4b, 0x03, 0x99, 0x00, 0x9e, 0x03, 0x99, 0x00, 0x9e,
+ 0x03, 0x99, 0x00, 0x9e, 0x03, 0x99, 0x00, 0x9e, 0x03, 0x99, 0x00, 0x9e,
+ 0x03, 0x99, 0x02, 0x4b, 0x03, 0x99, 0x00, 0x9e, 0x05, 0x66, 0x02, 0x5f,
+ 0x05, 0x66, 0x00, 0x97, 0x05, 0x66, 0x02, 0x5f, 0x05, 0x66, 0x02, 0x5f,
+ 0x05, 0x66, 0x00, 0x97, 0x05, 0x66, 0x02, 0x5f, 0x05, 0x66, 0x00, 0x97,
+ 0x03, 0xc0, 0x01, 0x83, 0x06, 0x08, 0x00, 0x31, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0x49, 0x00, 0x87, 0x05, 0x89, 0x00, 0x05, 0x04, 0x94, 0x00, 0x50,
+ 0x04, 0x92, 0xff, 0x8f, 0x04, 0x92, 0x00, 0x83, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2,
+ 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2,
+ 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0xe2,
+ 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0x01, 0x52, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x52,
+ 0x04, 0x55, 0x01, 0x52, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x52,
+ 0x04, 0x55, 0x01, 0x52, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x01, 0x52,
+ 0x04, 0x55, 0x01, 0x52, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0xff, 0x9e,
+ 0x04, 0x55, 0xff, 0x9e, 0x04, 0x55, 0xff, 0x9e, 0x04, 0x55, 0xff, 0xee,
+ 0x04, 0x55, 0x01, 0xe2, 0x04, 0x55, 0x02, 0x3c, 0x04, 0x55, 0x01, 0xe2,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0x02, 0x3c,
+ 0x04, 0x55, 0x01, 0x9a, 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0x9a,
+ 0x04, 0x55, 0xff, 0xee, 0x04, 0x55, 0x01, 0x9a, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0x02, 0xc4, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0x04, 0xe5,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0x02, 0xc4, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x05, 0x89, 0x02, 0xc4, 0x05, 0x89, 0xff, 0xee,
+ 0x05, 0x89, 0xff, 0xee, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x04, 0xe1, 0x00, 0xa7,
+ 0x04, 0xe1, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x03, 0xf6, 0x00, 0xa7, 0x03, 0xf6, 0x00, 0xa7, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x03, 0x9d, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x03, 0x9d, 0x00, 0x05,
+ 0x03, 0x9d, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x06, 0x48, 0x00, 0x64, 0x03, 0x8e, 0x00, 0x05, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x66, 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x64, 0x03, 0xcb, 0x00, 0x64, 0x03, 0xcb, 0x00, 0xa7,
+ 0x05, 0xb2, 0x00, 0xa7, 0x06, 0xfc, 0x00, 0xa7, 0x06, 0xfc, 0x00, 0xa7,
+ 0x06, 0xfc, 0x00, 0xa7, 0x02, 0xc9, 0x00, 0x05, 0x02, 0xc9, 0x00, 0x05,
+ 0x02, 0xc9, 0x00, 0x05, 0x02, 0xc9, 0x00, 0x05, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x64, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x04, 0x3f, 0x01, 0x14,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x08, 0x0e, 0x00, 0x64,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64,
+ 0x06, 0x48, 0x00, 0x64, 0x06, 0x48, 0x00, 0x64, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0xfa, 0x00, 0xa7,
+ 0x05, 0xfa, 0x00, 0xa7, 0x05, 0x46, 0x00, 0xa7, 0x05, 0x46, 0x00, 0xa7,
+ 0x05, 0x89, 0x00, 0x05, 0x06, 0x74, 0x00, 0x99, 0x07, 0x33, 0x00, 0x5d,
+ 0x06, 0x74, 0x00, 0x5a, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x75,
+ 0x06, 0x74, 0x00, 0x77, 0x06, 0x74, 0x00, 0x77, 0x04, 0x1f, 0x00, 0x99,
+ 0x06, 0x73, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x65, 0x00, 0x70,
+ 0x06, 0x65, 0x00, 0x70, 0x04, 0xd5, 0x00, 0x70, 0x07, 0x4a, 0x00, 0x70,
+ 0x08, 0xf7, 0x00, 0x7e, 0x09, 0x00, 0x00, 0x82, 0x06, 0x74, 0x00, 0xa5,
+ 0x06, 0x74, 0x00, 0xa4, 0x06, 0x74, 0x00, 0xa4, 0x03, 0xd5, 0x00, 0x8a,
+ 0x06, 0x74, 0x00, 0x5a, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x9a,
+ 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0x8f, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0xa0,
+ 0x04, 0x62, 0x00, 0x84, 0x06, 0x74, 0x00, 0x9f, 0x04, 0x62, 0x00, 0x84,
+ 0x06, 0x74, 0x00, 0x70, 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x5a, 0x04, 0xd1, 0x00, 0x5a, 0x05, 0x5f, 0x00, 0x99,
+ 0x04, 0xad, 0x00, 0x99, 0x05, 0xa4, 0x00, 0x99, 0x03, 0xec, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0xa0, 0x06, 0x74, 0x00, 0x99,
+ 0x05, 0x1d, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x79, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x02, 0x93,
+ 0x06, 0x74, 0x00, 0x99, 0x04, 0x6b, 0x00, 0x9d, 0x05, 0x46, 0x00, 0x9d,
+ 0x05, 0x46, 0x00, 0x9d, 0x06, 0x74, 0x00, 0x91, 0x06, 0x74, 0x01, 0x31,
+ 0x06, 0x74, 0x01, 0x93, 0x06, 0x74, 0x00, 0xdf, 0x06, 0x74, 0x00, 0xea,
+ 0x06, 0x74, 0x01, 0xba, 0x06, 0x74, 0x00, 0x53, 0x06, 0x74, 0x00, 0xa4,
+ 0x06, 0x74, 0x00, 0xac, 0x06, 0x74, 0x00, 0xcf, 0x06, 0x74, 0x01, 0x01,
+ 0x06, 0x74, 0x00, 0x62, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x3e,
+ 0x06, 0x74, 0x00, 0x98, 0x06, 0x74, 0x00, 0xac, 0x06, 0x74, 0x00, 0x9e,
+ 0x06, 0x74, 0x01, 0x20, 0x06, 0x74, 0x00, 0xb4, 0x06, 0x74, 0x00, 0xcb,
+ 0x06, 0x74, 0x01, 0x32, 0x06, 0x74, 0x01, 0x8a, 0x06, 0x74, 0x01, 0x2f,
+ 0x06, 0x74, 0x01, 0x11, 0x06, 0x74, 0x00, 0xb4, 0x06, 0x74, 0x00, 0xcb,
+ 0x06, 0x74, 0x01, 0x32, 0x06, 0x74, 0x01, 0x8a, 0x06, 0x74, 0x01, 0x2a,
+ 0x06, 0x74, 0x01, 0x11, 0x06, 0x74, 0x01, 0x22, 0x06, 0x74, 0x00, 0xa6,
+ 0x06, 0x74, 0x01, 0x35, 0x06, 0x74, 0x00, 0xcd, 0x06, 0x74, 0x01, 0x21,
+ 0x06, 0x74, 0x00, 0xa3, 0x06, 0x74, 0x01, 0x35, 0x06, 0x74, 0x00, 0xcd,
+ 0x06, 0x74, 0x00, 0xc2, 0x03, 0x65, 0x00, 0x9a, 0x04, 0x98, 0x00, 0x9a,
+ 0x06, 0x74, 0x01, 0x52, 0x06, 0x74, 0x00, 0xa9, 0x03, 0x65, 0x00, 0xa2,
+ 0x02, 0x92, 0x00, 0x9a, 0x03, 0x7b, 0x00, 0x9b, 0x05, 0x62, 0x00, 0x9a,
+ 0x05, 0x83, 0x00, 0x76, 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0x8c,
+ 0x06, 0x74, 0x00, 0x8c, 0x06, 0x74, 0x00, 0x8c, 0x06, 0x74, 0x00, 0x8c,
+ 0x06, 0x74, 0x00, 0x8c, 0x06, 0x74, 0x00, 0x8c, 0x06, 0x74, 0x00, 0x8c,
+ 0x06, 0x74, 0x00, 0x8c, 0x06, 0x74, 0x00, 0x9a, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x01, 0x12,
+ 0x06, 0x42, 0x00, 0x87, 0x06, 0x42, 0x00, 0x87, 0x06, 0x42, 0x00, 0x87,
+ 0x06, 0x42, 0x00, 0x87, 0x06, 0x42, 0x00, 0x87, 0x06, 0x42, 0x00, 0x87,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x01, 0x35, 0x06, 0x74, 0x01, 0x35,
+ 0x06, 0x74, 0x00, 0x5f, 0x06, 0x74, 0x00, 0xb2, 0x06, 0x74, 0x00, 0xf2,
+ 0x03, 0xe5, 0x00, 0x70, 0x06, 0x74, 0x00, 0x6c, 0x06, 0x74, 0x00, 0x70,
+ 0x06, 0x74, 0x01, 0x0b, 0x06, 0x74, 0x00, 0xae, 0x06, 0x74, 0x00, 0xeb,
+ 0x06, 0x74, 0x00, 0xea, 0x06, 0x74, 0x00, 0xea, 0x06, 0x74, 0x00, 0x5a,
+ 0x05, 0x0e, 0x00, 0x99, 0x07, 0x3b, 0x00, 0x9d, 0x07, 0xd7, 0x00, 0x91,
+ 0x08, 0x75, 0x00, 0x9d, 0x06, 0x80, 0x00, 0x9d, 0x06, 0x08, 0x00, 0xf2,
+ 0x06, 0x08, 0x00, 0xba, 0x06, 0x08, 0x01, 0x59, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x01, 0x58, 0x06, 0x08, 0x01, 0x58, 0x06, 0x08, 0x01, 0xc7,
+ 0x06, 0x08, 0x01, 0x40, 0x06, 0x08, 0x00, 0x4b, 0x06, 0x08, 0x00, 0x09,
+ 0x06, 0x13, 0x00, 0xbd, 0x06, 0x08, 0x01, 0x85, 0x05, 0x46, 0x00, 0x9d,
+ 0x05, 0x46, 0x01, 0x36, 0x05, 0x46, 0x00, 0x9e, 0x05, 0x46, 0x00, 0x9e,
+ 0x06, 0x1e, 0x00, 0x6c, 0x05, 0x46, 0x01, 0x66, 0x05, 0x46, 0x01, 0x23,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x4d,
+ 0x06, 0x08, 0x00, 0x4d, 0x05, 0x46, 0x00, 0x9d, 0x06, 0x08, 0x00, 0x13,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x13, 0x06, 0x08, 0x00, 0x41,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x6c,
+ 0x06, 0x08, 0x00, 0x76, 0x06, 0x08, 0x01, 0x87, 0x06, 0x08, 0x00, 0x26,
+ 0x06, 0x08, 0x00, 0xa3, 0x06, 0x08, 0x00, 0x2f, 0x06, 0x08, 0x00, 0xa3,
+ 0x06, 0x08, 0x00, 0x4f, 0x06, 0x08, 0x00, 0x7c, 0x06, 0x08, 0x01, 0x14,
+ 0x06, 0x08, 0x00, 0xd5, 0x06, 0x08, 0x00, 0xe9, 0x06, 0x08, 0x00, 0x9d,
+ 0x06, 0x08, 0x00, 0xd8, 0x06, 0x08, 0x00, 0xe2, 0x06, 0x08, 0x00, 0x64,
+ 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0x64,
+ 0x06, 0x08, 0x01, 0x30, 0x06, 0x08, 0x00, 0xf1, 0x06, 0x08, 0x01, 0x1e,
+ 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x4a, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0x4e, 0x06, 0x08, 0x00, 0x4e, 0x06, 0x08, 0x00, 0x2a,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x2b, 0x06, 0x08, 0x00, 0x2a,
+ 0x06, 0x08, 0x00, 0x2b, 0x06, 0x08, 0x00, 0x2b, 0x06, 0x08, 0x00, 0x2b,
+ 0x06, 0x08, 0x00, 0x2d, 0x06, 0x08, 0x00, 0x76, 0x06, 0x08, 0x00, 0x88,
+ 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0x39, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0xa8, 0x06, 0x08, 0x00, 0x4b, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0x4b, 0x06, 0x08, 0x00, 0x64, 0x06, 0x08, 0x00, 0x96,
+ 0x06, 0x08, 0x00, 0x96, 0x06, 0x08, 0x00, 0x90, 0x06, 0x08, 0x00, 0x90,
+ 0x06, 0x08, 0x00, 0x63, 0x06, 0x08, 0x00, 0x63, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0x4d, 0x06, 0x08, 0x00, 0x90, 0x06, 0x08, 0x00, 0xa3,
+ 0x06, 0x08, 0x00, 0x8c, 0x06, 0x08, 0x00, 0x75, 0x06, 0x08, 0x00, 0x90,
+ 0x06, 0x08, 0x00, 0x57, 0x06, 0x08, 0x00, 0x57, 0x06, 0x08, 0x00, 0x4b,
+ 0x06, 0x08, 0x00, 0x4b, 0x06, 0x74, 0x00, 0x5b, 0x06, 0x74, 0x00, 0x6d,
+ 0x06, 0x74, 0x00, 0x6d, 0x06, 0x74, 0x00, 0x6d, 0x06, 0x74, 0x00, 0x6d,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x08, 0x02, 0xb7, 0x06, 0x08, 0x02, 0x6b,
+ 0x06, 0x08, 0x01, 0xd2, 0x02, 0x52, 0x00, 0x9c, 0x02, 0x52, 0x00, 0x6c,
+ 0x03, 0xdf, 0x00, 0x9c, 0x03, 0xdf, 0x00, 0x6c, 0x06, 0x08, 0x01, 0x1e,
+ 0x06, 0x08, 0x01, 0x74, 0x06, 0x08, 0x01, 0x2c, 0x06, 0x08, 0x00, 0x63,
+ 0x06, 0x08, 0x01, 0x35, 0x06, 0x08, 0x00, 0x71, 0x06, 0x08, 0x00, 0x90,
+ 0x06, 0x08, 0x01, 0x68, 0x06, 0x08, 0x01, 0x68, 0x06, 0x08, 0x01, 0xe6,
+ 0x06, 0x08, 0x01, 0xe6, 0x06, 0x08, 0x01, 0x8c, 0x06, 0x08, 0x01, 0xab,
+ 0x06, 0x08, 0x01, 0x05, 0x06, 0x08, 0x01, 0x19, 0x06, 0x08, 0x01, 0x32,
+ 0x06, 0x08, 0x01, 0x51, 0x06, 0x08, 0x02, 0x7d, 0x06, 0x08, 0x02, 0x2e,
+ 0x06, 0x08, 0x01, 0x42, 0x06, 0x08, 0x01, 0x77, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88, 0x06, 0x74, 0x00, 0x88,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08,
+ 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x08, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0xe2, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0xe2,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0xcd, 0x06, 0x08, 0x00, 0xcd,
+ 0x06, 0x08, 0x00, 0xcd, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x01, 0xba, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x26, 0x06, 0x08, 0x00, 0x26,
+ 0x06, 0x08, 0x00, 0xf9, 0x06, 0x08, 0x00, 0xf9, 0x06, 0x08, 0x00, 0x72,
+ 0x06, 0x08, 0x00, 0x72, 0x06, 0x08, 0x01, 0x1c, 0x06, 0x08, 0x00, 0x75,
+ 0x06, 0x08, 0x00, 0x94, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x96,
+ 0x06, 0x08, 0x00, 0x96, 0x06, 0x08, 0x00, 0x69, 0x06, 0x08, 0x00, 0x96,
+ 0x06, 0x08, 0x00, 0x67, 0x06, 0x08, 0x00, 0x87, 0x06, 0x08, 0x00, 0x91,
+ 0x06, 0x08, 0x00, 0x91, 0x06, 0x08, 0x00, 0x69, 0x02, 0xcf, 0x00, 0x63,
+ 0x02, 0xcf, 0x00, 0x47, 0x03, 0x8e, 0x00, 0x05, 0x03, 0x90, 0x00, 0x9e,
+ 0x03, 0x90, 0x00, 0x9d, 0x02, 0xcf, 0x00, 0xa4, 0x02, 0xcf, 0x00, 0x93,
+ 0x04, 0x01, 0x00, 0xa4, 0x04, 0x01, 0x00, 0x93, 0x06, 0x08, 0x00, 0x51,
+ 0x06, 0x08, 0x00, 0x50, 0x06, 0x08, 0x00, 0x47, 0x06, 0x08, 0x00, 0x47,
+ 0x08, 0x55, 0x00, 0x69, 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x69,
+ 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x69,
+ 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x69,
+ 0x0a, 0x52, 0x00, 0x5a, 0x0a, 0x52, 0x00, 0x69, 0x0a, 0x52, 0x00, 0x69,
+ 0x05, 0x46, 0x00, 0x00, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x03, 0x2a, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e, 0x05, 0x46, 0x01, 0x0e,
+ 0x05, 0x46, 0x01, 0x0e, 0x06, 0x08, 0x00, 0x5a, 0x06, 0x08, 0x00, 0x69,
+ 0x06, 0x08, 0x00, 0xe6, 0x06, 0x08, 0x00, 0xe6, 0x04, 0xeb, 0x00, 0x47,
+ 0x04, 0xeb, 0x00, 0x47, 0x05, 0x48, 0x00, 0xe6, 0x05, 0x48, 0x00, 0xe6,
+ 0x06, 0x08, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3,
+ 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3,
+ 0x07, 0x33, 0x00, 0xc3, 0x07, 0x33, 0x00, 0xc3, 0x03, 0x8e, 0x00, 0x05,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x07, 0x33, 0x00, 0x34,
+ 0x07, 0x33, 0x00, 0x34, 0x07, 0x33, 0x00, 0x34, 0x09, 0x8a, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0xff, 0xc5, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69, 0x03, 0xc0, 0x00, 0x69,
+ 0x03, 0xc0, 0x00, 0x60, 0x06, 0x08, 0x00, 0xfc, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc4,
+ 0x06, 0x08, 0x00, 0xc4, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xc3,
+ 0x06, 0x08, 0x00, 0xc3, 0x06, 0x08, 0x00, 0xa2, 0x06, 0x08, 0x01, 0x03,
+ 0x06, 0x08, 0x00, 0xa2, 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x00, 0x31,
+ 0x06, 0x08, 0x00, 0x31, 0x06, 0x08, 0x01, 0x3b, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x08, 0x00, 0xa2, 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x00, 0xa2,
+ 0x06, 0x08, 0x01, 0x03, 0x06, 0x08, 0x00, 0x31, 0x06, 0x08, 0x01, 0x3b,
+ 0x06, 0x04, 0x00, 0x69, 0x06, 0x04, 0x00, 0x69, 0x06, 0x04, 0x00, 0x40,
+ 0x06, 0x04, 0x00, 0x40, 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0xcd, 0x00, 0xa7, 0x05, 0x89, 0x00, 0x05,
+ 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05, 0x05, 0x89, 0x00, 0x05,
+ 0x06, 0xcd, 0x00, 0xa7, 0x06, 0x42, 0x00, 0x20, 0x06, 0x42, 0x00, 0x20,
+ 0x06, 0x49, 0x00, 0x87, 0x06, 0x49, 0x00, 0x87, 0x06, 0x49, 0x00, 0x1e,
+ 0x08, 0x0e, 0x00, 0x64, 0x06, 0x42, 0x00, 0x45, 0x06, 0x42, 0x00, 0x45,
+ 0x04, 0x02, 0x00, 0x09, 0x02, 0x00, 0x00, 0x09, 0x04, 0x02, 0xff, 0xdc,
+ 0x04, 0x57, 0x00, 0x09, 0x05, 0x00, 0x00, 0xb4, 0x04, 0x69, 0x00, 0x40,
+ 0x02, 0xd2, 0xff, 0xeb, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x2b, 0x00, 0xa7, 0x04, 0xee, 0x00, 0x52,
+ 0x03, 0xc7, 0x00, 0x4f, 0x05, 0xa0, 0x00, 0x67, 0x06, 0x36, 0x00, 0xb4,
+ 0x04, 0xec, 0x00, 0x0e, 0x05, 0xa0, 0x00, 0x67, 0x05, 0x49, 0x00, 0x36,
+ 0x08, 0x1f, 0x00, 0x3d, 0x06, 0xec, 0x00, 0x4d, 0x04, 0x42, 0x00, 0x5d,
+ 0x04, 0xb6, 0x00, 0xb4, 0x04, 0x16, 0x00, 0xad, 0x04, 0xbf, 0x00, 0x64,
+ 0x02, 0xfb, 0x00, 0x00, 0x04, 0x67, 0x00, 0x65, 0x03, 0x88, 0x00, 0x58,
+ 0x01, 0x42, 0xff, 0xec, 0x03, 0x19, 0x00, 0x09, 0x04, 0x92, 0x00, 0x79,
+ 0x04, 0xee, 0x00, 0x52, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0, 0x03, 0x8d, 0x00, 0xc0,
+ 0x03, 0x8d, 0x00, 0xc0, 0x02, 0xa8, 0x00, 0x5b, 0x02, 0xa8, 0x00, 0x5b,
+ 0x01, 0xd1, 0x00, 0xaf, 0x01, 0xd1, 0x00, 0xaf, 0x01, 0xd1, 0x00, 0xaf,
+ 0x02, 0xc6, 0x00, 0x7b, 0x02, 0x90, 0x00, 0x7b, 0x03, 0x65, 0x00, 0x67,
+ 0x03, 0x65, 0x00, 0x67, 0x05, 0x6a, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7,
+ 0x06, 0x52, 0xff, 0xfb, 0x05, 0x1b, 0x00, 0x31, 0x04, 0x6c, 0x00, 0x93,
+ 0x03, 0xe4, 0x00, 0x77, 0x03, 0x88, 0x00, 0xa7, 0x03, 0xc0, 0x00, 0x63,
+ 0x08, 0xff, 0x00, 0x0e, 0x07, 0x17, 0x00, 0x6e, 0x08, 0xa9, 0x00, 0x0e,
+ 0x07, 0x20, 0x00, 0x6e, 0x08, 0x39, 0x00, 0x0e, 0x07, 0x10, 0x00, 0x6e,
+ 0x06, 0xfe, 0x00, 0x0e, 0x05, 0xe3, 0x00, 0x6e, 0x06, 0xfe, 0x00, 0x0e,
+ 0x05, 0xe3, 0x00, 0x6e, 0x06, 0xe7, 0x00, 0x0e, 0x05, 0xe3, 0x00, 0x6e,
+ 0x05, 0x10, 0x00, 0x67, 0x03, 0xf4, 0x00, 0x72, 0x04, 0xb8, 0x00, 0x09,
+ 0x04, 0x32, 0x00, 0x0c, 0x04, 0xe5, 0x00, 0xb4, 0x02, 0xd2, 0x00, 0xad,
+ 0x04, 0x2f, 0x00, 0x4a, 0x03, 0x12, 0x00, 0x6c, 0x05, 0xce, 0x00, 0x09,
+ 0x05, 0x11, 0x00, 0x09, 0x09, 0xc6, 0x00, 0x67, 0x07, 0x55, 0x00, 0x65,
+ 0x04, 0x57, 0x00, 0x09, 0x04, 0x92, 0xff, 0xfc, 0x05, 0x48, 0x00, 0x2d,
+ 0x05, 0x93, 0x00, 0x2d, 0x05, 0xaa, 0x00, 0x67, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x5b, 0x00, 0x09, 0x04, 0x92, 0xff, 0xfc, 0x04, 0x5b, 0x00, 0x09,
+ 0x04, 0x92, 0xff, 0xfc, 0x04, 0x02, 0x00, 0x09, 0x02, 0x00, 0x00, 0xad,
+ 0x05, 0x4b, 0x00, 0xb4, 0x04, 0x90, 0x00, 0xa7, 0x02, 0x6d, 0x00, 0xd8,
+ 0x02, 0xb5, 0x00, 0x90, 0x02, 0xe2, 0x01, 0x16, 0x01, 0xfa, 0x00, 0xb1,
+ 0x04, 0xef, 0x00, 0x9d, 0x03, 0x82, 0x00, 0x45, 0x05, 0x8f, 0x00, 0xb4,
+ 0x04, 0xcc, 0x00, 0xa7, 0x05, 0x94, 0x00, 0x03, 0x04, 0x92, 0x00, 0x03,
+ 0x04, 0xb8, 0x00, 0x03, 0x04, 0x2b, 0x00, 0x03, 0x05, 0x62, 0x00, 0x03,
+ 0x04, 0x90, 0x00, 0x03, 0x05, 0x00, 0x00, 0x03, 0x02, 0xf5, 0x00, 0x03,
+ 0x04, 0x92, 0x00, 0x03, 0x03, 0xc0, 0x00, 0x03, 0x05, 0xc4, 0xff, 0xa2,
+ 0x06, 0x96, 0x00, 0xa7, 0x04, 0x24, 0x00, 0x6b, 0x04, 0x57, 0x00, 0x3f,
+ 0x06, 0x36, 0x00, 0xb4, 0x02, 0x1f, 0x00, 0xb4, 0x08, 0xa2, 0x00, 0x3d,
+ 0x01, 0x89, 0x00, 0xae, 0x01, 0xb6, 0x00, 0x7e, 0x01, 0xd9, 0x00, 0x63,
+ 0x01, 0xe6, 0x00, 0x56, 0x01, 0xec, 0x00, 0x51, 0x01, 0xb6, 0x00, 0x7e,
+ 0x01, 0x89, 0x00, 0xae, 0x01, 0xb6, 0x00, 0x7e, 0x01, 0xd9, 0x00, 0x63,
+ 0x01, 0xe6, 0x00, 0x56, 0x01, 0xd9, 0x00, 0x63, 0x01, 0xb6, 0x00, 0x7e,
+ 0x01, 0x89, 0x00, 0xae, 0x01, 0xb6, 0x00, 0x7e, 0x01, 0xd9, 0x00, 0x63,
+ 0x01, 0xe6, 0x00, 0x56, 0x01, 0xd9, 0x00, 0x63, 0x01, 0xb6, 0x00, 0x7e,
+ 0x01, 0x89, 0x00, 0xae, 0x01, 0xb6, 0x00, 0x7e, 0x01, 0xec, 0x00, 0x51,
+ 0x01, 0xe6, 0x00, 0x56, 0x01, 0xd9, 0x00, 0x63, 0x01, 0xb6, 0x00, 0x7e,
+ 0x01, 0x89, 0x00, 0xae, 0x01, 0xfa, 0x00, 0xc0, 0x07, 0x08, 0x00, 0x87,
+ 0x07, 0x08, 0x00, 0x87, 0x07, 0x08, 0x00, 0x87, 0x07, 0x08, 0x00, 0x87,
+ 0x04, 0x2d, 0x00, 0x63, 0x04, 0x2d, 0x00, 0x63, 0x04, 0x7d, 0x00, 0x63,
+ 0x06, 0x66, 0x00, 0x63, 0x04, 0x36, 0x00, 0x63, 0x04, 0x2d, 0x00, 0x63,
+ 0x04, 0xb3, 0x00, 0x63, 0x06, 0x59, 0x00, 0x63, 0x03, 0xff, 0x00, 0x63,
+ 0x04, 0x2d, 0x00, 0x63, 0x08, 0x69, 0x00, 0x63, 0x04, 0x3d, 0x00, 0x63,
+ 0x04, 0x3f, 0x00, 0x75, 0x06, 0x42, 0x00, 0x63, 0x04, 0x2d, 0x00, 0x63,
+ 0x04, 0x3e, 0x00, 0x63, 0x06, 0x93, 0x00, 0x63, 0x04, 0x3f, 0x00, 0x75,
+ 0x05, 0x43, 0x00, 0x63, 0x04, 0x32, 0x00, 0x2d, 0x06, 0x47, 0x00, 0x63,
+ 0x04, 0x3e, 0x00, 0x63, 0x06, 0x71, 0x00, 0x63, 0x04, 0x3d, 0x00, 0x63,
+ 0x04, 0x3d, 0x00, 0x63, 0x04, 0x40, 0x00, 0x75, 0x04, 0xac, 0x00, 0x64,
+ 0x04, 0x3d, 0x00, 0x63, 0x04, 0x3e, 0x00, 0x75, 0x04, 0x4f, 0x00, 0x63,
+ 0x04, 0x3f, 0x00, 0x75, 0x03, 0xb7, 0x00, 0x2d, 0x04, 0x2c, 0x00, 0x63,
+ 0x04, 0x34, 0x00, 0x6c, 0x04, 0x2d, 0x00, 0x63, 0x04, 0x2d, 0x00, 0x63,
+ 0x04, 0x2e, 0x00, 0x63, 0x04, 0x98, 0x00, 0x63, 0x06, 0xe0, 0x00, 0x63,
+ 0x06, 0xb4, 0x00, 0x6d, 0x05, 0xd1, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a,
+ 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a,
+ 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a,
+ 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a, 0x03, 0xa8, 0x00, 0x5a,
+ 0x03, 0xba, 0x00, 0x5a, 0x03, 0xba, 0x00, 0x5a, 0x03, 0xba, 0x00, 0x5a,
+ 0x05, 0xa9, 0x00, 0x5a, 0x05, 0xa9, 0x00, 0x5a, 0x05, 0xa9, 0x00, 0x5a,
+ 0x05, 0xa9, 0x00, 0x5a, 0x05, 0xa9, 0x00, 0x5a, 0x03, 0xef, 0x00, 0x36,
+ 0x03, 0xef, 0x00, 0x36, 0x03, 0xef, 0x00, 0x36, 0x03, 0xef, 0x00, 0x36,
+ 0x03, 0xef, 0x00, 0x36, 0x03, 0xef, 0x00, 0x36, 0x04, 0x67, 0x00, 0x65,
+ 0x04, 0xf5, 0x00, 0x2a, 0x04, 0x89, 0x00, 0x2a, 0x04, 0x89, 0x00, 0x2a,
+ 0x06, 0xf6, 0x00, 0x2a, 0x06, 0xf6, 0x00, 0x2a, 0x04, 0xf0, 0x00, 0x2a,
+ 0x06, 0x32, 0x00, 0x63, 0x00, 0x00, 0xfc, 0xcc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xfd, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x07, 0x62, 0x00, 0x1b, 0x05, 0x73, 0x00, 0x5a, 0x04, 0x5f, 0x00, 0xb4,
+ 0x04, 0x0c, 0x00, 0x5a, 0x04, 0x53, 0x00, 0xb4, 0x03, 0xf3, 0x00, 0xb4,
+ 0x03, 0xf3, 0x00, 0xb4, 0x03, 0x2a, 0x00, 0x87, 0x04, 0x80, 0x00, 0xb4,
+ 0x06, 0x81, 0x00, 0x87, 0x02, 0x0a, 0x00, 0xb4, 0x04, 0x96, 0x00, 0xb4,
+ 0x03, 0xef, 0x00, 0xb4, 0x0a, 0x45, 0x00, 0xb4, 0x06, 0x58, 0x00, 0xb4,
+ 0x06, 0xa6, 0x00, 0xb4, 0x06, 0x81, 0x00, 0x87, 0x04, 0xf0, 0x00, 0xb4,
+ 0x06, 0x40, 0x00, 0xb4, 0x04, 0x38, 0x00, 0x87, 0x04, 0x5d, 0x00, 0xb4,
+ 0x03, 0x2d, 0x00, 0x87, 0x05, 0x03, 0x00, 0x5a, 0x04, 0x95, 0x00, 0xb4,
+ 0x04, 0xf0, 0x00, 0x87, 0x04, 0xec, 0x00, 0x87, 0x05, 0xd4, 0x00, 0x5a,
+ 0x03, 0xcc, 0x00, 0x87, 0x04, 0x03, 0x00, 0xb4, 0x04, 0x03, 0x00, 0xb4,
+ 0x03, 0x2a, 0x00, 0x5a, 0x05, 0x73, 0x00, 0x5a, 0x02, 0x0a, 0x00, 0xb4,
+ 0x05, 0x73, 0x00, 0x5a, 0x04, 0xf0, 0x00, 0x87, 0x05, 0xe3, 0x00, 0x5a,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x05, 0x55, 0x00, 0x0e, 0x05, 0x43, 0x00, 0xb4, 0x05, 0xe5, 0x00, 0xd0,
+ 0x05, 0x40, 0x00, 0xb4, 0x04, 0xd9, 0x00, 0xb4, 0x05, 0x94, 0x00, 0x67,
+ 0x02, 0xd3, 0x00, 0x5b, 0x02, 0xd1, 0xff, 0xa1, 0x05, 0x6a, 0x00, 0xb4,
+ 0x04, 0xb6, 0x00, 0xb4, 0x07, 0x61, 0x00, 0xb0, 0x05, 0xaa, 0x00, 0x66,
+ 0x04, 0x92, 0x00, 0x7a, 0x05, 0x19, 0xff, 0xfb, 0x05, 0xfa, 0x00, 0x9f,
+ 0x05, 0x34, 0x00, 0x0e, 0x07, 0xfa, 0x00, 0x3d, 0x05, 0xcd, 0x00, 0x61,
+ 0x05, 0x17, 0xff, 0xfd, 0x04, 0xc3, 0x00, 0x6e, 0x05, 0x19, 0x00, 0x85,
+ 0x03, 0xf5, 0x00, 0x65, 0x05, 0x19, 0x00, 0x85, 0x04, 0x6e, 0x00, 0x63,
+ 0x03, 0x59, 0x00, 0x2a, 0x05, 0x19, 0x00, 0x65, 0x05, 0x4e, 0x00, 0xa7,
+ 0x02, 0x87, 0x00, 0xcf, 0x02, 0x87, 0xff, 0xdc, 0x04, 0xaf, 0x00, 0xa7,
+ 0x02, 0x87, 0x00, 0xcf, 0x08, 0x38, 0x00, 0xa7, 0x05, 0x4e, 0x00, 0xa7,
+ 0x04, 0x67, 0x00, 0x65, 0x05, 0x19, 0x00, 0x65, 0x05, 0x19, 0x00, 0x65,
+ 0x03, 0x7b, 0x00, 0xa7, 0x03, 0xc0, 0x00, 0x63, 0x03, 0x59, 0x00, 0x31,
+ 0x05, 0x52, 0x00, 0x9f, 0x04, 0x5f, 0x00, 0x36, 0x06, 0x8d, 0x00, 0x4d,
+ 0x04, 0xdd, 0x00, 0x44, 0x04, 0x7f, 0x00, 0x36, 0x04, 0x3f, 0x00, 0x4f,
+ 0x04, 0xec, 0x00, 0x0e, 0x04, 0xf0, 0x00, 0xb4, 0x05, 0x07, 0x00, 0x67,
+ 0x05, 0x8b, 0x00, 0xb4, 0x04, 0x8c, 0x00, 0xb4, 0x04, 0x24, 0x00, 0xb4,
+ 0x05, 0x94, 0x00, 0x67, 0x05, 0x6a, 0x00, 0xb4, 0x03, 0x31, 0x00, 0x87,
+ 0x02, 0x1f, 0xff, 0xa1, 0x04, 0xb8, 0x00, 0xb4, 0x04, 0x02, 0x00, 0xb4,
+ 0x06, 0x36, 0x00, 0xb4, 0x05, 0x62, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67,
+ 0x04, 0x57, 0x00, 0xb4, 0x05, 0xaa, 0x00, 0x67, 0x05, 0x00, 0x00, 0xb4,
+ 0x04, 0x92, 0x00, 0x79, 0x04, 0x65, 0xff, 0xfb, 0x05, 0x45, 0x00, 0xa0,
+ 0x04, 0xec, 0x00, 0x0e, 0x07, 0x1e, 0x00, 0x3d, 0x04, 0xee, 0x00, 0x36,
+ 0x04, 0x65, 0xff, 0xfd, 0x04, 0xee, 0x00, 0x52, 0x04, 0x69, 0x00, 0x6e,
+ 0x04, 0x92, 0x00, 0xa7, 0x03, 0xf5, 0x00, 0x65, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x6e, 0x00, 0x65, 0x02, 0x88, 0x00, 0x2a, 0x04, 0x92, 0x00, 0x65,
+ 0x04, 0x90, 0x00, 0xa7, 0x02, 0x00, 0x00, 0xad, 0x02, 0x00, 0xff, 0xdf,
+ 0x04, 0x2b, 0x00, 0xa7, 0x02, 0x00, 0x00, 0xad, 0x07, 0x03, 0x00, 0xa7,
+ 0x04, 0x90, 0x00, 0xa7, 0x04, 0x67, 0x00, 0x65, 0x04, 0x92, 0x00, 0xa7,
+ 0x04, 0x92, 0x00, 0x65, 0x02, 0xf5, 0x00, 0xa7, 0x03, 0xc0, 0x00, 0x63,
+ 0x02, 0xd2, 0x00, 0x31, 0x04, 0x90, 0x00, 0x9c, 0x04, 0x42, 0x00, 0x36,
+ 0x05, 0xe3, 0x00, 0x4d, 0x04, 0x42, 0x00, 0x35, 0x04, 0x42, 0x00, 0x36,
+ 0x03, 0xc7, 0x00, 0x4f, 0x04, 0x94, 0x00, 0x7a, 0x04, 0x94, 0x00, 0x60,
+ 0x04, 0x94, 0x00, 0x75, 0x04, 0x94, 0x00, 0x8c, 0x04, 0x94, 0x00, 0x51,
+ 0x04, 0x94, 0x00, 0x85, 0x04, 0x94, 0x00, 0x65, 0x04, 0x94, 0x00, 0x3a,
+ 0x04, 0x94, 0x00, 0x7d, 0x04, 0x92, 0x00, 0x5f, 0x04, 0x94, 0x00, 0x79,
+ 0x04, 0x94, 0x00, 0xca, 0x04, 0x94, 0x00, 0x87, 0x04, 0x94, 0x00, 0x8c,
+ 0x04, 0x94, 0x00, 0x5a, 0x04, 0x94, 0x00, 0x8e, 0x04, 0x94, 0x00, 0x80,
+ 0x04, 0x94, 0x00, 0x97, 0x04, 0x94, 0x00, 0x7d, 0x04, 0x94, 0x00, 0x74,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4,
+ 0x09, 0xd1, 0x00, 0xb4, 0x09, 0xd1, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4, 0x05, 0xde, 0x00, 0xb4,
+ 0x05, 0xde, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x6c, 0x00, 0xc3, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4, 0x07, 0x5d, 0x00, 0xb4,
+ 0x07, 0x82, 0x00, 0x89, 0x08, 0x85, 0x00, 0x43, 0x07, 0x81, 0x00, 0x36,
+ 0x08, 0x53, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x08, 0x69, 0x00, 0x55, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x80,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x08, 0x69, 0x00, 0x55,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x1f, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x0b, 0x8c, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x99,
+ 0x07, 0x81, 0x00, 0x99, 0x07, 0x81, 0x00, 0x34, 0x08, 0x69, 0x00, 0x56,
+ 0x07, 0x81, 0x00, 0x34, 0x07, 0x81, 0x00, 0x36, 0x07, 0x81, 0x00, 0x36,
+ 0x07, 0x81, 0x00, 0x36, 0x07, 0x81, 0x00, 0x36, 0x07, 0x81, 0x00, 0x36,
+ 0x07, 0x81, 0x00, 0x36, 0x00, 0x00, 0xff, 0xc1, 0x00, 0x00, 0xfd, 0x28,
+ 0x00, 0x00, 0xfd, 0xb5, 0x00, 0x00, 0xfd, 0x0b, 0x00, 0x00, 0xfd, 0x58,
+ 0x00, 0x00, 0xfd, 0x21, 0x00, 0x00, 0xfd, 0x21, 0x00, 0x00, 0xfd, 0x1a,
+ 0x00, 0x00, 0xfd, 0x1a, 0x00, 0x00, 0xfd, 0xd8, 0x00, 0x00, 0xfd, 0x36,
+ 0x00, 0x00, 0xfc, 0xad, 0x00, 0x87, 0x00, 0x00, 0x01, 0x68, 0x00, 0x00,
+ 0x01, 0x68, 0x00, 0x00, 0x01, 0x68, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00,
+ 0x01, 0x68, 0x00, 0x00, 0x07, 0x11, 0x00, 0x75, 0x02, 0x01, 0xff, 0xee,
+ 0x02, 0x2c, 0xff, 0xee, 0x07, 0x74, 0x00, 0x75, 0x03, 0x71, 0xff, 0xee,
+ 0x03, 0xa4, 0xff, 0xee, 0x06, 0x01, 0x00, 0x60, 0x03, 0x71, 0xff, 0xee,
+ 0x03, 0xa4, 0xff, 0xee, 0x02, 0x01, 0xff, 0xee, 0x02, 0x2c, 0xff, 0xee,
+ 0x01, 0x8a, 0x00, 0x00, 0x07, 0x11, 0x00, 0x75, 0x02, 0x01, 0xff, 0xee,
+ 0x02, 0x2c, 0xff, 0xee, 0x07, 0x11, 0x00, 0x75, 0x02, 0x01, 0xff, 0xee,
+ 0x02, 0x2c, 0xff, 0xee, 0x04, 0xa5, 0x00, 0x8d, 0x04, 0x73, 0xff, 0xee,
+ 0x04, 0xa5, 0xff, 0xee, 0x04, 0xa5, 0x00, 0x8d, 0x04, 0x73, 0xff, 0xee,
+ 0x04, 0xa5, 0xff, 0xee, 0x04, 0xa5, 0x00, 0x8d, 0x04, 0x73, 0xff, 0xee,
+ 0x04, 0xa5, 0xff, 0xee, 0x04, 0xa5, 0x00, 0x8d, 0x04, 0x73, 0xff, 0xee,
+ 0x04, 0xa5, 0xff, 0xee, 0x03, 0x08, 0x00, 0x00, 0x05, 0x62, 0x00, 0xbf,
+ 0x02, 0x00, 0x00, 0x0d, 0x02, 0xa3, 0xff, 0x0d, 0x04, 0xec, 0x01, 0x69,
+ 0x04, 0xec, 0x01, 0x69, 0x04, 0xec, 0x01, 0x69, 0x04, 0xec, 0x01, 0x6a,
+ 0x04, 0xec, 0x01, 0x6a, 0x04, 0xec, 0x01, 0x69, 0x04, 0xec, 0x01, 0x69,
+ 0x04, 0xec, 0x01, 0x50, 0x04, 0xec, 0x01, 0x63, 0x04, 0xec, 0x01, 0x50,
+ 0x04, 0xec, 0x01, 0x63, 0x04, 0xec, 0x01, 0x50, 0x04, 0xec, 0x01, 0x63,
+ 0x04, 0xec, 0x01, 0x63, 0x04, 0xec, 0x01, 0x50, 0x04, 0xec, 0x01, 0x50,
+ 0x04, 0xec, 0x01, 0x5c, 0x04, 0xec, 0x01, 0x5c, 0x04, 0xec, 0x01, 0x5c,
+ 0x04, 0xec, 0x01, 0x63, 0x00, 0x00, 0xfc, 0xf1, 0x01, 0x0e, 0x00, 0x00,
+ 0x03, 0xaf, 0x00, 0x00, 0x04, 0x65, 0xff, 0xb4, 0x04, 0x65, 0xff, 0xb4,
+ 0x05, 0x73, 0x00, 0x81, 0x02, 0x31, 0xff, 0xee, 0x02, 0x62, 0xff, 0xee,
+ 0x06, 0x00, 0x00, 0x75, 0x02, 0x01, 0xff, 0xee, 0x02, 0x2c, 0xff, 0xee,
+ 0x03, 0xf9, 0xff, 0xb4, 0x02, 0x00, 0x00, 0xad, 0x03, 0xdc, 0x00, 0x82,
+ 0x05, 0x07, 0x00, 0x65, 0x04, 0x65, 0x00, 0x65, 0x02, 0x00, 0x00, 0x87,
+ 0x02, 0x87, 0x00, 0x47, 0x02, 0x87, 0xff, 0x2e, 0x02, 0x00, 0xff, 0xd8,
+ 0x02, 0x00, 0x00, 0xab, 0x02, 0x6d, 0x00, 0xd8, 0x03, 0x31, 0x00, 0x87,
+ 0x06, 0x08, 0x01, 0x82, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb4,
+ 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb4,
+ 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc6,
+ 0x02, 0x01, 0x00, 0xad, 0x02, 0x01, 0xff, 0xee, 0x02, 0x01, 0xff, 0xee,
+ 0x04, 0x1d, 0x00, 0x65, 0x04, 0x1d, 0xff, 0xee, 0x04, 0x1d, 0xff, 0xee,
+ 0x03, 0x0d, 0x00, 0x36, 0x03, 0x0d, 0xff, 0xee, 0x03, 0x0d, 0xff, 0xee,
+ 0x04, 0x42, 0x00, 0x36, 0x04, 0x42, 0xff, 0xee, 0x04, 0x42, 0xff, 0xee,
+ 0x04, 0xb5, 0x00, 0xa7, 0x04, 0xb5, 0xff, 0xee, 0x04, 0xb5, 0xff, 0xee,
+ 0x04, 0xb5, 0x00, 0xa7, 0x04, 0xb5, 0xff, 0xee, 0x04, 0xb5, 0xff, 0xee,
+ 0x04, 0x46, 0x00, 0x65, 0x04, 0x46, 0xff, 0xee, 0x04, 0x46, 0xff, 0xee,
+ 0x04, 0xb5, 0x00, 0xa7, 0x04, 0xb5, 0xff, 0xee, 0x04, 0xb5, 0xff, 0xee,
+ 0x05, 0xf7, 0x00, 0x65, 0x05, 0xf7, 0xff, 0xee, 0x05, 0xf7, 0xff, 0xee,
+ 0x03, 0x27, 0x00, 0xad, 0x03, 0x27, 0xff, 0xee, 0x03, 0x27, 0xff, 0xee,
+ 0x03, 0x27, 0x00, 0x36, 0x03, 0x27, 0xff, 0xee, 0x03, 0x27, 0xff, 0xee,
+ 0x04, 0x05, 0x00, 0xa7, 0x04, 0x05, 0xff, 0xee, 0x04, 0x05, 0xff, 0xee,
+ 0x04, 0x67, 0x00, 0xad, 0x04, 0x67, 0xff, 0xee, 0x04, 0x67, 0xff, 0xee,
+ 0x02, 0x85, 0x00, 0x36, 0x02, 0x85, 0xff, 0xee, 0x02, 0x85, 0xff, 0xee,
+ 0x06, 0xe7, 0x00, 0xad, 0x06, 0xe7, 0xff, 0xee, 0x06, 0xe7, 0xff, 0xee,
+ 0x03, 0x67, 0x00, 0x36, 0x03, 0x67, 0xff, 0xee, 0x03, 0x67, 0xff, 0xee,
+ 0x05, 0xa3, 0x00, 0x36, 0x05, 0xa3, 0xff, 0xee, 0x05, 0xa3, 0xff, 0xee,
+ 0x04, 0xb5, 0x00, 0xa7, 0x04, 0xb5, 0xff, 0xee, 0x04, 0xb5, 0xff, 0xee,
+ 0x04, 0x80, 0x00, 0x36, 0x04, 0x80, 0xff, 0xee, 0x04, 0x80, 0xff, 0xee,
+ 0x05, 0x48, 0x00, 0xad, 0x05, 0x48, 0xff, 0xee, 0x05, 0x48, 0xff, 0xee,
+ 0x03, 0xd0, 0x00, 0xad, 0x03, 0xd0, 0xff, 0xee, 0x03, 0xd0, 0xff, 0xee,
+ 0x05, 0x36, 0x00, 0x64, 0x05, 0x36, 0xff, 0xee, 0x05, 0x36, 0xff, 0xee,
+ 0x03, 0x67, 0x00, 0x36, 0x03, 0x67, 0xff, 0xee, 0x03, 0x67, 0xff, 0xee,
+ 0x04, 0x80, 0x00, 0x36, 0x04, 0x80, 0xff, 0xee, 0x04, 0x80, 0xff, 0xee,
+ 0x04, 0x46, 0x00, 0x65, 0x04, 0x46, 0xff, 0xee, 0x04, 0x46, 0xff, 0xee,
+ 0x03, 0xd0, 0x00, 0xad, 0x03, 0xd0, 0xff, 0xee, 0x03, 0xd0, 0xff, 0xee,
+ 0x03, 0xd0, 0x00, 0xad, 0x03, 0xd0, 0xff, 0xee, 0x03, 0xd0, 0xff, 0xee,
+ 0x03, 0xc3, 0x00, 0xad, 0x03, 0xc3, 0xff, 0xee, 0x03, 0xc3, 0xff, 0xee,
+ 0x04, 0x46, 0x00, 0x65, 0x04, 0x46, 0xff, 0xee, 0x04, 0x46, 0xff, 0xee,
+ 0x04, 0x46, 0x00, 0x65, 0x04, 0x46, 0xff, 0xee, 0x04, 0x46, 0xff, 0xee,
+ 0x00, 0x00, 0xfd, 0x3b, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99, 0x06, 0x74, 0x00, 0x99,
+ 0x06, 0x07, 0x01, 0x6e, 0x05, 0x8f, 0x00, 0xb4, 0x04, 0xdf, 0x00, 0xad,
+ 0x04, 0x90, 0x00, 0x9c, 0x03, 0xc7, 0x00, 0x70, 0x03, 0xc7, 0x00, 0x70,
+ 0x03, 0xc7, 0x00, 0x70, 0x03, 0xc7, 0x00, 0x70, 0x03, 0xc7, 0x00, 0x70,
+ 0x03, 0xf9, 0xff, 0xb4, 0x03, 0xf9, 0xff, 0xb4, 0x03, 0xf9, 0xff, 0xb4,
+ 0x03, 0xf9, 0xff, 0xb4, 0x03, 0xf9, 0xff, 0xb4, 0x09, 0x2d, 0x00, 0x75,
+ 0x06, 0x08, 0xff, 0xee, 0x06, 0x6c, 0xff, 0xee, 0x09, 0x2d, 0x00, 0x75,
+ 0x06, 0x08, 0xff, 0xee, 0x06, 0x6c, 0xff, 0xee, 0x09, 0x2d, 0x00, 0x75,
+ 0x06, 0x08, 0xff, 0xee, 0x06, 0x6c, 0xff, 0xee, 0x08, 0xd2, 0x00, 0x75,
+ 0x06, 0x1d, 0xff, 0xee, 0x06, 0x3e, 0xff, 0xee, 0x08, 0xd2, 0x00, 0x75,
+ 0x06, 0x1d, 0xff, 0xee, 0x06, 0x3e, 0xff, 0xee, 0x06, 0xd5, 0x00, 0x81,
+ 0x05, 0xbb, 0xff, 0xee, 0x05, 0xe8, 0xff, 0xee, 0x03, 0xd5, 0x00, 0x69,
+ 0x04, 0x4b, 0xff, 0xee, 0x03, 0x79, 0xff, 0xee, 0x07, 0x74, 0x00, 0x75,
+ 0x03, 0x71, 0xff, 0xee, 0x03, 0xa4, 0xff, 0xee, 0x07, 0x74, 0x00, 0x75,
+ 0x03, 0x71, 0xff, 0xee, 0x03, 0xa4, 0xff, 0xee, 0x07, 0x74, 0x00, 0x75,
+ 0x03, 0x71, 0xff, 0xee, 0x03, 0xa4, 0xff, 0xee, 0x06, 0x01, 0x00, 0x60,
+ 0x03, 0x71, 0xff, 0xee, 0x03, 0xa4, 0xff, 0xee, 0x06, 0x01, 0x00, 0x60,
+ 0x03, 0x71, 0xff, 0xee, 0x03, 0xa4, 0xff, 0xee, 0x07, 0x96, 0x00, 0x75,
+ 0x06, 0x40, 0xff, 0xee, 0x06, 0x40, 0xff, 0xee, 0x06, 0x71, 0x00, 0x75,
+ 0x03, 0x6d, 0xff, 0xee, 0x03, 0xf9, 0xff, 0xee, 0x06, 0x11, 0x00, 0x81,
+ 0x03, 0x6d, 0xff, 0xee, 0x03, 0xf9, 0xff, 0xee, 0x06, 0x11, 0x00, 0x81,
+ 0x03, 0x6d, 0xff, 0xee, 0x03, 0xf9, 0xff, 0xee, 0x06, 0x71, 0x03, 0x69,
+ 0x03, 0x6d, 0x00, 0x64, 0x03, 0xf9, 0x00, 0x64, 0x06, 0x71, 0x02, 0x1c,
+ 0x03, 0x6d, 0x00, 0x64, 0x03, 0xf9, 0x00, 0x64, 0x06, 0x71, 0x03, 0x2a,
+ 0x03, 0x6d, 0x00, 0x43, 0x03, 0xf9, 0x00, 0x43, 0x05, 0x73, 0x00, 0x81,
+ 0x02, 0x31, 0xff, 0xee, 0x02, 0x62, 0xff, 0xee, 0x05, 0x73, 0x00, 0x81,
+ 0x02, 0x31, 0xff, 0xee, 0x02, 0x62, 0xff, 0xee, 0x05, 0x73, 0x00, 0x81,
+ 0x02, 0x31, 0xff, 0xee, 0x02, 0x62, 0xff, 0xee, 0x05, 0x7b, 0x00, 0x84,
+ 0x02, 0x01, 0xff, 0xee, 0x02, 0x2c, 0xff, 0xee, 0x05, 0x7b, 0x00, 0x84,
+ 0x02, 0x01, 0xff, 0xee, 0x02, 0x2c, 0xff, 0xee, 0x05, 0x7b, 0x00, 0x84,
+ 0x02, 0x01, 0xff, 0xee, 0x02, 0x2c, 0xff, 0xee, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x01, 0x0a, 0xa7, 0x30, 0x00, 0x00, 0x0b,
+ 0x0f, 0xea, 0x00, 0x10, 0x00, 0x24, 0xff, 0xd3, 0x00, 0x10, 0x00, 0x25,
+ 0xff, 0xb7, 0x00, 0x10, 0x00, 0x2a, 0x00, 0x4b, 0x00, 0x10, 0x00, 0x2d,
+ 0x00, 0x72, 0x00, 0x10, 0x00, 0x32, 0x00, 0x39, 0x00, 0x10, 0x00, 0x34,
+ 0x00, 0x4b, 0x00, 0x10, 0x00, 0x37, 0xff, 0x44, 0x00, 0x10, 0x00, 0x39,
+ 0xff, 0x88, 0x00, 0x10, 0x00, 0x3a, 0xff, 0xad, 0x00, 0x10, 0x00, 0x3b,
+ 0xff, 0x9a, 0x00, 0x10, 0x00, 0x3c, 0xff, 0x0d, 0x00, 0x10, 0x00, 0x52,
+ 0x00, 0x26, 0x00, 0x10, 0x00, 0x59, 0xff, 0xc9, 0x00, 0x10, 0x00, 0x5c,
+ 0xff, 0xdc, 0x00, 0x10, 0x00, 0x82, 0xff, 0xd3, 0x00, 0x10, 0x00, 0x83,
+ 0xff, 0xd3, 0x00, 0x10, 0x00, 0x84, 0xff, 0xd3, 0x00, 0x10, 0x00, 0x85,
+ 0xff, 0xd3, 0x00, 0x10, 0x00, 0x86, 0xff, 0xd3, 0x00, 0x10, 0x00, 0x94,
+ 0x00, 0x39, 0x00, 0x10, 0x00, 0x95, 0x00, 0x39, 0x00, 0x10, 0x00, 0x96,
+ 0x00, 0x39, 0x00, 0x10, 0x00, 0x97, 0x00, 0x39, 0x00, 0x10, 0x00, 0x98,
+ 0x00, 0x39, 0x00, 0x10, 0x00, 0x9f, 0xff, 0x0d, 0x00, 0x10, 0x00, 0xb4,
+ 0x00, 0x26, 0x00, 0x10, 0x00, 0xb5, 0x00, 0x26, 0x00, 0x10, 0x00, 0xb6,
+ 0x00, 0x26, 0x00, 0x10, 0x00, 0xb7, 0x00, 0x26, 0x00, 0x10, 0x00, 0xb8,
+ 0x00, 0x26, 0x00, 0x10, 0x00, 0xbf, 0xff, 0xdc, 0x00, 0x10, 0x00, 0xc1,
+ 0xff, 0xdc, 0x00, 0x10, 0x00, 0xc2, 0xff, 0xd3, 0x00, 0x10, 0x00, 0xc4,
+ 0xff, 0xd3, 0x00, 0x10, 0x00, 0xc6, 0xff, 0xd3, 0x00, 0x10, 0x00, 0xe0,
+ 0x00, 0x4b, 0x00, 0x10, 0x01, 0x26, 0xff, 0x44, 0x00, 0x10, 0x01, 0x3a,
+ 0xff, 0x0d, 0x00, 0x24, 0x00, 0x10, 0xff, 0xd3, 0x00, 0x24, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x24,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0x26, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x2a,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x32, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x34,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x37, 0xff, 0x61, 0x00, 0x24, 0x00, 0x39,
+ 0xff, 0x7d, 0x00, 0x24, 0x00, 0x3a, 0xff, 0x90, 0x00, 0x24, 0x00, 0x3c,
+ 0xff, 0x61, 0x00, 0x24, 0x00, 0x46, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x48, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x49,
+ 0xff, 0xb7, 0x00, 0x24, 0x00, 0x52, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x54,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x57, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x59,
+ 0xff, 0x88, 0x00, 0x24, 0x00, 0x5a, 0xff, 0xad, 0x00, 0x24, 0x00, 0x5c,
+ 0xff, 0x75, 0x00, 0x24, 0x00, 0x6d, 0xff, 0xb7, 0x00, 0x24, 0x00, 0x82,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0x83, 0x00, 0x39, 0x00, 0x24, 0x00, 0x84,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0x85, 0x00, 0x39, 0x00, 0x24, 0x00, 0x86,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0x89, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x94,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x95, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x96,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x97, 0xff, 0xdc, 0x00, 0x24, 0x00, 0x98,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0x9f, 0xff, 0x61, 0x00, 0x24, 0x00, 0xa9,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xaa, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xab,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xac, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xad,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xb4, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xb5,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xb6, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xb7,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xb8, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xbf,
+ 0xff, 0x75, 0x00, 0x24, 0x00, 0xc1, 0xff, 0x75, 0x00, 0x24, 0x00, 0xc2,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0xc4, 0x00, 0x39, 0x00, 0x24, 0x00, 0xc6,
+ 0x00, 0x39, 0x00, 0x24, 0x00, 0xc8, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xc9,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xca, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xcb,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xd3,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xd5, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xd7,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xd9, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xdb,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xde,
+ 0xff, 0xdc, 0x00, 0x24, 0x00, 0xe0, 0xff, 0xdc, 0x00, 0x24, 0x00, 0xe2,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x0e, 0xff, 0xdc, 0x00, 0x24, 0x01, 0x0f,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x10, 0xff, 0xdc, 0x00, 0x24, 0x01, 0x11,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x12, 0xff, 0xdc, 0x00, 0x24, 0x01, 0x13,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x24, 0xff, 0x61, 0x00, 0x24, 0x01, 0x25,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x26, 0xff, 0x61, 0x00, 0x24, 0x01, 0x27,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0x36, 0xff, 0x90, 0x00, 0x24, 0x01, 0x37,
+ 0xff, 0xad, 0x00, 0x24, 0x01, 0x38, 0xff, 0x61, 0x00, 0x24, 0x01, 0x39,
+ 0xff, 0x75, 0x00, 0x24, 0x01, 0x3a, 0xff, 0x61, 0x00, 0x24, 0x01, 0x88,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0xac, 0xff, 0xdc, 0x00, 0x24, 0x01, 0xad,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0xae, 0xff, 0xdc, 0x00, 0x24, 0x01, 0xaf,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0xdc, 0xff, 0x61, 0x00, 0x24, 0x01, 0xdd,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x24, 0x01, 0xf3,
+ 0xff, 0xdc, 0x00, 0x24, 0x01, 0xf4, 0xff, 0x61, 0x00, 0x24, 0x01, 0xf5,
+ 0xff, 0x75, 0x00, 0x24, 0x05, 0xd0, 0xff, 0x90, 0x00, 0x24, 0x05, 0xd1,
+ 0xff, 0xad, 0x00, 0x24, 0x05, 0xd2, 0xff, 0x90, 0x00, 0x24, 0x05, 0xd3,
+ 0xff, 0xad, 0x00, 0x24, 0x05, 0xd4, 0xff, 0x90, 0x00, 0x24, 0x05, 0xd5,
+ 0xff, 0xad, 0x00, 0x24, 0x06, 0x42, 0xff, 0x61, 0x00, 0x24, 0x06, 0x43,
+ 0xff, 0x75, 0x00, 0x24, 0x07, 0x51, 0xfe, 0xf8, 0x00, 0x24, 0x07, 0x52,
+ 0xff, 0x03, 0x00, 0x24, 0x07, 0x53, 0x00, 0x2f, 0x00, 0x25, 0x00, 0x26,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x25, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x36, 0xff, 0xdc, 0x00, 0x25, 0x00, 0x39,
+ 0xff, 0xc1, 0x00, 0x25, 0x00, 0x3a, 0xff, 0xb7, 0x00, 0x25, 0x00, 0x3c,
+ 0xff, 0x90, 0x00, 0x25, 0x00, 0x6d, 0xff, 0xc1, 0x00, 0x25, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x89, 0xff, 0xdc, 0x00, 0x25, 0x00, 0x94,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x95, 0xff, 0xdc, 0x00, 0x25, 0x00, 0x96,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x97, 0xff, 0xdc, 0x00, 0x25, 0x00, 0x98,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0x9f, 0xff, 0x90, 0x00, 0x25, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0xca, 0xff, 0xdc, 0x00, 0x25, 0x00, 0xcc,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x25, 0x00, 0xde,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0xe0, 0xff, 0xdc, 0x00, 0x25, 0x00, 0xe2,
+ 0xff, 0xdc, 0x00, 0x25, 0x00, 0xe4, 0xff, 0xdc, 0x00, 0x25, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0x10, 0xff, 0xdc, 0x00, 0x25, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0x1c, 0xff, 0xdc, 0x00, 0x25, 0x01, 0x1e,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0x20, 0xff, 0xdc, 0x00, 0x25, 0x01, 0x22,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0x36, 0xff, 0xb7, 0x00, 0x25, 0x01, 0x38,
+ 0xff, 0x90, 0x00, 0x25, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x25, 0x01, 0xac,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0xae, 0xff, 0xdc, 0x00, 0x25, 0x01, 0xda,
+ 0xff, 0xdc, 0x00, 0x25, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x25, 0x05, 0xd0,
+ 0xff, 0xb7, 0x00, 0x25, 0x05, 0xd2, 0xff, 0xb7, 0x00, 0x25, 0x05, 0xd4,
+ 0xff, 0xb7, 0x00, 0x25, 0x06, 0x42, 0xff, 0x90, 0x00, 0x25, 0x07, 0x51,
+ 0xff, 0x90, 0x00, 0x25, 0x07, 0x52, 0xff, 0x90, 0x00, 0x25, 0x07, 0x53,
+ 0xff, 0xad, 0x00, 0x26, 0x00, 0x3c, 0xff, 0xdc, 0x00, 0x26, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x26, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0x26, 0x00, 0x9f,
+ 0xff, 0xdc, 0x00, 0x26, 0x01, 0x38, 0xff, 0xdc, 0x00, 0x26, 0x01, 0x3a,
+ 0xff, 0xdc, 0x00, 0x26, 0x01, 0xf4, 0xff, 0xdc, 0x00, 0x26, 0x06, 0x42,
+ 0xff, 0xdc, 0x00, 0x26, 0x07, 0x52, 0x00, 0x26, 0x00, 0x27, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x27, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x27, 0x00, 0x3c,
+ 0xff, 0x90, 0x00, 0x27, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x27, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x27, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x27, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x27, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x27, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x27, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x27, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x27, 0x00, 0xc2, 0xff, 0xdc, 0x00, 0x27, 0x00, 0xc4,
+ 0xff, 0xdc, 0x00, 0x27, 0x00, 0xc6, 0xff, 0xdc, 0x00, 0x27, 0x01, 0x38,
+ 0xff, 0x90, 0x00, 0x27, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x27, 0x01, 0xf4,
+ 0xff, 0x90, 0x00, 0x27, 0x06, 0x42, 0xff, 0x90, 0x00, 0x27, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x27, 0x07, 0x52, 0xff, 0xc9, 0x00, 0x27, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0x11, 0xfe, 0xb7, 0x00, 0x29, 0x00, 0x1d,
+ 0xff, 0x61, 0x00, 0x29, 0x00, 0x24, 0xff, 0x44, 0x00, 0x29, 0x00, 0x36,
+ 0xff, 0xdc, 0x00, 0x29, 0x00, 0x37, 0xff, 0xdc, 0x00, 0x29, 0x00, 0x44,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0x48, 0xff, 0x90, 0x00, 0x29, 0x00, 0x4c,
+ 0xff, 0x6b, 0x00, 0x29, 0x00, 0x52, 0xff, 0xb7, 0x00, 0x29, 0x00, 0x55,
+ 0xff, 0x6b, 0x00, 0x29, 0x00, 0x58, 0xff, 0x90, 0x00, 0x29, 0x00, 0x5c,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0x82, 0xff, 0x44, 0x00, 0x29, 0x00, 0x83,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0x84, 0xff, 0x44, 0x00, 0x29, 0x00, 0x85,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0x86, 0xff, 0x44, 0x00, 0x29, 0x00, 0xa2,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xa3, 0xff, 0x44, 0x00, 0x29, 0x00, 0xa4,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xa5, 0xff, 0x44, 0x00, 0x29, 0x00, 0xa6,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xa7, 0xff, 0x44, 0x00, 0x29, 0x00, 0xaa,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xab, 0xff, 0x90, 0x00, 0x29, 0x00, 0xac,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xad, 0xff, 0x90, 0x00, 0x29, 0x00, 0xb4,
+ 0xff, 0xb7, 0x00, 0x29, 0x00, 0xb5, 0xff, 0xb7, 0x00, 0x29, 0x00, 0xb6,
+ 0xff, 0xb7, 0x00, 0x29, 0x00, 0xb7, 0xff, 0xb7, 0x00, 0x29, 0x00, 0xb8,
+ 0xff, 0xb7, 0x00, 0x29, 0x00, 0xbb, 0xff, 0x90, 0x00, 0x29, 0x00, 0xbc,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xbd, 0xff, 0x90, 0x00, 0x29, 0x00, 0xbe,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xbf, 0xff, 0x44, 0x00, 0x29, 0x00, 0xc1,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xc2, 0xff, 0x44, 0x00, 0x29, 0x00, 0xc3,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xc4, 0xff, 0x44, 0x00, 0x29, 0x00, 0xc5,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xc6, 0xff, 0x44, 0x00, 0x29, 0x00, 0xc7,
+ 0xff, 0x44, 0x00, 0x29, 0x00, 0xd5, 0xff, 0x90, 0x00, 0x29, 0x00, 0xd7,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xd9, 0xff, 0x90, 0x00, 0x29, 0x00, 0xdb,
+ 0xff, 0x90, 0x00, 0x29, 0x00, 0xdd, 0xff, 0x90, 0x00, 0x29, 0x00, 0xf1,
+ 0xff, 0x6b, 0x00, 0x29, 0x00, 0xf5, 0xff, 0x6b, 0x00, 0x29, 0x01, 0x0f,
+ 0xff, 0xb7, 0x00, 0x29, 0x01, 0x11, 0xff, 0xb7, 0x00, 0x29, 0x01, 0x13,
+ 0xff, 0xb7, 0x00, 0x29, 0x01, 0x17, 0xff, 0x6b, 0x00, 0x29, 0x01, 0x19,
+ 0xff, 0x6b, 0x00, 0x29, 0x01, 0x1b, 0xff, 0x6b, 0x00, 0x29, 0x01, 0x1c,
+ 0xff, 0xdc, 0x00, 0x29, 0x01, 0x1e, 0xff, 0xdc, 0x00, 0x29, 0x01, 0x20,
+ 0xff, 0xdc, 0x00, 0x29, 0x01, 0x22, 0xff, 0xdc, 0x00, 0x29, 0x01, 0x24,
+ 0xff, 0xdc, 0x00, 0x29, 0x01, 0x26, 0xff, 0xdc, 0x00, 0x29, 0x01, 0x28,
+ 0xff, 0xdc, 0x00, 0x29, 0x01, 0x2b, 0xff, 0x90, 0x00, 0x29, 0x01, 0x2d,
+ 0xff, 0x90, 0x00, 0x29, 0x01, 0x2f, 0xff, 0x90, 0x00, 0x29, 0x01, 0x31,
+ 0xff, 0x90, 0x00, 0x29, 0x01, 0x33, 0xff, 0x90, 0x00, 0x29, 0x01, 0x35,
+ 0xff, 0x90, 0x00, 0x29, 0x01, 0x39, 0xff, 0x44, 0x00, 0x29, 0x01, 0xad,
+ 0xff, 0xb7, 0x00, 0x29, 0x01, 0xaf, 0xff, 0xb7, 0x00, 0x29, 0x01, 0xda,
+ 0xff, 0xdc, 0x00, 0x29, 0x01, 0xdc, 0xff, 0xdc, 0x00, 0x29, 0x01, 0xf1,
+ 0xff, 0xb7, 0x00, 0x29, 0x01, 0xf5, 0xff, 0x44, 0x00, 0x29, 0x06, 0x43,
+ 0xff, 0x44, 0x00, 0x29, 0x07, 0x51, 0xff, 0xd3, 0x00, 0x29, 0x07, 0x53,
+ 0xfe, 0x88, 0x00, 0x2a, 0x00, 0x37, 0xff, 0xb7, 0x00, 0x2a, 0x00, 0x3c,
+ 0xff, 0x9a, 0x00, 0x2a, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x2a, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x2a, 0x00, 0x9f, 0xff, 0x9a, 0x00, 0x2a, 0x01, 0x26,
+ 0xff, 0xb7, 0x00, 0x2a, 0x01, 0x3a, 0xff, 0x9a, 0x00, 0x2a, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x2a, 0x07, 0x52, 0xff, 0xd3, 0x00, 0x2a, 0x07, 0x53,
+ 0xff, 0xc9, 0x00, 0x2b, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x2b, 0x07, 0x51,
+ 0xff, 0xb7, 0x00, 0x2b, 0x07, 0x52, 0xff, 0xc1, 0x00, 0x2b, 0x07, 0x53,
+ 0xff, 0xb7, 0x00, 0x2d, 0x00, 0x10, 0xff, 0xb7, 0x00, 0x2d, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x2d, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x2d, 0x07, 0x51,
+ 0xff, 0xb7, 0x00, 0x2d, 0x07, 0x52, 0xff, 0xc1, 0x00, 0x2d, 0x07, 0x53,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0x10, 0xff, 0x29, 0x00, 0x2e, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x26, 0xff, 0x90, 0x00, 0x2e, 0x00, 0x32,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0x37, 0xff, 0x61, 0x00, 0x2e, 0x00, 0x38,
+ 0xff, 0xc9, 0x00, 0x2e, 0x00, 0x3a, 0xff, 0xb7, 0x00, 0x2e, 0x00, 0x3c,
+ 0xff, 0xb7, 0x00, 0x2e, 0x00, 0x44, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x48,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0x52, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0x58,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0x5c, 0xff, 0x6b, 0x00, 0x2e, 0x00, 0x6d,
+ 0xff, 0x7d, 0x00, 0x2e, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0x89,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0x94, 0xff, 0x90, 0x00, 0x2e, 0x00, 0x95,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0x96, 0xff, 0x90, 0x00, 0x2e, 0x00, 0x97,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0x98, 0xff, 0x90, 0x00, 0x2e, 0x00, 0x9b,
+ 0xff, 0xc9, 0x00, 0x2e, 0x00, 0x9c, 0xff, 0xc9, 0x00, 0x2e, 0x00, 0x9d,
+ 0xff, 0xc9, 0x00, 0x2e, 0x00, 0x9e, 0xff, 0xc9, 0x00, 0x2e, 0x00, 0x9f,
+ 0xff, 0xb7, 0x00, 0x2e, 0x00, 0xa2, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xa3,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xa4, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xa5,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xa6, 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xa7,
+ 0xff, 0xdc, 0x00, 0x2e, 0x00, 0xaa, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xab,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xac, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xad,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xb4, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xb5,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xb6, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xb7,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xb8, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xbb,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xbc, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xbd,
+ 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xbe, 0xff, 0x9a, 0x00, 0x2e, 0x00, 0xbf,
+ 0xff, 0x6b, 0x00, 0x2e, 0x00, 0xc1, 0xff, 0x6b, 0x00, 0x2e, 0x00, 0xc8,
+ 0xff, 0x90, 0x00, 0x2e, 0x00, 0xce, 0xff, 0x90, 0x00, 0x2e, 0x00, 0xdd,
+ 0xff, 0x9a, 0x00, 0x2e, 0x01, 0x26, 0xff, 0x61, 0x00, 0x2e, 0x01, 0x30,
+ 0xff, 0xc9, 0x00, 0x2e, 0x01, 0x31, 0xff, 0x9a, 0x00, 0x2e, 0x01, 0x3a,
+ 0xff, 0xb7, 0x00, 0x2e, 0x07, 0x51, 0xff, 0xc1, 0x00, 0x2e, 0x07, 0x52,
+ 0xff, 0xc1, 0x00, 0x2f, 0x00, 0x10, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0x24,
+ 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x32, 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x37,
+ 0xfe, 0xe6, 0x00, 0x2f, 0x00, 0x38, 0xff, 0x9a, 0x00, 0x2f, 0x00, 0x39,
+ 0xff, 0x1f, 0x00, 0x2f, 0x00, 0x3a, 0xff, 0x44, 0x00, 0x2f, 0x00, 0x3c,
+ 0xfe, 0xf0, 0x00, 0x2f, 0x00, 0x48, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0x58, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0x5c,
+ 0xff, 0x44, 0x00, 0x2f, 0x00, 0x82, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x83,
+ 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x84, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x85,
+ 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x86, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x94,
+ 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x95, 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x96,
+ 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x97, 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x98,
+ 0xff, 0xb7, 0x00, 0x2f, 0x00, 0x9b, 0xff, 0x9a, 0x00, 0x2f, 0x00, 0x9c,
+ 0xff, 0x9a, 0x00, 0x2f, 0x00, 0x9d, 0xff, 0x9a, 0x00, 0x2f, 0x00, 0x9e,
+ 0xff, 0x9a, 0x00, 0x2f, 0x00, 0x9f, 0xfe, 0xf0, 0x00, 0x2f, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xab, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xad, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xbb, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xbc,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xbd, 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xbe,
+ 0xff, 0xdc, 0x00, 0x2f, 0x00, 0xbf, 0xff, 0x44, 0x00, 0x2f, 0x00, 0xc1,
+ 0xff, 0x44, 0x00, 0x2f, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0x2f, 0x01, 0x26,
+ 0xfe, 0xe6, 0x00, 0x2f, 0x01, 0x30, 0xff, 0x9a, 0x00, 0x2f, 0x01, 0x31,
+ 0xff, 0xdc, 0x00, 0x2f, 0x01, 0x3a, 0xfe, 0xf0, 0x00, 0x2f, 0x07, 0x51,
+ 0xfe, 0x61, 0x00, 0x2f, 0x07, 0x52, 0xfd, 0xe6, 0x00, 0x32, 0x00, 0x10,
+ 0x00, 0x39, 0x00, 0x32, 0x00, 0x11, 0xff, 0xad, 0x00, 0x32, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x32, 0x00, 0x24, 0xff, 0xdc, 0x00, 0x32, 0x00, 0x39,
+ 0xff, 0xdc, 0x00, 0x32, 0x00, 0x3b, 0xff, 0x7d, 0x00, 0x32, 0x00, 0x3c,
+ 0xff, 0x90, 0x00, 0x32, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x32, 0x00, 0x82,
+ 0xff, 0xdc, 0x00, 0x32, 0x00, 0x83, 0xff, 0xdc, 0x00, 0x32, 0x00, 0x84,
+ 0xff, 0xdc, 0x00, 0x32, 0x00, 0x85, 0xff, 0xdc, 0x00, 0x32, 0x00, 0x86,
+ 0xff, 0xdc, 0x00, 0x32, 0x00, 0x9f, 0xff, 0x90, 0x00, 0x32, 0x01, 0x3a,
+ 0xff, 0x90, 0x00, 0x32, 0x07, 0x51, 0xff, 0xd3, 0x00, 0x32, 0x07, 0x52,
+ 0xff, 0xdc, 0x00, 0x32, 0x07, 0x53, 0xff, 0x44, 0x00, 0x33, 0x00, 0x10,
+ 0xff, 0xd3, 0x00, 0x33, 0x00, 0x11, 0xfe, 0xc1, 0x00, 0x33, 0x00, 0x24,
+ 0xff, 0x7d, 0x00, 0x33, 0x00, 0x3c, 0xff, 0xd3, 0x00, 0x33, 0x00, 0x44,
+ 0xff, 0xa4, 0x00, 0x33, 0x00, 0x48, 0xff, 0xb7, 0x00, 0x33, 0x00, 0x4c,
+ 0xff, 0xd3, 0x00, 0x33, 0x00, 0x51, 0xff, 0xdc, 0x00, 0x33, 0x00, 0x52,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0x55, 0xff, 0xdc, 0x00, 0x33, 0x00, 0x56,
+ 0xff, 0xdc, 0x00, 0x33, 0x00, 0x58, 0xff, 0xdc, 0x00, 0x33, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x33, 0x00, 0x82, 0xff, 0x7d, 0x00, 0x33, 0x00, 0x83,
+ 0xff, 0x7d, 0x00, 0x33, 0x00, 0x84, 0xff, 0x7d, 0x00, 0x33, 0x00, 0x85,
+ 0xff, 0x7d, 0x00, 0x33, 0x00, 0x86, 0xff, 0x7d, 0x00, 0x33, 0x00, 0x9f,
+ 0xff, 0xd3, 0x00, 0x33, 0x00, 0xa2, 0xff, 0xa4, 0x00, 0x33, 0x00, 0xa3,
+ 0xff, 0xa4, 0x00, 0x33, 0x00, 0xa4, 0xff, 0xa4, 0x00, 0x33, 0x00, 0xa5,
+ 0xff, 0xa4, 0x00, 0x33, 0x00, 0xa6, 0xff, 0xa4, 0x00, 0x33, 0x00, 0xa7,
+ 0xff, 0xa4, 0x00, 0x33, 0x00, 0xaa, 0xff, 0xb7, 0x00, 0x33, 0x00, 0xab,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0xac, 0xff, 0xb7, 0x00, 0x33, 0x00, 0xad,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0xb3, 0xff, 0xdc, 0x00, 0x33, 0x00, 0xb4,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0xb5, 0xff, 0xb7, 0x00, 0x33, 0x00, 0xb6,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0xb7, 0xff, 0xb7, 0x00, 0x33, 0x00, 0xb8,
+ 0xff, 0xb7, 0x00, 0x33, 0x00, 0xbb, 0xff, 0xdc, 0x00, 0x33, 0x00, 0xbc,
+ 0xff, 0xdc, 0x00, 0x33, 0x00, 0xbd, 0xff, 0xdc, 0x00, 0x33, 0x00, 0xbe,
+ 0xff, 0xdc, 0x00, 0x33, 0x00, 0xdd, 0xff, 0xb7, 0x00, 0x33, 0x01, 0x0a,
+ 0xff, 0xdc, 0x00, 0x33, 0x01, 0x17, 0xff, 0xdc, 0x00, 0x33, 0x01, 0x1b,
+ 0xff, 0xdc, 0x00, 0x33, 0x01, 0x21, 0xff, 0xdc, 0x00, 0x33, 0x01, 0x23,
+ 0xff, 0xdc, 0x00, 0x33, 0x01, 0x31, 0xff, 0xdc, 0x00, 0x33, 0x01, 0x3a,
+ 0xff, 0xd3, 0x00, 0x33, 0x07, 0x51, 0x00, 0x26, 0x00, 0x33, 0x07, 0x52,
+ 0x00, 0x26, 0x00, 0x33, 0x07, 0x53, 0xfe, 0xb7, 0x00, 0x34, 0x00, 0x10,
+ 0x00, 0x39, 0x00, 0x34, 0x07, 0x51, 0xff, 0xd3, 0x00, 0x34, 0x07, 0x52,
+ 0xff, 0xdc, 0x00, 0x34, 0x07, 0x53, 0xff, 0x7d, 0x00, 0x35, 0x00, 0x10,
+ 0xff, 0xad, 0x00, 0x35, 0x00, 0x11, 0xff, 0xb7, 0x00, 0x35, 0x00, 0x1d,
+ 0xff, 0xc1, 0x00, 0x35, 0x00, 0x24, 0xff, 0xad, 0x00, 0x35, 0x00, 0x26,
+ 0xff, 0x9a, 0x00, 0x35, 0x00, 0x37, 0xff, 0x6b, 0x00, 0x35, 0x00, 0x39,
+ 0xff, 0x90, 0x00, 0x35, 0x00, 0x3a, 0xff, 0xad, 0x00, 0x35, 0x00, 0x3c,
+ 0xff, 0x7d, 0x00, 0x35, 0x00, 0x44, 0xff, 0xd3, 0x00, 0x35, 0x00, 0x48,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0x52, 0xff, 0xa4, 0x00, 0x35, 0x00, 0x58,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0x5c, 0xff, 0x90, 0x00, 0x35, 0x00, 0x6d,
+ 0xff, 0x90, 0x00, 0x35, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0x35, 0x00, 0x82,
+ 0xff, 0xad, 0x00, 0x35, 0x00, 0x83, 0xff, 0xad, 0x00, 0x35, 0x00, 0x84,
+ 0xff, 0xad, 0x00, 0x35, 0x00, 0x85, 0xff, 0xad, 0x00, 0x35, 0x00, 0x86,
+ 0xff, 0xad, 0x00, 0x35, 0x00, 0x89, 0xff, 0x9a, 0x00, 0x35, 0x00, 0x9f,
+ 0xff, 0x7d, 0x00, 0x35, 0x00, 0xa2, 0xff, 0xd3, 0x00, 0x35, 0x00, 0xa3,
+ 0xff, 0xd3, 0x00, 0x35, 0x00, 0xa4, 0xff, 0xd3, 0x00, 0x35, 0x00, 0xa5,
+ 0xff, 0xd3, 0x00, 0x35, 0x00, 0xa6, 0xff, 0xd3, 0x00, 0x35, 0x00, 0xa7,
+ 0xff, 0xd3, 0x00, 0x35, 0x00, 0xaa, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xab,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xac, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xad,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xb4, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xb5,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xb6, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xb7,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xb8, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xbb,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xbc, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xbd,
+ 0xff, 0xa4, 0x00, 0x35, 0x00, 0xbe, 0xff, 0xa4, 0x00, 0x35, 0x00, 0xbf,
+ 0xff, 0x90, 0x00, 0x35, 0x00, 0xc1, 0xff, 0x90, 0x00, 0x35, 0x00, 0xc8,
+ 0xff, 0x9a, 0x00, 0x35, 0x00, 0xce, 0xff, 0x9a, 0x00, 0x35, 0x00, 0xdd,
+ 0xff, 0xa4, 0x00, 0x35, 0x01, 0x26, 0xff, 0x6b, 0x00, 0x35, 0x01, 0x31,
+ 0xff, 0xa4, 0x00, 0x35, 0x01, 0x3a, 0xff, 0x7d, 0x00, 0x35, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0x35, 0x07, 0x52, 0xff, 0x7d, 0x00, 0x35, 0x07, 0x53,
+ 0xff, 0xdc, 0x00, 0x36, 0x00, 0x24, 0x00, 0x26, 0x00, 0x36, 0x00, 0x82,
+ 0x00, 0x26, 0x00, 0x36, 0x00, 0x83, 0x00, 0x26, 0x00, 0x36, 0x00, 0x84,
+ 0x00, 0x26, 0x00, 0x36, 0x00, 0x85, 0x00, 0x26, 0x00, 0x36, 0x00, 0x86,
+ 0x00, 0x26, 0x00, 0x37, 0x00, 0x10, 0xff, 0x44, 0x00, 0x37, 0x00, 0x11,
+ 0xff, 0x0d, 0x00, 0x37, 0x00, 0x1d, 0xff, 0x1f, 0x00, 0x37, 0x00, 0x24,
+ 0xff, 0x61, 0x00, 0x37, 0x00, 0x26, 0xff, 0x88, 0x00, 0x37, 0x00, 0x37,
+ 0xff, 0xdc, 0x00, 0x37, 0x00, 0x44, 0xfe, 0xad, 0x00, 0x37, 0x00, 0x46,
+ 0xfe, 0xa4, 0x00, 0x37, 0x00, 0x48, 0xfe, 0xa4, 0x00, 0x37, 0x00, 0x4c,
+ 0xff, 0xc1, 0x00, 0x37, 0x00, 0x52, 0xfe, 0xa4, 0x00, 0x37, 0x00, 0x55,
+ 0xfe, 0xd3, 0x00, 0x37, 0x00, 0x56, 0xfe, 0xad, 0x00, 0x37, 0x00, 0x58,
+ 0xfe, 0xc9, 0x00, 0x37, 0x00, 0x5a, 0xfe, 0xad, 0x00, 0x37, 0x00, 0x5c,
+ 0xfe, 0xc1, 0x00, 0x37, 0x00, 0x6d, 0xff, 0x44, 0x00, 0x37, 0x00, 0x7d,
+ 0xff, 0x90, 0x00, 0x37, 0x00, 0x82, 0xff, 0x61, 0x00, 0x37, 0x00, 0x83,
+ 0xff, 0x61, 0x00, 0x37, 0x00, 0x84, 0xff, 0x61, 0x00, 0x37, 0x00, 0x85,
+ 0xff, 0x61, 0x00, 0x37, 0x00, 0x86, 0xff, 0x61, 0x00, 0x37, 0x00, 0x89,
+ 0xff, 0x88, 0x00, 0x37, 0x00, 0xa2, 0xff, 0x11, 0x00, 0x37, 0x00, 0xa3,
+ 0xfe, 0xad, 0x00, 0x37, 0x00, 0xa4, 0xff, 0x11, 0x00, 0x37, 0x00, 0xa5,
+ 0xff, 0x11, 0x00, 0x37, 0x00, 0xa6, 0xff, 0x11, 0x00, 0x37, 0x00, 0xa7,
+ 0xff, 0x11, 0x00, 0x37, 0x00, 0xa9, 0xfe, 0xa4, 0x00, 0x37, 0x00, 0xaa,
+ 0xfe, 0xe0, 0x00, 0x37, 0x00, 0xab, 0xfe, 0xa4, 0x00, 0x37, 0x00, 0xac,
+ 0xfe, 0xe0, 0x00, 0x37, 0x00, 0xad, 0xfe, 0xe0, 0x00, 0x37, 0x00, 0xb4,
+ 0xfe, 0xf4, 0x00, 0x37, 0x00, 0xb5, 0xfe, 0xa4, 0x00, 0x37, 0x00, 0xb6,
+ 0xfe, 0xf4, 0x00, 0x37, 0x00, 0xb7, 0xfe, 0xf4, 0x00, 0x37, 0x00, 0xb8,
+ 0xfe, 0xf4, 0x00, 0x37, 0x00, 0xbb, 0xfe, 0xe7, 0x00, 0x37, 0x00, 0xbc,
+ 0xfe, 0xc9, 0x00, 0x37, 0x00, 0xbd, 0xfe, 0xe7, 0x00, 0x37, 0x00, 0xbe,
+ 0xfe, 0xe7, 0x00, 0x37, 0x00, 0xbf, 0xfe, 0xc1, 0x00, 0x37, 0x00, 0xc1,
+ 0xfe, 0xc1, 0x00, 0x37, 0x00, 0xc8, 0xff, 0x88, 0x00, 0x37, 0x00, 0xc9,
+ 0xfe, 0xa4, 0x00, 0x37, 0x00, 0xce, 0xff, 0x88, 0x00, 0x37, 0x00, 0xcf,
+ 0xfe, 0xa4, 0x00, 0x37, 0x00, 0xdd, 0xfe, 0xa4, 0x00, 0x37, 0x01, 0x17,
+ 0xfe, 0xd3, 0x00, 0x37, 0x01, 0x1b, 0xfe, 0xd3, 0x00, 0x37, 0x01, 0x21,
+ 0xfe, 0xad, 0x00, 0x37, 0x01, 0x23, 0xfe, 0xad, 0x00, 0x37, 0x01, 0x26,
+ 0xff, 0xdc, 0x00, 0x37, 0x01, 0x31, 0xfe, 0xc9, 0x00, 0x37, 0x07, 0x52,
+ 0xff, 0xd3, 0x00, 0x37, 0x07, 0x53, 0xfe, 0xf8, 0x00, 0x38, 0x00, 0x3d,
+ 0xff, 0xdc, 0x00, 0x38, 0x01, 0x3f, 0xff, 0xdc, 0x00, 0x39, 0x00, 0x10,
+ 0xff, 0x88, 0x00, 0x39, 0x00, 0x11, 0xfe, 0xf8, 0x00, 0x39, 0x00, 0x1d,
+ 0xff, 0x59, 0x00, 0x39, 0x00, 0x24, 0xff, 0x7d, 0x00, 0x39, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x44, 0xff, 0x61, 0x00, 0x39, 0x00, 0x48,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0x4c, 0xff, 0xd3, 0x00, 0x39, 0x00, 0x52,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0x58, 0xff, 0x75, 0x00, 0x39, 0x00, 0x5c,
+ 0xff, 0xc9, 0x00, 0x39, 0x00, 0x6d, 0xff, 0x4e, 0x00, 0x39, 0x00, 0x7d,
+ 0xff, 0x90, 0x00, 0x39, 0x00, 0x82, 0xff, 0x7d, 0x00, 0x39, 0x00, 0x83,
+ 0xff, 0x7d, 0x00, 0x39, 0x00, 0x84, 0xff, 0x7d, 0x00, 0x39, 0x00, 0x85,
+ 0xff, 0x7d, 0x00, 0x39, 0x00, 0x86, 0xff, 0x7d, 0x00, 0x39, 0x00, 0x94,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x95, 0xff, 0xdc, 0x00, 0x39, 0x00, 0x96,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0x97, 0xff, 0xdc, 0x00, 0x39, 0x00, 0x98,
+ 0xff, 0xdc, 0x00, 0x39, 0x00, 0xa2, 0xff, 0x61, 0x00, 0x39, 0x00, 0xa3,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xa4, 0xff, 0x61, 0x00, 0x39, 0x00, 0xa5,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xa6, 0xff, 0x61, 0x00, 0x39, 0x00, 0xa7,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xaa, 0xff, 0x61, 0x00, 0x39, 0x00, 0xab,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xac, 0xff, 0x61, 0x00, 0x39, 0x00, 0xad,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xb4, 0xff, 0x61, 0x00, 0x39, 0x00, 0xb5,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xb6, 0xff, 0x61, 0x00, 0x39, 0x00, 0xb7,
+ 0xff, 0x61, 0x00, 0x39, 0x00, 0xb8, 0xff, 0x61, 0x00, 0x39, 0x00, 0xbb,
+ 0xff, 0x75, 0x00, 0x39, 0x00, 0xbc, 0xff, 0x75, 0x00, 0x39, 0x00, 0xbd,
+ 0xff, 0x75, 0x00, 0x39, 0x00, 0xbe, 0xff, 0x75, 0x00, 0x39, 0x00, 0xbf,
+ 0xff, 0xc9, 0x00, 0x39, 0x00, 0xc1, 0xff, 0xc9, 0x00, 0x39, 0x00, 0xdd,
+ 0xff, 0x61, 0x00, 0x39, 0x01, 0x31, 0xff, 0x75, 0x00, 0x39, 0x07, 0x53,
+ 0xfe, 0xe6, 0x00, 0x3a, 0x00, 0x10, 0xff, 0xad, 0x00, 0x3a, 0x00, 0x11,
+ 0xff, 0x15, 0x00, 0x3a, 0x00, 0x1d, 0xff, 0x88, 0x00, 0x3a, 0x00, 0x24,
+ 0xff, 0x90, 0x00, 0x3a, 0x00, 0x44, 0xff, 0x7d, 0x00, 0x3a, 0x00, 0x48,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0x4c, 0xff, 0xd3, 0x00, 0x3a, 0x00, 0x52,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0x55, 0xff, 0xa4, 0x00, 0x3a, 0x00, 0x58,
+ 0xff, 0xb7, 0x00, 0x3a, 0x00, 0x5c, 0xff, 0xdc, 0x00, 0x3a, 0x00, 0x6d,
+ 0xff, 0x90, 0x00, 0x3a, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0x3a, 0x00, 0x82,
+ 0xff, 0x90, 0x00, 0x3a, 0x00, 0x83, 0xff, 0x90, 0x00, 0x3a, 0x00, 0x84,
+ 0xff, 0x90, 0x00, 0x3a, 0x00, 0x85, 0xff, 0x90, 0x00, 0x3a, 0x00, 0x86,
+ 0xff, 0x90, 0x00, 0x3a, 0x00, 0xa2, 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xa3,
+ 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xa4, 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xa5,
+ 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xa6, 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xa7,
+ 0xff, 0x7d, 0x00, 0x3a, 0x00, 0xaa, 0xff, 0x88, 0x00, 0x3a, 0x00, 0xab,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0xac, 0xff, 0x88, 0x00, 0x3a, 0x00, 0xad,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0xb4, 0xff, 0x88, 0x00, 0x3a, 0x00, 0xb5,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0xb6, 0xff, 0x88, 0x00, 0x3a, 0x00, 0xb7,
+ 0xff, 0x88, 0x00, 0x3a, 0x00, 0xb8, 0xff, 0x88, 0x00, 0x3a, 0x00, 0xbb,
+ 0xff, 0xb7, 0x00, 0x3a, 0x00, 0xbc, 0xff, 0xb7, 0x00, 0x3a, 0x00, 0xbd,
+ 0xff, 0xb7, 0x00, 0x3a, 0x00, 0xbe, 0xff, 0xb7, 0x00, 0x3a, 0x00, 0xbf,
+ 0xff, 0xdc, 0x00, 0x3a, 0x00, 0xc1, 0xff, 0xdc, 0x00, 0x3a, 0x00, 0xdd,
+ 0xff, 0x88, 0x00, 0x3a, 0x01, 0x17, 0xff, 0xa4, 0x00, 0x3a, 0x01, 0x1b,
+ 0xff, 0xa4, 0x00, 0x3a, 0x01, 0x31, 0xff, 0xb7, 0x00, 0x3a, 0x07, 0x51,
+ 0xff, 0xdc, 0x00, 0x3a, 0x07, 0x53, 0xfe, 0xf8, 0x00, 0x3b, 0x00, 0x10,
+ 0xff, 0x9a, 0x00, 0x3b, 0x00, 0x26, 0xff, 0x6b, 0x00, 0x3b, 0x00, 0x32,
+ 0xff, 0x7d, 0x00, 0x3b, 0x00, 0x37, 0xff, 0xdc, 0x00, 0x3b, 0x00, 0x48,
+ 0xff, 0xa4, 0x00, 0x3b, 0x00, 0x6d, 0xff, 0x90, 0x00, 0x3b, 0x00, 0x89,
+ 0xff, 0x6b, 0x00, 0x3b, 0x00, 0x94, 0xff, 0x7d, 0x00, 0x3b, 0x00, 0x95,
+ 0xff, 0x7d, 0x00, 0x3b, 0x00, 0x96, 0xff, 0x7d, 0x00, 0x3b, 0x00, 0x97,
+ 0xff, 0x7d, 0x00, 0x3b, 0x00, 0x98, 0xff, 0x7d, 0x00, 0x3b, 0x00, 0xaa,
+ 0xff, 0xa4, 0x00, 0x3b, 0x00, 0xab, 0xff, 0xa4, 0x00, 0x3b, 0x00, 0xac,
+ 0xff, 0xa4, 0x00, 0x3b, 0x00, 0xad, 0xff, 0xa4, 0x00, 0x3b, 0x00, 0xc8,
+ 0xff, 0x6b, 0x00, 0x3b, 0x00, 0xce, 0xff, 0x6b, 0x00, 0x3b, 0x00, 0xdd,
+ 0xff, 0xa4, 0x00, 0x3b, 0x01, 0x26, 0xff, 0xdc, 0x00, 0x3b, 0x07, 0x51,
+ 0xff, 0x61, 0x00, 0x3b, 0x07, 0x52, 0xff, 0xad, 0x00, 0x3b, 0x07, 0x53,
+ 0xff, 0xd3, 0x00, 0x3c, 0x00, 0x10, 0xff, 0x0d, 0x00, 0x3c, 0x00, 0x11,
+ 0xfe, 0x61, 0x00, 0x3c, 0x00, 0x1d, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0x24,
+ 0xff, 0x61, 0x00, 0x3c, 0x00, 0x26, 0xff, 0x90, 0x00, 0x3c, 0x00, 0x32,
+ 0xff, 0x90, 0x00, 0x3c, 0x00, 0x44, 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0x48,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0x4c, 0xff, 0xb7, 0x00, 0x3c, 0x00, 0x52,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0x58, 0xff, 0x15, 0x00, 0x3c, 0x00, 0x6d,
+ 0xff, 0x1f, 0x00, 0x3c, 0x00, 0x7d, 0xff, 0x6b, 0x00, 0x3c, 0x00, 0x82,
+ 0xff, 0x61, 0x00, 0x3c, 0x00, 0x83, 0xff, 0x61, 0x00, 0x3c, 0x00, 0x84,
+ 0xff, 0x61, 0x00, 0x3c, 0x00, 0x85, 0xff, 0x61, 0x00, 0x3c, 0x00, 0x86,
+ 0xff, 0x61, 0x00, 0x3c, 0x00, 0x89, 0xff, 0x90, 0x00, 0x3c, 0x00, 0x94,
+ 0xff, 0x90, 0x00, 0x3c, 0x00, 0x95, 0xff, 0x90, 0x00, 0x3c, 0x00, 0x96,
+ 0xff, 0x90, 0x00, 0x3c, 0x00, 0x97, 0xff, 0x90, 0x00, 0x3c, 0x00, 0x98,
+ 0xff, 0x90, 0x00, 0x3c, 0x00, 0xa2, 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xa3,
+ 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xa4, 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xa5,
+ 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xa6, 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xa7,
+ 0xfe, 0xe6, 0x00, 0x3c, 0x00, 0xaa, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xab,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xac, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xad,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xb4, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xb5,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xb6, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xb7,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xb8, 0xfe, 0xf0, 0x00, 0x3c, 0x00, 0xbb,
+ 0xff, 0x15, 0x00, 0x3c, 0x00, 0xbc, 0xff, 0x15, 0x00, 0x3c, 0x00, 0xbd,
+ 0xff, 0x15, 0x00, 0x3c, 0x00, 0xbe, 0xff, 0x15, 0x00, 0x3c, 0x00, 0xc8,
+ 0xff, 0x90, 0x00, 0x3c, 0x00, 0xce, 0xff, 0x90, 0x00, 0x3c, 0x00, 0xdd,
+ 0xfe, 0xf0, 0x00, 0x3c, 0x01, 0x31, 0xff, 0x15, 0x00, 0x3c, 0x07, 0x51,
+ 0xff, 0x90, 0x00, 0x3c, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x3c, 0x07, 0x53,
+ 0xfe, 0xf8, 0x00, 0x3d, 0x00, 0x10, 0xff, 0xdc, 0x00, 0x3d, 0x07, 0x51,
+ 0xff, 0xdc, 0x00, 0x3d, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x3d, 0x07, 0x53,
+ 0xff, 0xdc, 0x00, 0x48, 0x00, 0x5b, 0xff, 0xdc, 0x00, 0x49, 0x00, 0x10,
+ 0xff, 0x90, 0x00, 0x49, 0x00, 0x11, 0xff, 0x6b, 0x00, 0x49, 0x00, 0x1d,
+ 0xff, 0xb7, 0x00, 0x49, 0x00, 0x57, 0xff, 0xdc, 0x00, 0x49, 0x00, 0x5a,
+ 0xff, 0xdc, 0x00, 0x49, 0x00, 0x5c, 0xff, 0xdc, 0x00, 0x49, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x49, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0x49, 0x00, 0xbf,
+ 0xff, 0xdc, 0x00, 0x49, 0x00, 0xc1, 0xff, 0xdc, 0x00, 0x49, 0x01, 0x27,
+ 0xff, 0xdc, 0x00, 0x49, 0x07, 0x51, 0x00, 0x41, 0x00, 0x49, 0x07, 0x53,
+ 0xff, 0x15, 0x00, 0x4e, 0x00, 0x44, 0xff, 0xdc, 0x00, 0x4e, 0x00, 0x48,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0x52, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0x58,
+ 0xff, 0xc1, 0x00, 0x4e, 0x00, 0x5c, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xa2,
+ 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xa3, 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xa4,
+ 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xa5, 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xa6,
+ 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xa7, 0xff, 0xdc, 0x00, 0x4e, 0x00, 0xaa,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xab, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xac,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xad, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xb4,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xb5, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xb6,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xb7, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xb8,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xbb, 0xff, 0xc1, 0x00, 0x4e, 0x00, 0xbc,
+ 0xff, 0xc1, 0x00, 0x4e, 0x00, 0xbd, 0xff, 0xc1, 0x00, 0x4e, 0x00, 0xbe,
+ 0xff, 0xc1, 0x00, 0x4e, 0x00, 0xbf, 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xc1,
+ 0xff, 0xb7, 0x00, 0x4e, 0x00, 0xdd, 0xff, 0xb7, 0x00, 0x4e, 0x01, 0x31,
+ 0xff, 0xc1, 0x00, 0x51, 0x07, 0x51, 0xff, 0x6b, 0x00, 0x51, 0x07, 0x52,
+ 0xff, 0x90, 0x00, 0x51, 0x07, 0x53, 0xff, 0xa4, 0x00, 0x52, 0x00, 0x10,
+ 0x00, 0x26, 0x00, 0x52, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x52, 0x00, 0x5b,
+ 0xff, 0xc1, 0x00, 0x52, 0x07, 0x51, 0xff, 0x6b, 0x00, 0x52, 0x07, 0x52,
+ 0xff, 0xb7, 0x00, 0x52, 0x07, 0x53, 0xff, 0x7d, 0x00, 0x55, 0x00, 0x10,
+ 0xff, 0x7d, 0x00, 0x55, 0x00, 0x11, 0xff, 0x44, 0x00, 0x55, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0x46, 0xff, 0xd3, 0x00, 0x55, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0x48, 0xff, 0xd3, 0x00, 0x55, 0x00, 0x4a,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0x4b, 0xff, 0xdc, 0x00, 0x55, 0x00, 0x50,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0x51, 0xff, 0xdc, 0x00, 0x55, 0x00, 0x52,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0x54, 0xff, 0xdc, 0x00, 0x55, 0x00, 0x55,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0x5b, 0xff, 0xc9, 0x00, 0x55, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x55, 0x00, 0xa9, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xaa,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0xab, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xac,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0xad, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xb3,
+ 0xff, 0xdc, 0x00, 0x55, 0x00, 0xb4, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xb5,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0xb6, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xb7,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0xb8, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xc9,
+ 0xff, 0xd3, 0x00, 0x55, 0x00, 0xcf, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xd1,
+ 0x00, 0x48, 0x00, 0x55, 0x00, 0xdd, 0xff, 0xd3, 0x00, 0x55, 0x00, 0xe1,
+ 0xff, 0xdc, 0x00, 0x55, 0x01, 0x0a, 0xff, 0xdc, 0x00, 0x55, 0x01, 0x17,
+ 0xff, 0xdc, 0x00, 0x55, 0x01, 0x1b, 0xff, 0xdc, 0x00, 0x55, 0x07, 0x52,
+ 0x00, 0x56, 0x00, 0x55, 0x07, 0x53, 0xfe, 0xc9, 0x00, 0x59, 0x00, 0x10,
+ 0xff, 0xc9, 0x00, 0x59, 0x00, 0x11, 0xff, 0x61, 0x00, 0x59, 0x00, 0x1d,
+ 0xff, 0x90, 0x00, 0x59, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x59, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x59, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x59, 0x07, 0x53,
+ 0xfe, 0xf0, 0x00, 0x5a, 0x00, 0x11, 0xff, 0x44, 0x00, 0x5a, 0x00, 0x1d,
+ 0xff, 0x90, 0x00, 0x5a, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x5a, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x5a, 0x07, 0x53, 0xff, 0x29, 0x00, 0x5b, 0x00, 0x46,
+ 0xff, 0xdc, 0x00, 0x5b, 0x00, 0x48, 0xff, 0xc1, 0x00, 0x5b, 0x00, 0x52,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0x5b, 0x00, 0xaa,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xab, 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xac,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xad, 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xb4,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xb5, 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xb6,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xb7, 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xb8,
+ 0xff, 0xc1, 0x00, 0x5b, 0x00, 0xc9, 0xff, 0xdc, 0x00, 0x5b, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x5b, 0x00, 0xdd, 0xff, 0xc1, 0x00, 0x5c, 0x00, 0x10,
+ 0xff, 0xdc, 0x00, 0x5c, 0x00, 0x11, 0xfe, 0xdc, 0x00, 0x5c, 0x00, 0x1d,
+ 0xff, 0x6b, 0x00, 0x5c, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x5c, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x5c, 0x07, 0x53, 0xfe, 0xd3, 0x00, 0x6d, 0x00, 0x25,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x26, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x27,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x2d,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x37, 0xff, 0x90, 0x00, 0x6d, 0x00, 0x39,
+ 0xff, 0x90, 0x00, 0x6d, 0x00, 0x3a, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x3c,
+ 0xff, 0x6b, 0x00, 0x6d, 0x00, 0x59, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x5a,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x5c, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x88,
+ 0x00, 0x97, 0x00, 0x6d, 0x00, 0x89, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0x9f,
+ 0xff, 0x6b, 0x00, 0x6d, 0x00, 0xbf, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0xc1,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0xc8, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0xce,
+ 0xff, 0xdc, 0x00, 0x6d, 0x00, 0xd0, 0xff, 0xdc, 0x00, 0x6d, 0x00, 0xe0,
+ 0xff, 0xdc, 0x00, 0x6d, 0x01, 0x26, 0xff, 0x90, 0x00, 0x6d, 0x01, 0x3a,
+ 0xff, 0x6b, 0x00, 0x7d, 0x00, 0x24, 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x25,
+ 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x26, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x27,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x2d, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x37, 0xff, 0x44, 0x00, 0x7d, 0x00, 0x39,
+ 0xff, 0x4e, 0x00, 0x7d, 0x00, 0x3a, 0xff, 0x90, 0x00, 0x7d, 0x00, 0x3b,
+ 0xff, 0x90, 0x00, 0x7d, 0x00, 0x3c, 0xff, 0x1f, 0x00, 0x7d, 0x00, 0x59,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x5a, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x5c,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x82, 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x83,
+ 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x84, 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x85,
+ 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x86, 0xff, 0xb7, 0x00, 0x7d, 0x00, 0x89,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x94, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x96, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x98, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0x9f,
+ 0xff, 0x1f, 0x00, 0x7d, 0x00, 0xbf, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0xc1,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0xc8, 0xff, 0xdc, 0x00, 0x7d, 0x00, 0xce,
+ 0xff, 0xdc, 0x00, 0x7d, 0x00, 0xd0, 0xff, 0xdc, 0x00, 0x7d, 0x01, 0x26,
+ 0xff, 0x44, 0x00, 0x7d, 0x01, 0x3a, 0xff, 0x1f, 0x00, 0x82, 0x00, 0x10,
+ 0xff, 0xd3, 0x00, 0x82, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x24, 0x00, 0x39, 0x00, 0x82, 0x00, 0x26,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x34, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x37,
+ 0xff, 0x61, 0x00, 0x82, 0x00, 0x39, 0xff, 0x7d, 0x00, 0x82, 0x00, 0x3a,
+ 0xff, 0x90, 0x00, 0x82, 0x00, 0x3c, 0xff, 0x61, 0x00, 0x82, 0x00, 0x46,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x47, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x48,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x49, 0xff, 0xb7, 0x00, 0x82, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x54, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x57,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x59, 0xff, 0x88, 0x00, 0x82, 0x00, 0x5a,
+ 0xff, 0xad, 0x00, 0x82, 0x00, 0x5c, 0xff, 0x75, 0x00, 0x82, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x82, 0x00, 0x82, 0x00, 0x39, 0x00, 0x82, 0x00, 0x83,
+ 0x00, 0x39, 0x00, 0x82, 0x00, 0x84, 0x00, 0x39, 0x00, 0x82, 0x00, 0x85,
+ 0x00, 0x39, 0x00, 0x82, 0x00, 0x86, 0x00, 0x39, 0x00, 0x82, 0x00, 0x89,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x94, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x96, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0x98, 0xff, 0xdc, 0x00, 0x82, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0x82, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xab, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xad, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xbf, 0xff, 0x75, 0x00, 0x82, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0x82, 0x00, 0xc2, 0x00, 0x39, 0x00, 0x82, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0x82, 0x00, 0xc6, 0x00, 0x39, 0x00, 0x82, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xc9, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xca,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xd5,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xd7, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xd9,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xdb, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xde, 0xff, 0xdc, 0x00, 0x82, 0x00, 0xe0,
+ 0xff, 0xdc, 0x00, 0x82, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0x82, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0x82, 0x01, 0x11, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0x82, 0x01, 0x13, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0x82, 0x01, 0x25, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0x82, 0x01, 0x27, 0xff, 0xdc, 0x00, 0x82, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0x82, 0x01, 0x37, 0xff, 0xad, 0x00, 0x82, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0x82, 0x01, 0x39, 0xff, 0x75, 0x00, 0x82, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0x82, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x82, 0x01, 0xf1,
+ 0xff, 0xdc, 0x00, 0x82, 0x05, 0xd0, 0xff, 0x90, 0x00, 0x82, 0x05, 0xd3,
+ 0xff, 0xad, 0x00, 0x82, 0x05, 0xd4, 0xff, 0x90, 0x00, 0x82, 0x05, 0xd5,
+ 0xff, 0xad, 0x00, 0x82, 0x06, 0x42, 0xff, 0x61, 0x00, 0x82, 0x06, 0x43,
+ 0xff, 0x75, 0x00, 0x82, 0x07, 0x51, 0xfe, 0xf8, 0x00, 0x82, 0x07, 0x52,
+ 0xff, 0x03, 0x00, 0x82, 0x07, 0x53, 0x00, 0x2f, 0x00, 0x83, 0x00, 0x10,
+ 0xff, 0xd3, 0x00, 0x83, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x24, 0x00, 0x39, 0x00, 0x83, 0x00, 0x26,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x34, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x37,
+ 0xff, 0x61, 0x00, 0x83, 0x00, 0x39, 0xff, 0x7d, 0x00, 0x83, 0x00, 0x3a,
+ 0xff, 0x90, 0x00, 0x83, 0x00, 0x3c, 0xff, 0x61, 0x00, 0x83, 0x00, 0x46,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x47, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x48,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x49, 0xff, 0xb7, 0x00, 0x83, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x54, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x57,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x59, 0xff, 0x88, 0x00, 0x83, 0x00, 0x5a,
+ 0xff, 0xad, 0x00, 0x83, 0x00, 0x5c, 0xff, 0x75, 0x00, 0x83, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x83, 0x00, 0x82, 0x00, 0x39, 0x00, 0x83, 0x00, 0x83,
+ 0x00, 0x39, 0x00, 0x83, 0x00, 0x84, 0x00, 0x39, 0x00, 0x83, 0x00, 0x85,
+ 0x00, 0x39, 0x00, 0x83, 0x00, 0x86, 0x00, 0x39, 0x00, 0x83, 0x00, 0x89,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x94, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x96, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0x98, 0xff, 0xdc, 0x00, 0x83, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0x83, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xab, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xad, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xbf, 0xff, 0x75, 0x00, 0x83, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0x83, 0x00, 0xc2, 0x00, 0x39, 0x00, 0x83, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0x83, 0x00, 0xc6, 0x00, 0x39, 0x00, 0x83, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xc9, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xca,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xd5,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xd7, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xd9,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xdb, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xde, 0xff, 0xdc, 0x00, 0x83, 0x00, 0xe0,
+ 0xff, 0xdc, 0x00, 0x83, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0x83, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0x83, 0x01, 0x11, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0x83, 0x01, 0x13, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0x83, 0x01, 0x25, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0x83, 0x01, 0x27, 0xff, 0xdc, 0x00, 0x83, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0x83, 0x01, 0x37, 0xff, 0xad, 0x00, 0x83, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0x83, 0x01, 0x39, 0xff, 0x75, 0x00, 0x83, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0x83, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x83, 0x01, 0xf1,
+ 0xff, 0xdc, 0x00, 0x83, 0x05, 0xd0, 0xff, 0x90, 0x00, 0x83, 0x05, 0xd2,
+ 0xff, 0x90, 0x00, 0x83, 0x05, 0xd3, 0xff, 0xad, 0x00, 0x83, 0x05, 0xd4,
+ 0xff, 0x90, 0x00, 0x83, 0x05, 0xd5, 0xff, 0xad, 0x00, 0x83, 0x06, 0x42,
+ 0xff, 0x61, 0x00, 0x83, 0x06, 0x43, 0xff, 0x75, 0x00, 0x83, 0x07, 0x51,
+ 0xfe, 0xf8, 0x00, 0x83, 0x07, 0x52, 0xff, 0x03, 0x00, 0x83, 0x07, 0x53,
+ 0x00, 0x2f, 0x00, 0x84, 0x00, 0x10, 0xff, 0xd3, 0x00, 0x84, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x24,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0x26, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x2a,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x32, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x34,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x37, 0xff, 0x61, 0x00, 0x84, 0x00, 0x39,
+ 0xff, 0x7d, 0x00, 0x84, 0x00, 0x3a, 0xff, 0x90, 0x00, 0x84, 0x00, 0x3c,
+ 0xff, 0x61, 0x00, 0x84, 0x00, 0x46, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x48, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x49,
+ 0xff, 0xb7, 0x00, 0x84, 0x00, 0x52, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x54,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x57, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x59,
+ 0xff, 0x88, 0x00, 0x84, 0x00, 0x5a, 0xff, 0xad, 0x00, 0x84, 0x00, 0x5c,
+ 0xff, 0x75, 0x00, 0x84, 0x00, 0x6d, 0xff, 0xb7, 0x00, 0x84, 0x00, 0x82,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0x83, 0x00, 0x39, 0x00, 0x84, 0x00, 0x84,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0x85, 0x00, 0x39, 0x00, 0x84, 0x00, 0x86,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0x89, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x94,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x95, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x96,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x97, 0xff, 0xdc, 0x00, 0x84, 0x00, 0x98,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0x9f, 0xff, 0x61, 0x00, 0x84, 0x00, 0xa9,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xaa, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xab,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xac, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xad,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xb4, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xb5,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xb6, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xb7,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xb8, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xbf,
+ 0xff, 0x75, 0x00, 0x84, 0x00, 0xc1, 0xff, 0x75, 0x00, 0x84, 0x00, 0xc2,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0xc4, 0x00, 0x39, 0x00, 0x84, 0x00, 0xc6,
+ 0x00, 0x39, 0x00, 0x84, 0x00, 0xc8, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xc9,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xca, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xcc,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xcd, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xce,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xcf, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xd1,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xd5, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xd7,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xd9, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xdb,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xde,
+ 0xff, 0xdc, 0x00, 0x84, 0x00, 0xe0, 0xff, 0xdc, 0x00, 0x84, 0x00, 0xe2,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x0e, 0xff, 0xdc, 0x00, 0x84, 0x01, 0x0f,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x10, 0xff, 0xdc, 0x00, 0x84, 0x01, 0x11,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x12, 0xff, 0xdc, 0x00, 0x84, 0x01, 0x13,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x24, 0xff, 0x61, 0x00, 0x84, 0x01, 0x25,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x26, 0xff, 0x61, 0x00, 0x84, 0x01, 0x27,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0x36, 0xff, 0x90, 0x00, 0x84, 0x01, 0x37,
+ 0xff, 0xad, 0x00, 0x84, 0x01, 0x38, 0xff, 0x61, 0x00, 0x84, 0x01, 0x39,
+ 0xff, 0x75, 0x00, 0x84, 0x01, 0x3a, 0xff, 0x61, 0x00, 0x84, 0x01, 0xf0,
+ 0xff, 0xdc, 0x00, 0x84, 0x01, 0xf1, 0xff, 0xdc, 0x00, 0x84, 0x05, 0xd0,
+ 0xff, 0x90, 0x00, 0x84, 0x05, 0xd2, 0xff, 0x90, 0x00, 0x84, 0x05, 0xd3,
+ 0xff, 0xad, 0x00, 0x84, 0x05, 0xd4, 0xff, 0x90, 0x00, 0x84, 0x05, 0xd5,
+ 0xff, 0xad, 0x00, 0x84, 0x06, 0x42, 0xff, 0x61, 0x00, 0x84, 0x06, 0x43,
+ 0xff, 0x75, 0x00, 0x84, 0x07, 0x51, 0xfe, 0xf8, 0x00, 0x84, 0x07, 0x52,
+ 0xff, 0x03, 0x00, 0x84, 0x07, 0x53, 0x00, 0x2f, 0x00, 0x85, 0x00, 0x10,
+ 0xff, 0xd3, 0x00, 0x85, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x24, 0x00, 0x39, 0x00, 0x85, 0x00, 0x26,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x34, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x37,
+ 0xff, 0x61, 0x00, 0x85, 0x00, 0x39, 0xff, 0x7d, 0x00, 0x85, 0x00, 0x3a,
+ 0xff, 0x90, 0x00, 0x85, 0x00, 0x3c, 0xff, 0x61, 0x00, 0x85, 0x00, 0x46,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x47, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x48,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x49, 0xff, 0xb7, 0x00, 0x85, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x54, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x57,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x59, 0xff, 0x88, 0x00, 0x85, 0x00, 0x5a,
+ 0xff, 0xad, 0x00, 0x85, 0x00, 0x5c, 0xff, 0x75, 0x00, 0x85, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x85, 0x00, 0x82, 0x00, 0x39, 0x00, 0x85, 0x00, 0x83,
+ 0x00, 0x39, 0x00, 0x85, 0x00, 0x84, 0x00, 0x39, 0x00, 0x85, 0x00, 0x85,
+ 0x00, 0x39, 0x00, 0x85, 0x00, 0x86, 0x00, 0x39, 0x00, 0x85, 0x00, 0x89,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x94, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x96, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0x98, 0xff, 0xdc, 0x00, 0x85, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0x85, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xab, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xad, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xbf, 0xff, 0x75, 0x00, 0x85, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0x85, 0x00, 0xc2, 0x00, 0x39, 0x00, 0x85, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0x85, 0x00, 0xc6, 0x00, 0x39, 0x00, 0x85, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xc9, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xca,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xd5,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xd7, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xd9,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xdb, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xde, 0xff, 0xdc, 0x00, 0x85, 0x00, 0xe0,
+ 0xff, 0xdc, 0x00, 0x85, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0x85, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0x85, 0x01, 0x11, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0x85, 0x01, 0x13, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0x85, 0x01, 0x25, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0x85, 0x01, 0x27, 0xff, 0xdc, 0x00, 0x85, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0x85, 0x01, 0x37, 0xff, 0xad, 0x00, 0x85, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0x85, 0x01, 0x39, 0xff, 0x75, 0x00, 0x85, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0x85, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x85, 0x05, 0xd0,
+ 0xff, 0x90, 0x00, 0x85, 0x05, 0xd2, 0xff, 0x90, 0x00, 0x85, 0x05, 0xd3,
+ 0xff, 0xad, 0x00, 0x85, 0x05, 0xd4, 0xff, 0x90, 0x00, 0x85, 0x05, 0xd5,
+ 0xff, 0xad, 0x00, 0x85, 0x06, 0x42, 0xff, 0x61, 0x00, 0x85, 0x06, 0x43,
+ 0xff, 0x75, 0x00, 0x85, 0x07, 0x51, 0xfe, 0xf8, 0x00, 0x85, 0x07, 0x52,
+ 0xff, 0x03, 0x00, 0x85, 0x07, 0x53, 0x00, 0x2f, 0x00, 0x86, 0x00, 0x10,
+ 0xff, 0xd3, 0x00, 0x86, 0x00, 0x11, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x1d,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x24, 0x00, 0x39, 0x00, 0x86, 0x00, 0x26,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x2a, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x32,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x34, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x37,
+ 0xff, 0x61, 0x00, 0x86, 0x00, 0x39, 0xff, 0x7d, 0x00, 0x86, 0x00, 0x3a,
+ 0xff, 0x90, 0x00, 0x86, 0x00, 0x3c, 0xff, 0x61, 0x00, 0x86, 0x00, 0x46,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x47, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x48,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x49, 0xff, 0xb7, 0x00, 0x86, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x54, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x57,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x59, 0xff, 0x88, 0x00, 0x86, 0x00, 0x5a,
+ 0xff, 0xad, 0x00, 0x86, 0x00, 0x5c, 0xff, 0x75, 0x00, 0x86, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0x86, 0x00, 0x82, 0x00, 0x39, 0x00, 0x86, 0x00, 0x83,
+ 0x00, 0x39, 0x00, 0x86, 0x00, 0x84, 0x00, 0x39, 0x00, 0x86, 0x00, 0x85,
+ 0x00, 0x39, 0x00, 0x86, 0x00, 0x86, 0x00, 0x39, 0x00, 0x86, 0x00, 0x89,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x94, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x96, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0x98, 0xff, 0xdc, 0x00, 0x86, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0x86, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xab, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xad, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xbf, 0xff, 0x75, 0x00, 0x86, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0x86, 0x00, 0xc2, 0x00, 0x39, 0x00, 0x86, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0x86, 0x00, 0xc6, 0x00, 0x39, 0x00, 0x86, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xc9, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xca,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xce, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xcf,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xd5,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xd7, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xd9,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xdb, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xde, 0xff, 0xdc, 0x00, 0x86, 0x00, 0xe0,
+ 0xff, 0xdc, 0x00, 0x86, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0x86, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0x86, 0x01, 0x11, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0x86, 0x01, 0x13, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0x86, 0x01, 0x25, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0x86, 0x01, 0x27, 0xff, 0xdc, 0x00, 0x86, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0x86, 0x01, 0x37, 0xff, 0xad, 0x00, 0x86, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0x86, 0x01, 0x39, 0xff, 0x75, 0x00, 0x86, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0x86, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0x86, 0x01, 0xf1,
+ 0xff, 0xdc, 0x00, 0x86, 0x05, 0xd0, 0xff, 0x90, 0x00, 0x86, 0x05, 0xd2,
+ 0xff, 0x90, 0x00, 0x86, 0x05, 0xd3, 0xff, 0xad, 0x00, 0x86, 0x05, 0xd4,
+ 0xff, 0x90, 0x00, 0x86, 0x05, 0xd5, 0xff, 0xad, 0x00, 0x86, 0x06, 0x42,
+ 0xff, 0x61, 0x00, 0x86, 0x06, 0x43, 0xff, 0x75, 0x00, 0x86, 0x07, 0x51,
+ 0xfe, 0xf8, 0x00, 0x86, 0x07, 0x52, 0xff, 0x03, 0x00, 0x86, 0x07, 0x53,
+ 0x00, 0x2f, 0x00, 0x88, 0x07, 0x51, 0xff, 0xad, 0x00, 0x88, 0x07, 0x52,
+ 0xff, 0xa4, 0x00, 0x88, 0x07, 0x53, 0xff, 0x90, 0x00, 0x89, 0x00, 0x3c,
+ 0xff, 0xdc, 0x00, 0x89, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x89, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x89, 0x00, 0x9f, 0xff, 0xdc, 0x00, 0x89, 0x01, 0x3a,
+ 0xff, 0xdc, 0x00, 0x89, 0x07, 0x52, 0x00, 0x26, 0x00, 0x92, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x92, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x92, 0x00, 0x3c,
+ 0xff, 0x90, 0x00, 0x92, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0x92, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0x92, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x92, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x92, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x92, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x92, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x92, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x92, 0x00, 0xc2, 0xff, 0xdc, 0x00, 0x92, 0x00, 0xc4,
+ 0xff, 0xdc, 0x00, 0x92, 0x00, 0xc6, 0xff, 0xdc, 0x00, 0x92, 0x01, 0x38,
+ 0xff, 0x90, 0x00, 0x92, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x92, 0x01, 0xf4,
+ 0xff, 0x90, 0x00, 0x92, 0x06, 0x42, 0xff, 0x90, 0x00, 0x92, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x92, 0x07, 0x52, 0xff, 0xc9, 0x00, 0x92, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x94, 0x00, 0x10, 0x00, 0x39, 0x00, 0x94, 0x00, 0x11,
+ 0xff, 0xad, 0x00, 0x94, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x94, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x94, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x94, 0x00, 0x3b,
+ 0xff, 0x7d, 0x00, 0x94, 0x00, 0x3c, 0xff, 0x90, 0x00, 0x94, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x94, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x94, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x94, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x94, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x94, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x94, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x94, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x94, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x94, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x94, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x95, 0x00, 0x10, 0x00, 0x39, 0x00, 0x95, 0x00, 0x11,
+ 0xff, 0xad, 0x00, 0x95, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x95, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x95, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x95, 0x00, 0x3b,
+ 0xff, 0x7d, 0x00, 0x95, 0x00, 0x3c, 0xff, 0x90, 0x00, 0x95, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x95, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x95, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x95, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x95, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x95, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x95, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x95, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x95, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x95, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x95, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x96, 0x00, 0x10, 0x00, 0x39, 0x00, 0x96, 0x00, 0x11,
+ 0xff, 0xad, 0x00, 0x96, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x96, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x96, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x96, 0x00, 0x3b,
+ 0xff, 0x7d, 0x00, 0x96, 0x00, 0x3c, 0xff, 0x90, 0x00, 0x96, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x96, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x96, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x96, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x96, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x96, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x96, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x96, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x96, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x96, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x96, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x97, 0x00, 0x10, 0x00, 0x39, 0x00, 0x97, 0x00, 0x11,
+ 0xff, 0xad, 0x00, 0x97, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x97, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x97, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x97, 0x00, 0x3b,
+ 0xff, 0x7d, 0x00, 0x97, 0x00, 0x3c, 0xff, 0x90, 0x00, 0x97, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x97, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x97, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x97, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x97, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x97, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x97, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x97, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x97, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x97, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x97, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x98, 0x00, 0x10, 0x00, 0x39, 0x00, 0x98, 0x00, 0x11,
+ 0xff, 0xad, 0x00, 0x98, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0x98, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0x98, 0x00, 0x39, 0xff, 0xdc, 0x00, 0x98, 0x00, 0x3b,
+ 0xff, 0x7d, 0x00, 0x98, 0x00, 0x3c, 0xff, 0x90, 0x00, 0x98, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0x98, 0x00, 0x82, 0xff, 0xdc, 0x00, 0x98, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0x98, 0x00, 0x84, 0xff, 0xdc, 0x00, 0x98, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0x98, 0x00, 0x86, 0xff, 0xdc, 0x00, 0x98, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0x98, 0x01, 0x3a, 0xff, 0x90, 0x00, 0x98, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0x98, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x98, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0x9b, 0x00, 0x3d, 0xff, 0xdc, 0x00, 0x9b, 0x01, 0x3f,
+ 0xff, 0xdc, 0x00, 0x9c, 0x00, 0x3d, 0xff, 0xdc, 0x00, 0x9c, 0x01, 0x3f,
+ 0xff, 0xdc, 0x00, 0x9d, 0x00, 0x3d, 0xff, 0xdc, 0x00, 0x9d, 0x01, 0x3f,
+ 0xff, 0xdc, 0x00, 0x9e, 0x00, 0x3d, 0xff, 0xdc, 0x00, 0x9e, 0x01, 0x3f,
+ 0xff, 0xdc, 0x00, 0x9f, 0x00, 0x10, 0xff, 0x0d, 0x00, 0x9f, 0x00, 0x11,
+ 0xfe, 0x61, 0x00, 0x9f, 0x00, 0x1d, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0x24,
+ 0xff, 0x61, 0x00, 0x9f, 0x00, 0x26, 0xff, 0x90, 0x00, 0x9f, 0x00, 0x32,
+ 0xff, 0x90, 0x00, 0x9f, 0x00, 0x44, 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0x48,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0x4c, 0xff, 0xb7, 0x00, 0x9f, 0x00, 0x52,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0x58, 0xff, 0x15, 0x00, 0x9f, 0x00, 0x6d,
+ 0xff, 0x1f, 0x00, 0x9f, 0x00, 0x7d, 0xff, 0x6b, 0x00, 0x9f, 0x00, 0x82,
+ 0xff, 0x61, 0x00, 0x9f, 0x00, 0x83, 0xff, 0x61, 0x00, 0x9f, 0x00, 0x84,
+ 0xff, 0x61, 0x00, 0x9f, 0x00, 0x85, 0xff, 0x61, 0x00, 0x9f, 0x00, 0x86,
+ 0xff, 0x61, 0x00, 0x9f, 0x00, 0x89, 0xff, 0x90, 0x00, 0x9f, 0x00, 0x94,
+ 0xff, 0x90, 0x00, 0x9f, 0x00, 0x95, 0xff, 0x90, 0x00, 0x9f, 0x00, 0x96,
+ 0xff, 0x90, 0x00, 0x9f, 0x00, 0x97, 0xff, 0x90, 0x00, 0x9f, 0x00, 0x98,
+ 0xff, 0x90, 0x00, 0x9f, 0x00, 0xa2, 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xa3,
+ 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xa4, 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xa5,
+ 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xa6, 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xa7,
+ 0xfe, 0xe6, 0x00, 0x9f, 0x00, 0xaa, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xab,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xac, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xad,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xb4, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xb5,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xb6, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xb7,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xb8, 0xfe, 0xf0, 0x00, 0x9f, 0x00, 0xbb,
+ 0xff, 0x15, 0x00, 0x9f, 0x00, 0xbc, 0xff, 0x15, 0x00, 0x9f, 0x00, 0xbd,
+ 0xff, 0x15, 0x00, 0x9f, 0x00, 0xbe, 0xff, 0x15, 0x00, 0x9f, 0x00, 0xc8,
+ 0xff, 0x90, 0x00, 0x9f, 0x00, 0xce, 0xff, 0x90, 0x00, 0x9f, 0x00, 0xdd,
+ 0xfe, 0xf0, 0x00, 0x9f, 0x01, 0x31, 0xff, 0x15, 0x00, 0x9f, 0x07, 0x51,
+ 0xff, 0x90, 0x00, 0x9f, 0x07, 0x52, 0xff, 0xdc, 0x00, 0x9f, 0x07, 0x53,
+ 0xfe, 0xf8, 0x00, 0xa0, 0x00, 0x11, 0xff, 0x6b, 0x00, 0xa0, 0x00, 0x1d,
+ 0xff, 0xb7, 0x00, 0xa0, 0x07, 0x51, 0xff, 0xdc, 0x00, 0xa0, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0xa1, 0x00, 0x10, 0x00, 0x26, 0x00, 0xa1, 0x07, 0x51,
+ 0xff, 0x90, 0x00, 0xa1, 0x07, 0x52, 0xff, 0x90, 0x00, 0xa1, 0x07, 0x53,
+ 0xff, 0xad, 0x00, 0xaa, 0x00, 0x5b, 0xff, 0xdc, 0x00, 0xab, 0x00, 0x5b,
+ 0xff, 0xdc, 0x00, 0xac, 0x00, 0x5b, 0xff, 0xdc, 0x00, 0xad, 0x00, 0x5b,
+ 0xff, 0xdc, 0x00, 0xb2, 0x07, 0x51, 0xff, 0xa4, 0x00, 0xb2, 0x07, 0x52,
+ 0xff, 0x90, 0x00, 0xb2, 0x07, 0x53, 0xff, 0xb7, 0x00, 0xb3, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb3, 0x07, 0x52, 0xff, 0x90, 0x00, 0xb3, 0x07, 0x53,
+ 0xff, 0xa4, 0x00, 0xb4, 0x00, 0x10, 0x00, 0x26, 0x00, 0xb4, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xb4, 0x00, 0x5b, 0xff, 0xc1, 0x00, 0xb4, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb4, 0x07, 0x52, 0xff, 0xb7, 0x00, 0xb4, 0x07, 0x53,
+ 0xff, 0x7d, 0x00, 0xb5, 0x00, 0x10, 0x00, 0x26, 0x00, 0xb5, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xb5, 0x00, 0x5b, 0xff, 0xc1, 0x00, 0xb5, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb5, 0x07, 0x52, 0xff, 0xb7, 0x00, 0xb5, 0x07, 0x53,
+ 0xff, 0x7d, 0x00, 0xb6, 0x00, 0x10, 0x00, 0x26, 0x00, 0xb6, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xb6, 0x00, 0x5b, 0xff, 0xc1, 0x00, 0xb6, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb6, 0x07, 0x52, 0xff, 0xb7, 0x00, 0xb6, 0x07, 0x53,
+ 0xff, 0x7d, 0x00, 0xb7, 0x00, 0x10, 0x00, 0x26, 0x00, 0xb7, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xb7, 0x00, 0x5b, 0xff, 0xc1, 0x00, 0xb7, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb7, 0x07, 0x52, 0xff, 0xb7, 0x00, 0xb7, 0x07, 0x53,
+ 0xff, 0x7d, 0x00, 0xb8, 0x00, 0x10, 0x00, 0x26, 0x00, 0xb8, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xb8, 0x00, 0x5b, 0xff, 0xc1, 0x00, 0xb8, 0x07, 0x51,
+ 0xff, 0x6b, 0x00, 0xb8, 0x07, 0x52, 0xff, 0xb7, 0x00, 0xb8, 0x07, 0x53,
+ 0xff, 0x7d, 0x00, 0xbf, 0x00, 0x10, 0xff, 0xdc, 0x00, 0xbf, 0x00, 0x11,
+ 0xfe, 0xdc, 0x00, 0xbf, 0x00, 0x1d, 0xff, 0x6b, 0x00, 0xbf, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xbf, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xbf, 0x07, 0x53,
+ 0xfe, 0xd3, 0x00, 0xc1, 0x00, 0x10, 0xff, 0xdc, 0x00, 0xc1, 0x00, 0x11,
+ 0xfe, 0xdc, 0x00, 0xc1, 0x00, 0x1d, 0xff, 0x6b, 0x00, 0xc1, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xc1, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xc1, 0x07, 0x53,
+ 0xfe, 0xd3, 0x00, 0xc2, 0x00, 0x10, 0xff, 0xd3, 0x00, 0xc2, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x24,
+ 0x00, 0x39, 0x00, 0xc2, 0x00, 0x26, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x2a,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x32, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x34,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x37, 0xff, 0x61, 0x00, 0xc2, 0x00, 0x39,
+ 0xff, 0x7d, 0x00, 0xc2, 0x00, 0x3a, 0xff, 0x90, 0x00, 0xc2, 0x00, 0x3c,
+ 0xff, 0x61, 0x00, 0xc2, 0x00, 0x46, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x48, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x49,
+ 0xff, 0xb7, 0x00, 0xc2, 0x00, 0x52, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x54,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x57, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x59,
+ 0xff, 0x88, 0x00, 0xc2, 0x00, 0x5a, 0xff, 0xad, 0x00, 0xc2, 0x00, 0x5c,
+ 0xff, 0x75, 0x00, 0xc2, 0x00, 0x6d, 0xff, 0xb7, 0x00, 0xc2, 0x00, 0x82,
+ 0x00, 0x39, 0x00, 0xc2, 0x00, 0x83, 0x00, 0x39, 0x00, 0xc2, 0x00, 0x84,
+ 0x00, 0x39, 0x00, 0xc2, 0x00, 0x85, 0x00, 0x39, 0x00, 0xc2, 0x00, 0x86,
+ 0x00, 0x39, 0x00, 0xc2, 0x00, 0x94, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x96, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x98, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0xc2, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xab, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xad, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xbf, 0xff, 0x75, 0x00, 0xc2, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0xc2, 0x00, 0xc2, 0x00, 0x39, 0x00, 0xc2, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0xc2, 0x00, 0xc6, 0x00, 0x39, 0x00, 0xc2, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xca, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xcc,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xcd, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xce,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xd3,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xd5, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xd7,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xd9, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xdb,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xde,
+ 0xff, 0xdc, 0x00, 0xc2, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x11, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x13, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0xc2, 0x01, 0x25, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0xc2, 0x01, 0x27, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0xc2, 0x01, 0x37, 0xff, 0xad, 0x00, 0xc2, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0xc2, 0x01, 0x39, 0xff, 0x75, 0x00, 0xc2, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0xc2, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0xc2, 0x01, 0xf1,
+ 0xff, 0xdc, 0x00, 0xc2, 0x05, 0xd0, 0xff, 0x90, 0x00, 0xc2, 0x05, 0xd2,
+ 0xff, 0x90, 0x00, 0xc2, 0x05, 0xd3, 0xff, 0xad, 0x00, 0xc2, 0x05, 0xd4,
+ 0xff, 0x90, 0x00, 0xc2, 0x05, 0xd5, 0xff, 0xad, 0x00, 0xc2, 0x06, 0x42,
+ 0xff, 0x61, 0x00, 0xc2, 0x06, 0x43, 0xff, 0x75, 0x00, 0xc2, 0x07, 0x51,
+ 0xfe, 0xf8, 0x00, 0xc2, 0x07, 0x52, 0xff, 0x02, 0x00, 0xc2, 0x07, 0x53,
+ 0x00, 0x2f, 0x00, 0xc4, 0x00, 0x10, 0xff, 0xd3, 0x00, 0xc4, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x24,
+ 0x00, 0x39, 0x00, 0xc4, 0x00, 0x26, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x2a,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x32, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x34,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x37, 0xff, 0x61, 0x00, 0xc4, 0x00, 0x39,
+ 0xff, 0x7d, 0x00, 0xc4, 0x00, 0x3a, 0xff, 0x90, 0x00, 0xc4, 0x00, 0x3c,
+ 0xff, 0x61, 0x00, 0xc4, 0x00, 0x46, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x48, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x49,
+ 0xff, 0xb7, 0x00, 0xc4, 0x00, 0x52, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x54,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x57, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x59,
+ 0xff, 0x88, 0x00, 0xc4, 0x00, 0x5a, 0xff, 0xad, 0x00, 0xc4, 0x00, 0x5c,
+ 0xff, 0x75, 0x00, 0xc4, 0x00, 0x6d, 0xff, 0xb7, 0x00, 0xc4, 0x00, 0x82,
+ 0x00, 0x39, 0x00, 0xc4, 0x00, 0x83, 0x00, 0x39, 0x00, 0xc4, 0x00, 0x84,
+ 0x00, 0x39, 0x00, 0xc4, 0x00, 0x85, 0x00, 0x39, 0x00, 0xc4, 0x00, 0x86,
+ 0x00, 0x39, 0x00, 0xc4, 0x00, 0x94, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x95,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x96, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x97,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x98, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0x9f,
+ 0xff, 0x61, 0x00, 0xc4, 0x00, 0xa9, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xab, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xad, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xbf, 0xff, 0x75, 0x00, 0xc4, 0x00, 0xc1,
+ 0xff, 0x75, 0x00, 0xc4, 0x00, 0xc2, 0x00, 0x39, 0x00, 0xc4, 0x00, 0xc4,
+ 0x00, 0x39, 0x00, 0xc4, 0x00, 0xc6, 0x00, 0x39, 0x00, 0xc4, 0x00, 0xc8,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xca, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xcc,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xcd, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xce,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xd1, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xd3,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xd5, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xd7,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xd9, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xdb,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xde,
+ 0xff, 0xdc, 0x00, 0xc4, 0x00, 0xe2, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x0e,
+ 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x0f, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x10,
+ 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x11, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x12,
+ 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x13, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0xc4, 0x01, 0x25, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0xc4, 0x01, 0x27, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0xc4, 0x01, 0x37, 0xff, 0xad, 0x00, 0xc4, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0xc4, 0x01, 0x39, 0xff, 0x75, 0x00, 0xc4, 0x01, 0x3a,
+ 0xff, 0x61, 0x00, 0xc4, 0x01, 0xf0, 0xff, 0xdc, 0x00, 0xc4, 0x01, 0xf1,
+ 0xff, 0xdc, 0x00, 0xc4, 0x05, 0xd0, 0xff, 0x90, 0x00, 0xc4, 0x05, 0xd2,
+ 0xff, 0x90, 0x00, 0xc4, 0x05, 0xd3, 0xff, 0xad, 0x00, 0xc4, 0x05, 0xd4,
+ 0xff, 0x90, 0x00, 0xc4, 0x05, 0xd5, 0xff, 0xad, 0x00, 0xc4, 0x06, 0x42,
+ 0xff, 0x61, 0x00, 0xc4, 0x06, 0x43, 0xff, 0x75, 0x00, 0xc4, 0x07, 0x51,
+ 0xfe, 0xf8, 0x00, 0xc4, 0x07, 0x52, 0xff, 0x02, 0x00, 0xc4, 0x07, 0x53,
+ 0x00, 0x2f, 0x00, 0xc6, 0x00, 0x10, 0xff, 0xd3, 0x00, 0xc6, 0x00, 0x11,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x1d, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x24,
+ 0x00, 0x39, 0x00, 0xc6, 0x00, 0x26, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x2a,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x32, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x34,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x37, 0xff, 0x61, 0x00, 0xc6, 0x00, 0x39,
+ 0xff, 0x7d, 0x00, 0xc6, 0x00, 0x3a, 0xff, 0x90, 0x00, 0xc6, 0x00, 0x3c,
+ 0xff, 0x61, 0x00, 0xc6, 0x00, 0x46, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x47,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x48, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x49,
+ 0xff, 0xb7, 0x00, 0xc6, 0x00, 0x52, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x54,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x57, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x59,
+ 0xff, 0x88, 0x00, 0xc6, 0x00, 0x5a, 0xff, 0xad, 0x00, 0xc6, 0x00, 0x6d,
+ 0xff, 0xb7, 0x00, 0xc6, 0x00, 0x82, 0x00, 0x39, 0x00, 0xc6, 0x00, 0x83,
+ 0x00, 0x39, 0x00, 0xc6, 0x00, 0x84, 0x00, 0x39, 0x00, 0xc6, 0x00, 0x85,
+ 0x00, 0x39, 0x00, 0xc6, 0x00, 0x86, 0x00, 0x39, 0x00, 0xc6, 0x00, 0x94,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x95, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x96,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x97, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x98,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0x9f, 0xff, 0x61, 0x00, 0xc6, 0x00, 0xa9,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xaa, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xab,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xac, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xad,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xb4, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xb5,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xb6, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xb7,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xb8, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xc2,
+ 0x00, 0x39, 0x00, 0xc6, 0x00, 0xc4, 0x00, 0x39, 0x00, 0xc6, 0x00, 0xc6,
+ 0x00, 0x39, 0x00, 0xc6, 0x00, 0xc8, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xca,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xcc, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xcd,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xce, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xd1,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xd3, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xd5,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xd7, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xd9,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xdb, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xde, 0xff, 0xdc, 0x00, 0xc6, 0x00, 0xe2,
+ 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x0e, 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x0f,
+ 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x10, 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x11,
+ 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x13, 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x24,
+ 0xff, 0x61, 0x00, 0xc6, 0x01, 0x25, 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x26,
+ 0xff, 0x61, 0x00, 0xc6, 0x01, 0x27, 0xff, 0xdc, 0x00, 0xc6, 0x01, 0x36,
+ 0xff, 0x90, 0x00, 0xc6, 0x01, 0x37, 0xff, 0xad, 0x00, 0xc6, 0x01, 0x38,
+ 0xff, 0x61, 0x00, 0xc6, 0x01, 0x3a, 0xff, 0x61, 0x00, 0xc6, 0x01, 0xf0,
+ 0xff, 0xdc, 0x00, 0xc6, 0x01, 0xf1, 0xff, 0xdc, 0x00, 0xc6, 0x05, 0xd0,
+ 0xff, 0x90, 0x00, 0xc6, 0x05, 0xd2, 0xff, 0x90, 0x00, 0xc6, 0x05, 0xd3,
+ 0xff, 0xad, 0x00, 0xc6, 0x05, 0xd4, 0xff, 0x90, 0x00, 0xc6, 0x05, 0xd5,
+ 0xff, 0xad, 0x00, 0xc6, 0x06, 0x42, 0xff, 0x61, 0x00, 0xc6, 0x07, 0x51,
+ 0xfe, 0xf8, 0x00, 0xc6, 0x07, 0x52, 0xff, 0x02, 0x00, 0xc6, 0x07, 0x53,
+ 0x00, 0x2f, 0x00, 0xc8, 0x00, 0x3c, 0xff, 0xdc, 0x00, 0xc8, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xc8, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xc8, 0x00, 0x9f,
+ 0xff, 0xdc, 0x00, 0xc8, 0x01, 0x3a, 0xff, 0xdc, 0x00, 0xc8, 0x07, 0x52,
+ 0x00, 0x26, 0x00, 0xce, 0x00, 0x3c, 0xff, 0xdc, 0x00, 0xce, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xce, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xce, 0x00, 0x9f,
+ 0xff, 0xdc, 0x00, 0xce, 0x01, 0x3a, 0xff, 0xdc, 0x00, 0xce, 0x07, 0x52,
+ 0x00, 0x26, 0x00, 0xd0, 0x00, 0x24, 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x39,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x3c, 0xff, 0x90, 0x00, 0xd0, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x82,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x83, 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x84,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x85, 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x86,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0x9f, 0xff, 0x90, 0x00, 0xd0, 0x00, 0xc2,
+ 0xff, 0xdc, 0x00, 0xd0, 0x00, 0xc4, 0xff, 0xdc, 0x00, 0xd0, 0x00, 0xc6,
+ 0xff, 0xdc, 0x00, 0xd0, 0x01, 0x38, 0xff, 0x90, 0x00, 0xd0, 0x01, 0x3a,
+ 0xff, 0x90, 0x00, 0xd0, 0x01, 0xf4, 0xff, 0x90, 0x00, 0xd0, 0x06, 0x42,
+ 0xff, 0x90, 0x00, 0xd0, 0x07, 0x51, 0xff, 0xd3, 0x00, 0xd0, 0x07, 0x52,
+ 0xff, 0xc9, 0x00, 0xd0, 0x07, 0x53, 0xff, 0x44, 0x00, 0xd2, 0x00, 0x24,
+ 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x39, 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x3c,
+ 0xff, 0x90, 0x00, 0xd2, 0x00, 0x6d, 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x7d,
+ 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x82, 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x83,
+ 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x84, 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x85,
+ 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x86, 0xff, 0xdc, 0x00, 0xd2, 0x00, 0x9f,
+ 0xff, 0x90, 0x00, 0xd2, 0x01, 0x3a, 0xff, 0x90, 0x00, 0xd2, 0x07, 0x51,
+ 0xff, 0xd3, 0x00, 0xd2, 0x07, 0x52, 0xff, 0xc9, 0x00, 0xd2, 0x07, 0x53,
+ 0xff, 0x44, 0x00, 0xdd, 0x00, 0x5b, 0xff, 0xdc, 0x00, 0xe0, 0x00, 0x37,
+ 0xff, 0xb7, 0x00, 0xe0, 0x00, 0x3c, 0xff, 0x9a, 0x00, 0xe0, 0x00, 0x6d,
+ 0xff, 0xdc, 0x00, 0xe0, 0x00, 0x7d, 0xff, 0xdc, 0x00, 0xe0, 0x00, 0x9f,
+ 0xff, 0x9a, 0x00, 0xe0, 0x01, 0x26, 0xff, 0xb7, 0x00, 0xe0, 0x01, 0x3a,
+ 0xff, 0x9a, 0x00, 0xe0, 0x07, 0x51, 0xff, 0xd3, 0x00, 0xe0, 0x07, 0x52,
+ 0xff, 0xd3, 0x00, 0xe0, 0x07, 0x53, 0xff, 0xc9, 0x00, 0xfb, 0x00, 0x10,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0x24, 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x32,
+ 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x37, 0xfe, 0xe6, 0x00, 0xfb, 0x00, 0x38,
+ 0xff, 0x9a, 0x00, 0xfb, 0x00, 0x39, 0xff, 0x1f, 0x00, 0xfb, 0x00, 0x3a,
+ 0xff, 0x44, 0x00, 0xfb, 0x00, 0x3c, 0xfe, 0xf0, 0x00, 0xfb, 0x00, 0x48,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0x52, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0x58,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0x5c, 0xff, 0x44, 0x00, 0xfb, 0x00, 0x82,
+ 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x83, 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x84,
+ 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x85, 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x86,
+ 0x00, 0x2f, 0x00, 0xfb, 0x00, 0x94, 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x95,
+ 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x96, 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x97,
+ 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x98, 0xff, 0xb7, 0x00, 0xfb, 0x00, 0x9b,
+ 0xff, 0x9a, 0x00, 0xfb, 0x00, 0x9c, 0xff, 0x9a, 0x00, 0xfb, 0x00, 0x9d,
+ 0xff, 0x9a, 0x00, 0xfb, 0x00, 0x9e, 0xff, 0x9a, 0x00, 0xfb, 0x00, 0x9f,
+ 0xfe, 0xf0, 0x00, 0xfb, 0x00, 0xaa, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xab,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xac, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xad,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xb4, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xb5,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xb6, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xb7,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xb8, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xbb,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xbc, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xbd,
+ 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xbe, 0xff, 0xdc, 0x00, 0xfb, 0x00, 0xbf,
+ 0xff, 0x44, 0x00, 0xfb, 0x00, 0xc1, 0xff, 0x44, 0x00, 0xfb, 0x00, 0xdd,
+ 0xff, 0xdc, 0x00, 0xfb, 0x01, 0x26, 0xfe, 0xe6, 0x00, 0xfb, 0x01, 0x30,
+ 0xff, 0x9a, 0x00, 0xfb, 0x01, 0x31, 0xff, 0xdc, 0x00, 0xfb, 0x01, 0x3a,
+ 0xfe, 0xf0, 0x00, 0xfb, 0x07, 0x51, 0xfe, 0x61, 0x00, 0xfb, 0x07, 0x52,
+ 0xfd, 0xe6, 0x00, 0xff, 0x00, 0x10, 0xff, 0xdc, 0x00, 0xff, 0x00, 0x24,
+ 0x00, 0x2f, 0x00, 0xff, 0x00, 0x32, 0xff, 0xb7, 0x00, 0xff, 0x00, 0x37,
+ 0xfe, 0xe6, 0x00, 0xff, 0x00, 0x38, 0xff, 0x9a, 0x00, 0xff, 0x00, 0x39,
+ 0xff, 0x1f, 0x00, 0xff, 0x00, 0x3a, 0xff, 0x44, 0x00, 0xff, 0x00, 0x3c,
+ 0xfe, 0xf0, 0x00, 0xff, 0x00, 0x48, 0xff, 0xdc, 0x00, 0xff, 0x00, 0x52,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0x58, 0xff, 0xdc, 0x00, 0xff, 0x00, 0x5c,
+ 0xff, 0x44, 0x00, 0xff, 0x00, 0x82, 0x00, 0x2f, 0x00, 0xff, 0x00, 0x83,
+ 0x00, 0x2f, 0x00, 0xff, 0x00, 0x84, 0x00, 0x2f, 0x00, 0xff, 0x00, 0x85,
+ 0x00, 0x2f, 0x00, 0xff, 0x00, 0x86, 0x00, 0x2f, 0x00, 0xff, 0x00, 0x94,
+ 0xff, 0xb7, 0x00, 0xff, 0x00, 0x95, 0xff, 0xb7, 0x00, 0xff, 0x00, 0x96,
+ 0xff, 0xb7, 0x00, 0xff, 0x00, 0x97, 0xff, 0xb7, 0x00, 0xff, 0x00, 0x98,
+ 0xff, 0xb7, 0x00, 0xff, 0x00, 0x9b, 0xff, 0x9a, 0x00, 0xff, 0x00, 0x9c,
+ 0xff, 0x9a, 0x00, 0xff, 0x00, 0x9d, 0xff, 0x9a, 0x00, 0xff, 0x00, 0x9e,
+ 0xff, 0x9a, 0x00, 0xff, 0x00, 0x9f, 0xfe, 0xf0, 0x00, 0xff, 0x00, 0xaa,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xab, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xac,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xad, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xb4,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xb5, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xb6,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xb7, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xb8,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xbb, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xbc,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xbd, 0xff, 0xdc, 0x00, 0xff, 0x00, 0xbe,
+ 0xff, 0xdc, 0x00, 0xff, 0x00, 0xbf, 0xff, 0x44, 0x00, 0xff, 0x00, 0xc1,
+ 0xff, 0x44, 0x00, 0xff, 0x00, 0xdd, 0xff, 0xdc, 0x00, 0xff, 0x01, 0x26,
+ 0xfe, 0xe6, 0x00, 0xff, 0x01, 0x30, 0xff, 0x9a, 0x00, 0xff, 0x01, 0x31,
+ 0xff, 0xdc, 0x00, 0xff, 0x01, 0x3a, 0xfe, 0xf0, 0x00, 0xff, 0x07, 0x51,
+ 0xfe, 0x61, 0x00, 0xff, 0x07, 0x52, 0xfd, 0xe6, 0x01, 0x02, 0x00, 0x4f,
+ 0xff, 0x3f, 0x01, 0x0a, 0x07, 0x51, 0xff, 0x6b, 0x01, 0x0a, 0x07, 0x52,
+ 0xff, 0x90, 0x01, 0x0a, 0x07, 0x53, 0xff, 0xa4, 0x01, 0x16, 0x00, 0x10,
+ 0xff, 0xad, 0x01, 0x16, 0x00, 0x11, 0xff, 0xb7, 0x01, 0x16, 0x00, 0x1d,
+ 0xff, 0xc1, 0x01, 0x16, 0x00, 0x24, 0xff, 0xad, 0x01, 0x16, 0x00, 0x26,
+ 0xff, 0x9a, 0x01, 0x16, 0x00, 0x37, 0xff, 0x6b, 0x01, 0x16, 0x00, 0x39,
+ 0xff, 0x90, 0x01, 0x16, 0x00, 0x3a, 0xff, 0xad, 0x01, 0x16, 0x00, 0x3c,
+ 0xff, 0x7d, 0x01, 0x16, 0x00, 0x44, 0xff, 0xd3, 0x01, 0x16, 0x00, 0x48,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0x52, 0xff, 0xa4, 0x01, 0x16, 0x00, 0x58,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0x5c, 0xff, 0x90, 0x01, 0x16, 0x00, 0x6d,
+ 0xff, 0x90, 0x01, 0x16, 0x00, 0x7d, 0xff, 0xdc, 0x01, 0x16, 0x00, 0x82,
+ 0xff, 0xad, 0x01, 0x16, 0x00, 0x83, 0xff, 0xad, 0x01, 0x16, 0x00, 0x84,
+ 0xff, 0xad, 0x01, 0x16, 0x00, 0x85, 0xff, 0xad, 0x01, 0x16, 0x00, 0x86,
+ 0xff, 0xad, 0x01, 0x16, 0x00, 0x89, 0xff, 0x9a, 0x01, 0x16, 0x00, 0x9f,
+ 0xff, 0x7d, 0x01, 0x16, 0x00, 0xa2, 0xff, 0xd3, 0x01, 0x16, 0x00, 0xa3,
+ 0xff, 0xd3, 0x01, 0x16, 0x00, 0xa4, 0xff, 0xd3, 0x01, 0x16, 0x00, 0xa5,
+ 0xff, 0xd3, 0x01, 0x16, 0x00, 0xa6, 0xff, 0xd3, 0x01, 0x16, 0x00, 0xa7,
+ 0xff, 0xd3, 0x01, 0x16, 0x00, 0xaa, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xab,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xac, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xad,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xb4, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xb5,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xb6, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xb7,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xb8, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xbb,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xbc, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xbd,
+ 0xff, 0xa4, 0x01, 0x16, 0x00, 0xbe, 0xff, 0xa4, 0x01, 0x16, 0x00, 0xbf,
+ 0xff, 0x90, 0x01, 0x16, 0x00, 0xc1, 0xff, 0x90, 0x01, 0x16, 0x00, 0xc8,
+ 0xff, 0x9a, 0x01, 0x16, 0x00, 0xce, 0xff, 0x9a, 0x01, 0x16, 0x00, 0xdd,
+ 0xff, 0xa4, 0x01, 0x16, 0x01, 0x26, 0xff, 0x6b, 0x01, 0x16, 0x01, 0x31,
+ 0xff, 0xa4, 0x01, 0x16, 0x01, 0x3a, 0xff, 0x7d, 0x01, 0x16, 0x07, 0x51,
+ 0xff, 0x6b, 0x01, 0x16, 0x07, 0x52, 0xff, 0x7d, 0x01, 0x16, 0x07, 0x53,
+ 0xff, 0xdc, 0x01, 0x17, 0x00, 0x10, 0xff, 0x7d, 0x01, 0x17, 0x00, 0x11,
+ 0xff, 0x44, 0x01, 0x17, 0x00, 0x1d, 0xff, 0xdc, 0x01, 0x17, 0x00, 0x46,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0x47, 0xff, 0xdc, 0x01, 0x17, 0x00, 0x48,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0x4a, 0xff, 0xdc, 0x01, 0x17, 0x00, 0x4b,
+ 0xff, 0xdc, 0x01, 0x17, 0x00, 0x50, 0xff, 0xdc, 0x01, 0x17, 0x00, 0x51,
+ 0xff, 0xdc, 0x01, 0x17, 0x00, 0x52, 0xff, 0xd3, 0x01, 0x17, 0x00, 0x54,
+ 0xff, 0xdc, 0x01, 0x17, 0x00, 0x55, 0xff, 0xdc, 0x01, 0x17, 0x00, 0x5b,
+ 0xff, 0xc9, 0x01, 0x17, 0x00, 0x6d, 0xff, 0xb7, 0x01, 0x17, 0x00, 0xa9,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xaa, 0xff, 0xd3, 0x01, 0x17, 0x00, 0xab,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xac, 0xff, 0xd3, 0x01, 0x17, 0x00, 0xad,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xb3, 0xff, 0xdc, 0x01, 0x17, 0x00, 0xb4,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xb5, 0xff, 0xd3, 0x01, 0x17, 0x00, 0xb6,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xb7, 0xff, 0xd3, 0x01, 0x17, 0x00, 0xb8,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xc9, 0xff, 0xd3, 0x01, 0x17, 0x00, 0xcf,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xd1, 0x00, 0x48, 0x01, 0x17, 0x00, 0xdd,
+ 0xff, 0xd3, 0x01, 0x17, 0x00, 0xe1, 0xff, 0xdc, 0x01, 0x17, 0x01, 0x0a,
+ 0xff, 0xdc, 0x01, 0x17, 0x01, 0x17, 0xff, 0xdc, 0x01, 0x17, 0x01, 0x1b,
+ 0xff, 0xdc, 0x01, 0x17, 0x07, 0x52, 0x00, 0x56, 0x01, 0x17, 0x07, 0x53,
+ 0xfe, 0xc9, 0x01, 0x1a, 0x00, 0x10, 0xff, 0xad, 0x01, 0x1a, 0x00, 0x11,
+ 0xff, 0xb7, 0x01, 0x1a, 0x00, 0x1d, 0xff, 0xc1, 0x01, 0x1a, 0x00, 0x24,
+ 0xff, 0xad, 0x01, 0x1a, 0x00, 0x26, 0xff, 0x9a, 0x01, 0x1a, 0x00, 0x37,
+ 0xff, 0x6b, 0x01, 0x1a, 0x00, 0x39, 0xff, 0x90, 0x01, 0x1a, 0x00, 0x3a,
+ 0xff, 0xad, 0x01, 0x1a, 0x00, 0x3c, 0xff, 0x7d, 0x01, 0x1a, 0x00, 0x44,
+ 0xff, 0xd3, 0x01, 0x1a, 0x00, 0x48, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0x52,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0x58, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0x5c,
+ 0xff, 0x90, 0x01, 0x1a, 0x00, 0x6d, 0xff, 0x90, 0x01, 0x1a, 0x00, 0x7d,
+ 0xff, 0xdc, 0x01, 0x1a, 0x00, 0x82, 0xff, 0xad, 0x01, 0x1a, 0x00, 0x83,
+ 0xff, 0xad, 0x01, 0x1a, 0x00, 0x84, 0xff, 0xad, 0x01, 0x1a, 0x00, 0x85,
+ 0xff, 0xad, 0x01, 0x1a, 0x00, 0x86, 0xff, 0xad, 0x01, 0x1a, 0x00, 0x89,
+ 0xff, 0x9a, 0x01, 0x1a, 0x00, 0x9f, 0xff, 0x7d, 0x01, 0x1a, 0x00, 0xa2,
+ 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xa3, 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xa4,
+ 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xa5, 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xa6,
+ 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xa7, 0xff, 0xd3, 0x01, 0x1a, 0x00, 0xaa,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xab, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xac,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xad, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xb4,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xb5, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xb6,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xb7, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xb8,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xbb, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xbc,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xbd, 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xbe,
+ 0xff, 0xa4, 0x01, 0x1a, 0x00, 0xbf, 0xff, 0x90, 0x01, 0x1a, 0x00, 0xc1,
+ 0xff, 0x90, 0x01, 0x1a, 0x00, 0xc8, 0xff, 0x9a, 0x01, 0x1a, 0x00, 0xce,
+ 0xff, 0x9a, 0x01, 0x1a, 0x00, 0xdd, 0xff, 0xa4, 0x01, 0x1a, 0x01, 0x26,
+ 0xff, 0x6b, 0x01, 0x1a, 0x01, 0x31, 0xff, 0xa4, 0x01, 0x1a, 0x01, 0x3a,
+ 0xff, 0x7d, 0x01, 0x1a, 0x07, 0x51, 0xff, 0x6b, 0x01, 0x1a, 0x07, 0x52,
+ 0xff, 0x7d, 0x01, 0x1a, 0x07, 0x53, 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x10,
+ 0xff, 0x7d, 0x01, 0x1b, 0x00, 0x11, 0xff, 0x44, 0x01, 0x1b, 0x00, 0x1d,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x46, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0x47,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x48, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0x4a,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x4b, 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x50,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x51, 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x52,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0x54, 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x55,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0x5b, 0xff, 0xc9, 0x01, 0x1b, 0x00, 0x6d,
+ 0xff, 0xb7, 0x01, 0x1b, 0x00, 0xa9, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xaa,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xab, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xac,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xad, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xb3,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0xb4, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xb5,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xb6, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xb7,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xb8, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xc9,
+ 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xcf, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xd1,
+ 0xff, 0xdc, 0x01, 0x1b, 0x00, 0xdd, 0xff, 0xd3, 0x01, 0x1b, 0x00, 0xe1,
+ 0xff, 0xdc, 0x01, 0x1b, 0x01, 0x0a, 0xff, 0xdc, 0x01, 0x1b, 0x01, 0x17,
+ 0xff, 0xdc, 0x01, 0x1b, 0x01, 0x1b, 0xff, 0xdc, 0x01, 0x1b, 0x07, 0x52,
+ 0x00, 0x56, 0x01, 0x1b, 0x07, 0x53, 0xfe, 0xc9, 0x01, 0x20, 0x00, 0x24,
+ 0x00, 0x26, 0x01, 0x20, 0x00, 0x82, 0x00, 0x26, 0x01, 0x20, 0x00, 0x83,
+ 0x00, 0x26, 0x01, 0x20, 0x00, 0x84, 0x00, 0x26, 0x01, 0x20, 0x00, 0x85,
+ 0x00, 0x26, 0x01, 0x20, 0x00, 0x86, 0x00, 0x26, 0x01, 0x22, 0x00, 0x24,
+ 0x00, 0x26, 0x01, 0x22, 0x00, 0x82, 0x00, 0x26, 0x01, 0x22, 0x00, 0x83,
+ 0x00, 0x26, 0x01, 0x22, 0x00, 0x84, 0x00, 0x26, 0x01, 0x22, 0x00, 0x85,
+ 0x00, 0x26, 0x01, 0x22, 0x00, 0x86, 0x00, 0x26, 0x01, 0x26, 0x00, 0x10,
+ 0xff, 0x44, 0x01, 0x26, 0x00, 0x11, 0xff, 0x0d, 0x01, 0x26, 0x00, 0x1d,
+ 0xff, 0x1f, 0x01, 0x26, 0x00, 0x24, 0xff, 0x61, 0x01, 0x26, 0x00, 0x26,
+ 0xff, 0x88, 0x01, 0x26, 0x00, 0x37, 0xff, 0xdc, 0x01, 0x26, 0x00, 0x44,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0x46, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0x48,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0x4c, 0xff, 0xc1, 0x01, 0x26, 0x00, 0x52,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0x55, 0xfe, 0xd3, 0x01, 0x26, 0x00, 0x56,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0x58, 0xfe, 0xc9, 0x01, 0x26, 0x00, 0x5a,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0x5c, 0xfe, 0xc1, 0x01, 0x26, 0x00, 0x6d,
+ 0xff, 0x44, 0x01, 0x26, 0x00, 0x7d, 0xff, 0x90, 0x01, 0x26, 0x00, 0x82,
+ 0xff, 0x61, 0x01, 0x26, 0x00, 0x83, 0xff, 0x61, 0x01, 0x26, 0x00, 0x84,
+ 0xff, 0x61, 0x01, 0x26, 0x00, 0x85, 0xff, 0x61, 0x01, 0x26, 0x00, 0x86,
+ 0xff, 0x61, 0x01, 0x26, 0x00, 0x89, 0xff, 0x88, 0x01, 0x26, 0x00, 0xa2,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa3, 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa4,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa5, 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa6,
+ 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa7, 0xfe, 0xad, 0x01, 0x26, 0x00, 0xa9,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xaa, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xab,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xac, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xad,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xb4, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xb5,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xb6, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xb7,
+ 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xb8, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xbb,
+ 0xfe, 0xc9, 0x01, 0x26, 0x00, 0xbc, 0xfe, 0xc9, 0x01, 0x26, 0x00, 0xbd,
+ 0xfe, 0xc9, 0x01, 0x26, 0x00, 0xbe, 0xfe, 0xc9, 0x01, 0x26, 0x00, 0xbf,
+ 0xfe, 0xc1, 0x01, 0x26, 0x00, 0xc1, 0xfe, 0xc1, 0x01, 0x26, 0x00, 0xc8,
+ 0xff, 0x88, 0x01, 0x26, 0x00, 0xc9, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xce,
+ 0xff, 0x88, 0x01, 0x26, 0x00, 0xcf, 0xfe, 0xa4, 0x01, 0x26, 0x00, 0xdd,
+ 0xfe, 0xa4, 0x01, 0x26, 0x01, 0x17, 0xfe, 0xd3, 0x01, 0x26, 0x01, 0x1b,
+ 0xfe, 0xd3, 0x01, 0x26, 0x01, 0x21, 0xfe, 0xad, 0x01, 0x26, 0x01, 0x23,
+ 0xfe, 0xad, 0x01, 0x26, 0x01, 0x26, 0xff, 0xdc, 0x01, 0x26, 0x01, 0x31,
+ 0xfe, 0xc9, 0x01, 0x26, 0x07, 0x52, 0xff, 0xd3, 0x01, 0x26, 0x07, 0x53,
+ 0xfe, 0xf8, 0x01, 0x30, 0x00, 0x3d, 0xff, 0xdc, 0x01, 0x30, 0x01, 0x3f,
+ 0xff, 0xdc, 0x01, 0x3a, 0x00, 0x10, 0xff, 0x0d, 0x01, 0x3a, 0x00, 0x11,
+ 0xfe, 0x61, 0x01, 0x3a, 0x00, 0x1d, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0x24,
+ 0xff, 0x61, 0x01, 0x3a, 0x00, 0x26, 0xff, 0x90, 0x01, 0x3a, 0x00, 0x32,
+ 0xff, 0x90, 0x01, 0x3a, 0x00, 0x44, 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0x48,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0x4c, 0xff, 0xb7, 0x01, 0x3a, 0x00, 0x52,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0x58, 0xff, 0x15, 0x01, 0x3a, 0x00, 0x6d,
+ 0xff, 0x1f, 0x01, 0x3a, 0x00, 0x7d, 0xff, 0x6b, 0x01, 0x3a, 0x00, 0x82,
+ 0xff, 0x61, 0x01, 0x3a, 0x00, 0x83, 0xff, 0x61, 0x01, 0x3a, 0x00, 0x84,
+ 0xff, 0x61, 0x01, 0x3a, 0x00, 0x85, 0xff, 0x61, 0x01, 0x3a, 0x00, 0x86,
+ 0xff, 0x61, 0x01, 0x3a, 0x00, 0x89, 0xff, 0x90, 0x01, 0x3a, 0x00, 0x94,
+ 0xff, 0x90, 0x01, 0x3a, 0x00, 0x95, 0xff, 0x90, 0x01, 0x3a, 0x00, 0x96,
+ 0xff, 0x90, 0x01, 0x3a, 0x00, 0x97, 0xff, 0x90, 0x01, 0x3a, 0x00, 0x98,
+ 0xff, 0x90, 0x01, 0x3a, 0x00, 0xa2, 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xa3,
+ 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xa4, 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xa5,
+ 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xa6, 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xa7,
+ 0xfe, 0xe6, 0x01, 0x3a, 0x00, 0xaa, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xab,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xac, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xad,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xb4, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xb5,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xb6, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xb7,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xb8, 0xfe, 0xf0, 0x01, 0x3a, 0x00, 0xbb,
+ 0xff, 0x15, 0x01, 0x3a, 0x00, 0xbc, 0xff, 0x15, 0x01, 0x3a, 0x00, 0xbd,
+ 0xff, 0x15, 0x01, 0x3a, 0x00, 0xbe, 0xff, 0x15, 0x01, 0x3a, 0x00, 0xc8,
+ 0xff, 0x90, 0x01, 0x3a, 0x00, 0xce, 0xff, 0x90, 0x01, 0x3a, 0x00, 0xdd,
+ 0xfe, 0xf0, 0x01, 0x3a, 0x01, 0x31, 0xff, 0x15, 0x01, 0x3a, 0x07, 0x51,
+ 0xff, 0x90, 0x01, 0x3a, 0x07, 0x52, 0xff, 0xdc, 0x01, 0x3a, 0x07, 0x53,
+ 0xfe, 0xf8, 0x01, 0x3f, 0x00, 0x10, 0xff, 0xdc, 0x01, 0x3f, 0x07, 0x51,
+ 0xff, 0xdc, 0x01, 0x3f, 0x07, 0x52, 0xff, 0xdc, 0x01, 0x3f, 0x07, 0x53,
+ 0xff, 0xdc, 0x07, 0x45, 0x00, 0x24, 0xff, 0xd3, 0x07, 0x45, 0x00, 0x25,
+ 0xff, 0xb7, 0x07, 0x45, 0x00, 0x2a, 0x00, 0x4b, 0x07, 0x45, 0x00, 0x2d,
+ 0x00, 0x72, 0x07, 0x45, 0x00, 0x32, 0x00, 0x39, 0x07, 0x45, 0x00, 0x34,
+ 0x00, 0x4b, 0x07, 0x45, 0x00, 0x37, 0xff, 0x44, 0x07, 0x45, 0x00, 0x39,
+ 0xff, 0x88, 0x07, 0x45, 0x00, 0x3a, 0xff, 0xad, 0x07, 0x45, 0x00, 0x3b,
+ 0xff, 0x9a, 0x07, 0x45, 0x00, 0x3c, 0xff, 0x0d, 0x07, 0x45, 0x00, 0x52,
+ 0x00, 0x26, 0x07, 0x45, 0x00, 0x59, 0xff, 0xc9, 0x07, 0x45, 0x00, 0x5c,
+ 0xff, 0xdc, 0x07, 0x45, 0x00, 0x82, 0xff, 0xd3, 0x07, 0x45, 0x00, 0x83,
+ 0xff, 0xd3, 0x07, 0x45, 0x00, 0x84, 0xff, 0xd3, 0x07, 0x45, 0x00, 0x85,
+ 0xff, 0xd3, 0x07, 0x45, 0x00, 0x86, 0xff, 0xd3, 0x07, 0x45, 0x00, 0x94,
+ 0x00, 0x39, 0x07, 0x45, 0x00, 0x95, 0x00, 0x39, 0x07, 0x45, 0x00, 0x96,
+ 0x00, 0x39, 0x07, 0x45, 0x00, 0x97, 0x00, 0x39, 0x07, 0x45, 0x00, 0x98,
+ 0x00, 0x39, 0x07, 0x45, 0x00, 0x9f, 0xff, 0x0d, 0x07, 0x45, 0x00, 0xb4,
+ 0x00, 0x26, 0x07, 0x45, 0x00, 0xb5, 0x00, 0x26, 0x07, 0x45, 0x00, 0xb6,
+ 0x00, 0x26, 0x07, 0x45, 0x00, 0xb7, 0x00, 0x26, 0x07, 0x45, 0x00, 0xb8,
+ 0x00, 0x26, 0x07, 0x45, 0x00, 0xbf, 0xff, 0xdc, 0x07, 0x45, 0x00, 0xc1,
+ 0xff, 0xdc, 0x07, 0x45, 0x00, 0xe0, 0x00, 0x4b, 0x07, 0x45, 0x01, 0x26,
+ 0xff, 0x44, 0x07, 0x45, 0x01, 0x3a, 0xff, 0x0d, 0x07, 0x51, 0x00, 0x24,
+ 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x25, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x26,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x27, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x29,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0x2a, 0xff, 0xb7, 0x07, 0x51, 0x00, 0x2b,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0x2d, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x2e,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0x2f, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x32,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x33, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x34,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x35, 0xff, 0xc1, 0x07, 0x51, 0x00, 0x3b,
+ 0xff, 0x88, 0x07, 0x51, 0x00, 0x3d, 0xff, 0xdc, 0x07, 0x51, 0x00, 0x49,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x51, 0xff, 0x90, 0x07, 0x51, 0x00, 0x52,
+ 0xff, 0x6b, 0x07, 0x51, 0x00, 0x55, 0xff, 0x90, 0x07, 0x51, 0x00, 0x59,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x5a, 0xff, 0xb7, 0x07, 0x51, 0x00, 0x5c,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x82, 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x83,
+ 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x84, 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x85,
+ 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x86, 0xfe, 0xf8, 0x07, 0x51, 0x00, 0x88,
+ 0xfe, 0x7d, 0x07, 0x51, 0x00, 0x89, 0xff, 0xb7, 0x07, 0x51, 0x00, 0x94,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x95, 0xff, 0xb7, 0x07, 0x51, 0x00, 0x96,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0x97, 0xff, 0xb7, 0x07, 0x51, 0x00, 0x98,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0xa0, 0xff, 0xc1, 0x07, 0x51, 0x00, 0xa1,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0xb2, 0xff, 0xb7, 0x07, 0x51, 0x00, 0xb3,
+ 0xff, 0x90, 0x07, 0x51, 0x00, 0xb4, 0xff, 0x6b, 0x07, 0x51, 0x00, 0xb5,
+ 0xff, 0x6b, 0x07, 0x51, 0x00, 0xb6, 0xff, 0x6b, 0x07, 0x51, 0x00, 0xb7,
+ 0xff, 0x6b, 0x07, 0x51, 0x00, 0xb8, 0xff, 0x6b, 0x07, 0x51, 0x00, 0xbf,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0xc1, 0xff, 0xb7, 0x07, 0x51, 0x00, 0xc8,
+ 0xff, 0xb7, 0x07, 0x51, 0x00, 0xce, 0xff, 0xb7, 0x07, 0x51, 0x00, 0xd0,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0xe0, 0xff, 0xb7, 0x07, 0x51, 0x00, 0xfb,
+ 0xff, 0xc1, 0x07, 0x51, 0x00, 0xff, 0xff, 0xc1, 0x07, 0x51, 0x01, 0x0a,
+ 0xff, 0x90, 0x07, 0x51, 0x01, 0x16, 0xff, 0xc1, 0x07, 0x51, 0x01, 0x17,
+ 0xff, 0x90, 0x07, 0x51, 0x01, 0x1a, 0xff, 0xc1, 0x07, 0x51, 0x01, 0x1b,
+ 0xff, 0x90, 0x07, 0x51, 0x01, 0x3f, 0xff, 0xdc, 0x07, 0x51, 0x0e, 0x78,
+ 0xff, 0xc1, 0x07, 0x53, 0x00, 0x24, 0x00, 0x26, 0x07, 0x53, 0x00, 0x25,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x26, 0xff, 0x90, 0x07, 0x53, 0x00, 0x27,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x29, 0xff, 0xb7, 0x07, 0x53, 0x00, 0x2a,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x2b, 0xff, 0xb7, 0x07, 0x53, 0x00, 0x2d,
+ 0x00, 0x2f, 0x07, 0x53, 0x00, 0x2e, 0xff, 0xb7, 0x07, 0x53, 0x00, 0x2f,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x32, 0xff, 0x90, 0x07, 0x53, 0x00, 0x33,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x34, 0xff, 0x90, 0x07, 0x53, 0x00, 0x35,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x37, 0xfe, 0xe6, 0x07, 0x53, 0x00, 0x39,
+ 0xfe, 0x88, 0x07, 0x53, 0x00, 0x3a, 0xff, 0x03, 0x07, 0x53, 0x00, 0x3b,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x3c, 0xfe, 0x88, 0x07, 0x53, 0x00, 0x49,
+ 0xff, 0xdc, 0x07, 0x53, 0x00, 0x51, 0xff, 0xb7, 0x07, 0x53, 0x00, 0x52,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0x55, 0xff, 0xb7, 0x07, 0x53, 0x00, 0x59,
+ 0xff, 0x15, 0x07, 0x53, 0x00, 0x5a, 0xff, 0x3c, 0x07, 0x53, 0x00, 0x5c,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0x82, 0x00, 0x26, 0x07, 0x53, 0x00, 0x83,
+ 0x00, 0x26, 0x07, 0x53, 0x00, 0x84, 0x00, 0x26, 0x07, 0x53, 0x00, 0x85,
+ 0x00, 0x26, 0x07, 0x53, 0x00, 0x86, 0x00, 0x26, 0x07, 0x53, 0x00, 0x88,
+ 0x00, 0x26, 0x07, 0x53, 0x00, 0x89, 0xff, 0x90, 0x07, 0x53, 0x00, 0x94,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0x95, 0xff, 0x90, 0x07, 0x53, 0x00, 0x96,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0x97, 0xff, 0x90, 0x07, 0x53, 0x00, 0x98,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0x9f, 0xfe, 0x88, 0x07, 0x53, 0x00, 0xa0,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xa1, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb2,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb3, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb4,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb5, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb6,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb7, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xb8,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xbf, 0xff, 0x90, 0x07, 0x53, 0x00, 0xc1,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0xc8, 0xff, 0x90, 0x07, 0x53, 0x00, 0xce,
+ 0xff, 0x90, 0x07, 0x53, 0x00, 0xd0, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xe0,
+ 0xff, 0xb7, 0x07, 0x53, 0x00, 0xfb, 0xff, 0xb7, 0x07, 0x53, 0x00, 0xff,
+ 0xff, 0xb7, 0x07, 0x53, 0x01, 0x0a, 0xff, 0xb7, 0x07, 0x53, 0x01, 0x16,
+ 0xff, 0xb7, 0x07, 0x53, 0x01, 0x17, 0xff, 0xb7, 0x07, 0x53, 0x01, 0x1a,
+ 0xff, 0xb7, 0x07, 0x53, 0x01, 0x1b, 0xff, 0xb7, 0x07, 0x53, 0x01, 0x26,
+ 0xfe, 0xe6, 0x07, 0x53, 0x01, 0x3a, 0xfe, 0x88, 0x07, 0x53, 0x0e, 0x78,
+ 0xff, 0xb7, 0x0e, 0x60, 0x00, 0x10, 0xff, 0x44, 0x0e, 0x60, 0x00, 0x11,
+ 0xff, 0x0d, 0x0e, 0x60, 0x00, 0x1d, 0xff, 0x1f, 0x0e, 0x60, 0x00, 0x24,
+ 0xff, 0x61, 0x0e, 0x60, 0x00, 0x26, 0xff, 0x88, 0x0e, 0x60, 0x00, 0x37,
+ 0xff, 0xdc, 0x0e, 0x60, 0x00, 0x44, 0xfe, 0xad, 0x0e, 0x60, 0x00, 0x46,
+ 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0x48, 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0x4c,
+ 0xff, 0xc1, 0x0e, 0x60, 0x00, 0x52, 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0x55,
+ 0xfe, 0xd3, 0x0e, 0x60, 0x00, 0x56, 0xfe, 0xad, 0x0e, 0x60, 0x00, 0x58,
+ 0xfe, 0xc9, 0x0e, 0x60, 0x00, 0x5a, 0xfe, 0xad, 0x0e, 0x60, 0x00, 0x5c,
+ 0xfe, 0xc1, 0x0e, 0x60, 0x00, 0x6d, 0xff, 0x44, 0x0e, 0x60, 0x00, 0x7d,
+ 0xff, 0x90, 0x0e, 0x60, 0x00, 0x82, 0xff, 0x61, 0x0e, 0x60, 0x00, 0x83,
+ 0xff, 0x61, 0x0e, 0x60, 0x00, 0x84, 0xff, 0x61, 0x0e, 0x60, 0x00, 0x85,
+ 0xff, 0x61, 0x0e, 0x60, 0x00, 0x86, 0xff, 0x61, 0x0e, 0x60, 0x00, 0x89,
+ 0xff, 0x88, 0x0e, 0x60, 0x00, 0xa2, 0xff, 0x11, 0x0e, 0x60, 0x00, 0xa3,
+ 0xfe, 0xad, 0x0e, 0x60, 0x00, 0xa4, 0xff, 0x11, 0x0e, 0x60, 0x00, 0xa5,
+ 0xff, 0x11, 0x0e, 0x60, 0x00, 0xa6, 0xff, 0x11, 0x0e, 0x60, 0x00, 0xa7,
+ 0xff, 0x11, 0x0e, 0x60, 0x00, 0xa9, 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0xaa,
+ 0xfe, 0xe0, 0x0e, 0x60, 0x00, 0xab, 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0xac,
+ 0xfe, 0xe0, 0x0e, 0x60, 0x00, 0xad, 0xfe, 0xe0, 0x0e, 0x60, 0x00, 0xb4,
+ 0xfe, 0xf4, 0x0e, 0x60, 0x00, 0xb5, 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0xb6,
+ 0xfe, 0xf4, 0x0e, 0x60, 0x00, 0xb7, 0xfe, 0xf4, 0x0e, 0x60, 0x00, 0xb8,
+ 0xfe, 0xf4, 0x0e, 0x60, 0x00, 0xbb, 0xfe, 0xe7, 0x0e, 0x60, 0x00, 0xbc,
+ 0xfe, 0xc9, 0x0e, 0x60, 0x00, 0xbd, 0xfe, 0xe7, 0x0e, 0x60, 0x00, 0xbe,
+ 0xfe, 0xe7, 0x0e, 0x60, 0x00, 0xbf, 0xfe, 0xc1, 0x0e, 0x60, 0x00, 0xc1,
+ 0xfe, 0xc1, 0x0e, 0x60, 0x00, 0xc8, 0xff, 0x88, 0x0e, 0x60, 0x00, 0xc9,
+ 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0xce, 0xff, 0x88, 0x0e, 0x60, 0x00, 0xcf,
+ 0xfe, 0xa4, 0x0e, 0x60, 0x00, 0xdd, 0xfe, 0xa4, 0x0e, 0x60, 0x01, 0x17,
+ 0xfe, 0xd3, 0x0e, 0x60, 0x01, 0x1b, 0xfe, 0xd3, 0x0e, 0x60, 0x01, 0x21,
+ 0xfe, 0xad, 0x0e, 0x60, 0x01, 0x23, 0xfe, 0xad, 0x0e, 0x60, 0x01, 0x26,
+ 0xff, 0xdc, 0x0e, 0x60, 0x01, 0x31, 0xfe, 0xc9, 0x0e, 0x60, 0x07, 0x52,
+ 0xff, 0xd3, 0x0e, 0x60, 0x07, 0x53, 0xfe, 0xf8, 0x0e, 0x78, 0x00, 0x10,
+ 0xff, 0x29, 0x0e, 0x78, 0x00, 0x24, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x26,
+ 0xff, 0x90, 0x0e, 0x78, 0x00, 0x32, 0xff, 0x90, 0x0e, 0x78, 0x00, 0x37,
+ 0xff, 0x61, 0x0e, 0x78, 0x00, 0x38, 0xff, 0xc9, 0x0e, 0x78, 0x00, 0x3a,
+ 0xff, 0xb7, 0x0e, 0x78, 0x00, 0x3c, 0xff, 0xb7, 0x0e, 0x78, 0x00, 0x44,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x48, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0x52,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0x58, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0x5c,
+ 0xff, 0x6b, 0x0e, 0x78, 0x00, 0x6d, 0xff, 0x7d, 0x0e, 0x78, 0x00, 0x82,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x83, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x84,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x85, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x86,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0x89, 0xff, 0x90, 0x0e, 0x78, 0x00, 0x94,
+ 0xff, 0x90, 0x0e, 0x78, 0x00, 0x95, 0xff, 0x90, 0x0e, 0x78, 0x00, 0x96,
+ 0xff, 0x90, 0x0e, 0x78, 0x00, 0x97, 0xff, 0x90, 0x0e, 0x78, 0x00, 0x98,
+ 0xff, 0x90, 0x0e, 0x78, 0x00, 0x9b, 0xff, 0xc9, 0x0e, 0x78, 0x00, 0x9c,
+ 0xff, 0xc9, 0x0e, 0x78, 0x00, 0x9d, 0xff, 0xc9, 0x0e, 0x78, 0x00, 0x9e,
+ 0xff, 0xc9, 0x0e, 0x78, 0x00, 0x9f, 0xff, 0xb7, 0x0e, 0x78, 0x00, 0xa2,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xa3, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xa4,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xa5, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xa6,
+ 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xa7, 0xff, 0xdc, 0x0e, 0x78, 0x00, 0xaa,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xab, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xac,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xad, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xb4,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xb5, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xb6,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xb7, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xb8,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xbb, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xbc,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xbd, 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xbe,
+ 0xff, 0x9a, 0x0e, 0x78, 0x00, 0xbf, 0xff, 0x6b, 0x0e, 0x78, 0x00, 0xc1,
+ 0xff, 0x6b, 0x0e, 0x78, 0x00, 0xc8, 0xff, 0x90, 0x0e, 0x78, 0x00, 0xce,
+ 0xff, 0x90, 0x0e, 0x78, 0x00, 0xdd, 0xff, 0x9a, 0x0e, 0x78, 0x01, 0x26,
+ 0xff, 0x61, 0x0e, 0x78, 0x01, 0x30, 0xff, 0xc9, 0x0e, 0x78, 0x01, 0x31,
+ 0xff, 0x9a, 0x0e, 0x78, 0x01, 0x3a, 0xff, 0xb7, 0x0e, 0x78, 0x07, 0x51,
+ 0xff, 0xc1, 0x0e, 0x78, 0x07, 0x52, 0xff, 0xc1, 0x0e, 0x79, 0x00, 0x44,
+ 0xff, 0xdc, 0x0e, 0x79, 0x00, 0x48, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0x52,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0x58, 0xff, 0xc1, 0x0e, 0x79, 0x00, 0x5c,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xa2, 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xa3,
+ 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xa4, 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xa5,
+ 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xa6, 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xa7,
+ 0xff, 0xdc, 0x0e, 0x79, 0x00, 0xaa, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xab,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xac, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xad,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xb4, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xb5,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xb6, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xb7,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xb8, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xbb,
+ 0xff, 0xc1, 0x0e, 0x79, 0x00, 0xbc, 0xff, 0xc1, 0x0e, 0x79, 0x00, 0xbd,
+ 0xff, 0xc1, 0x0e, 0x79, 0x00, 0xbe, 0xff, 0xc1, 0x0e, 0x79, 0x00, 0xbf,
+ 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xc1, 0xff, 0xb7, 0x0e, 0x79, 0x00, 0xdd,
+ 0xff, 0xb7, 0x0e, 0x79, 0x01, 0x31, 0xff, 0xc1, 0x0e, 0xaa, 0x0e, 0xc2,
+ 0xff, 0xd8, 0x0e, 0xab, 0x0e, 0xc2, 0xff, 0xb1, 0x0e, 0xac, 0x0e, 0xc2,
+ 0xff, 0xa3, 0x0e, 0xad, 0x0e, 0xc2, 0xff, 0x9c, 0x0e, 0xae, 0x0e, 0xc2,
+ 0xff, 0xd8, 0x0e, 0xb0, 0x0e, 0xc2, 0xff, 0xd8, 0x0e, 0xb1, 0x0e, 0xc2,
+ 0xff, 0xb1, 0x0e, 0xb2, 0x0e, 0xc2, 0xff, 0xa3, 0x0e, 0xb3, 0x0e, 0xc2,
+ 0xff, 0xb1, 0x0e, 0xb4, 0x0e, 0xc2, 0xff, 0xd8, 0x0e, 0xb6, 0x0e, 0xc2,
+ 0xff, 0xd8, 0x0e, 0xb7, 0x0e, 0xc2, 0xff, 0xb1, 0x0e, 0xb8, 0x0e, 0xc2,
+ 0xff, 0xa3, 0x0e, 0xb9, 0x0e, 0xc2, 0xff, 0xb1, 0x0e, 0xba, 0x0e, 0xc2,
+ 0xff, 0xd8, 0x0e, 0xbc, 0x0e, 0xc2, 0xff, 0xd8, 0x0e, 0xbd, 0x0e, 0xc2,
+ 0xff, 0x9c, 0x0e, 0xbe, 0x0e, 0xc2, 0xff, 0xa3, 0x0e, 0xbf, 0x0e, 0xc2,
+ 0xff, 0xb1, 0x0e, 0xc0, 0x0e, 0xc2, 0xff, 0xd8, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2c,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x01, 0x90, 0x00, 0x00, 0x02, 0x2c,
+ 0x00, 0x00, 0x02, 0xc8, 0x00, 0x00, 0x02, 0xe4, 0x00, 0x00, 0x03, 0x20,
+ 0x00, 0x00, 0x03, 0x58, 0x00, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x03, 0xd8,
+ 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x04, 0x14, 0x00, 0x00, 0x04, 0x2c,
+ 0x00, 0x00, 0x04, 0x48, 0x00, 0x00, 0x04, 0xa4, 0x00, 0x00, 0x04, 0xd4,
+ 0x00, 0x00, 0x05, 0x34, 0x00, 0x00, 0x05, 0xac, 0x00, 0x00, 0x05, 0xe8,
+ 0x00, 0x00, 0x06, 0x48, 0x00, 0x00, 0x06, 0xc0, 0x00, 0x00, 0x06, 0xe8,
+ 0x00, 0x00, 0x07, 0x74, 0x00, 0x00, 0x07, 0xec, 0x00, 0x00, 0x08, 0x10,
+ 0x00, 0x00, 0x08, 0x3c, 0x00, 0x00, 0x08, 0x68, 0x00, 0x00, 0x08, 0x90,
+ 0x00, 0x00, 0x08, 0xb8, 0x00, 0x00, 0x09, 0x2c, 0x00, 0x00, 0x0a, 0x14,
+ 0x00, 0x00, 0x0a, 0x4c, 0x00, 0x00, 0x0a, 0xb8, 0x00, 0x00, 0x0b, 0x14,
+ 0x00, 0x00, 0x0b, 0x64, 0x00, 0x00, 0x0b, 0x94, 0x00, 0x00, 0x0b, 0xc0,
+ 0x00, 0x00, 0x0c, 0x28, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x0c, 0x74,
+ 0x00, 0x00, 0x0c, 0xa0, 0x00, 0x00, 0x0c, 0xd4, 0x00, 0x00, 0x0c, 0xf4,
+ 0x00, 0x00, 0x0d, 0x30, 0x00, 0x00, 0x0d, 0x60, 0x00, 0x00, 0x0d, 0xc4,
+ 0x00, 0x00, 0x0e, 0x08, 0x00, 0x00, 0x0e, 0x7c, 0x00, 0x00, 0x0e, 0xe0,
+ 0x00, 0x00, 0x0f, 0x58, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x0f, 0xc4,
+ 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x10, 0x30, 0x00, 0x00, 0x10, 0x70,
+ 0x00, 0x00, 0x10, 0xa0, 0x00, 0x00, 0x10, 0xd0, 0x00, 0x00, 0x10, 0xf4,
+ 0x00, 0x00, 0x11, 0x14, 0x00, 0x00, 0x11, 0x38, 0x00, 0x00, 0x11, 0x64,
+ 0x00, 0x00, 0x11, 0x80, 0x00, 0x00, 0x11, 0xa0, 0x00, 0x00, 0x12, 0x10,
+ 0x00, 0x00, 0x12, 0x70, 0x00, 0x00, 0x12, 0xc8, 0x00, 0x00, 0x13, 0x28,
+ 0x00, 0x00, 0x13, 0x8c, 0x00, 0x00, 0x13, 0xcc, 0x00, 0x00, 0x14, 0x48,
+ 0x00, 0x00, 0x14, 0x8c, 0x00, 0x00, 0x14, 0xb0, 0x00, 0x00, 0x14, 0xe8,
+ 0x00, 0x00, 0x15, 0x1c, 0x00, 0x00, 0x15, 0x38, 0x00, 0x00, 0x15, 0xa0,
+ 0x00, 0x00, 0x15, 0xe4, 0x00, 0x00, 0x16, 0x38, 0x00, 0x00, 0x16, 0x98,
+ 0x00, 0x00, 0x16, 0xf8, 0x00, 0x00, 0x17, 0x38, 0x00, 0x00, 0x17, 0xb0,
+ 0x00, 0x00, 0x17, 0xf4, 0x00, 0x00, 0x18, 0x3c, 0x00, 0x00, 0x18, 0x64,
+ 0x00, 0x00, 0x18, 0xa0, 0x00, 0x00, 0x18, 0xe0, 0x00, 0x00, 0x19, 0x20,
+ 0x00, 0x00, 0x19, 0x50, 0x00, 0x00, 0x19, 0xb4, 0x00, 0x00, 0x19, 0xd0,
+ 0x00, 0x00, 0x1a, 0x34, 0x00, 0x00, 0x1a, 0x94, 0x00, 0x00, 0x1a, 0x94,
+ 0x00, 0x00, 0x1a, 0xc4, 0x00, 0x00, 0x1b, 0x3c, 0x00, 0x00, 0x1b, 0x94,
+ 0x00, 0x00, 0x1c, 0x28, 0x00, 0x00, 0x1c, 0x84, 0x00, 0x00, 0x1c, 0xb0,
+ 0x00, 0x00, 0x1d, 0x68, 0x00, 0x00, 0x1d, 0x90, 0x00, 0x00, 0x1e, 0x6c,
+ 0x00, 0x00, 0x1e, 0xe8, 0x00, 0x00, 0x1f, 0x2c, 0x00, 0x00, 0x1f, 0x4c,
+ 0x00, 0x00, 0x1f, 0x68, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x20, 0x6c,
+ 0x00, 0x00, 0x20, 0xc4, 0x00, 0x00, 0x21, 0x04, 0x00, 0x00, 0x21, 0x58,
+ 0x00, 0x00, 0x21, 0xcc, 0x00, 0x00, 0x21, 0xe8, 0x00, 0x00, 0x22, 0x4c,
+ 0x00, 0x00, 0x22, 0x84, 0x00, 0x00, 0x22, 0x9c, 0x00, 0x00, 0x22, 0xe0,
+ 0x00, 0x00, 0x23, 0x0c, 0x00, 0x00, 0x23, 0x68, 0x00, 0x00, 0x23, 0xb0,
+ 0x00, 0x00, 0x23, 0xd0, 0x00, 0x00, 0x23, 0xf0, 0x00, 0x00, 0x24, 0x10,
+ 0x00, 0x00, 0x24, 0x84, 0x00, 0x00, 0x24, 0x9c, 0x00, 0x00, 0x24, 0xb4,
+ 0x00, 0x00, 0x24, 0xd0, 0x00, 0x00, 0x24, 0xec, 0x00, 0x00, 0x25, 0x08,
+ 0x00, 0x00, 0x25, 0x7c, 0x00, 0x00, 0x25, 0xcc, 0x00, 0x00, 0x25, 0xe4,
+ 0x00, 0x00, 0x25, 0xfc, 0x00, 0x00, 0x26, 0x14, 0x00, 0x00, 0x26, 0x30,
+ 0x00, 0x00, 0x26, 0x4c, 0x00, 0x00, 0x26, 0x64, 0x00, 0x00, 0x26, 0x7c,
+ 0x00, 0x00, 0x26, 0x98, 0x00, 0x00, 0x26, 0xb4, 0x00, 0x00, 0x27, 0x18,
+ 0x00, 0x00, 0x27, 0x34, 0x00, 0x00, 0x27, 0x4c, 0x00, 0x00, 0x27, 0x64,
+ 0x00, 0x00, 0x27, 0x80, 0x00, 0x00, 0x27, 0x9c, 0x00, 0x00, 0x27, 0xb8,
+ 0x00, 0x00, 0x27, 0xfc, 0x00, 0x00, 0x28, 0x94, 0x00, 0x00, 0x28, 0xac,
+ 0x00, 0x00, 0x28, 0xc4, 0x00, 0x00, 0x28, 0xe0, 0x00, 0x00, 0x28, 0xfc,
+ 0x00, 0x00, 0x29, 0x14, 0x00, 0x00, 0x29, 0x5c, 0x00, 0x00, 0x29, 0xe8,
+ 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x18, 0x00, 0x00, 0x2a, 0x30,
+ 0x00, 0x00, 0x2a, 0x48, 0x00, 0x00, 0x2a, 0x60, 0x00, 0x00, 0x2a, 0x78,
+ 0x00, 0x00, 0x2b, 0x30, 0x00, 0x00, 0x2b, 0x48, 0x00, 0x00, 0x2b, 0x60,
+ 0x00, 0x00, 0x2b, 0x78, 0x00, 0x00, 0x2b, 0x90, 0x00, 0x00, 0x2b, 0xa8,
+ 0x00, 0x00, 0x2b, 0xc0, 0x00, 0x00, 0x2b, 0xd8, 0x00, 0x00, 0x2b, 0xf4,
+ 0x00, 0x00, 0x2c, 0x10, 0x00, 0x00, 0x2c, 0x98, 0x00, 0x00, 0x2c, 0xb0,
+ 0x00, 0x00, 0x2c, 0xc8, 0x00, 0x00, 0x2c, 0xe0, 0x00, 0x00, 0x2c, 0xf8,
+ 0x00, 0x00, 0x2d, 0x10, 0x00, 0x00, 0x2d, 0x28, 0x00, 0x00, 0x2d, 0x5c,
+ 0x00, 0x00, 0x2d, 0xec, 0x00, 0x00, 0x2e, 0x04, 0x00, 0x00, 0x2e, 0x1c,
+ 0x00, 0x00, 0x2e, 0x34, 0x00, 0x00, 0x2e, 0x4c, 0x00, 0x00, 0x2e, 0x64,
+ 0x00, 0x00, 0x2e, 0xc4, 0x00, 0x00, 0x2e, 0xdc, 0x00, 0x00, 0x2e, 0xf8,
+ 0x00, 0x00, 0x2f, 0x10, 0x00, 0x00, 0x2f, 0x2c, 0x00, 0x00, 0x2f, 0x44,
+ 0x00, 0x00, 0x2f, 0x5c, 0x00, 0x00, 0x2f, 0x74, 0x00, 0x00, 0x2f, 0x8c,
+ 0x00, 0x00, 0x2f, 0xa4, 0x00, 0x00, 0x2f, 0xc0, 0x00, 0x00, 0x2f, 0xd8,
+ 0x00, 0x00, 0x2f, 0xf0, 0x00, 0x00, 0x30, 0x08, 0x00, 0x00, 0x30, 0x24,
+ 0x00, 0x00, 0x30, 0x3c, 0x00, 0x00, 0x30, 0x54, 0x00, 0x00, 0x30, 0x70,
+ 0x00, 0x00, 0x30, 0x80, 0x00, 0x00, 0x30, 0xf4, 0x00, 0x00, 0x31, 0x0c,
+ 0x00, 0x00, 0x31, 0x28, 0x00, 0x00, 0x31, 0x44, 0x00, 0x00, 0x31, 0x60,
+ 0x00, 0x00, 0x31, 0x78, 0x00, 0x00, 0x31, 0x90, 0x00, 0x00, 0x31, 0xa8,
+ 0x00, 0x00, 0x31, 0xc0, 0x00, 0x00, 0x31, 0xdc, 0x00, 0x00, 0x31, 0xf8,
+ 0x00, 0x00, 0x32, 0x14, 0x00, 0x00, 0x32, 0x2c, 0x00, 0x00, 0x32, 0x44,
+ 0x00, 0x00, 0x32, 0x5c, 0x00, 0x00, 0x32, 0x78, 0x00, 0x00, 0x32, 0x90,
+ 0x00, 0x00, 0x32, 0xa8, 0x00, 0x00, 0x32, 0xc0, 0x00, 0x00, 0x32, 0xdc,
+ 0x00, 0x00, 0x32, 0xf8, 0x00, 0x00, 0x33, 0x44, 0x00, 0x00, 0x33, 0x9c,
+ 0x00, 0x00, 0x33, 0xb8, 0x00, 0x00, 0x33, 0xd4, 0x00, 0x00, 0x33, 0xf0,
+ 0x00, 0x00, 0x34, 0x0c, 0x00, 0x00, 0x34, 0x28, 0x00, 0x00, 0x34, 0x44,
+ 0x00, 0x00, 0x34, 0x5c, 0x00, 0x00, 0x34, 0x74, 0x00, 0x00, 0x34, 0x90,
+ 0x00, 0x00, 0x34, 0xb0, 0x00, 0x00, 0x34, 0xcc, 0x00, 0x00, 0x34, 0xe8,
+ 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x35, 0x20, 0x00, 0x00, 0x35, 0x38,
+ 0x00, 0x00, 0x35, 0x50, 0x00, 0x00, 0x35, 0x84, 0x00, 0x00, 0x35, 0x9c,
+ 0x00, 0x00, 0x35, 0xb8, 0x00, 0x00, 0x35, 0xd0, 0x00, 0x00, 0x35, 0xec,
+ 0x00, 0x00, 0x36, 0x04, 0x00, 0x00, 0x36, 0x20, 0x00, 0x00, 0x36, 0x38,
+ 0x00, 0x00, 0x36, 0x54, 0x00, 0x00, 0x36, 0x90, 0x00, 0x00, 0x36, 0xc4,
+ 0x00, 0x00, 0x36, 0xe0, 0x00, 0x00, 0x36, 0xf8, 0x00, 0x00, 0x37, 0x10,
+ 0x00, 0x00, 0x37, 0x28, 0x00, 0x00, 0x37, 0x44, 0x00, 0x00, 0x37, 0x5c,
+ 0x00, 0x00, 0x37, 0x74, 0x00, 0x00, 0x37, 0xd0, 0x00, 0x00, 0x38, 0x30,
+ 0x00, 0x00, 0x38, 0x4c, 0x00, 0x00, 0x38, 0x64, 0x00, 0x00, 0x38, 0x80,
+ 0x00, 0x00, 0x38, 0x98, 0x00, 0x00, 0x38, 0xb0, 0x00, 0x00, 0x38, 0xc8,
+ 0x00, 0x00, 0x39, 0x2c, 0x00, 0x00, 0x39, 0xcc, 0x00, 0x00, 0x39, 0xe4,
+ 0x00, 0x00, 0x39, 0xfc, 0x00, 0x00, 0x3a, 0x14, 0x00, 0x00, 0x3a, 0x2c,
+ 0x00, 0x00, 0x3a, 0x48, 0x00, 0x00, 0x3a, 0x60, 0x00, 0x00, 0x3a, 0x78,
+ 0x00, 0x00, 0x3a, 0x90, 0x00, 0x00, 0x3a, 0xac, 0x00, 0x00, 0x3a, 0xc4,
+ 0x00, 0x00, 0x3a, 0xdc, 0x00, 0x00, 0x3a, 0xf4, 0x00, 0x00, 0x3b, 0x10,
+ 0x00, 0x00, 0x3b, 0x2c, 0x00, 0x00, 0x3b, 0x44, 0x00, 0x00, 0x3b, 0x5c,
+ 0x00, 0x00, 0x3b, 0x78, 0x00, 0x00, 0x3b, 0x94, 0x00, 0x00, 0x3b, 0xcc,
+ 0x00, 0x00, 0x3c, 0x24, 0x00, 0x00, 0x3c, 0x40, 0x00, 0x00, 0x3c, 0x58,
+ 0x00, 0x00, 0x3c, 0x74, 0x00, 0x00, 0x3c, 0x8c, 0x00, 0x00, 0x3c, 0xa8,
+ 0x00, 0x00, 0x3c, 0xc0, 0x00, 0x00, 0x3c, 0xd8, 0x00, 0x00, 0x3c, 0xf0,
+ 0x00, 0x00, 0x3d, 0x08, 0x00, 0x00, 0x3d, 0x20, 0x00, 0x00, 0x3d, 0x38,
+ 0x00, 0x00, 0x3d, 0x50, 0x00, 0x00, 0x3d, 0x6c, 0x00, 0x00, 0x3d, 0x88,
+ 0x00, 0x00, 0x3d, 0xa4, 0x00, 0x00, 0x3d, 0xbc, 0x00, 0x00, 0x3d, 0xd8,
+ 0x00, 0x00, 0x3d, 0xf0, 0x00, 0x00, 0x3e, 0x08, 0x00, 0x00, 0x3e, 0x20,
+ 0x00, 0x00, 0x3e, 0x3c, 0x00, 0x00, 0x3e, 0x54, 0x00, 0x00, 0x3e, 0x6c,
+ 0x00, 0x00, 0x3e, 0xa4, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x00, 0x3f, 0xb0,
+ 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x40, 0x3c, 0x00, 0x00, 0x40, 0x94,
+ 0x00, 0x00, 0x40, 0xfc, 0x00, 0x00, 0x41, 0x58, 0x00, 0x00, 0x41, 0xd0,
+ 0x00, 0x00, 0x42, 0x3c, 0x00, 0x00, 0x42, 0x4c, 0x00, 0x00, 0x42, 0xb4,
+ 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x43, 0x64, 0x00, 0x00, 0x43, 0xe4,
+ 0x00, 0x00, 0x44, 0x18, 0x00, 0x00, 0x44, 0x80, 0x00, 0x00, 0x44, 0xf8,
+ 0x00, 0x00, 0x45, 0x38, 0x00, 0x00, 0x45, 0x8c, 0x00, 0x00, 0x46, 0x08,
+ 0x00, 0x00, 0x46, 0x88, 0x00, 0x00, 0x47, 0x08, 0x00, 0x00, 0x47, 0x34,
+ 0x00, 0x00, 0x47, 0x60, 0x00, 0x00, 0x47, 0xb8, 0x00, 0x00, 0x48, 0x00,
+ 0x00, 0x00, 0x48, 0x2c, 0x00, 0x00, 0x48, 0x74, 0x00, 0x00, 0x48, 0xec,
+ 0x00, 0x00, 0x49, 0x2c, 0x00, 0x00, 0x49, 0x3c, 0x00, 0x00, 0x49, 0xac,
+ 0x00, 0x00, 0x49, 0xc4, 0x00, 0x00, 0x49, 0xdc, 0x00, 0x00, 0x4a, 0x50,
+ 0x00, 0x00, 0x4a, 0xc0, 0x00, 0x00, 0x4b, 0x1c, 0x00, 0x00, 0x4b, 0x8c,
+ 0x00, 0x00, 0x4b, 0xf0, 0x00, 0x00, 0x4c, 0x5c, 0x00, 0x00, 0x4c, 0xd4,
+ 0x00, 0x00, 0x4c, 0xe4, 0x00, 0x00, 0x4d, 0x48, 0x00, 0x00, 0x4d, 0xa0,
+ 0x00, 0x00, 0x4d, 0xd8, 0x00, 0x00, 0x4e, 0x2c, 0x00, 0x00, 0x4e, 0x64,
+ 0x00, 0x00, 0x4e, 0x7c, 0x00, 0x00, 0x4e, 0x94, 0x00, 0x00, 0x4f, 0x04,
+ 0x00, 0x00, 0x4f, 0x64, 0x00, 0x00, 0x4f, 0xbc, 0x00, 0x00, 0x50, 0x24,
+ 0x00, 0x00, 0x50, 0x6c, 0x00, 0x00, 0x50, 0xb0, 0x00, 0x00, 0x51, 0x20,
+ 0x00, 0x00, 0x51, 0x90, 0x00, 0x00, 0x51, 0xfc, 0x00, 0x00, 0x52, 0x68,
+ 0x00, 0x00, 0x52, 0xdc, 0x00, 0x00, 0x53, 0x38, 0x00, 0x00, 0x53, 0x90,
+ 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x54, 0x54, 0x00, 0x00, 0x54, 0x70,
+ 0x00, 0x00, 0x54, 0x88, 0x00, 0x00, 0x54, 0xcc, 0x00, 0x00, 0x54, 0xdc,
+ 0x00, 0x00, 0x54, 0xf4, 0x00, 0x00, 0x55, 0x0c, 0x00, 0x00, 0x55, 0x24,
+ 0x00, 0x00, 0x55, 0x3c, 0x00, 0x00, 0x55, 0x54, 0x00, 0x00, 0x55, 0x6c,
+ 0x00, 0x00, 0x55, 0x84, 0x00, 0x00, 0x55, 0x9c, 0x00, 0x00, 0x55, 0xb4,
+ 0x00, 0x00, 0x55, 0xd0, 0x00, 0x00, 0x55, 0xe8, 0x00, 0x00, 0x56, 0x04,
+ 0x00, 0x00, 0x56, 0x20, 0x00, 0x00, 0x56, 0x38, 0x00, 0x00, 0x56, 0x50,
+ 0x00, 0x00, 0x56, 0x6c, 0x00, 0x00, 0x56, 0x84, 0x00, 0x00, 0x56, 0x9c,
+ 0x00, 0x00, 0x56, 0xb4, 0x00, 0x00, 0x56, 0xcc, 0x00, 0x00, 0x56, 0xe4,
+ 0x00, 0x00, 0x56, 0xfc, 0x00, 0x00, 0x57, 0x14, 0x00, 0x00, 0x57, 0x2c,
+ 0x00, 0x00, 0x57, 0x44, 0x00, 0x00, 0x57, 0x54, 0x00, 0x00, 0x57, 0x6c,
+ 0x00, 0x00, 0x57, 0x84, 0x00, 0x00, 0x57, 0x9c, 0x00, 0x00, 0x57, 0xb4,
+ 0x00, 0x00, 0x57, 0xcc, 0x00, 0x00, 0x57, 0xe4, 0x00, 0x00, 0x58, 0x5c,
+ 0x00, 0x00, 0x58, 0xf8, 0x00, 0x00, 0x59, 0x14, 0x00, 0x00, 0x59, 0x2c,
+ 0x00, 0x00, 0x59, 0x44, 0x00, 0x00, 0x59, 0x60, 0x00, 0x00, 0x59, 0x78,
+ 0x00, 0x00, 0x59, 0x90, 0x00, 0x00, 0x59, 0xa8, 0x00, 0x00, 0x59, 0xc0,
+ 0x00, 0x00, 0x59, 0xd8, 0x00, 0x00, 0x59, 0xf0, 0x00, 0x00, 0x5a, 0x0c,
+ 0x00, 0x00, 0x5a, 0x24, 0x00, 0x00, 0x5a, 0x3c, 0x00, 0x00, 0x5a, 0x54,
+ 0x00, 0x00, 0x5a, 0x6c, 0x00, 0x00, 0x5a, 0x84, 0x00, 0x00, 0x5a, 0xe4,
+ 0x00, 0x00, 0x5b, 0x3c, 0x00, 0x00, 0x5b, 0x54, 0x00, 0x00, 0x5b, 0x6c,
+ 0x00, 0x00, 0x5b, 0x84, 0x00, 0x00, 0x5b, 0x9c, 0x00, 0x00, 0x5b, 0xb4,
+ 0x00, 0x00, 0x5b, 0xcc, 0x00, 0x00, 0x5b, 0xe4, 0x00, 0x00, 0x5b, 0xfc,
+ 0x00, 0x00, 0x5c, 0x14, 0x00, 0x00, 0x5c, 0x2c, 0x00, 0x00, 0x5c, 0x44,
+ 0x00, 0x00, 0x5c, 0x5c, 0x00, 0x00, 0x5c, 0x74, 0x00, 0x00, 0x5c, 0x8c,
+ 0x00, 0x00, 0x5c, 0xa4, 0x00, 0x00, 0x5c, 0xbc, 0x00, 0x00, 0x5c, 0xd4,
+ 0x00, 0x00, 0x5c, 0xec, 0x00, 0x00, 0x5d, 0x04, 0x00, 0x00, 0x5d, 0x1c,
+ 0x00, 0x00, 0x5d, 0x34, 0x00, 0x00, 0x5d, 0x4c, 0x00, 0x00, 0x5d, 0x64,
+ 0x00, 0x00, 0x5d, 0x7c, 0x00, 0x00, 0x5d, 0x94, 0x00, 0x00, 0x5d, 0xac,
+ 0x00, 0x00, 0x5d, 0xc4, 0x00, 0x00, 0x5d, 0xdc, 0x00, 0x00, 0x5d, 0xf4,
+ 0x00, 0x00, 0x5e, 0x0c, 0x00, 0x00, 0x5e, 0x24, 0x00, 0x00, 0x5e, 0x3c,
+ 0x00, 0x00, 0x5e, 0x54, 0x00, 0x00, 0x5e, 0x6c, 0x00, 0x00, 0x5e, 0x84,
+ 0x00, 0x00, 0x5e, 0x9c, 0x00, 0x00, 0x5f, 0x24, 0x00, 0x00, 0x5f, 0xb4,
+ 0x00, 0x00, 0x5f, 0xcc, 0x00, 0x00, 0x5f, 0xe8, 0x00, 0x00, 0x60, 0x2c,
+ 0x00, 0x00, 0x60, 0xd0, 0x00, 0x00, 0x61, 0x84, 0x00, 0x00, 0x62, 0x28,
+ 0x00, 0x00, 0x62, 0x74, 0x00, 0x00, 0x62, 0xc0, 0x00, 0x00, 0x62, 0xd8,
+ 0x00, 0x00, 0x62, 0xf0, 0x00, 0x00, 0x63, 0x08, 0x00, 0x00, 0x63, 0x20,
+ 0x00, 0x00, 0x63, 0x38, 0x00, 0x00, 0x63, 0x50, 0x00, 0x00, 0x63, 0x68,
+ 0x00, 0x00, 0x63, 0x80, 0x00, 0x00, 0x63, 0x98, 0x00, 0x00, 0x63, 0xb0,
+ 0x00, 0x00, 0x63, 0xc8, 0x00, 0x00, 0x63, 0xe0, 0x00, 0x00, 0x63, 0xf8,
+ 0x00, 0x00, 0x64, 0x10, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00, 0x64, 0xe8,
+ 0x00, 0x00, 0x65, 0x50, 0x00, 0x00, 0x65, 0x7c, 0x00, 0x00, 0x66, 0x1c,
+ 0x00, 0x00, 0x66, 0xbc, 0x00, 0x00, 0x67, 0x28, 0x00, 0x00, 0x67, 0xbc,
+ 0x00, 0x00, 0x68, 0x48, 0x00, 0x00, 0x68, 0x7c, 0x00, 0x00, 0x68, 0xd0,
+ 0x00, 0x00, 0x69, 0x88, 0x00, 0x00, 0x69, 0xe0, 0x00, 0x00, 0x6a, 0x2c,
+ 0x00, 0x00, 0x6a, 0x7c, 0x00, 0x00, 0x6a, 0xfc, 0x00, 0x00, 0x6b, 0x5c,
+ 0x00, 0x00, 0x6b, 0x6c, 0x00, 0x00, 0x6b, 0xd4, 0x00, 0x00, 0x6c, 0x80,
+ 0x00, 0x00, 0x6c, 0xc0, 0x00, 0x00, 0x6d, 0x08, 0x00, 0x00, 0x6d, 0x84,
+ 0x00, 0x00, 0x6d, 0xf8, 0x00, 0x00, 0x6e, 0x64, 0x00, 0x00, 0x6e, 0xb4,
+ 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6f, 0x60, 0x00, 0x00, 0x6f, 0xd0,
+ 0x00, 0x00, 0x70, 0x30, 0x00, 0x00, 0x70, 0x90, 0x00, 0x00, 0x71, 0x04,
+ 0x00, 0x00, 0x71, 0x5c, 0x00, 0x00, 0x71, 0xec, 0x00, 0x00, 0x72, 0x60,
+ 0x00, 0x00, 0x72, 0xd0, 0x00, 0x00, 0x73, 0x44, 0x00, 0x00, 0x73, 0xa4,
+ 0x00, 0x00, 0x74, 0x4c, 0x00, 0x00, 0x74, 0x5c, 0x00, 0x00, 0x74, 0x6c,
+ 0x00, 0x00, 0x75, 0x1c, 0x00, 0x00, 0x75, 0xac, 0x00, 0x00, 0x75, 0xec,
+ 0x00, 0x00, 0x76, 0x7c, 0x00, 0x00, 0x76, 0xf0, 0x00, 0x00, 0x77, 0x50,
+ 0x00, 0x00, 0x77, 0xcc, 0x00, 0x00, 0x78, 0x48, 0x00, 0x00, 0x78, 0x8c,
+ 0x00, 0x00, 0x78, 0xe0, 0x00, 0x00, 0x79, 0x44, 0x00, 0x00, 0x79, 0x7c,
+ 0x00, 0x00, 0x79, 0x8c, 0x00, 0x00, 0x79, 0xb8, 0x00, 0x00, 0x7a, 0x28,
+ 0x00, 0x00, 0x7a, 0x78, 0x00, 0x00, 0x7a, 0xa8, 0x00, 0x00, 0x7b, 0x1c,
+ 0x00, 0x00, 0x7b, 0x90, 0x00, 0x00, 0x7c, 0x04, 0x00, 0x00, 0x7c, 0x90,
+ 0x00, 0x00, 0x7c, 0xe4, 0x00, 0x00, 0x7d, 0x40, 0x00, 0x00, 0x7d, 0x70,
+ 0x00, 0x00, 0x7d, 0xd4, 0x00, 0x00, 0x7e, 0x38, 0x00, 0x00, 0x7e, 0xb8,
+ 0x00, 0x00, 0x7e, 0xc8, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x38,
+ 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x80, 0x10,
+ 0x00, 0x00, 0x80, 0x48, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0xe4,
+ 0x00, 0x00, 0x81, 0x44, 0x00, 0x00, 0x81, 0xd0, 0x00, 0x00, 0x82, 0x10,
+ 0x00, 0x00, 0x82, 0x6c, 0x00, 0x00, 0x82, 0xac, 0x00, 0x00, 0x83, 0x0c,
+ 0x00, 0x00, 0x83, 0x50, 0x00, 0x00, 0x83, 0x94, 0x00, 0x00, 0x83, 0xf4,
+ 0x00, 0x00, 0x84, 0x58, 0x00, 0x00, 0x84, 0xbc, 0x00, 0x00, 0x84, 0xe4,
+ 0x00, 0x00, 0x85, 0x1c, 0x00, 0x00, 0x85, 0x64, 0x00, 0x00, 0x85, 0x94,
+ 0x00, 0x00, 0x85, 0xd8, 0x00, 0x00, 0x86, 0x48, 0x00, 0x00, 0x86, 0xb0,
+ 0x00, 0x00, 0x87, 0x40, 0x00, 0x00, 0x87, 0x9c, 0x00, 0x00, 0x87, 0xfc,
+ 0x00, 0x00, 0x88, 0x5c, 0x00, 0x00, 0x88, 0xcc, 0x00, 0x00, 0x89, 0x54,
+ 0x00, 0x00, 0x89, 0x64, 0x00, 0x00, 0x89, 0xf8, 0x00, 0x00, 0x8a, 0x70,
+ 0x00, 0x00, 0x8a, 0x80, 0x00, 0x00, 0x8a, 0xd4, 0x00, 0x00, 0x8b, 0x0c,
+ 0x00, 0x00, 0x8b, 0x2c, 0x00, 0x00, 0x8b, 0xa0, 0x00, 0x00, 0x8c, 0x10,
+ 0x00, 0x00, 0x8c, 0x80, 0x00, 0x00, 0x8d, 0x10, 0x00, 0x00, 0x8d, 0xd8,
+ 0x00, 0x00, 0x8e, 0x94, 0x00, 0x00, 0x8f, 0x38, 0x00, 0x00, 0x8f, 0xc4,
+ 0x00, 0x00, 0x90, 0x94, 0x00, 0x00, 0x91, 0x28, 0x00, 0x00, 0x91, 0xa0,
+ 0x00, 0x00, 0x91, 0xdc, 0x00, 0x00, 0x92, 0x40, 0x00, 0x00, 0x92, 0x80,
+ 0x00, 0x00, 0x92, 0xd0, 0x00, 0x00, 0x93, 0x34, 0x00, 0x00, 0x93, 0x78,
+ 0x00, 0x00, 0x93, 0xcc, 0x00, 0x00, 0x94, 0x08, 0x00, 0x00, 0x94, 0x48,
+ 0x00, 0x00, 0x94, 0x88, 0x00, 0x00, 0x94, 0xdc, 0x00, 0x00, 0x95, 0x48,
+ 0x00, 0x00, 0x95, 0x80, 0x00, 0x00, 0x95, 0xc4, 0x00, 0x00, 0x95, 0xd4,
+ 0x00, 0x00, 0x95, 0xec, 0x00, 0x00, 0x95, 0xfc, 0x00, 0x00, 0x96, 0x0c,
+ 0x00, 0x00, 0x96, 0x30, 0x00, 0x00, 0x96, 0x64, 0x00, 0x00, 0x96, 0x9c,
+ 0x00, 0x00, 0x96, 0xf8, 0x00, 0x00, 0x97, 0x58, 0x00, 0x00, 0x97, 0x80,
+ 0x00, 0x00, 0x97, 0xa8, 0x00, 0x00, 0x97, 0xd0, 0x00, 0x00, 0x97, 0xf8,
+ 0x00, 0x00, 0x98, 0x1c, 0x00, 0x00, 0x98, 0x44, 0x00, 0x00, 0x98, 0x60,
+ 0x00, 0x00, 0x98, 0x70, 0x00, 0x00, 0x98, 0x8c, 0x00, 0x00, 0x98, 0xac,
+ 0x00, 0x00, 0x98, 0xc8, 0x00, 0x00, 0x98, 0xdc, 0x00, 0x00, 0x98, 0xfc,
+ 0x00, 0x00, 0x99, 0x18, 0x00, 0x00, 0x99, 0x40, 0x00, 0x00, 0x99, 0x5c,
+ 0x00, 0x00, 0x99, 0x70, 0x00, 0x00, 0x99, 0x84, 0x00, 0x00, 0x99, 0xa8,
+ 0x00, 0x00, 0x99, 0xcc, 0x00, 0x00, 0x99, 0xf8, 0x00, 0x00, 0x9a, 0x14,
+ 0x00, 0x00, 0x9a, 0x48, 0x00, 0x00, 0x9a, 0x64, 0x00, 0x00, 0x9a, 0xb0,
+ 0x00, 0x00, 0x9a, 0xf0, 0x00, 0x00, 0x9b, 0x4c, 0x00, 0x00, 0x9b, 0x78,
+ 0x00, 0x00, 0x9b, 0xb0, 0x00, 0x00, 0x9b, 0xe4, 0x00, 0x00, 0x9c, 0x30,
+ 0x00, 0x00, 0x9c, 0x4c, 0x00, 0x00, 0x9c, 0xe4, 0x00, 0x00, 0x9d, 0x1c,
+ 0x00, 0x00, 0x9d, 0x2c, 0x00, 0x00, 0x9d, 0x4c, 0x00, 0x00, 0x9d, 0x70,
+ 0x00, 0x00, 0x9d, 0x94, 0x00, 0x00, 0x9d, 0xb8, 0x00, 0x00, 0x9d, 0xd8,
+ 0x00, 0x00, 0x9d, 0xec, 0x00, 0x00, 0x9e, 0x04, 0x00, 0x00, 0x9e, 0x14,
+ 0x00, 0x00, 0x9e, 0x28, 0x00, 0x00, 0x9e, 0x94, 0x00, 0x00, 0x9e, 0xbc,
+ 0x00, 0x00, 0x9e, 0xe0, 0x00, 0x00, 0x9f, 0x0c, 0x00, 0x00, 0x9f, 0x20,
+ 0x00, 0x00, 0x9f, 0x34, 0x00, 0x00, 0x9f, 0x48, 0x00, 0x00, 0x9f, 0x5c,
+ 0x00, 0x00, 0x9f, 0x7c, 0x00, 0x00, 0x9f, 0xa8, 0x00, 0x00, 0x9f, 0xfc,
+ 0x00, 0x00, 0xa0, 0x10, 0x00, 0x00, 0xa0, 0x24, 0x00, 0x00, 0xa0, 0x50,
+ 0x00, 0x00, 0xa0, 0x6c, 0x00, 0x00, 0xa0, 0x88, 0x00, 0x00, 0xa0, 0xb4,
+ 0x00, 0x00, 0xa0, 0xd0, 0x00, 0x00, 0xa1, 0x04, 0x00, 0x00, 0xa1, 0x20,
+ 0x00, 0x00, 0xa1, 0x48, 0x00, 0x00, 0xa1, 0x6c, 0x00, 0x00, 0xa1, 0x88,
+ 0x00, 0x00, 0xa1, 0x9c, 0x00, 0x00, 0xa1, 0xb0, 0x00, 0x00, 0xa1, 0xd4,
+ 0x00, 0x00, 0xa1, 0xf4, 0x00, 0x00, 0xa2, 0x14, 0x00, 0x00, 0xa2, 0x58,
+ 0x00, 0x00, 0xa2, 0x8c, 0x00, 0x00, 0xa2, 0xb0, 0x00, 0x00, 0xa2, 0xd4,
+ 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa3, 0x1c, 0x00, 0x00, 0xa3, 0x4c,
+ 0x00, 0x00, 0xa3, 0x7c, 0x00, 0x00, 0xa3, 0x94, 0x00, 0x00, 0xa3, 0xa8,
+ 0x00, 0x00, 0xa3, 0xf4, 0x00, 0x00, 0xa4, 0x10, 0x00, 0x00, 0xa4, 0x24,
+ 0x00, 0x00, 0xa4, 0x38, 0x00, 0x00, 0xa4, 0x54, 0x00, 0x00, 0xa4, 0x78,
+ 0x00, 0x00, 0xa4, 0xc0, 0x00, 0x00, 0xa4, 0xd4, 0x00, 0x00, 0xa4, 0xe8,
+ 0x00, 0x00, 0xa4, 0xfc, 0x00, 0x00, 0xa5, 0x30, 0x00, 0x00, 0xa5, 0x44,
+ 0x00, 0x00, 0xa5, 0x58, 0x00, 0x00, 0xa5, 0x6c, 0x00, 0x00, 0xa5, 0x80,
+ 0x00, 0x00, 0xa5, 0xdc, 0x00, 0x00, 0xa5, 0xf8, 0x00, 0x00, 0xa6, 0x14,
+ 0x00, 0x00, 0xa6, 0x34, 0x00, 0x00, 0xa6, 0x54, 0x00, 0x00, 0xa6, 0x84,
+ 0x00, 0x00, 0xa6, 0xa8, 0x00, 0x00, 0xa6, 0xd0, 0x00, 0x00, 0xa7, 0x18,
+ 0x00, 0x00, 0xa7, 0x4c, 0x00, 0x00, 0xa7, 0xac, 0x00, 0x00, 0xa7, 0xc8,
+ 0x00, 0x00, 0xa7, 0xdc, 0x00, 0x00, 0xa7, 0xf0, 0x00, 0x00, 0xa8, 0x04,
+ 0x00, 0x00, 0xa8, 0x14, 0x00, 0x00, 0xa8, 0x28, 0x00, 0x00, 0xa8, 0x3c,
+ 0x00, 0x00, 0xa8, 0x60, 0x00, 0x00, 0xa8, 0x88, 0x00, 0x00, 0xa8, 0xb0,
+ 0x00, 0x00, 0xa8, 0xd0, 0x00, 0x00, 0xa9, 0x4c, 0x00, 0x00, 0xa9, 0xc0,
+ 0x00, 0x00, 0xa9, 0xd8, 0x00, 0x00, 0xaa, 0x10, 0x00, 0x00, 0xaa, 0x38,
+ 0x00, 0x00, 0xaa, 0x38, 0x00, 0x00, 0xaa, 0x78, 0x00, 0x00, 0xaa, 0x90,
+ 0x00, 0x00, 0xaa, 0xa4, 0x00, 0x00, 0xaa, 0xe4, 0x00, 0x00, 0xaa, 0xf8,
+ 0x00, 0x00, 0xab, 0x5c, 0x00, 0x00, 0xab, 0x70, 0x00, 0x00, 0xab, 0x84,
+ 0x00, 0x00, 0xab, 0xa0, 0x00, 0x00, 0xab, 0xbc, 0x00, 0x00, 0xac, 0x30,
+ 0x00, 0x00, 0xac, 0x44, 0x00, 0x00, 0xac, 0x6c, 0x00, 0x00, 0xac, 0x7c,
+ 0x00, 0x00, 0xac, 0x8c, 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0xac, 0xec,
+ 0x00, 0x00, 0xad, 0x08, 0x00, 0x00, 0xad, 0x24, 0x00, 0x00, 0xad, 0x34,
+ 0x00, 0x00, 0xad, 0x44, 0x00, 0x00, 0xad, 0x78, 0x00, 0x00, 0xad, 0x88,
+ 0x00, 0x00, 0xad, 0xa0, 0x00, 0x00, 0xad, 0xb8, 0x00, 0x00, 0xad, 0xc8,
+ 0x00, 0x00, 0xad, 0xe4, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xae, 0x18,
+ 0x00, 0x00, 0xae, 0x28, 0x00, 0x00, 0xae, 0x44, 0x00, 0x00, 0xae, 0x60,
+ 0x00, 0x00, 0xae, 0x7c, 0x00, 0x00, 0xae, 0x94, 0x00, 0x00, 0xae, 0xb0,
+ 0x00, 0x00, 0xae, 0xc8, 0x00, 0x00, 0xae, 0xe0, 0x00, 0x00, 0xae, 0xf0,
+ 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xaf, 0x20, 0x00, 0x00, 0xaf, 0x50,
+ 0x00, 0x00, 0xaf, 0x60, 0x00, 0x00, 0xaf, 0x70, 0x00, 0x00, 0xaf, 0x80,
+ 0x00, 0x00, 0xaf, 0xfc, 0x00, 0x00, 0xb0, 0x0c, 0x00, 0x00, 0xb0, 0x1c,
+ 0x00, 0x00, 0xb0, 0x44, 0x00, 0x00, 0xb0, 0x54, 0x00, 0x00, 0xb0, 0x64,
+ 0x00, 0x00, 0xb0, 0x9c, 0x00, 0x00, 0xb0, 0xac, 0x00, 0x00, 0xb0, 0xbc,
+ 0x00, 0x00, 0xb0, 0xcc, 0x00, 0x00, 0xb1, 0x04, 0x00, 0x00, 0xb1, 0x14,
+ 0x00, 0x00, 0xb1, 0x24, 0x00, 0x00, 0xb1, 0xa8, 0x00, 0x00, 0xb1, 0xb8,
+ 0x00, 0x00, 0xb2, 0x20, 0x00, 0x00, 0xb2, 0x9c, 0x00, 0x00, 0xb2, 0xb8,
+ 0x00, 0x00, 0xb2, 0xd4, 0x00, 0x00, 0xb2, 0xec, 0x00, 0x00, 0xb3, 0x04,
+ 0x00, 0x00, 0xb3, 0x1c, 0x00, 0x00, 0xb3, 0x34, 0x00, 0x00, 0xb3, 0x4c,
+ 0x00, 0x00, 0xb3, 0xd4, 0x00, 0x00, 0xb4, 0x38, 0x00, 0x00, 0xb4, 0x78,
+ 0x00, 0x00, 0xb5, 0x08, 0x00, 0x00, 0xb5, 0x9c, 0x00, 0x00, 0xb6, 0x00,
+ 0x00, 0x00, 0xb6, 0x48, 0x00, 0x00, 0xb6, 0xc4, 0x00, 0x00, 0xb6, 0xf8,
+ 0x00, 0x00, 0xb7, 0x30, 0x00, 0x00, 0xb7, 0x70, 0x00, 0x00, 0xb7, 0x80,
+ 0x00, 0x00, 0xb7, 0xd0, 0x00, 0x00, 0xb8, 0x4c, 0x00, 0x00, 0xb8, 0x5c,
+ 0x00, 0x00, 0xb8, 0xa8, 0x00, 0x00, 0xb9, 0x0c, 0x00, 0x00, 0xb9, 0x80,
+ 0x00, 0x00, 0xb9, 0xe4, 0x00, 0x00, 0xba, 0x20, 0x00, 0x00, 0xba, 0x80,
+ 0x00, 0x00, 0xbb, 0x04, 0x00, 0x00, 0xbb, 0x60, 0x00, 0x00, 0xbb, 0xbc,
+ 0x00, 0x00, 0xbc, 0x18, 0x00, 0x00, 0xbc, 0x30, 0x00, 0x00, 0xbc, 0x48,
+ 0x00, 0x00, 0xbc, 0x60, 0x00, 0x00, 0xbc, 0x78, 0x00, 0x00, 0xbc, 0x90,
+ 0x00, 0x00, 0xbc, 0xcc, 0x00, 0x00, 0xbd, 0x54, 0x00, 0x00, 0xbd, 0xc4,
+ 0x00, 0x00, 0xbe, 0x34, 0x00, 0x00, 0xbe, 0x50, 0x00, 0x00, 0xbe, 0x68,
+ 0x00, 0x00, 0xbe, 0xf0, 0x00, 0x00, 0xbf, 0x58, 0x00, 0x00, 0xc0, 0x04,
+ 0x00, 0x00, 0xc0, 0x78, 0x00, 0x00, 0xc0, 0xe4, 0x00, 0x00, 0xc1, 0x58,
+ 0x00, 0x00, 0xc1, 0xc0, 0x00, 0x00, 0xc1, 0xd0, 0x00, 0x00, 0xc2, 0x48,
+ 0x00, 0x00, 0xc2, 0xa4, 0x00, 0x00, 0xc2, 0xd0, 0x00, 0x00, 0xc3, 0x44,
+ 0x00, 0x00, 0xc3, 0xa0, 0x00, 0x00, 0xc4, 0x60, 0x00, 0x00, 0xc4, 0xe0,
+ 0x00, 0x00, 0xc5, 0x48, 0x00, 0x00, 0xc5, 0xa8, 0x00, 0x00, 0xc6, 0x24,
+ 0x00, 0x00, 0xc7, 0x0c, 0x00, 0x00, 0xc7, 0x80, 0x00, 0x00, 0xc7, 0xec,
+ 0x00, 0x00, 0xc8, 0x9c, 0x00, 0x00, 0xc9, 0x4c, 0x00, 0x00, 0xc9, 0xe0,
+ 0x00, 0x00, 0xca, 0x78, 0x00, 0x00, 0xca, 0xb0, 0x00, 0x00, 0xca, 0xe8,
+ 0x00, 0x00, 0xcb, 0x84, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x10,
+ 0x00, 0x00, 0xcc, 0x20, 0x00, 0x00, 0xcc, 0x30, 0x00, 0x00, 0xcc, 0x9c,
+ 0x00, 0x00, 0xcd, 0x08, 0x00, 0x00, 0xcd, 0x18, 0x00, 0x00, 0xcd, 0x28,
+ 0x00, 0x00, 0xcd, 0x38, 0x00, 0x00, 0xcd, 0x74, 0x00, 0x00, 0xcd, 0xac,
+ 0x00, 0x00, 0xce, 0x2c, 0x00, 0x00, 0xce, 0x3c, 0x00, 0x00, 0xce, 0x54,
+ 0x00, 0x00, 0xce, 0x6c, 0x00, 0x00, 0xce, 0x84, 0x00, 0x00, 0xce, 0xa0,
+ 0x00, 0x00, 0xce, 0xf8, 0x00, 0x00, 0xcf, 0x10, 0x00, 0x00, 0xcf, 0x68,
+ 0x00, 0x00, 0xcf, 0x78, 0x00, 0x00, 0xcf, 0x88, 0x00, 0x00, 0xcf, 0x98,
+ 0x00, 0x00, 0xcf, 0xa8, 0x00, 0x00, 0xd0, 0x0c, 0x00, 0x00, 0xd0, 0x68,
+ 0x00, 0x00, 0xd0, 0xac, 0x00, 0x00, 0xd0, 0xc4, 0x00, 0x00, 0xd0, 0xdc,
+ 0x00, 0x00, 0xd0, 0xf4, 0x00, 0x00, 0xd1, 0x24, 0x00, 0x00, 0xd1, 0x34,
+ 0x00, 0x00, 0xd1, 0x84, 0x00, 0x00, 0xd1, 0x94, 0x00, 0x00, 0xd1, 0xb4,
+ 0x00, 0x00, 0xd2, 0x0c, 0x00, 0x00, 0xd2, 0x1c, 0x00, 0x00, 0xd2, 0x74,
+ 0x00, 0x00, 0xd2, 0xec, 0x00, 0x00, 0xd3, 0x1c, 0x00, 0x00, 0xd3, 0x38,
+ 0x00, 0x00, 0xd3, 0x70, 0x00, 0x00, 0xd3, 0xac, 0x00, 0x00, 0xd3, 0xbc,
+ 0x00, 0x00, 0xd3, 0xcc, 0x00, 0x00, 0xd3, 0xdc, 0x00, 0x00, 0xd4, 0x04,
+ 0x00, 0x00, 0xd4, 0x14, 0x00, 0x00, 0xd4, 0x24, 0x00, 0x00, 0xd4, 0x34,
+ 0x00, 0x00, 0xd4, 0x78, 0x00, 0x00, 0xd4, 0xf0, 0x00, 0x00, 0xd5, 0x00,
+ 0x00, 0x00, 0xd5, 0x30, 0x00, 0x00, 0xd5, 0x68, 0x00, 0x00, 0xd5, 0x98,
+ 0x00, 0x00, 0xd5, 0xd4, 0x00, 0x00, 0xd6, 0x28, 0x00, 0x00, 0xd6, 0x40,
+ 0x00, 0x00, 0xd6, 0x90, 0x00, 0x00, 0xd6, 0xe8, 0x00, 0x00, 0xd7, 0x70,
+ 0x00, 0x00, 0xd7, 0xc4, 0x00, 0x00, 0xd7, 0xd4, 0x00, 0x00, 0xd8, 0x60,
+ 0x00, 0x00, 0xd8, 0xcc, 0x00, 0x00, 0xd8, 0xec, 0x00, 0x00, 0xd9, 0x40,
+ 0x00, 0x00, 0xd9, 0x50, 0x00, 0x00, 0xd9, 0xa8, 0x00, 0x00, 0xda, 0x1c,
+ 0x00, 0x00, 0xda, 0x4c, 0x00, 0x00, 0xda, 0x68, 0x00, 0x00, 0xda, 0xa0,
+ 0x00, 0x00, 0xda, 0xdc, 0x00, 0x00, 0xdb, 0x18, 0x00, 0x00, 0xdb, 0x48,
+ 0x00, 0x00, 0xdb, 0x58, 0x00, 0x00, 0xdb, 0x80, 0x00, 0x00, 0xdb, 0x90,
+ 0x00, 0x00, 0xdb, 0xa0, 0x00, 0x00, 0xdb, 0xc8, 0x00, 0x00, 0xdb, 0xd8,
+ 0x00, 0x00, 0xdc, 0x80, 0x00, 0x00, 0xdc, 0x90, 0x00, 0x00, 0xdc, 0xc0,
+ 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdd, 0x30, 0x00, 0x00, 0xdd, 0x6c,
+ 0x00, 0x00, 0xdd, 0xb8, 0x00, 0x00, 0xdd, 0xd0, 0x00, 0x00, 0xde, 0x18,
+ 0x00, 0x00, 0xde, 0x6c, 0x00, 0x00, 0xde, 0xd4, 0x00, 0x00, 0xdf, 0x28,
+ 0x00, 0x00, 0xdf, 0x40, 0x00, 0x00, 0xdf, 0x5c, 0x00, 0x00, 0xdf, 0xc0,
+ 0x00, 0x00, 0xdf, 0xd8, 0x00, 0x00, 0xe0, 0x30, 0x00, 0x00, 0xe0, 0x40,
+ 0x00, 0x00, 0xe0, 0x50, 0x00, 0x00, 0xe0, 0x60, 0x00, 0x00, 0xe0, 0x70,
+ 0x00, 0x00, 0xe0, 0xd4, 0x00, 0x00, 0xe1, 0x30, 0x00, 0x00, 0xe1, 0x88,
+ 0x00, 0x00, 0xe1, 0xa0, 0x00, 0x00, 0xe1, 0xb8, 0x00, 0x00, 0xe1, 0xd0,
+ 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe2, 0xa0, 0x00, 0x00, 0xe2, 0xb0,
+ 0x00, 0x00, 0xe3, 0x10, 0x00, 0x00, 0xe3, 0x68, 0x00, 0x00, 0xe3, 0xf4,
+ 0x00, 0x00, 0xe4, 0x64, 0x00, 0x00, 0xe4, 0xa4, 0x00, 0x00, 0xe4, 0xe4,
+ 0x00, 0x00, 0xe5, 0x3c, 0x00, 0x00, 0xe5, 0x94, 0x00, 0x00, 0xe5, 0xfc,
+ 0x00, 0x00, 0xe6, 0x64, 0x00, 0x00, 0xe6, 0xe0, 0x00, 0x00, 0xe7, 0x58,
+ 0x00, 0x00, 0xe8, 0x44, 0x00, 0x00, 0xe9, 0x20, 0x00, 0x00, 0xe9, 0x84,
+ 0x00, 0x00, 0xe9, 0xe8, 0x00, 0x00, 0xe9, 0xf8, 0x00, 0x00, 0xea, 0x08,
+ 0x00, 0x00, 0xea, 0x54, 0x00, 0x00, 0xea, 0xa4, 0x00, 0x00, 0xea, 0xbc,
+ 0x00, 0x00, 0xea, 0xd4, 0x00, 0x00, 0xeb, 0x78, 0x00, 0x00, 0xeb, 0xfc,
+ 0x00, 0x00, 0xec, 0xf4, 0x00, 0x00, 0xed, 0xdc, 0x00, 0x00, 0xee, 0xb8,
+ 0x00, 0x00, 0xef, 0x68, 0x00, 0x00, 0xef, 0x80, 0x00, 0x00, 0xef, 0x98,
+ 0x00, 0x00, 0xef, 0xfc, 0x00, 0x00, 0xf0, 0x58, 0x00, 0x00, 0xf0, 0xa4,
+ 0x00, 0x00, 0xf1, 0x3c, 0x00, 0x00, 0xf1, 0x70, 0x00, 0x00, 0xf1, 0x98,
+ 0x00, 0x00, 0xf1, 0xc0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf3, 0x44,
+ 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf4, 0x18, 0x00, 0x00, 0xf4, 0x30,
+ 0x00, 0x00, 0xf4, 0x90, 0x00, 0x00, 0xf4, 0xf4, 0x00, 0x00, 0xf5, 0x54,
+ 0x00, 0x00, 0xf5, 0xd8, 0x00, 0x00, 0xf5, 0xfc, 0x00, 0x00, 0xf6, 0x20,
+ 0x00, 0x00, 0xf6, 0x54, 0x00, 0x00, 0xf6, 0x88, 0x00, 0x00, 0xf6, 0xe0,
+ 0x00, 0x00, 0xf7, 0x3c, 0x00, 0x00, 0xf7, 0xa0, 0x00, 0x00, 0xf8, 0x00,
+ 0x00, 0x00, 0xf8, 0x18, 0x00, 0x00, 0xf8, 0x30, 0x00, 0x00, 0xf8, 0x74,
+ 0x00, 0x00, 0xf8, 0xb8, 0x00, 0x00, 0xf9, 0x04, 0x00, 0x00, 0xf9, 0x4c,
+ 0x00, 0x00, 0xf9, 0x98, 0x00, 0x00, 0xf9, 0xe4, 0x00, 0x00, 0xfa, 0x24,
+ 0x00, 0x00, 0xfa, 0x64, 0x00, 0x00, 0xfa, 0xa0, 0x00, 0x00, 0xfa, 0xdc,
+ 0x00, 0x00, 0xfb, 0x14, 0x00, 0x00, 0xfb, 0x4c, 0x00, 0x00, 0xfb, 0xac,
+ 0x00, 0x00, 0xfc, 0x10, 0x00, 0x00, 0xfd, 0x04, 0x00, 0x00, 0xfd, 0xe0,
+ 0x00, 0x00, 0xfd, 0xf8, 0x00, 0x00, 0xfe, 0x10, 0x00, 0x00, 0xfe, 0x40,
+ 0x00, 0x00, 0xfe, 0x70, 0x00, 0x00, 0xfe, 0x80, 0x00, 0x00, 0xfe, 0xb0,
+ 0x00, 0x00, 0xfe, 0xf4, 0x00, 0x00, 0xff, 0x34, 0x00, 0x00, 0xff, 0x7c,
+ 0x00, 0x00, 0xff, 0xc4, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3c,
+ 0x00, 0x01, 0x00, 0x84, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x01, 0x01, 0x1c,
+ 0x00, 0x01, 0x01, 0x68, 0x00, 0x01, 0x01, 0xa4, 0x00, 0x01, 0x01, 0xb4,
+ 0x00, 0x01, 0x02, 0x44, 0x00, 0x01, 0x02, 0xd4, 0x00, 0x01, 0x03, 0x6c,
+ 0x00, 0x01, 0x04, 0x04, 0x00, 0x01, 0x04, 0x14, 0x00, 0x01, 0x04, 0x2c,
+ 0x00, 0x01, 0x04, 0x44, 0x00, 0x01, 0x04, 0xa0, 0x00, 0x01, 0x05, 0x00,
+ 0x00, 0x01, 0x05, 0x4c, 0x00, 0x01, 0x05, 0x98, 0x00, 0x01, 0x05, 0xe0,
+ 0x00, 0x01, 0x06, 0x28, 0x00, 0x01, 0x06, 0x64, 0x00, 0x01, 0x06, 0xa0,
+ 0x00, 0x01, 0x06, 0xe8, 0x00, 0x01, 0x07, 0x30, 0x00, 0x01, 0x07, 0x7c,
+ 0x00, 0x01, 0x07, 0xc4, 0x00, 0x01, 0x07, 0xd4, 0x00, 0x01, 0x07, 0xf0,
+ 0x00, 0x01, 0x08, 0x08, 0x00, 0x01, 0x08, 0x24, 0x00, 0x01, 0x08, 0x3c,
+ 0x00, 0x01, 0x08, 0x4c, 0x00, 0x01, 0x08, 0x5c, 0x00, 0x01, 0x08, 0x78,
+ 0x00, 0x01, 0x08, 0x94, 0x00, 0x01, 0x08, 0xa4, 0x00, 0x01, 0x08, 0xb4,
+ 0x00, 0x01, 0x08, 0xcc, 0x00, 0x01, 0x08, 0xe4, 0x00, 0x01, 0x08, 0xfc,
+ 0x00, 0x01, 0x09, 0x14, 0x00, 0x01, 0x09, 0x2c, 0x00, 0x01, 0x09, 0x44,
+ 0x00, 0x01, 0x09, 0x54, 0x00, 0x01, 0x09, 0x64, 0x00, 0x01, 0x09, 0x7c,
+ 0x00, 0x01, 0x09, 0x94, 0x00, 0x01, 0x09, 0xac, 0x00, 0x01, 0x09, 0xc4,
+ 0x00, 0x01, 0x09, 0xe0, 0x00, 0x01, 0x09, 0xf8, 0x00, 0x01, 0x0a, 0x08,
+ 0x00, 0x01, 0x0a, 0x18, 0x00, 0x01, 0x0a, 0x30, 0x00, 0x01, 0x0a, 0x48,
+ 0x00, 0x01, 0x0a, 0x60, 0x00, 0x01, 0x0a, 0x78, 0x00, 0x01, 0x0a, 0x90,
+ 0x00, 0x01, 0x0a, 0xa8, 0x00, 0x01, 0x0a, 0xc0, 0x00, 0x01, 0x0a, 0xd8,
+ 0x00, 0x01, 0x0a, 0xf0, 0x00, 0x01, 0x0b, 0x08, 0x00, 0x01, 0x0b, 0x20,
+ 0x00, 0x01, 0x0b, 0x38, 0x00, 0x01, 0x0b, 0x60, 0x00, 0x01, 0x0b, 0x88,
+ 0x00, 0x01, 0x0b, 0xa0, 0x00, 0x01, 0x0b, 0xb8, 0x00, 0x01, 0x0c, 0x08,
+ 0x00, 0x01, 0x0c, 0x58, 0x00, 0x01, 0x0c, 0xb8, 0x00, 0x01, 0x0d, 0x18,
+ 0x00, 0x01, 0x0d, 0x68, 0x00, 0x01, 0x0d, 0xb8, 0x00, 0x01, 0x0e, 0x08,
+ 0x00, 0x01, 0x0e, 0x5c, 0x00, 0x01, 0x0e, 0xf0, 0x00, 0x01, 0x0f, 0x80,
+ 0x00, 0x01, 0x10, 0x20, 0x00, 0x01, 0x10, 0xbc, 0x00, 0x01, 0x11, 0x38,
+ 0x00, 0x01, 0x11, 0xb4, 0x00, 0x01, 0x12, 0x24, 0x00, 0x01, 0x12, 0x90,
+ 0x00, 0x01, 0x12, 0xa0, 0x00, 0x01, 0x12, 0xfc, 0x00, 0x01, 0x13, 0x5c,
+ 0x00, 0x01, 0x13, 0xb4, 0x00, 0x01, 0x14, 0x08, 0x00, 0x01, 0x14, 0x5c,
+ 0x00, 0x01, 0x14, 0x6c, 0x00, 0x01, 0x14, 0x7c, 0x00, 0x01, 0x14, 0xcc,
+ 0x00, 0x01, 0x15, 0x1c, 0x00, 0x01, 0x15, 0x80, 0x00, 0x01, 0x15, 0xe8,
+ 0x00, 0x01, 0x16, 0x48, 0x00, 0x01, 0x16, 0xc0, 0x00, 0x01, 0x17, 0x28,
+ 0x00, 0x01, 0x17, 0xc0, 0x00, 0x01, 0x17, 0xd0, 0x00, 0x01, 0x17, 0xe0,
+ 0x00, 0x01, 0x17, 0xf0, 0x00, 0x01, 0x18, 0x00, 0x00, 0x01, 0x18, 0x54,
+ 0x00, 0x01, 0x18, 0xa0, 0x00, 0x01, 0x19, 0x14, 0x00, 0x01, 0x19, 0x88,
+ 0x00, 0x01, 0x19, 0xf0, 0x00, 0x01, 0x1a, 0x5c, 0x00, 0x01, 0x1a, 0x8c,
+ 0x00, 0x01, 0x1a, 0xbc, 0x00, 0x01, 0x1a, 0xf4, 0x00, 0x01, 0x1b, 0x44,
+ 0x00, 0x01, 0x1c, 0x1c, 0x00, 0x01, 0x1c, 0x88, 0x00, 0x01, 0x1c, 0x98,
+ 0x00, 0x01, 0x1c, 0xe0, 0x00, 0x01, 0x1d, 0x38, 0x00, 0x01, 0x1d, 0x68,
+ 0x00, 0x01, 0x1d, 0xf8, 0x00, 0x01, 0x1e, 0x1c, 0x00, 0x01, 0x1e, 0x58,
+ 0x00, 0x01, 0x1e, 0x68, 0x00, 0x01, 0x1e, 0xa0, 0x00, 0x01, 0x1e, 0xb0,
+ 0x00, 0x01, 0x1e, 0xc0, 0x00, 0x01, 0x1e, 0xd0, 0x00, 0x01, 0x1e, 0xe0,
+ 0x00, 0x01, 0x1f, 0x34, 0x00, 0x01, 0x1f, 0x88, 0x00, 0x01, 0x20, 0x18,
+ 0x00, 0x01, 0x20, 0xd4, 0x00, 0x01, 0x21, 0x0c, 0x00, 0x01, 0x21, 0x44,
+ 0x00, 0x01, 0x21, 0x88, 0x00, 0x01, 0x21, 0xf8, 0x00, 0x01, 0x22, 0x68,
+ 0x00, 0x01, 0x22, 0x78, 0x00, 0x01, 0x22, 0xb0, 0x00, 0x01, 0x22, 0xf4,
+ 0x00, 0x01, 0x23, 0x50, 0x00, 0x01, 0x23, 0xc4, 0x00, 0x01, 0x23, 0xd4,
+ 0x00, 0x01, 0x23, 0xe4, 0x00, 0x01, 0x23, 0xf4, 0x00, 0x01, 0x24, 0x44,
+ 0x00, 0x01, 0x24, 0x64, 0x00, 0x01, 0x24, 0x74, 0x00, 0x01, 0x24, 0x9c,
+ 0x00, 0x01, 0x24, 0xac, 0x00, 0x01, 0x25, 0x08, 0x00, 0x01, 0x25, 0x18,
+ 0x00, 0x01, 0x25, 0x4c, 0x00, 0x01, 0x25, 0x98, 0x00, 0x01, 0x26, 0x14,
+ 0x00, 0x01, 0x26, 0x5c, 0x00, 0x01, 0x26, 0x8c, 0x00, 0x01, 0x26, 0xbc,
+ 0x00, 0x01, 0x27, 0x2c, 0x00, 0x01, 0x27, 0x5c, 0x00, 0x01, 0x27, 0x78,
+ 0x00, 0x01, 0x27, 0xa8, 0x00, 0x01, 0x27, 0xdc, 0x00, 0x01, 0x27, 0xfc,
+ 0x00, 0x01, 0x28, 0x34, 0x00, 0x01, 0x28, 0x64, 0x00, 0x01, 0x28, 0x94,
+ 0x00, 0x01, 0x28, 0xf4, 0x00, 0x01, 0x29, 0xb0, 0x00, 0x01, 0x29, 0xfc,
+ 0x00, 0x01, 0x2a, 0x68, 0x00, 0x01, 0x2a, 0x90, 0x00, 0x01, 0x2a, 0xd4,
+ 0x00, 0x01, 0x2b, 0x0c, 0x00, 0x01, 0x2b, 0x8c, 0x00, 0x01, 0x2c, 0x14,
+ 0x00, 0x01, 0x2c, 0x7c, 0x00, 0x01, 0x2d, 0x54, 0x00, 0x01, 0x2d, 0xb8,
+ 0x00, 0x01, 0x2e, 0x20, 0x00, 0x01, 0x2e, 0x94, 0x00, 0x01, 0x2e, 0xf0,
+ 0x00, 0x01, 0x2f, 0x84, 0x00, 0x01, 0x30, 0x14, 0x00, 0x01, 0x30, 0xa8,
+ 0x00, 0x01, 0x30, 0xcc, 0x00, 0x01, 0x31, 0x00, 0x00, 0x01, 0x31, 0x68,
+ 0x00, 0x01, 0x31, 0xc8, 0x00, 0x01, 0x32, 0x14, 0x00, 0x01, 0x32, 0x7c,
+ 0x00, 0x01, 0x32, 0xb8, 0x00, 0x01, 0x32, 0xf0, 0x00, 0x01, 0x33, 0x54,
+ 0x00, 0x01, 0x33, 0x94, 0x00, 0x01, 0x33, 0xe0, 0x00, 0x01, 0x34, 0x2c,
+ 0x00, 0x01, 0x34, 0xa8, 0x00, 0x01, 0x34, 0xcc, 0x00, 0x01, 0x35, 0x2c,
+ 0x00, 0x01, 0x35, 0x64, 0x00, 0x01, 0x35, 0xec, 0x00, 0x01, 0x36, 0x68,
+ 0x00, 0x01, 0x36, 0xc0, 0x00, 0x01, 0x36, 0xd4, 0x00, 0x01, 0x36, 0xe8,
+ 0x00, 0x01, 0x36, 0xfc, 0x00, 0x01, 0x37, 0x10, 0x00, 0x01, 0x37, 0x24,
+ 0x00, 0x01, 0x37, 0x38, 0x00, 0x01, 0x37, 0x94, 0x00, 0x01, 0x37, 0xa8,
+ 0x00, 0x01, 0x37, 0xbc, 0x00, 0x01, 0x38, 0x38, 0x00, 0x01, 0x38, 0x48,
+ 0x00, 0x01, 0x38, 0x88, 0x00, 0x01, 0x39, 0x14, 0x00, 0x01, 0x39, 0x50,
+ 0x00, 0x01, 0x39, 0xb8, 0x00, 0x01, 0x3a, 0x18, 0x00, 0x01, 0x3a, 0x9c,
+ 0x00, 0x01, 0x3b, 0x2c, 0x00, 0x01, 0x3b, 0xbc, 0x00, 0x01, 0x3c, 0x00,
+ 0x00, 0x01, 0x3c, 0x44, 0x00, 0x01, 0x3c, 0xcc, 0x00, 0x01, 0x3d, 0x18,
+ 0x00, 0x01, 0x3d, 0x50, 0x00, 0x01, 0x3d, 0x80, 0x00, 0x01, 0x3d, 0xac,
+ 0x00, 0x01, 0x3d, 0xe8, 0x00, 0x01, 0x3e, 0x40, 0x00, 0x01, 0x3e, 0x74,
+ 0x00, 0x01, 0x3e, 0xb4, 0x00, 0x01, 0x3e, 0xd4, 0x00, 0x01, 0x3f, 0x6c,
+ 0x00, 0x01, 0x3f, 0xe8, 0x00, 0x01, 0x40, 0x48, 0x00, 0x01, 0x40, 0xac,
+ 0x00, 0x01, 0x40, 0xdc, 0x00, 0x01, 0x41, 0x4c, 0x00, 0x01, 0x41, 0xdc,
+ 0x00, 0x01, 0x42, 0x84, 0x00, 0x01, 0x42, 0xd4, 0x00, 0x01, 0x43, 0x2c,
+ 0x00, 0x01, 0x43, 0x94, 0x00, 0x01, 0x44, 0x08, 0x00, 0x01, 0x44, 0x4c,
+ 0x00, 0x01, 0x44, 0xb0, 0x00, 0x01, 0x44, 0xd8, 0x00, 0x01, 0x45, 0x08,
+ 0x00, 0x01, 0x45, 0x54, 0x00, 0x01, 0x45, 0xac, 0x00, 0x01, 0x46, 0x14,
+ 0x00, 0x01, 0x46, 0x80, 0x00, 0x01, 0x46, 0xa0, 0x00, 0x01, 0x46, 0xc4,
+ 0x00, 0x01, 0x46, 0xe8, 0x00, 0x01, 0x47, 0x08, 0x00, 0x01, 0x47, 0x34,
+ 0x00, 0x01, 0x47, 0x64, 0x00, 0x01, 0x47, 0x7c, 0x00, 0x01, 0x47, 0x94,
+ 0x00, 0x01, 0x47, 0xac, 0x00, 0x01, 0x47, 0xc4, 0x00, 0x01, 0x47, 0xdc,
+ 0x00, 0x01, 0x47, 0xf4, 0x00, 0x01, 0x48, 0x0c, 0x00, 0x01, 0x48, 0x24,
+ 0x00, 0x01, 0x48, 0x3c, 0x00, 0x01, 0x48, 0x54, 0x00, 0x01, 0x48, 0x6c,
+ 0x00, 0x01, 0x48, 0x84, 0x00, 0x01, 0x48, 0x9c, 0x00, 0x01, 0x48, 0xb4,
+ 0x00, 0x01, 0x48, 0xcc, 0x00, 0x01, 0x48, 0xe4, 0x00, 0x01, 0x48, 0xfc,
+ 0x00, 0x01, 0x49, 0x14, 0x00, 0x01, 0x49, 0x2c, 0x00, 0x01, 0x49, 0x44,
+ 0x00, 0x01, 0x49, 0x5c, 0x00, 0x01, 0x49, 0x74, 0x00, 0x01, 0x49, 0x8c,
+ 0x00, 0x01, 0x49, 0xa4, 0x00, 0x01, 0x49, 0xbc, 0x00, 0x01, 0x49, 0xd4,
+ 0x00, 0x01, 0x49, 0xec, 0x00, 0x01, 0x4a, 0x04, 0x00, 0x01, 0x4a, 0x24,
+ 0x00, 0x01, 0x4a, 0x40, 0x00, 0x01, 0x4a, 0x58, 0x00, 0x01, 0x4a, 0x70,
+ 0x00, 0x01, 0x4a, 0x88, 0x00, 0x01, 0x4a, 0xa0, 0x00, 0x01, 0x4a, 0xb8,
+ 0x00, 0x01, 0x4a, 0xd0, 0x00, 0x01, 0x4a, 0xe8, 0x00, 0x01, 0x4b, 0x00,
+ 0x00, 0x01, 0x4b, 0x18, 0x00, 0x01, 0x4b, 0x30, 0x00, 0x01, 0x4b, 0x48,
+ 0x00, 0x01, 0x4b, 0x60, 0x00, 0x01, 0x4b, 0x78, 0x00, 0x01, 0x4b, 0x90,
+ 0x00, 0x01, 0x4b, 0xa8, 0x00, 0x01, 0x4b, 0xc0, 0x00, 0x01, 0x4b, 0xd8,
+ 0x00, 0x01, 0x4b, 0xf0, 0x00, 0x01, 0x4c, 0x08, 0x00, 0x01, 0x4c, 0x20,
+ 0x00, 0x01, 0x4c, 0x38, 0x00, 0x01, 0x4c, 0x50, 0x00, 0x01, 0x4c, 0x68,
+ 0x00, 0x01, 0x4c, 0x80, 0x00, 0x01, 0x4c, 0x98, 0x00, 0x01, 0x4c, 0xb0,
+ 0x00, 0x01, 0x4c, 0xd0, 0x00, 0x01, 0x4c, 0xe8, 0x00, 0x01, 0x4d, 0x00,
+ 0x00, 0x01, 0x4d, 0x18, 0x00, 0x01, 0x4d, 0x30, 0x00, 0x01, 0x4d, 0x48,
+ 0x00, 0x01, 0x4d, 0x60, 0x00, 0x01, 0x4d, 0x78, 0x00, 0x01, 0x4d, 0x90,
+ 0x00, 0x01, 0x4d, 0xa8, 0x00, 0x01, 0x4d, 0xc0, 0x00, 0x01, 0x4d, 0xd8,
+ 0x00, 0x01, 0x4d, 0xf0, 0x00, 0x01, 0x4e, 0x08, 0x00, 0x01, 0x4e, 0x20,
+ 0x00, 0x01, 0x4e, 0x38, 0x00, 0x01, 0x4e, 0x50, 0x00, 0x01, 0x4e, 0x68,
+ 0x00, 0x01, 0x4e, 0x80, 0x00, 0x01, 0x4e, 0x98, 0x00, 0x01, 0x4e, 0xb0,
+ 0x00, 0x01, 0x4e, 0xc8, 0x00, 0x01, 0x4e, 0xe0, 0x00, 0x01, 0x4f, 0x00,
+ 0x00, 0x01, 0x4f, 0x18, 0x00, 0x01, 0x4f, 0x30, 0x00, 0x01, 0x4f, 0x48,
+ 0x00, 0x01, 0x4f, 0x60, 0x00, 0x01, 0x4f, 0x78, 0x00, 0x01, 0x4f, 0x90,
+ 0x00, 0x01, 0x4f, 0xa8, 0x00, 0x01, 0x4f, 0xc0, 0x00, 0x01, 0x4f, 0xd8,
+ 0x00, 0x01, 0x4f, 0xf0, 0x00, 0x01, 0x50, 0x08, 0x00, 0x01, 0x50, 0x20,
+ 0x00, 0x01, 0x50, 0x38, 0x00, 0x01, 0x50, 0x50, 0x00, 0x01, 0x50, 0x68,
+ 0x00, 0x01, 0x50, 0x80, 0x00, 0x01, 0x50, 0x98, 0x00, 0x01, 0x50, 0xb0,
+ 0x00, 0x01, 0x50, 0xc8, 0x00, 0x01, 0x50, 0xe0, 0x00, 0x01, 0x51, 0x00,
+ 0x00, 0x01, 0x51, 0x20, 0x00, 0x01, 0x51, 0x38, 0x00, 0x01, 0x51, 0x50,
+ 0x00, 0x01, 0x51, 0x68, 0x00, 0x01, 0x51, 0x80, 0x00, 0x01, 0x51, 0x98,
+ 0x00, 0x01, 0x51, 0xb0, 0x00, 0x01, 0x51, 0xc8, 0x00, 0x01, 0x51, 0xe0,
+ 0x00, 0x01, 0x51, 0xf8, 0x00, 0x01, 0x52, 0x10, 0x00, 0x01, 0x52, 0x28,
+ 0x00, 0x01, 0x52, 0x40, 0x00, 0x01, 0x52, 0x58, 0x00, 0x01, 0x52, 0x70,
+ 0x00, 0x01, 0x52, 0x88, 0x00, 0x01, 0x52, 0xa0, 0x00, 0x01, 0x52, 0xb8,
+ 0x00, 0x01, 0x52, 0xd0, 0x00, 0x01, 0x52, 0xe8, 0x00, 0x01, 0x53, 0x00,
+ 0x00, 0x01, 0x53, 0x18, 0x00, 0x01, 0x53, 0x30, 0x00, 0x01, 0x53, 0x48,
+ 0x00, 0x01, 0x53, 0x60, 0x00, 0x01, 0x53, 0x78, 0x00, 0x01, 0x53, 0x90,
+ 0x00, 0x01, 0x53, 0xa8, 0x00, 0x01, 0x53, 0xc0, 0x00, 0x01, 0x53, 0xd8,
+ 0x00, 0x01, 0x53, 0xf0, 0x00, 0x01, 0x54, 0x08, 0x00, 0x01, 0x54, 0x20,
+ 0x00, 0x01, 0x54, 0x38, 0x00, 0x01, 0x54, 0x50, 0x00, 0x01, 0x54, 0x68,
+ 0x00, 0x01, 0x54, 0x80, 0x00, 0x01, 0x54, 0x98, 0x00, 0x01, 0x54, 0xb0,
+ 0x00, 0x01, 0x54, 0xc8, 0x00, 0x01, 0x54, 0xe0, 0x00, 0x01, 0x54, 0xf8,
+ 0x00, 0x01, 0x55, 0x10, 0x00, 0x01, 0x55, 0x28, 0x00, 0x01, 0x55, 0x40,
+ 0x00, 0x01, 0x55, 0x58, 0x00, 0x01, 0x55, 0x70, 0x00, 0x01, 0x55, 0x88,
+ 0x00, 0x01, 0x55, 0xa0, 0x00, 0x01, 0x55, 0xb8, 0x00, 0x01, 0x55, 0xd0,
+ 0x00, 0x01, 0x55, 0xe8, 0x00, 0x01, 0x56, 0x00, 0x00, 0x01, 0x56, 0x18,
+ 0x00, 0x01, 0x56, 0x30, 0x00, 0x01, 0x56, 0x80, 0x00, 0x01, 0x56, 0xc8,
+ 0x00, 0x01, 0x57, 0x60, 0x00, 0x01, 0x57, 0x70, 0x00, 0x01, 0x57, 0x88,
+ 0x00, 0x01, 0x57, 0xa0, 0x00, 0x01, 0x57, 0xb8, 0x00, 0x01, 0x57, 0xd0,
+ 0x00, 0x01, 0x57, 0xe8, 0x00, 0x01, 0x58, 0x00, 0x00, 0x01, 0x58, 0x18,
+ 0x00, 0x01, 0x58, 0x30, 0x00, 0x01, 0x58, 0x48, 0x00, 0x01, 0x58, 0x60,
+ 0x00, 0x01, 0x58, 0x78, 0x00, 0x01, 0x58, 0x90, 0x00, 0x01, 0x58, 0xa8,
+ 0x00, 0x01, 0x58, 0xc0, 0x00, 0x01, 0x58, 0xd8, 0x00, 0x01, 0x58, 0xf0,
+ 0x00, 0x01, 0x59, 0x08, 0x00, 0x01, 0x59, 0x20, 0x00, 0x01, 0x59, 0x38,
+ 0x00, 0x01, 0x59, 0x50, 0x00, 0x01, 0x59, 0x68, 0x00, 0x01, 0x59, 0x80,
+ 0x00, 0x01, 0x59, 0x98, 0x00, 0x01, 0x59, 0xb0, 0x00, 0x01, 0x59, 0xc8,
+ 0x00, 0x01, 0x59, 0xe0, 0x00, 0x01, 0x59, 0xf8, 0x00, 0x01, 0x5a, 0x10,
+ 0x00, 0x01, 0x5a, 0x28, 0x00, 0x01, 0x5a, 0x40, 0x00, 0x01, 0x5a, 0x58,
+ 0x00, 0x01, 0x5a, 0x70, 0x00, 0x01, 0x5a, 0x88, 0x00, 0x01, 0x5a, 0xa0,
+ 0x00, 0x01, 0x5a, 0xb8, 0x00, 0x01, 0x5a, 0xd0, 0x00, 0x01, 0x5a, 0xe8,
+ 0x00, 0x01, 0x5b, 0x00, 0x00, 0x01, 0x5b, 0x18, 0x00, 0x01, 0x5b, 0x38,
+ 0x00, 0x01, 0x5b, 0x50, 0x00, 0x01, 0x5b, 0x68, 0x00, 0x01, 0x5b, 0x80,
+ 0x00, 0x01, 0x5b, 0x98, 0x00, 0x01, 0x5b, 0xb0, 0x00, 0x01, 0x5b, 0xc8,
+ 0x00, 0x01, 0x5b, 0xe0, 0x00, 0x01, 0x5b, 0xf8, 0x00, 0x01, 0x5c, 0x10,
+ 0x00, 0x01, 0x5c, 0x28, 0x00, 0x01, 0x5c, 0x40, 0x00, 0x01, 0x5c, 0x58,
+ 0x00, 0x01, 0x5c, 0x70, 0x00, 0x01, 0x5c, 0x88, 0x00, 0x01, 0x5c, 0xa0,
+ 0x00, 0x01, 0x5c, 0xb8, 0x00, 0x01, 0x5c, 0xd0, 0x00, 0x01, 0x5c, 0xf0,
+ 0x00, 0x01, 0x5d, 0x08, 0x00, 0x01, 0x5d, 0x20, 0x00, 0x01, 0x5d, 0x38,
+ 0x00, 0x01, 0x5d, 0x50, 0x00, 0x01, 0x5d, 0x68, 0x00, 0x01, 0x5d, 0x80,
+ 0x00, 0x01, 0x5d, 0x98, 0x00, 0x01, 0x5d, 0xb0, 0x00, 0x01, 0x5d, 0xc8,
+ 0x00, 0x01, 0x5d, 0xe0, 0x00, 0x01, 0x5d, 0xf8, 0x00, 0x01, 0x5e, 0x10,
+ 0x00, 0x01, 0x5e, 0x28, 0x00, 0x01, 0x5e, 0x40, 0x00, 0x01, 0x5e, 0x58,
+ 0x00, 0x01, 0x5e, 0x70, 0x00, 0x01, 0x5e, 0x88, 0x00, 0x01, 0x5e, 0xa0,
+ 0x00, 0x01, 0x5e, 0xb8, 0x00, 0x01, 0x5e, 0xd0, 0x00, 0x01, 0x5e, 0xe8,
+ 0x00, 0x01, 0x5f, 0x00, 0x00, 0x01, 0x5f, 0x18, 0x00, 0x01, 0x5f, 0x30,
+ 0x00, 0x01, 0x5f, 0x48, 0x00, 0x01, 0x5f, 0x60, 0x00, 0x01, 0x5f, 0x78,
+ 0x00, 0x01, 0x5f, 0x90, 0x00, 0x01, 0x5f, 0xa8, 0x00, 0x01, 0x5f, 0xc0,
+ 0x00, 0x01, 0x5f, 0xd8, 0x00, 0x01, 0x5f, 0xf0, 0x00, 0x01, 0x60, 0x1c,
+ 0x00, 0x01, 0x60, 0x58, 0x00, 0x01, 0x60, 0x70, 0x00, 0x01, 0x60, 0x88,
+ 0x00, 0x01, 0x60, 0xa0, 0x00, 0x01, 0x60, 0xb8, 0x00, 0x01, 0x60, 0xd0,
+ 0x00, 0x01, 0x60, 0xe8, 0x00, 0x01, 0x61, 0x00, 0x00, 0x01, 0x61, 0x18,
+ 0x00, 0x01, 0x61, 0x30, 0x00, 0x01, 0x61, 0x48, 0x00, 0x01, 0x61, 0x60,
+ 0x00, 0x01, 0x61, 0x78, 0x00, 0x01, 0x61, 0x94, 0x00, 0x01, 0x61, 0xb0,
+ 0x00, 0x01, 0x61, 0xc8, 0x00, 0x01, 0x61, 0xe0, 0x00, 0x01, 0x61, 0xf8,
+ 0x00, 0x01, 0x62, 0x10, 0x00, 0x01, 0x62, 0x28, 0x00, 0x01, 0x62, 0x40,
+ 0x00, 0x01, 0x62, 0x58, 0x00, 0x01, 0x62, 0x70, 0x00, 0x01, 0x62, 0x8c,
+ 0x00, 0x01, 0x62, 0xa8, 0x00, 0x01, 0x62, 0xc0, 0x00, 0x01, 0x62, 0xd8,
+ 0x00, 0x01, 0x62, 0xf4, 0x00, 0x01, 0x63, 0x10, 0x00, 0x01, 0x63, 0x28,
+ 0x00, 0x01, 0x63, 0x40, 0x00, 0x01, 0x63, 0x58, 0x00, 0x01, 0x63, 0x70,
+ 0x00, 0x01, 0x63, 0x88, 0x00, 0x01, 0x63, 0xa0, 0x00, 0x01, 0x63, 0xb8,
+ 0x00, 0x01, 0x63, 0xd0, 0x00, 0x01, 0x63, 0xec, 0x00, 0x01, 0x64, 0x08,
+ 0x00, 0x01, 0x64, 0x20, 0x00, 0x01, 0x64, 0x38, 0x00, 0x01, 0x64, 0x54,
+ 0x00, 0x01, 0x64, 0x70, 0x00, 0x01, 0x64, 0x8c, 0x00, 0x01, 0x64, 0xa8,
+ 0x00, 0x01, 0x64, 0xc0, 0x00, 0x01, 0x64, 0xd8, 0x00, 0x01, 0x64, 0xf0,
+ 0x00, 0x01, 0x65, 0x08, 0x00, 0x01, 0x65, 0x20, 0x00, 0x01, 0x65, 0x38,
+ 0x00, 0x01, 0x65, 0x50, 0x00, 0x01, 0x65, 0x68, 0x00, 0x01, 0x65, 0x84,
+ 0x00, 0x01, 0x65, 0xa0, 0x00, 0x01, 0x65, 0xb8, 0x00, 0x01, 0x65, 0xd0,
+ 0x00, 0x01, 0x65, 0xec, 0x00, 0x01, 0x66, 0x08, 0x00, 0x01, 0x66, 0x24,
+ 0x00, 0x01, 0x66, 0x40, 0x00, 0x01, 0x66, 0x58, 0x00, 0x01, 0x66, 0x70,
+ 0x00, 0x01, 0x66, 0x88, 0x00, 0x01, 0x66, 0xa0, 0x00, 0x01, 0x66, 0xb8,
+ 0x00, 0x01, 0x66, 0xd0, 0x00, 0x01, 0x66, 0xe8, 0x00, 0x01, 0x67, 0x00,
+ 0x00, 0x01, 0x67, 0x18, 0x00, 0x01, 0x67, 0x30, 0x00, 0x01, 0x67, 0x4c,
+ 0x00, 0x01, 0x67, 0x68, 0x00, 0x01, 0x67, 0x80, 0x00, 0x01, 0x67, 0x98,
+ 0x00, 0x01, 0x67, 0xb0, 0x00, 0x01, 0x67, 0xc8, 0x00, 0x01, 0x67, 0xe0,
+ 0x00, 0x01, 0x67, 0xf8, 0x00, 0x01, 0x68, 0x10, 0x00, 0x01, 0x68, 0x28,
+ 0x00, 0x01, 0x68, 0x44, 0x00, 0x01, 0x68, 0x5c, 0x00, 0x01, 0x68, 0x78,
+ 0x00, 0x01, 0x68, 0x94, 0x00, 0x01, 0x68, 0xac, 0x00, 0x01, 0x68, 0xc4,
+ 0x00, 0x01, 0x68, 0xdc, 0x00, 0x01, 0x68, 0xf4, 0x00, 0x01, 0x69, 0x0c,
+ 0x00, 0x01, 0x69, 0x24, 0x00, 0x01, 0x69, 0x3c, 0x00, 0x01, 0x69, 0x54,
+ 0x00, 0x01, 0x69, 0x6c, 0x00, 0x01, 0x69, 0x88, 0x00, 0x01, 0x69, 0xa0,
+ 0x00, 0x01, 0x69, 0xb8, 0x00, 0x01, 0x69, 0xd4, 0x00, 0x01, 0x69, 0xf0,
+ 0x00, 0x01, 0x6a, 0x0c, 0x00, 0x01, 0x6a, 0x28, 0x00, 0x01, 0x6a, 0x40,
+ 0x00, 0x01, 0x6a, 0x50, 0x00, 0x01, 0x6a, 0x68, 0x00, 0x01, 0x6a, 0x78,
+ 0x00, 0x01, 0x6a, 0x90, 0x00, 0x01, 0x6a, 0xa0, 0x00, 0x01, 0x6a, 0xb8,
+ 0x00, 0x01, 0x6a, 0xc8, 0x00, 0x01, 0x6a, 0xe0, 0x00, 0x01, 0x6a, 0xf0,
+ 0x00, 0x01, 0x6b, 0x08, 0x00, 0x01, 0x6b, 0x18, 0x00, 0x01, 0x6b, 0x30,
+ 0x00, 0x01, 0x6b, 0x40, 0x00, 0x01, 0x6b, 0x58, 0x00, 0x01, 0x6b, 0x70,
+ 0x00, 0x01, 0x6b, 0x88, 0x00, 0x01, 0x6b, 0xa0, 0x00, 0x01, 0x6b, 0xb8,
+ 0x00, 0x01, 0x6b, 0xd0, 0x00, 0x01, 0x6b, 0xe8, 0x00, 0x01, 0x6c, 0x00,
+ 0x00, 0x01, 0x6c, 0x18, 0x00, 0x01, 0x6c, 0x30, 0x00, 0x01, 0x6c, 0x48,
+ 0x00, 0x01, 0x6c, 0x60, 0x00, 0x01, 0x6c, 0x78, 0x00, 0x01, 0x6c, 0x90,
+ 0x00, 0x01, 0x6c, 0xa8, 0x00, 0x01, 0x6c, 0xc0, 0x00, 0x01, 0x6c, 0xd8,
+ 0x00, 0x01, 0x6c, 0xf0, 0x00, 0x01, 0x6d, 0x08, 0x00, 0x01, 0x6d, 0x20,
+ 0x00, 0x01, 0x6d, 0x38, 0x00, 0x01, 0x6d, 0x50, 0x00, 0x01, 0x6d, 0x68,
+ 0x00, 0x01, 0x6d, 0x80, 0x00, 0x01, 0x6d, 0x98, 0x00, 0x01, 0x6d, 0xb0,
+ 0x00, 0x01, 0x6d, 0xc8, 0x00, 0x01, 0x6d, 0xe0, 0x00, 0x01, 0x6d, 0xf8,
+ 0x00, 0x01, 0x6e, 0x10, 0x00, 0x01, 0x6e, 0x28, 0x00, 0x01, 0x6e, 0x40,
+ 0x00, 0x01, 0x6e, 0x58, 0x00, 0x01, 0x6e, 0x70, 0x00, 0x01, 0x6e, 0x88,
+ 0x00, 0x01, 0x6e, 0xa0, 0x00, 0x01, 0x6e, 0xb8, 0x00, 0x01, 0x6e, 0xd0,
+ 0x00, 0x01, 0x6e, 0xe8, 0x00, 0x01, 0x6f, 0x00, 0x00, 0x01, 0x6f, 0x18,
+ 0x00, 0x01, 0x6f, 0x30, 0x00, 0x01, 0x6f, 0x48, 0x00, 0x01, 0x6f, 0x60,
+ 0x00, 0x01, 0x6f, 0x78, 0x00, 0x01, 0x6f, 0x90, 0x00, 0x01, 0x6f, 0xa8,
+ 0x00, 0x01, 0x6f, 0xc0, 0x00, 0x01, 0x6f, 0xd8, 0x00, 0x01, 0x6f, 0xf0,
+ 0x00, 0x01, 0x70, 0x08, 0x00, 0x01, 0x70, 0x20, 0x00, 0x01, 0x70, 0x38,
+ 0x00, 0x01, 0x70, 0x50, 0x00, 0x01, 0x70, 0x68, 0x00, 0x01, 0x70, 0x80,
+ 0x00, 0x01, 0x70, 0x98, 0x00, 0x01, 0x70, 0xb0, 0x00, 0x01, 0x70, 0xc0,
+ 0x00, 0x01, 0x70, 0xd8, 0x00, 0x01, 0x70, 0xe8, 0x00, 0x01, 0x70, 0xf8,
+ 0x00, 0x01, 0x71, 0x20, 0x00, 0x01, 0x71, 0x30, 0x00, 0x01, 0x71, 0x48,
+ 0x00, 0x01, 0x71, 0x60, 0x00, 0x01, 0x71, 0x78, 0x00, 0x01, 0x71, 0x90,
+ 0x00, 0x01, 0x71, 0xa8, 0x00, 0x01, 0x71, 0xc0, 0x00, 0x01, 0x71, 0xdc,
+ 0x00, 0x01, 0x71, 0xec, 0x00, 0x01, 0x72, 0x08, 0x00, 0x01, 0x72, 0x18,
+ 0x00, 0x01, 0x72, 0x30, 0x00, 0x01, 0x72, 0x4c, 0x00, 0x01, 0x72, 0x64,
+ 0x00, 0x01, 0x72, 0x7c, 0x00, 0x01, 0x72, 0x94, 0x00, 0x01, 0x72, 0xac,
+ 0x00, 0x01, 0x72, 0xc4, 0x00, 0x01, 0x72, 0xd4, 0x00, 0x01, 0x72, 0xec,
+ 0x00, 0x01, 0x73, 0x04, 0x00, 0x01, 0x73, 0x1c, 0x00, 0x01, 0x73, 0x34,
+ 0x00, 0x01, 0x73, 0x50, 0x00, 0x01, 0x73, 0x60, 0x00, 0x01, 0x73, 0x7c,
+ 0x00, 0x01, 0x73, 0x94, 0x00, 0x01, 0x73, 0xac, 0x00, 0x01, 0x73, 0xc4,
+ 0x00, 0x01, 0x73, 0xdc, 0x00, 0x01, 0x73, 0xf4, 0x00, 0x01, 0x74, 0x04,
+ 0x00, 0x01, 0x74, 0x1c, 0x00, 0x01, 0x74, 0x34, 0x00, 0x01, 0x74, 0x4c,
+ 0x00, 0x01, 0x74, 0x64, 0x00, 0x01, 0x74, 0x7c, 0x00, 0x01, 0x74, 0x94,
+ 0x00, 0x01, 0x74, 0xb0, 0x00, 0x01, 0x74, 0xc0, 0x00, 0x01, 0x74, 0xdc,
+ 0x00, 0x01, 0x74, 0xf4, 0x00, 0x01, 0x75, 0x04, 0x00, 0x01, 0x75, 0x14,
+ 0x00, 0x01, 0x75, 0x2c, 0x00, 0x01, 0x75, 0x44, 0x00, 0x01, 0x75, 0x5c,
+ 0x00, 0x01, 0x75, 0x74, 0x00, 0x01, 0x75, 0x8c, 0x00, 0x01, 0x75, 0xa8,
+ 0x00, 0x01, 0x75, 0xb8, 0x00, 0x01, 0x75, 0xd4, 0x00, 0x01, 0x75, 0xe4,
+ 0x00, 0x01, 0x75, 0xfc, 0x00, 0x01, 0x76, 0x0c, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x30,
+ 0x00, 0x01, 0x76, 0x30, 0x00, 0x01, 0x76, 0x4c, 0x00, 0x01, 0x76, 0x5c,
+ 0x00, 0x01, 0x76, 0x78, 0x00, 0x01, 0x76, 0x94, 0x00, 0x01, 0x76, 0xb0,
+ 0x00, 0x01, 0x76, 0xcc, 0x00, 0x01, 0x76, 0xe4, 0x00, 0x01, 0x76, 0xfc,
+ 0x00, 0x01, 0x77, 0x20, 0x00, 0x01, 0x77, 0x40, 0x00, 0x01, 0x77, 0x60,
+ 0x00, 0x01, 0x77, 0x84, 0x00, 0x01, 0x77, 0xbc, 0x00, 0x01, 0x77, 0xf0,
+ 0x00, 0x01, 0x78, 0x24, 0x00, 0x01, 0x78, 0x58, 0x00, 0x01, 0x78, 0x88,
+ 0x00, 0x01, 0x78, 0xd0, 0x00, 0x01, 0x79, 0x00, 0x00, 0x01, 0x79, 0x1c,
+ 0x00, 0x01, 0x79, 0x34, 0x00, 0x01, 0x79, 0x58, 0x00, 0x01, 0x79, 0x88,
+ 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0,
+ 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0,
+ 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0, 0x00, 0x01, 0x79, 0xa0,
+ 0x00, 0x01, 0x7a, 0x7c, 0x00, 0x01, 0x7b, 0x8c, 0x00, 0x01, 0x7b, 0xac,
+ 0x00, 0x01, 0x7b, 0xc4, 0x00, 0x01, 0x7b, 0xe4, 0x00, 0x01, 0x7c, 0x00,
+ 0x00, 0x01, 0x7c, 0x18, 0x00, 0x01, 0x7c, 0x38, 0x00, 0x01, 0x7c, 0x5c,
+ 0x00, 0x01, 0x7c, 0x84, 0x00, 0x01, 0x7c, 0xb0, 0x00, 0x01, 0x7c, 0xe0,
+ 0x00, 0x01, 0x7c, 0xfc, 0x00, 0x01, 0x7d, 0x78, 0x00, 0x01, 0x7d, 0x8c,
+ 0x00, 0x01, 0x7d, 0xc8, 0x00, 0x01, 0x7e, 0x04, 0x00, 0x01, 0x7e, 0x30,
+ 0x00, 0x01, 0x7e, 0x54, 0x00, 0x01, 0x7e, 0x70, 0x00, 0x01, 0x7e, 0x8c,
+ 0x00, 0x01, 0x7e, 0xbc, 0x00, 0x01, 0x7e, 0xec, 0x00, 0x01, 0x7f, 0x04,
+ 0x00, 0x01, 0x7f, 0x1c, 0x00, 0x01, 0x7f, 0x38, 0x00, 0x01, 0x7f, 0x6c,
+ 0x00, 0x01, 0x7f, 0xa0, 0x00, 0x01, 0x7f, 0xd0, 0x00, 0x01, 0x80, 0x00,
+ 0x00, 0x01, 0x80, 0x14, 0x00, 0x01, 0x80, 0x44, 0x00, 0x01, 0x80, 0x5c,
+ 0x00, 0x01, 0x80, 0x78, 0x00, 0x01, 0x80, 0x9c, 0x00, 0x01, 0x80, 0xfc,
+ 0x00, 0x01, 0x81, 0x10, 0x00, 0x01, 0x81, 0x64, 0x00, 0x01, 0x81, 0x98,
+ 0x00, 0x01, 0x81, 0xc0, 0x00, 0x01, 0x82, 0x00, 0x00, 0x01, 0x82, 0x4c,
+ 0x00, 0x01, 0x82, 0x70, 0x00, 0x01, 0x82, 0xac, 0x00, 0x01, 0x83, 0x10,
+ 0x00, 0x01, 0x83, 0x40, 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c,
+ 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c,
+ 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c,
+ 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c,
+ 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0x7c, 0x00, 0x01, 0x83, 0xd0,
+ 0x00, 0x01, 0x83, 0xf4, 0x00, 0x01, 0x84, 0x2c, 0x00, 0x01, 0x84, 0x90,
+ 0x00, 0x01, 0x85, 0x20, 0x00, 0x01, 0x85, 0x48, 0x00, 0x01, 0x85, 0xf8,
+ 0x00, 0x01, 0x86, 0x84, 0x00, 0x01, 0x86, 0xb8, 0x00, 0x01, 0x86, 0xd4,
+ 0x00, 0x01, 0x86, 0xfc, 0x00, 0x01, 0x87, 0x34, 0x00, 0x01, 0x87, 0x70,
+ 0x00, 0x01, 0x87, 0xb4, 0x00, 0x01, 0x87, 0xc8, 0x00, 0x01, 0x87, 0xdc,
+ 0x00, 0x01, 0x87, 0xf0, 0x00, 0x01, 0x88, 0x04, 0x00, 0x01, 0x88, 0x18,
+ 0x00, 0x01, 0x88, 0x2c, 0x00, 0x01, 0x88, 0x40, 0x00, 0x01, 0x88, 0x54,
+ 0x00, 0x01, 0x88, 0x68, 0x00, 0x01, 0x88, 0x7c, 0x00, 0x01, 0x88, 0x90,
+ 0x00, 0x01, 0x88, 0xa4, 0x00, 0x01, 0x88, 0xb8, 0x00, 0x01, 0x88, 0xcc,
+ 0x00, 0x01, 0x88, 0xe0, 0x00, 0x01, 0x88, 0xf4, 0x00, 0x01, 0x89, 0x08,
+ 0x00, 0x01, 0x89, 0x1c, 0x00, 0x01, 0x89, 0x30, 0x00, 0x01, 0x89, 0x44,
+ 0x00, 0x01, 0x89, 0x58, 0x00, 0x01, 0x89, 0x6c, 0x00, 0x01, 0x89, 0x80,
+ 0x00, 0x01, 0x89, 0x94, 0x00, 0x01, 0x89, 0xa8, 0x00, 0x01, 0x89, 0xbc,
+ 0x00, 0x01, 0x89, 0xd0, 0x00, 0x01, 0x89, 0xe4, 0x00, 0x01, 0x8a, 0x58,
+ 0x00, 0x01, 0x8b, 0x08, 0x00, 0x01, 0x8b, 0x98, 0x00, 0x01, 0x8b, 0xd8,
+ 0x00, 0x01, 0x8c, 0x40, 0x00, 0x01, 0x8c, 0xc4, 0x00, 0x01, 0x8d, 0x48,
+ 0x00, 0x01, 0x8e, 0x2c, 0x00, 0x01, 0x8e, 0xf8, 0x00, 0x01, 0x8f, 0xa4,
+ 0x00, 0x01, 0x90, 0x04, 0x00, 0x01, 0x90, 0x1c, 0x00, 0x01, 0x90, 0xb4,
+ 0x00, 0x01, 0x90, 0xfc, 0x00, 0x01, 0x91, 0x54, 0x00, 0x01, 0x92, 0xe0,
+ 0x00, 0x01, 0x93, 0x7c, 0x00, 0x01, 0x94, 0x14, 0x00, 0x01, 0x94, 0xa8,
+ 0x00, 0x01, 0x95, 0x14, 0x00, 0x01, 0x95, 0xb4, 0x00, 0x01, 0x96, 0x44,
+ 0x00, 0x01, 0x96, 0x78, 0x00, 0x01, 0x96, 0xf8, 0x00, 0x01, 0x97, 0x60,
+ 0x00, 0x01, 0x97, 0x84, 0x00, 0x01, 0x97, 0xa4, 0x00, 0x01, 0x97, 0xcc,
+ 0x00, 0x01, 0x97, 0xf4, 0x00, 0x01, 0x98, 0x2c, 0x00, 0x01, 0x98, 0x70,
+ 0x00, 0x01, 0x98, 0xa8, 0x00, 0x01, 0x99, 0x68, 0x00, 0x01, 0x9a, 0x40,
+ 0x00, 0x01, 0x9a, 0xb8, 0x00, 0x01, 0x9a, 0xd0, 0x00, 0x01, 0x9b, 0x5c,
+ 0x00, 0x01, 0x9b, 0xf8, 0x00, 0x01, 0x9c, 0x90, 0x00, 0x01, 0x9c, 0xa0,
+ 0x00, 0x01, 0x9c, 0xb4, 0x00, 0x01, 0x9c, 0xcc, 0x00, 0x01, 0x9e, 0x0c,
+ 0x00, 0x01, 0x9e, 0xfc, 0x00, 0x01, 0x9f, 0x4c, 0x00, 0x01, 0x9f, 0xa8,
+ 0x00, 0x01, 0xa0, 0x08, 0x00, 0x01, 0xa0, 0xb4, 0x00, 0x01, 0xa1, 0x48,
+ 0x00, 0x01, 0xa2, 0x24, 0x00, 0x01, 0xa2, 0xa4, 0x00, 0x01, 0xa3, 0x20,
+ 0x00, 0x01, 0xa3, 0x64, 0x00, 0x01, 0xa3, 0xf4, 0x00, 0x01, 0xa4, 0x98,
+ 0x00, 0x01, 0xa5, 0x4c, 0x00, 0x01, 0xa5, 0xbc, 0x00, 0x01, 0xa6, 0x58,
+ 0x00, 0x01, 0xa7, 0x70, 0x00, 0x01, 0xa8, 0x6c, 0x00, 0x01, 0xa9, 0x1c,
+ 0x00, 0x01, 0xa9, 0x8c, 0x00, 0x01, 0xaa, 0x34, 0x00, 0x01, 0xaa, 0xd4,
+ 0x00, 0x01, 0xab, 0x34, 0x00, 0x01, 0xab, 0x80, 0x00, 0x01, 0xab, 0xd0,
+ 0x00, 0x01, 0xac, 0x10, 0x00, 0x01, 0xac, 0x7c, 0x00, 0x01, 0xac, 0x8c,
+ 0x00, 0x01, 0xac, 0x9c, 0x00, 0x01, 0xad, 0x90, 0x00, 0x01, 0xad, 0xc4,
+ 0x00, 0x01, 0xad, 0xd4, 0x00, 0x01, 0xad, 0xe4, 0x00, 0x01, 0xae, 0xd8,
+ 0x00, 0x01, 0xaf, 0x9c, 0x00, 0x01, 0xb0, 0x24, 0x00, 0x01, 0xb0, 0xa0,
+ 0x00, 0x01, 0xb1, 0x68, 0x00, 0x01, 0xb2, 0x48, 0x00, 0x01, 0xb2, 0x74,
+ 0x00, 0x01, 0xb3, 0xb8, 0x00, 0x01, 0xb4, 0x0c, 0x00, 0x01, 0xb4, 0xb0,
+ 0x00, 0x01, 0xb5, 0x40, 0x00, 0x01, 0xb5, 0xcc, 0x00, 0x01, 0xb6, 0x44,
+ 0x00, 0x01, 0xb6, 0x8c, 0x00, 0x01, 0xb6, 0xfc, 0x00, 0x01, 0xb7, 0x7c,
+ 0x00, 0x01, 0xb8, 0x10, 0x00, 0x01, 0xb8, 0x84, 0x00, 0x01, 0xb8, 0xb4,
+ 0x00, 0x01, 0xb8, 0xf8, 0x00, 0x01, 0xb9, 0x4c, 0x00, 0x01, 0xb9, 0xb4,
+ 0x00, 0x01, 0xb9, 0xd4, 0x00, 0x01, 0xb9, 0xf8, 0x00, 0x01, 0xba, 0x24,
+ 0x00, 0x01, 0xba, 0xa8, 0x00, 0x01, 0xbb, 0x54, 0x00, 0x01, 0xbb, 0xf4,
+ 0x00, 0x01, 0xbc, 0x2c, 0x00, 0x01, 0xbc, 0x94, 0x00, 0x01, 0xbd, 0x2c,
+ 0x00, 0x01, 0xbd, 0x58, 0x00, 0x01, 0xbd, 0x78, 0x00, 0x01, 0xbd, 0x98,
+ 0x00, 0x01, 0xbd, 0xc0, 0x00, 0x01, 0xbd, 0xe0, 0x00, 0x01, 0xbe, 0x00,
+ 0x00, 0x01, 0xbe, 0x20, 0x00, 0x01, 0xbe, 0x40, 0x00, 0x01, 0xbe, 0x60,
+ 0x00, 0x01, 0xbe, 0x80, 0x00, 0x01, 0xbe, 0xa0, 0x00, 0x01, 0xbe, 0xc0,
+ 0x00, 0x01, 0xbe, 0xe0, 0x00, 0x01, 0xbf, 0x00, 0x00, 0x01, 0xbf, 0x20,
+ 0x00, 0x01, 0xbf, 0x40, 0x00, 0x01, 0xbf, 0x58, 0x00, 0x01, 0xbf, 0x68,
+ 0x00, 0x01, 0xbf, 0x80, 0x00, 0x01, 0xbf, 0xa0, 0x00, 0x01, 0xbf, 0xb8,
+ 0x00, 0x01, 0xbf, 0xc8, 0x00, 0x01, 0xbf, 0xe0, 0x00, 0x01, 0xc0, 0x00,
+ 0x00, 0x01, 0xc0, 0x28, 0x00, 0x01, 0xc0, 0x40, 0x00, 0x01, 0xc0, 0x50,
+ 0x00, 0x01, 0xc0, 0x68, 0x00, 0x01, 0xc0, 0x88, 0x00, 0x01, 0xc0, 0x98,
+ 0x00, 0x01, 0xc0, 0xa8, 0x00, 0x01, 0xc0, 0xb8, 0x00, 0x01, 0xc0, 0xc8,
+ 0x00, 0x01, 0xc0, 0xd8, 0x00, 0x01, 0xc0, 0xf0, 0x00, 0x01, 0xc1, 0x10,
+ 0x00, 0x01, 0xc1, 0x28, 0x00, 0x01, 0xc1, 0x38, 0x00, 0x01, 0xc1, 0x50,
+ 0x00, 0x01, 0xc1, 0x70, 0x00, 0x01, 0xc1, 0x98, 0x00, 0x01, 0xc1, 0xb0,
+ 0x00, 0x01, 0xc1, 0xc0, 0x00, 0x01, 0xc1, 0xd8, 0x00, 0x01, 0xc1, 0xf8,
+ 0x00, 0x01, 0xc2, 0x08, 0x00, 0x01, 0xc2, 0x18, 0x00, 0x01, 0xc2, 0x28,
+ 0x00, 0x01, 0xc2, 0x38, 0x00, 0x01, 0xc2, 0xbc, 0x00, 0x01, 0xc3, 0x38,
+ 0x00, 0x01, 0xc4, 0x14, 0x00, 0x01, 0xc4, 0x24, 0x00, 0x01, 0xc4, 0x34,
+ 0x00, 0x01, 0xc4, 0x9c, 0x00, 0x01, 0xc4, 0xbc, 0x00, 0x01, 0xc4, 0xec,
+ 0x00, 0x01, 0xc5, 0x1c, 0x00, 0x01, 0xc5, 0x4c, 0x00, 0x01, 0xc5, 0x7c,
+ 0x00, 0x01, 0xc5, 0xc0, 0x00, 0x01, 0xc6, 0x04, 0x00, 0x01, 0xc6, 0x34,
+ 0x00, 0x01, 0xc6, 0x64, 0x00, 0x01, 0xc6, 0x94, 0x00, 0x01, 0xc6, 0xc4,
+ 0x00, 0x01, 0xc7, 0x10, 0x00, 0x01, 0xc7, 0x5c, 0x00, 0x01, 0xc8, 0x04,
+ 0x00, 0x01, 0xc8, 0xac, 0x00, 0x01, 0xc8, 0xf8, 0x00, 0x01, 0xc9, 0x44,
+ 0x00, 0x01, 0xc9, 0x90, 0x00, 0x01, 0xc9, 0xdc, 0x00, 0x01, 0xca, 0x24,
+ 0x00, 0x01, 0xca, 0x70, 0x00, 0x01, 0xca, 0xac, 0x00, 0x01, 0xca, 0xe8,
+ 0x00, 0x01, 0xcb, 0x24, 0x00, 0x01, 0xcb, 0x60, 0x00, 0x01, 0xcb, 0xb4,
+ 0x00, 0x01, 0xcc, 0x34, 0x00, 0x01, 0xcc, 0xc0, 0x00, 0x01, 0xcd, 0x84,
+ 0x00, 0x01, 0xce, 0x48, 0x00, 0x01, 0xcf, 0x5c, 0x00, 0x01, 0xcf, 0xbc,
+ 0x00, 0x01, 0xd0, 0x04, 0x00, 0x01, 0xd0, 0x3c, 0x00, 0x01, 0xd0, 0x74,
+ 0x00, 0x01, 0xd0, 0xac, 0x00, 0x01, 0xd0, 0xe4, 0x00, 0x01, 0xd1, 0x1c,
+ 0x00, 0x01, 0xd1, 0x54, 0x00, 0x01, 0xd1, 0xd4, 0x00, 0x01, 0xd2, 0x54,
+ 0x00, 0x01, 0xd2, 0x90, 0x00, 0x01, 0xd2, 0xfc, 0x00, 0x01, 0xd3, 0xa4,
+ 0x00, 0x01, 0xd4, 0x4c, 0x00, 0x01, 0xd4, 0x70, 0x00, 0x01, 0xd4, 0x98,
+ 0x00, 0x01, 0xd4, 0xc0, 0x00, 0x01, 0xd4, 0xe8, 0x00, 0x01, 0xd5, 0x10,
+ 0x00, 0x01, 0xd5, 0x38, 0x00, 0x01, 0xd5, 0x5c, 0x00, 0x01, 0xd5, 0x80,
+ 0x00, 0x01, 0xd5, 0x9c, 0x00, 0x01, 0xd5, 0xb8, 0x00, 0x01, 0xd5, 0xd4,
+ 0x00, 0x01, 0xd6, 0x1c, 0x00, 0x01, 0xd6, 0x64, 0x00, 0x01, 0xd6, 0xac,
+ 0x00, 0x01, 0xd6, 0xf4, 0x00, 0x01, 0xd7, 0x10, 0x00, 0x01, 0xd7, 0x2c,
+ 0x00, 0x01, 0xd7, 0x94, 0x00, 0x01, 0xd8, 0x14, 0x00, 0x01, 0xd8, 0x7c,
+ 0x00, 0x01, 0xd8, 0xbc, 0x00, 0x01, 0xd8, 0xfc, 0x00, 0x01, 0xd9, 0x3c,
+ 0x00, 0x01, 0xd9, 0x7c, 0x00, 0x01, 0xd9, 0xd8, 0x00, 0x01, 0xda, 0x34,
+ 0x00, 0x01, 0xda, 0x74, 0x00, 0x01, 0xda, 0xb4, 0x00, 0x01, 0xda, 0xf4,
+ 0x00, 0x01, 0xdb, 0x34, 0x00, 0x01, 0xdb, 0x74, 0x00, 0x01, 0xdb, 0xb4,
+ 0x00, 0x01, 0xdc, 0x10, 0x00, 0x01, 0xdc, 0x6c, 0x00, 0x01, 0xdc, 0xc4,
+ 0x00, 0x01, 0xdd, 0x1c, 0x00, 0x01, 0xdd, 0x60, 0x00, 0x01, 0xdd, 0xa8,
+ 0x00, 0x01, 0xdd, 0xf0, 0x00, 0x01, 0xde, 0x3c, 0x00, 0x01, 0xde, 0x78,
+ 0x00, 0x01, 0xde, 0xb4, 0x00, 0x01, 0xde, 0xf8, 0x00, 0x01, 0xdf, 0x38,
+ 0x00, 0x01, 0xdf, 0x78, 0x00, 0x01, 0xdf, 0xb4, 0x00, 0x01, 0xe0, 0x10,
+ 0x00, 0x01, 0xe0, 0x60, 0x00, 0x01, 0xe0, 0xc0, 0x00, 0x01, 0xe1, 0x1c,
+ 0x00, 0x01, 0xe1, 0x7c, 0x00, 0x01, 0xe1, 0xf0, 0x00, 0x01, 0xe2, 0x44,
+ 0x00, 0x01, 0xe2, 0x88, 0x00, 0x01, 0xe2, 0xcc, 0x00, 0x01, 0xe3, 0x20,
+ 0x00, 0x01, 0xe3, 0xfc, 0x00, 0x01, 0xe4, 0x18, 0x00, 0x01, 0xe4, 0x78,
+ 0x00, 0x01, 0xe4, 0xbc, 0x00, 0x01, 0xe5, 0x04, 0x00, 0x01, 0xe5, 0x60,
+ 0x00, 0x01, 0xe5, 0xb8, 0x00, 0x01, 0xe6, 0x14, 0x00, 0x01, 0xe6, 0x84,
+ 0x00, 0x01, 0xe6, 0xb8, 0x00, 0x01, 0xe6, 0xec, 0x00, 0x01, 0xe7, 0x3c,
+ 0x00, 0x01, 0xe7, 0x74, 0x00, 0x01, 0xe7, 0xd8, 0x00, 0x01, 0xe8, 0x6c,
+ 0x00, 0x01, 0xe8, 0xa0, 0x00, 0x01, 0xe9, 0x08, 0x00, 0x01, 0xe9, 0xc8,
+ 0x00, 0x01, 0xe9, 0xf4, 0x00, 0x01, 0xea, 0x24, 0x00, 0x01, 0xea, 0x88,
+ 0x00, 0x01, 0xeb, 0x2c, 0x00, 0x01, 0xeb, 0x80, 0x00, 0x01, 0xeb, 0xe4,
+ 0x00, 0x01, 0xec, 0x88, 0x00, 0x01, 0xec, 0xdc, 0x00, 0x01, 0xec, 0xf8,
+ 0x00, 0x01, 0xed, 0x20, 0x00, 0x01, 0xed, 0x48, 0x00, 0x01, 0xed, 0x80,
+ 0x00, 0x01, 0xed, 0x9c, 0x00, 0x01, 0xed, 0xd8, 0x00, 0x01, 0xee, 0x14,
+ 0x00, 0x01, 0xee, 0x24, 0x00, 0x01, 0xee, 0x38, 0x00, 0x01, 0xee, 0x84,
+ 0x00, 0x01, 0xee, 0x98, 0x00, 0x01, 0xee, 0xa8, 0x00, 0x01, 0xee, 0xdc,
+ 0x00, 0x01, 0xee, 0xf4, 0x00, 0x01, 0xef, 0x0c, 0x00, 0x01, 0xef, 0xa4,
+ 0x00, 0x01, 0xf0, 0x5c, 0x00, 0x01, 0xf0, 0x7c, 0x00, 0x01, 0xf0, 0xa0,
+ 0x00, 0x01, 0xf1, 0x0c, 0x00, 0x01, 0xf1, 0x84, 0x00, 0x01, 0xf1, 0xa0,
+ 0x00, 0x01, 0xf1, 0xd4, 0x00, 0x01, 0xf1, 0xfc, 0x00, 0x01, 0xf2, 0x44,
+ 0x00, 0x01, 0xf2, 0x6c, 0x00, 0x01, 0xf2, 0x94, 0x00, 0x01, 0xf2, 0xd4,
+ 0x00, 0x01, 0xf3, 0x14, 0x00, 0x01, 0xf3, 0x64, 0x00, 0x01, 0xf3, 0x7c,
+ 0x00, 0x01, 0xf3, 0x9c, 0x00, 0x01, 0xf4, 0x68, 0x00, 0x01, 0xf5, 0xa0,
+ 0x00, 0x01, 0xf7, 0x48, 0x00, 0x01, 0xf7, 0xe8, 0x00, 0x01, 0xf8, 0xb0,
+ 0x00, 0x01, 0xf9, 0x78, 0x00, 0x01, 0xf9, 0x9c, 0x00, 0x01, 0xf9, 0xc0,
+ 0x00, 0x01, 0xf9, 0xdc, 0x00, 0x01, 0xfa, 0x08, 0x00, 0x01, 0xfa, 0x20,
+ 0x00, 0x01, 0xfa, 0x54, 0x00, 0x01, 0xfa, 0x84, 0x00, 0x01, 0xfa, 0xa4,
+ 0x00, 0x01, 0xfb, 0x04, 0x00, 0x01, 0xfb, 0x64, 0x00, 0x01, 0xfb, 0xe0,
+ 0x00, 0x01, 0xfc, 0x28, 0x00, 0x01, 0xfc, 0x88, 0x00, 0x01, 0xfc, 0xe8,
+ 0x00, 0x01, 0xfd, 0x54, 0x00, 0x01, 0xfd, 0xbc, 0x00, 0x01, 0xfe, 0x3c,
+ 0x00, 0x01, 0xfe, 0xb0, 0x00, 0x01, 0xff, 0x40, 0x00, 0x01, 0xff, 0xd0,
+ 0x00, 0x02, 0x00, 0x84, 0x00, 0x02, 0x01, 0x24, 0x00, 0x02, 0x01, 0xd4,
+ 0x00, 0x02, 0x02, 0xbc, 0x00, 0x02, 0x03, 0x30, 0x00, 0x02, 0x03, 0x88,
+ 0x00, 0x02, 0x04, 0x40, 0x00, 0x02, 0x04, 0xb4, 0x00, 0x02, 0x04, 0xcc,
+ 0x00, 0x02, 0x04, 0xec, 0x00, 0x02, 0x05, 0x0c, 0x00, 0x02, 0x05, 0x2c,
+ 0x00, 0x02, 0x05, 0x50, 0x00, 0x02, 0x05, 0x70, 0x00, 0x02, 0x05, 0xcc,
+ 0x00, 0x02, 0x06, 0x38, 0x00, 0x02, 0x06, 0x7c, 0x00, 0x02, 0x06, 0xc0,
+ 0x00, 0x02, 0x07, 0x00, 0x00, 0x02, 0x07, 0x4c, 0x00, 0x02, 0x07, 0x90,
+ 0x00, 0x02, 0x08, 0x70, 0x00, 0x02, 0x08, 0xf4, 0x00, 0x02, 0x09, 0x80,
+ 0x00, 0x02, 0x09, 0xcc, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x02, 0x0a, 0x60,
+ 0x00, 0x02, 0x0a, 0xa4, 0x00, 0x02, 0x0a, 0xe0, 0x00, 0x02, 0x0b, 0x18,
+ 0x00, 0x02, 0x0b, 0x60, 0x00, 0x02, 0x0b, 0xa0, 0x00, 0x02, 0x0c, 0x08,
+ 0x00, 0x02, 0x0c, 0x6c, 0x00, 0x02, 0x0c, 0xb4, 0x00, 0x02, 0x0c, 0xf8,
+ 0x00, 0x02, 0x0d, 0x80, 0x00, 0x02, 0x0d, 0xe8, 0x00, 0x02, 0x0e, 0x3c,
+ 0x00, 0x02, 0x0e, 0x90, 0x00, 0x02, 0x0e, 0xfc, 0x00, 0x02, 0x0f, 0x64,
+ 0x00, 0x02, 0x0f, 0xe4, 0x00, 0x02, 0x10, 0x5c, 0x00, 0x02, 0x11, 0x10,
+ 0x00, 0x02, 0x11, 0xc4, 0x00, 0x02, 0x12, 0x08, 0x00, 0x02, 0x12, 0x50,
+ 0x00, 0x02, 0x12, 0xdc, 0x00, 0x02, 0x13, 0x64, 0x00, 0x02, 0x13, 0xa0,
+ 0x00, 0x02, 0x13, 0xd8, 0x00, 0x02, 0x14, 0x2c, 0x00, 0x02, 0x14, 0x7c,
+ 0x00, 0x02, 0x15, 0x0c, 0x00, 0x02, 0x15, 0x98, 0x00, 0x02, 0x16, 0x08,
+ 0x00, 0x02, 0x16, 0x78, 0x00, 0x02, 0x16, 0xbc, 0x00, 0x02, 0x17, 0x00,
+ 0x00, 0x02, 0x17, 0x68, 0x00, 0x02, 0x17, 0xd0, 0x00, 0x02, 0x18, 0x24,
+ 0x00, 0x02, 0x18, 0x74, 0x00, 0x02, 0x18, 0xf0, 0x00, 0x02, 0x19, 0x70,
+ 0x00, 0x02, 0x19, 0xdc, 0x00, 0x02, 0x1a, 0x48, 0x00, 0x02, 0x1a, 0xa8,
+ 0x00, 0x02, 0x1a, 0xc0, 0x00, 0x02, 0x1b, 0x1c, 0x00, 0x02, 0x1b, 0x44,
+ 0x00, 0x02, 0x1b, 0x6c, 0x00, 0x02, 0x1b, 0xa0, 0x00, 0x02, 0x1b, 0xd4,
+ 0x00, 0x02, 0x1b, 0xfc, 0x00, 0x02, 0x1c, 0x20, 0x00, 0x02, 0x1c, 0xe8,
+ 0x00, 0x02, 0x1d, 0x9c, 0x00, 0x02, 0x1e, 0x68, 0x00, 0x02, 0x1f, 0x20,
+ 0x00, 0x02, 0x1f, 0xd0, 0x00, 0x02, 0x20, 0xb8, 0x00, 0x02, 0x21, 0x9c,
+ 0x00, 0x02, 0x22, 0x5c, 0x00, 0x02, 0x23, 0x10, 0x00, 0x02, 0x23, 0x60,
+ 0x00, 0x02, 0x23, 0x9c, 0x00, 0x02, 0x24, 0x00, 0x00, 0x02, 0x24, 0x38,
+ 0x00, 0x02, 0x24, 0x5c, 0x00, 0x02, 0x24, 0x80, 0x00, 0x02, 0x24, 0xa8,
+ 0x00, 0x02, 0x24, 0xcc, 0x00, 0x02, 0x24, 0xf0, 0x00, 0x02, 0x25, 0x20,
+ 0x00, 0x02, 0x25, 0x50, 0x00, 0x02, 0x25, 0x80, 0x00, 0x02, 0x25, 0xc0,
+ 0x00, 0x02, 0x25, 0xfc, 0x00, 0x02, 0x26, 0x40, 0x00, 0x02, 0x26, 0x9c,
+ 0x00, 0x02, 0x26, 0xf0, 0x00, 0x02, 0x27, 0x58, 0x00, 0x02, 0x27, 0xdc,
+ 0x00, 0x02, 0x28, 0x64, 0x00, 0x02, 0x28, 0x94, 0x00, 0x02, 0x28, 0xc0,
+ 0x00, 0x02, 0x28, 0xf8, 0x00, 0x02, 0x29, 0x30, 0x00, 0x02, 0x29, 0x9c,
+ 0x00, 0x02, 0x2a, 0x08, 0x00, 0x02, 0x2a, 0x58, 0x00, 0x02, 0x2a, 0x9c,
+ 0x00, 0x02, 0x2a, 0xc0, 0x00, 0x02, 0x2a, 0xf4, 0x00, 0x02, 0x2b, 0x2c,
+ 0x00, 0x02, 0x2b, 0x60, 0x00, 0x02, 0x2b, 0xb4, 0x00, 0x02, 0x2b, 0xe4,
+ 0x00, 0x02, 0x2c, 0x10, 0x00, 0x02, 0x2c, 0x3c, 0x00, 0x02, 0x2c, 0x80,
+ 0x00, 0x02, 0x2c, 0xc4, 0x00, 0x02, 0x2c, 0xd4, 0x00, 0x02, 0x2c, 0xec,
+ 0x00, 0x02, 0x2d, 0x20, 0x00, 0x02, 0x2d, 0x8c, 0x00, 0x02, 0x2d, 0xd0,
+ 0x00, 0x02, 0x2e, 0x10, 0x00, 0x02, 0x2e, 0x50, 0x00, 0x02, 0x2e, 0x7c,
+ 0x00, 0x02, 0x2e, 0xac, 0x00, 0x02, 0x2f, 0x10, 0x00, 0x02, 0x2f, 0x48,
+ 0x00, 0x02, 0x2f, 0x80, 0x00, 0x02, 0x30, 0x00, 0x00, 0x02, 0x30, 0x80,
+ 0x00, 0x02, 0x30, 0xf8, 0x00, 0x02, 0x31, 0x70, 0x00, 0x02, 0x31, 0xcc,
+ 0x00, 0x02, 0x32, 0x30, 0x00, 0x02, 0x32, 0x68, 0x00, 0x02, 0x32, 0x9c,
+ 0x00, 0x02, 0x33, 0x04, 0x00, 0x02, 0x33, 0x64, 0x00, 0x02, 0x33, 0xbc,
+ 0x00, 0x02, 0x34, 0x10, 0x00, 0x02, 0x34, 0x48, 0x00, 0x02, 0x34, 0x80,
+ 0x00, 0x02, 0x34, 0xd4, 0x00, 0x02, 0x35, 0x28, 0x00, 0x02, 0x35, 0xb8,
+ 0x00, 0x02, 0x36, 0x48, 0x00, 0x02, 0x36, 0xb0, 0x00, 0x02, 0x37, 0x18,
+ 0x00, 0x02, 0x37, 0x64, 0x00, 0x02, 0x37, 0xb0, 0x00, 0x02, 0x38, 0x28,
+ 0x00, 0x02, 0x38, 0xa0, 0x00, 0x02, 0x39, 0x28, 0x00, 0x02, 0x39, 0xb0,
+ 0x00, 0x02, 0x3a, 0x08, 0x00, 0x02, 0x3a, 0x60, 0x00, 0x02, 0x3a, 0xd4,
+ 0x00, 0x02, 0x3b, 0x44, 0x00, 0x02, 0x3b, 0x68, 0x00, 0x02, 0x3b, 0x88,
+ 0x00, 0x02, 0x3b, 0xac, 0x00, 0x02, 0x3b, 0xd0, 0x00, 0x02, 0x3c, 0x44,
+ 0x00, 0x02, 0x3c, 0xa8, 0x00, 0x02, 0x3d, 0x00, 0x00, 0x02, 0x3d, 0x18,
+ 0x00, 0x02, 0x3d, 0x8c, 0x00, 0x02, 0x3d, 0xec, 0x00, 0x02, 0x3e, 0x60,
+ 0x00, 0x02, 0x3e, 0xcc, 0x00, 0x02, 0x3f, 0x40, 0x00, 0x02, 0x3f, 0xa4,
+ 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x40, 0x74, 0x00, 0x02, 0x40, 0xd8,
+ 0x00, 0x02, 0x41, 0x0c, 0x00, 0x02, 0x41, 0x84, 0x00, 0x02, 0x41, 0xb0,
+ 0x00, 0x02, 0x41, 0xe8, 0x00, 0x02, 0x42, 0x18, 0x00, 0x02, 0x42, 0x44,
+ 0x00, 0x02, 0x42, 0x5c, 0x00, 0x02, 0x42, 0x7c, 0x00, 0x02, 0x42, 0xd4,
+ 0x00, 0x02, 0x42, 0xf4, 0x00, 0x02, 0x43, 0x14, 0x00, 0x02, 0x43, 0x34,
+ 0x00, 0x02, 0x43, 0x54, 0x00, 0x02, 0x43, 0x7c, 0x00, 0x02, 0x43, 0xa4,
+ 0x00, 0x02, 0x43, 0xcc, 0x00, 0x02, 0x43, 0xf4, 0x00, 0x02, 0x44, 0x14,
+ 0x00, 0x02, 0x44, 0x64, 0x00, 0x02, 0x45, 0x5c, 0x00, 0x02, 0x45, 0x80,
+ 0x00, 0x02, 0x45, 0xa4, 0x00, 0x02, 0x45, 0xc4, 0x00, 0x02, 0x45, 0xe4,
+ 0x00, 0x02, 0x46, 0x04, 0x00, 0x02, 0x46, 0x5c, 0x00, 0x02, 0x46, 0xb4,
+ 0x00, 0x02, 0x47, 0x00, 0x00, 0x02, 0x47, 0x38, 0x00, 0x02, 0x47, 0xa4,
+ 0x00, 0x02, 0x48, 0x04, 0x00, 0x02, 0x4c, 0xb8, 0x00, 0x02, 0x4d, 0x24,
+ 0x00, 0x02, 0x4d, 0x98, 0x00, 0x02, 0x4d, 0xa8, 0x00, 0x02, 0x4d, 0xb8,
+ 0x00, 0x02, 0x4d, 0xc8, 0x00, 0x02, 0x4d, 0xd8, 0x00, 0x02, 0x4e, 0x08,
+ 0x00, 0x02, 0x4e, 0x54, 0x00, 0x02, 0x4e, 0x98, 0x00, 0x02, 0x4e, 0xd0,
+ 0x00, 0x02, 0x4e, 0xec, 0x00, 0x02, 0x4f, 0x24, 0x00, 0x02, 0x4f, 0x5c,
+ 0x00, 0x02, 0x4f, 0x78, 0x00, 0x02, 0x4f, 0xb0, 0x00, 0x02, 0x4f, 0xd0,
+ 0x00, 0x02, 0x4f, 0xec, 0x00, 0x02, 0x50, 0x10, 0x00, 0x02, 0x50, 0x34,
+ 0x00, 0x02, 0x50, 0x50, 0x00, 0x02, 0x50, 0x70, 0x00, 0x02, 0x50, 0xa4,
+ 0x00, 0x02, 0x50, 0xfc, 0x00, 0x02, 0x51, 0x30, 0x00, 0x02, 0x51, 0x4c,
+ 0x00, 0x02, 0x51, 0x80, 0x00, 0x02, 0x51, 0xd8, 0x00, 0x02, 0x52, 0x0c,
+ 0x00, 0x02, 0x52, 0x28, 0x00, 0x02, 0x52, 0x78, 0x00, 0x02, 0x52, 0xa4,
+ 0x00, 0x02, 0x53, 0x4c, 0x00, 0x02, 0x53, 0x5c, 0x00, 0x02, 0x53, 0xc8,
+ 0x00, 0x02, 0x54, 0x38, 0x00, 0x02, 0x54, 0x60, 0x00, 0x02, 0x54, 0xf4,
+ 0x00, 0x02, 0x55, 0xb8, 0x00, 0x02, 0x56, 0x90, 0x00, 0x02, 0x57, 0x2c,
+ 0x00, 0x02, 0x57, 0xec, 0x00, 0x02, 0x58, 0xc0, 0x00, 0x02, 0x59, 0x4c,
+ 0x00, 0x02, 0x5a, 0x3c, 0x00, 0x02, 0x5b, 0x10, 0x00, 0x02, 0x5b, 0xe0,
+ 0x00, 0x02, 0x5b, 0xfc, 0x00, 0x02, 0x5c, 0x18, 0x00, 0x02, 0x5c, 0x34,
+ 0x00, 0x02, 0x5c, 0x50, 0x00, 0x02, 0x5c, 0x84, 0x00, 0x02, 0x5c, 0xbc,
+ 0x00, 0x02, 0x5c, 0xf4, 0x00, 0x02, 0x5d, 0x30, 0x00, 0x02, 0x5d, 0x68,
+ 0x00, 0x02, 0x5d, 0xa8, 0x00, 0x02, 0x5d, 0xf0, 0x00, 0x02, 0x5e, 0x3c,
+ 0x00, 0x02, 0x5e, 0x60, 0x00, 0x02, 0x5e, 0x84, 0x00, 0x02, 0x5e, 0xa8,
+ 0x00, 0x02, 0x5e, 0xcc, 0x00, 0x02, 0x5e, 0xf0, 0x00, 0x02, 0x5f, 0x14,
+ 0x00, 0x02, 0x5f, 0x38, 0x00, 0x02, 0x5f, 0x5c, 0x00, 0x02, 0x5f, 0x7c,
+ 0x00, 0x02, 0x5f, 0xa0, 0x00, 0x02, 0x5f, 0xc4, 0x00, 0x02, 0x5f, 0xe8,
+ 0x00, 0x02, 0x60, 0x08, 0x00, 0x02, 0x60, 0x28, 0x00, 0x02, 0x60, 0x48,
+ 0x00, 0x02, 0x60, 0x6c, 0x00, 0x02, 0x60, 0x94, 0x00, 0x02, 0x60, 0xbc,
+ 0x00, 0x02, 0x60, 0xe8, 0x00, 0x02, 0x61, 0x14, 0x00, 0x02, 0x61, 0x3c,
+ 0x00, 0x02, 0x61, 0x6c, 0x00, 0x02, 0x61, 0x98, 0x00, 0x02, 0x61, 0xc0,
+ 0x00, 0x02, 0x61, 0xe8, 0x00, 0x02, 0x62, 0x10, 0x00, 0x02, 0x62, 0x3c,
+ 0x00, 0x02, 0x62, 0x68, 0x00, 0x02, 0x62, 0x90, 0x00, 0x02, 0x62, 0xc0,
+ 0x00, 0x02, 0x62, 0xec, 0x00, 0x02, 0x63, 0x14, 0x00, 0x02, 0x63, 0x3c,
+ 0x00, 0x02, 0x63, 0x68, 0x00, 0x02, 0x63, 0x94, 0x00, 0x02, 0x63, 0xbc,
+ 0x00, 0x02, 0x63, 0xe4, 0x00, 0x02, 0x64, 0x10, 0x00, 0x02, 0x64, 0x3c,
+ 0x00, 0x02, 0x64, 0x64, 0x00, 0x02, 0x64, 0x88, 0x00, 0x02, 0x64, 0xb4,
+ 0x00, 0x02, 0x64, 0xe0, 0x00, 0x02, 0x65, 0x08, 0x00, 0x02, 0x65, 0x30,
+ 0x00, 0x02, 0x65, 0x5c, 0x00, 0x02, 0x65, 0x88, 0x00, 0x02, 0x65, 0xb0,
+ 0x00, 0x02, 0x65, 0xe0, 0x00, 0x02, 0x66, 0x14, 0x00, 0x02, 0x66, 0x48,
+ 0x00, 0x02, 0x66, 0x7c, 0x00, 0x02, 0x66, 0xb0, 0x00, 0x02, 0x66, 0xe4,
+ 0x00, 0x02, 0x67, 0x18, 0x00, 0x02, 0x67, 0x50, 0x00, 0x02, 0x67, 0x88,
+ 0x00, 0x02, 0x67, 0xc0, 0x00, 0x02, 0x67, 0xf8, 0x00, 0x02, 0x68, 0x2c,
+ 0x00, 0x02, 0x68, 0x60, 0x00, 0x02, 0x68, 0x94, 0x00, 0x02, 0x68, 0xc8,
+ 0x00, 0x02, 0x68, 0xfc, 0x00, 0x02, 0x69, 0x20, 0x00, 0x02, 0x69, 0x4c,
+ 0x00, 0x02, 0x69, 0x78, 0x00, 0x02, 0x69, 0xa4, 0x00, 0x02, 0x69, 0xcc,
+ 0x00, 0x02, 0x69, 0xf4, 0x00, 0x02, 0x6a, 0x20, 0x00, 0x02, 0x6a, 0x4c,
+ 0x00, 0x02, 0x6a, 0x80, 0x00, 0x02, 0x6a, 0xac, 0x00, 0x02, 0x6a, 0xd8,
+ 0x00, 0x02, 0x6b, 0x0c, 0x00, 0x02, 0x6b, 0x38, 0x00, 0x02, 0x6b, 0x64,
+ 0x00, 0x02, 0x6b, 0x98, 0x00, 0x02, 0x6b, 0xc4, 0x00, 0x02, 0x6b, 0xf0,
+ 0x00, 0x02, 0x6c, 0x24, 0x00, 0x02, 0x6c, 0x54, 0x00, 0x02, 0x6c, 0x88,
+ 0x00, 0x02, 0x6c, 0xcc, 0x00, 0x02, 0x6c, 0xfc, 0x00, 0x02, 0x6d, 0x30,
+ 0x00, 0x02, 0x6d, 0x70, 0x00, 0x02, 0x6d, 0xa4, 0x00, 0x02, 0x6d, 0xd4,
+ 0x00, 0x02, 0x6e, 0x14, 0x00, 0x02, 0x6e, 0x48, 0x00, 0x02, 0x6e, 0x78,
+ 0x00, 0x02, 0x6e, 0xb8, 0x00, 0x02, 0x6f, 0x00, 0x00, 0x02, 0x6f, 0x44,
+ 0x00, 0x02, 0x6f, 0xa0, 0x00, 0x02, 0x6f, 0xd4, 0x00, 0x02, 0x70, 0x0c,
+ 0x00, 0x02, 0x70, 0x3c, 0x00, 0x02, 0x70, 0x70, 0x00, 0x02, 0x70, 0x90,
+ 0x00, 0x02, 0x70, 0xac, 0x00, 0x02, 0x70, 0xec, 0x00, 0x02, 0x71, 0x08,
+ 0x00, 0x02, 0x71, 0x24, 0x00, 0x02, 0x71, 0x40, 0x00, 0x02, 0x71, 0x5c,
+ 0x00, 0x02, 0x71, 0x78, 0x00, 0x02, 0x71, 0x94, 0x00, 0x02, 0x71, 0xb0,
+ 0x00, 0x02, 0x71, 0xcc, 0x00, 0x02, 0x71, 0xf0, 0x00, 0x02, 0x72, 0x18,
+ 0x00, 0x02, 0x72, 0x3c, 0x00, 0x02, 0x72, 0x64, 0x00, 0x02, 0x72, 0x78,
+ 0x00, 0x02, 0x72, 0x94, 0x00, 0x02, 0x72, 0xb0, 0x00, 0x02, 0x72, 0xcc,
+ 0x00, 0x02, 0x72, 0xe8, 0x00, 0x02, 0x73, 0x04, 0x00, 0x02, 0x73, 0x20,
+ 0x00, 0x02, 0x73, 0x3c, 0x00, 0x02, 0x73, 0x58, 0x00, 0x02, 0x73, 0x74,
+ 0x00, 0x02, 0x73, 0x90, 0x00, 0x02, 0x73, 0xac, 0x00, 0x02, 0x73, 0xc8,
+ 0x00, 0x02, 0x73, 0xe4, 0x00, 0x02, 0x74, 0x00, 0x00, 0x02, 0x74, 0x1c,
+ 0x00, 0x02, 0x74, 0x30, 0x00, 0x02, 0x74, 0xe4, 0x00, 0x02, 0x77, 0xf8,
+ 0x00, 0x02, 0x78, 0xa0, 0x00, 0x02, 0x78, 0xb4, 0x00, 0x02, 0x78, 0xc8,
+ 0x00, 0x02, 0x78, 0xe4, 0x00, 0x02, 0x79, 0x00, 0x00, 0x02, 0x79, 0x1c,
+ 0x00, 0x02, 0x79, 0x40, 0x00, 0x02, 0x79, 0x68, 0x00, 0x02, 0x79, 0x8c,
+ 0x00, 0x02, 0x79, 0xb0, 0x00, 0x02, 0x79, 0xcc, 0x00, 0x02, 0x79, 0xf4,
+ 0x00, 0x02, 0x7a, 0x18, 0x00, 0x02, 0x7a, 0x34, 0x00, 0x02, 0x7a, 0x60,
+ 0x00, 0x02, 0x7a, 0xb4, 0x00, 0x02, 0x7a, 0xcc, 0x00, 0x02, 0x7b, 0x24,
+ 0x00, 0x02, 0x7b, 0x84, 0x00, 0x02, 0x7c, 0xc0, 0x00, 0x02, 0x7d, 0x48,
+ 0x00, 0x02, 0x7d, 0xd0, 0x00, 0x02, 0x7f, 0x8c, 0x00, 0x02, 0x7f, 0xa8,
+ 0x00, 0x02, 0x7f, 0xd4, 0x00, 0x02, 0x7f, 0xf0, 0x00, 0x02, 0x80, 0x1c,
+ 0x00, 0x02, 0x80, 0x38, 0x00, 0x02, 0x80, 0x64, 0x00, 0x02, 0x80, 0x84,
+ 0x00, 0x02, 0x80, 0xb4, 0x00, 0x02, 0x80, 0xd0, 0x00, 0x02, 0x80, 0xf8,
+ 0x00, 0x02, 0x81, 0x14, 0x00, 0x02, 0x81, 0x3c, 0x00, 0x02, 0x81, 0x58,
+ 0x00, 0x02, 0x81, 0x84, 0x00, 0x02, 0x81, 0xa0, 0x00, 0x02, 0x81, 0xcc,
+ 0x00, 0x02, 0x81, 0xe8, 0x00, 0x02, 0x82, 0x14, 0x00, 0x02, 0x82, 0x30,
+ 0x00, 0x02, 0x82, 0x5c, 0x00, 0x02, 0x82, 0x78, 0x00, 0x02, 0x82, 0xa4,
+ 0x00, 0x02, 0x82, 0xc0, 0x00, 0x02, 0x82, 0xec, 0x00, 0x02, 0x83, 0x08,
+ 0x00, 0x02, 0x83, 0x34, 0x00, 0x02, 0x83, 0x50, 0x00, 0x02, 0x83, 0x7c,
+ 0x00, 0x02, 0x83, 0x9c, 0x00, 0x02, 0x83, 0xd0, 0x00, 0x02, 0x84, 0x14,
+ 0x00, 0x02, 0x84, 0xa4, 0x00, 0x02, 0x84, 0xd8, 0x00, 0x02, 0x85, 0x40,
+ 0x00, 0x02, 0x86, 0x38, 0x00, 0x02, 0x86, 0xec, 0x00, 0x02, 0x87, 0xa8,
+ 0x00, 0x02, 0x87, 0xf8, 0x00, 0x02, 0x88, 0x50, 0x00, 0x02, 0x88, 0xa8,
+ 0x00, 0x02, 0x89, 0x04, 0x00, 0x02, 0x89, 0x60, 0x00, 0x02, 0x89, 0xc8,
+ 0x00, 0x02, 0x8a, 0x18, 0x00, 0x02, 0x8a, 0x40, 0x00, 0x02, 0x8a, 0x68,
+ 0x00, 0x02, 0x8a, 0xa4, 0x00, 0x02, 0x8b, 0x1c, 0x00, 0x02, 0x8b, 0x70,
+ 0x00, 0x02, 0x8b, 0xc4, 0x00, 0x02, 0x8b, 0xf0, 0x00, 0x02, 0x8c, 0x1c,
+ 0x00, 0x02, 0x8c, 0x48, 0x00, 0x02, 0x8c, 0x78, 0x00, 0x02, 0x8c, 0xbc,
+ 0x00, 0x02, 0x8d, 0x00, 0x00, 0x02, 0x8d, 0x1c, 0x00, 0x02, 0x8d, 0x38,
+ 0x00, 0x02, 0x8d, 0x50, 0x00, 0x02, 0x8d, 0x68, 0x00, 0x02, 0x8d, 0xb0,
+ 0x00, 0x02, 0x8d, 0xdc, 0x00, 0x02, 0x8e, 0x08, 0x00, 0x02, 0x8e, 0x30,
+ 0x00, 0x02, 0x8e, 0x58, 0x00, 0x02, 0x8e, 0x94, 0x00, 0x02, 0x8e, 0xd8,
+ 0x00, 0x02, 0x8f, 0x04, 0x00, 0x02, 0x8f, 0x2c, 0x00, 0x02, 0x8f, 0x94,
+ 0x00, 0x02, 0x8f, 0xd4, 0x00, 0x02, 0x90, 0x14, 0x00, 0x02, 0x90, 0x54,
+ 0x00, 0x02, 0x90, 0x94, 0x00, 0x02, 0x91, 0x14, 0x00, 0x02, 0x91, 0x94,
+ 0x00, 0x02, 0x92, 0x14, 0x00, 0x02, 0x92, 0x94, 0x00, 0x02, 0x92, 0xbc,
+ 0x00, 0x02, 0x92, 0xe4, 0x00, 0x02, 0x93, 0x0c, 0x00, 0x02, 0x93, 0x38,
+ 0x00, 0x02, 0x93, 0x54, 0x00, 0x02, 0x93, 0x80, 0x00, 0x02, 0x93, 0x9c,
+ 0x00, 0x02, 0x93, 0xc4, 0x00, 0x02, 0x94, 0xb4, 0x00, 0x02, 0x95, 0x20,
+ 0x00, 0x02, 0x95, 0xd4, 0x00, 0x02, 0x9e, 0xb4, 0x00, 0x02, 0xa1, 0x94,
+ 0x00, 0x02, 0xa1, 0xcc, 0x00, 0x02, 0xa2, 0x30, 0x00, 0x02, 0xa2, 0x80,
+ 0x00, 0x02, 0xa2, 0xe4, 0x00, 0x02, 0xa3, 0x78, 0x00, 0x02, 0xa4, 0x44,
+ 0x00, 0x02, 0xa5, 0x10, 0x00, 0x02, 0xa5, 0x74, 0x00, 0x02, 0xa6, 0x10,
+ 0x00, 0x02, 0xa8, 0x90, 0x00, 0x02, 0xab, 0x70, 0x00, 0x02, 0xab, 0xa8,
+ 0x00, 0x02, 0xac, 0x20, 0x00, 0x02, 0xac, 0x94, 0x00, 0x02, 0xac, 0xec,
+ 0x00, 0x02, 0xae, 0x48, 0x00, 0x02, 0xaf, 0xf4, 0x00, 0x02, 0xb0, 0x3c,
+ 0x00, 0x02, 0xb0, 0x70, 0x00, 0x02, 0xb1, 0x64, 0x00, 0x02, 0xb2, 0x34,
+ 0x00, 0x02, 0xb2, 0xc8, 0x00, 0x02, 0xb3, 0x5c, 0x00, 0x02, 0xb4, 0x20,
+ 0x00, 0x02, 0xb4, 0xe8, 0x00, 0x02, 0xb5, 0xac, 0x00, 0x02, 0xb6, 0x70,
+ 0x00, 0x02, 0xb9, 0xf4, 0x00, 0x02, 0xba, 0x70, 0x00, 0x02, 0xbb, 0x90,
+ 0x00, 0x02, 0xbd, 0x2c, 0x00, 0x02, 0xc0, 0x88, 0x00, 0x02, 0xc1, 0x08,
+ 0x00, 0x02, 0xc1, 0x8c, 0x00, 0x02, 0xc2, 0x00, 0x00, 0x02, 0xc2, 0x64,
+ 0x00, 0x02, 0xc2, 0xe8, 0x00, 0x02, 0xc3, 0x78, 0x00, 0x02, 0xc4, 0xbc,
+ 0x00, 0x02, 0xc5, 0xec, 0x00, 0x02, 0xc6, 0x88, 0x00, 0x02, 0xc7, 0x1c,
+ 0x00, 0x02, 0xc7, 0xd0, 0x00, 0x02, 0xc7, 0xf0, 0x00, 0x02, 0xc8, 0x10,
+ 0x00, 0x02, 0xc8, 0x30, 0x00, 0x02, 0xc8, 0x50, 0x00, 0x02, 0xc8, 0x70,
+ 0x00, 0x02, 0xc8, 0x90, 0x00, 0x02, 0xc8, 0xb0, 0x00, 0x02, 0xc8, 0xd0,
+ 0x00, 0x02, 0xca, 0x44, 0x00, 0x02, 0xcb, 0x20, 0x00, 0x02, 0xcb, 0xfc,
+ 0x00, 0x02, 0xcc, 0xa8, 0x00, 0x02, 0xcd, 0xc4, 0x00, 0x02, 0xce, 0x54,
+ 0x00, 0x02, 0xce, 0xe4, 0x00, 0x02, 0xcf, 0x9c, 0x00, 0x02, 0xd0, 0x10,
+ 0x00, 0x02, 0xd0, 0x84, 0x00, 0x02, 0xd0, 0xf8, 0x00, 0x02, 0xd1, 0x50,
+ 0x00, 0x02, 0xd1, 0xac, 0x00, 0x02, 0xd2, 0x40, 0x00, 0x02, 0xd2, 0xec,
+ 0x00, 0x02, 0xd3, 0x54, 0x00, 0x02, 0xd3, 0xc8, 0x00, 0x02, 0xd4, 0x60,
+ 0x00, 0x02, 0xd4, 0xc4, 0x00, 0x02, 0xd5, 0x84, 0x00, 0x02, 0xd6, 0x64,
+ 0x00, 0x02, 0xd7, 0x34, 0x00, 0x02, 0xd7, 0xa8, 0x00, 0x02, 0xd8, 0x4c,
+ 0x00, 0x02, 0xd8, 0xa8, 0x00, 0x02, 0xd9, 0x44, 0x00, 0x02, 0xda, 0x2c,
+ 0x00, 0x02, 0xda, 0xa8, 0x00, 0x02, 0xdb, 0xd0, 0x00, 0x02, 0xdd, 0xfc,
+ 0x00, 0x02, 0xde, 0x94, 0x00, 0x02, 0xdf, 0xb0, 0x00, 0x02, 0xe0, 0xf8,
+ 0x00, 0x02, 0xe2, 0x0c, 0x00, 0x02, 0xe3, 0xa0, 0x00, 0x02, 0xe4, 0x98,
+ 0x00, 0x02, 0xe5, 0x18, 0x00, 0x02, 0xe5, 0xdc, 0x00, 0x02, 0xe6, 0xc4,
+ 0x00, 0x02, 0xe7, 0x58, 0x00, 0x02, 0xe7, 0xcc, 0x00, 0x02, 0xe8, 0x6c,
+ 0x00, 0x02, 0xe8, 0xb4, 0x00, 0x02, 0xe9, 0x54, 0x00, 0x02, 0xea, 0x1c,
+ 0x00, 0x02, 0xea, 0x70, 0x00, 0x02, 0xea, 0xa0, 0x00, 0x02, 0xeb, 0xc0,
+ 0x00, 0x02, 0xec, 0xac, 0x00, 0x02, 0xec, 0xec, 0x00, 0x02, 0xed, 0x48,
+ 0x00, 0x02, 0xed, 0xac, 0x00, 0x02, 0xee, 0x0c, 0x00, 0x02, 0xee, 0x60,
+ 0x00, 0x02, 0xee, 0xac, 0x00, 0x02, 0xef, 0x40, 0x00, 0x02, 0xf0, 0x00,
+ 0x00, 0x02, 0xf0, 0xe8, 0x00, 0x02, 0xf2, 0xf4, 0x00, 0x02, 0xf3, 0xe8,
+ 0x00, 0x02, 0xf5, 0x0c, 0x00, 0x02, 0xf6, 0x48, 0x00, 0x02, 0xf7, 0x48,
+ 0x00, 0x02, 0xf8, 0x6c, 0x00, 0x02, 0xf9, 0xa0, 0x00, 0x02, 0xfa, 0x90,
+ 0x00, 0x02, 0xfb, 0x64, 0x00, 0x02, 0xfc, 0x70, 0x00, 0x02, 0xfd, 0xa4,
+ 0x00, 0x02, 0xfe, 0xfc, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x98,
+ 0x00, 0x03, 0x01, 0x08, 0x00, 0x03, 0x01, 0xbc, 0x00, 0x03, 0x02, 0xb0,
+ 0x00, 0x03, 0x03, 0xe8, 0x00, 0x03, 0x05, 0x64, 0x00, 0x03, 0x07, 0x24,
+ 0x00, 0x03, 0x07, 0xc0, 0x00, 0x03, 0x08, 0x80, 0x00, 0x03, 0x08, 0xe8,
+ 0x00, 0x03, 0x09, 0x74, 0x00, 0x03, 0x09, 0x90, 0x00, 0x03, 0x09, 0xb8,
+ 0x00, 0x03, 0x09, 0xd0, 0x00, 0x03, 0x09, 0xe8, 0x00, 0x03, 0x0a, 0x00,
+ 0x00, 0x03, 0x0a, 0x18, 0x00, 0x03, 0x0a, 0x98, 0x00, 0x03, 0x0a, 0xe8,
+ 0x00, 0x03, 0x0b, 0x6c, 0x00, 0x03, 0x0c, 0x64, 0x00, 0x03, 0x0d, 0x0c,
+ 0x00, 0x03, 0x0e, 0x2c, 0x00, 0x03, 0x0e, 0xdc, 0x00, 0x03, 0x0f, 0x64,
+ 0x00, 0x03, 0x10, 0x08, 0x00, 0x03, 0x11, 0x0c, 0x00, 0x03, 0x12, 0xf4,
+ 0x00, 0x03, 0x15, 0xb8, 0x00, 0x03, 0x17, 0x78, 0x00, 0x03, 0x17, 0xfc,
+ 0x00, 0x03, 0x18, 0x48, 0x00, 0x03, 0x19, 0x20, 0x00, 0x03, 0x1a, 0x08,
+ 0x00, 0x03, 0x1a, 0xec, 0x00, 0x03, 0x1b, 0x78, 0x00, 0x03, 0x1c, 0x58,
+ 0x00, 0x03, 0x1d, 0x68, 0x00, 0x03, 0x1e, 0x40, 0x00, 0x03, 0x1f, 0x1c,
+ 0x00, 0x03, 0x1f, 0x6c, 0x00, 0x03, 0x1f, 0xa0, 0x00, 0x03, 0x1f, 0xec,
+ 0x00, 0x03, 0x20, 0x8c, 0x00, 0x03, 0x21, 0xd8, 0x00, 0x03, 0x23, 0x1c,
+ 0x00, 0x03, 0x23, 0x58, 0x00, 0x03, 0x23, 0xd8, 0x00, 0x03, 0x24, 0x30,
+ 0x00, 0x03, 0x24, 0x8c, 0x00, 0x03, 0x24, 0xe4, 0x00, 0x03, 0x25, 0x50,
+ 0x00, 0x03, 0x25, 0xb4, 0x00, 0x03, 0x26, 0x1c, 0x00, 0x03, 0x26, 0x80,
+ 0x00, 0x03, 0x27, 0x28, 0x00, 0x03, 0x28, 0x08, 0x00, 0x03, 0x29, 0x18,
+ 0x00, 0x03, 0x2a, 0x84, 0x00, 0x03, 0x2b, 0x18, 0x00, 0x03, 0x2c, 0xa8,
+ 0x00, 0x03, 0x2e, 0x0c, 0x00, 0x03, 0x2f, 0x98, 0x00, 0x03, 0x33, 0x58,
+ 0x00, 0x03, 0x34, 0xe4, 0x00, 0x03, 0x36, 0x5c, 0x00, 0x03, 0x36, 0xe8,
+ 0x00, 0x03, 0x37, 0x98, 0x00, 0x03, 0x3a, 0x4c, 0x00, 0x03, 0x3b, 0xec,
+ 0x00, 0x03, 0x3d, 0x04, 0x00, 0x03, 0x3d, 0xf0, 0x00, 0x03, 0x3f, 0x04,
+ 0x00, 0x03, 0x3f, 0xec, 0x00, 0x03, 0x40, 0x74, 0x00, 0x03, 0x40, 0xd8,
+ 0x00, 0x03, 0x41, 0x3c, 0x00, 0x03, 0x41, 0x80, 0x00, 0x03, 0x41, 0xc0,
+ 0x00, 0x03, 0x42, 0x8c, 0x00, 0x03, 0x43, 0x84, 0x00, 0x03, 0x44, 0x04,
+ 0x00, 0x03, 0x44, 0x38, 0x00, 0x03, 0x44, 0x74, 0x00, 0x03, 0x44, 0xb8,
+ 0x00, 0x03, 0x44, 0xe8, 0x00, 0x03, 0x45, 0x48, 0x00, 0x03, 0x45, 0xbc,
+ 0x00, 0x03, 0x46, 0xa0, 0x00, 0x03, 0x47, 0x38, 0x00, 0x03, 0x47, 0xf4,
+ 0x00, 0x03, 0x49, 0x74, 0x00, 0x03, 0x4a, 0xf8, 0x00, 0x03, 0x4e, 0x58,
+ 0x00, 0x03, 0x4e, 0xb8, 0x00, 0x03, 0x4f, 0x68, 0x00, 0x03, 0x4f, 0xd0,
+ 0x00, 0x03, 0x50, 0x5c, 0x00, 0x03, 0x50, 0xec, 0x00, 0x03, 0x51, 0xac,
+ 0x00, 0x03, 0x52, 0x38, 0x00, 0x03, 0x52, 0xb8, 0x00, 0x03, 0x53, 0x34,
+ 0x00, 0x03, 0x53, 0xa4, 0x00, 0x03, 0x53, 0xf8, 0x00, 0x03, 0x54, 0x60,
+ 0x00, 0x03, 0x54, 0xc4, 0x00, 0x03, 0x55, 0x1c, 0x00, 0x03, 0x55, 0xe0,
+ 0x00, 0x03, 0x56, 0x24, 0x00, 0x03, 0x56, 0x78, 0x00, 0x03, 0x56, 0xc8,
+ 0x00, 0x03, 0x57, 0x34, 0x00, 0x03, 0x57, 0xf0, 0x00, 0x03, 0x59, 0x9c,
+ 0x00, 0x03, 0x5b, 0x90, 0x00, 0x03, 0x5c, 0xbc, 0x00, 0x03, 0x5e, 0xec,
+ 0x00, 0x03, 0x60, 0x4c, 0x00, 0x03, 0x62, 0xc4, 0x00, 0x03, 0x68, 0x14,
+ 0x00, 0x03, 0x69, 0x4c, 0x00, 0x03, 0x6b, 0x9c, 0x00, 0x03, 0x6c, 0x60,
+ 0x00, 0x03, 0x6d, 0x24, 0x00, 0x03, 0x6d, 0xf0, 0x00, 0x03, 0x6f, 0x74,
+ 0x00, 0x03, 0x70, 0xf4, 0x00, 0x03, 0x72, 0x54, 0x00, 0x03, 0x73, 0xb0,
+ 0x00, 0x03, 0x74, 0xfc, 0x00, 0x03, 0x75, 0x80, 0x00, 0x03, 0x75, 0xb4,
+ 0x00, 0x03, 0x75, 0xe8, 0x00, 0x03, 0x76, 0x18, 0x00, 0x03, 0x76, 0x48,
+ 0x00, 0x03, 0x76, 0xa0, 0x00, 0x03, 0x76, 0xbc, 0x00, 0x03, 0x76, 0xd8,
+ 0x00, 0x03, 0x76, 0xf4, 0x00, 0x03, 0x77, 0x1c, 0x00, 0x03, 0x77, 0x40,
+ 0x00, 0x03, 0x77, 0x58, 0x00, 0x03, 0x77, 0x70, 0x00, 0x03, 0x78, 0x4c,
+ 0x00, 0x03, 0x78, 0xe4, 0x00, 0x03, 0x79, 0xa0, 0x00, 0x03, 0x7a, 0x10,
+ 0x00, 0x03, 0x7a, 0x84, 0x00, 0x03, 0x7b, 0xa4, 0x00, 0x03, 0x7c, 0x8c,
+ 0x00, 0x03, 0x7c, 0xf8, 0x00, 0x03, 0x7d, 0x68, 0x00, 0x03, 0x7d, 0xa4,
+ 0x00, 0x03, 0x7d, 0xe0, 0x00, 0x03, 0x7e, 0x08, 0x00, 0x03, 0x7e, 0x34,
+ 0x00, 0x03, 0x7e, 0x5c, 0x00, 0x03, 0x7e, 0x88, 0x00, 0x03, 0x7e, 0xb0,
+ 0x00, 0x03, 0x7e, 0xdc, 0x00, 0x03, 0x7f, 0x08, 0x00, 0x03, 0x7f, 0x34,
+ 0x00, 0x03, 0x7f, 0x98, 0x00, 0x03, 0x7f, 0xfc, 0x00, 0x03, 0x80, 0x5c,
+ 0x00, 0x03, 0x80, 0xec, 0x00, 0x03, 0x81, 0x94, 0x00, 0x03, 0x82, 0x00,
+ 0x00, 0x03, 0x82, 0x90, 0x00, 0x03, 0x83, 0x34, 0x00, 0x03, 0x83, 0x90,
+ 0x00, 0x03, 0x84, 0x54, 0x00, 0x03, 0x84, 0xf8, 0x00, 0x03, 0x85, 0x98,
+ 0x00, 0x03, 0x86, 0x6c, 0x00, 0x03, 0x87, 0x70, 0x00, 0x03, 0x88, 0x88,
+ 0x00, 0x03, 0x89, 0x64, 0x00, 0x03, 0x8a, 0x64, 0x00, 0x03, 0x8b, 0x7c,
+ 0x00, 0x03, 0x8c, 0x48, 0x00, 0x03, 0x8d, 0x70, 0x00, 0x03, 0x8e, 0x88,
+ 0x00, 0x03, 0x8f, 0xb8, 0x00, 0x03, 0x90, 0x38, 0x00, 0x03, 0x90, 0xe8,
+ 0x00, 0x03, 0x91, 0xb0, 0x00, 0x03, 0x92, 0x3c, 0x00, 0x03, 0x92, 0xec,
+ 0x00, 0x03, 0x93, 0xb4, 0x00, 0x03, 0x94, 0x2c, 0x00, 0x03, 0x95, 0x04,
+ 0x00, 0x03, 0x95, 0xcc, 0x00, 0x03, 0x96, 0x90, 0x00, 0x03, 0x96, 0xc0,
+ 0x00, 0x03, 0x96, 0xec, 0x00, 0x03, 0x97, 0x18, 0x00, 0x03, 0x97, 0x44,
+ 0x00, 0x03, 0x97, 0x74, 0x00, 0x03, 0x98, 0x00, 0x00, 0x03, 0x98, 0x28,
+ 0x00, 0x03, 0x98, 0x50, 0x00, 0x03, 0x98, 0xa4, 0x00, 0x03, 0x98, 0xf8,
+ 0x00, 0x03, 0x99, 0x20, 0x00, 0x03, 0x99, 0x50, 0x00, 0x03, 0x99, 0x80,
+ 0x00, 0x03, 0x99, 0xa0, 0x00, 0x03, 0x99, 0xf0, 0x00, 0x03, 0x9a, 0x40,
+ 0x00, 0x03, 0x9a, 0x6c, 0x00, 0x03, 0x9a, 0x9c, 0x00, 0x03, 0x9a, 0xe4,
+ 0x00, 0x03, 0x9b, 0x2c, 0x00, 0x03, 0x9b, 0x80, 0x00, 0x03, 0x9b, 0xd0,
+ 0x00, 0x03, 0x9c, 0x1c, 0x00, 0x03, 0x9c, 0x6c, 0x00, 0x03, 0x9c, 0xc0,
+ 0x00, 0x03, 0x9d, 0x14, 0x00, 0x03, 0x9d, 0x80, 0x00, 0x03, 0x9e, 0x24,
+ 0x00, 0x03, 0x9e, 0x7c, 0x00, 0x03, 0x9e, 0xc4, 0x00, 0x03, 0x9f, 0x1c,
+ 0x00, 0x03, 0x9f, 0xa8, 0x00, 0x03, 0xa0, 0x28, 0x00, 0x03, 0xa0, 0xb4,
+ 0x00, 0x03, 0xa1, 0x84, 0x00, 0x03, 0xa2, 0x14, 0x00, 0x03, 0xa3, 0x38,
+ 0x00, 0x03, 0xa4, 0x64, 0x00, 0x03, 0xa4, 0xf0, 0x00, 0x03, 0xa5, 0x50,
+ 0x00, 0x03, 0xa5, 0xb0, 0x00, 0x03, 0xa5, 0xec, 0x00, 0x03, 0xa6, 0x20,
+ 0x00, 0x03, 0xa6, 0x54, 0x00, 0x03, 0xa6, 0x78, 0x00, 0x03, 0xa6, 0x9c,
+ 0x00, 0x03, 0xa6, 0xb4, 0x00, 0x03, 0xa6, 0xcc, 0x00, 0x03, 0xa7, 0x24,
+ 0x00, 0x03, 0xa7, 0x78, 0x00, 0x03, 0xa8, 0x3c, 0x00, 0x03, 0xa8, 0xfc,
+ 0x00, 0x03, 0xa9, 0xf8, 0x00, 0x03, 0xaa, 0x28, 0x00, 0x03, 0xaa, 0x58,
+ 0x00, 0x03, 0xaa, 0x9c, 0x00, 0x03, 0xaa, 0xdc, 0x00, 0x03, 0xab, 0x1c,
+ 0x00, 0x03, 0xab, 0x78, 0x00, 0x03, 0xab, 0xb4, 0x00, 0x03, 0xab, 0xf0,
+ 0x00, 0x03, 0xac, 0x3c, 0x00, 0x03, 0xac, 0x88, 0x00, 0x03, 0xad, 0x0c,
+ 0x00, 0x03, 0xad, 0x0c, 0x00, 0x03, 0xad, 0x20, 0x00, 0x03, 0xad, 0x34,
+ 0x00, 0x03, 0xad, 0x50, 0x00, 0x03, 0xad, 0x64, 0x00, 0x03, 0xad, 0x80,
+ 0x00, 0x03, 0xad, 0x9c, 0x00, 0x03, 0xad, 0xc0, 0x00, 0x03, 0xad, 0xd4,
+ 0x00, 0x03, 0xad, 0xf0, 0x00, 0x03, 0xae, 0x0c, 0x00, 0x03, 0xae, 0x30,
+ 0x00, 0x03, 0xae, 0x4c, 0x00, 0x03, 0xae, 0x70, 0x00, 0x03, 0xae, 0x94,
+ 0x00, 0x03, 0xae, 0xc0, 0x00, 0x03, 0xae, 0xd4, 0x00, 0x03, 0xae, 0xf0,
+ 0x00, 0x03, 0xaf, 0x0c, 0x00, 0x03, 0xaf, 0x30, 0x00, 0x03, 0xaf, 0x4c,
+ 0x00, 0x03, 0xaf, 0x70, 0x00, 0x03, 0xaf, 0x94, 0x00, 0x03, 0xaf, 0xc0,
+ 0x00, 0x03, 0xaf, 0xdc, 0x00, 0x03, 0xb0, 0x00, 0x00, 0x03, 0xb0, 0x24,
+ 0x00, 0x03, 0xb0, 0x50, 0x00, 0x03, 0xb0, 0x74, 0x00, 0x03, 0xb0, 0xa0,
+ 0x00, 0x03, 0xb0, 0xcc, 0x00, 0x03, 0xb1, 0x00, 0x00, 0x03, 0xb1, 0x14,
+ 0x00, 0x03, 0xb1, 0x30, 0x00, 0x03, 0xb1, 0x4c, 0x00, 0x03, 0xb1, 0x70,
+ 0x00, 0x03, 0xb1, 0x8c, 0x00, 0x03, 0xb1, 0xb0, 0x00, 0x03, 0xb1, 0xd4,
+ 0x00, 0x03, 0xb2, 0x00, 0x00, 0x03, 0xb2, 0x1c, 0x00, 0x03, 0xb2, 0x40,
+ 0x00, 0x03, 0xb2, 0x64, 0x00, 0x03, 0xb2, 0x90, 0x00, 0x03, 0xb2, 0xb4,
+ 0x00, 0x03, 0xb2, 0xe0, 0x00, 0x03, 0xb3, 0x0c, 0x00, 0x03, 0xb3, 0x40,
+ 0x00, 0x03, 0xb3, 0x5c, 0x00, 0x03, 0xb3, 0x80, 0x00, 0x03, 0xb3, 0xa4,
+ 0x00, 0x03, 0xb3, 0xd0, 0x00, 0x03, 0xb3, 0xf4, 0x00, 0x03, 0xb4, 0x20,
+ 0x00, 0x03, 0xb4, 0x4c, 0x00, 0x03, 0xb4, 0x80, 0x00, 0x03, 0xb4, 0xa4,
+ 0x00, 0x03, 0xb4, 0xd0, 0x00, 0x03, 0xb4, 0xfc, 0x00, 0x03, 0xb5, 0x30,
+ 0x00, 0x03, 0xb5, 0x5c, 0x00, 0x03, 0xb5, 0x90, 0x00, 0x03, 0xb5, 0xc4,
+ 0x00, 0x03, 0xb6, 0x00, 0x00, 0x03, 0xb6, 0x14, 0x00, 0x03, 0xb6, 0x30,
+ 0x00, 0x03, 0xb6, 0x4c, 0x00, 0x03, 0xb6, 0x70, 0x00, 0x03, 0xb6, 0x8c,
+ 0x00, 0x03, 0xb6, 0xb0, 0x00, 0x03, 0xb6, 0xd4, 0x00, 0x03, 0xb7, 0x00,
+ 0x00, 0x03, 0xb7, 0x1c, 0x00, 0x03, 0xb7, 0x40, 0x00, 0x03, 0xb7, 0x64,
+ 0x00, 0x03, 0xb7, 0x90, 0x00, 0x03, 0xb7, 0xb4, 0x00, 0x03, 0xb7, 0xe0,
+ 0x00, 0x03, 0xb8, 0x0c, 0x00, 0x03, 0xb8, 0x40, 0x00, 0x03, 0xb8, 0x5c,
+ 0x00, 0x03, 0xb8, 0x80, 0x00, 0x03, 0xb8, 0xa4, 0x00, 0x03, 0xb8, 0xd0,
+ 0x00, 0x03, 0xb8, 0xf4, 0x00, 0x03, 0xb9, 0x20, 0x00, 0x03, 0xb9, 0x4c,
+ 0x00, 0x03, 0xb9, 0x80, 0x00, 0x03, 0xb9, 0xa4, 0x00, 0x03, 0xb9, 0xd0,
+ 0x00, 0x03, 0xb9, 0xfc, 0x00, 0x03, 0xba, 0x30, 0x00, 0x03, 0xba, 0x5c,
+ 0x00, 0x03, 0xba, 0x90, 0x00, 0x03, 0xba, 0xc4, 0x00, 0x03, 0xbb, 0x00,
+ 0x00, 0x03, 0xbb, 0x1c, 0x00, 0x03, 0xbb, 0x40, 0x00, 0x03, 0xbb, 0x64,
+ 0x00, 0x03, 0xbb, 0x90, 0x00, 0x03, 0xbb, 0xb4, 0x00, 0x03, 0xbb, 0xe0,
+ 0x00, 0x03, 0xbc, 0x0c, 0x00, 0x03, 0xbc, 0x40, 0x00, 0x03, 0xbc, 0x64,
+ 0x00, 0x03, 0xbc, 0x90, 0x00, 0x03, 0xbc, 0xbc, 0x00, 0x03, 0xbc, 0xf0,
+ 0x00, 0x03, 0xbd, 0x1c, 0x00, 0x03, 0xbd, 0x50, 0x00, 0x03, 0xbd, 0x84,
+ 0x00, 0x03, 0xbd, 0xc0, 0x00, 0x03, 0xbd, 0xe4, 0x00, 0x03, 0xbe, 0x10,
+ 0x00, 0x03, 0xbe, 0x3c, 0x00, 0x03, 0xbe, 0x70, 0x00, 0x03, 0xbe, 0x9c,
+ 0x00, 0x03, 0xbe, 0xd0, 0x00, 0x03, 0xbf, 0x04, 0x00, 0x03, 0xbf, 0x40,
+ 0x00, 0x03, 0xbf, 0x6c, 0x00, 0x03, 0xbf, 0xa0, 0x00, 0x03, 0xbf, 0xd4,
+ 0x00, 0x03, 0xc0, 0x10, 0x00, 0x03, 0xc0, 0x44, 0x00, 0x03, 0xc0, 0x80,
+ 0x00, 0x03, 0xc0, 0xbc, 0x00, 0x03, 0xc1, 0x00, 0x00, 0x03, 0xc1, 0x14,
+ 0x00, 0x03, 0xc1, 0x30, 0x00, 0x03, 0xc1, 0x4c, 0x00, 0x03, 0xc1, 0x70,
+ 0x00, 0x03, 0xc1, 0x8c, 0x00, 0x03, 0xc1, 0xb0, 0x00, 0x03, 0xc1, 0xd4,
+ 0x00, 0x03, 0xc2, 0x00, 0x00, 0x03, 0xc2, 0x1c, 0x00, 0x03, 0xc2, 0x40,
+ 0x00, 0x03, 0xc2, 0x64, 0x00, 0x03, 0xc2, 0x90, 0x00, 0x03, 0xc2, 0xb4,
+ 0x00, 0x03, 0xc2, 0xe0, 0x00, 0x03, 0xc3, 0x0c, 0x00, 0x03, 0xc3, 0x40,
+ 0x00, 0x03, 0xc3, 0x5c, 0x00, 0x03, 0xc3, 0x80, 0x00, 0x03, 0xc3, 0xa4,
+ 0x00, 0x03, 0xc3, 0xd0, 0x00, 0x03, 0xc3, 0xf4, 0x00, 0x03, 0xc4, 0x20,
+ 0x00, 0x03, 0xc4, 0x4c, 0x00, 0x03, 0xc4, 0x80, 0x00, 0x03, 0xc4, 0xa4,
+ 0x00, 0x03, 0xc4, 0xd0, 0x00, 0x03, 0xc4, 0xfc, 0x00, 0x03, 0xc5, 0x30,
+ 0x00, 0x03, 0xc5, 0x5c, 0x00, 0x03, 0xc5, 0x90, 0x00, 0x03, 0xc5, 0xc4,
+ 0x00, 0x03, 0xc6, 0x00, 0x00, 0x03, 0xc6, 0x1c, 0x00, 0x03, 0xc6, 0x40,
+ 0x00, 0x03, 0xc6, 0x64, 0x00, 0x03, 0xc6, 0x90, 0x00, 0x03, 0xc6, 0xb4,
+ 0x00, 0x03, 0xc6, 0xe0, 0x00, 0x03, 0xc7, 0x0c, 0x00, 0x03, 0xc7, 0x40,
+ 0x00, 0x03, 0xc7, 0x64, 0x00, 0x03, 0xc7, 0x90, 0x00, 0x03, 0xc7, 0xbc,
+ 0x00, 0x03, 0xc7, 0xf0, 0x00, 0x03, 0xc8, 0x1c, 0x00, 0x03, 0xc8, 0x50,
+ 0x00, 0x03, 0xc8, 0x84, 0x00, 0x03, 0xc8, 0xc0, 0x00, 0x03, 0xc8, 0xe4,
+ 0x00, 0x03, 0xc9, 0x10, 0x00, 0x03, 0xc9, 0x3c, 0x00, 0x03, 0xc9, 0x70,
+ 0x00, 0x03, 0xc9, 0x9c, 0x00, 0x03, 0xc9, 0xd0, 0x00, 0x03, 0xca, 0x04,
+ 0x00, 0x03, 0xca, 0x40, 0x00, 0x03, 0xca, 0x6c, 0x00, 0x03, 0xca, 0xa0,
+ 0x00, 0x03, 0xca, 0xd4, 0x00, 0x03, 0xcb, 0x10, 0x00, 0x03, 0xcb, 0x44,
+ 0x00, 0x03, 0xcb, 0x80, 0x00, 0x03, 0xcb, 0xbc, 0x00, 0x03, 0xcc, 0x00,
+ 0x00, 0x03, 0xcc, 0x1c, 0x00, 0x03, 0xcc, 0x40, 0x00, 0x03, 0xcc, 0x64,
+ 0x00, 0x03, 0xcc, 0x90, 0x00, 0x03, 0xcc, 0xb4, 0x00, 0x03, 0xcc, 0xe0,
+ 0x00, 0x03, 0xcd, 0x0c, 0x00, 0x03, 0xcd, 0x40, 0x00, 0x03, 0xcd, 0x64,
+ 0x00, 0x03, 0xcd, 0x90, 0x00, 0x03, 0xcd, 0xbc, 0x00, 0x03, 0xcd, 0xf0,
+ 0x00, 0x03, 0xce, 0x1c, 0x00, 0x03, 0xce, 0x50, 0x00, 0x03, 0xce, 0x84,
+ 0x00, 0x03, 0xce, 0xc0, 0x00, 0x03, 0xce, 0xe4, 0x00, 0x03, 0xcf, 0x10,
+ 0x00, 0x03, 0xcf, 0x3c, 0x00, 0x03, 0xcf, 0x70, 0x00, 0x03, 0xcf, 0x9c,
+ 0x00, 0x03, 0xcf, 0xd0, 0x00, 0x03, 0xd0, 0x04, 0x00, 0x03, 0xd0, 0x40,
+ 0x00, 0x03, 0xd0, 0x6c, 0x00, 0x03, 0xd0, 0xa0, 0x00, 0x03, 0xd0, 0xd4,
+ 0x00, 0x03, 0xd1, 0x10, 0x00, 0x03, 0xd1, 0x44, 0x00, 0x03, 0xd1, 0x80,
+ 0x00, 0x03, 0xd1, 0xbc, 0x00, 0x03, 0xd2, 0x00, 0x00, 0x03, 0xd2, 0x24,
+ 0x00, 0x03, 0xd2, 0x50, 0x00, 0x03, 0xd2, 0x7c, 0x00, 0x03, 0xd2, 0xb0,
+ 0x00, 0x03, 0xd2, 0xdc, 0x00, 0x03, 0xd3, 0x10, 0x00, 0x03, 0xd3, 0x44,
+ 0x00, 0x03, 0xd3, 0x80, 0x00, 0x03, 0xd3, 0xac, 0x00, 0x03, 0xd3, 0xe0,
+ 0x00, 0x03, 0xd4, 0x14, 0x00, 0x03, 0xd4, 0x50, 0x00, 0x03, 0xd4, 0x84,
+ 0x00, 0x03, 0xd4, 0xc0, 0x00, 0x03, 0xd4, 0xfc, 0x00, 0x03, 0xd5, 0x40,
+ 0x00, 0x03, 0xd5, 0x6c, 0x00, 0x03, 0xd5, 0xa0, 0x00, 0x03, 0xd5, 0xd4,
+ 0x00, 0x03, 0xd6, 0x10, 0x00, 0x03, 0xd6, 0x44, 0x00, 0x03, 0xd6, 0x80,
+ 0x00, 0x03, 0xd6, 0xbc, 0x00, 0x03, 0xd7, 0x00, 0x00, 0x03, 0xd7, 0x34,
+ 0x00, 0x03, 0xd7, 0x70, 0x00, 0x03, 0xd7, 0xac, 0x00, 0x03, 0xd7, 0xf0,
+ 0x00, 0x03, 0xd8, 0x2c, 0x00, 0x03, 0xd8, 0x70, 0x00, 0x03, 0xd8, 0xb4,
+ 0x00, 0x03, 0xd9, 0x00, 0x00, 0x03, 0xd9, 0x4c, 0x00, 0x03, 0xd9, 0x98,
+ 0x00, 0x03, 0xd9, 0xe0, 0x00, 0x03, 0xda, 0x24, 0x00, 0x03, 0xda, 0xf0,
+ 0x00, 0x03, 0xdb, 0xb8, 0x00, 0x03, 0xdc, 0x40, 0x00, 0x03, 0xdc, 0xc8,
+ 0x00, 0x03, 0xdd, 0x14, 0x00, 0x03, 0xdd, 0x50, 0x00, 0x03, 0xdd, 0x8c,
+ 0x00, 0x03, 0xdd, 0xc0, 0x00, 0x03, 0xdd, 0xf4, 0x00, 0x03, 0xde, 0x1c,
+ 0x00, 0x03, 0xde, 0x50, 0x00, 0x03, 0xde, 0x84, 0x00, 0x03, 0xde, 0xa4,
+ 0x00, 0x03, 0xde, 0xec, 0x00, 0x03, 0xdf, 0x44, 0x00, 0x03, 0xe0, 0x04,
+ 0x00, 0x03, 0xe0, 0xd8, 0x00, 0x03, 0xe1, 0xbc, 0x00, 0x03, 0xe1, 0xe4,
+ 0x00, 0x03, 0xe2, 0x44, 0x00, 0x03, 0xe2, 0xbc, 0x00, 0x03, 0xe3, 0x28,
+ 0x00, 0x03, 0xe3, 0xd4, 0x00, 0x03, 0xe4, 0x74, 0x00, 0x03, 0xe4, 0xe8,
+ 0x00, 0x03, 0xe5, 0x78, 0x00, 0x03, 0xe6, 0x0c, 0x00, 0x03, 0xe6, 0xb0,
+ 0x00, 0x03, 0xe7, 0x30, 0x00, 0x03, 0xe7, 0xc8, 0x00, 0x03, 0xe8, 0x44,
+ 0x00, 0x03, 0xe8, 0xcc, 0x00, 0x03, 0xe9, 0x50, 0x00, 0x03, 0xe9, 0xb0,
+ 0x00, 0x03, 0xea, 0x10, 0x00, 0x03, 0xea, 0x20, 0x00, 0x03, 0xea, 0x38,
+ 0x00, 0x03, 0xea, 0x58, 0x00, 0x03, 0xea, 0x94, 0x00, 0x03, 0xea, 0xcc,
+ 0x00, 0x03, 0xea, 0xe4, 0x00, 0x03, 0xea, 0xfc, 0x00, 0x03, 0xeb, 0x14,
+ 0x00, 0x03, 0xeb, 0x2c, 0x00, 0x03, 0xeb, 0x44, 0x00, 0x03, 0xeb, 0x5c,
+ 0x00, 0x03, 0xec, 0x2c, 0x00, 0x03, 0xec, 0xf8, 0x00, 0x03, 0xed, 0x48,
+ 0x00, 0x03, 0xed, 0x98, 0x00, 0x03, 0xee, 0x5c, 0x00, 0x03, 0xef, 0x18,
+ 0x00, 0x03, 0xef, 0x7c, 0x00, 0x03, 0xef, 0xd8, 0x00, 0x03, 0xf0, 0x5c,
+ 0x00, 0x03, 0xf0, 0xdc, 0x00, 0x03, 0xf1, 0x6c, 0x00, 0x03, 0xf1, 0xfc,
+ 0x00, 0x03, 0xf2, 0x58, 0x00, 0x03, 0xf2, 0xbc, 0x00, 0x03, 0xf3, 0x24,
+ 0x00, 0x03, 0xf3, 0x88, 0x00, 0x03, 0xf3, 0xc4, 0x00, 0x03, 0xf4, 0x00,
+ 0x00, 0x03, 0xf4, 0x18, 0x00, 0x03, 0xf4, 0x30, 0x00, 0x03, 0xf4, 0x74,
+ 0x00, 0x03, 0xf4, 0xbc, 0x00, 0x03, 0xf5, 0x04, 0x00, 0x03, 0xf5, 0x54,
+ 0x00, 0x03, 0xf5, 0xcc, 0x00, 0x03, 0xf6, 0x48, 0x00, 0x03, 0xf6, 0xdc,
+ 0x00, 0x03, 0xf7, 0x74, 0x00, 0x03, 0xf7, 0xf4, 0x00, 0x03, 0xf8, 0x3c,
+ 0x00, 0x03, 0xf8, 0x80, 0x00, 0x03, 0xf8, 0xe4, 0x00, 0x03, 0xf9, 0x44,
+ 0x00, 0x03, 0xf9, 0x98, 0x00, 0x03, 0xf9, 0xec, 0x00, 0x03, 0xfa, 0x64,
+ 0x00, 0x03, 0xfa, 0xd8, 0x00, 0x03, 0xfb, 0xb8, 0x00, 0x03, 0xfc, 0x98,
+ 0x00, 0x03, 0xfd, 0x68, 0x00, 0x03, 0xfe, 0x38, 0x00, 0x03, 0xfe, 0x84,
+ 0x00, 0x03, 0xfe, 0xcc, 0x00, 0x03, 0xff, 0x14, 0x00, 0x03, 0xff, 0x5c,
+ 0x00, 0x03, 0xff, 0xa4, 0x00, 0x03, 0xff, 0xec, 0x00, 0x04, 0x00, 0x44,
+ 0x00, 0x04, 0x00, 0x6c, 0x00, 0x04, 0x00, 0x94, 0x00, 0x04, 0x00, 0xbc,
+ 0x00, 0x04, 0x00, 0xe8, 0x00, 0x04, 0x01, 0x14, 0x00, 0x04, 0x01, 0x40,
+ 0x00, 0x04, 0x01, 0x6c, 0x00, 0x04, 0x01, 0xa4, 0x00, 0x04, 0x01, 0xd8,
+ 0x00, 0x04, 0x02, 0x0c, 0x00, 0x04, 0x02, 0x44, 0x00, 0x04, 0x02, 0x7c,
+ 0x00, 0x04, 0x02, 0xb0, 0x00, 0x04, 0x02, 0xdc, 0x00, 0x04, 0x03, 0x08,
+ 0x00, 0x04, 0x03, 0x34, 0x00, 0x04, 0x03, 0x5c, 0x00, 0x04, 0x03, 0x8c,
+ 0x00, 0x04, 0x03, 0xbc, 0x00, 0x04, 0x03, 0xec, 0x00, 0x04, 0x04, 0x1c,
+ 0x00, 0x04, 0x04, 0xc8, 0x00, 0x04, 0x04, 0xec, 0x00, 0x04, 0x05, 0x24,
+ 0x00, 0x04, 0x05, 0x68, 0x00, 0x04, 0x05, 0x90, 0x00, 0x04, 0x05, 0xbc,
+ 0x00, 0x04, 0x05, 0xf4, 0x00, 0x04, 0x06, 0x18, 0x00, 0x04, 0x06, 0x54,
+ 0x00, 0x04, 0x06, 0x9c, 0x00, 0x04, 0x06, 0xdc, 0x00, 0x04, 0x07, 0x4c,
+ 0x00, 0x04, 0x07, 0xa8, 0x00, 0x04, 0x08, 0x1c, 0x00, 0x04, 0x08, 0xcc,
+ 0x00, 0x04, 0x09, 0x28, 0x00, 0x04, 0x09, 0x38, 0x00, 0x04, 0x09, 0x88,
+ 0x00, 0x04, 0x09, 0xc4, 0x00, 0x04, 0x0a, 0x04, 0x00, 0x04, 0x0a, 0x38,
+ 0x00, 0x04, 0x0a, 0x6c, 0x00, 0x04, 0x0a, 0xd4, 0x00, 0x04, 0x0b, 0x24,
+ 0x00, 0x04, 0x0b, 0x5c, 0x00, 0x04, 0x0b, 0xb8, 0x00, 0x04, 0x0c, 0x04,
+ 0x00, 0x04, 0x0c, 0x70, 0x00, 0x04, 0x0c, 0xd0, 0x00, 0x04, 0x0d, 0x30,
+ 0x00, 0x04, 0x0d, 0x58, 0x00, 0x04, 0x0d, 0x80, 0x00, 0x04, 0x0e, 0x00,
+ 0x00, 0x04, 0x0e, 0x4c, 0x00, 0x04, 0x0e, 0xc4, 0x00, 0x04, 0x0e, 0xf8,
+ 0x00, 0x04, 0x0f, 0x0c, 0x00, 0x04, 0x0f, 0x38, 0x00, 0x04, 0x0f, 0xe4,
+ 0x00, 0x04, 0x10, 0x3c, 0x00, 0x04, 0x10, 0x64, 0x00, 0x04, 0x10, 0x8c,
+ 0x00, 0x04, 0x10, 0xb4, 0x00, 0x04, 0x10, 0xdc, 0x00, 0x04, 0x11, 0x04,
+ 0x00, 0x04, 0x11, 0x2c, 0x00, 0x04, 0x11, 0x54, 0x00, 0x04, 0x11, 0x7c,
+ 0x00, 0x04, 0x11, 0xa4, 0x00, 0x04, 0x11, 0xc8, 0x00, 0x04, 0x11, 0xe8,
+ 0x00, 0x04, 0x12, 0x0c, 0x00, 0x04, 0x12, 0x30, 0x00, 0x04, 0x12, 0x54,
+ 0x00, 0x04, 0x12, 0x74, 0x00, 0x04, 0x12, 0xa0, 0x00, 0x04, 0x12, 0xcc,
+ 0x00, 0x04, 0x12, 0xf8, 0x00, 0x04, 0x13, 0x24, 0x00, 0x04, 0x13, 0x38,
+ 0x00, 0x04, 0x13, 0x7c, 0x00, 0x04, 0x13, 0xc0, 0x00, 0x04, 0x13, 0xf0,
+ 0x00, 0x04, 0x14, 0x20, 0x00, 0x04, 0x14, 0x64, 0x00, 0x04, 0x14, 0xbc,
+ 0x00, 0x04, 0x15, 0x40, 0x00, 0x04, 0x15, 0xd0, 0x00, 0x04, 0x15, 0xe0,
+ 0x00, 0x04, 0x16, 0x70, 0x00, 0x04, 0x16, 0x9c, 0x00, 0x04, 0x16, 0xac,
+ 0x00, 0x04, 0x17, 0x0c, 0x00, 0x04, 0x17, 0xe4, 0x00, 0x04, 0x18, 0x68,
+ 0x00, 0x04, 0x19, 0x14, 0x00, 0x04, 0x19, 0x70, 0x00, 0x04, 0x1a, 0x04,
+ 0x00, 0x04, 0x1a, 0x4c, 0x00, 0x04, 0x1a, 0xc8, 0x00, 0x04, 0x1b, 0x24,
+ 0x00, 0x04, 0x1b, 0xb4, 0x00, 0x04, 0x1c, 0x14, 0x00, 0x04, 0x1c, 0xa8,
+ 0x00, 0x04, 0x1c, 0xb8, 0x00, 0x04, 0x1c, 0xc8, 0x00, 0x04, 0x1d, 0x10,
+ 0x00, 0x04, 0x1d, 0x58, 0x00, 0x04, 0x1d, 0x84, 0x00, 0x04, 0x1d, 0xac,
+ 0x00, 0x04, 0x1d, 0xdc, 0x00, 0x04, 0x1e, 0x08, 0x00, 0x04, 0x1e, 0x90,
+ 0x00, 0x04, 0x1f, 0x14, 0x00, 0x04, 0x1f, 0xc8, 0x00, 0x04, 0x20, 0x68,
+ 0x00, 0x04, 0x20, 0xc4, 0x00, 0x04, 0x21, 0x2c, 0x00, 0x04, 0x21, 0xa0,
+ 0x00, 0x04, 0x22, 0x38, 0x00, 0x04, 0x22, 0xc0, 0x00, 0x04, 0x23, 0x28,
+ 0x00, 0x04, 0x23, 0x80, 0x00, 0x04, 0x23, 0xe8, 0x00, 0x04, 0x24, 0x40,
+ 0x00, 0x04, 0x24, 0xac, 0x00, 0x04, 0x24, 0xcc, 0x00, 0x04, 0x24, 0xec,
+ 0x00, 0x04, 0x25, 0x34, 0x00, 0x04, 0x25, 0x78, 0x00, 0x04, 0x25, 0x88,
+ 0x00, 0x04, 0x25, 0xb0, 0x00, 0x04, 0x25, 0xd4, 0x00, 0x04, 0x25, 0xf0,
+ 0x00, 0x04, 0x26, 0x00, 0x00, 0x04, 0x26, 0x60, 0x00, 0x04, 0x26, 0x98,
+ 0x00, 0x04, 0x26, 0xe4, 0x00, 0x04, 0x27, 0x6c, 0x00, 0x04, 0x28, 0x20,
+ 0x00, 0x04, 0x28, 0x7c, 0x00, 0x04, 0x28, 0xd8, 0x00, 0x04, 0x29, 0x40,
+ 0x00, 0x04, 0x29, 0xb0, 0x00, 0x04, 0x2a, 0x44, 0x00, 0x04, 0x2a, 0x9c,
+ 0x00, 0x04, 0x2b, 0x30, 0x00, 0x04, 0x2b, 0xc4, 0x00, 0x04, 0x2c, 0x0c,
+ 0x00, 0x04, 0x2c, 0x1c, 0x00, 0x04, 0x2c, 0x48, 0x00, 0x04, 0x2c, 0x8c,
+ 0x00, 0x04, 0x2c, 0xc8, 0x00, 0x04, 0x2c, 0xe4, 0x00, 0x04, 0x2d, 0x30,
+ 0x00, 0x04, 0x2d, 0x4c, 0x00, 0x04, 0x2d, 0x6c, 0x00, 0x04, 0x2d, 0x90,
+ 0x00, 0x04, 0x2d, 0xb4, 0x00, 0x04, 0x2d, 0xd8, 0x00, 0x04, 0x2d, 0xf8,
+ 0x00, 0x04, 0x2e, 0x0c, 0x00, 0x04, 0x2e, 0x20, 0x00, 0x04, 0x2e, 0x34,
+ 0x00, 0x04, 0x2e, 0x48, 0x00, 0x04, 0x2e, 0x6c, 0x00, 0x04, 0x2e, 0x80,
+ 0x00, 0x04, 0x2e, 0x94, 0x00, 0x04, 0x2e, 0xa8, 0x00, 0x04, 0x2e, 0xbc,
+ 0x00, 0x04, 0x2e, 0xe0, 0x00, 0x04, 0x2e, 0xf4, 0x00, 0x04, 0x2f, 0x08,
+ 0x00, 0x04, 0x2f, 0x1c, 0x00, 0x04, 0x2f, 0x30, 0x00, 0x04, 0x2f, 0x54,
+ 0x00, 0x04, 0x2f, 0x68, 0x00, 0x04, 0x2f, 0x7c, 0x00, 0x04, 0x2f, 0x90,
+ 0x00, 0x04, 0x2f, 0xa4, 0x00, 0x04, 0x2f, 0xbc, 0x00, 0x04, 0x30, 0x8c,
+ 0x00, 0x04, 0x31, 0x5c, 0x00, 0x04, 0x32, 0x2c, 0x00, 0x04, 0x32, 0xfc,
+ 0x00, 0x04, 0x33, 0x50, 0x00, 0x04, 0x33, 0xb8, 0x00, 0x04, 0x34, 0x2c,
+ 0x00, 0x04, 0x34, 0xc8, 0x00, 0x04, 0x35, 0x20, 0x00, 0x04, 0x35, 0x90,
+ 0x00, 0x04, 0x36, 0x14, 0x00, 0x04, 0x36, 0x90, 0x00, 0x04, 0x36, 0xe4,
+ 0x00, 0x04, 0x37, 0x48, 0x00, 0x04, 0x37, 0xf4, 0x00, 0x04, 0x38, 0x60,
+ 0x00, 0x04, 0x38, 0xc0, 0x00, 0x04, 0x39, 0x34, 0x00, 0x04, 0x39, 0x98,
+ 0x00, 0x04, 0x39, 0xf0, 0x00, 0x04, 0x3a, 0x74, 0x00, 0x04, 0x3a, 0xc4,
+ 0x00, 0x04, 0x3b, 0x44, 0x00, 0x04, 0x3b, 0xac, 0x00, 0x04, 0x3c, 0x54,
+ 0x00, 0x04, 0x3c, 0xb4, 0x00, 0x04, 0x3d, 0x44, 0x00, 0x04, 0x3d, 0xac,
+ 0x00, 0x04, 0x3e, 0x20, 0x00, 0x04, 0x3e, 0x88, 0x00, 0x04, 0x3f, 0x04,
+ 0x00, 0x04, 0x3f, 0x58, 0x00, 0x04, 0x3f, 0xcc, 0x00, 0x04, 0x40, 0x44,
+ 0x00, 0x04, 0x40, 0x98, 0x00, 0x04, 0x41, 0x0c, 0x00, 0x04, 0x41, 0x7c,
+ 0x00, 0x04, 0x41, 0xf4, 0x00, 0x04, 0x42, 0x68, 0x00, 0x04, 0x42, 0xcc,
+ 0x00, 0x04, 0x43, 0x38, 0x00, 0x04, 0x43, 0xbc, 0x00, 0x04, 0x44, 0x4c,
+ 0x00, 0x04, 0x44, 0xd8, 0x00, 0x04, 0x45, 0xa4, 0x00, 0x04, 0x45, 0xf8,
+ 0x00, 0x04, 0x46, 0x58, 0x00, 0x04, 0x46, 0xc8, 0x00, 0x04, 0x47, 0x1c,
+ 0x00, 0x04, 0x47, 0x80, 0x00, 0x04, 0x47, 0xe4, 0x00, 0x04, 0x48, 0x44,
+ 0x00, 0x04, 0x48, 0xa4, 0x00, 0x04, 0x49, 0x14, 0x00, 0x04, 0x49, 0x84,
+ 0x00, 0x04, 0x49, 0xdc, 0x00, 0x04, 0x4a, 0x34, 0x00, 0x04, 0x4a, 0x98,
+ 0x00, 0x04, 0x4b, 0x0c, 0x00, 0x04, 0x4b, 0x8c, 0x00, 0x04, 0x4c, 0x1c,
+ 0x00, 0x04, 0x4c, 0x90, 0x00, 0x04, 0x4d, 0x14, 0x00, 0x04, 0x4d, 0x8c,
+ 0x00, 0x04, 0x4e, 0x10, 0x00, 0x04, 0x4e, 0xa0, 0x00, 0x04, 0x4f, 0x18,
+ 0x00, 0x04, 0x4f, 0xa0, 0x00, 0x04, 0x50, 0x24, 0x00, 0x04, 0x50, 0x94,
+ 0x00, 0x04, 0x50, 0xfc, 0x00, 0x04, 0x51, 0x50, 0x00, 0x04, 0x51, 0x98,
+ 0x00, 0x04, 0x52, 0x1c, 0x00, 0x04, 0x52, 0x8c, 0x00, 0x04, 0x53, 0x0c,
+ 0x00, 0x04, 0x54, 0x04, 0x00, 0x04, 0x54, 0x2c, 0x00, 0x04, 0x54, 0x54,
+ 0x00, 0x04, 0x54, 0x9c, 0x00, 0x04, 0x54, 0xe4, 0x00, 0x04, 0x54, 0xe4,
+ 0x00, 0x04, 0x54, 0xe4, 0x00, 0x04, 0x54, 0xe4, 0x00, 0x04, 0x54, 0xe4,
+ 0x00, 0x04, 0x55, 0x70, 0x00, 0x04, 0x55, 0xa8, 0x00, 0x04, 0x56, 0x20,
+ 0x00, 0x04, 0x56, 0x4c, 0x00, 0x04, 0x56, 0x9c, 0x00, 0x04, 0x56, 0xdc,
+ 0x00, 0x04, 0x57, 0x0c, 0x00, 0x04, 0x57, 0x38, 0x00, 0x04, 0x57, 0x74,
+ 0x00, 0x04, 0x58, 0x0c, 0x00, 0x04, 0x58, 0x28, 0x00, 0x04, 0x58, 0x60,
+ 0x00, 0x04, 0x58, 0x88, 0x00, 0x04, 0x58, 0xc8, 0x00, 0x04, 0x58, 0xf8,
+ 0x00, 0x04, 0x59, 0x54, 0x00, 0x04, 0x59, 0xe4, 0x00, 0x04, 0x5a, 0x2c,
+ 0x00, 0x04, 0x5a, 0x64, 0x00, 0x04, 0x5a, 0xcc, 0x00, 0x04, 0x5b, 0x20,
+ 0x00, 0x04, 0x5b, 0x58, 0x00, 0x04, 0x5b, 0x84, 0x00, 0x04, 0x5b, 0xac,
+ 0x00, 0x04, 0x5b, 0xf0, 0x00, 0x04, 0x5c, 0x6c, 0x00, 0x04, 0x5c, 0xa4,
+ 0x00, 0x04, 0x5d, 0x24, 0x00, 0x04, 0x5d, 0x68, 0x00, 0x04, 0x5d, 0xb0,
+ 0x00, 0x04, 0x5d, 0xd4, 0x00, 0x04, 0x5e, 0x1c, 0x00, 0x04, 0x5e, 0x2c,
+ 0x00, 0x04, 0x5e, 0x58, 0x00, 0x04, 0x5e, 0x68, 0x00, 0x04, 0x5e, 0x9c,
+ 0x00, 0x04, 0x5e, 0xd4, 0x00, 0x04, 0x5e, 0xf0, 0x00, 0x04, 0x5f, 0x0c,
+ 0x00, 0x04, 0x5f, 0x28, 0x00, 0x04, 0x5f, 0x44, 0x00, 0x04, 0x5f, 0x60,
+ 0x00, 0x04, 0x5f, 0x88, 0x00, 0x04, 0x5f, 0xb0, 0x00, 0x04, 0x5f, 0xdc,
+ 0x00, 0x04, 0x60, 0x04, 0x00, 0x04, 0x60, 0x2c, 0x00, 0x04, 0x60, 0x58,
+ 0x00, 0x04, 0x60, 0x80, 0x00, 0x04, 0x60, 0xa8, 0x00, 0x04, 0x60, 0xd0,
+ 0x00, 0x04, 0x60, 0xf8, 0x00, 0x04, 0x61, 0x20, 0x00, 0x04, 0x61, 0x4c,
+ 0x00, 0x04, 0x61, 0x74, 0x00, 0x04, 0x61, 0x9c, 0x00, 0x04, 0x61, 0xc8,
+ 0x00, 0x04, 0x61, 0xf0, 0x00, 0x04, 0x62, 0x18, 0x00, 0x04, 0x62, 0x40,
+ 0x00, 0x04, 0x62, 0x68, 0x00, 0x04, 0x62, 0x90, 0x00, 0x04, 0x62, 0xbc,
+ 0x00, 0x04, 0x62, 0xe4, 0x00, 0x04, 0x63, 0x0c, 0x00, 0x04, 0x63, 0x38,
+ 0x00, 0x04, 0x63, 0x60, 0x00, 0x04, 0x63, 0x88, 0x00, 0x04, 0x63, 0xb0,
+ 0x00, 0x04, 0x63, 0xd8, 0x00, 0x04, 0x64, 0x00, 0x00, 0x04, 0x64, 0x2c,
+ 0x00, 0x04, 0x64, 0x54, 0x00, 0x04, 0x64, 0x7c, 0x00, 0x04, 0x64, 0xa8,
+ 0x00, 0x04, 0x64, 0xd0, 0x00, 0x04, 0x64, 0xf8, 0x00, 0x04, 0x65, 0x20,
+ 0x00, 0x04, 0x65, 0x48, 0x00, 0x04, 0x65, 0x70, 0x00, 0x04, 0x65, 0x9c,
+ 0x00, 0x04, 0x65, 0xc4, 0x00, 0x04, 0x65, 0xec, 0x00, 0x04, 0x66, 0x18,
+ 0x00, 0x04, 0x66, 0x40, 0x00, 0x04, 0x66, 0x68, 0x00, 0x04, 0x66, 0x90,
+ 0x00, 0x04, 0x66, 0xb8, 0x00, 0x04, 0x66, 0xe0, 0x00, 0x04, 0x67, 0x0c,
+ 0x00, 0x04, 0x67, 0x34, 0x00, 0x04, 0x67, 0x5c, 0x00, 0x04, 0x67, 0x88,
+ 0x00, 0x04, 0x67, 0xb0, 0x00, 0x04, 0x67, 0xd8, 0x00, 0x04, 0x68, 0x00,
+ 0x00, 0x04, 0x68, 0x28, 0x00, 0x04, 0x68, 0x50, 0x00, 0x04, 0x68, 0x7c,
+ 0x00, 0x04, 0x68, 0xa4, 0x00, 0x04, 0x68, 0xcc, 0x00, 0x04, 0x68, 0xf8,
+ 0x00, 0x04, 0x69, 0x20, 0x00, 0x04, 0x69, 0x48, 0x00, 0x04, 0x69, 0x70,
+ 0x00, 0x04, 0x69, 0x98, 0x00, 0x04, 0x69, 0xc0, 0x00, 0x04, 0x69, 0xec,
+ 0x00, 0x04, 0x6a, 0x14, 0x00, 0x04, 0x6a, 0x3c, 0x00, 0x04, 0x6a, 0x68,
+ 0x00, 0x04, 0x6a, 0x90, 0x00, 0x04, 0x6a, 0xb8, 0x00, 0x04, 0x6a, 0xe0,
+ 0x00, 0x04, 0x6b, 0x08, 0x00, 0x04, 0x6b, 0x30, 0x00, 0x04, 0x6b, 0x5c,
+ 0x00, 0x04, 0x6b, 0x84, 0x00, 0x04, 0x6b, 0xac, 0x00, 0x04, 0x6b, 0xd8,
+ 0x00, 0x04, 0x6c, 0x00, 0x00, 0x04, 0x6c, 0x28, 0x00, 0x04, 0x6c, 0x50,
+ 0x00, 0x04, 0x6c, 0x9c, 0x00, 0x04, 0x6d, 0x2c, 0x00, 0x04, 0x6d, 0x98,
+ 0x00, 0x04, 0x6d, 0xd8, 0x00, 0x04, 0x6e, 0x14, 0x00, 0x04, 0x6e, 0x9c,
+ 0x00, 0x04, 0x6e, 0xd8, 0x00, 0x04, 0x6f, 0x24, 0x00, 0x04, 0x6f, 0x68,
+ 0x00, 0x04, 0x6f, 0x98, 0x00, 0x04, 0x6f, 0xf4, 0x00, 0x04, 0x70, 0x8c,
+ 0x00, 0x04, 0x71, 0x28, 0x00, 0x04, 0x71, 0x60, 0x00, 0x04, 0x71, 0xd4,
+ 0x00, 0x04, 0x72, 0x10, 0x00, 0x04, 0x72, 0x78, 0x00, 0x04, 0x72, 0xcc,
+ 0x00, 0x04, 0x73, 0x14, 0x00, 0x04, 0x73, 0xb8, 0x00, 0x04, 0x74, 0x54,
+ 0x00, 0x04, 0x74, 0xcc, 0x00, 0x04, 0x75, 0x68, 0x00, 0x04, 0x75, 0xdc,
+ 0x00, 0x04, 0x76, 0x44, 0x00, 0x04, 0x77, 0x0c, 0x00, 0x04, 0x77, 0x80,
+ 0x00, 0x04, 0x77, 0xb8, 0x00, 0x04, 0x78, 0x14, 0x00, 0x04, 0x78, 0x58,
+ 0x00, 0x04, 0x78, 0xa4, 0x00, 0x04, 0x79, 0x60, 0x00, 0x04, 0x79, 0xd4,
+ 0x00, 0x04, 0x7a, 0x5c, 0x00, 0x04, 0x7a, 0xf8, 0x00, 0x04, 0x7b, 0x94,
+ 0x00, 0x04, 0x7b, 0xe0, 0x00, 0x04, 0x7c, 0xac, 0x00, 0x04, 0x7d, 0x08,
+ 0x00, 0x04, 0x7d, 0x7c, 0x00, 0x04, 0x7d, 0xb8, 0x00, 0x04, 0x7e, 0x14,
+ 0x00, 0x04, 0x7e, 0x68, 0x00, 0x04, 0x7e, 0xb8, 0x00, 0x04, 0x7e, 0xfc,
+ 0x00, 0x04, 0x7f, 0x0c, 0x00, 0x04, 0x7f, 0x1c, 0x00, 0x04, 0x7f, 0x2c,
+ 0x00, 0x04, 0x7f, 0x3c, 0x00, 0x04, 0x7f, 0x4c, 0x00, 0x04, 0x7f, 0x5c,
+ 0x00, 0x04, 0x7f, 0x6c, 0x00, 0x04, 0x7f, 0x7c, 0x00, 0x04, 0x7f, 0x8c,
+ 0x00, 0x04, 0x7f, 0x9c, 0x00, 0x04, 0x7f, 0xac, 0x00, 0x04, 0x7f, 0xbc,
+ 0x00, 0x04, 0x7f, 0xcc, 0x00, 0x04, 0x7f, 0xdc, 0x00, 0x04, 0x7f, 0xec,
+ 0x00, 0x04, 0x7f, 0xfc, 0x00, 0x04, 0x80, 0x0c, 0x00, 0x04, 0x80, 0x1c,
+ 0x00, 0x04, 0x80, 0x2c, 0x00, 0x04, 0x80, 0x3c, 0x00, 0x04, 0x80, 0x4c,
+ 0x00, 0x04, 0x80, 0x5c, 0x00, 0x04, 0x80, 0x6c, 0x00, 0x04, 0x80, 0x7c,
+ 0x00, 0x04, 0x80, 0x8c, 0x00, 0x04, 0x80, 0x9c, 0x00, 0x04, 0x80, 0xac,
+ 0x00, 0x04, 0x80, 0xbc, 0x00, 0x04, 0x80, 0xcc, 0x00, 0x04, 0x80, 0xdc,
+ 0x00, 0x04, 0x80, 0xec, 0x00, 0x04, 0x80, 0xfc, 0x00, 0x04, 0x81, 0x0c,
+ 0x00, 0x04, 0x81, 0x1c, 0x00, 0x04, 0x81, 0x2c, 0x00, 0x04, 0x81, 0x3c,
+ 0x00, 0x04, 0x81, 0x4c, 0x00, 0x04, 0x81, 0x5c, 0x00, 0x04, 0x81, 0x6c,
+ 0x00, 0x04, 0x81, 0x7c, 0x00, 0x04, 0x81, 0x8c, 0x00, 0x04, 0x81, 0x9c,
+ 0x00, 0x04, 0x81, 0xac, 0x00, 0x04, 0x81, 0xbc, 0x00, 0x04, 0x81, 0xcc,
+ 0x00, 0x04, 0x81, 0xdc, 0x00, 0x04, 0x81, 0xec, 0x00, 0x04, 0x81, 0xfc,
+ 0x00, 0x04, 0x82, 0x0c, 0x00, 0x04, 0x82, 0x1c, 0x00, 0x04, 0x82, 0x2c,
+ 0x00, 0x04, 0x82, 0x3c, 0x00, 0x04, 0x82, 0xa8, 0x00, 0x04, 0x82, 0xe8,
+ 0x00, 0x04, 0x83, 0x74, 0x00, 0x04, 0x84, 0x04, 0x00, 0x04, 0x84, 0x50,
+ 0x00, 0x04, 0x84, 0xc0, 0x00, 0x04, 0x85, 0x48, 0x00, 0x04, 0x85, 0x84,
+ 0x00, 0x04, 0x86, 0x5c, 0x00, 0x04, 0x86, 0xe8, 0x00, 0x04, 0x86, 0xf8,
+ 0x00, 0x04, 0x87, 0x08, 0x00, 0x04, 0x87, 0x18, 0x00, 0x04, 0x87, 0x28,
+ 0x00, 0x04, 0x87, 0x38, 0x00, 0x04, 0x87, 0x48, 0x00, 0x04, 0x87, 0x58,
+ 0x00, 0x04, 0x87, 0x68, 0x00, 0x04, 0x87, 0x78, 0x00, 0x04, 0x87, 0x88,
+ 0x00, 0x04, 0x87, 0xb4, 0x00, 0x04, 0x87, 0xec, 0x00, 0x04, 0x88, 0x68,
+ 0x00, 0x04, 0x89, 0x24, 0x00, 0x04, 0x8a, 0x20, 0x00, 0x04, 0x8b, 0x5c,
+ 0x00, 0x04, 0x8c, 0xd8, 0x00, 0x04, 0x8e, 0x8c, 0x00, 0x04, 0x8f, 0x08,
+ 0x00, 0x04, 0x8f, 0xc4, 0x00, 0x04, 0x90, 0xc4, 0x00, 0x04, 0x92, 0x00,
+ 0x00, 0x04, 0x93, 0x7c, 0x00, 0x04, 0x95, 0x38, 0x00, 0x04, 0x97, 0x2c,
+ 0x00, 0x04, 0x97, 0xe8, 0x00, 0x04, 0x98, 0xe4, 0x00, 0x04, 0x9a, 0x20,
+ 0x00, 0x04, 0x9b, 0x9c, 0x00, 0x04, 0x9d, 0x4c, 0x00, 0x04, 0x9f, 0x48,
+ 0x00, 0x04, 0xa1, 0x7c, 0x00, 0x04, 0xa2, 0x78, 0x00, 0x04, 0xa3, 0xb4,
+ 0x00, 0x04, 0xa5, 0x34, 0x00, 0x04, 0xa6, 0xf0, 0x00, 0x04, 0xa8, 0xec,
+ 0x00, 0x04, 0xab, 0x28, 0x00, 0x04, 0xad, 0x9c, 0x00, 0x04, 0xae, 0xd0,
+ 0x00, 0x04, 0xb0, 0x44, 0x00, 0x04, 0xb2, 0x04, 0x00, 0x04, 0xb4, 0x00,
+ 0x00, 0x04, 0xb6, 0x3c, 0x00, 0x04, 0xb8, 0xb8, 0x00, 0x04, 0xbb, 0x6c,
+ 0x00, 0x04, 0xbc, 0xe4, 0x00, 0x04, 0xbe, 0xa0, 0x00, 0x04, 0xc0, 0x9c,
+ 0x00, 0x04, 0xc2, 0xd8, 0x00, 0x04, 0xc5, 0x54, 0x00, 0x04, 0xc8, 0x10,
+ 0x00, 0x04, 0xcb, 0x04, 0x00, 0x04, 0xcc, 0xc4, 0x00, 0x04, 0xce, 0xcc,
+ 0x00, 0x04, 0xd1, 0x14, 0x00, 0x04, 0xd3, 0x9c, 0x00, 0x04, 0xd6, 0x60,
+ 0x00, 0x04, 0xd9, 0x64, 0x00, 0x04, 0xdc, 0x94, 0x00, 0x04, 0xdc, 0xc0,
+ 0x00, 0x04, 0xdc, 0xf8, 0x00, 0x04, 0xdd, 0x74, 0x00, 0x04, 0xde, 0x30,
+ 0x00, 0x04, 0xdf, 0x28, 0x00, 0x04, 0xe0, 0x64, 0x00, 0x04, 0xe1, 0xe0,
+ 0x00, 0x04, 0xe3, 0x94, 0x00, 0x04, 0xe4, 0x10, 0x00, 0x04, 0xe4, 0xcc,
+ 0x00, 0x04, 0xe5, 0xcc, 0x00, 0x04, 0xe7, 0x08, 0x00, 0x04, 0xe8, 0x84,
+ 0x00, 0x04, 0xea, 0x40, 0x00, 0x04, 0xec, 0x34, 0x00, 0x04, 0xec, 0xf0,
+ 0x00, 0x04, 0xed, 0xec, 0x00, 0x04, 0xef, 0x28, 0x00, 0x04, 0xf0, 0xa0,
+ 0x00, 0x04, 0xf2, 0x5c, 0x00, 0x04, 0xf4, 0x58, 0x00, 0x04, 0xf6, 0x8c,
+ 0x00, 0x04, 0xf7, 0x84, 0x00, 0x04, 0xf8, 0xc0, 0x00, 0x04, 0xfa, 0x3c,
+ 0x00, 0x04, 0xfb, 0xf8, 0x00, 0x04, 0xfd, 0xf0, 0x00, 0x05, 0x00, 0x2c,
+ 0x00, 0x05, 0x02, 0x9c, 0x00, 0x05, 0x03, 0xd0, 0x00, 0x05, 0x05, 0x44,
+ 0x00, 0x05, 0x07, 0x00, 0x00, 0x05, 0x08, 0xfc, 0x00, 0x05, 0x0b, 0x38,
+ 0x00, 0x05, 0x0d, 0xa4, 0x00, 0x05, 0x10, 0x58, 0x00, 0x05, 0x11, 0xd0,
+ 0x00, 0x05, 0x13, 0x8c, 0x00, 0x05, 0x15, 0x7c, 0x00, 0x05, 0x17, 0xb8,
+ 0x00, 0x05, 0x1a, 0x34, 0x00, 0x05, 0x1c, 0xf0, 0x00, 0x05, 0x1f, 0xe4,
+ 0x00, 0x05, 0x21, 0xa8, 0x00, 0x05, 0x23, 0xb0, 0x00, 0x05, 0x25, 0xf8,
+ 0x00, 0x05, 0x28, 0x7c, 0x00, 0x05, 0x2b, 0x40, 0x00, 0x05, 0x2e, 0x30,
+ 0x00, 0x05, 0x31, 0x60, 0x00, 0x05, 0x31, 0xbc, 0x00, 0x05, 0x32, 0x78,
+ 0x00, 0x05, 0x33, 0x54, 0x00, 0x05, 0x34, 0x50, 0x00, 0x05, 0x35, 0x10,
+ 0x00, 0x05, 0x35, 0xfc, 0x00, 0x05, 0x37, 0x14, 0x00, 0x05, 0x37, 0xc0,
+ 0x00, 0x05, 0x38, 0xf4, 0x00, 0x05, 0x3a, 0x08, 0x00, 0x05, 0x3a, 0xf8,
+ 0x00, 0x05, 0x3b, 0xac, 0x00, 0x05, 0x3c, 0x84, 0x00, 0x05, 0x3d, 0x64,
+ 0x00, 0x05, 0x3e, 0x20, 0x00, 0x05, 0x3e, 0xd8, 0x00, 0x05, 0x3f, 0xb0,
+ 0x00, 0x05, 0x40, 0xa8, 0x00, 0x05, 0x41, 0x64, 0x00, 0x05, 0x42, 0x4c,
+ 0x00, 0x05, 0x43, 0x60, 0x00, 0x05, 0x44, 0x08, 0x00, 0x05, 0x45, 0x38,
+ 0x00, 0x05, 0x46, 0x48, 0x00, 0x05, 0x47, 0x34, 0x00, 0x05, 0x47, 0xe4,
+ 0x00, 0x05, 0x48, 0xb8, 0x00, 0x05, 0x49, 0x94, 0x00, 0x05, 0x4a, 0x4c,
+ 0x00, 0x05, 0x4a, 0xd8, 0x00, 0x05, 0x4b, 0x88, 0x00, 0x05, 0x4c, 0x58,
+ 0x00, 0x05, 0x4c, 0xe8, 0x00, 0x05, 0x4d, 0xa4, 0x00, 0x05, 0x4e, 0x8c,
+ 0x00, 0x05, 0x4f, 0x0c, 0x00, 0x05, 0x50, 0x14, 0x00, 0x05, 0x50, 0xfc,
+ 0x00, 0x05, 0x51, 0xc0, 0x00, 0x05, 0x52, 0x48, 0x00, 0x05, 0x52, 0xf4,
+ 0x00, 0x05, 0x53, 0xa8, 0x00, 0x05, 0x54, 0x34, 0x00, 0x05, 0x54, 0xb0,
+ 0x00, 0x05, 0x55, 0x84, 0x00, 0x05, 0x56, 0x7c, 0x00, 0x05, 0x57, 0x94,
+ 0x00, 0x05, 0x58, 0x6c, 0x00, 0x05, 0x59, 0x70, 0x00, 0x05, 0x5a, 0xa0,
+ 0x00, 0x05, 0x5b, 0x68, 0x00, 0x05, 0x5c, 0xb8, 0x00, 0x05, 0x5d, 0xe8,
+ 0x00, 0x05, 0x5e, 0xf4, 0x00, 0x05, 0x5f, 0xc4, 0x00, 0x05, 0x60, 0xb8,
+ 0x00, 0x05, 0x61, 0xb4, 0x00, 0x05, 0x62, 0x88, 0x00, 0x05, 0x63, 0x28,
+ 0x00, 0x05, 0x65, 0x30, 0x00, 0x05, 0x68, 0x14, 0x00, 0x05, 0x6a, 0x3c,
+ 0x00, 0x05, 0x6c, 0x58, 0x00, 0x05, 0x6d, 0x58, 0x00, 0x05, 0x6e, 0x58,
+ 0x00, 0x05, 0x6f, 0xf0, 0x00, 0x05, 0x70, 0xd0, 0x00, 0x05, 0x71, 0xb0,
+ 0x00, 0x05, 0x72, 0xb4, 0x00, 0x05, 0x73, 0x88, 0x00, 0x05, 0x74, 0xc0,
+ 0x00, 0x05, 0x75, 0xcc, 0x00, 0x05, 0x76, 0xa4, 0x00, 0x05, 0x77, 0x84,
+ 0x00, 0x05, 0x78, 0x90, 0x00, 0x05, 0x79, 0x70, 0x00, 0x05, 0x7a, 0x98,
+ 0x00, 0x05, 0x7b, 0x6c, 0x00, 0x05, 0x7c, 0x10, 0x00, 0x05, 0x7c, 0xc8,
+ 0x00, 0x05, 0x7d, 0x5c, 0x00, 0x05, 0x7e, 0x1c, 0x00, 0x05, 0x7f, 0x10,
+ 0x00, 0x05, 0x7f, 0xc8, 0x00, 0x05, 0x80, 0x80, 0x00, 0x05, 0x81, 0x74,
+ 0x00, 0x05, 0x82, 0x48, 0x00, 0x05, 0x83, 0x5c, 0x00, 0x05, 0x84, 0x30,
+ 0x00, 0x05, 0x85, 0x04, 0x00, 0x05, 0x85, 0xdc, 0x00, 0x05, 0x86, 0xac,
+ 0x00, 0x05, 0x87, 0x78, 0x00, 0x05, 0x88, 0x78, 0x00, 0x05, 0x89, 0xa8,
+ 0x00, 0x05, 0x8a, 0xa8, 0x00, 0x05, 0x8b, 0xdc, 0x00, 0x05, 0x8c, 0xec,
+ 0x00, 0x05, 0x8d, 0xc0, 0x00, 0x05, 0x8e, 0xa0, 0x00, 0x05, 0x8f, 0x80,
+ 0x00, 0x05, 0x90, 0x7c, 0x00, 0x05, 0x92, 0x78, 0x00, 0x05, 0x93, 0x5c,
+ 0x00, 0x05, 0x94, 0x70, 0x00, 0x05, 0x95, 0x44, 0x00, 0x05, 0x96, 0x90,
+ 0x00, 0x05, 0x97, 0x54, 0x00, 0x05, 0x98, 0x34, 0x00, 0x05, 0x99, 0x30,
+ 0x00, 0x05, 0x9a, 0xf8, 0x00, 0x05, 0x9c, 0x38, 0x00, 0x05, 0x9d, 0xb4,
+ 0x00, 0x05, 0x9e, 0xd4, 0x00, 0x05, 0x9f, 0xa8, 0x00, 0x05, 0xa0, 0x50,
+ 0x00, 0x05, 0xa1, 0x30, 0x00, 0x05, 0xa3, 0x74, 0x00, 0x05, 0xa5, 0xf4,
+ 0x00, 0x05, 0xa8, 0x60, 0x00, 0x05, 0xaa, 0x68, 0x00, 0x05, 0xac, 0xa0,
+ 0x00, 0x05, 0xae, 0xdc, 0x00, 0x05, 0xb1, 0x2c, 0x00, 0x05, 0xb2, 0xec,
+ 0x00, 0x05, 0xb4, 0xa8, 0x00, 0x05, 0xb4, 0xc4, 0x00, 0x05, 0xb4, 0xec,
+ 0x00, 0x05, 0xb5, 0x08, 0x00, 0x05, 0xb5, 0x64, 0x00, 0x05, 0xb5, 0x84,
+ 0x00, 0x05, 0xb5, 0xa8, 0x00, 0x05, 0xb5, 0xd0, 0x00, 0x05, 0xb6, 0x04,
+ 0x00, 0x05, 0xb6, 0x38, 0x00, 0x05, 0xb6, 0x54, 0x00, 0x05, 0xb6, 0x7c,
+ 0x00, 0x05, 0xb6, 0xa8, 0x00, 0x05, 0xb6, 0xc0, 0x00, 0x05, 0xb6, 0xe4,
+ 0x00, 0x05, 0xb7, 0x14, 0x00, 0x05, 0xb7, 0x44, 0x00, 0x05, 0xb7, 0x68,
+ 0x00, 0x05, 0xb7, 0xa0, 0x00, 0x05, 0xb8, 0x18, 0x00, 0x05, 0xb8, 0x48,
+ 0x00, 0x05, 0xb8, 0x88, 0x00, 0x05, 0xb9, 0x44, 0x00, 0x05, 0xb9, 0xe0,
+ 0x00, 0x05, 0xba, 0x80, 0x00, 0x05, 0xbb, 0x44, 0x00, 0x05, 0xbb, 0x54,
+ 0x00, 0x05, 0xbb, 0x64, 0x00, 0x05, 0xbb, 0x7c, 0x00, 0x05, 0xbb, 0x94,
+ 0x00, 0x05, 0xbb, 0xe4, 0x00, 0x05, 0xbc, 0x04, 0x00, 0x05, 0xbc, 0x24,
+ 0x00, 0x05, 0xbc, 0x44, 0x00, 0x05, 0xbc, 0x5c, 0x00, 0x05, 0xbc, 0x74,
+ 0x00, 0x05, 0xbc, 0x8c, 0x00, 0x05, 0xbd, 0x64, 0x00, 0x05, 0xbe, 0x10,
+ 0x00, 0x05, 0xbe, 0xd8, 0x00, 0x05, 0xbf, 0x84, 0x00, 0x05, 0xc0, 0x00,
+ 0x00, 0x05, 0xc0, 0x98, 0x00, 0x05, 0xc1, 0x4c, 0x00, 0x05, 0xc1, 0xd4,
+ 0x00, 0x05, 0xc2, 0x78, 0x00, 0x05, 0xc3, 0x3c, 0x00, 0x05, 0xc3, 0xd0,
+ 0x00, 0x05, 0xc4, 0x80, 0x00, 0x05, 0xc4, 0xa0, 0x00, 0x05, 0xc4, 0xe8,
+ 0x00, 0x05, 0xc5, 0x14, 0x00, 0x05, 0xc5, 0x64, 0x00, 0x05, 0xc5, 0x80,
+ 0x00, 0x05, 0xc5, 0x9c, 0x00, 0x05, 0xc5, 0xb8, 0x00, 0x05, 0xc5, 0xd4,
+ 0x00, 0x05, 0xc5, 0xf0, 0x00, 0x05, 0xc6, 0x0c, 0x00, 0x05, 0xc6, 0x28,
+ 0x00, 0x05, 0xc6, 0x44, 0x00, 0x05, 0xc6, 0x60, 0x00, 0x05, 0xc6, 0x7c,
+ 0x00, 0x05, 0xc6, 0x98, 0x00, 0x05, 0xc6, 0xb4, 0x00, 0x05, 0xc6, 0xd0,
+ 0x00, 0x05, 0xc6, 0xec, 0x00, 0x05, 0xc7, 0x08, 0x00, 0x05, 0xc7, 0x24,
+ 0x00, 0x05, 0xc7, 0x40, 0x00, 0x05, 0xc7, 0x5c, 0x00, 0x05, 0xc7, 0x78,
+ 0x00, 0x05, 0xc7, 0x94, 0x00, 0x05, 0xc7, 0xac, 0x00, 0x05, 0xc7, 0xc8,
+ 0x00, 0x05, 0xc8, 0x00, 0x00, 0x05, 0xc8, 0x70, 0x00, 0x05, 0xc8, 0xc4,
+ 0x00, 0x05, 0xc9, 0x4c, 0x00, 0x05, 0xc9, 0x98, 0x00, 0x05, 0xc9, 0xf4,
+ 0x00, 0x05, 0xca, 0xb0, 0x00, 0x05, 0xcb, 0x10, 0x00, 0x05, 0xcb, 0x80,
+ 0x00, 0x05, 0xcb, 0xec, 0x00, 0x05, 0xcc, 0x18, 0x00, 0x05, 0xcc, 0x90,
+ 0x00, 0x05, 0xcc, 0xa0, 0x00, 0x05, 0xcc, 0xb0, 0x00, 0x05, 0xcc, 0xc8,
+ 0x00, 0x05, 0xcc, 0xf4, 0x00, 0x05, 0xcd, 0x4c, 0x00, 0x05, 0xcd, 0x64,
+ 0x00, 0x05, 0xcd, 0x7c, 0x00, 0x05, 0xcd, 0xa0, 0x00, 0x05, 0xcd, 0xcc,
+ 0x00, 0x05, 0xcd, 0xe8, 0x00, 0x05, 0xce, 0x80, 0x00, 0x05, 0xcf, 0x8c,
+ 0x00, 0x05, 0xd0, 0x24, 0x00, 0x05, 0xd0, 0xac, 0x00, 0x05, 0xd1, 0xa4,
+ 0x00, 0x05, 0xd2, 0x2c, 0x00, 0x05, 0xd2, 0x8c, 0x00, 0x05, 0xd3, 0x5c,
+ 0x00, 0x05, 0xd3, 0x78, 0x00, 0x05, 0xd3, 0x9c, 0x00, 0x05, 0xd3, 0xbc,
+ 0x00, 0x05, 0xd4, 0x0c, 0x00, 0x05, 0xd4, 0x64, 0x00, 0x05, 0xd4, 0xb4,
+ 0x00, 0x05, 0xd4, 0xe8, 0x00, 0x05, 0xd5, 0x20, 0x00, 0x05, 0xd5, 0x50,
+ 0x00, 0x05, 0xd5, 0x80, 0x00, 0x05, 0xd5, 0xb0, 0x00, 0x05, 0xd5, 0xdc,
+ 0x00, 0x05, 0xd6, 0x08, 0x00, 0x05, 0xd6, 0x38, 0x00, 0x05, 0xd6, 0x60,
+ 0x00, 0x05, 0xd6, 0x88, 0x00, 0x05, 0xd6, 0xb0, 0x00, 0x05, 0xd6, 0xd8,
+ 0x00, 0x05, 0xd7, 0x44, 0x00, 0x05, 0xd7, 0xb4, 0x00, 0x05, 0xd8, 0x20,
+ 0x00, 0x05, 0xd8, 0x54, 0x00, 0x05, 0xd8, 0x88, 0x00, 0x05, 0xd8, 0xbc,
+ 0x00, 0x05, 0xd9, 0x1c, 0x00, 0x05, 0xd9, 0x84, 0x00, 0x05, 0xd9, 0xe8,
+ 0x00, 0x05, 0xda, 0x18, 0x00, 0x05, 0xda, 0x4c, 0x00, 0x05, 0xda, 0x7c,
+ 0x00, 0x05, 0xda, 0xac, 0x00, 0x05, 0xda, 0xe0, 0x00, 0x05, 0xdb, 0x10,
+ 0x00, 0x05, 0xdb, 0x64, 0x00, 0x05, 0xdb, 0xb8, 0x00, 0x05, 0xdc, 0x10,
+ 0x00, 0x05, 0xdc, 0x5c, 0x00, 0x05, 0xdc, 0xac, 0x00, 0x05, 0xdc, 0xf8,
+ 0x00, 0x05, 0xdd, 0x20, 0x00, 0x05, 0xdd, 0x4c, 0x00, 0x05, 0xdd, 0x74,
+ 0x00, 0x05, 0xdd, 0xe8, 0x00, 0x05, 0xde, 0x60, 0x00, 0x05, 0xde, 0xd0,
+ 0x00, 0x05, 0xdf, 0x04, 0x00, 0x05, 0xdf, 0x3c, 0x00, 0x05, 0xdf, 0x70,
+ 0x00, 0x05, 0xdf, 0xc0, 0x00, 0x05, 0xe0, 0x14, 0x00, 0x05, 0xe0, 0x64,
+ 0x00, 0x05, 0xe0, 0x94, 0x00, 0x05, 0xe0, 0xc8, 0x00, 0x05, 0xe0, 0xf8,
+ 0x00, 0x05, 0xe1, 0x2c, 0x00, 0x05, 0xe1, 0x64, 0x00, 0x05, 0xe1, 0x98,
+ 0x00, 0x05, 0xe2, 0x08, 0x00, 0x05, 0xe2, 0x7c, 0x00, 0x05, 0xe2, 0xec,
+ 0x00, 0x05, 0xe3, 0x20, 0x00, 0x05, 0xe3, 0x58, 0x00, 0x05, 0xe3, 0x8c,
+ 0x00, 0x05, 0xe3, 0xf4, 0x00, 0x05, 0xe4, 0x60, 0x00, 0x05, 0xe4, 0xc8,
+ 0x00, 0x05, 0xe4, 0xf4, 0x00, 0x05, 0xe5, 0x24, 0x00, 0x05, 0xe5, 0x50,
+ 0x00, 0x05, 0xe5, 0x84, 0x00, 0x05, 0xe5, 0xbc, 0x00, 0x05, 0xe5, 0xf0,
+ 0x00, 0x05, 0xe6, 0x74, 0x00, 0x05, 0xe6, 0xfc, 0x00, 0x05, 0xe7, 0x80,
+ 0x00, 0x05, 0xe7, 0xac, 0x00, 0x05, 0xe7, 0xdc, 0x00, 0x05, 0xe8, 0x08,
+ 0x00, 0x05, 0xe8, 0x38, 0x00, 0x05, 0xe8, 0x6c, 0x00, 0x05, 0xe8, 0x9c,
+ 0x00, 0x05, 0xe8, 0xd8, 0x00, 0x05, 0xe9, 0x18, 0x00, 0x05, 0xe9, 0x54,
+ 0x00, 0x05, 0xe9, 0xd4, 0x00, 0x05, 0xea, 0x58, 0x00, 0x05, 0xea, 0xd8,
+ 0x00, 0x05, 0xeb, 0x60, 0x00, 0x05, 0xeb, 0xec, 0x00, 0x05, 0xec, 0x74,
+ 0x00, 0x05, 0xec, 0x88, 0x00, 0x05, 0xec, 0xac, 0x00, 0x05, 0xec, 0xd0,
+ 0x00, 0x05, 0xec, 0xf4, 0x00, 0x05, 0xed, 0x18, 0x00, 0x05, 0xed, 0x3c,
+ 0x00, 0x05, 0xed, 0x60, 0x00, 0x05, 0xed, 0x84, 0x00, 0x05, 0xed, 0xa8,
+ 0x00, 0x05, 0xed, 0xd8, 0x00, 0x05, 0xee, 0x14, 0x00, 0x05, 0xee, 0x50,
+ 0x00, 0x05, 0xee, 0xb8, 0x00, 0x05, 0xef, 0x60, 0x00, 0x05, 0xef, 0xd0,
+ 0x00, 0x05, 0xf0, 0x90, 0x00, 0x05, 0xf1, 0x18, 0x00, 0x05, 0xf1, 0xac,
+ 0x00, 0x05, 0xf2, 0x44, 0x00, 0x05, 0xf2, 0xa4, 0x00, 0x05, 0xf3, 0x14,
+ 0x00, 0x05, 0xf3, 0x80, 0x00, 0x05, 0xf4, 0x04, 0x00, 0x05, 0xf4, 0xec,
+ 0x00, 0x05, 0xf5, 0x98, 0x00, 0x05, 0xf6, 0x54, 0x00, 0x05, 0xf7, 0x48,
+ 0x00, 0x05, 0xf7, 0xfc, 0x00, 0x05, 0xf8, 0xc0, 0x00, 0x05, 0xf9, 0xd8,
+ 0x00, 0x05, 0xfa, 0xb0, 0x00, 0x05, 0xfb, 0x98, 0x00, 0x05, 0xfc, 0x8c,
+ 0x00, 0x05, 0xfd, 0x30, 0x00, 0x05, 0xfd, 0xe8, 0x00, 0x05, 0xfe, 0xe4,
+ 0x00, 0x05, 0xff, 0x94, 0x00, 0x06, 0x00, 0x58, 0x00, 0x06, 0x00, 0xfc,
+ 0x00, 0x06, 0x01, 0x88, 0x00, 0x06, 0x02, 0x2c, 0x00, 0x06, 0x02, 0xd4,
+ 0x00, 0x06, 0x03, 0x50, 0x00, 0x06, 0x04, 0x00, 0x00, 0x06, 0x04, 0x18,
+ 0x00, 0x06, 0x04, 0x30, 0x00, 0x06, 0x04, 0x48, 0x00, 0x06, 0x04, 0x68,
+ 0x00, 0x06, 0x04, 0x88, 0x00, 0x06, 0x04, 0xa8, 0x00, 0x06, 0x04, 0xc0,
+ 0x00, 0x06, 0x04, 0xd8, 0x00, 0x06, 0x04, 0xf0, 0x00, 0x06, 0x05, 0x08,
+ 0x00, 0x06, 0x05, 0x20, 0x00, 0x06, 0x05, 0x38, 0x00, 0x06, 0x05, 0x50,
+ 0x00, 0x06, 0x05, 0x68, 0x00, 0x06, 0x05, 0x80, 0x00, 0x06, 0x06, 0x2c,
+ 0x00, 0x06, 0x06, 0x9c, 0x00, 0x06, 0x07, 0x20, 0x00, 0x06, 0x08, 0x10,
+ 0x00, 0x06, 0x08, 0xc0, 0x00, 0x06, 0x09, 0x8c, 0x00, 0x06, 0x0a, 0x64,
+ 0x00, 0x06, 0x0a, 0xdc, 0x00, 0x06, 0x0b, 0x70, 0x00, 0x06, 0x0c, 0x60,
+ 0x00, 0x06, 0x0c, 0xec, 0x00, 0x06, 0x0d, 0x94, 0x00, 0x06, 0x0d, 0xf8,
+ 0x00, 0x06, 0x0e, 0x5c, 0x00, 0x06, 0x0e, 0xc0, 0x00, 0x06, 0x0e, 0xf8,
+ 0x00, 0x06, 0x0f, 0x30, 0x00, 0x06, 0x0f, 0x68, 0x00, 0x06, 0x0f, 0xac,
+ 0x00, 0x06, 0x0f, 0xf0, 0x00, 0x06, 0x10, 0x34, 0x00, 0x06, 0x10, 0xb0,
+ 0x00, 0x06, 0x10, 0xf0, 0x00, 0x06, 0x11, 0x40, 0x00, 0x06, 0x11, 0xd4,
+ 0x00, 0x06, 0x12, 0x28, 0x00, 0x06, 0x12, 0x8c, 0x00, 0x06, 0x13, 0x20,
+ 0x00, 0x06, 0x13, 0x78, 0x00, 0x06, 0x13, 0xdc, 0x00, 0x06, 0x14, 0x6c,
+ 0x00, 0x06, 0x14, 0x8c, 0x00, 0x06, 0x14, 0xac, 0x00, 0x06, 0x15, 0x74,
+ 0x00, 0x06, 0x15, 0x94, 0x00, 0x06, 0x15, 0xb4, 0x00, 0x06, 0x16, 0x50,
+ 0x00, 0x06, 0x16, 0x68, 0x00, 0x06, 0x16, 0x80, 0x00, 0x01, 0x00, 0x00,
+ 0x12, 0x0e, 0x03, 0x54, 0x00, 0x2b, 0x00, 0x68, 0x00, 0x0c, 0x00, 0x02,
+ 0x00, 0x10, 0x00, 0x99, 0x00, 0x08, 0x00, 0x00, 0x04, 0x15, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x3e, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x32, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x19, 0x01, 0xff, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x02, 0x23, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x19, 0x02, 0x5c, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x19, 0x02, 0xaa, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0c, 0x02, 0xde, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x16, 0x03, 0x19, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x11, 0x03, 0x54, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x1d, 0x03, 0xa2, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x12, 0x9d, 0x28, 0xfc, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x34, 0x3c, 0x04, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0f, 0x3c, 0x59, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x09, 0x3c, 0x7d, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x32, 0x01, 0xcb, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x08, 0x02, 0x19, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x32, 0x02, 0x28, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x32, 0x02, 0x76, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x18, 0x02, 0xc4, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x2c, 0x02, 0xeb, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x08, 0x00, 0x22, 0x03, 0x30, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x0b, 0x00, 0x3a, 0x03, 0x66, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x0d, 0x25, 0x3a, 0x03, 0xc0, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x0e, 0x00, 0x68, 0x3b, 0x9a, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x10, 0x00, 0x1e, 0x3c, 0x39, 0x00, 0x03,
+ 0x00, 0x01, 0x04, 0x09, 0x00, 0x11, 0x00, 0x12, 0x3c, 0x69, 0x00, 0x43,
+ 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67,
+ 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29,
+ 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x33, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x43, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20,
+ 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x36, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d,
+ 0x00, 0x6a, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x42,
+ 0x00, 0x61, 0x00, 0x68, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x41, 0x00, 0x6c,
+ 0x00, 0x6c, 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2e,
+ 0x00, 0x0a, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56,
+ 0x00, 0x75, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x67, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x75, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20,
+ 0x00, 0x64, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x0a, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
+ 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x33, 0x20, 0x62,
+ 0x79, 0x20, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c,
+ 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x52, 0x69,
+ 0x67, 0x68, 0x74, 0x73, 0x20, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x64, 0x2e, 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x62, 0x79,
+ 0x20, 0x54, 0x61, 0x76, 0x6d, 0x6a, 0x6f, 0x6e, 0x67, 0x20, 0x42, 0x61,
+ 0x68, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74,
+ 0x73, 0x20, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a,
+ 0x44, 0x65, 0x6a, 0x61, 0x56, 0x75, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x75,
+ 0x62, 0x6c, 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x0a,
+ 0x00, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00,
+ 0x75, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x47, 0x00, 0x43, 0x00, 0x20, 0x00,
+ 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00,
+ 0x6f, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00,
+ 0x65, 0x00, 0x64, 0x00, 0x00, 0x44, 0x65, 0x6a, 0x61, 0x56, 0x75, 0x20,
+ 0x4c, 0x47, 0x43, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x20, 0x43, 0x6f, 0x6e,
+ 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x00, 0x00, 0x42, 0x00, 0x6f, 0x00,
+ 0x6f, 0x00, 0x6b, 0x00, 0x00, 0x42, 0x6f, 0x6f, 0x6b, 0x00, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00, 0x75, 0x00, 0x20,
+ 0x00, 0x4c, 0x00, 0x47, 0x00, 0x43, 0x00, 0x20, 0x00, 0x53, 0x00, 0x61,
+ 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x00, 0x44, 0x65, 0x6a, 0x61, 0x56, 0x75, 0x20, 0x4c, 0x47, 0x43,
+ 0x20, 0x53, 0x61, 0x6e, 0x73, 0x20, 0x43, 0x6f, 0x6e, 0x64, 0x65, 0x6e,
+ 0x73, 0x65, 0x64, 0x00, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61,
+ 0x00, 0x56, 0x00, 0x75, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x47, 0x00, 0x43,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x43, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6e,
+ 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x00, 0x44, 0x65, 0x6a, 0x61,
+ 0x56, 0x75, 0x20, 0x4c, 0x47, 0x43, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x20,
+ 0x43, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x00, 0x00, 0x56,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x20, 0x00, 0x32, 0x00, 0x2e, 0x00, 0x33, 0x00, 0x34, 0x00, 0x00,
+ 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x32, 0x2e, 0x33, 0x34,
+ 0x00, 0x00, 0x44, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00,
+ 0x75, 0x00, 0x4c, 0x00, 0x47, 0x00, 0x43, 0x00, 0x53, 0x00, 0x61, 0x00,
+ 0x6e, 0x00, 0x73, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x64, 0x00,
+ 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64, 0x00, 0x00, 0x44,
+ 0x65, 0x6a, 0x61, 0x56, 0x75, 0x4c, 0x47, 0x43, 0x53, 0x61, 0x6e, 0x73,
+ 0x43, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x00, 0x00, 0x44,
+ 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00, 0x75, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x00, 0x44, 0x65,
+ 0x6a, 0x61, 0x56, 0x75, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x74,
+ 0x65, 0x61, 0x6d, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, 0x70,
+ 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6a,
+ 0x00, 0x61, 0x00, 0x76, 0x00, 0x75, 0x00, 0x2e, 0x00, 0x73, 0x00, 0x6f,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x63, 0x00, 0x65, 0x00, 0x66, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x2e, 0x00, 0x6e, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64,
+ 0x65, 0x6a, 0x61, 0x76, 0x75, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x66, 0x6f, 0x72, 0x67, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29,
+ 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x28,
+ 0x00, 0x73, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65,
+ 0x00, 0x6c, 0x00, 0x6f, 0x00, 0x77, 0x00, 0x29, 0x00, 0x2e, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x65, 0x00, 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00, 0x75,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x70, 0x00, 0x75,
+ 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x2e,
+ 0x00, 0x20, 0x00, 0x47, 0x00, 0x6c, 0x00, 0x79, 0x00, 0x70, 0x00, 0x68,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x70, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x72, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x41, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20, 0x00, 0x54,
+ 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d, 0x00, 0x6a, 0x00, 0x75, 0x00, 0x6e,
+ 0x00, 0x67, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61, 0x00, 0x68, 0x00, 0x20,
+ 0x00, 0x28, 0x00, 0x73, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x6c, 0x00, 0x6f, 0x00, 0x77, 0x00, 0x29, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x56,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
+ 0x00, 0x74, 0x00, 0x0a, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x43, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20,
+ 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x33, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x49, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x52, 0x00, 0x69,
+ 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x65, 0x00, 0x72, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d,
+ 0x00, 0x20, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x0a, 0x00, 0x61, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x6b, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49,
+ 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x50,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x62,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x67, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x79, 0x00, 0x20, 0x00, 0x70, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x62, 0x00, 0x74, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x69,
+ 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x63, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x70, 0x00, 0x61,
+ 0x00, 0x6e, 0x00, 0x79, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6c,
+ 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x28, 0x00, 0x22, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x22, 0x00, 0x29, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x6f, 0x00, 0x63, 0x00, 0x69, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x0a, 0x00, 0x64, 0x00, 0x6f, 0x00, 0x63, 0x00, 0x75,
+ 0x00, 0x6d, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x66, 0x00, 0x69,
+ 0x00, 0x6c, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x28, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x22, 0x00, 0x46, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x22,
+ 0x00, 0x29, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x70, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x64,
+ 0x00, 0x75, 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x0a, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x6c,
+ 0x00, 0x75, 0x00, 0x64, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x77, 0x00, 0x69, 0x00, 0x74, 0x00, 0x68, 0x00, 0x6f, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x72, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x2c, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x75, 0x00, 0x62,
+ 0x00, 0x6c, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x2f, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x69, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x0a, 0x00, 0x70, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x77, 0x00, 0x68, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x66, 0x00, 0x75, 0x00, 0x72, 0x00, 0x6e,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x6f, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x73, 0x00, 0x75,
+ 0x00, 0x62, 0x00, 0x6a, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x0a, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x6f,
+ 0x00, 0x77, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x3a, 0x00, 0x0a, 0x00, 0x0a,
+ 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x62,
+ 0x00, 0x6f, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x72, 0x00, 0x61, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6d,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x6b, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x70, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x6d, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x0a, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x6c, 0x00, 0x75, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x69, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x66, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x54,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6d,
+ 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6c,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x75, 0x00, 0x6c, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x0a, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x73, 0x00, 0x69, 0x00, 0x67, 0x00, 0x6e,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x67,
+ 0x00, 0x6c, 0x00, 0x79, 0x00, 0x70, 0x00, 0x68, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x61, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f,
+ 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x0a, 0x00, 0x61,
+ 0x00, 0x64, 0x00, 0x64, 0x00, 0x69, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x67, 0x00, 0x6c,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x68, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x61, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x6c, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x0a, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f,
+ 0x00, 0x20, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x65, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x64, 0x00, 0x73, 0x00, 0x20, 0x00, 0x22, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x22, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x64, 0x00, 0x0a, 0x00, 0x22, 0x00, 0x56, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x61, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a,
+ 0x00, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x4c,
+ 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x75, 0x00, 0x6c,
+ 0x00, 0x6c, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x76, 0x00, 0x6f, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x70, 0x00, 0x70, 0x00, 0x6c, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x61, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x0a, 0x00, 0x53,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x68, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f,
+ 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x75, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x22, 0x00, 0x42, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x0a, 0x00, 0x56,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x22, 0x00, 0x20, 0x00, 0x6e,
+ 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x73, 0x00, 0x2e, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6c, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x70, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x72, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6b, 0x00, 0x61, 0x00, 0x67,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x0a, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65,
+ 0x00, 0x66, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6c, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x65, 0x00, 0x6c, 0x00, 0x66, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a,
+ 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x20, 0x00, 0x46, 0x00, 0x4f,
+ 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20, 0x00, 0x53, 0x00, 0x4f, 0x00, 0x46,
+ 0x00, 0x54, 0x00, 0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x53, 0x00, 0x20, 0x00, 0x50, 0x00, 0x52, 0x00, 0x4f,
+ 0x00, 0x56, 0x00, 0x49, 0x00, 0x44, 0x00, 0x45, 0x00, 0x44, 0x00, 0x20,
+ 0x00, 0x22, 0x00, 0x41, 0x00, 0x53, 0x00, 0x20, 0x00, 0x49, 0x00, 0x53,
+ 0x00, 0x22, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x57, 0x00, 0x49, 0x00, 0x54,
+ 0x00, 0x48, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x54, 0x00, 0x20, 0x00, 0x57,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x59, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x20, 0x00, 0x41,
+ 0x00, 0x4e, 0x00, 0x59, 0x00, 0x20, 0x00, 0x4b, 0x00, 0x49, 0x00, 0x4e,
+ 0x00, 0x44, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x45, 0x00, 0x58, 0x00, 0x50,
+ 0x00, 0x52, 0x00, 0x45, 0x00, 0x53, 0x00, 0x53, 0x00, 0x0a, 0x00, 0x4f,
+ 0x00, 0x52, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x50, 0x00, 0x4c,
+ 0x00, 0x49, 0x00, 0x45, 0x00, 0x44, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49,
+ 0x00, 0x4e, 0x00, 0x43, 0x00, 0x4c, 0x00, 0x55, 0x00, 0x44, 0x00, 0x49,
+ 0x00, 0x4e, 0x00, 0x47, 0x00, 0x20, 0x00, 0x42, 0x00, 0x55, 0x00, 0x54,
+ 0x00, 0x20, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x20, 0x00, 0x4c,
+ 0x00, 0x49, 0x00, 0x4d, 0x00, 0x49, 0x00, 0x54, 0x00, 0x45, 0x00, 0x44,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x4f, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e,
+ 0x00, 0x59, 0x00, 0x20, 0x00, 0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x52,
+ 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x49, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x20, 0x00, 0x4d, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x43, 0x00, 0x48, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x41, 0x00, 0x42, 0x00, 0x49, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54,
+ 0x00, 0x59, 0x00, 0x2c, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x49, 0x00, 0x54,
+ 0x00, 0x4e, 0x00, 0x45, 0x00, 0x53, 0x00, 0x53, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x41, 0x00, 0x20, 0x00, 0x50,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x54, 0x00, 0x49, 0x00, 0x43, 0x00, 0x55,
+ 0x00, 0x4c, 0x00, 0x41, 0x00, 0x52, 0x00, 0x20, 0x00, 0x50, 0x00, 0x55,
+ 0x00, 0x52, 0x00, 0x50, 0x00, 0x4f, 0x00, 0x53, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x4e, 0x00, 0x44, 0x00, 0x20, 0x00, 0x4e, 0x00, 0x4f,
+ 0x00, 0x4e, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x46, 0x00, 0x52, 0x00, 0x49,
+ 0x00, 0x4e, 0x00, 0x47, 0x00, 0x45, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x4e,
+ 0x00, 0x54, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x20, 0x00, 0x43,
+ 0x00, 0x4f, 0x00, 0x50, 0x00, 0x59, 0x00, 0x52, 0x00, 0x49, 0x00, 0x47,
+ 0x00, 0x48, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x50, 0x00, 0x41,
+ 0x00, 0x54, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x0a,
+ 0x00, 0x54, 0x00, 0x52, 0x00, 0x41, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4d,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x52, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x20, 0x00, 0x52, 0x00, 0x49, 0x00, 0x47, 0x00, 0x48,
+ 0x00, 0x54, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x20,
+ 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x20, 0x00, 0x45, 0x00, 0x56, 0x00, 0x45,
+ 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20, 0x00, 0x53, 0x00, 0x48, 0x00, 0x41,
+ 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x20, 0x00, 0x42, 0x00, 0x49, 0x00, 0x54,
+ 0x00, 0x53, 0x00, 0x54, 0x00, 0x52, 0x00, 0x45, 0x00, 0x41, 0x00, 0x4d,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x47, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x4d,
+ 0x00, 0x45, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x4e,
+ 0x00, 0x44, 0x00, 0x41, 0x00, 0x54, 0x00, 0x49, 0x00, 0x4f, 0x00, 0x4e,
+ 0x00, 0x20, 0x00, 0x42, 0x00, 0x45, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x49,
+ 0x00, 0x41, 0x00, 0x42, 0x00, 0x4c, 0x00, 0x45, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x59,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x4c, 0x00, 0x41, 0x00, 0x49, 0x00, 0x4d,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x44, 0x00, 0x41, 0x00, 0x4d, 0x00, 0x41,
+ 0x00, 0x47, 0x00, 0x45, 0x00, 0x53, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x52,
+ 0x00, 0x20, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x41, 0x00, 0x42, 0x00, 0x49,
+ 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54, 0x00, 0x59, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x43, 0x00, 0x4c, 0x00, 0x55, 0x00, 0x44,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x0a, 0x00, 0x41, 0x00, 0x4e,
+ 0x00, 0x59, 0x00, 0x20, 0x00, 0x47, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x50, 0x00, 0x45, 0x00, 0x43, 0x00, 0x49, 0x00, 0x41, 0x00, 0x4c,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x44, 0x00, 0x49,
+ 0x00, 0x52, 0x00, 0x45, 0x00, 0x43, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x43, 0x00, 0x49, 0x00, 0x44, 0x00, 0x45,
+ 0x00, 0x4e, 0x00, 0x54, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x4e,
+ 0x00, 0x53, 0x00, 0x45, 0x00, 0x51, 0x00, 0x55, 0x00, 0x45, 0x00, 0x4e,
+ 0x00, 0x54, 0x00, 0x49, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x20, 0x00, 0x44,
+ 0x00, 0x41, 0x00, 0x4d, 0x00, 0x41, 0x00, 0x47, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x2c, 0x00, 0x0a, 0x00, 0x57, 0x00, 0x48, 0x00, 0x45, 0x00, 0x54,
+ 0x00, 0x48, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x41, 0x00, 0x43,
+ 0x00, 0x54, 0x00, 0x49, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x46, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x43, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x54, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x52, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x57, 0x00, 0x49, 0x00, 0x53, 0x00, 0x45, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x52, 0x00, 0x49, 0x00, 0x53, 0x00, 0x49,
+ 0x00, 0x4e, 0x00, 0x47, 0x00, 0x20, 0x00, 0x46, 0x00, 0x52, 0x00, 0x4f,
+ 0x00, 0x4d, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x54,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x0a, 0x00, 0x54, 0x00, 0x48,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x41,
+ 0x00, 0x42, 0x00, 0x49, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54, 0x00, 0x59,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x4f, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00, 0x57, 0x00, 0x41, 0x00, 0x52,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x52, 0x00, 0x4f, 0x00, 0x4d, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54,
+ 0x00, 0x48, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x44, 0x00, 0x45,
+ 0x00, 0x41, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x53,
+ 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48,
+ 0x00, 0x45, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00, 0x57,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x45, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a,
+ 0x00, 0x45, 0x00, 0x78, 0x00, 0x63, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x47, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x65,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x47, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x0a,
+ 0x00, 0x46, 0x00, 0x6f, 0x00, 0x75, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x20, 0x00, 0x49, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x73, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6c,
+ 0x00, 0x6c, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x61,
+ 0x00, 0x64, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x77, 0x00, 0x69, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x6f,
+ 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x61, 0x00, 0x6c,
+ 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65,
+ 0x00, 0x61, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x0a, 0x00, 0x77,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x68, 0x00, 0x6f, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x77, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x61, 0x00, 0x75, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x69, 0x00, 0x7a, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x66,
+ 0x00, 0x72, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x47, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x6d,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x75, 0x00, 0x6e,
+ 0x00, 0x64, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x0a, 0x00, 0x49, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x2e,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x73, 0x00, 0x70,
+ 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65,
+ 0x00, 0x6c, 0x00, 0x79, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x20, 0x00, 0x66, 0x00, 0x75, 0x00, 0x72, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x63, 0x00, 0x74,
+ 0x00, 0x3a, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x74, 0x00, 0x20, 0x00, 0x67,
+ 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x6f, 0x00, 0x74, 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67,
+ 0x00, 0x2e, 0x00, 0x20, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x41, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x76, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x70,
+ 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74,
+ 0x00, 0x0a, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d, 0x00, 0x2d,
+ 0x00, 0x2d, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x70,
+ 0x00, 0x79, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29, 0x00, 0x20, 0x00, 0x32,
+ 0x00, 0x30, 0x00, 0x30, 0x00, 0x36, 0x00, 0x20, 0x00, 0x62, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d, 0x00, 0x6a,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61,
+ 0x00, 0x68, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x41, 0x00, 0x6c, 0x00, 0x6c,
+ 0x00, 0x20, 0x00, 0x52, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x76, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2e, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x50, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x67, 0x00, 0x72,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x79, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x74, 0x00, 0x61, 0x00, 0x69,
+ 0x00, 0x6e, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x0a, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d,
+ 0x00, 0x70, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x79, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x67, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e,
+ 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x28, 0x00, 0x22, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x22, 0x00, 0x29,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x0a, 0x00, 0x61,
+ 0x00, 0x73, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x63, 0x00, 0x69, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6f,
+ 0x00, 0x63, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x28, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x22,
+ 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x22, 0x00, 0x29, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x70, 0x00, 0x72,
+ 0x00, 0x6f, 0x00, 0x64, 0x00, 0x75, 0x00, 0x63, 0x00, 0x65, 0x00, 0x0a,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x64, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75,
+ 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66,
+ 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x42, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x20, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61,
+ 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x0a, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x63, 0x00, 0x6c, 0x00, 0x75, 0x00, 0x64, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x67, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x6f, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69,
+ 0x00, 0x6d, 0x00, 0x69, 0x00, 0x74, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x72, 0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x75,
+ 0x00, 0x73, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x70, 0x00, 0x79, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x75, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68,
+ 0x00, 0x2c, 0x00, 0x0a, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74,
+ 0x00, 0x72, 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x2f,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6c,
+ 0x00, 0x6c, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x69,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x70, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x0a, 0x00, 0x70, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x77, 0x00, 0x68, 0x00, 0x6f, 0x00, 0x6d,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x66, 0x00, 0x75,
+ 0x00, 0x72, 0x00, 0x6e, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x64,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6a, 0x00, 0x65, 0x00, 0x63,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x0a, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6c,
+ 0x00, 0x6c, 0x00, 0x6f, 0x00, 0x77, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x3a,
+ 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x62, 0x00, 0x6f, 0x00, 0x76, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72, 0x00, 0x69,
+ 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x72, 0x00, 0x61, 0x00, 0x64,
+ 0x00, 0x65, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x72, 0x00, 0x6b, 0x00, 0x20,
+ 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x70,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x69, 0x00, 0x73, 0x00, 0x73,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x0a, 0x00, 0x73,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x6c,
+ 0x00, 0x75, 0x00, 0x64, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6e, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x69, 0x00, 0x65, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6d,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x0a, 0x00, 0x74, 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x66,
+ 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x73, 0x00, 0x2e, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x54, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64, 0x00, 0x69,
+ 0x00, 0x66, 0x00, 0x69, 0x00, 0x65, 0x00, 0x64, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x0a, 0x00, 0x70,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x75,
+ 0x00, 0x6c, 0x00, 0x61, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x64, 0x00, 0x65, 0x00, 0x73, 0x00, 0x69,
+ 0x00, 0x67, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66,
+ 0x00, 0x20, 0x00, 0x67, 0x00, 0x6c, 0x00, 0x79, 0x00, 0x70, 0x00, 0x68,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x72, 0x00, 0x61, 0x00, 0x63, 0x00, 0x74,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6d,
+ 0x00, 0x61, 0x00, 0x79, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x0a,
+ 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69,
+ 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x64, 0x00, 0x64, 0x00, 0x69, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20,
+ 0x00, 0x67, 0x00, 0x6c, 0x00, 0x79, 0x00, 0x70, 0x00, 0x68, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x63, 0x00, 0x68,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x61, 0x00, 0x63, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x72, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64,
+ 0x00, 0x64, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x0a, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x6c, 0x00, 0x79, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x65, 0x00, 0x69, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x0a, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x64, 0x00, 0x73, 0x00, 0x20, 0x00, 0x22,
+ 0x00, 0x54, 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d, 0x00, 0x6a, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61, 0x00, 0x68,
+ 0x00, 0x22, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x22, 0x00, 0x41, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x76, 0x00, 0x22, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x54,
+ 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x69,
+ 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x62, 0x00, 0x65, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x75, 0x00, 0x6c, 0x00, 0x6c,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x76,
+ 0x00, 0x6f, 0x00, 0x69, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x65,
+ 0x00, 0x78, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x70, 0x00, 0x70, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63,
+ 0x00, 0x61, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x73, 0x00, 0x0a, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x61, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x68, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65,
+ 0x00, 0x65, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64,
+ 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20,
+ 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72,
+ 0x00, 0x69, 0x00, 0x62, 0x00, 0x75, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x75, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x0a,
+ 0x00, 0x22, 0x00, 0x54, 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d, 0x00, 0x6a,
+ 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61,
+ 0x00, 0x68, 0x00, 0x20, 0x00, 0x41, 0x00, 0x72, 0x00, 0x65, 0x00, 0x76,
+ 0x00, 0x22, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65,
+ 0x00, 0x73, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x54, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61,
+ 0x00, 0x79, 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73,
+ 0x00, 0x6f, 0x00, 0x6c, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61, 0x00, 0x73,
+ 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x61, 0x00, 0x20, 0x00, 0x6c,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61,
+ 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x70, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x6b, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x62,
+ 0x00, 0x75, 0x00, 0x74, 0x00, 0x0a, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x20, 0x00, 0x6f,
+ 0x00, 0x66, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e,
+ 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74,
+ 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x79, 0x00, 0x70, 0x00, 0x65, 0x00, 0x66, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x79,
+ 0x00, 0x20, 0x00, 0x62, 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x6f,
+ 0x00, 0x6c, 0x00, 0x64, 0x00, 0x20, 0x00, 0x62, 0x00, 0x79, 0x00, 0x0a,
+ 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x66,
+ 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45,
+ 0x00, 0x20, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00, 0x57, 0x00, 0x41,
+ 0x00, 0x52, 0x00, 0x45, 0x00, 0x20, 0x00, 0x49, 0x00, 0x53, 0x00, 0x20,
+ 0x00, 0x50, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x56, 0x00, 0x49, 0x00, 0x44,
+ 0x00, 0x45, 0x00, 0x44, 0x00, 0x20, 0x00, 0x22, 0x00, 0x41, 0x00, 0x53,
+ 0x00, 0x20, 0x00, 0x49, 0x00, 0x53, 0x00, 0x22, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x57, 0x00, 0x49, 0x00, 0x54, 0x00, 0x48, 0x00, 0x4f, 0x00, 0x55,
+ 0x00, 0x54, 0x00, 0x20, 0x00, 0x57, 0x00, 0x41, 0x00, 0x52, 0x00, 0x52,
+ 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x59, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x46, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x59, 0x00, 0x20,
+ 0x00, 0x4b, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x44, 0x00, 0x2c, 0x00, 0x0a,
+ 0x00, 0x45, 0x00, 0x58, 0x00, 0x50, 0x00, 0x52, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x49,
+ 0x00, 0x4d, 0x00, 0x50, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x45, 0x00, 0x44,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x43, 0x00, 0x4c,
+ 0x00, 0x55, 0x00, 0x44, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x20,
+ 0x00, 0x42, 0x00, 0x55, 0x00, 0x54, 0x00, 0x20, 0x00, 0x4e, 0x00, 0x4f,
+ 0x00, 0x54, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x49,
+ 0x00, 0x54, 0x00, 0x45, 0x00, 0x44, 0x00, 0x20, 0x00, 0x54, 0x00, 0x4f,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x59, 0x00, 0x20, 0x00, 0x57,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x52, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x49, 0x00, 0x45, 0x00, 0x53, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46,
+ 0x00, 0x0a, 0x00, 0x4d, 0x00, 0x45, 0x00, 0x52, 0x00, 0x43, 0x00, 0x48,
+ 0x00, 0x41, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x41, 0x00, 0x42, 0x00, 0x49,
+ 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54, 0x00, 0x59, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x49, 0x00, 0x54, 0x00, 0x4e, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x53, 0x00, 0x20, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20,
+ 0x00, 0x41, 0x00, 0x20, 0x00, 0x50, 0x00, 0x41, 0x00, 0x52, 0x00, 0x54,
+ 0x00, 0x49, 0x00, 0x43, 0x00, 0x55, 0x00, 0x4c, 0x00, 0x41, 0x00, 0x52,
+ 0x00, 0x20, 0x00, 0x50, 0x00, 0x55, 0x00, 0x52, 0x00, 0x50, 0x00, 0x4f,
+ 0x00, 0x53, 0x00, 0x45, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x44,
+ 0x00, 0x20, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x49, 0x00, 0x4e,
+ 0x00, 0x46, 0x00, 0x52, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x45,
+ 0x00, 0x4d, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x4f,
+ 0x00, 0x46, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x59,
+ 0x00, 0x52, 0x00, 0x49, 0x00, 0x47, 0x00, 0x48, 0x00, 0x54, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x50, 0x00, 0x41, 0x00, 0x54, 0x00, 0x45, 0x00, 0x4e,
+ 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x54, 0x00, 0x52, 0x00, 0x41,
+ 0x00, 0x44, 0x00, 0x45, 0x00, 0x4d, 0x00, 0x41, 0x00, 0x52, 0x00, 0x4b,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x52,
+ 0x00, 0x49, 0x00, 0x47, 0x00, 0x48, 0x00, 0x54, 0x00, 0x2e, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x20,
+ 0x00, 0x45, 0x00, 0x56, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20,
+ 0x00, 0x53, 0x00, 0x48, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x0a,
+ 0x00, 0x54, 0x00, 0x41, 0x00, 0x56, 0x00, 0x4d, 0x00, 0x4a, 0x00, 0x4f,
+ 0x00, 0x4e, 0x00, 0x47, 0x00, 0x20, 0x00, 0x42, 0x00, 0x41, 0x00, 0x48,
+ 0x00, 0x20, 0x00, 0x42, 0x00, 0x45, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x49,
+ 0x00, 0x41, 0x00, 0x42, 0x00, 0x4c, 0x00, 0x45, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x59,
+ 0x00, 0x20, 0x00, 0x43, 0x00, 0x4c, 0x00, 0x41, 0x00, 0x49, 0x00, 0x4d,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x44, 0x00, 0x41, 0x00, 0x4d, 0x00, 0x41,
+ 0x00, 0x47, 0x00, 0x45, 0x00, 0x53, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x52,
+ 0x00, 0x20, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x41, 0x00, 0x42, 0x00, 0x49,
+ 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54, 0x00, 0x59, 0x00, 0x2c, 0x00, 0x0a,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x43, 0x00, 0x4c, 0x00, 0x55, 0x00, 0x44,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e,
+ 0x00, 0x59, 0x00, 0x20, 0x00, 0x47, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x50, 0x00, 0x45, 0x00, 0x43, 0x00, 0x49, 0x00, 0x41, 0x00, 0x4c,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x44, 0x00, 0x49,
+ 0x00, 0x52, 0x00, 0x45, 0x00, 0x43, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x49, 0x00, 0x4e, 0x00, 0x43, 0x00, 0x49, 0x00, 0x44, 0x00, 0x45,
+ 0x00, 0x4e, 0x00, 0x54, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x4e,
+ 0x00, 0x53, 0x00, 0x45, 0x00, 0x51, 0x00, 0x55, 0x00, 0x45, 0x00, 0x4e,
+ 0x00, 0x54, 0x00, 0x49, 0x00, 0x41, 0x00, 0x4c, 0x00, 0x0a, 0x00, 0x44,
+ 0x00, 0x41, 0x00, 0x4d, 0x00, 0x41, 0x00, 0x47, 0x00, 0x45, 0x00, 0x53,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x57, 0x00, 0x48, 0x00, 0x45, 0x00, 0x54,
+ 0x00, 0x48, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x41, 0x00, 0x43,
+ 0x00, 0x54, 0x00, 0x49, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x46, 0x00, 0x20, 0x00, 0x43, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x52, 0x00, 0x41, 0x00, 0x43, 0x00, 0x54, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x54, 0x00, 0x20, 0x00, 0x4f,
+ 0x00, 0x52, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45,
+ 0x00, 0x52, 0x00, 0x57, 0x00, 0x49, 0x00, 0x53, 0x00, 0x45, 0x00, 0x2c,
+ 0x00, 0x20, 0x00, 0x41, 0x00, 0x52, 0x00, 0x49, 0x00, 0x53, 0x00, 0x49,
+ 0x00, 0x4e, 0x00, 0x47, 0x00, 0x0a, 0x00, 0x46, 0x00, 0x52, 0x00, 0x4f,
+ 0x00, 0x4d, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x54,
+ 0x00, 0x20, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x41,
+ 0x00, 0x42, 0x00, 0x49, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x54, 0x00, 0x59,
+ 0x00, 0x20, 0x00, 0x54, 0x00, 0x4f, 0x00, 0x20, 0x00, 0x55, 0x00, 0x53,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48, 0x00, 0x45, 0x00, 0x20,
+ 0x00, 0x46, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x20, 0x00, 0x53,
+ 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00, 0x57, 0x00, 0x41, 0x00, 0x52,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x52, 0x00, 0x4f, 0x00, 0x4d, 0x00, 0x0a, 0x00, 0x4f, 0x00, 0x54,
+ 0x00, 0x48, 0x00, 0x45, 0x00, 0x52, 0x00, 0x20, 0x00, 0x44, 0x00, 0x45,
+ 0x00, 0x41, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x47, 0x00, 0x53,
+ 0x00, 0x20, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x20, 0x00, 0x54, 0x00, 0x48,
+ 0x00, 0x45, 0x00, 0x20, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x54,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x54, 0x00, 0x57,
+ 0x00, 0x41, 0x00, 0x52, 0x00, 0x45, 0x00, 0x2e, 0x00, 0x0a, 0x00, 0x0a,
+ 0x00, 0x45, 0x00, 0x78, 0x00, 0x63, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x61, 0x00, 0x73, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x65,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6e, 0x00, 0x61,
+ 0x00, 0x6d, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+ 0x00, 0x54, 0x00, 0x61, 0x00, 0x76, 0x00, 0x6d, 0x00, 0x6a, 0x00, 0x6f,
+ 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x42, 0x00, 0x61, 0x00, 0x68,
+ 0x00, 0x20, 0x00, 0x73, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x6c,
+ 0x00, 0x20, 0x00, 0x6e, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x0a, 0x00, 0x62,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x64,
+ 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x61, 0x00, 0x64,
+ 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x73,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x72,
+ 0x00, 0x20, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72,
+ 0x00, 0x77, 0x00, 0x69, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74,
+ 0x00, 0x6f, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x6d,
+ 0x00, 0x6f, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x65,
+ 0x00, 0x2c, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x65, 0x00, 0x72, 0x00, 0x0a, 0x00, 0x64, 0x00, 0x65, 0x00, 0x61,
+ 0x00, 0x6c, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x73, 0x00, 0x20,
+ 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, 0x00, 0x69,
+ 0x00, 0x73, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
+ 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77,
+ 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x77, 0x00, 0x69,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x6f, 0x00, 0x75, 0x00, 0x74, 0x00, 0x20,
+ 0x00, 0x70, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20,
+ 0x00, 0x77, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x74, 0x00, 0x65,
+ 0x00, 0x6e, 0x00, 0x20, 0x00, 0x61, 0x00, 0x75, 0x00, 0x74, 0x00, 0x68,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x69, 0x00, 0x7a, 0x00, 0x61, 0x00, 0x74,
+ 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x0a, 0x00, 0x66, 0x00, 0x72,
+ 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x20, 0x00, 0x54, 0x00, 0x61, 0x00, 0x76,
+ 0x00, 0x6d, 0x00, 0x6a, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x42, 0x00, 0x61, 0x00, 0x68, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x46,
+ 0x00, 0x6f, 0x00, 0x72, 0x00, 0x20, 0x00, 0x66, 0x00, 0x75, 0x00, 0x72,
+ 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00, 0x69,
+ 0x00, 0x6e, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x61,
+ 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x2c, 0x00, 0x20,
+ 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x61, 0x00, 0x63,
+ 0x00, 0x74, 0x00, 0x3a, 0x00, 0x20, 0x00, 0x74, 0x00, 0x61, 0x00, 0x76,
+ 0x00, 0x6d, 0x00, 0x6a, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+ 0x00, 0x40, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65,
+ 0x00, 0x0a, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x2e,
+ 0x00, 0x00, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20,
+ 0x28, 0x63, 0x29, 0x20, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x20, 0x28, 0x73, 0x65, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77,
+ 0x29, 0x2e, 0x20, 0x44, 0x65, 0x6a, 0x61, 0x56, 0x75, 0x20, 0x63, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e,
+ 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61,
+ 0x69, 0x6e, 0x2e, 0x20, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x73, 0x20, 0x69,
+ 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d,
+ 0x20, 0x41, 0x72, 0x65, 0x76, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x73, 0x20,
+ 0x61, 0x72, 0x65, 0x20, 0x28, 0x63, 0x29, 0x20, 0x54, 0x61, 0x76, 0x6d,
+ 0x6a, 0x75, 0x6e, 0x67, 0x20, 0x42, 0x61, 0x68, 0x20, 0x28, 0x73, 0x65,
+ 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x42, 0x69,
+ 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x61,
+ 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,
+ 0x0a, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x33, 0x20, 0x62, 0x79, 0x20, 0x42,
+ 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x20, 0x49, 0x6e,
+ 0x63, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74,
+ 0x73, 0x20, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x20,
+ 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x56, 0x65,
+ 0x72, 0x61, 0x20, 0x69, 0x73, 0x0a, 0x61, 0x20, 0x74, 0x72, 0x61, 0x64,
+ 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x6f, 0x66, 0x20, 0x42, 0x69, 0x74,
+ 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+ 0x20, 0x69, 0x73, 0x20, 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67,
+ 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x66, 0x72, 0x65, 0x65,
+ 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20,
+ 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f,
+ 0x6e, 0x20, 0x6f, 0x62, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20,
+ 0x61, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x0a, 0x6f, 0x66, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x61, 0x63, 0x63, 0x6f,
+ 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69,
+ 0x73, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x28, 0x22,
+ 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x22, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20,
+ 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x64,
+ 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20,
+ 0x22, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
+ 0x72, 0x65, 0x22, 0x29, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x70,
+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64,
+ 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68,
+ 0x65, 0x0a, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77,
+ 0x61, 0x72, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69,
+ 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20,
+ 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, 0x6d,
+ 0x65, 0x72, 0x67, 0x65, 0x2c, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
+ 0x68, 0x2c, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+ 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x73, 0x65,
+ 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f,
+ 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20,
+ 0x74, 0x6f, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x0a, 0x70, 0x65,
+ 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x68, 0x6f,
+ 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53,
+ 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66,
+ 0x75, 0x72, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20,
+ 0x64, 0x6f, 0x20, 0x73, 0x6f, 0x2c, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x66, 0x6f,
+ 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x64,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x0a, 0x54, 0x68, 0x65,
+ 0x20, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x72, 0x61,
+ 0x64, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63,
+ 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
+ 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e,
+ 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x0a,
+ 0x62, 0x65, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20,
+ 0x69, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20,
+ 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72,
+ 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
+ 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53,
+ 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20,
+ 0x62, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c,
+ 0x20, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72,
+ 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61,
+ 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
+ 0x75, 0x6c, 0x61, 0x72, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73,
+ 0x69, 0x67, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x67, 0x6c, 0x79, 0x70,
+ 0x68, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
+ 0x74, 0x65, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65,
+ 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x6e,
+ 0x64, 0x0a, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x20, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63,
+ 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6d, 0x61,
+ 0x79, 0x20, 0x62, 0x65, 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74,
+ 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x2c,
+ 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x73, 0x0a, 0x61, 0x72, 0x65, 0x20, 0x72,
+ 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x61,
+ 0x6d, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65,
+ 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x20,
+ 0x22, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x20,
+ 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x0a,
+ 0x22, 0x56, 0x65, 0x72, 0x61, 0x22, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69,
+ 0x73, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x62, 0x65,
+ 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x61,
+ 0x6e, 0x64, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x70,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20,
+ 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x6f, 0x6e,
+ 0x74, 0x0a, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x74,
+ 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e,
+ 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x6e,
+ 0x64, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x22, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x0a, 0x56, 0x65, 0x72, 0x61, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65,
+ 0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74,
+ 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6d, 0x61,
+ 0x79, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x64, 0x20, 0x61, 0x73,
+ 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x6c,
+ 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61,
+ 0x72, 0x65, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x20, 0x62,
+ 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x0a, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f,
+ 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72,
+ 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e,
+ 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x74,
+ 0x79, 0x70, 0x65, 0x66, 0x61, 0x63, 0x65, 0x73, 0x20, 0x6d, 0x61, 0x79,
+ 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x64, 0x20, 0x62, 0x79, 0x20,
+ 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x0a, 0x0a, 0x54, 0x48, 0x45,
+ 0x20, 0x46, 0x4f, 0x4e, 0x54, 0x20, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41,
+ 0x52, 0x45, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44,
+ 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53, 0x22, 0x2c, 0x20,
+ 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x57, 0x41, 0x52, 0x52,
+ 0x41, 0x4e, 0x54, 0x59, 0x20, 0x4f, 0x46, 0x20, 0x41, 0x4e, 0x59, 0x20,
+ 0x4b, 0x49, 0x4e, 0x44, 0x2c, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53,
+ 0x53, 0x0a, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x45, 0x44,
+ 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x20,
+ 0x42, 0x55, 0x54, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x4c, 0x49, 0x4d, 0x49,
+ 0x54, 0x45, 0x44, 0x20, 0x54, 0x4f, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x57,
+ 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53, 0x20, 0x4f, 0x46,
+ 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42, 0x49,
+ 0x4c, 0x49, 0x54, 0x59, 0x2c, 0x0a, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53,
+ 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x20, 0x50, 0x41, 0x52, 0x54,
+ 0x49, 0x43, 0x55, 0x4c, 0x41, 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f,
+ 0x53, 0x45, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x4e, 0x4f, 0x4e, 0x49, 0x4e,
+ 0x46, 0x52, 0x49, 0x4e, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x20, 0x4f,
+ 0x46, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47, 0x48, 0x54, 0x2c,
+ 0x20, 0x50, 0x41, 0x54, 0x45, 0x4e, 0x54, 0x2c, 0x0a, 0x54, 0x52, 0x41,
+ 0x44, 0x45, 0x4d, 0x41, 0x52, 0x4b, 0x2c, 0x20, 0x4f, 0x52, 0x20, 0x4f,
+ 0x54, 0x48, 0x45, 0x52, 0x20, 0x52, 0x49, 0x47, 0x48, 0x54, 0x2e, 0x20,
+ 0x49, 0x4e, 0x20, 0x4e, 0x4f, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x20,
+ 0x53, 0x48, 0x41, 0x4c, 0x4c, 0x20, 0x42, 0x49, 0x54, 0x53, 0x54, 0x52,
+ 0x45, 0x41, 0x4d, 0x20, 0x4f, 0x52, 0x20, 0x54, 0x48, 0x45, 0x20, 0x47,
+ 0x4e, 0x4f, 0x4d, 0x45, 0x0a, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x41, 0x54,
+ 0x49, 0x4f, 0x4e, 0x20, 0x42, 0x45, 0x20, 0x4c, 0x49, 0x41, 0x42, 0x4c,
+ 0x45, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x4e, 0x59, 0x20, 0x43, 0x4c,
+ 0x41, 0x49, 0x4d, 0x2c, 0x20, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x53,
+ 0x20, 0x4f, 0x52, 0x20, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x20, 0x4c, 0x49,
+ 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x2c, 0x20, 0x49, 0x4e, 0x43,
+ 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47, 0x0a, 0x41, 0x4e, 0x59, 0x20, 0x47,
+ 0x45, 0x4e, 0x45, 0x52, 0x41, 0x4c, 0x2c, 0x20, 0x53, 0x50, 0x45, 0x43,
+ 0x49, 0x41, 0x4c, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x49, 0x52, 0x45, 0x43,
+ 0x54, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x41,
+ 0x4c, 0x2c, 0x20, 0x4f, 0x52, 0x20, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x51,
+ 0x55, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x20, 0x44, 0x41, 0x4d, 0x41,
+ 0x47, 0x45, 0x53, 0x2c, 0x0a, 0x57, 0x48, 0x45, 0x54, 0x48, 0x45, 0x52,
+ 0x20, 0x49, 0x4e, 0x20, 0x41, 0x4e, 0x20, 0x41, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x20, 0x4f, 0x46, 0x20, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43,
+ 0x54, 0x2c, 0x20, 0x54, 0x4f, 0x52, 0x54, 0x20, 0x4f, 0x52, 0x20, 0x4f,
+ 0x54, 0x48, 0x45, 0x52, 0x57, 0x49, 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52,
+ 0x49, 0x53, 0x49, 0x4e, 0x47, 0x20, 0x46, 0x52, 0x4f, 0x4d, 0x2c, 0x20,
+ 0x4f, 0x55, 0x54, 0x20, 0x4f, 0x46, 0x0a, 0x54, 0x48, 0x45, 0x20, 0x55,
+ 0x53, 0x45, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4e, 0x41, 0x42, 0x49, 0x4c,
+ 0x49, 0x54, 0x59, 0x20, 0x54, 0x4f, 0x20, 0x55, 0x53, 0x45, 0x20, 0x54,
+ 0x48, 0x45, 0x20, 0x46, 0x4f, 0x4e, 0x54, 0x20, 0x53, 0x4f, 0x46, 0x54,
+ 0x57, 0x41, 0x52, 0x45, 0x20, 0x4f, 0x52, 0x20, 0x46, 0x52, 0x4f, 0x4d,
+ 0x20, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x20, 0x44, 0x45, 0x41, 0x4c, 0x49,
+ 0x4e, 0x47, 0x53, 0x20, 0x49, 0x4e, 0x20, 0x54, 0x48, 0x45, 0x0a, 0x46,
+ 0x4f, 0x4e, 0x54, 0x20, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45,
+ 0x2e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x61, 0x73,
+ 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69,
+ 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63,
+ 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+ 0x20, 0x6f, 0x66, 0x20, 0x47, 0x6e, 0x6f, 0x6d, 0x65, 0x2c, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x47, 0x6e, 0x6f, 0x6d, 0x65, 0x0a, 0x46, 0x6f, 0x75,
+ 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x2c, 0x20, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x20, 0x6e,
+ 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69,
+ 0x6e, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x69, 0x6e,
+ 0x67, 0x20, 0x6f, 0x72, 0x0a, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69,
+ 0x73, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
+ 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6c, 0x65, 0x2c, 0x20,
+ 0x75, 0x73, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72,
+ 0x20, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x69, 0x6e,
+ 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53,
+ 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0a, 0x77, 0x69, 0x74, 0x68,
+ 0x6f, 0x75, 0x74, 0x20, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x20, 0x77, 0x72,
+ 0x69, 0x74, 0x74, 0x65, 0x6e, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+ 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x46,
+ 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x72,
+ 0x20, 0x42, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x0a, 0x49,
+ 0x6e, 0x63, 0x2e, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x6c, 0x79, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x66,
+ 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72,
+ 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x74,
+ 0x61, 0x63, 0x74, 0x3a, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x61,
+ 0x74, 0x20, 0x67, 0x6e, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x6f, 0x74, 0x0a,
+ 0x6f, 0x72, 0x67, 0x2e, 0x20, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x76, 0x20,
+ 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69,
+ 0x67, 0x68, 0x74, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
+ 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a,
+ 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63,
+ 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x62, 0x79, 0x20, 0x54, 0x61,
+ 0x76, 0x6d, 0x6a, 0x6f, 0x6e, 0x67, 0x20, 0x42, 0x61, 0x68, 0x2e, 0x20,
+ 0x41, 0x6c, 0x6c, 0x20, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x52,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x50, 0x65,
+ 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20,
+ 0x68, 0x65, 0x72, 0x65, 0x62, 0x79, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74,
+ 0x65, 0x64, 0x2c, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, 0x6f, 0x66, 0x20,
+ 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x61,
+ 0x6e, 0x79, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x20, 0x6f, 0x62,
+ 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x0a, 0x61, 0x20, 0x63, 0x6f,
+ 0x70, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f,
+ 0x6e, 0x74, 0x73, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
+ 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6c, 0x69,
+ 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x28, 0x22, 0x46, 0x6f, 0x6e, 0x74,
+ 0x73, 0x22, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x61, 0x73, 0x73, 0x6f,
+ 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+ 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x6c,
+ 0x65, 0x73, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x22, 0x46, 0x6f, 0x6e,
+ 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x22, 0x29,
+ 0x2c, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x65, 0x0a, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f,
+ 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20,
+ 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x69, 0x74, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x20, 0x56, 0x65, 0x72, 0x61, 0x20, 0x46, 0x6f,
+ 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2c,
+ 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x77,
+ 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69,
+ 0x67, 0x68, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2c,
+ 0x20, 0x63, 0x6f, 0x70, 0x79, 0x2c, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x65,
+ 0x2c, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x2c, 0x0a, 0x64,
+ 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x20, 0x61,
+ 0x6e, 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x6c, 0x6c, 0x20, 0x63,
+ 0x6f, 0x70, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
+ 0x72, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x70,
+ 0x65, 0x72, 0x6d, 0x69, 0x74, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+ 0x73, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x68, 0x6f, 0x6d, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77,
+ 0x61, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x75, 0x72, 0x6e, 0x69,
+ 0x73, 0x68, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x20, 0x73,
+ 0x6f, 0x2c, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74,
+ 0x6f, 0x0a, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
+ 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x3a, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x61, 0x62, 0x6f,
+ 0x76, 0x65, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x72, 0x61, 0x64, 0x65, 0x6d, 0x61,
+ 0x72, 0x6b, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x20, 0x61,
+ 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x65, 0x72, 0x6d,
+ 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63,
+ 0x65, 0x0a, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69,
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x61,
+ 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x20, 0x6f, 0x66,
+ 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65,
+ 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74,
+ 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0a, 0x74, 0x79,
+ 0x70, 0x65, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68,
+ 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77,
+ 0x61, 0x72, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x6d,
+ 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2c, 0x20, 0x61, 0x6c, 0x74,
+ 0x65, 0x72, 0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x64, 0x64,
+ 0x65, 0x64, 0x20, 0x74, 0x6f, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69,
+ 0x6e, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x73,
+ 0x20, 0x6f, 0x66, 0x20, 0x67, 0x6c, 0x79, 0x70, 0x68, 0x73, 0x20, 0x6f,
+ 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73,
+ 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x6f, 0x6e, 0x74,
+ 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x0a, 0x6d, 0x6f, 0x64,
+ 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x64,
+ 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x67, 0x6c, 0x79,
+ 0x70, 0x68, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61,
+ 0x63, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65,
+ 0x20, 0x61, 0x64, 0x64, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68,
+ 0x65, 0x0a, 0x46, 0x6f, 0x6e, 0x74, 0x73, 0x2c, 0x20, 0x6f, 0x6e, 0x6c,
+ 0x79, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6e,
+ 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x6e, 0x61, 0x6d,
+ 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20,
+ 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69,
+ 0x6e, 0x67, 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x0a, 0x74, 0x68,
+ 0x65, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x22, 0x54, 0x61, 0x76,
+ 0x6d, 0x6a, 0x6f, 0x6e, 0x67, 0x20, 0x42, 0x61, 0x68, 0x22, 0x20, 0x6f,
+ 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x22,
+ 0x41, 0x72, 0x65, 0x76, 0x22, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73,
+ 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x62, 0x65, 0x63,
+ 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x61, 0x6e,
+ 0x64, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x70, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x46,
+ 0x6f, 0x6e, 0x74, 0x73, 0x0a, 0x6f, 0x72, 0x20, 0x46, 0x6f, 0x6e, 0x74,
+ 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68,
+ 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20,
+ 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x0a, 0x22, 0x54, 0x61, 0x76, 0x6d, 0x6a, 0x6f, 0x6e, 0x67,
+ 0x20, 0x42, 0x61, 0x68, 0x20, 0x41, 0x72, 0x65, 0x76, 0x22, 0x20, 0x6e,
+ 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x0a, 0x0a, 0x54, 0x68, 0x65, 0x20, 0x46,
+ 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65,
+ 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x64,
+ 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20,
+ 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x73, 0x6f, 0x66,
+ 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x20, 0x62, 0x75, 0x74, 0x0a, 0x6e, 0x6f, 0x20, 0x63, 0x6f, 0x70,
+ 0x79, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20,
+ 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72,
+ 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x66, 0x61, 0x63, 0x65, 0x73, 0x20,
+ 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x6c, 0x64, 0x20,
+ 0x62, 0x79, 0x0a, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x0a, 0x0a,
+ 0x54, 0x48, 0x45, 0x20, 0x46, 0x4f, 0x4e, 0x54, 0x20, 0x53, 0x4f, 0x46,
+ 0x54, 0x57, 0x41, 0x52, 0x45, 0x20, 0x49, 0x53, 0x20, 0x50, 0x52, 0x4f,
+ 0x56, 0x49, 0x44, 0x45, 0x44, 0x20, 0x22, 0x41, 0x53, 0x20, 0x49, 0x53,
+ 0x22, 0x2c, 0x20, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20, 0x57,
+ 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, 0x20, 0x4f, 0x46, 0x20, 0x41,
+ 0x4e, 0x59, 0x20, 0x4b, 0x49, 0x4e, 0x44, 0x2c, 0x0a, 0x45, 0x58, 0x50,
+ 0x52, 0x45, 0x53, 0x53, 0x20, 0x4f, 0x52, 0x20, 0x49, 0x4d, 0x50, 0x4c,
+ 0x49, 0x45, 0x44, 0x2c, 0x20, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49,
+ 0x4e, 0x47, 0x20, 0x42, 0x55, 0x54, 0x20, 0x4e, 0x4f, 0x54, 0x20, 0x4c,
+ 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x20, 0x54, 0x4f, 0x20, 0x41, 0x4e,
+ 0x59, 0x20, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x49, 0x45, 0x53,
+ 0x20, 0x4f, 0x46, 0x0a, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54,
+ 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x2c, 0x20, 0x46, 0x49, 0x54,
+ 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x20, 0x50,
+ 0x41, 0x52, 0x54, 0x49, 0x43, 0x55, 0x4c, 0x41, 0x52, 0x20, 0x50, 0x55,
+ 0x52, 0x50, 0x4f, 0x53, 0x45, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x4e, 0x4f,
+ 0x4e, 0x49, 0x4e, 0x46, 0x52, 0x49, 0x4e, 0x47, 0x45, 0x4d, 0x45, 0x4e,
+ 0x54, 0x0a, 0x4f, 0x46, 0x20, 0x43, 0x4f, 0x50, 0x59, 0x52, 0x49, 0x47,
+ 0x48, 0x54, 0x2c, 0x20, 0x50, 0x41, 0x54, 0x45, 0x4e, 0x54, 0x2c, 0x20,
+ 0x54, 0x52, 0x41, 0x44, 0x45, 0x4d, 0x41, 0x52, 0x4b, 0x2c, 0x20, 0x4f,
+ 0x52, 0x20, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x20, 0x52, 0x49, 0x47, 0x48,
+ 0x54, 0x2e, 0x20, 0x49, 0x4e, 0x20, 0x4e, 0x4f, 0x20, 0x45, 0x56, 0x45,
+ 0x4e, 0x54, 0x20, 0x53, 0x48, 0x41, 0x4c, 0x4c, 0x0a, 0x54, 0x41, 0x56,
+ 0x4d, 0x4a, 0x4f, 0x4e, 0x47, 0x20, 0x42, 0x41, 0x48, 0x20, 0x42, 0x45,
+ 0x20, 0x4c, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x20, 0x46, 0x4f, 0x52, 0x20,
+ 0x41, 0x4e, 0x59, 0x20, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x2c, 0x20, 0x44,
+ 0x41, 0x4d, 0x41, 0x47, 0x45, 0x53, 0x20, 0x4f, 0x52, 0x20, 0x4f, 0x54,
+ 0x48, 0x45, 0x52, 0x20, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
+ 0x59, 0x2c, 0x0a, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x49, 0x4e, 0x47,
+ 0x20, 0x41, 0x4e, 0x59, 0x20, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x4c,
+ 0x2c, 0x20, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x2c, 0x20, 0x49,
+ 0x4e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x2c, 0x20, 0x49, 0x4e, 0x43,
+ 0x49, 0x44, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x2c, 0x20, 0x4f, 0x52, 0x20,
+ 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x54, 0x49, 0x41,
+ 0x4c, 0x0a, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x53, 0x2c, 0x20, 0x57,
+ 0x48, 0x45, 0x54, 0x48, 0x45, 0x52, 0x20, 0x49, 0x4e, 0x20, 0x41, 0x4e,
+ 0x20, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x20, 0x4f, 0x46, 0x20, 0x43,
+ 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x2c, 0x20, 0x54, 0x4f, 0x52,
+ 0x54, 0x20, 0x4f, 0x52, 0x20, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x57, 0x49,
+ 0x53, 0x45, 0x2c, 0x20, 0x41, 0x52, 0x49, 0x53, 0x49, 0x4e, 0x47, 0x0a,
+ 0x46, 0x52, 0x4f, 0x4d, 0x2c, 0x20, 0x4f, 0x55, 0x54, 0x20, 0x4f, 0x46,
+ 0x20, 0x54, 0x48, 0x45, 0x20, 0x55, 0x53, 0x45, 0x20, 0x4f, 0x52, 0x20,
+ 0x49, 0x4e, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x54, 0x4f,
+ 0x20, 0x55, 0x53, 0x45, 0x20, 0x54, 0x48, 0x45, 0x20, 0x46, 0x4f, 0x4e,
+ 0x54, 0x20, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x20, 0x4f,
+ 0x52, 0x20, 0x46, 0x52, 0x4f, 0x4d, 0x0a, 0x4f, 0x54, 0x48, 0x45, 0x52,
+ 0x20, 0x44, 0x45, 0x41, 0x4c, 0x49, 0x4e, 0x47, 0x53, 0x20, 0x49, 0x4e,
+ 0x20, 0x54, 0x48, 0x45, 0x20, 0x46, 0x4f, 0x4e, 0x54, 0x20, 0x53, 0x4f,
+ 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x2e, 0x0a, 0x0a, 0x45, 0x78, 0x63,
+ 0x65, 0x70, 0x74, 0x20, 0x61, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73,
+ 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x54, 0x61, 0x76,
+ 0x6d, 0x6a, 0x6f, 0x6e, 0x67, 0x20, 0x42, 0x61, 0x68, 0x20, 0x73, 0x68,
+ 0x61, 0x6c, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x0a, 0x62, 0x65, 0x20, 0x75,
+ 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x64, 0x76, 0x65, 0x72,
+ 0x74, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74,
+ 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x70,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
+ 0x61, 0x6c, 0x65, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x72, 0x20,
+ 0x6f, 0x74, 0x68, 0x65, 0x72, 0x0a, 0x64, 0x65, 0x61, 0x6c, 0x69, 0x6e,
+ 0x67, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x46,
+ 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65,
+ 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x70, 0x72, 0x69,
+ 0x6f, 0x72, 0x20, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x20, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x54, 0x61, 0x76, 0x6d, 0x6a, 0x6f,
+ 0x6e, 0x67, 0x20, 0x42, 0x61, 0x68, 0x2e, 0x20, 0x46, 0x6f, 0x72, 0x20,
+ 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f,
+ 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x63, 0x74, 0x3a, 0x20, 0x74, 0x61, 0x76, 0x6d, 0x6a, 0x6f,
+ 0x6e, 0x67, 0x20, 0x40, 0x20, 0x66, 0x72, 0x65, 0x65, 0x0a, 0x2e, 0x20,
+ 0x66, 0x72, 0x2e, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74, 0x00, 0x70,
+ 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6a,
+ 0x00, 0x61, 0x00, 0x76, 0x00, 0x75, 0x00, 0x2e, 0x00, 0x73, 0x00, 0x6f,
+ 0x00, 0x75, 0x00, 0x72, 0x00, 0x63, 0x00, 0x65, 0x00, 0x66, 0x00, 0x6f,
+ 0x00, 0x72, 0x00, 0x67, 0x00, 0x65, 0x00, 0x2e, 0x00, 0x6e, 0x00, 0x65,
+ 0x00, 0x74, 0x00, 0x2f, 0x00, 0x77, 0x00, 0x69, 0x00, 0x6b, 0x00, 0x69,
+ 0x00, 0x2f, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x78,
+ 0x00, 0x2e, 0x00, 0x70, 0x00, 0x68, 0x00, 0x70, 0x00, 0x2f, 0x00, 0x4c,
+ 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65,
+ 0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x65, 0x6a,
+ 0x61, 0x76, 0x75, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x66, 0x6f,
+ 0x72, 0x67, 0x65, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x77, 0x69, 0x6b, 0x69,
+ 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x68, 0x70, 0x2f, 0x4c,
+ 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x00, 0x00, 0x44, 0x00, 0x65, 0x00,
+ 0x6a, 0x00, 0x61, 0x00, 0x56, 0x00, 0x75, 0x00, 0x20, 0x00, 0x4c, 0x00,
+ 0x47, 0x00, 0x43, 0x00, 0x20, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00,
+ 0x73, 0x00, 0x00, 0x44, 0x65, 0x6a, 0x61, 0x56, 0x75, 0x20, 0x4c, 0x47,
+ 0x43, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x00, 0x00, 0x43, 0x00, 0x6f, 0x00,
+ 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00,
+ 0x64, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x7e, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x12, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a,
+ 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x10,
+ 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16,
+ 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1a, 0x00, 0x1b, 0x00, 0x1c,
+ 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x1f, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22,
+ 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28,
+ 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0x00, 0x2d, 0x00, 0x2e,
+ 0x00, 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34,
+ 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3a,
+ 0x00, 0x3b, 0x00, 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f, 0x00, 0x40,
+ 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00, 0x46,
+ 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4a, 0x00, 0x4b, 0x00, 0x4c,
+ 0x00, 0x4d, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52,
+ 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, 0x00, 0x58,
+ 0x00, 0x59, 0x00, 0x5a, 0x00, 0x5b, 0x00, 0x5c, 0x00, 0x5d, 0x00, 0x5e,
+ 0x00, 0x5f, 0x00, 0x60, 0x00, 0x61, 0x00, 0xac, 0x00, 0xa3, 0x00, 0x84,
+ 0x00, 0x85, 0x00, 0xbd, 0x00, 0x96, 0x00, 0xe8, 0x00, 0x86, 0x00, 0x8e,
+ 0x00, 0x8b, 0x00, 0x9d, 0x00, 0xa9, 0x00, 0xa4, 0x01, 0x02, 0x00, 0x8a,
+ 0x00, 0xda, 0x00, 0x83, 0x00, 0x93, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0x8d,
+ 0x00, 0x97, 0x00, 0x88, 0x00, 0xc3, 0x00, 0xde, 0x00, 0xf1, 0x00, 0x9e,
+ 0x00, 0xaa, 0x00, 0xf5, 0x00, 0xf4, 0x00, 0xf6, 0x00, 0xa2, 0x00, 0xad,
+ 0x00, 0xc9, 0x00, 0xc7, 0x00, 0xae, 0x00, 0x62, 0x00, 0x63, 0x00, 0x90,
+ 0x00, 0x64, 0x00, 0xcb, 0x00, 0x65, 0x00, 0xc8, 0x00, 0xca, 0x00, 0xcf,
+ 0x00, 0xcc, 0x00, 0xcd, 0x00, 0xce, 0x00, 0xe9, 0x00, 0x66, 0x00, 0xd3,
+ 0x00, 0xd0, 0x00, 0xd1, 0x00, 0xaf, 0x00, 0x67, 0x00, 0xf0, 0x00, 0x91,
+ 0x00, 0xd6, 0x00, 0xd4, 0x00, 0xd5, 0x00, 0x68, 0x00, 0xeb, 0x00, 0xed,
+ 0x00, 0x89, 0x00, 0x6a, 0x00, 0x69, 0x00, 0x6b, 0x00, 0x6d, 0x00, 0x6c,
+ 0x00, 0x6e, 0x00, 0xa0, 0x00, 0x6f, 0x00, 0x71, 0x00, 0x70, 0x00, 0x72,
+ 0x00, 0x73, 0x00, 0x75, 0x00, 0x74, 0x00, 0x76, 0x00, 0x77, 0x00, 0xea,
+ 0x00, 0x78, 0x00, 0x7a, 0x00, 0x79, 0x00, 0x7b, 0x00, 0x7d, 0x00, 0x7c,
+ 0x00, 0xb8, 0x00, 0xa1, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x80, 0x00, 0x81,
+ 0x00, 0xec, 0x00, 0xee, 0x00, 0xba, 0x01, 0x03, 0x01, 0x04, 0x01, 0x05,
+ 0x01, 0x06, 0x01, 0x07, 0x01, 0x08, 0x00, 0xfd, 0x00, 0xfe, 0x01, 0x09,
+ 0x01, 0x0a, 0x01, 0x0b, 0x01, 0x0c, 0x00, 0xff, 0x01, 0x00, 0x01, 0x0d,
+ 0x01, 0x0e, 0x01, 0x0f, 0x01, 0x01, 0x01, 0x10, 0x01, 0x11, 0x01, 0x12,
+ 0x01, 0x13, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x01, 0x18,
+ 0x01, 0x19, 0x01, 0x1a, 0x01, 0x1b, 0x00, 0xf8, 0x00, 0xf9, 0x01, 0x1c,
+ 0x01, 0x1d, 0x01, 0x1e, 0x01, 0x1f, 0x01, 0x20, 0x01, 0x21, 0x01, 0x22,
+ 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x01, 0x27, 0x01, 0x28,
+ 0x01, 0x29, 0x01, 0x2a, 0x01, 0x2b, 0x00, 0xfa, 0x00, 0xd7, 0x01, 0x2c,
+ 0x01, 0x2d, 0x01, 0x2e, 0x01, 0x2f, 0x01, 0x30, 0x01, 0x31, 0x01, 0x32,
+ 0x01, 0x33, 0x01, 0x34, 0x01, 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x38,
+ 0x01, 0x39, 0x01, 0x3a, 0x00, 0xe2, 0x00, 0xe3, 0x01, 0x3b, 0x01, 0x3c,
+ 0x01, 0x3d, 0x01, 0x3e, 0x01, 0x3f, 0x01, 0x40, 0x01, 0x41, 0x01, 0x42,
+ 0x01, 0x43, 0x01, 0x44, 0x01, 0x45, 0x01, 0x46, 0x01, 0x47, 0x01, 0x48,
+ 0x01, 0x49, 0x00, 0xb0, 0x00, 0xb1, 0x01, 0x4a, 0x01, 0x4b, 0x01, 0x4c,
+ 0x01, 0x4d, 0x01, 0x4e, 0x01, 0x4f, 0x01, 0x50, 0x01, 0x51, 0x01, 0x52,
+ 0x01, 0x53, 0x00, 0xfb, 0x00, 0xfc, 0x00, 0xe4, 0x00, 0xe5, 0x01, 0x54,
+ 0x01, 0x55, 0x01, 0x56, 0x01, 0x57, 0x01, 0x58, 0x01, 0x59, 0x01, 0x5a,
+ 0x01, 0x5b, 0x01, 0x5c, 0x01, 0x5d, 0x01, 0x5e, 0x01, 0x5f, 0x01, 0x60,
+ 0x01, 0x61, 0x01, 0x62, 0x01, 0x63, 0x01, 0x64, 0x01, 0x65, 0x01, 0x66,
+ 0x01, 0x67, 0x01, 0x68, 0x01, 0x69, 0x00, 0xbb, 0x01, 0x6a, 0x01, 0x6b,
+ 0x01, 0x6c, 0x01, 0x6d, 0x00, 0xe6, 0x00, 0xe7, 0x01, 0x6e, 0x01, 0x6f,
+ 0x01, 0x70, 0x01, 0x71, 0x01, 0x72, 0x01, 0x73, 0x01, 0x74, 0x01, 0x75,
+ 0x01, 0x76, 0x01, 0x77, 0x01, 0x78, 0x01, 0x79, 0x01, 0x7a, 0x01, 0x7b,
+ 0x01, 0x7c, 0x01, 0x7d, 0x01, 0x7e, 0x01, 0x7f, 0x01, 0x80, 0x00, 0xa6,
+ 0x01, 0x81, 0x01, 0x82, 0x01, 0x83, 0x01, 0x84, 0x01, 0x85, 0x01, 0x86,
+ 0x01, 0x87, 0x01, 0x88, 0x01, 0x89, 0x01, 0x8a, 0x01, 0x8b, 0x01, 0x8c,
+ 0x01, 0x8d, 0x01, 0x8e, 0x01, 0x8f, 0x01, 0x90, 0x01, 0x91, 0x01, 0x92,
+ 0x01, 0x93, 0x01, 0x94, 0x01, 0x95, 0x01, 0x96, 0x01, 0x97, 0x01, 0x98,
+ 0x01, 0x99, 0x01, 0x9a, 0x01, 0x9b, 0x01, 0x9c, 0x01, 0x9d, 0x01, 0x9e,
+ 0x01, 0x9f, 0x01, 0xa0, 0x01, 0xa1, 0x01, 0xa2, 0x01, 0xa3, 0x01, 0xa4,
+ 0x01, 0xa5, 0x01, 0xa6, 0x01, 0xa7, 0x01, 0xa8, 0x01, 0xa9, 0x01, 0xaa,
+ 0x01, 0xab, 0x01, 0xac, 0x01, 0xad, 0x01, 0xae, 0x01, 0xaf, 0x01, 0xb0,
+ 0x01, 0xb1, 0x01, 0xb2, 0x01, 0xb3, 0x01, 0xb4, 0x01, 0xb5, 0x01, 0xb6,
+ 0x01, 0xb7, 0x01, 0xb8, 0x01, 0xb9, 0x01, 0xba, 0x01, 0xbb, 0x01, 0xbc,
+ 0x01, 0xbd, 0x01, 0xbe, 0x01, 0xbf, 0x01, 0xc0, 0x01, 0xc1, 0x01, 0xc2,
+ 0x01, 0xc3, 0x01, 0xc4, 0x01, 0xc5, 0x01, 0xc6, 0x01, 0xc7, 0x01, 0xc8,
+ 0x01, 0xc9, 0x01, 0xca, 0x01, 0xcb, 0x01, 0xcc, 0x01, 0xcd, 0x01, 0xce,
+ 0x01, 0xcf, 0x01, 0xd0, 0x01, 0xd1, 0x01, 0xd2, 0x01, 0xd3, 0x01, 0xd4,
+ 0x01, 0xd5, 0x01, 0xd6, 0x01, 0xd7, 0x01, 0xd8, 0x01, 0xd9, 0x01, 0xda,
+ 0x01, 0xdb, 0x01, 0xdc, 0x01, 0xdd, 0x01, 0xde, 0x01, 0xdf, 0x01, 0xe0,
+ 0x01, 0xe1, 0x01, 0xe2, 0x01, 0xe3, 0x01, 0xe4, 0x01, 0xe5, 0x01, 0xe6,
+ 0x01, 0xe7, 0x01, 0xe8, 0x01, 0xe9, 0x01, 0xea, 0x01, 0xeb, 0x01, 0xec,
+ 0x01, 0xed, 0x01, 0xee, 0x01, 0xef, 0x01, 0xf0, 0x01, 0xf1, 0x01, 0xf2,
+ 0x01, 0xf3, 0x01, 0xf4, 0x01, 0xf5, 0x01, 0xf6, 0x01, 0xf7, 0x01, 0xf8,
+ 0x01, 0xf9, 0x01, 0xfa, 0x01, 0xfb, 0x01, 0xfc, 0x01, 0xfd, 0x01, 0xfe,
+ 0x01, 0xff, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x04,
+ 0x02, 0x05, 0x02, 0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x09, 0x02, 0x0a,
+ 0x02, 0x0b, 0x02, 0x0c, 0x02, 0x0d, 0x02, 0x0e, 0x02, 0x0f, 0x02, 0x10,
+ 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, 0x02, 0x14, 0x02, 0x15, 0x02, 0x16,
+ 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1a, 0x02, 0x1b, 0x02, 0x1c,
+ 0x02, 0x1d, 0x02, 0x1e, 0x02, 0x1f, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22,
+ 0x02, 0x23, 0x02, 0x24, 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28,
+ 0x02, 0x29, 0x02, 0x2a, 0x02, 0x2b, 0x02, 0x2c, 0x02, 0x2d, 0x02, 0x2e,
+ 0x02, 0x2f, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, 0x02, 0x34,
+ 0x02, 0x35, 0x02, 0x36, 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3a,
+ 0x02, 0x3b, 0x02, 0x3c, 0x02, 0x3d, 0x02, 0x3e, 0x02, 0x3f, 0x02, 0x40,
+ 0x02, 0x41, 0x02, 0x42, 0x02, 0x43, 0x02, 0x44, 0x02, 0x45, 0x02, 0x46,
+ 0x02, 0x47, 0x02, 0x48, 0x02, 0x49, 0x02, 0x4a, 0x02, 0x4b, 0x02, 0x4c,
+ 0x02, 0x4d, 0x02, 0x4e, 0x02, 0x4f, 0x02, 0x50, 0x02, 0x51, 0x02, 0x52,
+ 0x02, 0x53, 0x02, 0x54, 0x02, 0x55, 0x02, 0x56, 0x02, 0x57, 0x02, 0x58,
+ 0x02, 0x59, 0x02, 0x5a, 0x02, 0x5b, 0x02, 0x5c, 0x02, 0x5d, 0x02, 0x5e,
+ 0x02, 0x5f, 0x02, 0x60, 0x02, 0x61, 0x02, 0x62, 0x02, 0x63, 0x02, 0x64,
+ 0x02, 0x65, 0x02, 0x66, 0x02, 0x67, 0x02, 0x68, 0x02, 0x69, 0x02, 0x6a,
+ 0x02, 0x6b, 0x02, 0x6c, 0x02, 0x6d, 0x02, 0x6e, 0x02, 0x6f, 0x02, 0x70,
+ 0x02, 0x71, 0x02, 0x72, 0x02, 0x73, 0x02, 0x74, 0x02, 0x75, 0x02, 0x76,
+ 0x02, 0x77, 0x02, 0x78, 0x02, 0x79, 0x02, 0x7a, 0x02, 0x7b, 0x02, 0x7c,
+ 0x02, 0x7d, 0x02, 0x7e, 0x02, 0x7f, 0x02, 0x80, 0x02, 0x81, 0x02, 0x82,
+ 0x02, 0x83, 0x02, 0x84, 0x02, 0x85, 0x02, 0x86, 0x02, 0x87, 0x02, 0x88,
+ 0x02, 0x89, 0x02, 0x8a, 0x02, 0x8b, 0x02, 0x8c, 0x02, 0x8d, 0x02, 0x8e,
+ 0x02, 0x8f, 0x02, 0x90, 0x02, 0x91, 0x02, 0x92, 0x02, 0x93, 0x02, 0x94,
+ 0x02, 0x95, 0x02, 0x96, 0x02, 0x97, 0x02, 0x98, 0x02, 0x99, 0x02, 0x9a,
+ 0x02, 0x9b, 0x02, 0x9c, 0x02, 0x9d, 0x02, 0x9e, 0x02, 0x9f, 0x02, 0xa0,
+ 0x02, 0xa1, 0x02, 0xa2, 0x02, 0xa3, 0x02, 0xa4, 0x02, 0xa5, 0x02, 0xa6,
+ 0x02, 0xa7, 0x02, 0xa8, 0x02, 0xa9, 0x02, 0xaa, 0x02, 0xab, 0x02, 0xac,
+ 0x02, 0xad, 0x02, 0xae, 0x02, 0xaf, 0x02, 0xb0, 0x02, 0xb1, 0x02, 0xb2,
+ 0x02, 0xb3, 0x00, 0xd8, 0x00, 0xe1, 0x02, 0xb4, 0x02, 0xb5, 0x02, 0xb6,
+ 0x02, 0xb7, 0x02, 0xb8, 0x02, 0xb9, 0x02, 0xba, 0x02, 0xbb, 0x02, 0xbc,
+ 0x02, 0xbd, 0x02, 0xbe, 0x02, 0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2,
+ 0x02, 0xc3, 0x00, 0xdb, 0x00, 0xdc, 0x00, 0xdd, 0x00, 0xe0, 0x00, 0xd9,
+ 0x00, 0xdf, 0x02, 0xc4, 0x02, 0xc5, 0x02, 0xc6, 0x02, 0xc7, 0x02, 0xc8,
+ 0x02, 0xc9, 0x02, 0xca, 0x02, 0xcb, 0x02, 0xcc, 0x02, 0xcd, 0x02, 0xce,
+ 0x02, 0xcf, 0x02, 0xd0, 0x02, 0xd1, 0x02, 0xd2, 0x02, 0xd3, 0x02, 0xd4,
+ 0x02, 0xd5, 0x02, 0xd6, 0x02, 0xd7, 0x02, 0xd8, 0x02, 0xd9, 0x02, 0xda,
+ 0x02, 0xdb, 0x02, 0xdc, 0x02, 0xdd, 0x02, 0xde, 0x02, 0xdf, 0x02, 0xe0,
+ 0x02, 0xe1, 0x02, 0xe2, 0x02, 0xe3, 0x02, 0xe4, 0x02, 0xe5, 0x02, 0xe6,
+ 0x02, 0xe7, 0x02, 0xe8, 0x02, 0xe9, 0x02, 0xea, 0x02, 0xeb, 0x02, 0xec,
+ 0x02, 0xed, 0x02, 0xee, 0x02, 0xef, 0x02, 0xf0, 0x02, 0xf1, 0x02, 0xf2,
+ 0x02, 0xf3, 0x02, 0xf4, 0x02, 0xf5, 0x02, 0xf6, 0x02, 0xf7, 0x02, 0xf8,
+ 0x02, 0xf9, 0x02, 0xfa, 0x02, 0xfb, 0x02, 0xfc, 0x02, 0xfd, 0x02, 0xfe,
+ 0x02, 0xff, 0x03, 0x00, 0x03, 0x01, 0x03, 0x02, 0x03, 0x03, 0x03, 0x04,
+ 0x03, 0x05, 0x03, 0x06, 0x03, 0x07, 0x03, 0x08, 0x03, 0x09, 0x03, 0x0a,
+ 0x03, 0x0b, 0x03, 0x0c, 0x03, 0x0d, 0x03, 0x0e, 0x03, 0x0f, 0x03, 0x10,
+ 0x03, 0x11, 0x03, 0x12, 0x03, 0x13, 0x03, 0x14, 0x03, 0x15, 0x03, 0x16,
+ 0x03, 0x17, 0x03, 0x18, 0x03, 0x19, 0x03, 0x1a, 0x03, 0x1b, 0x03, 0x1c,
+ 0x03, 0x1d, 0x03, 0x1e, 0x03, 0x1f, 0x03, 0x20, 0x03, 0x21, 0x03, 0x22,
+ 0x03, 0x23, 0x03, 0x24, 0x03, 0x25, 0x03, 0x26, 0x03, 0x27, 0x03, 0x28,
+ 0x03, 0x29, 0x03, 0x2a, 0x03, 0x2b, 0x03, 0x2c, 0x03, 0x2d, 0x03, 0x2e,
+ 0x03, 0x2f, 0x03, 0x30, 0x03, 0x31, 0x03, 0x32, 0x03, 0x33, 0x03, 0x34,
+ 0x03, 0x35, 0x03, 0x36, 0x03, 0x37, 0x03, 0x38, 0x03, 0x39, 0x03, 0x3a,
+ 0x03, 0x3b, 0x03, 0x3c, 0x03, 0x3d, 0x03, 0x3e, 0x03, 0x3f, 0x03, 0x40,
+ 0x03, 0x41, 0x03, 0x42, 0x03, 0x43, 0x03, 0x44, 0x03, 0x45, 0x03, 0x46,
+ 0x03, 0x47, 0x03, 0x48, 0x03, 0x49, 0x03, 0x4a, 0x03, 0x4b, 0x03, 0x4c,
+ 0x03, 0x4d, 0x03, 0x4e, 0x03, 0x4f, 0x03, 0x50, 0x03, 0x51, 0x03, 0x52,
+ 0x03, 0x53, 0x03, 0x54, 0x03, 0x55, 0x03, 0x56, 0x03, 0x57, 0x03, 0x58,
+ 0x03, 0x59, 0x03, 0x5a, 0x03, 0x5b, 0x03, 0x5c, 0x03, 0x5d, 0x03, 0x5e,
+ 0x03, 0x5f, 0x03, 0x60, 0x00, 0x9f, 0x03, 0x61, 0x03, 0x62, 0x03, 0x63,
+ 0x03, 0x64, 0x03, 0x65, 0x03, 0x66, 0x03, 0x67, 0x03, 0x68, 0x03, 0x69,
+ 0x03, 0x6a, 0x03, 0x6b, 0x03, 0x6c, 0x03, 0x6d, 0x03, 0x6e, 0x03, 0x6f,
+ 0x03, 0x70, 0x03, 0x71, 0x03, 0x72, 0x03, 0x73, 0x03, 0x74, 0x03, 0x75,
+ 0x03, 0x76, 0x00, 0x9b, 0x03, 0x77, 0x03, 0x78, 0x03, 0x79, 0x03, 0x7a,
+ 0x03, 0x7b, 0x03, 0x7c, 0x03, 0x7d, 0x03, 0x7e, 0x03, 0x7f, 0x03, 0x80,
+ 0x03, 0x81, 0x03, 0x82, 0x03, 0x83, 0x03, 0x84, 0x03, 0x85, 0x03, 0x86,
+ 0x03, 0x87, 0x03, 0x88, 0x03, 0x89, 0x03, 0x8a, 0x03, 0x8b, 0x03, 0x8c,
+ 0x03, 0x8d, 0x03, 0x8e, 0x03, 0x8f, 0x03, 0x90, 0x03, 0x91, 0x03, 0x92,
+ 0x03, 0x93, 0x03, 0x94, 0x03, 0x95, 0x03, 0x96, 0x03, 0x97, 0x03, 0x98,
+ 0x03, 0x99, 0x03, 0x9a, 0x03, 0x9b, 0x03, 0x9c, 0x03, 0x9d, 0x03, 0x9e,
+ 0x03, 0x9f, 0x03, 0xa0, 0x03, 0xa1, 0x03, 0xa2, 0x03, 0xa3, 0x03, 0xa4,
+ 0x03, 0xa5, 0x03, 0xa6, 0x03, 0xa7, 0x03, 0xa8, 0x03, 0xa9, 0x03, 0xaa,
+ 0x03, 0xab, 0x03, 0xac, 0x03, 0xad, 0x03, 0xae, 0x03, 0xaf, 0x03, 0xb0,
+ 0x03, 0xb1, 0x03, 0xb2, 0x03, 0xb3, 0x03, 0xb4, 0x03, 0xb5, 0x03, 0xb6,
+ 0x03, 0xb7, 0x03, 0xb8, 0x03, 0xb9, 0x03, 0xba, 0x03, 0xbb, 0x03, 0xbc,
+ 0x03, 0xbd, 0x03, 0xbe, 0x03, 0xbf, 0x03, 0xc0, 0x03, 0xc1, 0x03, 0xc2,
+ 0x03, 0xc3, 0x03, 0xc4, 0x03, 0xc5, 0x03, 0xc6, 0x03, 0xc7, 0x03, 0xc8,
+ 0x03, 0xc9, 0x03, 0xca, 0x03, 0xcb, 0x03, 0xcc, 0x03, 0xcd, 0x03, 0xce,
+ 0x03, 0xcf, 0x03, 0xd0, 0x03, 0xd1, 0x03, 0xd2, 0x03, 0xd3, 0x03, 0xd4,
+ 0x03, 0xd5, 0x03, 0xd6, 0x03, 0xd7, 0x03, 0xd8, 0x03, 0xd9, 0x03, 0xda,
+ 0x03, 0xdb, 0x03, 0xdc, 0x03, 0xdd, 0x03, 0xde, 0x03, 0xdf, 0x03, 0xe0,
+ 0x03, 0xe1, 0x03, 0xe2, 0x03, 0xe3, 0x03, 0xe4, 0x03, 0xe5, 0x03, 0xe6,
+ 0x03, 0xe7, 0x03, 0xe8, 0x03, 0xe9, 0x03, 0xea, 0x03, 0xeb, 0x03, 0xec,
+ 0x03, 0xed, 0x03, 0xee, 0x03, 0xef, 0x03, 0xf0, 0x03, 0xf1, 0x03, 0xf2,
+ 0x03, 0xf3, 0x03, 0xf4, 0x03, 0xf5, 0x03, 0xf6, 0x03, 0xf7, 0x03, 0xf8,
+ 0x03, 0xf9, 0x03, 0xfa, 0x03, 0xfb, 0x03, 0xfc, 0x03, 0xfd, 0x03, 0xfe,
+ 0x03, 0xff, 0x04, 0x00, 0x04, 0x01, 0x04, 0x02, 0x04, 0x03, 0x04, 0x04,
+ 0x04, 0x05, 0x04, 0x06, 0x04, 0x07, 0x04, 0x08, 0x04, 0x09, 0x04, 0x0a,
+ 0x04, 0x0b, 0x04, 0x0c, 0x04, 0x0d, 0x04, 0x0e, 0x04, 0x0f, 0x04, 0x10,
+ 0x04, 0x11, 0x04, 0x12, 0x04, 0x13, 0x04, 0x14, 0x04, 0x15, 0x04, 0x16,
+ 0x04, 0x17, 0x04, 0x18, 0x04, 0x19, 0x04, 0x1a, 0x04, 0x1b, 0x04, 0x1c,
+ 0x04, 0x1d, 0x04, 0x1e, 0x04, 0x1f, 0x04, 0x20, 0x04, 0x21, 0x04, 0x22,
+ 0x04, 0x23, 0x04, 0x24, 0x04, 0x25, 0x04, 0x26, 0x04, 0x27, 0x04, 0x28,
+ 0x04, 0x29, 0x04, 0x2a, 0x04, 0x2b, 0x04, 0x2c, 0x04, 0x2d, 0x04, 0x2e,
+ 0x04, 0x2f, 0x04, 0x30, 0x04, 0x31, 0x04, 0x32, 0x04, 0x33, 0x04, 0x34,
+ 0x04, 0x35, 0x04, 0x36, 0x04, 0x37, 0x04, 0x38, 0x04, 0x39, 0x04, 0x3a,
+ 0x04, 0x3b, 0x04, 0x3c, 0x04, 0x3d, 0x04, 0x3e, 0x04, 0x3f, 0x04, 0x40,
+ 0x04, 0x41, 0x04, 0x42, 0x04, 0x43, 0x04, 0x44, 0x04, 0x45, 0x04, 0x46,
+ 0x04, 0x47, 0x04, 0x48, 0x04, 0x49, 0x04, 0x4a, 0x04, 0x4b, 0x04, 0x4c,
+ 0x04, 0x4d, 0x04, 0x4e, 0x04, 0x4f, 0x04, 0x50, 0x04, 0x51, 0x04, 0x52,
+ 0x04, 0x53, 0x04, 0x54, 0x04, 0x55, 0x04, 0x56, 0x04, 0x57, 0x04, 0x58,
+ 0x04, 0x59, 0x04, 0x5a, 0x04, 0x5b, 0x04, 0x5c, 0x04, 0x5d, 0x04, 0x5e,
+ 0x04, 0x5f, 0x04, 0x60, 0x04, 0x61, 0x04, 0x62, 0x04, 0x63, 0x04, 0x64,
+ 0x04, 0x65, 0x04, 0x66, 0x04, 0x67, 0x04, 0x68, 0x04, 0x69, 0x04, 0x6a,
+ 0x04, 0x6b, 0x04, 0x6c, 0x04, 0x6d, 0x04, 0x6e, 0x04, 0x6f, 0x04, 0x70,
+ 0x04, 0x71, 0x04, 0x72, 0x04, 0x73, 0x04, 0x74, 0x04, 0x75, 0x04, 0x76,
+ 0x04, 0x77, 0x04, 0x78, 0x04, 0x79, 0x04, 0x7a, 0x04, 0x7b, 0x04, 0x7c,
+ 0x04, 0x7d, 0x04, 0x7e, 0x04, 0x7f, 0x04, 0x80, 0x04, 0x81, 0x04, 0x82,
+ 0x04, 0x83, 0x04, 0x84, 0x04, 0x85, 0x04, 0x86, 0x04, 0x87, 0x04, 0x88,
+ 0x04, 0x89, 0x04, 0x8a, 0x04, 0x8b, 0x04, 0x8c, 0x04, 0x8d, 0x04, 0x8e,
+ 0x04, 0x8f, 0x04, 0x90, 0x04, 0x91, 0x04, 0x92, 0x04, 0x93, 0x04, 0x94,
+ 0x04, 0x95, 0x04, 0x96, 0x04, 0x97, 0x04, 0x98, 0x04, 0x99, 0x04, 0x9a,
+ 0x04, 0x9b, 0x04, 0x9c, 0x04, 0x9d, 0x04, 0x9e, 0x04, 0x9f, 0x04, 0xa0,
+ 0x04, 0xa1, 0x04, 0xa2, 0x04, 0xa3, 0x04, 0xa4, 0x04, 0xa5, 0x04, 0xa6,
+ 0x04, 0xa7, 0x04, 0xa8, 0x04, 0xa9, 0x04, 0xaa, 0x04, 0xab, 0x04, 0xac,
+ 0x04, 0xad, 0x04, 0xae, 0x04, 0xaf, 0x04, 0xb0, 0x04, 0xb1, 0x04, 0xb2,
+ 0x04, 0xb3, 0x04, 0xb4, 0x04, 0xb5, 0x04, 0xb6, 0x04, 0xb7, 0x04, 0xb8,
+ 0x04, 0xb9, 0x04, 0xba, 0x04, 0xbb, 0x04, 0xbc, 0x04, 0xbd, 0x04, 0xbe,
+ 0x04, 0xbf, 0x04, 0xc0, 0x04, 0xc1, 0x04, 0xc2, 0x04, 0xc3, 0x04, 0xc4,
+ 0x04, 0xc5, 0x04, 0xc6, 0x04, 0xc7, 0x04, 0xc8, 0x04, 0xc9, 0x04, 0xca,
+ 0x04, 0xcb, 0x04, 0xcc, 0x04, 0xcd, 0x04, 0xce, 0x04, 0xcf, 0x04, 0xd0,
+ 0x04, 0xd1, 0x04, 0xd2, 0x04, 0xd3, 0x04, 0xd4, 0x04, 0xd5, 0x04, 0xd6,
+ 0x04, 0xd7, 0x04, 0xd8, 0x04, 0xd9, 0x04, 0xda, 0x04, 0xdb, 0x04, 0xdc,
+ 0x04, 0xdd, 0x04, 0xde, 0x04, 0xdf, 0x04, 0xe0, 0x04, 0xe1, 0x04, 0xe2,
+ 0x04, 0xe3, 0x04, 0xe4, 0x04, 0xe5, 0x04, 0xe6, 0x04, 0xe7, 0x04, 0xe8,
+ 0x04, 0xe9, 0x04, 0xea, 0x04, 0xeb, 0x04, 0xec, 0x04, 0xed, 0x04, 0xee,
+ 0x04, 0xef, 0x04, 0xf0, 0x04, 0xf1, 0x04, 0xf2, 0x04, 0xf3, 0x04, 0xf4,
+ 0x04, 0xf5, 0x04, 0xf6, 0x04, 0xf7, 0x04, 0xf8, 0x04, 0xf9, 0x04, 0xfa,
+ 0x04, 0xfb, 0x04, 0xfc, 0x04, 0xfd, 0x04, 0xfe, 0x04, 0xff, 0x05, 0x00,
+ 0x05, 0x01, 0x05, 0x02, 0x05, 0x03, 0x05, 0x04, 0x05, 0x05, 0x05, 0x06,
+ 0x05, 0x07, 0x05, 0x08, 0x05, 0x09, 0x05, 0x0a, 0x05, 0x0b, 0x05, 0x0c,
+ 0x05, 0x0d, 0x05, 0x0e, 0x05, 0x0f, 0x05, 0x10, 0x05, 0x11, 0x05, 0x12,
+ 0x05, 0x13, 0x05, 0x14, 0x05, 0x15, 0x05, 0x16, 0x05, 0x17, 0x05, 0x18,
+ 0x05, 0x19, 0x05, 0x1a, 0x05, 0x1b, 0x05, 0x1c, 0x05, 0x1d, 0x05, 0x1e,
+ 0x05, 0x1f, 0x05, 0x20, 0x05, 0x21, 0x05, 0x22, 0x05, 0x23, 0x05, 0x24,
+ 0x05, 0x25, 0x05, 0x26, 0x05, 0x27, 0x05, 0x28, 0x05, 0x29, 0x05, 0x2a,
+ 0x05, 0x2b, 0x05, 0x2c, 0x05, 0x2d, 0x05, 0x2e, 0x05, 0x2f, 0x05, 0x30,
+ 0x05, 0x31, 0x05, 0x32, 0x05, 0x33, 0x05, 0x34, 0x05, 0x35, 0x05, 0x36,
+ 0x05, 0x37, 0x05, 0x38, 0x05, 0x39, 0x05, 0x3a, 0x05, 0x3b, 0x05, 0x3c,
+ 0x05, 0x3d, 0x05, 0x3e, 0x05, 0x3f, 0x05, 0x40, 0x05, 0x41, 0x05, 0x42,
+ 0x05, 0x43, 0x05, 0x44, 0x05, 0x45, 0x05, 0x46, 0x05, 0x47, 0x05, 0x48,
+ 0x05, 0x49, 0x05, 0x4a, 0x05, 0x4b, 0x05, 0x4c, 0x05, 0x4d, 0x05, 0x4e,
+ 0x05, 0x4f, 0x05, 0x50, 0x05, 0x51, 0x05, 0x52, 0x05, 0x53, 0x05, 0x54,
+ 0x05, 0x55, 0x05, 0x56, 0x05, 0x57, 0x05, 0x58, 0x05, 0x59, 0x05, 0x5a,
+ 0x05, 0x5b, 0x05, 0x5c, 0x05, 0x5d, 0x05, 0x5e, 0x05, 0x5f, 0x05, 0x60,
+ 0x05, 0x61, 0x05, 0x62, 0x05, 0x63, 0x05, 0x64, 0x05, 0x65, 0x05, 0x66,
+ 0x05, 0x67, 0x05, 0x68, 0x05, 0x69, 0x05, 0x6a, 0x05, 0x6b, 0x05, 0x6c,
+ 0x05, 0x6d, 0x05, 0x6e, 0x05, 0x6f, 0x05, 0x70, 0x05, 0x71, 0x05, 0x72,
+ 0x05, 0x73, 0x05, 0x74, 0x05, 0x75, 0x05, 0x76, 0x05, 0x77, 0x05, 0x78,
+ 0x05, 0x79, 0x05, 0x7a, 0x05, 0x7b, 0x05, 0x7c, 0x05, 0x7d, 0x05, 0x7e,
+ 0x05, 0x7f, 0x05, 0x80, 0x05, 0x81, 0x05, 0x82, 0x05, 0x83, 0x05, 0x84,
+ 0x05, 0x85, 0x05, 0x86, 0x05, 0x87, 0x05, 0x88, 0x05, 0x89, 0x05, 0x8a,
+ 0x05, 0x8b, 0x05, 0x8c, 0x05, 0x8d, 0x05, 0x8e, 0x05, 0x8f, 0x05, 0x90,
+ 0x05, 0x91, 0x05, 0x92, 0x05, 0x93, 0x05, 0x94, 0x05, 0x95, 0x05, 0x96,
+ 0x05, 0x97, 0x05, 0x98, 0x05, 0x99, 0x05, 0x9a, 0x05, 0x9b, 0x05, 0x9c,
+ 0x05, 0x9d, 0x05, 0x9e, 0x05, 0x9f, 0x05, 0xa0, 0x05, 0xa1, 0x05, 0xa2,
+ 0x05, 0xa3, 0x05, 0xa4, 0x05, 0xa5, 0x05, 0xa6, 0x05, 0xa7, 0x05, 0xa8,
+ 0x05, 0xa9, 0x05, 0xaa, 0x05, 0xab, 0x05, 0xac, 0x05, 0xad, 0x05, 0xae,
+ 0x05, 0xaf, 0x05, 0xb0, 0x05, 0xb1, 0x05, 0xb2, 0x05, 0xb3, 0x05, 0xb4,
+ 0x05, 0xb5, 0x05, 0xb6, 0x05, 0xb7, 0x05, 0xb8, 0x05, 0xb9, 0x05, 0xba,
+ 0x05, 0xbb, 0x05, 0xbc, 0x05, 0xbd, 0x05, 0xbe, 0x05, 0xbf, 0x05, 0xc0,
+ 0x05, 0xc1, 0x05, 0xc2, 0x05, 0xc3, 0x05, 0xc4, 0x05, 0xc5, 0x05, 0xc6,
+ 0x05, 0xc7, 0x05, 0xc8, 0x05, 0xc9, 0x05, 0xca, 0x05, 0xcb, 0x05, 0xcc,
+ 0x05, 0xcd, 0x05, 0xce, 0x05, 0xcf, 0x05, 0xd0, 0x05, 0xd1, 0x05, 0xd2,
+ 0x05, 0xd3, 0x05, 0xd4, 0x05, 0xd5, 0x05, 0xd6, 0x05, 0xd7, 0x05, 0xd8,
+ 0x05, 0xd9, 0x05, 0xda, 0x05, 0xdb, 0x05, 0xdc, 0x05, 0xdd, 0x05, 0xde,
+ 0x05, 0xdf, 0x05, 0xe0, 0x05, 0xe1, 0x05, 0xe2, 0x05, 0xe3, 0x05, 0xe4,
+ 0x05, 0xe5, 0x05, 0xe6, 0x05, 0xe7, 0x05, 0xe8, 0x05, 0xe9, 0x05, 0xea,
+ 0x05, 0xeb, 0x05, 0xec, 0x05, 0xed, 0x05, 0xee, 0x05, 0xef, 0x05, 0xf0,
+ 0x05, 0xf1, 0x05, 0xf2, 0x05, 0xf3, 0x05, 0xf4, 0x05, 0xf5, 0x05, 0xf6,
+ 0x05, 0xf7, 0x05, 0xf8, 0x05, 0xf9, 0x05, 0xfa, 0x05, 0xfb, 0x05, 0xfc,
+ 0x05, 0xfd, 0x05, 0xfe, 0x05, 0xff, 0x06, 0x00, 0x06, 0x01, 0x06, 0x02,
+ 0x06, 0x03, 0x06, 0x04, 0x06, 0x05, 0x06, 0x06, 0x06, 0x07, 0x06, 0x08,
+ 0x06, 0x09, 0x06, 0x0a, 0x06, 0x0b, 0x06, 0x0c, 0x06, 0x0d, 0x06, 0x0e,
+ 0x06, 0x0f, 0x06, 0x10, 0x06, 0x11, 0x06, 0x12, 0x06, 0x13, 0x06, 0x14,
+ 0x06, 0x15, 0x06, 0x16, 0x06, 0x17, 0x06, 0x18, 0x06, 0x19, 0x06, 0x1a,
+ 0x06, 0x1b, 0x06, 0x1c, 0x06, 0x1d, 0x06, 0x1e, 0x06, 0x1f, 0x06, 0x20,
+ 0x06, 0x21, 0x06, 0x22, 0x06, 0x23, 0x06, 0x24, 0x06, 0x25, 0x06, 0x26,
+ 0x06, 0x27, 0x06, 0x28, 0x06, 0x29, 0x06, 0x2a, 0x06, 0x2b, 0x06, 0x2c,
+ 0x06, 0x2d, 0x06, 0x2e, 0x06, 0x2f, 0x06, 0x30, 0x06, 0x31, 0x06, 0x32,
+ 0x06, 0x33, 0x06, 0x34, 0x06, 0x35, 0x06, 0x36, 0x06, 0x37, 0x06, 0x38,
+ 0x06, 0x39, 0x06, 0x3a, 0x06, 0x3b, 0x06, 0x3c, 0x06, 0x3d, 0x06, 0x3e,
+ 0x06, 0x3f, 0x06, 0x40, 0x06, 0x41, 0x06, 0x42, 0x06, 0x43, 0x06, 0x44,
+ 0x06, 0x45, 0x06, 0x46, 0x06, 0x47, 0x06, 0x48, 0x06, 0x49, 0x06, 0x4a,
+ 0x06, 0x4b, 0x06, 0x4c, 0x06, 0x4d, 0x06, 0x4e, 0x06, 0x4f, 0x06, 0x50,
+ 0x06, 0x51, 0x06, 0x52, 0x06, 0x53, 0x06, 0x54, 0x06, 0x55, 0x06, 0x56,
+ 0x06, 0x57, 0x06, 0x58, 0x06, 0x59, 0x06, 0x5a, 0x06, 0x5b, 0x06, 0x5c,
+ 0x06, 0x5d, 0x06, 0x5e, 0x06, 0x5f, 0x06, 0x60, 0x06, 0x61, 0x06, 0x62,
+ 0x06, 0x63, 0x06, 0x64, 0x06, 0x65, 0x06, 0x66, 0x06, 0x67, 0x06, 0x68,
+ 0x06, 0x69, 0x06, 0x6a, 0x06, 0x6b, 0x06, 0x6c, 0x06, 0x6d, 0x06, 0x6e,
+ 0x06, 0x6f, 0x06, 0x70, 0x06, 0x71, 0x06, 0x72, 0x06, 0x73, 0x06, 0x74,
+ 0x06, 0x75, 0x06, 0x76, 0x06, 0x77, 0x06, 0x78, 0x06, 0x79, 0x06, 0x7a,
+ 0x06, 0x7b, 0x06, 0x7c, 0x06, 0x7d, 0x06, 0x7e, 0x06, 0x7f, 0x06, 0x80,
+ 0x06, 0x81, 0x06, 0x82, 0x06, 0x83, 0x06, 0x84, 0x06, 0x85, 0x06, 0x86,
+ 0x06, 0x87, 0x06, 0x88, 0x06, 0x89, 0x06, 0x8a, 0x06, 0x8b, 0x06, 0x8c,
+ 0x06, 0x8d, 0x06, 0x8e, 0x06, 0x8f, 0x06, 0x90, 0x06, 0x91, 0x06, 0x92,
+ 0x06, 0x93, 0x06, 0x94, 0x06, 0x95, 0x06, 0x96, 0x06, 0x97, 0x06, 0x98,
+ 0x06, 0x99, 0x06, 0x9a, 0x06, 0x9b, 0x06, 0x9c, 0x06, 0x9d, 0x06, 0x9e,
+ 0x06, 0x9f, 0x06, 0xa0, 0x06, 0xa1, 0x06, 0xa2, 0x06, 0xa3, 0x06, 0xa4,
+ 0x06, 0xa5, 0x06, 0xa6, 0x06, 0xa7, 0x06, 0xa8, 0x06, 0xa9, 0x06, 0xaa,
+ 0x06, 0xab, 0x06, 0xac, 0x06, 0xad, 0x06, 0xae, 0x06, 0xaf, 0x06, 0xb0,
+ 0x06, 0xb1, 0x06, 0xb2, 0x06, 0xb3, 0x06, 0xb4, 0x06, 0xb5, 0x06, 0xb6,
+ 0x06, 0xb7, 0x06, 0xb8, 0x06, 0xb9, 0x06, 0xba, 0x06, 0xbb, 0x06, 0xbc,
+ 0x06, 0xbd, 0x06, 0xbe, 0x06, 0xbf, 0x06, 0xc0, 0x06, 0xc1, 0x06, 0xc2,
+ 0x06, 0xc3, 0x06, 0xc4, 0x06, 0xc5, 0x06, 0xc6, 0x06, 0xc7, 0x06, 0xc8,
+ 0x06, 0xc9, 0x06, 0xca, 0x06, 0xcb, 0x06, 0xcc, 0x06, 0xcd, 0x06, 0xce,
+ 0x06, 0xcf, 0x06, 0xd0, 0x06, 0xd1, 0x06, 0xd2, 0x06, 0xd3, 0x06, 0xd4,
+ 0x06, 0xd5, 0x06, 0xd6, 0x06, 0xd7, 0x06, 0xd8, 0x06, 0xd9, 0x06, 0xda,
+ 0x06, 0xdb, 0x06, 0xdc, 0x06, 0xdd, 0x06, 0xde, 0x06, 0xdf, 0x06, 0xe0,
+ 0x06, 0xe1, 0x06, 0xe2, 0x06, 0xe3, 0x06, 0xe4, 0x06, 0xe5, 0x06, 0xe6,
+ 0x06, 0xe7, 0x06, 0xe8, 0x06, 0xe9, 0x06, 0xea, 0x06, 0xeb, 0x06, 0xec,
+ 0x06, 0xed, 0x06, 0xee, 0x06, 0xef, 0x06, 0xf0, 0x06, 0xf1, 0x06, 0xf2,
+ 0x06, 0xf3, 0x06, 0xf4, 0x06, 0xf5, 0x06, 0xf6, 0x06, 0xf7, 0x06, 0xf8,
+ 0x06, 0xf9, 0x06, 0xfa, 0x06, 0xfb, 0x06, 0xfc, 0x06, 0xfd, 0x06, 0xfe,
+ 0x06, 0xff, 0x07, 0x00, 0x07, 0x01, 0x07, 0x02, 0x07, 0x03, 0x07, 0x04,
+ 0x07, 0x05, 0x07, 0x06, 0x07, 0x07, 0x07, 0x08, 0x07, 0x09, 0x07, 0x0a,
+ 0x07, 0x0b, 0x07, 0x0c, 0x07, 0x0d, 0x07, 0x0e, 0x07, 0x0f, 0x07, 0x10,
+ 0x07, 0x11, 0x07, 0x12, 0x07, 0x13, 0x07, 0x14, 0x07, 0x15, 0x07, 0x16,
+ 0x07, 0x17, 0x07, 0x18, 0x07, 0x19, 0x07, 0x1a, 0x07, 0x1b, 0x07, 0x1c,
+ 0x07, 0x1d, 0x07, 0x1e, 0x07, 0x1f, 0x07, 0x20, 0x07, 0x21, 0x07, 0x22,
+ 0x07, 0x23, 0x07, 0x24, 0x07, 0x25, 0x07, 0x26, 0x07, 0x27, 0x07, 0x28,
+ 0x07, 0x29, 0x07, 0x2a, 0x07, 0x2b, 0x07, 0x2c, 0x07, 0x2d, 0x07, 0x2e,
+ 0x07, 0x2f, 0x07, 0x30, 0x07, 0x31, 0x07, 0x32, 0x07, 0x33, 0x07, 0x34,
+ 0x07, 0x35, 0x07, 0x36, 0x07, 0x37, 0x07, 0x38, 0x07, 0x39, 0x07, 0x3a,
+ 0x07, 0x3b, 0x07, 0x3c, 0x07, 0x3d, 0x07, 0x3e, 0x07, 0x3f, 0x07, 0x40,
+ 0x07, 0x41, 0x07, 0x42, 0x07, 0x43, 0x07, 0x44, 0x07, 0x45, 0x07, 0x46,
+ 0x07, 0x47, 0x07, 0x48, 0x07, 0x49, 0x07, 0x4a, 0x07, 0x4b, 0x07, 0x4c,
+ 0x07, 0x4d, 0x07, 0x4e, 0x07, 0x4f, 0x07, 0x50, 0x07, 0x51, 0x07, 0x52,
+ 0x07, 0x53, 0x07, 0x54, 0x07, 0x55, 0x07, 0x56, 0x07, 0x57, 0x07, 0x58,
+ 0x07, 0x59, 0x07, 0x5a, 0x07, 0x5b, 0x07, 0x5c, 0x07, 0x5d, 0x07, 0x5e,
+ 0x07, 0x5f, 0x07, 0x60, 0x07, 0x61, 0x07, 0x62, 0x07, 0x63, 0x07, 0x64,
+ 0x07, 0x65, 0x07, 0x66, 0x07, 0x67, 0x07, 0x68, 0x07, 0x69, 0x00, 0xb2,
+ 0x00, 0xb3, 0x07, 0x6a, 0x07, 0x6b, 0x07, 0x6c, 0x00, 0xb6, 0x00, 0xb7,
+ 0x00, 0xc4, 0x07, 0x6d, 0x00, 0xb4, 0x00, 0xb5, 0x00, 0xc5, 0x07, 0x6e,
+ 0x00, 0x82, 0x00, 0xc2, 0x00, 0x87, 0x07, 0x6f, 0x07, 0x70, 0x07, 0x71,
+ 0x00, 0xab, 0x07, 0x72, 0x07, 0x73, 0x07, 0x74, 0x07, 0x75, 0x07, 0x76,
+ 0x07, 0x77, 0x07, 0x78, 0x07, 0x79, 0x07, 0x7a, 0x00, 0xc6, 0x07, 0x7b,
+ 0x07, 0x7c, 0x07, 0x7d, 0x07, 0x7e, 0x07, 0x7f, 0x07, 0x80, 0x07, 0x81,
+ 0x07, 0x82, 0x00, 0xbe, 0x00, 0xbf, 0x07, 0x83, 0x07, 0x84, 0x07, 0x85,
+ 0x07, 0x86, 0x07, 0x87, 0x07, 0x88, 0x07, 0x89, 0x07, 0x8a, 0x07, 0x8b,
+ 0x00, 0xbc, 0x07, 0x8c, 0x07, 0x8d, 0x07, 0x8e, 0x07, 0x8f, 0x07, 0x90,
+ 0x07, 0x91, 0x07, 0x92, 0x07, 0x93, 0x07, 0x94, 0x07, 0x95, 0x07, 0x96,
+ 0x07, 0x97, 0x07, 0x98, 0x07, 0x99, 0x07, 0x9a, 0x07, 0x9b, 0x07, 0x9c,
+ 0x07, 0x9d, 0x07, 0x9e, 0x07, 0x9f, 0x07, 0xa0, 0x07, 0xa1, 0x07, 0xa2,
+ 0x07, 0xa3, 0x07, 0xa4, 0x07, 0xa5, 0x07, 0xa6, 0x07, 0xa7, 0x07, 0xa8,
+ 0x07, 0xa9, 0x07, 0xaa, 0x07, 0xab, 0x07, 0xac, 0x07, 0xad, 0x07, 0xae,
+ 0x07, 0xaf, 0x07, 0xb0, 0x07, 0xb1, 0x07, 0xb2, 0x07, 0xb3, 0x07, 0xb4,
+ 0x07, 0xb5, 0x07, 0xb6, 0x07, 0xb7, 0x07, 0xb8, 0x07, 0xb9, 0x07, 0xba,
+ 0x07, 0xbb, 0x07, 0xbc, 0x07, 0xbd, 0x07, 0xbe, 0x07, 0xbf, 0x07, 0xc0,
+ 0x07, 0xc1, 0x07, 0xc2, 0x07, 0xc3, 0x07, 0xc4, 0x07, 0xc5, 0x07, 0xc6,
+ 0x07, 0xc7, 0x07, 0xc8, 0x07, 0xc9, 0x07, 0xca, 0x07, 0xcb, 0x07, 0xcc,
+ 0x07, 0xcd, 0x07, 0xce, 0x07, 0xcf, 0x07, 0xd0, 0x07, 0xd1, 0x07, 0xd2,
+ 0x07, 0xd3, 0x07, 0xd4, 0x07, 0xd5, 0x07, 0xd6, 0x07, 0xd7, 0x07, 0xd8,
+ 0x07, 0xd9, 0x07, 0xda, 0x07, 0xdb, 0x07, 0xdc, 0x07, 0xdd, 0x07, 0xde,
+ 0x00, 0xf7, 0x07, 0xdf, 0x07, 0xe0, 0x07, 0xe1, 0x07, 0xe2, 0x07, 0xe3,
+ 0x07, 0xe4, 0x07, 0xe5, 0x07, 0xe6, 0x07, 0xe7, 0x07, 0xe8, 0x07, 0xe9,
+ 0x07, 0xea, 0x07, 0xeb, 0x07, 0xec, 0x07, 0xed, 0x07, 0xee, 0x07, 0xef,
+ 0x07, 0xf0, 0x07, 0xf1, 0x07, 0xf2, 0x07, 0xf3, 0x07, 0xf4, 0x07, 0xf5,
+ 0x07, 0xf6, 0x07, 0xf7, 0x07, 0xf8, 0x07, 0xf9, 0x07, 0xfa, 0x07, 0xfb,
+ 0x07, 0xfc, 0x07, 0xfd, 0x07, 0xfe, 0x07, 0xff, 0x08, 0x00, 0x08, 0x01,
+ 0x08, 0x02, 0x08, 0x03, 0x08, 0x04, 0x08, 0x05, 0x08, 0x06, 0x08, 0x07,
+ 0x08, 0x08, 0x08, 0x09, 0x08, 0x0a, 0x08, 0x0b, 0x08, 0x0c, 0x08, 0x0d,
+ 0x08, 0x0e, 0x08, 0x0f, 0x08, 0x10, 0x08, 0x11, 0x08, 0x12, 0x08, 0x13,
+ 0x08, 0x14, 0x08, 0x15, 0x08, 0x16, 0x08, 0x17, 0x08, 0x18, 0x08, 0x19,
+ 0x08, 0x1a, 0x08, 0x1b, 0x00, 0x8c, 0x08, 0x1c, 0x08, 0x1d, 0x08, 0x1e,
+ 0x08, 0x1f, 0x08, 0x20, 0x08, 0x21, 0x08, 0x22, 0x08, 0x23, 0x08, 0x24,
+ 0x08, 0x25, 0x08, 0x26, 0x08, 0x27, 0x08, 0x28, 0x08, 0x29, 0x08, 0x2a,
+ 0x08, 0x2b, 0x08, 0x2c, 0x08, 0x2d, 0x08, 0x2e, 0x08, 0x2f, 0x08, 0x30,
+ 0x08, 0x31, 0x08, 0x32, 0x08, 0x33, 0x08, 0x34, 0x08, 0x35, 0x08, 0x36,
+ 0x08, 0x37, 0x08, 0x38, 0x08, 0x39, 0x08, 0x3a, 0x08, 0x3b, 0x08, 0x3c,
+ 0x08, 0x3d, 0x08, 0x3e, 0x08, 0x3f, 0x08, 0x40, 0x08, 0x41, 0x08, 0x42,
+ 0x08, 0x43, 0x08, 0x44, 0x08, 0x45, 0x08, 0x46, 0x08, 0x47, 0x08, 0x48,
+ 0x08, 0x49, 0x08, 0x4a, 0x08, 0x4b, 0x08, 0x4c, 0x08, 0x4d, 0x08, 0x4e,
+ 0x08, 0x4f, 0x08, 0x50, 0x08, 0x51, 0x08, 0x52, 0x08, 0x53, 0x08, 0x54,
+ 0x08, 0x55, 0x08, 0x56, 0x08, 0x57, 0x08, 0x58, 0x08, 0x59, 0x08, 0x5a,
+ 0x08, 0x5b, 0x08, 0x5c, 0x08, 0x5d, 0x08, 0x5e, 0x08, 0x5f, 0x08, 0x60,
+ 0x08, 0x61, 0x08, 0x62, 0x08, 0x63, 0x08, 0x64, 0x08, 0x65, 0x08, 0x66,
+ 0x08, 0x67, 0x08, 0x68, 0x08, 0x69, 0x08, 0x6a, 0x08, 0x6b, 0x08, 0x6c,
+ 0x08, 0x6d, 0x08, 0x6e, 0x08, 0x6f, 0x08, 0x70, 0x08, 0x71, 0x08, 0x72,
+ 0x08, 0x73, 0x08, 0x74, 0x08, 0x75, 0x08, 0x76, 0x08, 0x77, 0x08, 0x78,
+ 0x08, 0x79, 0x08, 0x7a, 0x08, 0x7b, 0x08, 0x7c, 0x08, 0x7d, 0x08, 0x7e,
+ 0x08, 0x7f, 0x08, 0x80, 0x08, 0x81, 0x08, 0x82, 0x08, 0x83, 0x08, 0x84,
+ 0x08, 0x85, 0x08, 0x86, 0x08, 0x87, 0x08, 0x88, 0x08, 0x89, 0x08, 0x8a,
+ 0x08, 0x8b, 0x08, 0x8c, 0x08, 0x8d, 0x08, 0x8e, 0x08, 0x8f, 0x08, 0x90,
+ 0x08, 0x91, 0x08, 0x92, 0x08, 0x93, 0x08, 0x94, 0x08, 0x95, 0x08, 0x96,
+ 0x08, 0x97, 0x08, 0x98, 0x08, 0x99, 0x08, 0x9a, 0x08, 0x9b, 0x08, 0x9c,
+ 0x08, 0x9d, 0x08, 0x9e, 0x08, 0x9f, 0x08, 0xa0, 0x08, 0xa1, 0x08, 0xa2,
+ 0x08, 0xa3, 0x08, 0xa4, 0x08, 0xa5, 0x08, 0xa6, 0x08, 0xa7, 0x08, 0xa8,
+ 0x08, 0xa9, 0x08, 0xaa, 0x08, 0xab, 0x08, 0xac, 0x08, 0xad, 0x08, 0xae,
+ 0x08, 0xaf, 0x08, 0xb0, 0x08, 0xb1, 0x08, 0xb2, 0x08, 0xb3, 0x08, 0xb4,
+ 0x08, 0xb5, 0x08, 0xb6, 0x08, 0xb7, 0x08, 0xb8, 0x08, 0xb9, 0x08, 0xba,
+ 0x08, 0xbb, 0x08, 0xbc, 0x08, 0xbd, 0x08, 0xbe, 0x08, 0xbf, 0x08, 0xc0,
+ 0x08, 0xc1, 0x08, 0xc2, 0x08, 0xc3, 0x08, 0xc4, 0x08, 0xc5, 0x08, 0xc6,
+ 0x08, 0xc7, 0x08, 0xc8, 0x08, 0xc9, 0x08, 0xca, 0x08, 0xcb, 0x08, 0xcc,
+ 0x08, 0xcd, 0x08, 0xce, 0x08, 0xcf, 0x08, 0xd0, 0x08, 0xd1, 0x08, 0xd2,
+ 0x08, 0xd3, 0x08, 0xd4, 0x08, 0xd5, 0x08, 0xd6, 0x08, 0xd7, 0x08, 0xd8,
+ 0x08, 0xd9, 0x08, 0xda, 0x08, 0xdb, 0x08, 0xdc, 0x08, 0xdd, 0x08, 0xde,
+ 0x08, 0xdf, 0x08, 0xe0, 0x08, 0xe1, 0x08, 0xe2, 0x08, 0xe3, 0x08, 0xe4,
+ 0x08, 0xe5, 0x08, 0xe6, 0x08, 0xe7, 0x08, 0xe8, 0x08, 0xe9, 0x08, 0xea,
+ 0x08, 0xeb, 0x08, 0xec, 0x08, 0xed, 0x00, 0x98, 0x08, 0xee, 0x08, 0xef,
+ 0x08, 0xf0, 0x00, 0xa8, 0x08, 0xf1, 0x08, 0xf2, 0x08, 0xf3, 0x08, 0xf4,
+ 0x08, 0xf5, 0x08, 0xf6, 0x08, 0xf7, 0x08, 0xf8, 0x00, 0x9a, 0x08, 0xf9,
+ 0x00, 0x99, 0x00, 0xef, 0x08, 0xfa, 0x08, 0xfb, 0x08, 0xfc, 0x08, 0xfd,
+ 0x08, 0xfe, 0x08, 0xff, 0x09, 0x00, 0x00, 0xa5, 0x09, 0x01, 0x09, 0x02,
+ 0x09, 0x03, 0x00, 0x92, 0x09, 0x04, 0x09, 0x05, 0x09, 0x06, 0x09, 0x07,
+ 0x09, 0x08, 0x09, 0x09, 0x09, 0x0a, 0x09, 0x0b, 0x09, 0x0c, 0x09, 0x0d,
+ 0x09, 0x0e, 0x09, 0x0f, 0x00, 0x9c, 0x09, 0x10, 0x09, 0x11, 0x09, 0x12,
+ 0x09, 0x13, 0x09, 0x14, 0x09, 0x15, 0x09, 0x16, 0x09, 0x17, 0x09, 0x18,
+ 0x09, 0x19, 0x09, 0x1a, 0x09, 0x1b, 0x09, 0x1c, 0x09, 0x1d, 0x09, 0x1e,
+ 0x09, 0x1f, 0x09, 0x20, 0x09, 0x21, 0x09, 0x22, 0x09, 0x23, 0x09, 0x24,
+ 0x09, 0x25, 0x09, 0x26, 0x09, 0x27, 0x09, 0x28, 0x09, 0x29, 0x09, 0x2a,
+ 0x09, 0x2b, 0x00, 0xa7, 0x09, 0x2c, 0x09, 0x2d, 0x09, 0x2e, 0x09, 0x2f,
+ 0x09, 0x30, 0x09, 0x31, 0x09, 0x32, 0x09, 0x33, 0x09, 0x34, 0x09, 0x35,
+ 0x09, 0x36, 0x09, 0x37, 0x09, 0x38, 0x09, 0x39, 0x09, 0x3a, 0x09, 0x3b,
+ 0x09, 0x3c, 0x09, 0x3d, 0x09, 0x3e, 0x09, 0x3f, 0x09, 0x40, 0x09, 0x41,
+ 0x09, 0x42, 0x00, 0x8f, 0x09, 0x43, 0x09, 0x44, 0x09, 0x45, 0x00, 0x94,
+ 0x00, 0x95, 0x09, 0x46, 0x09, 0x47, 0x09, 0x48, 0x09, 0x49, 0x09, 0x4a,
+ 0x09, 0x4b, 0x09, 0x4c, 0x09, 0x4d, 0x09, 0x4e, 0x09, 0x4f, 0x09, 0x50,
+ 0x09, 0x51, 0x09, 0x52, 0x09, 0x53, 0x09, 0x54, 0x09, 0x55, 0x09, 0x56,
+ 0x09, 0x57, 0x09, 0x58, 0x09, 0x59, 0x09, 0x5a, 0x09, 0x5b, 0x09, 0x5c,
+ 0x09, 0x5d, 0x09, 0x5e, 0x09, 0x5f, 0x09, 0x60, 0x09, 0x61, 0x09, 0x62,
+ 0x09, 0x63, 0x09, 0x64, 0x09, 0x65, 0x09, 0x66, 0x09, 0x67, 0x09, 0x68,
+ 0x09, 0x69, 0x09, 0x6a, 0x09, 0x6b, 0x09, 0x6c, 0x09, 0x6d, 0x09, 0x6e,
+ 0x09, 0x6f, 0x09, 0x70, 0x09, 0x71, 0x09, 0x72, 0x09, 0x73, 0x09, 0x74,
+ 0x09, 0x75, 0x09, 0x76, 0x09, 0x77, 0x09, 0x78, 0x09, 0x79, 0x09, 0x7a,
+ 0x09, 0x7b, 0x09, 0x7c, 0x09, 0x7d, 0x09, 0x7e, 0x09, 0x7f, 0x09, 0x80,
+ 0x09, 0x81, 0x09, 0x82, 0x09, 0x83, 0x09, 0x84, 0x09, 0x85, 0x09, 0x86,
+ 0x09, 0x87, 0x09, 0x88, 0x09, 0x89, 0x09, 0x8a, 0x09, 0x8b, 0x09, 0x8c,
+ 0x09, 0x8d, 0x09, 0x8e, 0x09, 0x8f, 0x09, 0x90, 0x09, 0x91, 0x09, 0x92,
+ 0x09, 0x93, 0x09, 0x94, 0x09, 0x95, 0x09, 0x96, 0x09, 0x97, 0x09, 0x98,
+ 0x09, 0x99, 0x09, 0x9a, 0x09, 0x9b, 0x09, 0x9c, 0x09, 0x9d, 0x09, 0x9e,
+ 0x09, 0x9f, 0x09, 0xa0, 0x09, 0xa1, 0x09, 0xa2, 0x09, 0xa3, 0x09, 0xa4,
+ 0x09, 0xa5, 0x09, 0xa6, 0x09, 0xa7, 0x09, 0xa8, 0x09, 0xa9, 0x09, 0xaa,
+ 0x09, 0xab, 0x09, 0xac, 0x09, 0xad, 0x09, 0xae, 0x09, 0xaf, 0x09, 0xb0,
+ 0x09, 0xb1, 0x09, 0xb2, 0x09, 0xb3, 0x09, 0xb4, 0x09, 0xb5, 0x09, 0xb6,
+ 0x09, 0xb7, 0x09, 0xb8, 0x09, 0xb9, 0x09, 0xba, 0x09, 0xbb, 0x09, 0xbc,
+ 0x09, 0xbd, 0x09, 0xbe, 0x09, 0xbf, 0x09, 0xc0, 0x09, 0xc1, 0x09, 0xc2,
+ 0x09, 0xc3, 0x09, 0xc4, 0x09, 0xc5, 0x09, 0xc6, 0x09, 0xc7, 0x09, 0xc8,
+ 0x09, 0xc9, 0x09, 0xca, 0x09, 0xcb, 0x09, 0xcc, 0x09, 0xcd, 0x09, 0xce,
+ 0x09, 0xcf, 0x09, 0xd0, 0x09, 0xd1, 0x09, 0xd2, 0x09, 0xd3, 0x09, 0xd4,
+ 0x09, 0xd5, 0x09, 0xd6, 0x09, 0xd7, 0x09, 0xd8, 0x09, 0xd9, 0x09, 0xda,
+ 0x09, 0xdb, 0x09, 0xdc, 0x09, 0xdd, 0x09, 0xde, 0x09, 0xdf, 0x09, 0xe0,
+ 0x09, 0xe1, 0x09, 0xe2, 0x09, 0xe3, 0x09, 0xe4, 0x09, 0xe5, 0x09, 0xe6,
+ 0x09, 0xe7, 0x09, 0xe8, 0x09, 0xe9, 0x09, 0xea, 0x09, 0xeb, 0x09, 0xec,
+ 0x09, 0xed, 0x09, 0xee, 0x09, 0xef, 0x09, 0xf0, 0x09, 0xf1, 0x09, 0xf2,
+ 0x09, 0xf3, 0x09, 0xf4, 0x09, 0xf5, 0x09, 0xf6, 0x09, 0xf7, 0x09, 0xf8,
+ 0x09, 0xf9, 0x09, 0xfa, 0x09, 0xfb, 0x09, 0xfc, 0x09, 0xfd, 0x09, 0xfe,
+ 0x09, 0xff, 0x0a, 0x00, 0x0a, 0x01, 0x0a, 0x02, 0x0a, 0x03, 0x0a, 0x04,
+ 0x0a, 0x05, 0x0a, 0x06, 0x0a, 0x07, 0x0a, 0x08, 0x0a, 0x09, 0x0a, 0x0a,
+ 0x0a, 0x0b, 0x0a, 0x0c, 0x0a, 0x0d, 0x0a, 0x0e, 0x0a, 0x0f, 0x0a, 0x10,
+ 0x0a, 0x11, 0x0a, 0x12, 0x0a, 0x13, 0x0a, 0x14, 0x0a, 0x15, 0x0a, 0x16,
+ 0x0a, 0x17, 0x0a, 0x18, 0x0a, 0x19, 0x0a, 0x1a, 0x0a, 0x1b, 0x0a, 0x1c,
+ 0x0a, 0x1d, 0x0a, 0x1e, 0x0a, 0x1f, 0x0a, 0x20, 0x0a, 0x21, 0x0a, 0x22,
+ 0x0a, 0x23, 0x0a, 0x24, 0x0a, 0x25, 0x0a, 0x26, 0x0a, 0x27, 0x0a, 0x28,
+ 0x0a, 0x29, 0x0a, 0x2a, 0x0a, 0x2b, 0x0a, 0x2c, 0x0a, 0x2d, 0x0a, 0x2e,
+ 0x0a, 0x2f, 0x0a, 0x30, 0x0a, 0x31, 0x0a, 0x32, 0x0a, 0x33, 0x0a, 0x34,
+ 0x0a, 0x35, 0x0a, 0x36, 0x0a, 0x37, 0x0a, 0x38, 0x0a, 0x39, 0x0a, 0x3a,
+ 0x0a, 0x3b, 0x0a, 0x3c, 0x0a, 0x3d, 0x0a, 0x3e, 0x0a, 0x3f, 0x0a, 0x40,
+ 0x0a, 0x41, 0x0a, 0x42, 0x0a, 0x43, 0x0a, 0x44, 0x0a, 0x45, 0x0a, 0x46,
+ 0x0a, 0x47, 0x0a, 0x48, 0x0a, 0x49, 0x0a, 0x4a, 0x0a, 0x4b, 0x0a, 0x4c,
+ 0x0a, 0x4d, 0x0a, 0x4e, 0x0a, 0x4f, 0x0a, 0x50, 0x0a, 0x51, 0x0a, 0x52,
+ 0x0a, 0x53, 0x0a, 0x54, 0x0a, 0x55, 0x0a, 0x56, 0x0a, 0x57, 0x0a, 0x58,
+ 0x0a, 0x59, 0x0a, 0x5a, 0x0a, 0x5b, 0x0a, 0x5c, 0x0a, 0x5d, 0x0a, 0x5e,
+ 0x0a, 0x5f, 0x0a, 0x60, 0x0a, 0x61, 0x0a, 0x62, 0x0a, 0x63, 0x0a, 0x64,
+ 0x0a, 0x65, 0x0a, 0x66, 0x0a, 0x67, 0x0a, 0x68, 0x0a, 0x69, 0x0a, 0x6a,
+ 0x0a, 0x6b, 0x0a, 0x6c, 0x0a, 0x6d, 0x0a, 0x6e, 0x0a, 0x6f, 0x0a, 0x70,
+ 0x0a, 0x71, 0x0a, 0x72, 0x0a, 0x73, 0x0a, 0x74, 0x0a, 0x75, 0x0a, 0x76,
+ 0x0a, 0x77, 0x0a, 0x78, 0x0a, 0x79, 0x0a, 0x7a, 0x0a, 0x7b, 0x0a, 0x7c,
+ 0x0a, 0x7d, 0x0a, 0x7e, 0x0a, 0x7f, 0x0a, 0x80, 0x0a, 0x81, 0x0a, 0x82,
+ 0x0a, 0x83, 0x0a, 0x84, 0x0a, 0x85, 0x0a, 0x86, 0x0a, 0x87, 0x0a, 0x88,
+ 0x0a, 0x89, 0x0a, 0x8a, 0x0a, 0x8b, 0x0a, 0x8c, 0x0a, 0x8d, 0x0a, 0x8e,
+ 0x0a, 0x8f, 0x0a, 0x90, 0x0a, 0x91, 0x0a, 0x92, 0x0a, 0x93, 0x0a, 0x94,
+ 0x0a, 0x95, 0x0a, 0x96, 0x0a, 0x97, 0x0a, 0x98, 0x0a, 0x99, 0x0a, 0x9a,
+ 0x0a, 0x9b, 0x0a, 0x9c, 0x0a, 0x9d, 0x0a, 0x9e, 0x0a, 0x9f, 0x0a, 0xa0,
+ 0x0a, 0xa1, 0x0a, 0xa2, 0x0a, 0xa3, 0x0a, 0xa4, 0x0a, 0xa5, 0x0a, 0xa6,
+ 0x0a, 0xa7, 0x0a, 0xa8, 0x0a, 0xa9, 0x0a, 0xaa, 0x0a, 0xab, 0x0a, 0xac,
+ 0x0a, 0xad, 0x0a, 0xae, 0x0a, 0xaf, 0x0a, 0xb0, 0x0a, 0xb1, 0x0a, 0xb2,
+ 0x0a, 0xb3, 0x0a, 0xb4, 0x0a, 0xb5, 0x0a, 0xb6, 0x0a, 0xb7, 0x0a, 0xb8,
+ 0x0a, 0xb9, 0x0a, 0xba, 0x0a, 0xbb, 0x0a, 0xbc, 0x0a, 0xbd, 0x0a, 0xbe,
+ 0x0a, 0xbf, 0x0a, 0xc0, 0x0a, 0xc1, 0x0a, 0xc2, 0x0a, 0xc3, 0x0a, 0xc4,
+ 0x0a, 0xc5, 0x0a, 0xc6, 0x0a, 0xc7, 0x0a, 0xc8, 0x0a, 0xc9, 0x0a, 0xca,
+ 0x0a, 0xcb, 0x0a, 0xcc, 0x0a, 0xcd, 0x0a, 0xce, 0x0a, 0xcf, 0x0a, 0xd0,
+ 0x0a, 0xd1, 0x0a, 0xd2, 0x0a, 0xd3, 0x0a, 0xd4, 0x0a, 0xd5, 0x0a, 0xd6,
+ 0x0a, 0xd7, 0x0a, 0xd8, 0x0a, 0xd9, 0x0a, 0xda, 0x0a, 0xdb, 0x0a, 0xdc,
+ 0x0a, 0xdd, 0x0a, 0xde, 0x0a, 0xdf, 0x0a, 0xe0, 0x0a, 0xe1, 0x0a, 0xe2,
+ 0x0a, 0xe3, 0x0a, 0xe4, 0x0a, 0xe5, 0x0a, 0xe6, 0x0a, 0xe7, 0x0a, 0xe8,
+ 0x0a, 0xe9, 0x0a, 0xea, 0x0a, 0xeb, 0x0a, 0xec, 0x0a, 0xed, 0x0a, 0xee,
+ 0x0a, 0xef, 0x0a, 0xf0, 0x0a, 0xf1, 0x0a, 0xf2, 0x0a, 0xf3, 0x0a, 0xf4,
+ 0x0a, 0xf5, 0x0a, 0xf6, 0x00, 0xb9, 0x0a, 0xf7, 0x0a, 0xf8, 0x0a, 0xf9,
+ 0x0a, 0xfa, 0x0a, 0xfb, 0x0a, 0xfc, 0x0a, 0xfd, 0x0a, 0xfe, 0x0a, 0xff,
+ 0x0b, 0x00, 0x0b, 0x01, 0x0b, 0x02, 0x0b, 0x03, 0x0b, 0x04, 0x0b, 0x05,
+ 0x0b, 0x06, 0x0b, 0x07, 0x0b, 0x08, 0x0b, 0x09, 0x0b, 0x0a, 0x0b, 0x0b,
+ 0x0b, 0x0c, 0x0b, 0x0d, 0x0b, 0x0e, 0x0b, 0x0f, 0x0b, 0x10, 0x0b, 0x11,
+ 0x0b, 0x12, 0x0b, 0x13, 0x0b, 0x14, 0x0b, 0x15, 0x0b, 0x16, 0x0b, 0x17,
+ 0x0b, 0x18, 0x0b, 0x19, 0x0b, 0x1a, 0x0b, 0x1b, 0x0b, 0x1c, 0x0b, 0x1d,
+ 0x0b, 0x1e, 0x0b, 0x1f, 0x0b, 0x20, 0x0b, 0x21, 0x0b, 0x22, 0x0b, 0x23,
+ 0x0b, 0x24, 0x0b, 0x25, 0x0b, 0x26, 0x0b, 0x27, 0x0b, 0x28, 0x0b, 0x29,
+ 0x0b, 0x2a, 0x0b, 0x2b, 0x0b, 0x2c, 0x0b, 0x2d, 0x0b, 0x2e, 0x0b, 0x2f,
+ 0x0b, 0x30, 0x0b, 0x31, 0x0b, 0x32, 0x0b, 0x33, 0x0b, 0x34, 0x0b, 0x35,
+ 0x0b, 0x36, 0x0b, 0x37, 0x0b, 0x38, 0x0b, 0x39, 0x0b, 0x3a, 0x0b, 0x3b,
+ 0x0b, 0x3c, 0x0b, 0x3d, 0x0b, 0x3e, 0x0b, 0x3f, 0x0b, 0x40, 0x0b, 0x41,
+ 0x0b, 0x42, 0x0b, 0x43, 0x0b, 0x44, 0x0b, 0x45, 0x0b, 0x46, 0x0b, 0x47,
+ 0x0b, 0x48, 0x0b, 0x49, 0x0b, 0x4a, 0x0b, 0x4b, 0x0b, 0x4c, 0x0b, 0x4d,
+ 0x0b, 0x4e, 0x0b, 0x4f, 0x0b, 0x50, 0x0b, 0x51, 0x0b, 0x52, 0x0b, 0x53,
+ 0x0b, 0x54, 0x0b, 0x55, 0x0b, 0x56, 0x0b, 0x57, 0x0b, 0x58, 0x0b, 0x59,
+ 0x0b, 0x5a, 0x0b, 0x5b, 0x0b, 0x5c, 0x0b, 0x5d, 0x0b, 0x5e, 0x0b, 0x5f,
+ 0x0b, 0x60, 0x0b, 0x61, 0x0b, 0x62, 0x0b, 0x63, 0x0b, 0x64, 0x0b, 0x65,
+ 0x0b, 0x66, 0x0b, 0x67, 0x0b, 0x68, 0x0b, 0x69, 0x0b, 0x6a, 0x0b, 0x6b,
+ 0x0b, 0x6c, 0x0b, 0x6d, 0x0b, 0x6e, 0x0b, 0x6f, 0x0b, 0x70, 0x0b, 0x71,
+ 0x0b, 0x72, 0x0b, 0x73, 0x0b, 0x74, 0x0b, 0x75, 0x0b, 0x76, 0x0b, 0x77,
+ 0x0b, 0x78, 0x0b, 0x79, 0x0b, 0x7a, 0x0b, 0x7b, 0x0b, 0x7c, 0x0b, 0x7d,
+ 0x0b, 0x7e, 0x0b, 0x7f, 0x0b, 0x80, 0x0b, 0x81, 0x0b, 0x82, 0x0b, 0x83,
+ 0x0b, 0x84, 0x0b, 0x85, 0x0b, 0x86, 0x0b, 0x87, 0x0b, 0x88, 0x0b, 0x89,
+ 0x0b, 0x8a, 0x0b, 0x8b, 0x0b, 0x8c, 0x0b, 0x8d, 0x0b, 0x8e, 0x0b, 0x8f,
+ 0x0b, 0x90, 0x0b, 0x91, 0x0b, 0x92, 0x0b, 0x93, 0x0b, 0x94, 0x0b, 0x95,
+ 0x0b, 0x96, 0x0b, 0x97, 0x0b, 0x98, 0x0b, 0x99, 0x0b, 0x9a, 0x0b, 0x9b,
+ 0x0b, 0x9c, 0x0b, 0x9d, 0x0b, 0x9e, 0x0b, 0x9f, 0x0b, 0xa0, 0x0b, 0xa1,
+ 0x0b, 0xa2, 0x0b, 0xa3, 0x0b, 0xa4, 0x0b, 0xa5, 0x0b, 0xa6, 0x0b, 0xa7,
+ 0x0b, 0xa8, 0x0b, 0xa9, 0x0b, 0xaa, 0x0b, 0xab, 0x0b, 0xac, 0x0b, 0xad,
+ 0x0b, 0xae, 0x0b, 0xaf, 0x0b, 0xb0, 0x0b, 0xb1, 0x0b, 0xb2, 0x0b, 0xb3,
+ 0x0b, 0xb4, 0x0b, 0xb5, 0x0b, 0xb6, 0x0b, 0xb7, 0x0b, 0xb8, 0x0b, 0xb9,
+ 0x0b, 0xba, 0x0b, 0xbb, 0x0b, 0xbc, 0x0b, 0xbd, 0x0b, 0xbe, 0x0b, 0xbf,
+ 0x0b, 0xc0, 0x0b, 0xc1, 0x0b, 0xc2, 0x0b, 0xc3, 0x0b, 0xc4, 0x0b, 0xc5,
+ 0x0b, 0xc6, 0x0b, 0xc7, 0x0b, 0xc8, 0x0b, 0xc9, 0x0b, 0xca, 0x0b, 0xcb,
+ 0x0b, 0xcc, 0x0b, 0xcd, 0x0b, 0xce, 0x0b, 0xcf, 0x0b, 0xd0, 0x0b, 0xd1,
+ 0x0b, 0xd2, 0x0b, 0xd3, 0x0b, 0xd4, 0x0b, 0xd5, 0x0b, 0xd6, 0x0b, 0xd7,
+ 0x0b, 0xd8, 0x0b, 0xd9, 0x0b, 0xda, 0x0b, 0xdb, 0x0b, 0xdc, 0x0b, 0xdd,
+ 0x0b, 0xde, 0x0b, 0xdf, 0x0b, 0xe0, 0x0b, 0xe1, 0x0b, 0xe2, 0x0b, 0xe3,
+ 0x0b, 0xe4, 0x0b, 0xe5, 0x0b, 0xe6, 0x0b, 0xe7, 0x0b, 0xe8, 0x0b, 0xe9,
+ 0x0b, 0xea, 0x0b, 0xeb, 0x0b, 0xec, 0x0b, 0xed, 0x0b, 0xee, 0x0b, 0xef,
+ 0x0b, 0xf0, 0x0b, 0xf1, 0x0b, 0xf2, 0x0b, 0xf3, 0x0b, 0xf4, 0x0b, 0xf5,
+ 0x0b, 0xf6, 0x0b, 0xf7, 0x0b, 0xf8, 0x0b, 0xf9, 0x0b, 0xfa, 0x0b, 0xfb,
+ 0x0b, 0xfc, 0x0b, 0xfd, 0x0b, 0xfe, 0x0b, 0xff, 0x0c, 0x00, 0x0c, 0x01,
+ 0x0c, 0x02, 0x0c, 0x03, 0x0c, 0x04, 0x0c, 0x05, 0x0c, 0x06, 0x0c, 0x07,
+ 0x0c, 0x08, 0x0c, 0x09, 0x0c, 0x0a, 0x0c, 0x0b, 0x0c, 0x0c, 0x0c, 0x0d,
+ 0x0c, 0x0e, 0x0c, 0x0f, 0x0c, 0x10, 0x0c, 0x11, 0x0c, 0x12, 0x0c, 0x13,
+ 0x0c, 0x14, 0x0c, 0x15, 0x0c, 0x16, 0x0c, 0x17, 0x0c, 0x18, 0x0c, 0x19,
+ 0x0c, 0x1a, 0x0c, 0x1b, 0x0c, 0x1c, 0x0c, 0x1d, 0x0c, 0x1e, 0x0c, 0x1f,
+ 0x0c, 0x20, 0x0c, 0x21, 0x0c, 0x22, 0x0c, 0x23, 0x0c, 0x24, 0x0c, 0x25,
+ 0x0c, 0x26, 0x0c, 0x27, 0x0c, 0x28, 0x0c, 0x29, 0x0c, 0x2a, 0x0c, 0x2b,
+ 0x0c, 0x2c, 0x0c, 0x2d, 0x0c, 0x2e, 0x0c, 0x2f, 0x0c, 0x30, 0x0c, 0x31,
+ 0x0c, 0x32, 0x0c, 0x33, 0x0c, 0x34, 0x0c, 0x35, 0x0c, 0x36, 0x0c, 0x37,
+ 0x0c, 0x38, 0x0c, 0x39, 0x0c, 0x3a, 0x0c, 0x3b, 0x0c, 0x3c, 0x0c, 0x3d,
+ 0x0c, 0x3e, 0x0c, 0x3f, 0x0c, 0x40, 0x0c, 0x41, 0x0c, 0x42, 0x0c, 0x43,
+ 0x0c, 0x44, 0x0c, 0x45, 0x0c, 0x46, 0x0c, 0x47, 0x0c, 0x48, 0x0c, 0x49,
+ 0x0c, 0x4a, 0x0c, 0x4b, 0x0c, 0x4c, 0x0c, 0x4d, 0x0c, 0x4e, 0x0c, 0x4f,
+ 0x0c, 0x50, 0x0c, 0x51, 0x0c, 0x52, 0x0c, 0x53, 0x0c, 0x54, 0x0c, 0x55,
+ 0x0c, 0x56, 0x0c, 0x57, 0x0c, 0x58, 0x0c, 0x59, 0x0c, 0x5a, 0x0c, 0x5b,
+ 0x0c, 0x5c, 0x0c, 0x5d, 0x0c, 0x5e, 0x0c, 0x5f, 0x0c, 0x60, 0x0c, 0x61,
+ 0x0c, 0x62, 0x0c, 0x63, 0x0c, 0x64, 0x0c, 0x65, 0x0c, 0x66, 0x0c, 0x67,
+ 0x0c, 0x68, 0x0c, 0x69, 0x0c, 0x6a, 0x0c, 0x6b, 0x0c, 0x6c, 0x0c, 0x6d,
+ 0x0c, 0x6e, 0x0c, 0x6f, 0x0c, 0x70, 0x0c, 0x71, 0x0c, 0x72, 0x0c, 0x73,
+ 0x0c, 0x74, 0x0c, 0x75, 0x0c, 0x76, 0x0c, 0x77, 0x0c, 0x78, 0x0c, 0x79,
+ 0x0c, 0x7a, 0x0c, 0x7b, 0x0c, 0x7c, 0x0c, 0x7d, 0x0c, 0x7e, 0x0c, 0x7f,
+ 0x0c, 0x80, 0x0c, 0x81, 0x0c, 0x82, 0x0c, 0x83, 0x0c, 0x84, 0x0c, 0x85,
+ 0x0c, 0x86, 0x0c, 0x87, 0x0c, 0x88, 0x0c, 0x89, 0x0c, 0x8a, 0x0c, 0x8b,
+ 0x0c, 0x8c, 0x0c, 0x8d, 0x0c, 0x8e, 0x0c, 0x8f, 0x0c, 0x90, 0x0c, 0x91,
+ 0x0c, 0x92, 0x0c, 0x93, 0x0c, 0x94, 0x0c, 0x95, 0x0c, 0x96, 0x0c, 0x97,
+ 0x0c, 0x98, 0x0c, 0x99, 0x0c, 0x9a, 0x0c, 0x9b, 0x0c, 0x9c, 0x0c, 0x9d,
+ 0x0c, 0x9e, 0x0c, 0x9f, 0x0c, 0xa0, 0x0c, 0xa1, 0x0c, 0xa2, 0x0c, 0xa3,
+ 0x0c, 0xa4, 0x0c, 0xa5, 0x0c, 0xa6, 0x0c, 0xa7, 0x0c, 0xa8, 0x0c, 0xa9,
+ 0x0c, 0xaa, 0x0c, 0xab, 0x0c, 0xac, 0x0c, 0xad, 0x0c, 0xae, 0x0c, 0xaf,
+ 0x0c, 0xb0, 0x0c, 0xb1, 0x0c, 0xb2, 0x0c, 0xb3, 0x0c, 0xb4, 0x0c, 0xb5,
+ 0x0c, 0xb6, 0x0c, 0xb7, 0x0c, 0xb8, 0x0c, 0xb9, 0x0c, 0xba, 0x0c, 0xbb,
+ 0x0c, 0xbc, 0x0c, 0xbd, 0x0c, 0xbe, 0x0c, 0xbf, 0x0c, 0xc0, 0x0c, 0xc1,
+ 0x0c, 0xc2, 0x0c, 0xc3, 0x0c, 0xc4, 0x0c, 0xc5, 0x0c, 0xc6, 0x0c, 0xc7,
+ 0x0c, 0xc8, 0x0c, 0xc9, 0x0c, 0xca, 0x0c, 0xcb, 0x0c, 0xcc, 0x0c, 0xcd,
+ 0x0c, 0xce, 0x0c, 0xcf, 0x0c, 0xd0, 0x0c, 0xd1, 0x0c, 0xd2, 0x0c, 0xd3,
+ 0x0c, 0xd4, 0x0c, 0xd5, 0x0c, 0xd6, 0x0c, 0xd7, 0x0c, 0xd8, 0x0c, 0xd9,
+ 0x0c, 0xda, 0x0c, 0xdb, 0x0c, 0xdc, 0x0c, 0xdd, 0x0c, 0xde, 0x0c, 0xdf,
+ 0x0c, 0xe0, 0x0c, 0xe1, 0x0c, 0xe2, 0x0c, 0xe3, 0x0c, 0xe4, 0x0c, 0xe5,
+ 0x0c, 0xe6, 0x0c, 0xe7, 0x0c, 0xe8, 0x0c, 0xe9, 0x0c, 0xea, 0x0c, 0xeb,
+ 0x0c, 0xec, 0x0c, 0xed, 0x0c, 0xee, 0x0c, 0xef, 0x0c, 0xf0, 0x0c, 0xf1,
+ 0x0c, 0xf2, 0x0c, 0xf3, 0x0c, 0xf4, 0x0c, 0xf5, 0x0c, 0xf6, 0x0c, 0xf7,
+ 0x0c, 0xf8, 0x0c, 0xf9, 0x0c, 0xfa, 0x0c, 0xfb, 0x0c, 0xfc, 0x0c, 0xfd,
+ 0x0c, 0xfe, 0x0c, 0xff, 0x0d, 0x00, 0x0d, 0x01, 0x0d, 0x02, 0x0d, 0x03,
+ 0x0d, 0x04, 0x0d, 0x05, 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x08, 0x0d, 0x09,
+ 0x0d, 0x0a, 0x0d, 0x0b, 0x0d, 0x0c, 0x0d, 0x0d, 0x0d, 0x0e, 0x0d, 0x0f,
+ 0x0d, 0x10, 0x0d, 0x11, 0x0d, 0x12, 0x0d, 0x13, 0x0d, 0x14, 0x0d, 0x15,
+ 0x0d, 0x16, 0x0d, 0x17, 0x0d, 0x18, 0x0d, 0x19, 0x0d, 0x1a, 0x0d, 0x1b,
+ 0x0d, 0x1c, 0x0d, 0x1d, 0x0d, 0x1e, 0x0d, 0x1f, 0x0d, 0x20, 0x0d, 0x21,
+ 0x0d, 0x22, 0x0d, 0x23, 0x0d, 0x24, 0x0d, 0x25, 0x0d, 0x26, 0x0d, 0x27,
+ 0x0d, 0x28, 0x0d, 0x29, 0x0d, 0x2a, 0x0d, 0x2b, 0x0d, 0x2c, 0x0d, 0x2d,
+ 0x0d, 0x2e, 0x0d, 0x2f, 0x0d, 0x30, 0x0d, 0x31, 0x0d, 0x32, 0x0d, 0x33,
+ 0x0d, 0x34, 0x0d, 0x35, 0x0d, 0x36, 0x0d, 0x37, 0x0d, 0x38, 0x0d, 0x39,
+ 0x0d, 0x3a, 0x0d, 0x3b, 0x0d, 0x3c, 0x0d, 0x3d, 0x0d, 0x3e, 0x0d, 0x3f,
+ 0x0d, 0x40, 0x0d, 0x41, 0x0d, 0x42, 0x0d, 0x43, 0x0d, 0x44, 0x0d, 0x45,
+ 0x0d, 0x46, 0x0d, 0x47, 0x0d, 0x48, 0x0d, 0x49, 0x0d, 0x4a, 0x0d, 0x4b,
+ 0x0d, 0x4c, 0x0d, 0x4d, 0x0d, 0x4e, 0x0d, 0x4f, 0x0d, 0x50, 0x0d, 0x51,
+ 0x0d, 0x52, 0x0d, 0x53, 0x0d, 0x54, 0x0d, 0x55, 0x0d, 0x56, 0x0d, 0x57,
+ 0x0d, 0x58, 0x0d, 0x59, 0x0d, 0x5a, 0x0d, 0x5b, 0x0d, 0x5c, 0x0d, 0x5d,
+ 0x0d, 0x5e, 0x0d, 0x5f, 0x0d, 0x60, 0x0d, 0x61, 0x0d, 0x62, 0x0d, 0x63,
+ 0x0d, 0x64, 0x0d, 0x65, 0x0d, 0x66, 0x0d, 0x67, 0x0d, 0x68, 0x0d, 0x69,
+ 0x0d, 0x6a, 0x0d, 0x6b, 0x0d, 0x6c, 0x0d, 0x6d, 0x0d, 0x6e, 0x0d, 0x6f,
+ 0x0d, 0x70, 0x0d, 0x71, 0x0d, 0x72, 0x0d, 0x73, 0x0d, 0x74, 0x0d, 0x75,
+ 0x0d, 0x76, 0x0d, 0x77, 0x0d, 0x78, 0x0d, 0x79, 0x0d, 0x7a, 0x0d, 0x7b,
+ 0x0d, 0x7c, 0x0d, 0x7d, 0x0d, 0x7e, 0x0d, 0x7f, 0x0d, 0x80, 0x0d, 0x81,
+ 0x0d, 0x82, 0x0d, 0x83, 0x0d, 0x84, 0x0d, 0x85, 0x0d, 0x86, 0x0d, 0x87,
+ 0x0d, 0x88, 0x0d, 0x89, 0x0d, 0x8a, 0x0d, 0x8b, 0x0d, 0x8c, 0x0d, 0x8d,
+ 0x0d, 0x8e, 0x0d, 0x8f, 0x0d, 0x90, 0x0d, 0x91, 0x0d, 0x92, 0x0d, 0x93,
+ 0x0d, 0x94, 0x0d, 0x95, 0x0d, 0x96, 0x0d, 0x97, 0x0d, 0x98, 0x0d, 0x99,
+ 0x0d, 0x9a, 0x0d, 0x9b, 0x0d, 0x9c, 0x0d, 0x9d, 0x0d, 0x9e, 0x0d, 0x9f,
+ 0x0d, 0xa0, 0x0d, 0xa1, 0x0d, 0xa2, 0x0d, 0xa3, 0x0d, 0xa4, 0x0d, 0xa5,
+ 0x0d, 0xa6, 0x0d, 0xa7, 0x0d, 0xa8, 0x0d, 0xa9, 0x0d, 0xaa, 0x0d, 0xab,
+ 0x0d, 0xac, 0x0d, 0xad, 0x0d, 0xae, 0x0d, 0xaf, 0x0d, 0xb0, 0x0d, 0xb1,
+ 0x0d, 0xb2, 0x0d, 0xb3, 0x0d, 0xb4, 0x0d, 0xb5, 0x0d, 0xb6, 0x0d, 0xb7,
+ 0x0d, 0xb8, 0x0d, 0xb9, 0x0d, 0xba, 0x0d, 0xbb, 0x0d, 0xbc, 0x0d, 0xbd,
+ 0x0d, 0xbe, 0x0d, 0xbf, 0x0d, 0xc0, 0x0d, 0xc1, 0x0d, 0xc2, 0x0d, 0xc3,
+ 0x0d, 0xc4, 0x0d, 0xc5, 0x0d, 0xc6, 0x0d, 0xc7, 0x0d, 0xc8, 0x0d, 0xc9,
+ 0x0d, 0xca, 0x0d, 0xcb, 0x0d, 0xcc, 0x0d, 0xcd, 0x0d, 0xce, 0x0d, 0xcf,
+ 0x0d, 0xd0, 0x0d, 0xd1, 0x0d, 0xd2, 0x0d, 0xd3, 0x0d, 0xd4, 0x0d, 0xd5,
+ 0x0d, 0xd6, 0x0d, 0xd7, 0x0d, 0xd8, 0x0d, 0xd9, 0x0d, 0xda, 0x0d, 0xdb,
+ 0x0d, 0xdc, 0x0d, 0xdd, 0x0d, 0xde, 0x0d, 0xdf, 0x0d, 0xe0, 0x0d, 0xe1,
+ 0x0d, 0xe2, 0x0d, 0xe3, 0x0d, 0xe4, 0x0d, 0xe5, 0x0d, 0xe6, 0x0d, 0xe7,
+ 0x0d, 0xe8, 0x0d, 0xe9, 0x0d, 0xea, 0x0d, 0xeb, 0x0d, 0xec, 0x0d, 0xed,
+ 0x0d, 0xee, 0x0d, 0xef, 0x0d, 0xf0, 0x0d, 0xf1, 0x0d, 0xf2, 0x0d, 0xf3,
+ 0x0d, 0xf4, 0x0d, 0xf5, 0x0d, 0xf6, 0x0d, 0xf7, 0x0d, 0xf8, 0x0d, 0xf9,
+ 0x0d, 0xfa, 0x0d, 0xfb, 0x0d, 0xfc, 0x0d, 0xfd, 0x0d, 0xfe, 0x0d, 0xff,
+ 0x0e, 0x00, 0x0e, 0x01, 0x0e, 0x02, 0x0e, 0x03, 0x0e, 0x04, 0x0e, 0x05,
+ 0x0e, 0x06, 0x0e, 0x07, 0x0e, 0x08, 0x0e, 0x09, 0x0e, 0x0a, 0x0e, 0x0b,
+ 0x0e, 0x0c, 0x0e, 0x0d, 0x0e, 0x0e, 0x0e, 0x0f, 0x0e, 0x10, 0x0e, 0x11,
+ 0x0e, 0x12, 0x0e, 0x13, 0x0e, 0x14, 0x0e, 0x15, 0x0e, 0x16, 0x0e, 0x17,
+ 0x0e, 0x18, 0x0e, 0x19, 0x0e, 0x1a, 0x0e, 0x1b, 0x0e, 0x1c, 0x0e, 0x1d,
+ 0x0e, 0x1e, 0x0e, 0x1f, 0x0e, 0x20, 0x0e, 0x21, 0x0e, 0x22, 0x0e, 0x23,
+ 0x0e, 0x24, 0x0e, 0x25, 0x0e, 0x26, 0x0e, 0x27, 0x0e, 0x28, 0x0e, 0x29,
+ 0x0e, 0x2a, 0x0e, 0x2b, 0x0e, 0x2c, 0x0e, 0x2d, 0x0e, 0x2e, 0x0e, 0x2f,
+ 0x0e, 0x30, 0x0e, 0x31, 0x0e, 0x32, 0x0e, 0x33, 0x0e, 0x34, 0x0e, 0x35,
+ 0x0e, 0x36, 0x0e, 0x37, 0x0e, 0x38, 0x0e, 0x39, 0x0e, 0x3a, 0x0e, 0x3b,
+ 0x0e, 0x3c, 0x0e, 0x3d, 0x0e, 0x3e, 0x0e, 0x3f, 0x0e, 0x40, 0x0e, 0x41,
+ 0x0e, 0x42, 0x0e, 0x43, 0x0e, 0x44, 0x0e, 0x45, 0x0e, 0x46, 0x0e, 0x47,
+ 0x0e, 0x48, 0x0e, 0x49, 0x0e, 0x4a, 0x0e, 0x4b, 0x0e, 0x4c, 0x0e, 0x4d,
+ 0x0e, 0x4e, 0x0e, 0x4f, 0x0e, 0x50, 0x0e, 0x51, 0x0e, 0x52, 0x0e, 0x53,
+ 0x0e, 0x54, 0x0e, 0x55, 0x0e, 0x56, 0x0e, 0x57, 0x0e, 0x58, 0x0e, 0x59,
+ 0x0e, 0x5a, 0x0e, 0x5b, 0x0e, 0x5c, 0x0e, 0x5d, 0x0e, 0x5e, 0x0e, 0x5f,
+ 0x0e, 0x60, 0x0e, 0x61, 0x0e, 0x62, 0x0e, 0x63, 0x0e, 0x64, 0x0e, 0x65,
+ 0x0e, 0x66, 0x0e, 0x67, 0x0e, 0x68, 0x0e, 0x69, 0x0e, 0x6a, 0x0e, 0x6b,
+ 0x0e, 0x6c, 0x0e, 0x6d, 0x0e, 0x6e, 0x0e, 0x6f, 0x0e, 0x70, 0x0e, 0x71,
+ 0x0e, 0x72, 0x0e, 0x73, 0x0e, 0x74, 0x0e, 0x75, 0x0e, 0x76, 0x0e, 0x77,
+ 0x0e, 0x78, 0x0e, 0x79, 0x0e, 0x7a, 0x0e, 0x7b, 0x0e, 0x7c, 0x0e, 0x7d,
+ 0x0e, 0x7e, 0x0e, 0x7f, 0x0e, 0x80, 0x0e, 0x81, 0x0e, 0x82, 0x0e, 0x83,
+ 0x0e, 0x84, 0x0e, 0x85, 0x0e, 0x86, 0x0e, 0x87, 0x0e, 0x88, 0x0e, 0x89,
+ 0x0e, 0x8a, 0x0e, 0x8b, 0x0e, 0x8c, 0x0e, 0x8d, 0x0e, 0x8e, 0x0e, 0x8f,
+ 0x0e, 0x90, 0x0e, 0x91, 0x0e, 0x92, 0x0e, 0x93, 0x0e, 0x94, 0x0e, 0x95,
+ 0x0e, 0x96, 0x0e, 0x97, 0x0e, 0x98, 0x0e, 0x99, 0x0e, 0x9a, 0x0e, 0x9b,
+ 0x0e, 0x9c, 0x0e, 0x9d, 0x0e, 0x9e, 0x0e, 0x9f, 0x0e, 0xa0, 0x0e, 0xa1,
+ 0x0e, 0xa2, 0x0e, 0xa3, 0x0e, 0xa4, 0x0e, 0xa5, 0x0e, 0xa6, 0x0e, 0xa7,
+ 0x0e, 0xa8, 0x0e, 0xa9, 0x0e, 0xaa, 0x0e, 0xab, 0x0e, 0xac, 0x0e, 0xad,
+ 0x0e, 0xae, 0x0e, 0xaf, 0x0e, 0xb0, 0x0e, 0xb1, 0x0e, 0xb2, 0x0e, 0xb3,
+ 0x0e, 0xb4, 0x0e, 0xb5, 0x0e, 0xb6, 0x0e, 0xb7, 0x0e, 0xb8, 0x0e, 0xb9,
+ 0x0e, 0xba, 0x0e, 0xbb, 0x0e, 0xbc, 0x0e, 0xbd, 0x0e, 0xbe, 0x0e, 0xbf,
+ 0x0e, 0xc0, 0x0e, 0xc1, 0x0e, 0xc2, 0x0e, 0xc3, 0x0e, 0xc4, 0x0e, 0xc5,
+ 0x0e, 0xc6, 0x0e, 0xc7, 0x0e, 0xc8, 0x0e, 0xc9, 0x0e, 0xca, 0x0e, 0xcb,
+ 0x0e, 0xcc, 0x0e, 0xcd, 0x0e, 0xce, 0x0e, 0xcf, 0x0e, 0xd0, 0x0e, 0xd1,
+ 0x0e, 0xd2, 0x0e, 0xd3, 0x0e, 0xd4, 0x0e, 0xd5, 0x0e, 0xd6, 0x0e, 0xd7,
+ 0x0e, 0xd8, 0x0e, 0xd9, 0x0e, 0xda, 0x0e, 0xdb, 0x0e, 0xdc, 0x0e, 0xdd,
+ 0x0e, 0xde, 0x0e, 0xdf, 0x0e, 0xe0, 0x0e, 0xe1, 0x0e, 0xe2, 0x0e, 0xe3,
+ 0x0e, 0xe4, 0x0e, 0xe5, 0x0e, 0xe6, 0x0e, 0xe7, 0x0e, 0xe8, 0x0e, 0xe9,
+ 0x0e, 0xea, 0x0e, 0xeb, 0x0e, 0xec, 0x0e, 0xed, 0x0e, 0xee, 0x0e, 0xef,
+ 0x0e, 0xf0, 0x0e, 0xf1, 0x0e, 0xf2, 0x0e, 0xf3, 0x0e, 0xf4, 0x0e, 0xf5,
+ 0x0e, 0xf6, 0x0e, 0xf7, 0x0e, 0xf8, 0x0e, 0xf9, 0x0e, 0xfa, 0x0e, 0xfb,
+ 0x0e, 0xfc, 0x0e, 0xfd, 0x0e, 0xfe, 0x0e, 0xff, 0x0f, 0x00, 0x0f, 0x01,
+ 0x0f, 0x02, 0x0f, 0x03, 0x0f, 0x04, 0x0f, 0x05, 0x0f, 0x06, 0x0f, 0x07,
+ 0x0f, 0x08, 0x0f, 0x09, 0x0f, 0x0a, 0x0f, 0x0b, 0x0f, 0x0c, 0x00, 0xc0,
+ 0x00, 0xc1, 0x0f, 0x0d, 0x0f, 0x0e, 0x0f, 0x0f, 0x0f, 0x10, 0x0f, 0x11,
+ 0x0f, 0x12, 0x0f, 0x13, 0x0f, 0x14, 0x0f, 0x15, 0x0f, 0x16, 0x0f, 0x17,
+ 0x0f, 0x18, 0x0f, 0x19, 0x0f, 0x1a, 0x0f, 0x1b, 0x0f, 0x1c, 0x0f, 0x1d,
+ 0x0f, 0x1e, 0x0f, 0x1f, 0x0f, 0x20, 0x0f, 0x21, 0x0f, 0x22, 0x0f, 0x23,
+ 0x0f, 0x24, 0x0f, 0x25, 0x0f, 0x26, 0x0f, 0x27, 0x0f, 0x28, 0x0f, 0x29,
+ 0x0f, 0x2a, 0x0f, 0x2b, 0x0f, 0x2c, 0x0f, 0x2d, 0x0f, 0x2e, 0x0f, 0x2f,
+ 0x0f, 0x30, 0x0f, 0x31, 0x0f, 0x32, 0x0f, 0x33, 0x0f, 0x34, 0x0f, 0x35,
+ 0x0f, 0x36, 0x0f, 0x37, 0x0f, 0x38, 0x0f, 0x39, 0x0f, 0x3a, 0x0f, 0x3b,
+ 0x0f, 0x3c, 0x0f, 0x3d, 0x0f, 0x3e, 0x0f, 0x3f, 0x0f, 0x40, 0x0f, 0x41,
+ 0x0f, 0x42, 0x0f, 0x43, 0x0f, 0x44, 0x0f, 0x45, 0x0f, 0x46, 0x0f, 0x47,
+ 0x0f, 0x48, 0x0f, 0x49, 0x0f, 0x4a, 0x0f, 0x4b, 0x0f, 0x4c, 0x0f, 0x4d,
+ 0x0f, 0x4e, 0x0f, 0x4f, 0x0f, 0x50, 0x0f, 0x51, 0x0f, 0x52, 0x0f, 0x53,
+ 0x0f, 0x54, 0x0f, 0x55, 0x0f, 0x56, 0x0f, 0x57, 0x0f, 0x58, 0x0f, 0x59,
+ 0x0f, 0x5a, 0x0f, 0x5b, 0x0f, 0x5c, 0x0f, 0x5d, 0x0f, 0x5e, 0x0f, 0x5f,
+ 0x0f, 0x60, 0x0f, 0x61, 0x0f, 0x62, 0x0f, 0x63, 0x0f, 0x64, 0x0f, 0x65,
+ 0x0f, 0x66, 0x0f, 0x67, 0x0f, 0x68, 0x0f, 0x69, 0x0f, 0x6a, 0x0f, 0x6b,
+ 0x0f, 0x6c, 0x0f, 0x6d, 0x0f, 0x6e, 0x0f, 0x6f, 0x0f, 0x70, 0x0f, 0x71,
+ 0x0f, 0x72, 0x0f, 0x73, 0x0f, 0x74, 0x0f, 0x75, 0x0f, 0x76, 0x0f, 0x77,
+ 0x0f, 0x78, 0x0f, 0x79, 0x0f, 0x7a, 0x0f, 0x7b, 0x0f, 0x7c, 0x0f, 0x7d,
+ 0x0f, 0x7e, 0x0f, 0x7f, 0x0f, 0x80, 0x0f, 0x81, 0x0f, 0x82, 0x0f, 0x83,
+ 0x0f, 0x84, 0x0f, 0x85, 0x0f, 0x86, 0x0f, 0x87, 0x0f, 0x88, 0x0f, 0x89,
+ 0x0f, 0x8a, 0x0f, 0x8b, 0x0f, 0x8c, 0x0f, 0x8d, 0x0f, 0x8e, 0x0f, 0x8f,
+ 0x0f, 0x90, 0x0f, 0x91, 0x0f, 0x92, 0x0f, 0x93, 0x0f, 0x94, 0x0f, 0x95,
+ 0x0f, 0x96, 0x0f, 0x97, 0x0f, 0x98, 0x0f, 0x99, 0x0f, 0x9a, 0x0f, 0x9b,
+ 0x0f, 0x9c, 0x0f, 0x9d, 0x0f, 0x9e, 0x0f, 0x9f, 0x0f, 0xa0, 0x0f, 0xa1,
+ 0x0f, 0xa2, 0x0f, 0xa3, 0x0f, 0xa4, 0x0f, 0xa5, 0x0f, 0xa6, 0x0f, 0xa7,
+ 0x0f, 0xa8, 0x0f, 0xa9, 0x0f, 0xaa, 0x0f, 0xab, 0x0f, 0xac, 0x0f, 0xad,
+ 0x0f, 0xae, 0x0f, 0xaf, 0x0f, 0xb0, 0x0f, 0xb1, 0x0f, 0xb2, 0x0f, 0xb3,
+ 0x0f, 0xb4, 0x0f, 0xb5, 0x0f, 0xb6, 0x0f, 0xb7, 0x0f, 0xb8, 0x0f, 0xb9,
+ 0x0f, 0xba, 0x0f, 0xbb, 0x0f, 0xbc, 0x0f, 0xbd, 0x0f, 0xbe, 0x0f, 0xbf,
+ 0x0f, 0xc0, 0x0f, 0xc1, 0x0f, 0xc2, 0x0f, 0xc3, 0x0f, 0xc4, 0x0f, 0xc5,
+ 0x0f, 0xc6, 0x0f, 0xc7, 0x0f, 0xc8, 0x0f, 0xc9, 0x0f, 0xca, 0x0f, 0xcb,
+ 0x0f, 0xcc, 0x0f, 0xcd, 0x0f, 0xce, 0x0f, 0xcf, 0x0f, 0xd0, 0x0f, 0xd1,
+ 0x0f, 0xd2, 0x0f, 0xd3, 0x0f, 0xd4, 0x0f, 0xd5, 0x0f, 0xd6, 0x0f, 0xd7,
+ 0x0f, 0xd8, 0x0f, 0xd9, 0x0f, 0xda, 0x0f, 0xdb, 0x0f, 0xdc, 0x0f, 0xdd,
+ 0x0f, 0xde, 0x0f, 0xdf, 0x0f, 0xe0, 0x0f, 0xe1, 0x0f, 0xe2, 0x0f, 0xe3,
+ 0x0f, 0xe4, 0x0f, 0xe5, 0x0f, 0xe6, 0x0f, 0xe7, 0x0f, 0xe8, 0x0f, 0xe9,
+ 0x0f, 0xea, 0x0f, 0xeb, 0x0f, 0xec, 0x0f, 0xed, 0x0f, 0xee, 0x0f, 0xef,
+ 0x0f, 0xf0, 0x0f, 0xf1, 0x0f, 0xf2, 0x0f, 0xf3, 0x0f, 0xf4, 0x0f, 0xf5,
+ 0x0f, 0xf6, 0x0f, 0xf7, 0x0f, 0xf8, 0x0f, 0xf9, 0x0f, 0xfa, 0x0f, 0xfb,
+ 0x0f, 0xfc, 0x0f, 0xfd, 0x0f, 0xfe, 0x0f, 0xff, 0x10, 0x00, 0x10, 0x01,
+ 0x10, 0x02, 0x10, 0x03, 0x10, 0x04, 0x10, 0x05, 0x10, 0x06, 0x10, 0x07,
+ 0x10, 0x08, 0x10, 0x09, 0x10, 0x0a, 0x10, 0x0b, 0x10, 0x0c, 0x10, 0x0d,
+ 0x10, 0x0e, 0x10, 0x0f, 0x10, 0x10, 0x10, 0x11, 0x10, 0x12, 0x10, 0x13,
+ 0x10, 0x14, 0x10, 0x15, 0x10, 0x16, 0x10, 0x17, 0x10, 0x18, 0x10, 0x19,
+ 0x10, 0x1a, 0x10, 0x1b, 0x10, 0x1c, 0x10, 0x1d, 0x10, 0x1e, 0x10, 0x1f,
+ 0x10, 0x20, 0x10, 0x21, 0x10, 0x22, 0x10, 0x23, 0x10, 0x24, 0x10, 0x25,
+ 0x10, 0x26, 0x10, 0x27, 0x10, 0x28, 0x10, 0x29, 0x10, 0x2a, 0x10, 0x2b,
+ 0x10, 0x2c, 0x10, 0x2d, 0x10, 0x2e, 0x10, 0x2f, 0x10, 0x30, 0x10, 0x31,
+ 0x10, 0x32, 0x10, 0x33, 0x10, 0x34, 0x10, 0x35, 0x10, 0x36, 0x10, 0x37,
+ 0x10, 0x38, 0x10, 0x39, 0x10, 0x3a, 0x10, 0x3b, 0x10, 0x3c, 0x10, 0x3d,
+ 0x10, 0x3e, 0x10, 0x3f, 0x10, 0x40, 0x10, 0x41, 0x10, 0x42, 0x10, 0x43,
+ 0x10, 0x44, 0x10, 0x45, 0x10, 0x46, 0x10, 0x47, 0x10, 0x48, 0x10, 0x49,
+ 0x10, 0x4a, 0x10, 0x4b, 0x10, 0x4c, 0x10, 0x4d, 0x10, 0x4e, 0x10, 0x4f,
+ 0x10, 0x50, 0x10, 0x51, 0x10, 0x52, 0x10, 0x53, 0x10, 0x54, 0x10, 0x55,
+ 0x10, 0x56, 0x10, 0x57, 0x10, 0x58, 0x10, 0x59, 0x10, 0x5a, 0x10, 0x5b,
+ 0x10, 0x5c, 0x10, 0x5d, 0x10, 0x5e, 0x10, 0x5f, 0x10, 0x60, 0x10, 0x61,
+ 0x10, 0x62, 0x10, 0x63, 0x10, 0x64, 0x10, 0x65, 0x10, 0x66, 0x10, 0x67,
+ 0x10, 0x68, 0x10, 0x69, 0x10, 0x6a, 0x10, 0x6b, 0x10, 0x6c, 0x10, 0x6d,
+ 0x10, 0x6e, 0x10, 0x6f, 0x10, 0x70, 0x10, 0x71, 0x10, 0x72, 0x10, 0x73,
+ 0x10, 0x74, 0x10, 0x75, 0x10, 0x76, 0x10, 0x77, 0x10, 0x78, 0x10, 0x79,
+ 0x10, 0x7a, 0x10, 0x7b, 0x10, 0x7c, 0x10, 0x7d, 0x10, 0x7e, 0x10, 0x7f,
+ 0x10, 0x80, 0x10, 0x81, 0x10, 0x82, 0x10, 0x83, 0x10, 0x84, 0x10, 0x85,
+ 0x10, 0x86, 0x10, 0x87, 0x10, 0x88, 0x10, 0x89, 0x10, 0x8a, 0x10, 0x8b,
+ 0x10, 0x8c, 0x10, 0x8d, 0x10, 0x8e, 0x10, 0x8f, 0x10, 0x90, 0x10, 0x91,
+ 0x10, 0x92, 0x10, 0x93, 0x10, 0x94, 0x10, 0x95, 0x10, 0x96, 0x10, 0x97,
+ 0x10, 0x98, 0x10, 0x99, 0x10, 0x9a, 0x10, 0x9b, 0x10, 0x9c, 0x10, 0x9d,
+ 0x10, 0x9e, 0x10, 0x9f, 0x10, 0xa0, 0x10, 0xa1, 0x10, 0xa2, 0x10, 0xa3,
+ 0x10, 0xa4, 0x10, 0xa5, 0x10, 0xa6, 0x10, 0xa7, 0x10, 0xa8, 0x10, 0xa9,
+ 0x10, 0xaa, 0x10, 0xab, 0x10, 0xac, 0x10, 0xad, 0x10, 0xae, 0x10, 0xaf,
+ 0x10, 0xb0, 0x10, 0xb1, 0x10, 0xb2, 0x10, 0xb3, 0x10, 0xb4, 0x10, 0xb5,
+ 0x10, 0xb6, 0x10, 0xb7, 0x10, 0xb8, 0x10, 0xb9, 0x10, 0xba, 0x10, 0xbb,
+ 0x10, 0xbc, 0x10, 0xbd, 0x10, 0xbe, 0x10, 0xbf, 0x10, 0xc0, 0x10, 0xc1,
+ 0x10, 0xc2, 0x10, 0xc3, 0x10, 0xc4, 0x10, 0xc5, 0x10, 0xc6, 0x10, 0xc7,
+ 0x10, 0xc8, 0x10, 0xc9, 0x10, 0xca, 0x10, 0xcb, 0x10, 0xcc, 0x10, 0xcd,
+ 0x10, 0xce, 0x10, 0xcf, 0x10, 0xd0, 0x10, 0xd1, 0x10, 0xd2, 0x10, 0xd3,
+ 0x10, 0xd4, 0x10, 0xd5, 0x10, 0xd6, 0x10, 0xd7, 0x10, 0xd8, 0x10, 0xd9,
+ 0x10, 0xda, 0x10, 0xdb, 0x10, 0xdc, 0x10, 0xdd, 0x10, 0xde, 0x10, 0xdf,
+ 0x10, 0xe0, 0x10, 0xe1, 0x10, 0xe2, 0x10, 0xe3, 0x10, 0xe4, 0x10, 0xe5,
+ 0x10, 0xe6, 0x10, 0xe7, 0x10, 0xe8, 0x10, 0xe9, 0x10, 0xea, 0x10, 0xeb,
+ 0x10, 0xec, 0x10, 0xed, 0x10, 0xee, 0x10, 0xef, 0x10, 0xf0, 0x10, 0xf1,
+ 0x10, 0xf2, 0x10, 0xf3, 0x10, 0xf4, 0x10, 0xf5, 0x10, 0xf6, 0x10, 0xf7,
+ 0x10, 0xf8, 0x10, 0xf9, 0x10, 0xfa, 0x10, 0xfb, 0x10, 0xfc, 0x10, 0xfd,
+ 0x10, 0xfe, 0x10, 0xff, 0x11, 0x00, 0x11, 0x01, 0x11, 0x02, 0x11, 0x03,
+ 0x11, 0x04, 0x11, 0x05, 0x11, 0x06, 0x11, 0x07, 0x11, 0x08, 0x11, 0x09,
+ 0x11, 0x0a, 0x11, 0x0b, 0x11, 0x0c, 0x11, 0x0d, 0x11, 0x0e, 0x11, 0x0f,
+ 0x11, 0x10, 0x11, 0x11, 0x11, 0x12, 0x11, 0x13, 0x11, 0x14, 0x11, 0x15,
+ 0x11, 0x16, 0x11, 0x17, 0x11, 0x18, 0x11, 0x19, 0x11, 0x1a, 0x11, 0x1b,
+ 0x11, 0x1c, 0x11, 0x1d, 0x11, 0x1e, 0x11, 0x1f, 0x11, 0x20, 0x11, 0x21,
+ 0x11, 0x22, 0x11, 0x23, 0x11, 0x24, 0x11, 0x25, 0x11, 0x26, 0x11, 0x27,
+ 0x11, 0x28, 0x11, 0x29, 0x11, 0x2a, 0x11, 0x2b, 0x11, 0x2c, 0x11, 0x2d,
+ 0x11, 0x2e, 0x11, 0x2f, 0x11, 0x30, 0x11, 0x31, 0x11, 0x32, 0x11, 0x33,
+ 0x11, 0x34, 0x11, 0x35, 0x11, 0x36, 0x11, 0x37, 0x11, 0x38, 0x11, 0x39,
+ 0x11, 0x3a, 0x11, 0x3b, 0x11, 0x3c, 0x11, 0x3d, 0x11, 0x3e, 0x11, 0x3f,
+ 0x11, 0x40, 0x11, 0x41, 0x11, 0x42, 0x11, 0x43, 0x11, 0x44, 0x11, 0x45,
+ 0x11, 0x46, 0x11, 0x47, 0x11, 0x48, 0x11, 0x49, 0x11, 0x4a, 0x11, 0x4b,
+ 0x11, 0x4c, 0x11, 0x4d, 0x11, 0x4e, 0x11, 0x4f, 0x11, 0x50, 0x11, 0x51,
+ 0x11, 0x52, 0x11, 0x53, 0x11, 0x54, 0x11, 0x55, 0x11, 0x56, 0x11, 0x57,
+ 0x11, 0x58, 0x11, 0x59, 0x11, 0x5a, 0x11, 0x5b, 0x11, 0x5c, 0x11, 0x5d,
+ 0x11, 0x5e, 0x11, 0x5f, 0x11, 0x60, 0x11, 0x61, 0x11, 0x62, 0x11, 0x63,
+ 0x11, 0x64, 0x11, 0x65, 0x11, 0x66, 0x11, 0x67, 0x11, 0x68, 0x11, 0x69,
+ 0x11, 0x6a, 0x11, 0x6b, 0x11, 0x6c, 0x11, 0x6d, 0x11, 0x6e, 0x11, 0x6f,
+ 0x11, 0x70, 0x11, 0x71, 0x11, 0x72, 0x11, 0x73, 0x11, 0x74, 0x11, 0x75,
+ 0x11, 0x76, 0x11, 0x77, 0x11, 0x78, 0x11, 0x79, 0x11, 0x7a, 0x11, 0x7b,
+ 0x11, 0x7c, 0x11, 0x7d, 0x11, 0x7e, 0x11, 0x7f, 0x11, 0x80, 0x11, 0x81,
+ 0x11, 0x82, 0x11, 0x83, 0x11, 0x84, 0x11, 0x85, 0x11, 0x86, 0x11, 0x87,
+ 0x11, 0x88, 0x11, 0x89, 0x11, 0x8a, 0x11, 0x8b, 0x11, 0x8c, 0x11, 0x8d,
+ 0x11, 0x8e, 0x11, 0x8f, 0x11, 0x90, 0x11, 0x91, 0x11, 0x92, 0x11, 0x93,
+ 0x11, 0x94, 0x11, 0x95, 0x11, 0x96, 0x11, 0x97, 0x11, 0x98, 0x11, 0x99,
+ 0x11, 0x9a, 0x11, 0x9b, 0x11, 0x9c, 0x11, 0x9d, 0x11, 0x9e, 0x11, 0x9f,
+ 0x11, 0xa0, 0x11, 0xa1, 0x11, 0xa2, 0x11, 0xa3, 0x11, 0xa4, 0x11, 0xa5,
+ 0x11, 0xa6, 0x11, 0xa7, 0x11, 0xa8, 0x11, 0xa9, 0x11, 0xaa, 0x11, 0xab,
+ 0x11, 0xac, 0x11, 0xad, 0x11, 0xae, 0x11, 0xaf, 0x11, 0xb0, 0x11, 0xb1,
+ 0x11, 0xb2, 0x11, 0xb3, 0x11, 0xb4, 0x11, 0xb5, 0x11, 0xb6, 0x11, 0xb7,
+ 0x11, 0xb8, 0x11, 0xb9, 0x11, 0xba, 0x11, 0xbb, 0x11, 0xbc, 0x11, 0xbd,
+ 0x11, 0xbe, 0x11, 0xbf, 0x11, 0xc0, 0x11, 0xc1, 0x11, 0xc2, 0x11, 0xc3,
+ 0x11, 0xc4, 0x11, 0xc5, 0x11, 0xc6, 0x11, 0xc7, 0x11, 0xc8, 0x11, 0xc9,
+ 0x11, 0xca, 0x11, 0xcb, 0x11, 0xcc, 0x11, 0xcd, 0x11, 0xce, 0x11, 0xcf,
+ 0x11, 0xd0, 0x11, 0xd1, 0x11, 0xd2, 0x11, 0xd3, 0x11, 0xd4, 0x11, 0xd5,
+ 0x11, 0xd6, 0x11, 0xd7, 0x11, 0xd8, 0x11, 0xd9, 0x11, 0xda, 0x11, 0xdb,
+ 0x11, 0xdc, 0x11, 0xdd, 0x11, 0xde, 0x11, 0xdf, 0x11, 0xe0, 0x11, 0xe1,
+ 0x11, 0xe2, 0x11, 0xe3, 0x11, 0xe4, 0x11, 0xe5, 0x11, 0xe6, 0x11, 0xe7,
+ 0x11, 0xe8, 0x11, 0xe9, 0x11, 0xea, 0x11, 0xeb, 0x11, 0xec, 0x11, 0xed,
+ 0x11, 0xee, 0x11, 0xef, 0x11, 0xf0, 0x11, 0xf1, 0x11, 0xf2, 0x11, 0xf3,
+ 0x11, 0xf4, 0x11, 0xf5, 0x11, 0xf6, 0x11, 0xf7, 0x11, 0xf8, 0x11, 0xf9,
+ 0x11, 0xfa, 0x11, 0xfb, 0x11, 0xfc, 0x11, 0xfd, 0x11, 0xfe, 0x11, 0xff,
+ 0x12, 0x00, 0x12, 0x01, 0x12, 0x02, 0x12, 0x03, 0x12, 0x04, 0x12, 0x05,
+ 0x12, 0x06, 0x12, 0x07, 0x12, 0x08, 0x12, 0x09, 0x12, 0x0a, 0x12, 0x0b,
+ 0x12, 0x0c, 0x12, 0x0d, 0x12, 0x0e, 0x09, 0x73, 0x66, 0x74, 0x68, 0x79,
+ 0x70, 0x68, 0x65, 0x6e, 0x07, 0x41, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e,
+ 0x07, 0x61, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x06, 0x41, 0x62, 0x72,
+ 0x65, 0x76, 0x65, 0x06, 0x61, 0x62, 0x72, 0x65, 0x76, 0x65, 0x07, 0x41,
+ 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, 0x61, 0x6f, 0x67, 0x6f, 0x6e,
+ 0x65, 0x6b, 0x0b, 0x43, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c,
+ 0x65, 0x78, 0x0b, 0x63, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c,
+ 0x65, 0x78, 0x0a, 0x43, 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e,
+ 0x74, 0x0a, 0x63, 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74,
+ 0x06, 0x44, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x64, 0x63, 0x61, 0x72,
+ 0x6f, 0x6e, 0x06, 0x44, 0x63, 0x72, 0x6f, 0x61, 0x74, 0x07, 0x45, 0x6d,
+ 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x07, 0x65, 0x6d, 0x61, 0x63, 0x72, 0x6f,
+ 0x6e, 0x06, 0x45, 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, 0x65, 0x62, 0x72,
+ 0x65, 0x76, 0x65, 0x0a, 0x45, 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65,
+ 0x6e, 0x74, 0x0a, 0x65, 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e,
+ 0x74, 0x07, 0x45, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, 0x65, 0x6f,
+ 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x06, 0x45, 0x63, 0x61, 0x72, 0x6f, 0x6e,
+ 0x06, 0x65, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x0b, 0x47, 0x63, 0x69, 0x72,
+ 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b, 0x67, 0x63, 0x69, 0x72,
+ 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0a, 0x47, 0x64, 0x6f, 0x74,
+ 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0a, 0x67, 0x64, 0x6f, 0x74, 0x61,
+ 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x47, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
+ 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x67, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0b, 0x48, 0x63, 0x69, 0x72,
+ 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b, 0x68, 0x63, 0x69, 0x72,
+ 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x04, 0x48, 0x62, 0x61, 0x72,
+ 0x04, 0x68, 0x62, 0x61, 0x72, 0x06, 0x49, 0x74, 0x69, 0x6c, 0x64, 0x65,
+ 0x06, 0x69, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x07, 0x49, 0x6d, 0x61, 0x63,
+ 0x72, 0x6f, 0x6e, 0x07, 0x69, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x06,
+ 0x49, 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, 0x69, 0x62, 0x72, 0x65, 0x76,
+ 0x65, 0x07, 0x49, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x07, 0x69, 0x6f,
+ 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x02, 0x49, 0x4a, 0x02, 0x69, 0x6a, 0x0b,
+ 0x4a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b,
+ 0x6a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0c,
+ 0x4b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74,
+ 0x0c, 0x6b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e,
+ 0x74, 0x0c, 0x6b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x6c, 0x61, 0x6e, 0x64,
+ 0x69, 0x63, 0x06, 0x4c, 0x61, 0x63, 0x75, 0x74, 0x65, 0x06, 0x6c, 0x61,
+ 0x63, 0x75, 0x74, 0x65, 0x0c, 0x4c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61,
+ 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x6c, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
+ 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x4c, 0x63, 0x61, 0x72, 0x6f,
+ 0x6e, 0x06, 0x6c, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x04, 0x4c, 0x64, 0x6f,
+ 0x74, 0x04, 0x6c, 0x64, 0x6f, 0x74, 0x06, 0x4e, 0x61, 0x63, 0x75, 0x74,
+ 0x65, 0x06, 0x6e, 0x61, 0x63, 0x75, 0x74, 0x65, 0x0c, 0x4e, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x6e, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x4e,
+ 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x6e, 0x63, 0x61, 0x72, 0x6f, 0x6e,
+ 0x0b, 0x6e, 0x61, 0x70, 0x6f, 0x73, 0x74, 0x72, 0x6f, 0x70, 0x68, 0x65,
+ 0x03, 0x45, 0x6e, 0x67, 0x03, 0x65, 0x6e, 0x67, 0x07, 0x4f, 0x6d, 0x61,
+ 0x63, 0x72, 0x6f, 0x6e, 0x07, 0x6f, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e,
+ 0x06, 0x4f, 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, 0x6f, 0x62, 0x72, 0x65,
+ 0x76, 0x65, 0x0d, 0x4f, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d,
+ 0x6c, 0x61, 0x75, 0x74, 0x0d, 0x6f, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72,
+ 0x75, 0x6d, 0x6c, 0x61, 0x75, 0x74, 0x06, 0x52, 0x61, 0x63, 0x75, 0x74,
+ 0x65, 0x06, 0x72, 0x61, 0x63, 0x75, 0x74, 0x65, 0x0c, 0x52, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x72, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x06, 0x52,
+ 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x72, 0x63, 0x61, 0x72, 0x6f, 0x6e,
+ 0x06, 0x53, 0x61, 0x63, 0x75, 0x74, 0x65, 0x06, 0x73, 0x61, 0x63, 0x75,
+ 0x74, 0x65, 0x0b, 0x53, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c,
+ 0x65, 0x78, 0x0b, 0x73, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c,
+ 0x65, 0x78, 0x0c, 0x54, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63,
+ 0x65, 0x6e, 0x74, 0x0c, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63,
+ 0x63, 0x65, 0x6e, 0x74, 0x06, 0x54, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06,
+ 0x74, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x04, 0x54, 0x62, 0x61, 0x72, 0x04,
+ 0x74, 0x62, 0x61, 0x72, 0x06, 0x55, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x06,
+ 0x75, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x07, 0x55, 0x6d, 0x61, 0x63, 0x72,
+ 0x6f, 0x6e, 0x07, 0x75, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6e, 0x06, 0x55,
+ 0x62, 0x72, 0x65, 0x76, 0x65, 0x06, 0x75, 0x62, 0x72, 0x65, 0x76, 0x65,
+ 0x05, 0x55, 0x72, 0x69, 0x6e, 0x67, 0x05, 0x75, 0x72, 0x69, 0x6e, 0x67,
+ 0x0d, 0x55, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d, 0x6c, 0x61,
+ 0x75, 0x74, 0x0d, 0x75, 0x68, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75, 0x6d,
+ 0x6c, 0x61, 0x75, 0x74, 0x07, 0x55, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b,
+ 0x07, 0x75, 0x6f, 0x67, 0x6f, 0x6e, 0x65, 0x6b, 0x0b, 0x57, 0x63, 0x69,
+ 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b, 0x77, 0x63, 0x69,
+ 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b, 0x59, 0x63, 0x69,
+ 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x0b, 0x79, 0x63, 0x69,
+ 0x72, 0x63, 0x75, 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x06, 0x5a, 0x61, 0x63,
+ 0x75, 0x74, 0x65, 0x06, 0x7a, 0x61, 0x63, 0x75, 0x74, 0x65, 0x0a, 0x5a,
+ 0x64, 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x0a, 0x7a, 0x64,
+ 0x6f, 0x74, 0x61, 0x63, 0x63, 0x65, 0x6e, 0x74, 0x05, 0x6c, 0x6f, 0x6e,
+ 0x67, 0x73, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x38, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x38, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x39, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x39, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x39, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x39, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x39, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x39, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x39, 0x46, 0x05, 0x4f,
+ 0x68, 0x6f, 0x72, 0x6e, 0x05, 0x6f, 0x68, 0x6f, 0x72, 0x6e, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x41, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x41, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x41, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x41, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x41, 0x45, 0x05, 0x55, 0x68, 0x6f, 0x72, 0x6e,
+ 0x05, 0x75, 0x68, 0x6f, 0x72, 0x6e, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x42, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x42, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x42, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x42, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x42, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x43, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x43, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x43, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x43, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x43, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x43, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x43, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x43, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x43, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x44, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x44, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x44, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x44, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x31, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31,
+ 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x35, 0x06, 0x47,
+ 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x06, 0x67, 0x63, 0x61, 0x72, 0x6f, 0x6e,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x45, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x31, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x31, 0x46, 0x39,
+ 0x0a, 0x41, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x63, 0x75, 0x74, 0x65, 0x0a,
+ 0x61, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x63, 0x75, 0x74, 0x65, 0x07, 0x41,
+ 0x45, 0x61, 0x63, 0x75, 0x74, 0x65, 0x07, 0x61, 0x65, 0x61, 0x63, 0x75,
+ 0x74, 0x65, 0x0b, 0x4f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x61, 0x63, 0x75,
+ 0x74, 0x65, 0x0b, 0x6f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x61, 0x63, 0x75,
+ 0x74, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x30, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x32, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32,
+ 0x31, 0x37, 0x0c, 0x53, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63, 0x63,
+ 0x65, 0x6e, 0x74, 0x0c, 0x73, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x61, 0x63,
+ 0x63, 0x65, 0x6e, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x32, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x30, 0x32, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x36, 0x08, 0x64, 0x6f, 0x74,
+ 0x6c, 0x65, 0x73, 0x73, 0x6a, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x33, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x33, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x34, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x34, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x35,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x37, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x37, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x38, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x38,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x39, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x41, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x42, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x42,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x43, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x44,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x46,
+ 0x37, 0x09, 0x67, 0x72, 0x61, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x09,
+ 0x61, 0x63, 0x75, 0x74, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x30, 0x32, 0x09, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x63,
+ 0x6f, 0x6d, 0x62, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30,
+ 0x33, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x38, 0x0d, 0x68, 0x6f, 0x6f, 0x6b,
+ 0x61, 0x62, 0x6f, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x30, 0x33, 0x32, 0x32, 0x0c, 0x64, 0x6f, 0x74, 0x62, 0x65, 0x6c,
+ 0x6f, 0x77, 0x63, 0x6f, 0x6d, 0x62, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x32, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x33, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x33, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x33, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x33, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x33, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x34, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x35, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x35, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x35, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x35, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x36, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x37, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x37, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x37, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x37, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x37, 0x45, 0x05, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x0d, 0x64, 0x69, 0x65,
+ 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x0a, 0x41,
+ 0x6c, 0x70, 0x68, 0x61, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x09, 0x61, 0x6e,
+ 0x6f, 0x74, 0x65, 0x6c, 0x65, 0x69, 0x61, 0x0c, 0x45, 0x70, 0x73, 0x69,
+ 0x6c, 0x6f, 0x6e, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x08, 0x45, 0x74, 0x61,
+ 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x09, 0x49, 0x6f, 0x74, 0x61, 0x74, 0x6f,
+ 0x6e, 0x6f, 0x73, 0x0c, 0x4f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x74,
+ 0x6f, 0x6e, 0x6f, 0x73, 0x0c, 0x55, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e,
+ 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x0a, 0x4f, 0x6d, 0x65, 0x67, 0x61, 0x74,
+ 0x6f, 0x6e, 0x6f, 0x73, 0x11, 0x69, 0x6f, 0x74, 0x61, 0x64, 0x69, 0x65,
+ 0x72, 0x65, 0x73, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x05, 0x41,
+ 0x6c, 0x70, 0x68, 0x61, 0x04, 0x42, 0x65, 0x74, 0x61, 0x05, 0x47, 0x61,
+ 0x6d, 0x6d, 0x61, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x39, 0x34, 0x07,
+ 0x45, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x04, 0x5a, 0x65, 0x74, 0x61,
+ 0x03, 0x45, 0x74, 0x61, 0x05, 0x54, 0x68, 0x65, 0x74, 0x61, 0x04, 0x49,
+ 0x6f, 0x74, 0x61, 0x05, 0x4b, 0x61, 0x70, 0x70, 0x61, 0x06, 0x4c, 0x61,
+ 0x6d, 0x62, 0x64, 0x61, 0x02, 0x4d, 0x75, 0x02, 0x4e, 0x75, 0x02, 0x58,
+ 0x69, 0x07, 0x4f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x02, 0x50, 0x69,
+ 0x03, 0x52, 0x68, 0x6f, 0x05, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x03, 0x54,
+ 0x61, 0x75, 0x07, 0x55, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x03, 0x50,
+ 0x68, 0x69, 0x03, 0x43, 0x68, 0x69, 0x03, 0x50, 0x73, 0x69, 0x0c, 0x49,
+ 0x6f, 0x74, 0x61, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x0f,
+ 0x55, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x64, 0x69, 0x65, 0x72, 0x65,
+ 0x73, 0x69, 0x73, 0x0a, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x74, 0x6f, 0x6e,
+ 0x6f, 0x73, 0x0c, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x74, 0x6f,
+ 0x6e, 0x6f, 0x73, 0x08, 0x65, 0x74, 0x61, 0x74, 0x6f, 0x6e, 0x6f, 0x73,
+ 0x09, 0x69, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x14, 0x75,
+ 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73,
+ 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x6f, 0x73, 0x05, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x04, 0x62, 0x65, 0x74, 0x61, 0x05, 0x67, 0x61, 0x6d, 0x6d, 0x61,
+ 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c,
+ 0x6f, 0x6e, 0x04, 0x7a, 0x65, 0x74, 0x61, 0x03, 0x65, 0x74, 0x61, 0x05,
+ 0x74, 0x68, 0x65, 0x74, 0x61, 0x04, 0x69, 0x6f, 0x74, 0x61, 0x05, 0x6b,
+ 0x61, 0x70, 0x70, 0x61, 0x06, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x07,
+ 0x75, 0x6e, 0x69, 0x30, 0x33, 0x42, 0x43, 0x02, 0x6e, 0x75, 0x02, 0x78,
+ 0x69, 0x07, 0x6f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x03, 0x72, 0x68,
+ 0x6f, 0x06, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x31, 0x05, 0x73, 0x69, 0x67,
+ 0x6d, 0x61, 0x03, 0x74, 0x61, 0x75, 0x07, 0x75, 0x70, 0x73, 0x69, 0x6c,
+ 0x6f, 0x6e, 0x03, 0x70, 0x68, 0x69, 0x03, 0x63, 0x68, 0x69, 0x03, 0x70,
+ 0x73, 0x69, 0x05, 0x6f, 0x6d, 0x65, 0x67, 0x61, 0x0c, 0x69, 0x6f, 0x74,
+ 0x61, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x0f, 0x75, 0x70,
+ 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69,
+ 0x73, 0x0c, 0x6f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x6e,
+ 0x6f, 0x73, 0x0c, 0x75, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x74, 0x6f,
+ 0x6e, 0x6f, 0x73, 0x0a, 0x6f, 0x6d, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x6e,
+ 0x6f, 0x73, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x43, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x44, 0x30, 0x06, 0x74, 0x68, 0x65, 0x74, 0x61,
+ 0x31, 0x08, 0x55, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x44, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x44, 0x34, 0x04, 0x70, 0x68, 0x69, 0x31, 0x06, 0x6f, 0x6d, 0x65, 0x67,
+ 0x61, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x44, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x44, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x44, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x44, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x44, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x44, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x45, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x45, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x45, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x45, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x45, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x45, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x46, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x46, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x46, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x46, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x46, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33,
+ 0x46, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x46, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x33, 0x46, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x30, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x30, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x30, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x30, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x30, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x31, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x32, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x32, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x32, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x32, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x32, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x33, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x33, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x33, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x33, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x33, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x34, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x35, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x35, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x35, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x35, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x35, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x35, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x35, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x36, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x36, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x36, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x36, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x36, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x39, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x39, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x39, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x39, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x39, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x39, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x41, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x41, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x41, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x41, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x42, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x42, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x42, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x42, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x42, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x43, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x43, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x43, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x43, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x43, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x43, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x43, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x43, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x43, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x44, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x44, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x44, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x44, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x45, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x45, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x45, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x45, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x45, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x46, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x46, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x46, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x46, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x46, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x34, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x46, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x30, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x31, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x31, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x31, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x31, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x31, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x32, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35,
+ 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x35, 0x32, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x30, 0x35, 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x30, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x30, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x30, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x30, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x30, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x31, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x31, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x31, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x31, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x31, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x32, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x32, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x32, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x32, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x32, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x33, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x33, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x33, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x33, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x33, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x33, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x34, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x34, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x34, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x34, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x34, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x34, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x35, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x35, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x35, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x35, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x35, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x35, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x35, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x36, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x36, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x36, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x36, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x37, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x38, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x39, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x41, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x41, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x41, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x41, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x42, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x42, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x42, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x42, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x42, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x43, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x43, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44,
+ 0x43, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x44, 0x43, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x44, 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x30, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x30, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x30, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x30, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x30, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x31, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x32, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x32, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x32, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x32, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x32, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x33, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x33, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x33, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x33, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x33, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x34, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x35, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x35, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x35, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x35, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x35, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x35, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x35, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x36, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x36, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x36, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x36, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x36, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x37, 0x46, 0x06, 0x57,
+ 0x67, 0x72, 0x61, 0x76, 0x65, 0x06, 0x77, 0x67, 0x72, 0x61, 0x76, 0x65,
+ 0x06, 0x57, 0x61, 0x63, 0x75, 0x74, 0x65, 0x06, 0x77, 0x61, 0x63, 0x75,
+ 0x74, 0x65, 0x09, 0x57, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73,
+ 0x09, 0x77, 0x64, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x38, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x38, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x38, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x38, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x39, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x39, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x39, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x39, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x39, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x39, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x41, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x41, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x41, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x41, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x42, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x42, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x42, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x42, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x42, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x43, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x43, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x43, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x43, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x44, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x44, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x44, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x44, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x45, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x45, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x45, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x45, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x45, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x31, 0x45, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45,
+ 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x31, 0x06, 0x59,
+ 0x67, 0x72, 0x61, 0x76, 0x65, 0x06, 0x79, 0x67, 0x72, 0x61, 0x76, 0x65,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x45, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x45, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x45, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x30, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x31, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x34,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x36, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x37, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x38, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x38, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x39, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x34,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x43, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x44, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x44, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x31, 0x46, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x31, 0x46, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x34,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x31, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x31, 0x31, 0x0a, 0x66, 0x69, 0x67,
+ 0x75, 0x72, 0x65, 0x64, 0x61, 0x73, 0x68, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x30, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x31, 0x36, 0x0d,
+ 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x64, 0x62,
+ 0x6c, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x65, 0x76, 0x65, 0x72,
+ 0x73, 0x65, 0x64, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x31, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32, 0x33, 0x0e, 0x6f, 0x6e, 0x65, 0x64,
+ 0x6f, 0x74, 0x65, 0x6e, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0e, 0x74,
+ 0x77, 0x6f, 0x64, 0x6f, 0x74, 0x65, 0x6e, 0x6c, 0x65, 0x61, 0x64, 0x65,
+ 0x72, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x32,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x31, 0x06, 0x6d, 0x69,
+ 0x6e, 0x75, 0x74, 0x65, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x30, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x30, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x42, 0x09,
+ 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x64, 0x62, 0x6c, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x33, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x34, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x35, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x36, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x37,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x38,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x39, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x41, 0x30, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x6e, 0x6d,
+ 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x30, 0x41, 0x32, 0x04, 0x6c, 0x69, 0x72, 0x61, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x30, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x41, 0x36,
+ 0x06, 0x70, 0x65, 0x73, 0x65, 0x74, 0x61, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x30, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x41, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x30, 0x41, 0x41, 0x04, 0x64, 0x6f, 0x6e, 0x67,
+ 0x04, 0x45, 0x75, 0x72, 0x6f, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x41,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x41, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x42, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x44,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x44, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x44, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x44,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x44, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x30, 0x44, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x30, 0x45,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x31, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x31, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x31, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x31, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x31, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x30,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x30, 0x08, 0x49, 0x66,
+ 0x72, 0x61, 0x6b, 0x74, 0x75, 0x72, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x31, 0x37, 0x0b, 0x77, 0x65, 0x69, 0x65, 0x72,
+ 0x73, 0x74, 0x72, 0x61, 0x73, 0x73, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x31, 0x42, 0x08, 0x52, 0x66, 0x72, 0x61, 0x6b,
+ 0x74, 0x75, 0x72, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x44, 0x0c,
+ 0x70, 0x72, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x32, 0x44, 0x09, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74,
+ 0x65, 0x64, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x32, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x33, 0x34, 0x05, 0x61, 0x6c, 0x65, 0x70, 0x68, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x31, 0x35, 0x32, 0x08, 0x6f, 0x6e, 0x65, 0x74, 0x68, 0x69, 0x72,
+ 0x64, 0x09, 0x74, 0x77, 0x6f, 0x74, 0x68, 0x69, 0x72, 0x64, 0x73, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x41, 0x09,
+ 0x6f, 0x6e, 0x65, 0x65, 0x69, 0x67, 0x68, 0x74, 0x68, 0x0c, 0x74, 0x68,
+ 0x72, 0x65, 0x65, 0x65, 0x69, 0x67, 0x68, 0x74, 0x68, 0x73, 0x0b, 0x66,
+ 0x69, 0x76, 0x65, 0x65, 0x69, 0x67, 0x68, 0x74, 0x68, 0x73, 0x0c, 0x73,
+ 0x65, 0x76, 0x65, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x74, 0x68, 0x73, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x35, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x37, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x38, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x38, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x38, 0x39, 0x09, 0x61, 0x72, 0x72, 0x6f,
+ 0x77, 0x6c, 0x65, 0x66, 0x74, 0x07, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x75,
+ 0x70, 0x0a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x72, 0x69, 0x67, 0x68, 0x74,
+ 0x09, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x09, 0x61,
+ 0x72, 0x72, 0x6f, 0x77, 0x62, 0x6f, 0x74, 0x68, 0x09, 0x61, 0x72, 0x72,
+ 0x6f, 0x77, 0x75, 0x70, 0x64, 0x6e, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x39, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x39, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x39, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x41, 0x37, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77,
+ 0x75, 0x70, 0x64, 0x6e, 0x62, 0x73, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x31, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x34, 0x0e, 0x63, 0x61, 0x72, 0x72,
+ 0x69, 0x61, 0x67, 0x65, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x42, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x42, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x42, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x43, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x43, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x43, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x43, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x43, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x43, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x43, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x43, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x43, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x43, 0x46, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x62, 0x6c, 0x6c,
+ 0x65, 0x66, 0x74, 0x0a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x62, 0x6c,
+ 0x75, 0x70, 0x0d, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x62, 0x6c, 0x72,
+ 0x69, 0x67, 0x68, 0x74, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x62,
+ 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64,
+ 0x62, 0x6c, 0x62, 0x6f, 0x74, 0x68, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x44, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x44, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x44, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x44, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x44, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x45, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x45, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x45, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x45, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x45, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x46, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x46, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x46, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x46, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x46, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x31, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x31,
+ 0x46, 0x46, 0x09, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x30, 0x31, 0x0b, 0x65, 0x78, 0x69,
+ 0x73, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x32, 0x30, 0x34, 0x08, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x73, 0x65,
+ 0x74, 0x08, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x07, 0x65,
+ 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x6c,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x30,
+ 0x41, 0x08, 0x73, 0x75, 0x63, 0x68, 0x74, 0x68, 0x61, 0x74, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x32, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32,
+ 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x30, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x32, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32,
+ 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x31, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x32, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32,
+ 0x31, 0x36, 0x0c, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x6d,
+ 0x61, 0x74, 0x68, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x31, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x31, 0x43, 0x0c,
+ 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x0a, 0x6f, 0x72, 0x74, 0x68, 0x6f, 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x05,
+ 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x32, 0x36, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61,
+ 0x6c, 0x61, 0x6e, 0x64, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c,
+ 0x6f, 0x72, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x32, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33,
+ 0x33, 0x09, 0x74, 0x68, 0x65, 0x72, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x42, 0x07, 0x73, 0x69, 0x6d, 0x69,
+ 0x6c, 0x61, 0x72, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x34, 0x09, 0x63, 0x6f, 0x6e, 0x67,
+ 0x72, 0x75, 0x65, 0x6e, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x34, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x34, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x35,
+ 0x46, 0x0b, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x63,
+ 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x36,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x39, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x37, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38,
+ 0x31, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x75, 0x62, 0x73,
+ 0x65, 0x74, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x75, 0x70,
+ 0x65, 0x72, 0x73, 0x65, 0x74, 0x09, 0x6e, 0x6f, 0x74, 0x73, 0x75, 0x62,
+ 0x73, 0x65, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x35, 0x0c,
+ 0x72, 0x65, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74,
+ 0x0e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x70, 0x65, 0x72,
+ 0x73, 0x65, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39, 0x34, 0x0a,
+ 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x70, 0x6c, 0x75, 0x73, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x32, 0x39, 0x36, 0x0e, 0x63, 0x69, 0x72, 0x63, 0x6c,
+ 0x65, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x39,
+ 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x32, 0x41, 0x34, 0x0d, 0x70, 0x65, 0x72, 0x70, 0x65, 0x6e,
+ 0x64, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x42, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x42, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x43, 0x34, 0x07, 0x64, 0x6f, 0x74, 0x6d, 0x61, 0x74, 0x68, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x43, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x43, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x43, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x44, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x45, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x45, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x45, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x45, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x45, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x45, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x46, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x32, 0x46, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x32, 0x46, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x33, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30, 0x31, 0x05,
+ 0x68, 0x6f, 0x75, 0x73, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x30,
+ 0x46, 0x0d, 0x72, 0x65, 0x76, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c,
+ 0x6e, 0x6f, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x31, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x33, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x33, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x31, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x33, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x33, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x31, 0x46, 0x0a,
+ 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x74, 0x70, 0x0a, 0x69,
+ 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x62, 0x74, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x32,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x32, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x32,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x32, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x37,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x37, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x37,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x37, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x39,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x39, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x39,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x39, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41, 0x34, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41, 0x37, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41,
+ 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41, 0x41, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41,
+ 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x41, 0x44, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x43,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x43, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x33, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x45,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x33, 0x45, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x34, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x32,
+ 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x34, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36,
+ 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x34, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36,
+ 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36, 0x36, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x34, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36,
+ 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x34, 0x36, 0x39, 0x08, 0x53, 0x46,
+ 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x30, 0x31, 0x08, 0x53, 0x46, 0x31, 0x31, 0x30, 0x30, 0x30, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x42, 0x08,
+ 0x53, 0x46, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x30, 0x46, 0x08, 0x53, 0x46, 0x30,
+ 0x33, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x31, 0x33, 0x08, 0x53, 0x46, 0x30, 0x32, 0x30, 0x30,
+ 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x31, 0x37, 0x08, 0x53, 0x46, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x42, 0x08,
+ 0x53, 0x46, 0x30, 0x38, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x32, 0x33, 0x08, 0x53, 0x46, 0x30, 0x39, 0x30, 0x30, 0x30,
+ 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x42, 0x08, 0x53, 0x46,
+ 0x30, 0x36, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x32, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x33, 0x33, 0x08, 0x53, 0x46, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x42, 0x08, 0x53, 0x46, 0x30, 0x35,
+ 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x34, 0x46,
+ 0x08, 0x53, 0x46, 0x34, 0x33, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x32, 0x34, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x35, 0x31, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x35, 0x32, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x33, 0x39, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x32, 0x32, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x32, 0x31, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x32, 0x35, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x34, 0x39, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x33, 0x38, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x32, 0x38, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x32, 0x37, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x32, 0x36, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x33, 0x36, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x33, 0x37, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x34, 0x32, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x31, 0x39, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x32, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x34, 0x37, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x34, 0x38, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x34, 0x31, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x34, 0x35, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x34, 0x36, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46,
+ 0x34, 0x30, 0x30, 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x35, 0x34, 0x30,
+ 0x30, 0x30, 0x30, 0x08, 0x53, 0x46, 0x35, 0x33, 0x30, 0x30, 0x30, 0x30,
+ 0x08, 0x53, 0x46, 0x34, 0x34, 0x30, 0x30, 0x30, 0x30, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x36,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x36, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x37, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x37, 0x46, 0x07, 0x75, 0x70, 0x62, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x31, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38,
+ 0x33, 0x07, 0x64, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38,
+ 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x37, 0x05, 0x62, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x38, 0x42, 0x07, 0x6c, 0x66, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x38, 0x46, 0x07,
+ 0x72, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x07, 0x6c, 0x74, 0x73, 0x68,
+ 0x61, 0x64, 0x65, 0x05, 0x73, 0x68, 0x61, 0x64, 0x65, 0x07, 0x64, 0x6b,
+ 0x73, 0x68, 0x61, 0x64, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39,
+ 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39, 0x38, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39,
+ 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39, 0x42, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39,
+ 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x39, 0x45, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x39, 0x46, 0x09, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64,
+ 0x62, 0x6f, 0x78, 0x06, 0x48, 0x32, 0x32, 0x30, 0x37, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x41, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x41, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x41, 0x39, 0x06, 0x48, 0x31, 0x38, 0x35, 0x34, 0x33, 0x06, 0x48, 0x31,
+ 0x38, 0x35, 0x35, 0x31, 0x0a, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x72,
+ 0x65, 0x63, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x41, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x31, 0x07, 0x74, 0x72, 0x69, 0x61,
+ 0x67, 0x75, 0x70, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x39, 0x07,
+ 0x74, 0x72, 0x69, 0x61, 0x67, 0x72, 0x74, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x42, 0x42, 0x07, 0x74, 0x72, 0x69, 0x61, 0x67, 0x64, 0x6e, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x42, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x33, 0x07, 0x74, 0x72, 0x69, 0x61,
+ 0x67, 0x6c, 0x66, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x35, 0x43, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x39, 0x06, 0x63, 0x69, 0x72, 0x63,
+ 0x6c, 0x65, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x43, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x35, 0x43, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35,
+ 0x43, 0x45, 0x06, 0x48, 0x31, 0x38, 0x35, 0x33, 0x33, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x44, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x44, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44, 0x35, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x44, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44,
+ 0x37, 0x09, 0x69, 0x6e, 0x76, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x09,
+ 0x69, 0x6e, 0x76, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x44, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44,
+ 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44, 0x43, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x44, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44,
+ 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x44, 0x46, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45,
+ 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x32, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x35, 0x45, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45,
+ 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x35, 0x0a, 0x6f, 0x70,
+ 0x65, 0x6e, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x45, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x34,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x35, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x35, 0x46, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x39,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x43,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x30, 0x46,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x32,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x35,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x38,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x42,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x45,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x31,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x34,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x41,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x44,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x30,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x33,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x36,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x39,
+ 0x09, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x66, 0x61, 0x63, 0x65, 0x0c, 0x69,
+ 0x6e, 0x76, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x66, 0x61, 0x63, 0x65, 0x03,
+ 0x73, 0x75, 0x6e, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x33, 0x46, 0x06, 0x66, 0x65, 0x6d, 0x61, 0x6c, 0x65, 0x07, 0x75,
+ 0x6e, 0x69, 0x32, 0x36, 0x34, 0x31, 0x04, 0x6d, 0x61, 0x6c, 0x65, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x34, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x34, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x34, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x34, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x35, 0x46, 0x05, 0x73, 0x70, 0x61, 0x64, 0x65, 0x07, 0x75, 0x6e,
+ 0x69, 0x32, 0x36, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x36,
+ 0x32, 0x04, 0x63, 0x6c, 0x75, 0x62, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36,
+ 0x36, 0x34, 0x05, 0x68, 0x65, 0x61, 0x72, 0x74, 0x07, 0x64, 0x69, 0x61,
+ 0x6d, 0x6f, 0x6e, 0x64, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x36, 0x37,
+ 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69,
+ 0x32, 0x36, 0x36, 0x39, 0x0b, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c,
+ 0x6e, 0x6f, 0x74, 0x65, 0x0e, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c,
+ 0x6e, 0x6f, 0x74, 0x65, 0x64, 0x62, 0x6c, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x36, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x37, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x41, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x42, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x43, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x36, 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x36, 0x45, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x31, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x32, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x33, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x34, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x34, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x36, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x37, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x41, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x42, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x43, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x45, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x45, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x45, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x45, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x45, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x46, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x46, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x46, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x37, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x37, 0x46, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x32, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x33, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x34, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x35, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x35, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x35, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x35, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x35, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x35, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x37, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x37, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x38, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x38, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x39, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x39, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x41, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x42, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x42, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x42, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x42, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x42, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x42, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x43, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x43, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x43, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x43, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x43, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x44, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x44, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x45, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x45, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x45, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x45, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x45, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x45, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x46, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x46, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x46, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x38, 0x46, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x38, 0x46, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x30, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x34, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x38, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x43, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x43, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x44, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x44, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x44, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x44, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x44, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x44, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x39, 0x45, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x39, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x39, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x30, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x30, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x30, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x36, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x36, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x37, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x37, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x38, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x39, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x39, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x39, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x39, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x39, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x39, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x41, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x41, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x41, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x42, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x42, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x42, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x42, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x41, 0x42, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x41, 0x46, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x41, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x31, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x32, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x32, 0x33, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x42, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x42, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x42, 0x35, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x36, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x38, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x36, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x36, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x36, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x37, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x37, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x37, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x37, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x42, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x32,
+ 0x43, 0x37, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x45, 0x07,
+ 0x75, 0x6e, 0x69, 0x32, 0x43, 0x37, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x30, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x30, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x30, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x30, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x30, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x30, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x31, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x31, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x35, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x31, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x32, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x32, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x44, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x33, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x34, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x34, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x34, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x34, 0x46, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x35, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x35, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x35, 0x32, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x35, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x35, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x35, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x36, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x36, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x36, 0x36, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x36, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x38, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x38, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x39, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x38, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x38, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x38, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x39, 0x30, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x39, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x41, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x31, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x41, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x34, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x41, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x37, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x41, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x41, 0x41, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x46, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x46, 0x43, 0x07,
+ 0x75, 0x6e, 0x69, 0x41, 0x37, 0x46, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x41,
+ 0x37, 0x46, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x41, 0x37, 0x46, 0x46, 0x09,
+ 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x35, 0x2e, 0x35, 0x09, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x36, 0x2e, 0x35, 0x09, 0x75, 0x6e, 0x69, 0x30,
+ 0x32, 0x45, 0x37, 0x2e, 0x35, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x38, 0x2e, 0x35, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x39, 0x2e,
+ 0x35, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x35, 0x2e, 0x34, 0x09,
+ 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x36, 0x2e, 0x34, 0x09, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x37, 0x2e, 0x34, 0x09, 0x75, 0x6e, 0x69, 0x30,
+ 0x32, 0x45, 0x38, 0x2e, 0x34, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x39, 0x2e, 0x34, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x35, 0x2e,
+ 0x33, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x36, 0x2e, 0x33, 0x09,
+ 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x37, 0x2e, 0x33, 0x09, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x38, 0x2e, 0x33, 0x09, 0x75, 0x6e, 0x69, 0x30,
+ 0x32, 0x45, 0x39, 0x2e, 0x33, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x35, 0x2e, 0x32, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x36, 0x2e,
+ 0x32, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x37, 0x2e, 0x32, 0x09,
+ 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x38, 0x2e, 0x32, 0x09, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x45, 0x39, 0x2e, 0x32, 0x09, 0x75, 0x6e, 0x69, 0x30,
+ 0x32, 0x45, 0x35, 0x2e, 0x31, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45,
+ 0x36, 0x2e, 0x31, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x37, 0x2e,
+ 0x31, 0x09, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x38, 0x2e, 0x31, 0x09,
+ 0x75, 0x6e, 0x69, 0x30, 0x32, 0x45, 0x39, 0x2e, 0x31, 0x04, 0x73, 0x74,
+ 0x65, 0x6d, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x30, 0x30, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x30, 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x30,
+ 0x30, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x30, 0x30, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x30, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x30, 0x32, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x30, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x30, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x30, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x30, 0x38, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x30, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x30, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x30, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x30, 0x45, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x30, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x31, 0x31, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x31, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x31, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x31, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x31, 0x37, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x31, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x31, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x31, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x31, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x31, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x31, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x32, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x32, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x32, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x32, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x32, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x32, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x32, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x32, 0x41, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x32, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x32, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x32, 0x44, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x32, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x32, 0x46, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x33, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x33, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x33, 0x34, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x33, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x36, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x33, 0x37, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x33, 0x38, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x39, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x33, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x33, 0x42, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x43, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x33, 0x44, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x33, 0x45, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34, 0x33, 0x46, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x34, 0x34, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x34,
+ 0x34, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x36, 0x43, 0x35, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x42, 0x30, 0x30, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x42,
+ 0x30, 0x33, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x42, 0x30, 0x34, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x42, 0x30, 0x35, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x42,
+ 0x30, 0x36, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x45, 0x32, 0x30, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x45, 0x32, 0x31, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x45,
+ 0x32, 0x32, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x45, 0x32, 0x33, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x46, 0x46, 0x39, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x46,
+ 0x46, 0x41, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x46, 0x46, 0x42, 0x07, 0x75,
+ 0x6e, 0x69, 0x46, 0x46, 0x46, 0x43, 0x07, 0x75, 0x6e, 0x69, 0x46, 0x46,
+ 0x46, 0x44, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x30, 0x06, 0x75, 0x31,
+ 0x30, 0x33, 0x30, 0x31, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x32, 0x06,
+ 0x75, 0x31, 0x30, 0x33, 0x30, 0x33, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30,
+ 0x34, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x35, 0x06, 0x75, 0x31, 0x30,
+ 0x33, 0x30, 0x36, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x37, 0x06, 0x75,
+ 0x31, 0x30, 0x33, 0x30, 0x38, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x39,
+ 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x41, 0x06, 0x75, 0x31, 0x30, 0x33,
+ 0x30, 0x42, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x43, 0x06, 0x75, 0x31,
+ 0x30, 0x33, 0x30, 0x44, 0x06, 0x75, 0x31, 0x30, 0x33, 0x30, 0x45, 0x06,
+ 0x75, 0x31, 0x30, 0x33, 0x30, 0x46, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31,
+ 0x30, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x31, 0x06, 0x75, 0x31, 0x30,
+ 0x33, 0x31, 0x32, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x33, 0x06, 0x75,
+ 0x31, 0x30, 0x33, 0x31, 0x34, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x35,
+ 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x36, 0x06, 0x75, 0x31, 0x30, 0x33,
+ 0x31, 0x37, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x38, 0x06, 0x75, 0x31,
+ 0x30, 0x33, 0x31, 0x39, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x41, 0x06,
+ 0x75, 0x31, 0x30, 0x33, 0x31, 0x42, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31,
+ 0x43, 0x06, 0x75, 0x31, 0x30, 0x33, 0x31, 0x44, 0x06, 0x75, 0x31, 0x30,
+ 0x33, 0x31, 0x45, 0x06, 0x75, 0x31, 0x30, 0x33, 0x32, 0x30, 0x06, 0x75,
+ 0x31, 0x30, 0x33, 0x32, 0x31, 0x06, 0x75, 0x31, 0x30, 0x33, 0x32, 0x32,
+ 0x06, 0x75, 0x31, 0x30, 0x33, 0x32, 0x33, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x30, 0x30, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x30, 0x32, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x30, 0x34, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30,
+ 0x35, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x36, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x30, 0x37, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x38, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x30, 0x39, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x41,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x42, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x30, 0x43, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x44, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x30, 0x45, 0x06, 0x75, 0x31, 0x44, 0x33, 0x30, 0x46, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x31, 0x30, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31,
+ 0x31, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x32, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x31, 0x33, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x34, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x31, 0x35, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x36,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x37, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x31, 0x38, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x39, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x31, 0x41, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x42, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x31, 0x43, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31,
+ 0x44, 0x06, 0x75, 0x31, 0x44, 0x33, 0x31, 0x45, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x31, 0x46, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x30, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x32, 0x31, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x32,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x33, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x32, 0x34, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x35, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x32, 0x36, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x37, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x32, 0x38, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32,
+ 0x39, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x41, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x32, 0x42, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x43, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x32, 0x44, 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x45,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x32, 0x46, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x33, 0x30, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x33, 0x32, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x33, 0x34, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33,
+ 0x35, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x36, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x33, 0x37, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x38, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x33, 0x39, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x41,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x42, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x33, 0x43, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x44, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x33, 0x45, 0x06, 0x75, 0x31, 0x44, 0x33, 0x33, 0x46, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x34, 0x30, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34,
+ 0x31, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x32, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x34, 0x33, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x34, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x34, 0x35, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x36,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x37, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x34, 0x38, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x39, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x34, 0x41, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x42, 0x06,
+ 0x75, 0x31, 0x44, 0x33, 0x34, 0x43, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34,
+ 0x44, 0x06, 0x75, 0x31, 0x44, 0x33, 0x34, 0x45, 0x06, 0x75, 0x31, 0x44,
+ 0x33, 0x34, 0x46, 0x06, 0x75, 0x31, 0x44, 0x33, 0x35, 0x30, 0x06, 0x75,
+ 0x31, 0x44, 0x33, 0x35, 0x31, 0x06, 0x75, 0x31, 0x44, 0x33, 0x35, 0x32,
+ 0x06, 0x75, 0x31, 0x44, 0x33, 0x35, 0x33, 0x06, 0x75, 0x31, 0x44, 0x33,
+ 0x35, 0x34, 0x06, 0x75, 0x31, 0x44, 0x33, 0x35, 0x35, 0x06, 0x75, 0x31,
+ 0x44, 0x33, 0x35, 0x36, 0x06, 0x75, 0x31, 0x44, 0x35, 0x33, 0x38, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x33, 0x39, 0x06, 0x75, 0x31, 0x44, 0x35, 0x33,
+ 0x42, 0x06, 0x75, 0x31, 0x44, 0x35, 0x33, 0x43, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x33, 0x44, 0x06, 0x75, 0x31, 0x44, 0x35, 0x33, 0x45, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x34, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x31,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x32, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x34, 0x33, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x34, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x34, 0x36, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x41, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x34, 0x42, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34,
+ 0x43, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x44, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x34, 0x45, 0x06, 0x75, 0x31, 0x44, 0x35, 0x34, 0x46, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x35, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x32,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x33, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x35, 0x34, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x35, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x35, 0x36, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x37, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x35, 0x38, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35,
+ 0x39, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x41, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x35, 0x42, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x43, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x35, 0x44, 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x45,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x35, 0x46, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x36, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x36, 0x32, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x36, 0x34, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36,
+ 0x35, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x36, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x36, 0x37, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x38, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x36, 0x39, 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x41,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x36, 0x42, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x41, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x41, 0x32, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x41, 0x34, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41,
+ 0x35, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x36, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x41, 0x37, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x38, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x41, 0x39, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x41,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x42, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x41, 0x43, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x44, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x41, 0x45, 0x06, 0x75, 0x31, 0x44, 0x35, 0x41, 0x46, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x42, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42,
+ 0x31, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x32, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x42, 0x33, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x34, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x42, 0x35, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x36,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x37, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x42, 0x38, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x39, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x42, 0x41, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x42, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x42, 0x43, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42,
+ 0x44, 0x06, 0x75, 0x31, 0x44, 0x35, 0x42, 0x45, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x42, 0x46, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x30, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x43, 0x31, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x32,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x33, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x43, 0x34, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x35, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x43, 0x36, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x37, 0x06,
+ 0x75, 0x31, 0x44, 0x35, 0x43, 0x38, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43,
+ 0x39, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x41, 0x06, 0x75, 0x31, 0x44,
+ 0x35, 0x43, 0x42, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x43, 0x06, 0x75,
+ 0x31, 0x44, 0x35, 0x43, 0x44, 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x45,
+ 0x06, 0x75, 0x31, 0x44, 0x35, 0x43, 0x46, 0x06, 0x75, 0x31, 0x44, 0x35,
+ 0x44, 0x30, 0x06, 0x75, 0x31, 0x44, 0x35, 0x44, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x35, 0x44, 0x32, 0x06, 0x75, 0x31, 0x44, 0x35, 0x44, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x37, 0x44, 0x38, 0x06, 0x75, 0x31, 0x44, 0x37, 0x44,
+ 0x39, 0x06, 0x75, 0x31, 0x44, 0x37, 0x44, 0x41, 0x06, 0x75, 0x31, 0x44,
+ 0x37, 0x44, 0x42, 0x06, 0x75, 0x31, 0x44, 0x37, 0x44, 0x43, 0x06, 0x75,
+ 0x31, 0x44, 0x37, 0x44, 0x44, 0x06, 0x75, 0x31, 0x44, 0x37, 0x44, 0x45,
+ 0x06, 0x75, 0x31, 0x44, 0x37, 0x44, 0x46, 0x06, 0x75, 0x31, 0x44, 0x37,
+ 0x45, 0x30, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x31, 0x06, 0x75, 0x31,
+ 0x44, 0x37, 0x45, 0x32, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x33, 0x06,
+ 0x75, 0x31, 0x44, 0x37, 0x45, 0x34, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45,
+ 0x35, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x36, 0x06, 0x75, 0x31, 0x44,
+ 0x37, 0x45, 0x37, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x38, 0x06, 0x75,
+ 0x31, 0x44, 0x37, 0x45, 0x39, 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x41,
+ 0x06, 0x75, 0x31, 0x44, 0x37, 0x45, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x33, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x31, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x33, 0x32, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x33, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x33, 0x34, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33,
+ 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x36, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x33, 0x37, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x38, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x33, 0x39, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x41,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x33, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x44, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x33, 0x45, 0x06, 0x75, 0x31, 0x46, 0x30, 0x33, 0x46, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x34, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34,
+ 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x32, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x34, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x34, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x34, 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x36,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x37, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x34, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x39, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x34, 0x41, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x42, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x34, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34,
+ 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x34, 0x45, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x34, 0x46, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x30, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x35, 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x32,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x35, 0x34, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x35, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x35, 0x36, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x37, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x35, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35,
+ 0x39, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x41, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x35, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x43, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x35, 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x45,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x35, 0x46, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x36, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x31, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x36, 0x32, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x33, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x36, 0x34, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36,
+ 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x36, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x36, 0x37, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x38, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x36, 0x39, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x41,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x36, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x44, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x36, 0x45, 0x06, 0x75, 0x31, 0x46, 0x30, 0x36, 0x46, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x37, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37,
+ 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x32, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x37, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x34, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x37, 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x36,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x37, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x37, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x39, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x37, 0x41, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x42, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x37, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37,
+ 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x37, 0x45, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x37, 0x46, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x30, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x38, 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x32,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x38, 0x34, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x35, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x38, 0x36, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x37, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x38, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38,
+ 0x39, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x41, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x38, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x43, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x38, 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x45,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x38, 0x46, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x39, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x39, 0x31, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x39, 0x32, 0x06, 0x75, 0x31, 0x46, 0x30, 0x39, 0x33, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x41, 0x30, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41,
+ 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x32, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x41, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x34, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x41, 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x36,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x37, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x41, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x39, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x41, 0x41, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x42, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x41, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41,
+ 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x41, 0x45, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x42, 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x32, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x42, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x34,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x35, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x42, 0x36, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x37, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x42, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x39, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x42, 0x41, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42,
+ 0x42, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x43, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x42, 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x42, 0x45, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x43, 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x32,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x43, 0x34, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x35, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x43, 0x36, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x37, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x43, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43,
+ 0x39, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x41, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x43, 0x42, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x43, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x43, 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x45,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x43, 0x46, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x44, 0x31, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x32, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x44, 0x33, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x34, 0x06,
+ 0x75, 0x31, 0x46, 0x30, 0x44, 0x35, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44,
+ 0x36, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x37, 0x06, 0x75, 0x31, 0x46,
+ 0x30, 0x44, 0x38, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x39, 0x06, 0x75,
+ 0x31, 0x46, 0x30, 0x44, 0x41, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x42,
+ 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x43, 0x06, 0x75, 0x31, 0x46, 0x30,
+ 0x44, 0x44, 0x06, 0x75, 0x31, 0x46, 0x30, 0x44, 0x45, 0x06, 0x75, 0x31,
+ 0x46, 0x30, 0x44, 0x46, 0x06, 0x75, 0x31, 0x46, 0x34, 0x32, 0x44, 0x06,
+ 0x75, 0x31, 0x46, 0x34, 0x32, 0x45, 0x06, 0x75, 0x31, 0x46, 0x34, 0x33,
+ 0x31, 0x06, 0x75, 0x31, 0x46, 0x34, 0x33, 0x35, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x30, 0x30, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x31, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x30, 0x32, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x33,
+ 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x34, 0x06, 0x75, 0x31, 0x46, 0x36,
+ 0x30, 0x35, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x36, 0x06, 0x75, 0x31,
+ 0x46, 0x36, 0x30, 0x37, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x38, 0x06,
+ 0x75, 0x31, 0x46, 0x36, 0x30, 0x39, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30,
+ 0x41, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x42, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x30, 0x43, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x44, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x30, 0x45, 0x06, 0x75, 0x31, 0x46, 0x36, 0x30, 0x46,
+ 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x30, 0x06, 0x75, 0x31, 0x46, 0x36,
+ 0x31, 0x31, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x32, 0x06, 0x75, 0x31,
+ 0x46, 0x36, 0x31, 0x33, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x34, 0x06,
+ 0x75, 0x31, 0x46, 0x36, 0x31, 0x35, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31,
+ 0x36, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x37, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x31, 0x38, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x39, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x31, 0x41, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x42,
+ 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x43, 0x06, 0x75, 0x31, 0x46, 0x36,
+ 0x31, 0x44, 0x06, 0x75, 0x31, 0x46, 0x36, 0x31, 0x45, 0x06, 0x75, 0x31,
+ 0x46, 0x36, 0x31, 0x46, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x30, 0x06,
+ 0x75, 0x31, 0x46, 0x36, 0x32, 0x31, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32,
+ 0x32, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x33, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x32, 0x35, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x36, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x32, 0x37, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x38,
+ 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x39, 0x06, 0x75, 0x31, 0x46, 0x36,
+ 0x32, 0x41, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x42, 0x06, 0x75, 0x31,
+ 0x46, 0x36, 0x32, 0x44, 0x06, 0x75, 0x31, 0x46, 0x36, 0x32, 0x45, 0x06,
+ 0x75, 0x31, 0x46, 0x36, 0x32, 0x46, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33,
+ 0x30, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x31, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x33, 0x32, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x33, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x33, 0x34, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x35,
+ 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x36, 0x06, 0x75, 0x31, 0x46, 0x36,
+ 0x33, 0x37, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x38, 0x06, 0x75, 0x31,
+ 0x46, 0x36, 0x33, 0x39, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x41, 0x06,
+ 0x75, 0x31, 0x46, 0x36, 0x33, 0x42, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33,
+ 0x43, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x44, 0x06, 0x75, 0x31, 0x46,
+ 0x36, 0x33, 0x45, 0x06, 0x75, 0x31, 0x46, 0x36, 0x33, 0x46, 0x06, 0x75,
+ 0x31, 0x46, 0x36, 0x34, 0x30, 0x09, 0x64, 0x6c, 0x4c, 0x74, 0x63, 0x61,
+ 0x72, 0x6f, 0x6e, 0x08, 0x44, 0x69, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73,
+ 0x05, 0x41, 0x63, 0x75, 0x74, 0x65, 0x05, 0x54, 0x69, 0x6c, 0x64, 0x65,
+ 0x05, 0x47, 0x72, 0x61, 0x76, 0x65, 0x0a, 0x43, 0x69, 0x72, 0x63, 0x75,
+ 0x6d, 0x66, 0x6c, 0x65, 0x78, 0x05, 0x43, 0x61, 0x72, 0x6f, 0x6e, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x33, 0x31, 0x31, 0x2e, 0x63, 0x61, 0x73, 0x65,
+ 0x05, 0x42, 0x72, 0x65, 0x76, 0x65, 0x09, 0x44, 0x6f, 0x74, 0x61, 0x63,
+ 0x63, 0x65, 0x6e, 0x74, 0x0c, 0x48, 0x75, 0x6e, 0x67, 0x61, 0x72, 0x75,
+ 0x6d, 0x6c, 0x61, 0x75, 0x74, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
+ 0x67, 0x72, 0x61, 0x76, 0x65, 0x0a, 0x61, 0x72, 0x61, 0x62, 0x69, 0x63,
+ 0x5f, 0x64, 0x6f, 0x74, 0x0c, 0x61, 0x72, 0x61, 0x62, 0x69, 0x63, 0x5f,
+ 0x32, 0x64, 0x6f, 0x74, 0x73, 0x0c, 0x61, 0x72, 0x61, 0x62, 0x69, 0x63,
+ 0x5f, 0x33, 0x64, 0x6f, 0x74, 0x73, 0x0e, 0x61, 0x72, 0x61, 0x62, 0x69,
+ 0x63, 0x5f, 0x33, 0x64, 0x6f, 0x74, 0x73, 0x5f, 0x61, 0x0e, 0x61, 0x72,
+ 0x61, 0x62, 0x69, 0x63, 0x5f, 0x32, 0x64, 0x6f, 0x74, 0x73, 0x5f, 0x61,
+ 0x0c, 0x61, 0x72, 0x61, 0x62, 0x69, 0x63, 0x5f, 0x34, 0x64, 0x6f, 0x74,
+ 0x73, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x36, 0x45, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x36, 0x45, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x36, 0x45, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x31,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41,
+ 0x31, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x41, 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x36, 0x46, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x36, 0x46, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x36, 0x46, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x42, 0x41, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x41, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0b, 0x61, 0x72, 0x61, 0x62, 0x69, 0x63, 0x5f, 0x72, 0x69, 0x6e, 0x67,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37, 0x43, 0x2e, 0x66, 0x69, 0x6e,
+ 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37, 0x43, 0x2e, 0x69, 0x6e,
+ 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37, 0x43, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37, 0x44, 0x2e,
+ 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37, 0x44,
+ 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x37,
+ 0x44, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x38, 0x31, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x38, 0x31, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x38, 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x38, 0x32, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x38, 0x32, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x32, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x35, 0x2e, 0x66, 0x69, 0x6e,
+ 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x35, 0x2e, 0x69, 0x6e,
+ 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x35, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x46, 0x2e,
+ 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x46,
+ 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42,
+ 0x46, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0e, 0x61, 0x72, 0x61, 0x62, 0x69,
+ 0x63, 0x5f, 0x67, 0x61, 0x66, 0x5f, 0x62, 0x61, 0x72, 0x07, 0x45, 0x6e,
+ 0x67, 0x2e, 0x61, 0x6c, 0x74, 0x0f, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x36,
+ 0x38, 0x2e, 0x64, 0x6f, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x0f, 0x75, 0x6e,
+ 0x69, 0x30, 0x32, 0x39, 0x44, 0x2e, 0x64, 0x6f, 0x74, 0x6c, 0x65, 0x73,
+ 0x73, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x38, 0x30, 0x33, 0x30,
+ 0x34, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x34, 0x30, 0x33, 0x30,
+ 0x38, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x37, 0x30, 0x33, 0x30,
+ 0x34, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x38, 0x30, 0x33, 0x30,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x38, 0x30, 0x33, 0x30,
+ 0x30, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x34, 0x30, 0x33, 0x30,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x34, 0x30, 0x33, 0x30,
+ 0x30, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30,
+ 0x34, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x38, 0x30, 0x33, 0x30,
+ 0x43, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30,
+ 0x38, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x43, 0x30, 0x33, 0x30,
+ 0x37, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x32, 0x30, 0x33, 0x30,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x32, 0x30, 0x33, 0x30,
+ 0x30, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x32, 0x30, 0x33, 0x30,
+ 0x33, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x36, 0x30, 0x33, 0x30,
+ 0x33, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x36, 0x30, 0x33, 0x30,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x36, 0x30, 0x33, 0x30,
+ 0x30, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x36, 0x30, 0x33, 0x30,
+ 0x39, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x32, 0x30, 0x33, 0x30,
+ 0x39, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x33, 0x30, 0x31, 0x30, 0x33, 0x30,
+ 0x37, 0x0a, 0x62, 0x72, 0x61, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x6f, 0x74,
+ 0x05, 0x4a, 0x2e, 0x61, 0x6c, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x39, 0x35, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x16, 0x75, 0x6e, 0x69, 0x46,
+ 0x45, 0x41, 0x45, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x2e, 0x6c, 0x6f, 0x6e,
+ 0x67, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x42, 0x35, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x42, 0x35, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x42, 0x35, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x43, 0x45, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x43, 0x45, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x43, 0x45, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x32, 0x2e, 0x66, 0x69, 0x6e,
+ 0x61, 0x05, 0x6c, 0x2e, 0x61, 0x6c, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x44, 0x35, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x11, 0x75, 0x6e, 0x69,
+ 0x30, 0x34, 0x37, 0x38, 0x2e, 0x6d, 0x6f, 0x6e, 0x6f, 0x67, 0x72, 0x61,
+ 0x70, 0x68, 0x11, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37, 0x39, 0x2e, 0x6d,
+ 0x6f, 0x6e, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x0f, 0x69, 0x6f, 0x67,
+ 0x6f, 0x6e, 0x65, 0x6b, 0x2e, 0x64, 0x6f, 0x74, 0x6c, 0x65, 0x73, 0x73,
+ 0x0f, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x38, 0x2e, 0x64, 0x6f, 0x74,
+ 0x6c, 0x65, 0x73, 0x73, 0x0f, 0x75, 0x6e, 0x69, 0x32, 0x31, 0x34, 0x39,
+ 0x2e, 0x64, 0x6f, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x0f, 0x75, 0x6e, 0x69,
+ 0x31, 0x45, 0x32, 0x44, 0x2e, 0x64, 0x6f, 0x74, 0x6c, 0x65, 0x73, 0x73,
+ 0x0f, 0x75, 0x6e, 0x69, 0x31, 0x45, 0x43, 0x42, 0x2e, 0x64, 0x6f, 0x74,
+ 0x6c, 0x65, 0x73, 0x73, 0x03, 0x64, 0x63, 0x6f, 0x05, 0x49, 0x2e, 0x61,
+ 0x6c, 0x74, 0x0a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x2e, 0x62, 0x61, 0x73,
+ 0x65, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x31, 0x30, 0x36, 0x34,
+ 0x42, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x31, 0x30, 0x36, 0x34,
+ 0x43, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x34, 0x42, 0x30, 0x36, 0x35,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x31, 0x30, 0x36, 0x34,
+ 0x45, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x31, 0x30, 0x36, 0x34,
+ 0x46, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x34, 0x45, 0x30, 0x36, 0x35,
+ 0x31, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x34, 0x30, 0x36, 0x34,
+ 0x45, 0x0b, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x35, 0x34, 0x30, 0x36, 0x34,
+ 0x46, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x41, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x41, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x41, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x42,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43,
+ 0x42, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x43, 0x42, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x43, 0x43, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x43, 0x43, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x43, 0x43, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x43, 0x44, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x44, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x44, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x45, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x45, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x45, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43, 0x46,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x43,
+ 0x46, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x43, 0x46, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x44, 0x30, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x44, 0x30, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x44, 0x30, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x44, 0x31, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x31, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x32, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x32, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x32, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x33,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44,
+ 0x33, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x44, 0x33, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x44, 0x34, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x44, 0x34, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x44, 0x34, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x44, 0x35, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x35, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x35, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x36, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x36, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x36, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x37,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44,
+ 0x37, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x44, 0x37, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x44, 0x38, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x44, 0x38, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x44, 0x38, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x44, 0x39, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x39, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x39, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x41, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x41, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x41, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x42,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44,
+ 0x42, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x44, 0x42, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x44, 0x43, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x44, 0x43, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x44, 0x43, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x44, 0x44, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x44, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x44, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x45, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x45, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x45, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44, 0x46,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x44,
+ 0x46, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x44, 0x46, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x45, 0x30, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x45, 0x30, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x45, 0x30, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x45, 0x31, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x31, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x31, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x32, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x32, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x32, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x33,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45,
+ 0x33, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x45, 0x33, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x37, 0x45, 0x34, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x37, 0x45, 0x34, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x37, 0x45, 0x34, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x37, 0x45, 0x35, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x35, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x35, 0x2e, 0x69, 0x6e, 0x69,
+ 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x36, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x36, 0x2e, 0x6d,
+ 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x36, 0x2e,
+ 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45, 0x37,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37, 0x45,
+ 0x37, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x37,
+ 0x45, 0x37, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x09, 0x52, 0x69, 0x6e, 0x67,
+ 0x61, 0x62, 0x6f, 0x76, 0x65, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x30, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x31, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x32, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x33, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x34, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x35, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x36, 0x2e, 0x61, 0x6c, 0x74, 0x0b, 0x75, 0x6e, 0x69, 0x32, 0x36, 0x33,
+ 0x37, 0x2e, 0x61, 0x6c, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x37,
+ 0x45, 0x2e, 0x64, 0x69, 0x61, 0x63, 0x11, 0x75, 0x6e, 0x69, 0x30, 0x34,
+ 0x38, 0x41, 0x2e, 0x62, 0x72, 0x65, 0x76, 0x65, 0x6c, 0x65, 0x73, 0x73,
+ 0x11, 0x75, 0x6e, 0x69, 0x30, 0x34, 0x38, 0x42, 0x2e, 0x62, 0x72, 0x65,
+ 0x76, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x05, 0x79, 0x2e, 0x61, 0x6c, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x39, 0x2e, 0x66, 0x69, 0x6e,
+ 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x41, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x42, 0x2e, 0x66,
+ 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x38, 0x46, 0x2e,
+ 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x30,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39,
+ 0x33, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x39, 0x34, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x39, 0x36, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x39, 0x37, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x39, 0x39, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x39, 0x41, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x41, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x41, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x42, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x42, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x42, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x43,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39,
+ 0x43, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x39, 0x43, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x39, 0x44, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x39, 0x44, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x39, 0x44, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x39, 0x45, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x45, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x45, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x46, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x46, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x39, 0x46, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x30,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41,
+ 0x30, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x41, 0x30, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x41, 0x32, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x41, 0x32, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x41, 0x32, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x41, 0x33, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x33, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x33, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x35, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x35, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x35, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x37,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41,
+ 0x37, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x41, 0x37, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x41, 0x38, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x41, 0x38, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x41, 0x38, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x41, 0x41, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x41, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x41, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x42, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x42, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x42, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41, 0x43,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x41,
+ 0x43, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x41, 0x43, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x41, 0x45, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x41, 0x45, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x41, 0x45, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x42, 0x30, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x30, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x30, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x32, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x32, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x32, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x34,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42,
+ 0x34, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x42, 0x34, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x42, 0x36, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x42, 0x36, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x42, 0x36, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x42, 0x37, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x37, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x37, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x38, 0x2e, 0x66, 0x69,
+ 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x38, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x38, 0x2e,
+ 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x39,
+ 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42,
+ 0x39, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36,
+ 0x42, 0x39, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75, 0x6e, 0x69, 0x30,
+ 0x36, 0x42, 0x43, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c, 0x75, 0x6e, 0x69,
+ 0x30, 0x36, 0x42, 0x43, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x0c, 0x75, 0x6e,
+ 0x69, 0x30, 0x36, 0x42, 0x43, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x0c, 0x75,
+ 0x6e, 0x69, 0x30, 0x36, 0x42, 0x44, 0x2e, 0x66, 0x69, 0x6e, 0x61, 0x0c,
+ 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x44, 0x2e, 0x69, 0x6e, 0x69, 0x74,
+ 0x0c, 0x75, 0x6e, 0x69, 0x30, 0x36, 0x42, 0x44, 0x2e, 0x6d, 0x65, 0x64,
+ 0x69, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x80, 0x40, 0xff, 0xfb, 0xfe, 0x03,
+ 0xfa, 0x14, 0x03, 0xf9, 0x25, 0x03, 0xf8, 0x32, 0x03, 0xf7, 0x96, 0x03,
+ 0xf6, 0x0e, 0x03, 0xf5, 0xfe, 0x03, 0xf4, 0xfe, 0x03, 0xf3, 0x25, 0x03,
+ 0xf2, 0x0e, 0x03, 0xf1, 0x96, 0x03, 0xf0, 0x25, 0x03, 0xef, 0x8a, 0x41,
+ 0x05, 0xef, 0xfe, 0x03, 0xee, 0x96, 0x03, 0xed, 0x96, 0x03, 0xec, 0xfa,
+ 0x03, 0xeb, 0xfa, 0x03, 0xea, 0xfe, 0x03, 0xe9, 0x3a, 0x03, 0xe8, 0x42,
+ 0x03, 0xe7, 0xfe, 0x03, 0xe6, 0x32, 0x03, 0xe5, 0xe4, 0x53, 0x05, 0xe5,
+ 0x96, 0x03, 0xe4, 0x8a, 0x41, 0x05, 0xe4, 0x53, 0x03, 0xe3, 0xe2, 0x2f,
+ 0x05, 0xe3, 0xfa, 0x03, 0xe2, 0x2f, 0x03, 0xe1, 0xfe, 0x03, 0xe0, 0xfe,
+ 0x03, 0xdf, 0x32, 0x03, 0xde, 0x14, 0x03, 0xdd, 0x96, 0x03, 0xdc, 0xfe,
+ 0x03, 0xdb, 0x12, 0x03, 0xda, 0x7d, 0x03, 0xd9, 0xbb, 0x03, 0xd8, 0xfe,
+ 0x03, 0xd6, 0x8a, 0x41, 0x05, 0xd6, 0x7d, 0x03, 0xd5, 0xd4, 0x47, 0x05,
+ 0xd5, 0x7d, 0x03, 0xd4, 0x47, 0x03, 0xd3, 0xd2, 0x1b, 0x05, 0xd3, 0xfe,
+ 0x03, 0xd2, 0x1b, 0x03, 0xd1, 0xfe, 0x03, 0xd0, 0xfe, 0x03, 0xcf, 0xfe,
+ 0x03, 0xce, 0xfe, 0x03, 0xcd, 0x96, 0x03, 0xcc, 0xcb, 0x1e, 0x05, 0xcc,
+ 0xfe, 0x03, 0xcb, 0x1e, 0x03, 0xca, 0x32, 0x03, 0xc9, 0xfe, 0x03, 0xc6,
+ 0x85, 0x11, 0x05, 0xc6, 0x1c, 0x03, 0xc5, 0x16, 0x03, 0xc4, 0xfe, 0x03,
+ 0xc3, 0xfe, 0x03, 0xc2, 0xfe, 0x03, 0xc1, 0xfe, 0x03, 0xc0, 0xfe, 0x03,
+ 0xbf, 0xfe, 0x03, 0xbe, 0xfe, 0x03, 0xbd, 0xfe, 0x03, 0xbc, 0xfe, 0x03,
+ 0xbb, 0xfe, 0x03, 0xba, 0x11, 0x03, 0xb9, 0x86, 0x25, 0x05, 0xb9, 0xfe,
+ 0x03, 0xb8, 0xb7, 0xbb, 0x05, 0xb8, 0xfe, 0x03, 0xb7, 0xb6, 0x5d, 0x05,
+ 0xb7, 0xbb, 0x03, 0xb7, 0x80, 0x04, 0xb6, 0xb5, 0x25, 0x05, 0xb6, 0x5d,
+ 0x40, 0xff, 0x03, 0xb6, 0x40, 0x04, 0xb5, 0x25, 0x03, 0xb4, 0xfe, 0x03,
+ 0xb3, 0x96, 0x03, 0xb2, 0xfe, 0x03, 0xb1, 0xfe, 0x03, 0xb0, 0xfe, 0x03,
+ 0xaf, 0xfe, 0x03, 0xae, 0x64, 0x03, 0xad, 0x0e, 0x03, 0xac, 0xab, 0x25,
+ 0x05, 0xac, 0x64, 0x03, 0xab, 0xaa, 0x12, 0x05, 0xab, 0x25, 0x03, 0xaa,
+ 0x12, 0x03, 0xa9, 0x8a, 0x41, 0x05, 0xa9, 0xfa, 0x03, 0xa8, 0xfe, 0x03,
+ 0xa7, 0xfe, 0x03, 0xa6, 0xfe, 0x03, 0xa5, 0x12, 0x03, 0xa4, 0xfe, 0x03,
+ 0xa3, 0xa2, 0x0e, 0x05, 0xa3, 0x32, 0x03, 0xa2, 0x0e, 0x03, 0xa1, 0x64,
+ 0x03, 0xa0, 0x8a, 0x41, 0x05, 0xa0, 0x96, 0x03, 0x9f, 0xfe, 0x03, 0x9e,
+ 0x9d, 0x0c, 0x05, 0x9e, 0xfe, 0x03, 0x9d, 0x0c, 0x03, 0x9c, 0x9b, 0x19,
+ 0x05, 0x9c, 0x64, 0x03, 0x9b, 0x9a, 0x10, 0x05, 0x9b, 0x19, 0x03, 0x9a,
+ 0x10, 0x03, 0x99, 0x0a, 0x03, 0x98, 0xfe, 0x03, 0x97, 0x96, 0x0d, 0x05,
+ 0x97, 0xfe, 0x03, 0x96, 0x0d, 0x03, 0x95, 0x8a, 0x41, 0x05, 0x95, 0x96,
+ 0x03, 0x94, 0x93, 0x0e, 0x05, 0x94, 0x28, 0x03, 0x93, 0x0e, 0x03, 0x92,
+ 0xfa, 0x03, 0x91, 0x90, 0xbb, 0x05, 0x91, 0xfe, 0x03, 0x90, 0x8f, 0x5d,
+ 0x05, 0x90, 0xbb, 0x03, 0x90, 0x80, 0x04, 0x8f, 0x8e, 0x25, 0x05, 0x8f,
+ 0x5d, 0x03, 0x8f, 0x40, 0x04, 0x8e, 0x25, 0x03, 0x8d, 0xfe, 0x03, 0x8c,
+ 0x8b, 0x2e, 0x05, 0x8c, 0xfe, 0x03, 0x8b, 0x2e, 0x03, 0x8a, 0x86, 0x25,
+ 0x05, 0x8a, 0x41, 0x03, 0x89, 0x88, 0x0b, 0x05, 0x89, 0x14, 0x03, 0x88,
+ 0x0b, 0x03, 0x87, 0x86, 0x25, 0x05, 0x87, 0x64, 0x03, 0x86, 0x85, 0x11,
+ 0x05, 0x86, 0x25, 0x03, 0x85, 0x11, 0x03, 0x84, 0xfe, 0x03, 0x83, 0x82,
+ 0x11, 0x05, 0x83, 0xfe, 0x03, 0x82, 0x11, 0x03, 0x81, 0xfe, 0x03, 0x80,
+ 0xfe, 0x03, 0x7f, 0xfe, 0x03, 0x40, 0xff, 0x7e, 0x7d, 0x7d, 0x05, 0x7e,
+ 0xfe, 0x03, 0x7d, 0x7d, 0x03, 0x7c, 0x64, 0x03, 0x7b, 0x54, 0x15, 0x05,
+ 0x7b, 0x25, 0x03, 0x7a, 0xfe, 0x03, 0x79, 0xfe, 0x03, 0x78, 0x0e, 0x03,
+ 0x77, 0x0c, 0x03, 0x76, 0x0a, 0x03, 0x75, 0xfe, 0x03, 0x74, 0xfa, 0x03,
+ 0x73, 0xfa, 0x03, 0x72, 0xfa, 0x03, 0x71, 0xfa, 0x03, 0x70, 0xfe, 0x03,
+ 0x6f, 0xfe, 0x03, 0x6e, 0xfe, 0x03, 0x6c, 0x21, 0x03, 0x6b, 0xfe, 0x03,
+ 0x6a, 0x11, 0x42, 0x05, 0x6a, 0x53, 0x03, 0x69, 0xfe, 0x03, 0x68, 0x7d,
+ 0x03, 0x67, 0x11, 0x42, 0x05, 0x66, 0xfe, 0x03, 0x65, 0xfe, 0x03, 0x64,
+ 0xfe, 0x03, 0x63, 0xfe, 0x03, 0x62, 0xfe, 0x03, 0x61, 0x3a, 0x03, 0x60,
+ 0xfa, 0x03, 0x5e, 0x0c, 0x03, 0x5d, 0xfe, 0x03, 0x5b, 0xfe, 0x03, 0x5a,
+ 0xfe, 0x03, 0x59, 0x58, 0x0a, 0x05, 0x59, 0xfa, 0x03, 0x58, 0x0a, 0x03,
+ 0x57, 0x16, 0x19, 0x05, 0x57, 0x32, 0x03, 0x56, 0xfe, 0x03, 0x55, 0x54,
+ 0x15, 0x05, 0x55, 0x42, 0x03, 0x54, 0x15, 0x03, 0x53, 0x01, 0x10, 0x05,
+ 0x53, 0x18, 0x03, 0x52, 0x14, 0x03, 0x51, 0x4a, 0x13, 0x05, 0x51, 0xfe,
+ 0x03, 0x50, 0x0b, 0x03, 0x4f, 0xfe, 0x03, 0x4e, 0x4d, 0x10, 0x05, 0x4e,
+ 0xfe, 0x03, 0x4d, 0x10, 0x03, 0x4c, 0xfe, 0x03, 0x4b, 0x4a, 0x13, 0x05,
+ 0x4b, 0xfe, 0x03, 0x4a, 0x49, 0x10, 0x05, 0x4a, 0x13, 0x03, 0x49, 0x1d,
+ 0x0d, 0x05, 0x49, 0x10, 0x03, 0x48, 0x0d, 0x03, 0x47, 0xfe, 0x03, 0x46,
+ 0x96, 0x03, 0x45, 0x96, 0x03, 0x44, 0xfe, 0x03, 0x43, 0x02, 0x2d, 0x05,
+ 0x43, 0xfa, 0x03, 0x42, 0xbb, 0x03, 0x41, 0x4b, 0x03, 0x40, 0xfe, 0x03,
+ 0x3f, 0xfe, 0x03, 0x3e, 0x3d, 0x12, 0x05, 0x3e, 0x14, 0x03, 0x3d, 0x3c,
+ 0x0f, 0x05, 0x3d, 0x12, 0x03, 0x3c, 0x3b, 0x0d, 0x05, 0x3c, 0x40, 0xff,
+ 0x0f, 0x03, 0x3b, 0x0d, 0x03, 0x3a, 0xfe, 0x03, 0x39, 0xfe, 0x03, 0x38,
+ 0x37, 0x14, 0x05, 0x38, 0xfa, 0x03, 0x37, 0x36, 0x10, 0x05, 0x37, 0x14,
+ 0x03, 0x36, 0x35, 0x0b, 0x05, 0x36, 0x10, 0x03, 0x35, 0x0b, 0x03, 0x34,
+ 0x1e, 0x03, 0x33, 0x0d, 0x03, 0x32, 0x31, 0x0b, 0x05, 0x32, 0xfe, 0x03,
+ 0x31, 0x0b, 0x03, 0x30, 0x2f, 0x0b, 0x05, 0x30, 0x0d, 0x03, 0x2f, 0x0b,
+ 0x03, 0x2e, 0x2d, 0x09, 0x05, 0x2e, 0x10, 0x03, 0x2d, 0x09, 0x03, 0x2c,
+ 0x32, 0x03, 0x2b, 0x2a, 0x25, 0x05, 0x2b, 0x64, 0x03, 0x2a, 0x29, 0x12,
+ 0x05, 0x2a, 0x25, 0x03, 0x29, 0x12, 0x03, 0x28, 0x27, 0x25, 0x05, 0x28,
+ 0x41, 0x03, 0x27, 0x25, 0x03, 0x26, 0x25, 0x0b, 0x05, 0x26, 0x0f, 0x03,
+ 0x25, 0x0b, 0x03, 0x24, 0xfe, 0x03, 0x23, 0xfe, 0x03, 0x22, 0x0f, 0x03,
+ 0x21, 0x01, 0x10, 0x05, 0x21, 0x12, 0x03, 0x20, 0x64, 0x03, 0x1f, 0xfa,
+ 0x03, 0x1e, 0x1d, 0x0d, 0x05, 0x1e, 0x64, 0x03, 0x1d, 0x0d, 0x03, 0x1c,
+ 0x11, 0x42, 0x05, 0x1c, 0xfe, 0x03, 0x1b, 0xfa, 0x03, 0x1a, 0x42, 0x03,
+ 0x19, 0x11, 0x42, 0x05, 0x19, 0xfe, 0x03, 0x18, 0x64, 0x03, 0x17, 0x16,
+ 0x19, 0x05, 0x17, 0xfe, 0x03, 0x16, 0x01, 0x10, 0x05, 0x16, 0x19, 0x03,
+ 0x15, 0xfe, 0x03, 0x14, 0xfe, 0x03, 0x13, 0xfe, 0x03, 0x12, 0x11, 0x42,
+ 0x05, 0x12, 0xfe, 0x03, 0x11, 0x02, 0x2d, 0x05, 0x11, 0x42, 0x03, 0x10,
+ 0x7d, 0x03, 0x0f, 0x64, 0x03, 0x0e, 0xfe, 0x03, 0x0d, 0x0c, 0x16, 0x05,
+ 0x0d, 0xfe, 0x03, 0x0c, 0x01, 0x10, 0x05, 0x0c, 0x16, 0x03, 0x0b, 0xfe,
+ 0x03, 0x0a, 0x10, 0x03, 0x09, 0xfe, 0x03, 0x08, 0x02, 0x2d, 0x05, 0x08,
+ 0xfe, 0x03, 0x07, 0x14, 0x03, 0x06, 0x64, 0x03, 0x04, 0x01, 0x10, 0x05,
+ 0x04, 0xfe, 0x03, 0x40, 0x15, 0x03, 0x02, 0x2d, 0x05, 0x03, 0xfe, 0x03,
+ 0x02, 0x01, 0x10, 0x05, 0x02, 0x2d, 0x03, 0x01, 0x10, 0x03, 0x00, 0xfe,
+ 0x03, 0x01, 0xb8, 0x01, 0x64, 0x85, 0x8d, 0x01, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x00, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b,
+ 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x1d
+};
+unsigned int dejavu_sans_condensed_ttf_len = 552620;
+#endif
diff --git a/fontcache.c b/fontcache.c
new file mode 100644
index 0000000..4a12a13
--- /dev/null
+++ b/fontcache.c
@@ -0,0 +1,291 @@
+/******************************************************************************
+ *
+ * Project: MapServer
+ * Purpose: Freetype Font helper functions
+ * Author: Thomas Bonfort and the MapServer team.
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2013 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+
+#include "mapserver.h"
+#include "mapthread.h"
+#include "fontcache.h"
+#include "dejavu-sans-condensed.h"
+
+typedef struct {
+ FT_Library library;
+ face_element *face_cache;
+ glyph_element *bitmap_glyph_cache;
+} ft_cache;
+
+#ifdef USE_THREAD
+typedef struct ft_thread_cache ft_thread_cache;
+struct ft_thread_cache{
+ int thread_id;
+ ft_thread_cache *next;
+ ft_cache cache;
+};
+ft_thread_cache *ft_caches;
+#else
+ ft_cache global_ft_cache;
+#endif
+
+
+void msInitFontCache(ft_cache *c) {
+ memset(c,0,sizeof(ft_cache));
+ FT_Init_FreeType(&c->library);
+}
+
+void msFreeFontCache(ft_cache *c) {
+ /* ... TODO ... */
+ face_element *cur_face,*tmp_face;
+ glyph_element *cur_bitmap, *tmp_bitmap;
+ UT_HASH_ITER(hh, c->face_cache, cur_face, tmp_face) {
+ index_element *cur_index,*tmp_index;
+ outline_element *cur_outline,*tmp_outline;
+ glyph_element *cur_glyph,*tmp_glyph;
+ UT_HASH_ITER(hh, cur_face->index_cache, cur_index, tmp_index) {
+ UT_HASH_DEL(cur_face->index_cache,cur_index);
+ free(cur_index);
+ }
+ UT_HASH_ITER(hh, cur_face->outline_cache, cur_outline, tmp_outline) {
+ UT_HASH_DEL(cur_face->outline_cache,cur_outline);
+ FT_Outline_Done(c->library,&cur_outline->outline);
+ free(cur_outline);
+ }
+ UT_HASH_ITER(hh, cur_face->glyph_cache, cur_glyph, tmp_glyph) {
+ UT_HASH_DEL(cur_face->glyph_cache,cur_glyph);
+ free(cur_glyph);
+ }
+#ifdef USE_HARFBUZZ
+ if(cur_face->hbfont) {
+ hb_font_destroy(cur_face->hbfont->hbfont);
+ hb_font_destroy(cur_face->hbfont->hbparentfont);
+ hb_font_funcs_destroy(cur_face->hbfont->funcs);
+ free(cur_face->hbfont);
+ }
+#endif
+ FT_Done_Face(cur_face->face);
+ UT_HASH_DEL(c->face_cache,cur_face);
+ free(cur_face);
+ }
+ FT_Done_FreeType(c->library);
+
+ UT_HASH_ITER(hh,c->bitmap_glyph_cache, cur_bitmap, tmp_bitmap) {
+ UT_HASH_DEL(c->bitmap_glyph_cache, cur_bitmap);
+ free(cur_bitmap);
+ }
+}
+
+ft_cache* msGetFontCache() {
+#ifndef USE_THREAD
+ return &global_ft_cache;
+#else
+ int nThreadId = msGetThreadId();
+ ft_thread_cache *prev = NULL, *cur = ft_caches;
+
+ if( cur != NULL && cur->thread_id == nThreadId )
+ return &cur->cache;
+
+ /* -------------------------------------------------------------------- */
+ /* Search for cache for this thread */
+ /* -------------------------------------------------------------------- */
+ msAcquireLock( TLOCK_TTF );
+
+ cur = ft_caches;
+ while( cur != NULL && cur->thread_id != nThreadId ) {
+ prev = cur;
+ cur = cur->next;
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* If we found it, make sure it is pushed to the front of the */
+ /* link for faster finding next time, and return it. */
+ /* -------------------------------------------------------------------- */
+ if( cur != NULL ) {
+ if( prev != NULL ) {
+ prev->next = cur->next;
+ cur->next = ft_caches;
+ ft_caches = cur;
+ }
+
+ msReleaseLock( TLOCK_TTF );
+ return &cur->cache;
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* Create a new context group for this thread. */
+ /* -------------------------------------------------------------------- */
+ cur = msSmallMalloc(sizeof(ft_thread_cache));
+ cur->next = NULL;
+ cur->thread_id = nThreadId;
+ msInitFontCache(&cur->cache);
+ cur->next = ft_caches;
+ ft_caches = cur;
+
+ msReleaseLock( TLOCK_TTF );
+
+ return &cur->cache;
+#endif
+}
+
+void msFontCacheSetup() {
+#ifndef USE_THREAD
+ ft_cache *c = msGetFontCache();
+ msInitFontCache(c);
+#else
+ ft_caches = NULL;
+#endif
+}
+
+void msFontCacheCleanup() {
+#ifndef USE_THREAD
+ ft_cache *c = msGetFontCache();
+ msFreeFontCache(c);
+#else
+ ft_thread_cache *cur,*next;
+ msAcquireLock( TLOCK_TTF );
+ cur = ft_caches;
+ while( cur != NULL ) {
+ msFreeFontCache(&cur->cache);
+ next = cur->next;
+ free(cur);
+ cur = next;
+ }
+ ft_caches = NULL;
+ msReleaseLock( TLOCK_TTF );
+#endif
+}
+
+unsigned int msGetGlyphIndex(face_element *face, unsigned int unicode) {
+ index_element *ic;
+ if(face->face->charmap && face->face->charmap->encoding == FT_ENCODING_MS_SYMBOL) {
+ unicode |= 0xf000; /* why? */
+ }
+ UT_HASH_FIND_INT(face->index_cache,&unicode,ic);
+ if(!ic) {
+ ic = msSmallMalloc(sizeof(index_element));
+ ic->codepoint = FT_Get_Char_Index(face->face,unicode);
+ ic->unicode = unicode;
+ UT_HASH_ADD_INT(face->index_cache,unicode,ic);
+ }
+ return ic->codepoint;
+}
+
+#define MS_DEFAULT_FONT_KEY "_ms_default_"
+
+face_element* msGetFontFace(char *key, fontSetObj *fontset) {
+ face_element *fc;
+ int error;
+ ft_cache *cache = msGetFontCache();
+ if(!key) {
+ key = MS_DEFAULT_FONT_KEY;
+ }
+ UT_HASH_FIND_STR(cache->face_cache,key,fc);
+ if(!fc) {
+ char *fontfile = NULL;
+ fc = msSmallCalloc(1,sizeof(face_element));
+ if(fontset && strcmp(key,MS_DEFAULT_FONT_KEY)) {
+ fontfile = msLookupHashTable(&(fontset->fonts),key);
+ if(!fontfile) {
+ msSetError(MS_MISCERR, "Could not find font with key \"%s\" in fontset", "msGetFontFace()", key);
+ free(fc);
+ return NULL;
+ }
+ error = FT_New_Face(cache->library,fontfile,0, &(fc->face));
+ } else {
+ error = FT_New_Memory_Face(cache->library,dejavu_sans_condensed_ttf, dejavu_sans_condensed_ttf_len , 0, &(fc->face));
+ }
+ if(error) {
+ msSetError(MS_MISCERR, "Freetype was unable to load font file \"%s\" for key \"%s\"", "msGetFontFace()", fontfile, key);
+ free(fc);
+ return NULL;
+ }
+ if(!fc->face->charmap) {
+ /* The font file has no unicode charmap, select an alternate one */
+ if( FT_Select_Charmap(fc->face, FT_ENCODING_MS_SYMBOL) )
+ FT_Select_Charmap(fc->face, FT_ENCODING_APPLE_ROMAN);
+ /* the previous calls may have failed, we ignore as there's nothing much left to do */
+ }
+ fc->font = key;
+ UT_HASH_ADD_KEYPTR(hh,cache->face_cache,fc->font, strlen(key), fc);
+ }
+ return fc;
+}
+
+glyph_element* msGetGlyphByIndex(face_element *face, unsigned int size, unsigned int codepoint) {
+ glyph_element *gc;
+ glyph_element_key key;
+ memset(&key,0,sizeof(glyph_element_key));
+ key.codepoint = codepoint;
+ key.size = size;
+ UT_HASH_FIND(hh,face->glyph_cache,&key,sizeof(glyph_element_key),gc);
+ if(!gc) {
+ FT_Error error;
+ gc = msSmallMalloc(sizeof(glyph_element));
+ if(MS_NINT(size * 96.0/72.0) != face->face->size->metrics.x_ppem) {
+ FT_Set_Pixel_Sizes(face->face,0,MS_NINT(size * 96/72.0));
+ }
+ error = FT_Load_Glyph(face->face,key.codepoint,FT_LOAD_DEFAULT|FT_LOAD_NO_BITMAP|FT_LOAD_NO_HINTING|FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH);
+ if(error) {
+ msSetError(MS_MISCERR, "unable to load glyph %ud for font \"%s\"", "msGetGlyphByIndex()",key.codepoint, face->font);
+ free(gc);
+ return NULL;
+ }
+ gc->metrics.minx = face->face->glyph->metrics.horiBearingX / 64.0;
+ gc->metrics.maxx = gc->metrics.minx + face->face->glyph->metrics.width / 64.0;
+ gc->metrics.maxy = face->face->glyph->metrics.horiBearingY / 64.0;
+ gc->metrics.miny = gc->metrics.maxy - face->face->glyph->metrics.height / 64.0;
+ gc->metrics.advance = face->face->glyph->metrics.horiAdvance / 64.0;
+ gc->key = key;
+ UT_HASH_ADD(hh,face->glyph_cache,key,sizeof(glyph_element_key), gc);
+ }
+ return gc;
+}
+
+outline_element* msGetGlyphOutline(face_element *face, glyph_element *glyph) {
+ outline_element *oc;
+ outline_element_key key;
+ ft_cache *cache = msGetFontCache();
+ memset(&key,0,sizeof(outline_element_key));
+ key.glyph = glyph;
+ UT_HASH_FIND(hh,face->outline_cache,&key, sizeof(outline_element_key),oc);
+ if(!oc) {
+ FT_Error error;
+ oc = msSmallMalloc(sizeof(outline_element));
+ if(MS_NINT(glyph->key.size * 96.0/72.0) != face->face->size->metrics.x_ppem) {
+ FT_Set_Pixel_Sizes(face->face,0,MS_NINT(glyph->key.size * 96/72.0));
+ }
+ error = FT_Load_Glyph(face->face,glyph->key.codepoint,FT_LOAD_DEFAULT/*|FT_LOAD_IGNORE_TRANSFORM*/|FT_LOAD_NO_HINTING|FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH);
+ if(error) {
+ msSetError(MS_MISCERR, "unable to load glyph %ud for font \"%s\"", "msGetGlyphByIndex()",glyph->key.codepoint, face->font);
+ return NULL;
+ }
+ error = FT_Outline_New(cache->library, face->face->glyph->outline.n_points,
+ face->face->glyph->outline.n_contours, &oc->outline);
+ FT_Outline_Copy(&face->face->glyph->outline, &oc->outline);
+ oc->key = key;
+ UT_HASH_ADD(hh,face->outline_cache,key,sizeof(outline_element_key), oc);
+ }
+ return oc;
+}
diff --git a/fontcache.h b/fontcache.h
new file mode 100644
index 0000000..d282d4f
--- /dev/null
+++ b/fontcache.h
@@ -0,0 +1,86 @@
+#include "mapserver.h"
+#include "uthash.h"
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_GLYPH_H
+#include FT_OUTLINE_H
+
+#ifdef USE_FRIBIDI
+ #if (defined(_WIN32) && !defined(__CYGWIN__)) || defined(HAVE_FRIBIDI2)
+ #include "fribidi.h"
+ #else
+ #include <fribidi/fribidi.h>
+ #endif
+ #include <hb-ft.h>
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct { /* this one can remain private */
+ unsigned int unicode;
+ unsigned int codepoint;
+ UT_hash_handle hh;
+} index_element;
+
+typedef struct {
+ void *hbparentfont;
+ void *hbfont;
+ void *funcs;
+ int cursize;
+} hb_font_element;
+
+typedef struct {
+ unsigned int codepoint;
+ unsigned int size;
+} glyph_element_key;
+
+struct glyph_element{
+ glyph_element_key key;
+ glyph_metrics metrics;
+ UT_hash_handle hh;
+};
+
+typedef struct {
+ glyph_element *glyph;
+} outline_element_key;
+
+typedef struct {
+ outline_element_key key;
+ FT_Outline outline;
+ UT_hash_handle hh;
+} outline_element;
+
+typedef struct {
+ glyph_element *glyph;
+} bitmap_element_key;
+
+typedef struct {
+ bitmap_element_key key;
+ void *bitmap;
+ UT_hash_handle hh;
+} bitmap_element;
+
+struct face_element{
+ char *font;
+ FT_Face face;
+ index_element *index_cache;
+ glyph_element *glyph_cache;
+ outline_element *outline_cache;
+ hb_font_element *hbfont;
+ UT_hash_handle hh;
+};
+
+
+face_element* msGetFontFace(char *key, fontSetObj *fontset);
+outline_element* msGetGlyphOutline(face_element *face, glyph_element *glyph);
+glyph_element* msGetBitmapGlyph(rendererVTableObj *renderer, unsigned int size, unsigned int unicode);
+unsigned int msGetGlyphIndex(face_element *face, unsigned int unicode);
+glyph_element* msGetGlyphByIndex(face_element *face, unsigned int size, unsigned int codepoint);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/hittest.c b/hittest.c
index 4c4b0a0..073442c 100644
--- a/hittest.c
+++ b/hittest.c
@@ -58,7 +58,6 @@ void initClassHitTests(classObj *c, class_hittest *ch, int default_status) {
void initLayerHitTests(layerObj *l, layer_hittest *lh) {
int i,default_status;
lh->classhits = msSmallCalloc(l->numclasses,sizeof(class_hittest));
- lh->status = default_status;
switch(l->type) {
case MS_LAYER_POLYGON:
@@ -71,6 +70,7 @@ void initLayerHitTests(layerObj *l, layer_hittest *lh) {
default_status = 1; /* no hittesting needed, use traditional mode */
break;
}
+ lh->status = default_status;
for(i=0; i<l->numclasses; i++) {
initClassHitTests(l->class[i],&lh->classhits[i], default_status);
}
@@ -124,7 +124,7 @@ int msHitTestShape(mapObj *map, layerObj *layer, shapeObj *shape, int drawmode,
if(MS_DRAW_LABELS(drawmode)) {
for(i=0;i<cp->numlabels;i++) {
labelObj *l = cp->labels[i];
- if(l->status == MS_ON) {
+ if(msGetLabelStatus(map,layer,shape,l) == MS_ON) {
int s;
hittest->labelhits[i].status = 1;
for(s=0; s<l->numstyles;s++) {
@@ -251,7 +251,6 @@ int msHitTestLayer(mapObj *map, layerObj *layer, layer_hittest *hittest) {
featuresdrawn++;
if(annotate && layer->class[shape.classindex]->numlabels > 0) {
- msShapeGetAnnotation(layer, &shape);
drawmode |= MS_DRAWMODE_LABELS;
}
diff --git a/kerneldensity.c b/kerneldensity.c
new file mode 100644
index 0000000..bc65a50
--- /dev/null
+++ b/kerneldensity.c
@@ -0,0 +1,347 @@
+/******************************************************************************
+ *
+ * Project: MapServer
+ * Purpose: KernelDensity layer implementation and related functions.
+ * Author: Thomas Bonfort and the MapServer team.
+ *
+ ******************************************************************************
+ * Copyright (c) 2014 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+#include "mapserver.h"
+#include <float.h>
+#ifdef USE_GDAL
+
+#include "gdal.h"
+#include "cpl_string.h"
+
+void gaussian_blur(float *values, int width, int height, int radius) {
+ float *tmp = (float*)msSmallMalloc(width*height*sizeof(float));
+ int length = radius*2+1;
+ float *kernel = (float*)msSmallMalloc(length*sizeof(float));
+ float sigma=radius/3.0;
+ float a=1.0/ sqrt(2.0*M_PI*sigma*sigma);
+ float den=2.0*sigma*sigma;
+ int i,x,y;
+
+ for (i=0; i<length; i++) {
+ float x=i - radius;
+ float v=a * exp(-(x*x) / den);
+ kernel[i]=v;
+ }
+ memset(tmp,0,width*height*sizeof(float));
+
+ for(y=0; y<height; y++) {
+ float* src_row=values + width*y;
+ float* dst_row=tmp + width*y;
+
+ for(x=radius; x<width-radius; x++) {
+ float accum=0;
+ for(i=0; i<length; i++) {
+ accum+=src_row[x+i-radius] * kernel[i];
+ }
+ dst_row[x]=accum;
+ }
+ }
+
+ for(x=0; x<width; x++) {
+ float* src_col=tmp+x;
+ float* dst_col=values+x;
+
+ for(y=radius; y<height-radius; y++) {
+ float accum=0;
+ for (i=0; i<length; i++) {
+ accum+=src_col[width*(y+i-radius)] * kernel[i];
+ }
+ dst_col[y*width]=accum;
+ }
+ }
+ free(tmp);
+ free(kernel);
+}
+
+
+int msComputeKernelDensityDataset(mapObj *map, imageObj *image, layerObj *kerneldensity_layer, void **hDSvoid, void **cleanup_ptr) {
+
+ int status,layer_idx, i,j, nclasses=0, have_sample=0;
+ rectObj searchrect;
+ shapeObj shape;
+ layerObj *layer;
+ float *values = NULL;
+ int radius = 10, im_width = image->width, im_height = image->height;
+ int expand_searchrect=1;
+ float normalization_scale=0.0;
+ double invcellsize = 1.0 / map->cellsize, georadius=0;
+ float valmax=FLT_MIN, valmin=FLT_MAX;
+ unsigned char *iValues;
+ GDALDatasetH hDS;
+ const char *pszProcessing;
+ int *classgroup = NULL;
+
+ assert(kerneldensity_layer->connectiontype == MS_KERNELDENSITY);
+ *cleanup_ptr = NULL;
+
+ if(!kerneldensity_layer->connection || !*kerneldensity_layer->connection) {
+ msSetError(MS_MISCERR, "msComputeKernelDensityDataset()", "KernelDensity layer has no CONNECTION defined");
+ return MS_FAILURE;
+ }
+ pszProcessing = msLayerGetProcessingKey( kerneldensity_layer, "KERNELDENSITY_RADIUS" );
+ if(pszProcessing)
+ radius = atoi(pszProcessing);
+ else
+ radius = 10;
+
+ pszProcessing = msLayerGetProcessingKey( kerneldensity_layer, "KERNELDENSITY_COMPUTE_BORDERS" );
+ if(pszProcessing && strcasecmp(pszProcessing,"OFF"))
+ expand_searchrect = 1;
+ else
+ expand_searchrect = 0;
+
+ pszProcessing = msLayerGetProcessingKey( kerneldensity_layer, "KERNELDENSITY_NORMALIZATION" );
+ if(!pszProcessing || !strcasecmp(pszProcessing,"AUTO"))
+ normalization_scale = 0.0;
+ else {
+ normalization_scale = atof(pszProcessing);
+ if(normalization_scale != 0) {
+ normalization_scale = 1.0 / normalization_scale;
+ } else {
+ normalization_scale = 1.0;
+ }
+ }
+
+ layer_idx = msGetLayerIndex(map,kerneldensity_layer->connection);
+ if(layer_idx == -1) {
+ int nLayers, *aLayers;
+ aLayers = msGetLayersIndexByGroup(map, kerneldensity_layer->connection, &nLayers);
+ if(!aLayers || !nLayers) {
+ msSetError(MS_MISCERR, "KernelDensity layer (%s) references unknown layer (%s)", "msComputeKernelDensityDataset()",
+ kerneldensity_layer->name,kerneldensity_layer->connection);
+ return (MS_FAILURE);
+ }
+ for(i=0; i<nLayers; i++) {
+ layer_idx = aLayers[i];
+ layer = GET_LAYER(map, layer_idx);
+ if(msScaleInBounds(map->scaledenom, layer->minscaledenom, layer->maxscaledenom))
+ break;
+ }
+ free(aLayers);
+ if(i == nLayers) {
+ msSetError(MS_MISCERR, "KernelDensity layer (%s) references no layer for current scale", "msComputeKernelDensityDataset()",
+ kerneldensity_layer->name);
+ return (MS_FAILURE);
+ }
+ } else {
+ layer = GET_LAYER(map, layer_idx);
+ }
+ /* open the linked layer */
+ status = msLayerOpen(layer);
+ if(status != MS_SUCCESS) return MS_FAILURE;
+
+ status = msLayerWhichItems(layer, MS_FALSE, NULL);
+ if(status != MS_SUCCESS) {
+ msLayerClose(layer);
+ return MS_FAILURE;
+ }
+
+ /* identify target shapes */
+ if(layer->transform == MS_TRUE) {
+ searchrect = map->extent;
+ if(expand_searchrect) {
+ georadius = radius * map->cellsize;
+ searchrect.minx -= georadius;
+ searchrect.miny -= georadius;
+ searchrect.maxx += georadius;
+ searchrect.maxy += georadius;
+ im_width += 2 * radius;
+ im_height += 2 * radius;
+ }
+ }
+ else {
+ searchrect.minx = searchrect.miny = 0;
+ searchrect.maxx = map->width-1;
+ searchrect.maxy = map->height-1;
+ }
+
+#ifdef USE_PROJ
+ layer->project = msProjectionsDiffer(&(layer->projection), &(map->projection));
+ if(layer->project)
+ msProjectRect(&map->projection, &layer->projection, &searchrect); /* project the searchrect to source coords */
+#endif
+
+ status = msLayerWhichShapes(layer, searchrect, MS_FALSE);
+ /* nothing to do */
+ if(status == MS_SUCCESS) { /* at least one sample may have overlapped */
+
+ if(layer->classgroup && layer->numclasses > 0)
+ classgroup = msAllocateValidClassGroups(layer, &nclasses);
+
+ msInitShape(&shape);
+ while((status = msLayerNextShape(layer, &shape)) == MS_SUCCESS) {
+ int l,p,s,c;
+ double weight = 1.0;
+ if(!values) /* defer allocation until we effectively have a feature */
+ values = (float*) msSmallCalloc(im_width * im_height, sizeof(float));
+#ifdef USE_PROJ
+ if(layer->project)
+ msProjectShape(&layer->projection, &map->projection, &shape);
+#endif
+
+ /* the weight for the sample is set to 1.0 by default. If the
+ * layer has some classes defined, we will read the weight from
+ * the class->style->size (which can be binded to an attribute)
+ */
+ if(layer->numclasses > 0) {
+ c = msShapeGetClass(layer, map, &shape, classgroup, nclasses);
+ if((c == -1) || (layer->class[c]->status == MS_OFF)) {
+ goto nextshape; /* no class matched, skip */
+ }
+ for (s = 0; s < layer->class[c]->numstyles; s++) {
+ if (msScaleInBounds(map->scaledenom,
+ layer->class[c]->styles[s]->minscaledenom,
+ layer->class[c]->styles[s]->maxscaledenom)) {
+ if(layer->class[c]->styles[s]->bindings[MS_STYLE_BINDING_SIZE].index != -1) {
+ weight = atof(shape.values[layer->class[c]->styles[s]->bindings[MS_STYLE_BINDING_SIZE].index]);
+ } else {
+ weight = layer->class[c]->styles[s]->size;
+ }
+ break;
+ }
+ }
+ if(s == layer->class[c]->numstyles) {
+ /* no style in scale bounds */
+ goto nextshape;
+ }
+ }
+ for(l=0; l<shape.numlines; l++) {
+ for(p=0; p<shape.line[l].numpoints; p++) {
+ int x = MS_MAP2IMAGE_XCELL_IC(shape.line[l].point[p].x, map->extent.minx - georadius, invcellsize);
+ int y = MS_MAP2IMAGE_YCELL_IC(shape.line[l].point[p].y, map->extent.maxy + georadius, invcellsize);
+ if(x>=0 && y>=0 && x<im_width && y<im_height) {
+ float *value = values + y * im_width + x;
+ (*value) += weight;
+ have_sample = 1;
+ }
+ }
+ }
+
+ nextshape:
+ msFreeShape(&shape);
+ }
+ } else if(status != MS_DONE) {
+ msLayerClose(layer);
+ return MS_FAILURE;
+ }
+
+ /* status == MS_DONE */
+ msLayerClose(layer);
+ status = MS_SUCCESS;
+
+
+ if(have_sample) { /* no use applying the filtering kernel if we have no samples */
+ gaussian_blur(values,im_width, im_height, radius);
+
+ if(normalization_scale == 0.0) { /* auto normalization */
+ for (j=radius; j<im_height-radius; j++) {
+ for (i=radius; i<im_width-radius; i++) {
+ float val = values[j*im_width + i];
+ if(val >0 && val>valmax) {
+ valmax = val;
+ }
+ if(val>0 && val<valmin) {
+ valmin = val;
+ }
+ }
+ }
+ } else {
+ valmin = 0;
+ valmax = normalization_scale;
+ }
+ }
+
+
+ if(have_sample && expand_searchrect) {
+ iValues = msSmallMalloc(image->width*image->height*sizeof(unsigned char));
+ for (j=0; j<image->height; j++) {
+ for (i=0; i<image->width; i++) {
+ float norm=(values[(j+radius)*im_width + i + radius] - valmin) / valmax;
+ int v=255 * norm;
+ if (v<0) v=0;
+ else if (v>255) v=255;
+ iValues[j*image->width + i] = v;
+ }
+ }
+ } else {
+ iValues = msSmallCalloc(1,image->width*image->height*sizeof(unsigned char));
+ if(have_sample) {
+ for (j=radius; j<image->height-radius; j++) {
+ for (i=radius; i<image->width-radius; i++) {
+ float norm=(values[j*im_width + i] - valmin) / valmax;
+ int v=255 * norm;
+ if (v<0) v=0;
+ else if (v>255) v=255;
+ iValues[j*image->width + i]=v;
+ }
+ }
+ }
+ }
+
+ free(values);
+
+ {
+ char pointer[64];
+ char ds_string [1024];
+ double adfGeoTransform[6];
+ memset(pointer, 0, sizeof(pointer));
+ CPLPrintPointer(pointer, iValues, sizeof(pointer));
+ snprintf(ds_string,1024,"MEM:::DATAPOINTER=%s,PIXELS=%u,LINES=%u,BANDS=1,DATATYPE=Byte,PIXELOFFSET=1,LINEOFFSET=%u",
+ pointer,image->width,image->height,image->width);
+ hDS = GDALOpenShared( ds_string, GA_ReadOnly );
+ if(hDS==NULL) {
+ msSetError(MS_MISCERR,"msComputeKernelDensityDataset()","failed to create in-memory gdal dataset for interpolated data");
+ status = MS_FAILURE;
+ free(iValues);
+ }
+ adfGeoTransform[0] = map->extent.minx - map->cellsize * 0.5; /* top left x */
+ adfGeoTransform[1] = map->cellsize;/* w-e pixel resolution */
+ adfGeoTransform[2] = 0; /* 0 */
+ adfGeoTransform[3] = map->extent.maxy + map->cellsize * 0.5;/* top left y */
+ adfGeoTransform[4] =0; /* 0 */
+ adfGeoTransform[5] = -map->cellsize;/* n-s pixel resolution (negative value) */
+ GDALSetGeoTransform(hDS,adfGeoTransform);
+ *hDSvoid = hDS;
+ *cleanup_ptr = (void*)iValues;
+ }
+ return status;
+}
+#else
+
+
+int msComputeKernelDensityDataset(mapObj *map, imageObj *image, layerObj *layer, void **hDSvoid, void **cleanup_ptr) {
+ msSetError(MS_MISCERR,"msComputeKernelDensityDataset()", "KernelDensity layers require GDAL support, however GDAL support is not compiled in this build");
+ return MS_FAILURE;
+}
+
+#endif
+
+int msCleanupKernelDensityDataset(mapObj *map, imageObj *image, layerObj *layer, void *cleanup_ptr) {
+ free(cleanup_ptr);
+ return MS_SUCCESS;
+}
diff --git a/legend.c b/legend.c
index 49a20dc..86151ca 100644
--- a/legend.c
+++ b/legend.c
@@ -36,6 +36,7 @@ int main(int argc, char *argv[])
mapObj *map=NULL;
imageObj *img=NULL;
+ msSetup();
if(argc > 1 && strcmp(argv[1], "-v") == 0) {
printf("%s\n", msGetVersion());
exit(0);
diff --git a/mapagg.cpp b/mapagg.cpp
index 9622be7..a9666a0 100644
--- a/mapagg.cpp
+++ b/mapagg.cpp
@@ -28,6 +28,8 @@
*****************************************************************************/
#include "mapserver.h"
+#include "fontcache.h"
+#include "mapagg.h"
#include <assert.h>
#include "renderers/agg/include/agg_color_rgba.h"
#include "renderers/agg/include/agg_pixfmt_rgba.h"
@@ -40,17 +42,15 @@
#include "renderers/agg/include/agg_span_pattern_rgba.h"
#include "renderers/agg/include/agg_span_allocator.h"
#include "renderers/agg/include/agg_span_interpolator_linear.h"
-#include "renderers/agg/include/agg_span_image_filter_rgba.h"
#include "renderers/agg/include/agg_pattern_filters_rgba.h"
-#include "renderers/agg/include/agg_span_image_filter_rgb.h"
#include "renderers/agg/include/agg_image_accessors.h"
#include "renderers/agg/include/agg_conv_stroke.h"
#include "renderers/agg/include/agg_conv_dash.h"
-#include "renderers/agg/include/agg_path_storage.h"
#include "renderers/agg/include/agg_font_freetype.h"
#include "renderers/agg/include/agg_conv_contour.h"
#include "renderers/agg/include/agg_ellipse.h"
#include "renderers/agg/include/agg_gamma_functions.h"
+#include "renderers/agg/include/agg_blur.h"
#include "renderers/agg/include/agg_rasterizer_outline_aa.h"
#include "renderers/agg/include/agg_renderer_outline_aa.h"
@@ -59,10 +59,14 @@
#include "renderers/agg/include/agg_span_image_filter_rgba.h"
#include "renderers/agg/include/agg_glyph_raster_bin.h"
#include "renderers/agg/include/agg_renderer_raster_text.h"
-#include "renderers/agg/include/agg_embedded_raster_fonts.h"
+#include "renderers/agg/include/agg_path_storage_integer.h"
#include "renderers/agg/include/agg_conv_clipper.h"
+#ifdef USE_PIXMAN
+#include <pixman.h>
+#endif
+
#ifdef AGG_ALIASED_ENABLED
#include "renderers/agg/include/agg_renderer_primitives.h"
#include "renderers/agg/include/agg_rasterizer_outline.h"
@@ -77,15 +81,19 @@ typedef mapserver::rgba8 color_type;
typedef mapserver::pixel32_type pixel_type;
typedef mapserver::blender_rgba_pre<color_type, band_order> blender_pre;
+typedef mapserver::comp_op_adaptor_rgba_pre<color_type, band_order> compop_blender_pre;
typedef mapserver::pixfmt_alpha_blend_rgba<blender_pre, mapserver::rendering_buffer, pixel_type> pixel_format;
+typedef mapserver::pixfmt_custom_blend_rgba<compop_blender_pre, mapserver::rendering_buffer> compop_pixel_format;
typedef mapserver::rendering_buffer rendering_buffer;
typedef mapserver::renderer_base<pixel_format> renderer_base;
+typedef mapserver::renderer_base<compop_pixel_format> compop_renderer_base;
typedef mapserver::renderer_scanline_aa_solid<renderer_base> renderer_scanline;
typedef mapserver::rasterizer_scanline_aa<> rasterizer_scanline;
typedef mapserver::font_engine_freetype_int16 font_engine_type;
typedef mapserver::font_cache_manager<font_engine_type> font_manager_type;
typedef mapserver::conv_curve<font_manager_type::path_adaptor_type> font_curve_type;
+typedef mapserver::glyph_raster_bin<color_type> glyph_gen;
#ifdef AGG_ALIASED_ENABLED
typedef mapserver::renderer_primitives<renderer_base> renderer_primitives;
@@ -93,140 +101,7 @@ typedef mapserver::rasterizer_outline<renderer_primitives> rasterizer_outline;
#endif
static color_type AGG_NO_COLOR = color_type(0, 0, 0, 0);
-const mapserver::int8u* rasterfonts[]= {
- mapserver::mcs5x10_mono, /*gd tiny. gse5x7 is a bit less high than gd tiny*/
- mapserver::mcs5x11_mono, /*gd small*/
- mapserver::mcs6x11_mono, /*gd medium*/
- mapserver::mcs7x12_mono_low, /*gd large*/
- mapserver::mcs7x12_mono_high /*gd huge*/
-};
-
-fontMetrics rasterfont_sizes[] = {
- {5,mapserver::mcs5x10_mono[0]},
- {5,mapserver::mcs5x11_mono[0]},
- {6,mapserver::mcs6x11_mono[0]},
- {7,mapserver::mcs7x12_mono_low[0]},
- {7,mapserver::mcs7x12_mono_high[0]}
-};
-
-/*
- * interface to a shapeObj representing lines, providing the functions
- * needed by the agg rasterizer. treats shapeObjs with multiple linestrings.
- */
-class line_adaptor
-{
-public:
- line_adaptor(shapeObj *shape):s(shape) {
- m_line=s->line; /*first line*/
- m_point=m_line->point; /*current vertex is first vertex of first line*/
- m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
- m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
- }
-
- /* a class with virtual functions should also provide a virtual destructor */
- virtual ~line_adaptor() {}
-
- void rewind(unsigned) {
- m_line=s->line; /*first line*/
- m_point=m_line->point; /*current vertex is first vertex of first line*/
- m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
- }
-
- virtual unsigned vertex(double* x, double* y) {
- if(m_point < m_pend) {
- /*here we treat the case where a real vertex is returned*/
- bool first = m_point == m_line->point; /*is this the first vertex of a line*/
- *x = m_point->x;
- *y = m_point->y;
- m_point++;
- return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
- }
- /*if here, we're at the end of a line*/
- m_line++;
- *x = *y = 0.0;
- if(m_line>=m_lend) /*is this the last line of the shapObj. normally,
- (m_line==m_lend) should be a sufficient test, as the caller should not call
- this function if a previous call returned path_cmd_stop.*/
- return mapserver::path_cmd_stop; /*no more points to process*/
-
- /*if here, there are more lines in the shapeObj, continue with next one*/
- m_point=m_line->point; /*pointer to first point of next line*/
- m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last point of next line*/
-
- return vertex(x,y); /*this will return the first point of the next line*/
- }
-private:
- shapeObj *s;
- lineObj *m_line, /*current line pointer*/
- *m_lend; /*points to after the last line*/
- pointObj *m_point, /*current point*/
- *m_pend; /*points to after last point of current line*/
-};
-
-class polygon_adaptor
-{
-public:
- polygon_adaptor(shapeObj *shape):s(shape),m_stop(false) {
- m_line=s->line; /*first lines*/
- m_point=m_line->point; /*first vertex of first line*/
- m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
- m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
- }
-
- /* a class with virtual functions should also provide a virtual destructor */
- virtual ~polygon_adaptor() {}
-
- void rewind(unsigned) {
- /*reset pointers*/
- m_stop=false;
- m_line=s->line;
- m_point=m_line->point;
- m_pend=&(m_line->point[m_line->numpoints]);
- }
-
- virtual unsigned vertex(double* x, double* y) {
- if(m_point < m_pend) {
- /*if here, we have a real vertex*/
- bool first = m_point == m_line->point;
- *x = m_point->x;
- *y = m_point->y;
- m_point++;
- return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
- }
- *x = *y = 0.0;
- if(!m_stop) {
- /*if here, we're after the last vertex of the current line
- * we return the command to close the current polygon*/
- m_line++;
- if(m_line>=m_lend) {
- /*if here, we've finished all the vertexes of the shape.
- * we still return the command to close the current polygon,
- * but set m_stop so the subsequent call to vertex() will return
- * the stop command*/
- m_stop=true;
- return mapserver::path_cmd_end_poly;
- }
- /*if here, there's another line in the shape, so we set the pointers accordingly
- * and return the command to close the current polygon*/
- m_point=m_line->point; /*first vertex of next line*/
- m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of next line*/
- return mapserver::path_cmd_end_poly;
- }
- /*if here, a previous call to vertex informed us that we'd consumed all the vertexes
- * of the shape. return the command to stop processing this shape*/
- return mapserver::path_cmd_stop;
- }
-private:
- shapeObj *s;
- double ox,oy;
- lineObj *m_line, /*pointer to current line*/
- *m_lend; /*pointer to after last line of the shape*/
- pointObj *m_point, /*pointer to current vertex*/
- *m_pend; /*pointer to after last vertex of current line*/
- bool m_stop; /*should next call return stop command*/
-};
-
-#define aggColor(c) mapserver::rgba8_pre(c->red, c->green, c->blue, c->alpha)
+#define aggColor(c) mapserver::rgba8_pre((c)->red, (c)->green, (c)->blue, (c)->alpha)
class aggRendererCache
{
@@ -267,7 +142,9 @@ public:
band_type* buffer;
rendering_buffer m_rendering_buffer;
pixel_format m_pixel_format;
+ compop_pixel_format m_compop_pixel_format;
renderer_base m_renderer_base;
+ compop_renderer_base m_compop_renderer_base;
renderer_scanline m_renderer_scanline;
#ifdef AGG_ALIASED_ENABLED
renderer_primitives m_renderer_primitives;
@@ -283,6 +160,8 @@ public:
mapserver::conv_stroke<line_adaptor> *stroke;
mapserver::conv_dash<line_adaptor> *dash;
mapserver::conv_stroke<mapserver::conv_dash<line_adaptor> > *stroke_dash;
+ double default_gamma;
+ mapserver::gamma_linear gamma_function;
};
#define AGG_RENDERER(image) ((AGG2Renderer*) (image)->img.plugin)
@@ -316,27 +195,6 @@ static void applyCJC(VertexSource &stroke, int caps, int joins)
}
}
-inline int aggLoadFont(aggRendererCache *cache, char *font, double size)
-{
- if(!cache->m_feng.name() || strcmp(cache->m_feng.name(),font)) {
- if (!cache->m_feng.load_font(font, 0, mapserver::glyph_ren_outline)) {
- msSetError(MS_TTFERR, "AGG error loading font (%s)", "aggLoadFont()", font);
- return MS_FAILURE;
- }
- if(!cache->m_feng.hinting())
- cache->m_feng.hinting(true);
- if(cache->m_feng.resolution() != 96)
- cache->m_feng.resolution(96);
- if(!cache->m_feng.flip_y())
- cache->m_feng.flip_y(true);
- cache->m_feng.height(size);
- } else {
- if(cache->m_feng.height()!=size)
- cache->m_feng.height(size);
- }
- return MS_SUCCESS;
-}
-
int agg2RenderLine(imageObj *img, shapeObj *p, strokeStyleObj *style)
{
@@ -441,6 +299,247 @@ int agg2RenderPolygon(imageObj *img, shapeObj *p, colorObj * color)
return MS_SUCCESS;
}
+static inline double int26p6_to_dbl(int p)
+ {
+ return double(p) / 64.0;
+ }
+
+template<class PathStorage>
+ bool decompose_ft_outline(const FT_Outline& outline,
+ bool flip_y,
+ const mapserver::trans_affine& mtx,
+ PathStorage& path)
+ {
+ FT_Vector v_last;
+ FT_Vector v_control;
+ FT_Vector v_start;
+ double x1, y1, x2, y2, x3, y3;
+
+ FT_Vector* point;
+ FT_Vector* limit;
+ char* tags;
+
+ int n; // index of contour in outline
+ int first; // index of first point in contour
+ char tag; // current point's state
+
+ first = 0;
+
+ for(n = 0; n < outline.n_contours; n++)
+ {
+ int last; // index of last point in contour
+
+ last = outline.contours[n];
+ limit = outline.points + last;
+
+ v_start = outline.points[first];
+ v_last = outline.points[last];
+
+ v_control = v_start;
+
+ point = outline.points + first;
+ tags = outline.tags + first;
+ tag = FT_CURVE_TAG(tags[0]);
+
+ // A contour cannot start with a cubic control point!
+ if(tag == FT_CURVE_TAG_CUBIC) return false;
+
+ // check first point to determine origin
+ if( tag == FT_CURVE_TAG_CONIC)
+ {
+ // first point is conic control. Yes, this happens.
+ if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON)
+ {
+ // start at last point if it is on the curve
+ v_start = v_last;
+ limit--;
+ }
+ else
+ {
+ // if both first and last points are conic,
+ // start at their middle and record its position
+ // for closure
+ v_start.x = (v_start.x + v_last.x) / 2;
+ v_start.y = (v_start.y + v_last.y) / 2;
+
+ v_last = v_start;
+ }
+ point--;
+ tags--;
+ }
+
+ x1 = int26p6_to_dbl(v_start.x);
+ y1 = int26p6_to_dbl(v_start.y);
+ if(flip_y) y1 = -y1;
+ mtx.transform(&x1, &y1);
+ path.move_to(x1,y1);
+
+ while(point < limit)
+ {
+ point++;
+ tags++;
+
+ tag = FT_CURVE_TAG(tags[0]);
+ switch(tag)
+ {
+ case FT_CURVE_TAG_ON: // emit a single line_to
+ {
+ x1 = int26p6_to_dbl(point->x);
+ y1 = int26p6_to_dbl(point->y);
+ if(flip_y) y1 = -y1;
+ mtx.transform(&x1, &y1);
+ path.line_to(x1,y1);
+ //path.line_to(conv(point->x), flip_y ? -conv(point->y) : conv(point->y));
+ continue;
+ }
+
+ case FT_CURVE_TAG_CONIC: // consume conic arcs
+ {
+ v_control.x = point->x;
+ v_control.y = point->y;
+
+ Do_Conic:
+ if(point < limit)
+ {
+ FT_Vector vec;
+ FT_Vector v_middle;
+
+ point++;
+ tags++;
+ tag = FT_CURVE_TAG(tags[0]);
+
+ vec.x = point->x;
+ vec.y = point->y;
+
+ if(tag == FT_CURVE_TAG_ON)
+ {
+ x1 = int26p6_to_dbl(v_control.x);
+ y1 = int26p6_to_dbl(v_control.y);
+ x2 = int26p6_to_dbl(vec.x);
+ y2 = int26p6_to_dbl(vec.y);
+ if(flip_y) { y1 = -y1; y2 = -y2; }
+ mtx.transform(&x1, &y1);
+ mtx.transform(&x2, &y2);
+ path.curve3(x1,y1,x2,y2);
+ continue;
+ }
+
+ if(tag != FT_CURVE_TAG_CONIC) return false;
+
+ v_middle.x = (v_control.x + vec.x) / 2;
+ v_middle.y = (v_control.y + vec.y) / 2;
+
+ x1 = int26p6_to_dbl(v_control.x);
+ y1 = int26p6_to_dbl(v_control.y);
+ x2 = int26p6_to_dbl(v_middle.x);
+ y2 = int26p6_to_dbl(v_middle.y);
+ if(flip_y) { y1 = -y1; y2 = -y2; }
+ mtx.transform(&x1, &y1);
+ mtx.transform(&x2, &y2);
+ path.curve3(x1,y1,x2,y2);
+
+ //path.curve3(conv(v_control.x),
+ // flip_y ? -conv(v_control.y) : conv(v_control.y),
+ // conv(v_middle.x),
+ // flip_y ? -conv(v_middle.y) : conv(v_middle.y));
+
+ v_control = vec;
+ goto Do_Conic;
+ }
+
+ x1 = int26p6_to_dbl(v_control.x);
+ y1 = int26p6_to_dbl(v_control.y);
+ x2 = int26p6_to_dbl(v_start.x);
+ y2 = int26p6_to_dbl(v_start.y);
+ if(flip_y) { y1 = -y1; y2 = -y2; }
+ mtx.transform(&x1, &y1);
+ mtx.transform(&x2, &y2);
+ path.curve3(x1,y1,x2,y2);
+
+ //path.curve3(conv(v_control.x),
+ // flip_y ? -conv(v_control.y) : conv(v_control.y),
+ // conv(v_start.x),
+ // flip_y ? -conv(v_start.y) : conv(v_start.y));
+ goto Close;
+ }
+
+ default: // FT_CURVE_TAG_CUBIC
+ {
+ FT_Vector vec1, vec2;
+
+ if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC)
+ {
+ return false;
+ }
+
+ vec1.x = point[0].x;
+ vec1.y = point[0].y;
+ vec2.x = point[1].x;
+ vec2.y = point[1].y;
+
+ point += 2;
+ tags += 2;
+
+ if(point <= limit)
+ {
+ FT_Vector vec;
+
+ vec.x = point->x;
+ vec.y = point->y;
+
+ x1 = int26p6_to_dbl(vec1.x);
+ y1 = int26p6_to_dbl(vec1.y);
+ x2 = int26p6_to_dbl(vec2.x);
+ y2 = int26p6_to_dbl(vec2.y);
+ x3 = int26p6_to_dbl(vec.x);
+ y3 = int26p6_to_dbl(vec.y);
+ if(flip_y) { y1 = -y1; y2 = -y2; y3 = -y3; }
+ mtx.transform(&x1, &y1);
+ mtx.transform(&x2, &y2);
+ mtx.transform(&x3, &y3);
+ path.curve4(x1,y1,x2,y2,x3,y3);
+
+ //path.curve4(conv(vec1.x),
+ // flip_y ? -conv(vec1.y) : conv(vec1.y),
+ // conv(vec2.x),
+ // flip_y ? -conv(vec2.y) : conv(vec2.y),
+ // conv(vec.x),
+ // flip_y ? -conv(vec.y) : conv(vec.y));
+ continue;
+ }
+
+ x1 = int26p6_to_dbl(vec1.x);
+ y1 = int26p6_to_dbl(vec1.y);
+ x2 = int26p6_to_dbl(vec2.x);
+ y2 = int26p6_to_dbl(vec2.y);
+ x3 = int26p6_to_dbl(v_start.x);
+ y3 = int26p6_to_dbl(v_start.y);
+ if(flip_y) { y1 = -y1; y2 = -y2; y3 = -y3; }
+ mtx.transform(&x1, &y1);
+ mtx.transform(&x2, &y2);
+ mtx.transform(&x3, &y3);
+ path.curve4(x1,y1,x2,y2,x3,y3);
+
+ //path.curve4(conv(vec1.x),
+ // flip_y ? -conv(vec1.y) : conv(vec1.y),
+ // conv(vec2.x),
+ // flip_y ? -conv(vec2.y) : conv(vec2.y),
+ // conv(v_start.x),
+ // flip_y ? -conv(v_start.y) : conv(v_start.y));
+ goto Close;
+ }
+ }
+ }
+
+ path.close_polygon();
+
+ Close:
+ first = last + 1;
+ }
+
+ return true;
+ }
+
int agg2RenderPolygonTiled(imageObj *img, shapeObj *p, imageObj * tile)
{
assert(img->format->renderer == tile->format->renderer);
@@ -461,228 +560,55 @@ int agg2RenderPolygonTiled(imageObj *img, shapeObj *p, imageObj * tile)
return MS_SUCCESS;
}
-int agg2RenderGlyphs(imageObj *img, double x, double y, labelStyleObj *style, char *text)
-{
- AGG2Renderer *r = AGG_RENDERER(img);
- aggRendererCache *cache = (aggRendererCache*)MS_RENDERER_CACHE(MS_IMAGE_RENDERER(img));
- if(aggLoadFont(cache,style->fonts[0],style->size) == MS_FAILURE)
- return MS_FAILURE;
- r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
-
- int curfontidx = 0;
- const mapserver::glyph_cache* glyph;
- int unicode;
- font_curve_type m_curves(cache->m_fman.path_adaptor());
- mapserver::trans_affine mtx;
- mtx *= mapserver::trans_affine_translation(-x, -y);
- /*agg angles are antitrigonometric*/
- mtx *= mapserver::trans_affine_rotation(-style->rotation);
- mtx *= mapserver::trans_affine_translation(x, y);
-
- double fx = x, fy = y;
- const char *utfptr = text;
+int agg2RenderGlyphsPath(imageObj *img, textPathObj *tp, colorObj *c, colorObj *oc, int ow) {
mapserver::path_storage glyphs;
-
- //first render all the glyphs to a path
- while (*utfptr) {
- if (*utfptr == '\r') {
- fx = x;
- utfptr++;
- continue;
- }
- if (*utfptr == '\n') {
- fx = x;
- fy += ceil(style->size * AGG_LINESPACE);
- utfptr++;
- continue;
- }
- utfptr += msUTF8ToUniChar(utfptr, &unicode);
- if(curfontidx != 0) {
- if(aggLoadFont(cache,style->fonts[0],style->size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = 0;
- }
-
- glyph = cache->m_fman.glyph(unicode);
-
- if(!glyph || glyph->glyph_index == 0) {
- int i;
- for(i=1; i<style->numfonts; i++) {
- if(aggLoadFont(cache,style->fonts[i],style->size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = i;
- glyph = cache->m_fman.glyph(unicode);
- if(glyph && glyph->glyph_index != 0) {
- break;
- }
- }
- }
-
-
- if (glyph) {
- //cache->m_fman.add_kerning(&fx, &fy);
- cache->m_fman.init_embedded_adaptors(glyph, fx, fy);
- mapserver::conv_transform<font_curve_type, mapserver::trans_affine> trans_c(m_curves, mtx);
- glyphs.concat_path(trans_c);
- fx += glyph->advance_x;
- fy += glyph->advance_y;
- }
- }
-
- if (style->outlinewidth) {
- r->m_rasterizer_aa.reset();
- r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- mapserver::conv_contour<mapserver::path_storage> cc(glyphs);
- cc.width(style->outlinewidth + 1);
- r->m_rasterizer_aa.add_path(cc);
- r->m_renderer_scanline.color(aggColor(style->outlinecolor));
- mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
- }
- if (style->color) {
- r->m_rasterizer_aa.reset();
- r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- r->m_rasterizer_aa.add_path(glyphs);
- r->m_renderer_scanline.color(aggColor(style->color));
- mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
- }
-
- return MS_SUCCESS;
-
-}
-
-int agg2RenderBitmapGlyphs(imageObj *img, double x, double y, labelStyleObj *style, char *text)
-{
- typedef mapserver::glyph_raster_bin<color_type> glyph_gen;
- int size = MS_NINT(style->size);
- if(size<0 || size>4) {
- msSetError(MS_RENDERERERR,"invalid bitmap font size", "agg2RenderBitmapGlyphs()");
- return MS_FAILURE;
- }
- AGG2Renderer *r = AGG_RENDERER(img);
- glyph_gen glyph(0);
- mapserver::renderer_raster_htext_solid<renderer_base, glyph_gen> rt(r->m_renderer_base, glyph);
- glyph.font(rasterfonts[size]);
- int numlines=0;
- char **lines;
- /*masking out the out-of-range character codes*/
- int len;
- int cc_start = rasterfonts[size][2];
- int cc_end = cc_start + rasterfonts[size][3];
- if(msCountChars(text,'\n')) {
- if((lines = msStringSplit((const char*)text, '\n', &(numlines))) == NULL)
- return(-1);
- } else {
- lines = &text;
- numlines = 1;
- }
- y -= glyph.base_line();
- for(int n=0; n<numlines; n++) {
- len = strlen(lines[n]);
- for (int i = 0; i < len; i++)
- if (lines[n][i] < cc_start || lines[n][i] > cc_end)
- lines[n][i] = '.';
- if(style->outlinewidth > 0) {
- rt.color(aggColor(style->outlinecolor));
- for(int i=-1; i<=1; i++) {
- for(int j=-1; j<=1; j++) {
- if(i||j) {
- rt.render_text(x+i, y+j, lines[n], true);
- }
- }
- }
- }
- assert(style->color);
- rt.color(aggColor(style->color));
- rt.render_text(x, y, lines[n], true);
- y += glyph.height();
- }
- if(*lines != text)
- msFreeCharArray(lines, numlines);
- return MS_SUCCESS;
- return MS_SUCCESS;
-}
-
-int agg2RenderGlyphsLine(imageObj *img, labelPathObj *labelpath, labelStyleObj *style, char *text)
-{
+ mapserver::trans_affine trans;
AGG2Renderer *r = AGG_RENDERER(img);
- aggRendererCache *cache = (aggRendererCache*)MS_RENDERER_CACHE(MS_IMAGE_RENDERER(img));
- if(aggLoadFont(cache,style->fonts[0],style->size) == MS_FAILURE)
- return MS_FAILURE;
r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
-
- const mapserver::glyph_cache* glyph;
- int unicode;
- int curfontidx = 0;
- font_curve_type m_curves(cache->m_fman.path_adaptor());
-
- mapserver::path_storage glyphs;
-
- for (int i = 0; i < labelpath->path.numpoints; i++) {
- assert(text);
- mapserver::trans_affine mtx;
- mtx *= mapserver::trans_affine_translation(-labelpath->path.point[i].x,-labelpath->path.point[i].y);
- mtx *= mapserver::trans_affine_rotation(-labelpath->angles[i]);
- mtx *= mapserver::trans_affine_translation(labelpath->path.point[i].x,labelpath->path.point[i].y);
- text += msUTF8ToUniChar(text, &unicode);
-
- if(curfontidx != 0) {
- if(aggLoadFont(cache,style->fonts[0],style->size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = 0;
- }
-
- glyph = cache->m_fman.glyph(unicode);
-
- if(!glyph || glyph->glyph_index == 0) {
- int i;
- for(i=1; i<style->numfonts; i++) {
- if(aggLoadFont(cache,style->fonts[i],style->size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = i;
- glyph = cache->m_fman.glyph(unicode);
- if(glyph && glyph->glyph_index != 0) {
- break;
- }
- }
- }
- if (glyph) {
- cache->m_fman.init_embedded_adaptors(glyph, labelpath->path.point[i].x,labelpath->path.point[i].y);
- mapserver::conv_transform<font_curve_type, mapserver::trans_affine> trans_c(m_curves, mtx);
- glyphs.concat_path(trans_c);
+ for(int i=0; i<tp->numglyphs; i++) {
+ glyphObj *gl = tp->glyphs + i;
+ trans.reset();
+ trans.rotate(-gl->rot);
+ trans.translate(gl->pnt.x, gl->pnt.y);
+ outline_element *ol = msGetGlyphOutline(gl->face,gl->glyph);
+ if(!ol) {
+ return MS_FAILURE;
}
+ decompose_ft_outline(ol->outline,true,trans,glyphs);
}
-
- if (style->outlinewidth) {
+ mapserver::conv_curve<mapserver::path_storage> m_curves(glyphs);
+ if (oc) {
r->m_rasterizer_aa.reset();
r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- mapserver::conv_contour<mapserver::path_storage> cc(glyphs);
- cc.width(style->outlinewidth + 1);
+ mapserver::conv_contour<mapserver::conv_curve<mapserver::path_storage> > cc(m_curves);
+ cc.width(ow + 1);
r->m_rasterizer_aa.add_path(cc);
- r->m_renderer_scanline.color(aggColor(style->outlinecolor));
+ r->m_renderer_scanline.color(aggColor(oc));
mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
}
- if (style->color) {
+ if(c) {
r->m_rasterizer_aa.reset();
r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- r->m_rasterizer_aa.add_path(glyphs);
- r->m_renderer_scanline.color(aggColor(style->color));
+ r->m_rasterizer_aa.add_path(m_curves);
+ r->m_renderer_scanline.color(aggColor(c));
mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
}
-
return MS_SUCCESS;
}
-static mapserver::path_storage imageVectorSymbolAGG(symbolObj *symbol)
+mapserver::path_storage imageVectorSymbol(symbolObj *symbol)
{
mapserver::path_storage path;
- bool is_new=true;
+ int is_new=1;
+
for(int i=0; i < symbol->numpoints; i++) {
- if((symbol->points[i].x == -99) && (symbol->points[i].y == -99)) { // (PENUP)
- is_new=true;
- } else {
+ if((symbol->points[i].x == -99) && (symbol->points[i].y == -99))
+ is_new=1;
+
+ else {
if(is_new) {
path.move_to(symbol->points[i].x,symbol->points[i].y);
- is_new=false;
+ is_new=0;
} else {
path.line_to(symbol->points[i].x,symbol->points[i].y);
}
@@ -691,7 +617,6 @@ static mapserver::path_storage imageVectorSymbolAGG(symbolObj *symbol)
return path;
}
-
int agg2RenderVectorSymbol(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj * style)
{
@@ -699,7 +624,7 @@ int agg2RenderVectorSymbol(imageObj *img, double x, double y,
double ox = symbol->sizex * 0.5;
double oy = symbol->sizey * 0.5;
- mapserver::path_storage path = imageVectorSymbolAGG(symbol);
+ mapserver::path_storage path = imageVectorSymbol(symbol);
mapserver::trans_affine mtx;
mtx *= mapserver::trans_affine_translation(-ox,-oy);
mtx *= mapserver::trans_affine_scaling(style->scale);
@@ -807,54 +732,6 @@ int agg2RenderEllipseSymbol(imageObj *image, double x, double y,
return MS_SUCCESS;
}
-int agg2RenderTruetypeSymbol(imageObj *img, double x, double y,
- symbolObj *symbol, symbolStyleObj * style)
-{
- AGG2Renderer *r = AGG_RENDERER(img);
- aggRendererCache *cache = (aggRendererCache*)MS_RENDERER_CACHE(MS_IMAGE_RENDERER(img));
- if(aggLoadFont(cache,symbol->full_font_path,style->scale) == MS_FAILURE)
- return MS_FAILURE;
-
- int unicode;
- font_curve_type m_curves(cache->m_fman.path_adaptor());
-
- msUTF8ToUniChar(symbol->character, &unicode);
- const mapserver::glyph_cache* glyph = cache->m_fman.glyph(unicode);
- double ox = (glyph->bounds.x1 + glyph->bounds.x2) / 2.;
- double oy = (glyph->bounds.y1 + glyph->bounds.y2) / 2.;
-
- mapserver::trans_affine mtx = mapserver::trans_affine_translation(-ox, -oy);
- if(style->rotation)
- mtx *= mapserver::trans_affine_rotation(-style->rotation);
- mtx *= mapserver::trans_affine_translation(x, y);
-
- mapserver::path_storage glyphs;
-
- cache->m_fman.init_embedded_adaptors(glyph, 0,0);
- mapserver::conv_transform<font_curve_type, mapserver::trans_affine> trans_c(m_curves, mtx);
- glyphs.concat_path(trans_c);
- if (style->outlinecolor) {
- r->m_rasterizer_aa.reset();
- r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- mapserver::conv_contour<mapserver::path_storage> cc(glyphs);
- cc.auto_detect_orientation(true);
- cc.width(style->outlinewidth + 1);
- r->m_rasterizer_aa.add_path(cc);
- r->m_renderer_scanline.color(aggColor(style->outlinecolor));
- mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
- }
-
- if (style->color) {
- r->m_rasterizer_aa.reset();
- r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
- r->m_rasterizer_aa.add_path(glyphs);
- r->m_renderer_scanline.color(aggColor(style->color));
- mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
- }
- return MS_SUCCESS;
-
-}
-
int agg2RenderTile(imageObj *img, imageObj *tile, double x, double y)
{
/*
@@ -938,22 +815,35 @@ imageObj *agg2CreateImage(int width, int height, outputFormatObj *format, colorO
image = (imageObj *) calloc(1, sizeof (imageObj));
MS_CHECK_ALLOC(image, sizeof (imageObj), NULL);
AGG2Renderer *r = new AGG2Renderer();
+
+ /* Compute size on 64bit and check that it is compatible of the platform size_t */
+ AGG_INT64U bufSize64 = (AGG_INT64U)width * height * 4 * sizeof(band_type);
+ size_t bufSize = (size_t)bufSize64;
+ if( (AGG_INT64U)bufSize != bufSize64 ) {
+ msSetError(MS_MEMERR, "%s: %d: Out of memory allocating " AGG_INT64U_FRMT " bytes.\n", "agg2CreateImage()",
+ __FILE__, __LINE__, bufSize64);
+ return NULL;
+ }
- r->buffer = (band_type*)malloc(width * height * 4 * sizeof(band_type));
+ r->buffer = (band_type*)malloc(bufSize);
if (r->buffer == NULL) {
- msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "agg2CreateImage()",
- __FILE__, __LINE__, (unsigned int)(width * height * 4 * sizeof(band_type)));
+ msSetError(MS_MEMERR, "%s: %d: Out of memory allocating " AGG_INT64U_FRMT " bytes.\n", "agg2CreateImage()",
+ __FILE__, __LINE__, bufSize64);
free(image);
return NULL;
}
r->m_rendering_buffer.attach(r->buffer, width, height, width * 4);
r->m_pixel_format.attach(r->m_rendering_buffer);
+ r->m_compop_pixel_format.attach(r->m_rendering_buffer);
r->m_renderer_base.attach(r->m_pixel_format);
+ r->m_compop_renderer_base.attach(r->m_compop_pixel_format);
r->m_renderer_scanline.attach(r->m_renderer_base);
- double gamma = atof(msGetOutputFormatOption( format, "GAMMA", "0.75" ));
- if(gamma > 0.0 && gamma < 1.0) {
- r->m_rasterizer_aa_gamma.gamma(mapserver::gamma_linear(0.0,gamma));
+ r->default_gamma = atof(msGetOutputFormatOption( format, "GAMMA", "0.75" ));
+ if(r->default_gamma <= 0.0 || r->default_gamma >= 1.0) {
+ r->default_gamma = 0.75;
}
+ r->gamma_function.set(0,r->default_gamma);
+ r->m_rasterizer_aa_gamma.gamma(r->gamma_function);
if( bg && !format->transparent )
r->m_renderer_base.clear(aggColor(bg));
else
@@ -971,116 +861,29 @@ imageObj *agg2CreateImage(int width, int height, outputFormatObj *format, colorO
int agg2SaveImage(imageObj *img, mapObj* map, FILE *fp, outputFormatObj * format)
{
- msSetError(MS_MISCERR, "AGG2 does not support direct image saving", "agg2SaveImage()");
+
return MS_FAILURE;
}
-/*...*/
-/* helper functions */
-int agg2GetTruetypeTextBBox(rendererVTableObj *renderer, char **fonts, int numfonts, double size, char *string,
- rectObj *rect, double **advances,int bAdjustBaseline)
+int agg2StartNewLayer(imageObj *img, mapObj*map, layerObj *layer)
{
-
- aggRendererCache *cache = (aggRendererCache*)MS_RENDERER_CACHE(renderer);
- if(aggLoadFont(cache,fonts[0],size) == MS_FAILURE)
- return MS_FAILURE;
- int curfontidx = 0;
-
- int unicode, curGlyph = 1, numglyphs = 0;
- if (advances) {
- numglyphs = msGetNumGlyphs(string);
- }
- const mapserver::glyph_cache* glyph;
- string += msUTF8ToUniChar(string, &unicode);
-
- if(curfontidx != 0) {
- if(aggLoadFont(cache,fonts[0],size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = 0;
- }
- glyph = cache->m_fman.glyph(unicode);
- if(!glyph || glyph->glyph_index == 0) {
- int i;
- for(i=1; i<numfonts; i++) {
- if(aggLoadFont(cache,fonts[i],size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = i;
- glyph = cache->m_fman.glyph(unicode);
- if(glyph && glyph->glyph_index != 0) {
- break;
- }
- }
- }
- if (glyph) {
- rect->minx = glyph->bounds.x1;
- rect->maxx = glyph->bounds.x2;
- rect->miny = glyph->bounds.y1;
- rect->maxy = bAdjustBaseline?1:glyph->bounds.y2;
- } else
- return MS_FAILURE;
- if (advances) {
- *advances = (double*) malloc(numglyphs * sizeof (double));
- MS_CHECK_ALLOC(*advances, numglyphs * sizeof (double), MS_FAILURE);
- (*advances)[0] = glyph->advance_x;
+ AGG2Renderer *r = AGG_RENDERER(img);
+ char *sgamma = msLayerGetProcessingKey( layer, "GAMMA" );
+ double gamma;
+ if(sgamma) {
+ gamma = atof(sgamma);
+ if(gamma <= 0 || gamma >= 1) gamma = 0.75;
+ } else {
+ gamma = r->default_gamma;
}
- double fx = glyph->advance_x, fy = glyph->advance_y;
- while (*string) {
- if (advances) {
- if (*string == '\r' || *string == '\n')
- (*advances)[curGlyph++] = -fx;
- }
- if (*string == '\r') {
- fx = 0;
- string++;
- continue;
- }
- if (*string == '\n') {
- fx = 0;
- fy += ceil(size * AGG_LINESPACE);
- string++;
- continue;
- }
- string += msUTF8ToUniChar(string, &unicode);
- if(curfontidx != 0) {
- if(aggLoadFont(cache,fonts[0],size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = 0;
- }
- glyph = cache->m_fman.glyph(unicode);
- if(!glyph || glyph->glyph_index == 0) {
- int i;
- for(i=1; i<numfonts; i++) {
- if(aggLoadFont(cache,fonts[i],size) == MS_FAILURE)
- return MS_FAILURE;
- curfontidx = i;
- glyph = cache->m_fman.glyph(unicode);
- if(glyph && glyph->glyph_index != 0) {
- break;
- }
- }
- }
- if (glyph) {
- rect->minx = MS_MIN(rect->minx, fx+glyph->bounds.x1);
- rect->miny = MS_MIN(rect->miny, fy+glyph->bounds.y1);
- rect->maxx = MS_MAX(rect->maxx, fx+glyph->bounds.x2);
- rect->maxy = MS_MAX(rect->maxy, fy+(bAdjustBaseline?1:glyph->bounds.y2));
-
- fx += glyph->advance_x;
- fy += glyph->advance_y;
- if (advances) {
- (*advances)[curGlyph++] = glyph->advance_x;
- }
- }
+ if(r->gamma_function.end() != gamma) {
+ r->gamma_function.end(gamma);
+ r->m_rasterizer_aa_gamma.gamma(r->gamma_function);
}
return MS_SUCCESS;
}
-int agg2StartNewLayer(imageObj *img, mapObj*map, layerObj *layer)
-{
- return MS_SUCCESS;
-}
-
int agg2CloseNewLayer(imageObj *img, mapObj *map, layerObj *layer)
{
return MS_SUCCESS;
@@ -1242,7 +1045,7 @@ certain hatch angles */
return path;
}
-template<class VertexSource> void renderPolygonHatches(imageObj *img,VertexSource &clipper, colorObj *color)
+template<class VertexSource> int renderPolygonHatches(imageObj *img,VertexSource &clipper, colorObj *color)
{
if(img->format->renderer == MS_RENDER_WITH_AGG) {
AGG2Renderer *r = AGG_RENDERER(img);
@@ -1281,7 +1084,10 @@ template<class VertexSource> void renderPolygonHatches(imageObj *img,VertexSourc
break;
case mapserver::path_cmd_end_poly|mapserver::path_flags_close:
if(shape.line[0].numpoints > 2) {
- MS_IMAGE_RENDERER(img)->renderPolygon(img,&shape,color);
+ if(UNLIKELY(MS_FAILURE == MS_IMAGE_RENDERER(img)->renderPolygon(img,&shape,color))) {
+ free(shape.line[0].point);
+ return MS_FAILURE;
+ }
}
break;
default:
@@ -1290,6 +1096,7 @@ template<class VertexSource> void renderPolygonHatches(imageObj *img,VertexSourc
}
free(shape.line[0].point);
}
+ return MS_SUCCESS;
}
int msHatchPolygon(imageObj *img, shapeObj *poly, double spacing, double width, double *pattern, int patternlength, double angle, colorObj *color)
@@ -1322,7 +1129,7 @@ int msHatchPolygon(imageObj *img, shapeObj *poly, double spacing, double width,
if(patternlength>1) {
- //dash the hatch and render it clipped by the shape
+ //dash the color-hatch and render it clipped by the shape
mapserver::conv_dash<mapserver::path_storage > dash(hatch);
mapserver::conv_stroke<mapserver::conv_dash<mapserver::path_storage> > stroke(dash);
for (int i=0; i<patternlength; i+=2) {
@@ -1349,10 +1156,194 @@ int msHatchPolygon(imageObj *img, shapeObj *poly, double spacing, double width,
return MS_SUCCESS;
}
+#ifdef USE_PIXMAN
+static pixman_op_t ms2pixman_compop(CompositingOperation c) {
+ switch(c) {
+ case MS_COMPOP_CLEAR:
+ return PIXMAN_OP_CLEAR;
+ case MS_COMPOP_SRC:
+ return PIXMAN_OP_SRC;
+ case MS_COMPOP_DST:
+ return PIXMAN_OP_DST;
+ case MS_COMPOP_SRC_OVER:
+ return PIXMAN_OP_OVER;
+ case MS_COMPOP_DST_OVER:
+ return PIXMAN_OP_OVER_REVERSE;
+ case MS_COMPOP_SRC_IN:
+ return PIXMAN_OP_IN;
+ case MS_COMPOP_DST_IN:
+ return PIXMAN_OP_IN_REVERSE;
+ case MS_COMPOP_SRC_OUT:
+ return PIXMAN_OP_OUT;
+ case MS_COMPOP_DST_OUT:
+ return PIXMAN_OP_OUT_REVERSE;
+ case MS_COMPOP_SRC_ATOP:
+ return PIXMAN_OP_ATOP;
+ case MS_COMPOP_DST_ATOP:
+ return PIXMAN_OP_ATOP_REVERSE;
+ case MS_COMPOP_XOR:
+ return PIXMAN_OP_XOR;
+ case MS_COMPOP_PLUS:
+ return PIXMAN_OP_ADD;
+ case MS_COMPOP_MULTIPLY:
+ return PIXMAN_OP_MULTIPLY;
+ case MS_COMPOP_SCREEN:
+ return PIXMAN_OP_SCREEN;
+ case MS_COMPOP_OVERLAY:
+ return PIXMAN_OP_OVERLAY;
+ case MS_COMPOP_DARKEN:
+ return PIXMAN_OP_DARKEN;
+ case MS_COMPOP_LIGHTEN:
+ return PIXMAN_OP_LIGHTEN;
+ case MS_COMPOP_COLOR_DODGE:
+ return PIXMAN_OP_COLOR_DODGE;
+ case MS_COMPOP_COLOR_BURN:
+ return PIXMAN_OP_COLOR_DODGE;
+ case MS_COMPOP_HARD_LIGHT:
+ return PIXMAN_OP_HARD_LIGHT;
+ case MS_COMPOP_SOFT_LIGHT:
+ return PIXMAN_OP_SOFT_LIGHT;
+ case MS_COMPOP_DIFFERENCE:
+ return PIXMAN_OP_DIFFERENCE;
+ case MS_COMPOP_EXCLUSION:
+ return PIXMAN_OP_EXCLUSION;
+ case MS_COMPOP_INVERT:
+ case MS_COMPOP_INVERT_RGB:
+ case MS_COMPOP_MINUS:
+ case MS_COMPOP_CONTRAST:
+ default:
+ return PIXMAN_OP_OVER;
+ }
+}
+#else
+static mapserver::comp_op_e ms2agg_compop(CompositingOperation c) {
+ switch(c) {
+ case MS_COMPOP_CLEAR:
+ return mapserver::comp_op_clear;
+ case MS_COMPOP_SRC:
+ return mapserver::comp_op_src;
+ case MS_COMPOP_DST:
+ return mapserver::comp_op_dst;
+ case MS_COMPOP_SRC_OVER:
+ return mapserver::comp_op_src_over;
+ case MS_COMPOP_DST_OVER:
+ return mapserver::comp_op_dst_over;
+ case MS_COMPOP_SRC_IN:
+ return mapserver::comp_op_src_in;
+ case MS_COMPOP_DST_IN:
+ return mapserver::comp_op_dst_in;
+ case MS_COMPOP_SRC_OUT:
+ return mapserver::comp_op_src_out;
+ case MS_COMPOP_DST_OUT:
+ return mapserver::comp_op_dst_out;
+ case MS_COMPOP_SRC_ATOP:
+ return mapserver::comp_op_src_atop;
+ case MS_COMPOP_DST_ATOP:
+ return mapserver::comp_op_dst_atop;
+ case MS_COMPOP_XOR:
+ return mapserver::comp_op_xor;
+ case MS_COMPOP_PLUS:
+ return mapserver::comp_op_plus;
+ case MS_COMPOP_MINUS:
+ return mapserver::comp_op_minus;
+ case MS_COMPOP_MULTIPLY:
+ return mapserver::comp_op_multiply;
+ case MS_COMPOP_SCREEN:
+ return mapserver::comp_op_screen;
+ case MS_COMPOP_OVERLAY:
+ return mapserver::comp_op_overlay;
+ case MS_COMPOP_DARKEN:
+ return mapserver::comp_op_darken;
+ case MS_COMPOP_LIGHTEN:
+ return mapserver::comp_op_lighten;
+ case MS_COMPOP_COLOR_DODGE:
+ return mapserver::comp_op_color_dodge;
+ case MS_COMPOP_COLOR_BURN:
+ return mapserver::comp_op_color_burn;
+ case MS_COMPOP_HARD_LIGHT:
+ return mapserver::comp_op_hard_light;
+ case MS_COMPOP_SOFT_LIGHT:
+ return mapserver::comp_op_soft_light;
+ case MS_COMPOP_DIFFERENCE:
+ return mapserver::comp_op_difference;
+ case MS_COMPOP_EXCLUSION:
+ return mapserver::comp_op_exclusion;
+ case MS_COMPOP_CONTRAST:
+ return mapserver::comp_op_contrast;
+ case MS_COMPOP_INVERT:
+ return mapserver::comp_op_invert;
+ case MS_COMPOP_INVERT_RGB:
+ return mapserver::comp_op_invert_rgb;
+ default:
+ return mapserver::comp_op_src_over;
+ }
+}
+#endif
+
+int aggCompositeRasterBuffer(imageObj *dest, rasterBufferObj *overlay, CompositingOperation comp, int opacity) {
+ assert(overlay->type == MS_BUFFER_BYTE_RGBA);
+ AGG2Renderer *r = AGG_RENDERER(dest);
+#ifdef USE_PIXMAN
+ pixman_image_t *si = pixman_image_create_bits(PIXMAN_a8r8g8b8,overlay->width,overlay->height,
+ (uint32_t*)overlay->data.rgba.pixels,overlay->data.rgba.row_step);
+ pixman_image_t *bi = pixman_image_create_bits(PIXMAN_a8r8g8b8,dest->width,dest->height,
+ (uint32_t*)r->buffer,dest->width*4);
+ pixman_image_t *alpha_mask_i=NULL, *alpha_mask_i_ptr;
+ pixman_image_set_filter(si,PIXMAN_FILTER_NEAREST, NULL, 0);
+ unsigned char *alpha_mask = NULL;
+ if(opacity > 0) {
+ if(opacity == 100) {
+ alpha_mask_i_ptr = NULL;
+ } else {
+ unsigned char alpha = (unsigned char)(opacity * 2.55);
+ if(!alpha_mask_i) {
+ alpha_mask = (unsigned char*)msSmallMalloc(dest->width * dest->height);
+ alpha_mask_i = pixman_image_create_bits(PIXMAN_a8,dest->width,dest->height,
+ (uint32_t*)alpha_mask,dest->width);
+ }
+ memset(alpha_mask,alpha,dest->width*dest->height);
+ alpha_mask_i_ptr = alpha_mask_i;
+ }
+ pixman_image_composite (ms2pixman_compop(comp), si, alpha_mask_i_ptr, bi,
+ 0, 0, 0, 0, 0, 0, dest->width,dest->height);
+ }
+ pixman_image_unref(si);
+ pixman_image_unref(bi);
+ if(alpha_mask_i) {
+ pixman_image_unref(alpha_mask_i);
+ msFree(alpha_mask);
+ }
+ return MS_SUCCESS;
+#else
+ rendering_buffer b(overlay->data.rgba.pixels, overlay->width, overlay->height, overlay->data.rgba.row_step);
+ pixel_format pf(b);
+ mapserver::comp_op_e comp_op = ms2agg_compop(comp);
+ if(comp_op == mapserver::comp_op_src_over) {
+ r->m_renderer_base.blend_from(pf,0,0,0,unsigned(opacity * 2.55));
+ } else {
+ compop_pixel_format pixf(r->m_rendering_buffer);
+ compop_renderer_base ren(pixf);
+ pixf.comp_op(comp_op);
+ ren.blend_from(pf,0,0,0,unsigned(opacity * 2.55));
+ }
+ return MS_SUCCESS;
+#endif
+}
+
+rasterBufferObj* msApplyFilterToRasterBuffer(const rasterBufferObj *rb, CompositingFilter *filter) {
+ rasterBufferObj *rbret = (rasterBufferObj*)msSmallCalloc(sizeof(rasterBufferObj),1);
+ msCopyRasterBuffer(rbret,rb);
+ rendering_buffer b(rbret->data.rgba.pixels, rbret->width, rbret->height, rbret->data.rgba.row_step);
+ pixel_format pf(b);
+ /* for now, we only support a blurring filter */
+ int radius = atoi(filter->filter);
+ mapserver::stack_blur_rgba32(pf,radius,radius);
+ return rbret;
+}
int msPopulateRendererVTableAGG(rendererVTableObj * renderer)
{
- renderer->supports_transparent_layers = 0;
+ renderer->compositeRasterBuffer = &aggCompositeRasterBuffer;
renderer->supports_pixel_buffer = 1;
renderer->use_imagecache = 0;
renderer->supports_clipping = 0;
@@ -1366,9 +1357,7 @@ int msPopulateRendererVTableAGG(rendererVTableObj * renderer)
renderer->renderPolygonTiled = &agg2RenderPolygonTiled;
renderer->renderLineTiled = &agg2RenderLineTiled;
- renderer->renderGlyphs = &agg2RenderGlyphs;
- renderer->renderGlyphsLine = &agg2RenderGlyphsLine;
- renderer->renderBitmapGlyphs = &agg2RenderBitmapGlyphs;
+ renderer->renderGlyphs = &agg2RenderGlyphsPath;
renderer->renderVectorSymbol = &agg2RenderVectorSymbol;
@@ -1376,8 +1365,6 @@ int msPopulateRendererVTableAGG(rendererVTableObj * renderer)
renderer->renderEllipseSymbol = &agg2RenderEllipseSymbol;
- renderer->renderTruetypeSymbol = &agg2RenderTruetypeSymbol;
-
renderer->renderTile = &agg2RenderTile;
renderer->getRasterBufferHandle = &aggGetRasterBufferHandle;
@@ -1389,8 +1376,6 @@ int msPopulateRendererVTableAGG(rendererVTableObj * renderer)
renderer->createImage = &agg2CreateImage;
renderer->saveImage = &agg2SaveImage;
- renderer->getTruetypeTextBBox = &agg2GetTruetypeTextBBox;
-
renderer->startLayer = &agg2StartNewLayer;
renderer->endLayer = &agg2CloseNewLayer;
@@ -1398,10 +1383,5 @@ int msPopulateRendererVTableAGG(rendererVTableObj * renderer)
renderer->freeSymbol = &agg2FreeSymbol;
renderer->cleanup = agg2Cleanup;
- renderer->supports_bitmap_fonts = 1;
- for(int i=0; i<5; i++) {
- renderer->bitmapFontMetrics[i] = &(rasterfont_sizes[i]);
- }
-
return MS_SUCCESS;
}
diff --git a/mapagg.h b/mapagg.h
new file mode 100644
index 0000000..41248b7
--- /dev/null
+++ b/mapagg.h
@@ -0,0 +1,151 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project: MapServer
+ * Purpose: AGG template library types.
+ * Author: John Novak (jnovak at novacell.com)
+ * Author: Thomas Bonfort (tbonfort at terriscope.fr)
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2007 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ******************************************************************************/
+
+#include "renderers/agg/include/agg_path_storage.h"
+
+/*
+ * interface to a shapeObj representing lines, providing the functions
+ * needed by the agg rasterizer. treats shapeObjs with multiple linestrings.
+ */
+class line_adaptor
+{
+public:
+ line_adaptor(shapeObj *shape):s(shape) {
+ m_line=s->line; /*first line*/
+ m_point=m_line->point; /*current vertex is first vertex of first line*/
+ m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
+ m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+ }
+
+ /* a class with virtual functions should also provide a virtual destructor */
+ virtual ~line_adaptor() {}
+
+ void rewind(unsigned) {
+ m_line=s->line; /*first line*/
+ m_point=m_line->point; /*current vertex is first vertex of first line*/
+ m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+ }
+
+ virtual unsigned vertex(double* x, double* y) {
+ if(m_point < m_pend) {
+ /*here we treat the case where a real vertex is returned*/
+ bool first = m_point == m_line->point; /*is this the first vertex of a line*/
+ *x = m_point->x;
+ *y = m_point->y;
+ m_point++;
+ return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+ }
+ /*if here, we're at the end of a line*/
+ m_line++;
+ *x = *y = 0.0;
+ if(m_line>=m_lend) /*is this the last line of the shapObj. normally,
+ (m_line==m_lend) should be a sufficient test, as the caller should not call
+ this function if a previous call returned path_cmd_stop.*/
+ return mapserver::path_cmd_stop; /*no more points to process*/
+
+ /*if here, there are more lines in the shapeObj, continue with next one*/
+ m_point=m_line->point; /*pointer to first point of next line*/
+ m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last point of next line*/
+
+ return vertex(x,y); /*this will return the first point of the next line*/
+ }
+protected:
+ shapeObj *s;
+ lineObj *m_line, /*current line pointer*/
+ *m_lend; /*points to after the last line*/
+ pointObj *m_point, /*current point*/
+ *m_pend; /*points to after last point of current line*/
+};
+
+
+class polygon_adaptor
+{
+public:
+ polygon_adaptor(shapeObj *shape):s(shape),m_stop(false) {
+ m_line=s->line; /*first lines*/
+ m_point=m_line->point; /*first vertex of first line*/
+ m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
+ m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+ }
+
+ /* a class with virtual functions should also provide a virtual destructor */
+ virtual ~polygon_adaptor() {}
+
+ void rewind(unsigned) {
+ /*reset pointers*/
+ m_stop=false;
+ m_line=s->line;
+ m_point=m_line->point;
+ m_pend=&(m_line->point[m_line->numpoints]);
+ }
+
+ virtual unsigned vertex(double* x, double* y) {
+ if(m_point < m_pend) {
+ /*if here, we have a real vertex*/
+ bool first = m_point == m_line->point;
+ *x = m_point->x;
+ *y = m_point->y;
+ m_point++;
+ return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+ }
+ *x = *y = 0.0;
+ if(!m_stop) {
+ /*if here, we're after the last vertex of the current line
+ * we return the command to close the current polygon*/
+ m_line++;
+ if(m_line>=m_lend) {
+ /*if here, we've finished all the vertexes of the shape.
+ * we still return the command to close the current polygon,
+ * but set m_stop so the subsequent call to vertex() will return
+ * the stop command*/
+ m_stop=true;
+ return mapserver::path_cmd_end_poly;
+ }
+ /*if here, there's another line in the shape, so we set the pointers accordingly
+ * and return the command to close the current polygon*/
+ m_point=m_line->point; /*first vertex of next line*/
+ m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of next line*/
+ return mapserver::path_cmd_end_poly;
+ }
+ /*if here, a previous call to vertex informed us that we'd consumed all the vertexes
+ * of the shape. return the command to stop processing this shape*/
+ return mapserver::path_cmd_stop;
+ }
+protected:
+ shapeObj *s;
+ double ox,oy;
+ lineObj *m_line, /*pointer to current line*/
+ *m_lend; /*pointer to after last line of the shape*/
+ pointObj *m_point, /*pointer to current vertex*/
+ *m_pend; /*pointer to after last vertex of current line*/
+ bool m_stop; /*should next call return stop command*/
+};
+
+mapserver::path_storage imageVectorSymbol(symbolObj *);
diff --git a/mapbits.c b/mapbits.c
index 7ca30ed..18a6c56 100644
--- a/mapbits.c
+++ b/mapbits.c
@@ -55,7 +55,7 @@ ms_bitarray msAllocBitArray(int numbits)
return(array);
}
-int msGetBit(ms_bitarray array, int index)
+int msGetBit(ms_const_bitarray array, int index)
{
array += index / MS_ARRAY_BIT;
return (*array & (1 << (index % MS_ARRAY_BIT))) != 0; /* 0 or 1 */
@@ -68,7 +68,7 @@ int msGetBit(ms_bitarray array, int index)
** If hits end of bitmap without finding set bit, will return -1.
**
*/
-int msGetNextBit(ms_bitarray array, int i, int size)
+int msGetNextBit(ms_const_bitarray array, int i, int size)
{
register ms_uint32 b;
diff --git a/mapcairo.c b/mapcairo.c
index 372debc..9f61db2 100644
--- a/mapcairo.c
+++ b/mapcairo.c
@@ -59,6 +59,8 @@
#include <gdal.h>
#endif
+#include "fontcache.h"
+
# include <cairo-ft.h>
/*
#include <pango/pangocairo.h>
@@ -70,27 +72,21 @@
#include FT_FREETYPE_H
*/
-typedef struct facecacheObj faceCacheObj;
-struct facecacheObj {
+typedef struct cairoFaceCache cairoFaceCache;
+struct cairoFaceCache {
cairo_font_face_t *face;
FT_Face ftface;
- char *path;
- faceCacheObj *next;
- cairo_user_data_key_t facekey;
+ cairo_font_options_t *options;
+ cairoFaceCache *next;
};
-int freeFaceCache(faceCacheObj *fc)
-{
- /* printf("***\nface %s has %d cairo references\n***\n",fc->path,cairo_font_face_get_reference_count(fc->face)); */
+void freeCairoFaceCache(cairoFaceCache *fc) {
cairo_font_face_destroy(fc->face);
- FT_Done_Face(fc->ftface);
- free(fc->path);
- return MS_SUCCESS;
+ cairo_font_options_destroy(fc->options);
}
typedef struct {
- faceCacheObj *facecache;
- FT_Library library;
+ cairoFaceCache *cairofacecache;
/* dummy surface and context */
unsigned char dummydata[4];
cairo_surface_t *dummysurface;
@@ -102,8 +98,7 @@ void initializeCache(void **vcache)
cairoCacheData *cache = (cairoCacheData*)malloc(sizeof(cairoCacheData));
*vcache = cache;
- cache->facecache = NULL;
- FT_Init_FreeType(&(cache->library));
+ cache->cairofacecache = NULL;
/* dummy surface and context */
cache->dummysurface = cairo_image_surface_create_for_data(cache->dummydata, CAIRO_FORMAT_ARGB32, 1,1,4);
cache->dummycr = cairo_create(cache->dummysurface);
@@ -119,18 +114,17 @@ int cleanupCairo(void *cache)
if(ccache->dummysurface) {
cairo_surface_destroy(ccache->dummysurface);
}
- if(ccache->facecache) {
- faceCacheObj *next,*cur;
- cur = ccache->facecache;
+ if(ccache->cairofacecache) {
+ cairoFaceCache *next,*cur;
+ cur = ccache->cairofacecache;
do {
next = cur->next;
- freeFaceCache(cur);
+ freeCairoFaceCache(cur);
free(cur);
cur=next;
} while(cur);
}
- if(ccache->library)
- FT_Done_FreeType(ccache->library);
+
free(ccache);
return MS_SUCCESS;
}
@@ -166,40 +160,21 @@ int freeImageCairo(imageObj *img)
return MS_SUCCESS;
}
-
-faceCacheObj *getFontFace(cairoCacheData *cache, const char *font)
-{
- faceCacheObj *newface = NULL;
- faceCacheObj *cur=cache->facecache;
+static cairoFaceCache* getCairoFontFace(cairoCacheData *cache, FT_Face ftface) {
+ cairoFaceCache *cur = cache->cairofacecache;
while(cur) {
- if(!strcmp(cur->path,font))
- return cur;
+ if(cur->ftface == ftface) return cur;
cur = cur->next;
}
- newface = malloc(sizeof(faceCacheObj));
-
- if(FT_New_Face(cache->library, font, 0, &(newface->ftface))) {
- msSetError(MS_RENDERERERR,"Freetype failed to open font %s","getFontFace()",font);
- free(newface);
- return NULL;
- }
-
- /* Try to select charmap */
- if (!newface->ftface->charmap) {
- if( FT_Select_Charmap(newface->ftface, FT_ENCODING_MS_SYMBOL) )
- FT_Select_Charmap(newface->ftface, FT_ENCODING_APPLE_ROMAN );
- }
-
- newface->next = cache->facecache;
- cache->facecache = newface;
- newface->face = cairo_ft_font_face_create_for_ft_face(newface->ftface, 0);
-
- cairo_font_face_set_user_data (newface->face, &newface->facekey,
- &(newface->ftface), (cairo_destroy_func_t) NULL); // we call FT_Done_Face ourselves in freeFaceCache
-
- newface->path = msStrdup(font);
- return newface;
-}
+ cur = msSmallMalloc(sizeof(cairoFaceCache));
+ cur->next = cache->cairofacecache;
+ cache->cairofacecache = cur;
+ cur->ftface = ftface;
+ cur->face = cairo_ft_font_face_create_for_ft_face(ftface, 0);
+ cur->options = cairo_font_options_create();
+ cairo_font_options_set_hint_style(cur->options,CAIRO_HINT_STYLE_NONE);
+ return cur;
+}
#define msCairoSetSourceColor(cr, c) cairo_set_source_rgba((cr),(c)->red/255.0,(c)->green/255.0,(c)->blue/255.0,(c)->alpha/255.0);
@@ -418,65 +393,6 @@ int renderSVGSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
#endif
}
-int renderTruetypeSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
- symbolStyleObj *s)
-{
- int unicode;
- cairo_glyph_t glyph;
- cairo_text_extents_t extents;
-
- cairo_matrix_t trans;
- double ox,oy;
- cairoCacheData *cache = MS_IMAGE_RENDERER_CACHE(img);
- cairo_renderer *r = CAIRO_RENDERER(img);
- faceCacheObj *face = getFontFace(cache,symbol->full_font_path);
-
- if(!face) return MS_FAILURE;
-
- cairo_save(r->cr);
- cairo_set_font_face(r->cr,face->face);
- cairo_set_font_size(r->cr,s->scale*96/72.0);
-
-
- msUTF8ToUniChar(symbol->character, &unicode);
-
- if (face->ftface->charmap &&
- face->ftface->charmap->encoding == FT_ENCODING_MS_SYMBOL)
- unicode |= 0xf000;
-
- glyph.index = FT_Get_Char_Index(face->ftface, unicode);
- glyph.x=0;
- glyph.y=0;
- cairo_glyph_extents(r->cr,&glyph,1,&extents);
- ox=extents.x_bearing+extents.width/2.;
- oy=extents.y_bearing+extents.height/2.;
-
-
-
- cairo_matrix_init_rotate(&trans,-s->rotation);
-
- cairo_matrix_transform_point(&trans,&ox,&oy);
- /* cairo_translate(cr,-extents.width/2,-extents.height/2); */
-
- cairo_translate(r->cr,x-ox,y-oy);
- cairo_rotate(r->cr, -s->rotation);
-
- cairo_glyph_path(r->cr,&glyph,1);
-
- if (s->outlinewidth) {
- msCairoSetSourceColor(r->cr, s->outlinecolor);
- cairo_set_line_width(r->cr, s->outlinewidth + 1);
- cairo_stroke_preserve(r->cr);
- }
- if(s->color) {
- msCairoSetSourceColor(r->cr, s->color);
- cairo_fill_preserve(r->cr);
- }
- cairo_new_path(r->cr);
- cairo_restore(r->cr);
- return MS_SUCCESS;
-}
-
int renderTileCairo(imageObj *img, imageObj *tile, double x, double y)
{
cairo_renderer *r = CAIRO_RENDERER(img);
@@ -492,189 +408,49 @@ int renderTileCairo(imageObj *img, imageObj *tile, double x, double y)
return MS_SUCCESS;
}
-#define CAIROLINESPACE 1.33
-
-int getTruetypeTextBBoxCairo(rendererVTableObj *renderer, char **fonts, int numfonts, double size,
- char *text, rectObj *rect, double **advances, int bAdjustBaseline)
-{
- cairoCacheData *cache = MS_RENDERER_CACHE(renderer);
- faceCacheObj* face = getFontFace(cache,fonts[0]);
-
- int curfontidx = 0;
- char *utfptr=text;
- int i,unicode;
- unsigned long previdx=0;
- faceCacheObj* prevface = face;
- int numglyphs = msGetNumGlyphs(text);
- cairo_glyph_t glyph;
- cairo_text_extents_t extents;
- double px=0,py=0;
-
- if(face == NULL) {
- return MS_FAILURE;
- }
-
- cairo_set_font_face(cache->dummycr,face->face);
- cairo_set_font_size(cache->dummycr,size*96/72.0);
-
- if(advances != NULL) {
- *advances = (double*)malloc(numglyphs*sizeof(double));
- }
-
- for(i=0; i<numglyphs; i++) {
- utfptr+=msUTF8ToUniChar(utfptr, &unicode);
- glyph.x=px;
- glyph.y=py;
- if(unicode=='\n') {
- py += ceil(size*CAIROLINESPACE);
- px = 0;
- previdx=0;
- continue;
- }
-
- if (curfontidx != 0) {
- face = getFontFace(cache, fonts[0]);
- cairo_set_font_face(cache->dummycr, face->face);
- curfontidx = 0;
- }
-
- if (face->ftface->charmap &&
- face->ftface->charmap->encoding == FT_ENCODING_MS_SYMBOL)
- unicode |= 0xf000;
-
- glyph.index = FT_Get_Char_Index(face->ftface, unicode);
-
- if (glyph.index == 0) {
- int j;
- for (j = 1; j < numfonts; j++) {
- curfontidx = j;
- face = getFontFace(cache, fonts[j]);
- glyph.index = FT_Get_Char_Index(face->ftface, unicode);
- if (glyph.index != 0) {
- cairo_set_font_face(cache->dummycr, face->face);
- break;
- }
- }
- }
-
- if( FT_HAS_KERNING((prevface->ftface)) && previdx ) {
- FT_Vector delta;
- FT_Get_Kerning( prevface->ftface, previdx, glyph.index, FT_KERNING_DEFAULT, &delta );
- px += delta.x / 64.;
- }
- cairo_glyph_extents(cache->dummycr,&glyph,1,&extents);
-
- if(i==0) {
- rect->minx = px+extents.x_bearing;
- rect->miny = py+extents.y_bearing;
- rect->maxx = px+extents.x_bearing+extents.width;
- rect->maxy = py+(bAdjustBaseline?1:(extents.y_bearing+extents.height));
- } else {
- rect->minx = MS_MIN(rect->minx,px+extents.x_bearing);
- rect->miny = MS_MIN(rect->miny,py+extents.y_bearing);
- rect->maxy = MS_MAX(rect->maxy,py+(bAdjustBaseline?1:(extents.y_bearing+extents.height)));
- rect->maxx = MS_MAX(rect->maxx,px+extents.x_bearing+extents.width);
- }
- if(advances!=NULL)
- (*advances)[i]=extents.x_advance;
- px += extents.x_advance;
- previdx=glyph.index;
- prevface = face;
- }
- return MS_SUCCESS;
-}
-
-int renderGlyphsCairo(imageObj *img,double x, double y, labelStyleObj *style, char *text)
-{
+int renderGlyphs2Cairo(imageObj *img, textPathObj *tp, colorObj *c, colorObj *oc, int ow) {
cairo_renderer *r = CAIRO_RENDERER(img);
cairoCacheData *cache = MS_IMAGE_RENDERER_CACHE(img);
- faceCacheObj* face = getFontFace(cache,style->fonts[0]);
-
- int curfontidx = 0;
- char *utfptr=text;
- int i,unicode;
- unsigned long previdx=0;
- faceCacheObj* prevface = face;
- int numglyphs = msGetNumGlyphs(text);
- cairo_glyph_t glyph;
- cairo_text_extents_t extents;
- double px=0,py=0;
-
- if(face == NULL) {
- return MS_FAILURE;
- }
-
- cairo_set_font_face(r->cr,face->face);
- cairo_set_font_size(r->cr,style->size*96/72.0);
-
- cairo_save(r->cr);
- cairo_translate(r->cr,MS_NINT(x),MS_NINT(y));
- if(style->rotation != 0.0)
- cairo_rotate(r->cr, -style->rotation);
-
- for(i=0; i<numglyphs; i++) {
- utfptr+=msUTF8ToUniChar(utfptr, &unicode);
- glyph.x=px;
- glyph.y=py;
- if(unicode=='\n') {
- py += ceil(style->size*CAIROLINESPACE);
- px = 0;
- previdx=0;
- continue;
- }
- if(curfontidx != 0) {
- face = getFontFace(cache,style->fonts[0]);
- cairo_set_font_face(r->cr,face->face);
- curfontidx = 0;
- }
-
- if (face->ftface->charmap &&
- face->ftface->charmap->encoding == FT_ENCODING_MS_SYMBOL)
- unicode |= 0xf000;
-
- glyph.index = FT_Get_Char_Index(face->ftface, unicode);
- if(glyph.index == 0) {
- int j;
- for(j=1; j<style->numfonts; j++) {
- curfontidx = j;
- face = getFontFace(cache,style->fonts[j]);
- glyph.index = FT_Get_Char_Index(face->ftface, unicode);
- if(glyph.index != 0) {
- cairo_set_font_face(r->cr,face->face);
- break;
- }
- }
- }
-
- if( FT_HAS_KERNING((prevface->ftface)) && previdx ) {
- FT_Vector delta;
- FT_Get_Kerning( prevface->ftface, previdx, glyph.index, FT_KERNING_DEFAULT, &delta );
- px += delta.x / 64.;
+ cairoFaceCache *cairo_face = NULL;
+ FT_Face prevface = NULL;
+ int g;
+
+ cairo_set_font_size(r->cr,MS_NINT(tp->glyph_size * 96.0/72.0));
+ for(g=0;g<tp->numglyphs;g++) {
+ glyphObj *gl = &tp->glyphs[g];
+ cairo_glyph_t glyph;
+ /* load the glyph's face into cairo, if not already present */
+ if(gl->face->face != prevface) {
+ cairo_face = getCairoFontFace(cache,gl->face->face);
+ cairo_set_font_face(r->cr, cairo_face->face);
+ cairo_set_font_options(r->cr,cairo_face->options);
+ prevface = gl->face->face;
+ cairo_set_font_size(r->cr,MS_NINT(tp->glyph_size * 96.0/72.0));
}
- cairo_glyph_extents(r->cr,&glyph,1,&extents);
+ cairo_save(r->cr);
+ cairo_translate(r->cr,gl->pnt.x,gl->pnt.y);
+ if(gl->rot != 0.0)
+ cairo_rotate(r->cr, -gl->rot);
+ glyph.x = glyph.y = 0;
+ glyph.index = gl->glyph->key.codepoint;
cairo_glyph_path(r->cr,&glyph,1);
- px += extents.x_advance;
- previdx=glyph.index;
- prevface=face;
+ cairo_restore(r->cr);
}
-
- if (style->outlinewidth > 0) {
+ if (oc) {
cairo_save(r->cr);
- msCairoSetSourceColor(r->cr, style->outlinecolor);
- cairo_set_line_width(r->cr, style->outlinewidth + 1);
+ msCairoSetSourceColor(r->cr, oc);
+ cairo_set_line_width(r->cr, ow + 1);
cairo_stroke_preserve(r->cr);
cairo_restore(r->cr);
}
- if(style->color) {
- msCairoSetSourceColor(r->cr, style->color);
+ if(c) {
+ msCairoSetSourceColor(r->cr, c);
cairo_fill(r->cr);
}
cairo_new_path(r->cr);
- cairo_restore(r->cr);
return MS_SUCCESS;
}
-
cairo_status_t _stream_write_fn(void *b, const unsigned char *data, unsigned int length)
{
msBufferAppend((bufferObj*)b,(void*)data,length);
@@ -855,9 +631,7 @@ static void msTransformToGeospatialPDF(imageObj *img, mapObj *map, cairo_rendere
msBufferResize(r->outputStream, nFileSize);
VSIFSeekL(fp, 0, SEEK_SET);
- VSIFReadL(r->outputStream->data, 1, nFileSize, fp);
-
- r->outputStream->size = nFileSize;
+ r->outputStream->size = VSIFReadL(r->outputStream->data, 1, nFileSize, fp);
VSIFCloseL(fp);
fp = NULL;
@@ -932,7 +706,7 @@ int renderEllipseSymbolCairo(imageObj *img, double x, double y, symbolObj *symbo
int startLayerVectorCairo(imageObj *img, mapObj *map, layerObj *layer)
{
- if(layer->opacity<100) {
+ if(layer->compositer && layer->compositer->opacity<100) {
cairo_renderer *r = CAIRO_RENDERER(img);
cairo_push_group (r->cr);
}
@@ -941,10 +715,10 @@ int startLayerVectorCairo(imageObj *img, mapObj *map, layerObj *layer)
int closeLayerVectorCairo(imageObj *img, mapObj *map, layerObj *layer)
{
- if(layer->opacity<100) {
+ if(layer->compositer && layer->compositer->opacity<100) {
cairo_renderer *r = CAIRO_RENDERER(img);
cairo_pop_group_to_source (r->cr);
- cairo_paint_with_alpha (r->cr, layer->opacity*0.01);
+ cairo_paint_with_alpha (r->cr, layer->compositer->opacity*0.01);
}
return MS_SUCCESS;
}
@@ -990,7 +764,7 @@ int getRasterBufferCopyCairo(imageObj *img, rasterBufferObj *rb)
rb->data.rgba.pixel_step=4;
rb->width = cairo_image_surface_get_width(r->surface);
rb->height = cairo_image_surface_get_height(r->surface);
- pb = (unsigned char*)malloc(rb->height * rb->data.rgba.row_step * sizeof(unsigned char*));
+ pb = (unsigned char*)malloc(rb->height * rb->data.rgba.row_step * sizeof(unsigned char));
memcpy(pb,cairo_image_surface_get_data(r->surface),rb->height * rb->data.rgba.row_step);
rb->data.rgba.pixels = pb;
rb->data.rgba.r = &(pb[2]);
@@ -1003,7 +777,85 @@ int getRasterBufferCopyCairo(imageObj *img, rasterBufferObj *rb)
return MS_SUCCESS;
}
+static cairo_operator_t ms2cairo_compop(CompositingOperation op) {
+ switch(op) {
+ case MS_COMPOP_CLEAR:
+ return CAIRO_OPERATOR_CLEAR;
+ case MS_COMPOP_SRC:
+ return CAIRO_OPERATOR_SOURCE;
+ case MS_COMPOP_DST:
+ return CAIRO_OPERATOR_DEST;
+ case MS_COMPOP_SRC_OVER:
+ return CAIRO_OPERATOR_OVER;
+ case MS_COMPOP_DST_OVER:
+ return CAIRO_OPERATOR_DEST_OVER;
+ case MS_COMPOP_SRC_IN:
+ return CAIRO_OPERATOR_IN;
+ case MS_COMPOP_DST_IN:
+ return CAIRO_OPERATOR_DEST_IN;
+ case MS_COMPOP_SRC_OUT:
+ return CAIRO_OPERATOR_OUT;
+ case MS_COMPOP_DST_OUT:
+ return CAIRO_OPERATOR_DEST_OUT;
+ case MS_COMPOP_SRC_ATOP:
+ return CAIRO_OPERATOR_ATOP;
+ case MS_COMPOP_DST_ATOP:
+ return CAIRO_OPERATOR_DEST_ATOP;
+ case MS_COMPOP_XOR:
+ return CAIRO_OPERATOR_XOR;
+ case MS_COMPOP_PLUS:
+ return CAIRO_OPERATOR_ADD;
+ case MS_COMPOP_MULTIPLY:
+ return CAIRO_OPERATOR_MULTIPLY;
+ case MS_COMPOP_SCREEN:
+ return CAIRO_OPERATOR_SCREEN;
+ case MS_COMPOP_OVERLAY:
+ return CAIRO_OPERATOR_OVERLAY;
+ case MS_COMPOP_DARKEN:
+ return CAIRO_OPERATOR_DARKEN;
+ case MS_COMPOP_LIGHTEN:
+ return CAIRO_OPERATOR_LIGHTEN;
+ case MS_COMPOP_COLOR_DODGE:
+ return CAIRO_OPERATOR_COLOR_DODGE;
+ case MS_COMPOP_COLOR_BURN:
+ return CAIRO_OPERATOR_COLOR_BURN;
+ case MS_COMPOP_HARD_LIGHT:
+ return CAIRO_OPERATOR_HARD_LIGHT;
+ case MS_COMPOP_SOFT_LIGHT:
+ return CAIRO_OPERATOR_SOFT_LIGHT;
+ case MS_COMPOP_DIFFERENCE:
+ return CAIRO_OPERATOR_DIFFERENCE;
+ case MS_COMPOP_EXCLUSION:
+ return CAIRO_OPERATOR_EXCLUSION;
+ case MS_COMPOP_INVERT:
+ case MS_COMPOP_INVERT_RGB:
+ case MS_COMPOP_MINUS:
+ case MS_COMPOP_CONTRAST:
+ default:
+ return CAIRO_OPERATOR_OVER;
+ }
+}
+int cairoCompositeRasterBuffer(imageObj *img, rasterBufferObj *rb, CompositingOperation comp, int opacity) {
+ cairo_surface_t *src;
+ cairo_renderer *r;
+ if(rb->type != MS_BUFFER_BYTE_RGBA) {
+ return MS_FAILURE;
+ }
+ r = CAIRO_RENDERER(img);
+
+ src = cairo_image_surface_create_for_data(rb->data.rgba.pixels,CAIRO_FORMAT_ARGB32,
+ rb->width,rb->height,
+ rb->data.rgba.row_step);
+
+ cairo_set_source_surface (r->cr,src,0,0);
+ cairo_set_operator(r->cr, ms2cairo_compop(comp));
+ cairo_paint_with_alpha(r->cr,opacity/100.0);
+ cairo_surface_finish(src);
+ cairo_surface_destroy(src);
+ cairo_set_operator(r->cr,CAIRO_OPERATOR_OVER);
+ return MS_SUCCESS;
+}
int mergeRasterBufferCairo(imageObj *img, rasterBufferObj *rb, double opacity,
int srcX, int srcY, int dstX, int dstY,
@@ -1012,7 +864,7 @@ int mergeRasterBufferCairo(imageObj *img, rasterBufferObj *rb, double opacity,
cairo_surface_t *src;
cairo_renderer *r;
/* not implemented for src,dst,width and height */
- if(!rb->type == MS_BUFFER_BYTE_RGBA) {
+ if(rb->type != MS_BUFFER_BYTE_RGBA) {
return MS_FAILURE;
}
r = CAIRO_RENDERER(img);
@@ -1038,6 +890,7 @@ int mergeRasterBufferCairo(imageObj *img, rasterBufferObj *rb, double opacity,
void freeSVGCache(symbolObj *s) {
#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
struct svg_symbol_cache *cache = s->renderer_cache;
+ if(!cache) return;
assert(cache->svgc);
#ifdef USE_SVG_CAIRO
svg_cairo_destroy(cache->svgc);
@@ -1135,6 +988,7 @@ int msPreloadSVGSymbol(symbolObj *symbol)
cache->svgc = rsvg_handle_new_from_file(symbol->full_pixmap_path,NULL);
if(!cache->svgc) {
msSetError(MS_RENDERERERR,"failed to load svg file %s", "msPreloadSVGSymbol()", symbol->full_pixmap_path);
+ return MS_FAILURE;
}
rsvg_handle_get_dimensions_sub (cache->svgc, &dim, NULL);
symbol->sizex = dim.width;
@@ -1163,11 +1017,6 @@ int msRenderRasterizedSVGSymbol(imageObj *img, double x, double y, symbolObj *sy
symbolStyleObj pixstyle;
symbolObj pixsymbol;
- if(img->format->renderer == MS_RENDER_WITH_GD) {
- msSetError(MS_MISCERR, "GD renderer does not support SVG symbols", "msRenderRasterizedSVGSymbol()");
- return MS_FAILURE;
- }
-
if(MS_SUCCESS != msPreloadSVGSymbol(symbol))
return MS_FAILURE;
svg_cache = (struct svg_symbol_cache*) symbol->renderer_cache;
@@ -1256,7 +1105,7 @@ int msPopulateRendererVTableCairoRaster( rendererVTableObj *renderer )
{
#ifdef USE_CAIRO
renderer->supports_pixel_buffer=1;
- renderer->supports_transparent_layers = 0;
+ renderer->compositeRasterBuffer = cairoCompositeRasterBuffer;
renderer->supports_svg = 1;
renderer->default_transform_mode = MS_TRANSFORM_SIMPLIFY;
initializeCache(&MS_RENDERER_CACHE(renderer));
@@ -1269,15 +1118,13 @@ int msPopulateRendererVTableCairoRaster( rendererVTableObj *renderer )
renderer->getRasterBufferHandle=&getRasterBufferHandleCairo;
renderer->getRasterBufferCopy=&getRasterBufferCopyCairo;
renderer->renderPolygon=&renderPolygonCairo;
- renderer->renderGlyphs=&renderGlyphsCairo;
+ renderer->renderGlyphs=&renderGlyphs2Cairo;
renderer->freeImage=&freeImageCairo;
renderer->renderEllipseSymbol = &renderEllipseSymbolCairo;
renderer->renderVectorSymbol = &renderVectorSymbolCairo;
- renderer->renderTruetypeSymbol = &renderTruetypeSymbolCairo;
renderer->renderSVGSymbol = &renderSVGSymbolCairo;
renderer->renderPixmapSymbol = &renderPixmapSymbolCairo;
renderer->mergeRasterBuffer = &mergeRasterBufferCairo;
- renderer->getTruetypeTextBBox = &getTruetypeTextBBoxCairo;
renderer->renderTile = &renderTileCairo;
renderer->loadImageFromFile = &msLoadMSRasterBufferFromFile;
renderer->renderPolygonTiled = &renderPolygonTiledCairo;
@@ -1296,7 +1143,7 @@ int populateRendererVTableCairoVector( rendererVTableObj *renderer )
#ifdef USE_CAIRO
renderer->use_imagecache=0;
renderer->supports_pixel_buffer=0;
- renderer->supports_transparent_layers = 1;
+ renderer->compositeRasterBuffer = NULL;
renderer->supports_svg = 1;
renderer->default_transform_mode = MS_TRANSFORM_SIMPLIFY;
initializeCache(&MS_RENDERER_CACHE(renderer));
@@ -1309,17 +1156,15 @@ int populateRendererVTableCairoVector( rendererVTableObj *renderer )
renderer->saveImageBuffer = &saveImageBufferCairo;
renderer->getRasterBufferHandle=&getRasterBufferHandleCairo;
renderer->renderPolygon=&renderPolygonCairo;
- renderer->renderGlyphs=&renderGlyphsCairo;
+ renderer->renderGlyphs=&renderGlyphs2Cairo;
renderer->freeImage=&freeImageCairo;
renderer->renderEllipseSymbol = &renderEllipseSymbolCairo;
renderer->renderVectorSymbol = &renderVectorSymbolCairo;
- renderer->renderTruetypeSymbol = &renderTruetypeSymbolCairo;
renderer->renderSVGSymbol = &renderSVGSymbolCairo;
renderer->renderPixmapSymbol = &renderPixmapSymbolCairo;
renderer->loadImageFromFile = &msLoadMSRasterBufferFromFile;
renderer->mergeRasterBuffer = &mergeRasterBufferCairo;
renderer->initializeRasterBuffer = initializeRasterBufferCairo;
- renderer->getTruetypeTextBBox = &getTruetypeTextBBoxCairo;
renderer->renderTile = &renderTileCairo;
renderer->renderPolygonTiled = &renderPolygonTiledCairo;
renderer->freeSymbol = &freeSymbolCairo;
diff --git a/mapchart.c b/mapchart.c
index 9c2267b..40cc911 100644
--- a/mapchart.c
+++ b/mapchart.c
@@ -109,7 +109,7 @@ int findChartPoint(mapObj *map, shapeObj *shape, int width, int height, pointObj
}
}
-void drawRectangle(mapObj *map, imageObj *image, double mx, double my, double Mx, double My,
+int WARN_UNUSED drawRectangle(mapObj *map, imageObj *image, double mx, double my, double Mx, double My,
styleObj *style)
{
shapeObj shape;
@@ -125,10 +125,10 @@ void drawRectangle(mapObj *map, imageObj *image, double mx, double my, double Mx
point[1].x = point[2].x = Mx;
point[2].y = point[3].y = My;
- msDrawShadeSymbol(&map->symbolset,image,&shape,style,1.0);
+ return msDrawShadeSymbol(map,image,&shape,style,1.0);
}
-int msDrawVBarChart(mapObj *map, imageObj *image, pointObj *center,
+int WARN_UNUSED msDrawVBarChart(mapObj *map, imageObj *image, pointObj *center,
double *values, styleObj **styles, int numvalues,
double barWidth)
{
@@ -145,7 +145,8 @@ int msDrawVBarChart(mapObj *map, imageObj *image, pointObj *center,
left = center->x-barWidth/2.;
for(c=0; c<numvalues; c++) {
- drawRectangle(map, image, left, cur, left+barWidth, cur-values[c], styles[c]);
+ if(UNLIKELY(MS_FAILURE == drawRectangle(map, image, left, cur, left+barWidth, cur-values[c], styles[c])))
+ return MS_FAILURE;
cur -= values[c];
}
return MS_SUCCESS;
@@ -194,27 +195,28 @@ int msDrawBarChart(mapObj *map, imageObj *image, pointObj *center,
vertOriginClipped=(vertOrigin<top) ? top :
(vertOrigin>bottom) ? bottom : vertOrigin;
horizStart=left;
- /*
- color = gdImageColorAllocate(image->img.gd, 0,0,0);
- gdImageRectangle(image->img.gd, left-1,top-1, center.x+width/2.+1,bottom+1,color);
- */
+
for(c=0; c<numvalues; c++) {
double barHeight=values[c]*pixperval;
/*clip bars*/
y=((vertOrigin-barHeight)<top) ? top :
(vertOrigin-barHeight>bottom) ? bottom : vertOrigin-barHeight;
if(y!=vertOriginClipped) { /*don't draw bars of height == 0 (i.e. either values==0, or clipped)*/
- if(values[c]>0)
- drawRectangle(map, image, horizStart, y, horizStart+barWidth-1, vertOriginClipped, styles[c]);
- else
- drawRectangle(map,image, horizStart, vertOriginClipped, horizStart+barWidth-1 , y, styles[c]);
+ if(values[c]>0) {
+ if(UNLIKELY(MS_FAILURE == drawRectangle(map, image, horizStart, y, horizStart+barWidth-1, vertOriginClipped, styles[c])))
+ return MS_FAILURE;
+ }
+ else {
+ if(UNLIKELY(MS_FAILURE == drawRectangle(map,image, horizStart, vertOriginClipped, horizStart+barWidth-1 , y, styles[c])))
+ return MS_FAILURE;
+ }
}
horizStart+=barWidth;
}
return MS_SUCCESS;
}
-int msDrawPieChart(mapObj *map, imageObj *image,
+int WARN_UNUSED msDrawPieChart(mapObj *map, imageObj *image,
pointObj *center, double diameter,
double *values, styleObj **styles, int numvalues)
{
@@ -233,7 +235,8 @@ int msDrawPieChart(mapObj *map, imageObj *image,
double angle = values[i];
if(angle==0) continue; /*no need to draw. causes artifacts with outlines*/
angle*=360.0/dTotal;
- msDrawPieSlice(&map->symbolset,image, center, styles[i], diameter/2., start, start+angle);
+ if(UNLIKELY(MS_FAILURE == msDrawPieSlice(map ,image, center, styles[i], diameter/2., start, start+angle)))
+ return MS_FAILURE;
start+=angle;
}
diff --git a/mapcluster.c b/mapcluster.c
index 04c6b7c..ce6d5ce 100644
--- a/mapcluster.c
+++ b/mapcluster.c
@@ -41,11 +41,13 @@
#endif
/* custom attributes provided by this layer data source */
-#define MSCLUSTER_NUMITEMS 2
-#define MSCLUSTER_FEATURECOUNT "Cluster:FeatureCount"
+#define MSCLUSTER_NUMITEMS 3
+#define MSCLUSTER_FEATURECOUNT "Cluster_FeatureCount"
#define MSCLUSTER_FEATURECOUNTINDEX -100
-#define MSCLUSTER_GROUP "Cluster:Group"
+#define MSCLUSTER_GROUP "Cluster_Group"
#define MSCLUSTER_GROUPINDEX -101
+#define MSCLUSTER_BASEFID "Cluster_BaseFID"
+#define MSCLUSTER_BASEFIDINDEX -102
typedef struct cluster_tree_node clusterTreeNode;
typedef struct cluster_info clusterInfo;
@@ -115,6 +117,10 @@ struct cluster_layer_info {
clusterInfo* current;
/* check whether all shapes should be returned behind a cluster */
int get_all_shapes;
+ /* check whether the location of the shapes should be preserved (no averaging) */
+ int keep_locations;
+ /* the maxdistance and the buffer parameters are specified in map units (scale independent clustering) */
+ int use_map_units;
double rank;
/* root node of the quad tree */
clusterTreeNode* root;
@@ -496,6 +502,11 @@ static void InitShapeAttributes(layerObj* layer, clusterInfo* base)
base->shape.values[i] = msStrdup(base->group);
else
base->shape.values[i] = msStrdup("");
+ } else if (itemindexes[i] == MSCLUSTER_BASEFIDINDEX) {
+ if (base->shape.values[i])
+ msFree(base->shape.values[i]);
+
+ base->shape.values[i] = msIntToString(base->shape.index);
} else if (EQUALN(layer->items[i], "Count:", 6)) {
if (base->shape.values[i])
msFree(base->shape.values[i]);
@@ -522,6 +533,12 @@ static void UpdateShapeAttributes(layerObj* layer, clusterInfo* base, clusterInf
if (current->shape.numvalues <= i)
break;
+ /* setting the base feature index for each cluster member */
+ if (itemindexes[i] == MSCLUSTER_BASEFIDINDEX) {
+ msFree(current->shape.values[i]);
+ current->shape.values[i] = msIntToString(base->shape.index);
+ }
+
if (current->shape.values[i]) {
if (EQUALN(layer->items[i], "Min:", 4)) {
if (strcasecmp(base->shape.values[i], current->shape.values[i]) > 0) {
@@ -541,11 +558,6 @@ static void UpdateShapeAttributes(layerObj* layer, clusterInfo* base, clusterInf
int count = atoi(base->shape.values[i]) + 1;
msFree(base->shape.values[i]);
base->shape.values[i] = msIntToString(count);
- } else if (!EQUAL(base->shape.values[i], current->shape.values[i])
- && !EQUAL(base->shape.values[i], "")) {
- /* clear the value if that doesn't match */
- msFree(base->shape.values[i]);
- base->shape.values[i] = msStrdup("");
}
}
}
@@ -567,6 +579,8 @@ static int BuildFeatureAttributes(layerObj* layer, msClusterLayerInfo* layerinfo
values[i] = NULL; /* not yet assigned */
} else if (itemindexes[i] == MSCLUSTER_GROUPINDEX) {
values[i] = NULL; /* not yet assigned */
+ } else if (itemindexes[i] == MSCLUSTER_BASEFIDINDEX) {
+ values[i] = NULL; /* not yet assigned */
} else if (shape->values[itemindexes[i]])
values[i] = msStrdup(shape->values[itemindexes[i]]);
else
@@ -779,8 +793,11 @@ int selectClusterShape(layerObj* layer, long shapeindex)
current->next = current->siblings;
layerinfo->current = current;
- current->shape.line[0].point[0].x = current->shape.bounds.minx = current->shape.bounds.maxx = current->avgx;
- current->shape.line[0].point[0].y = current->shape.bounds.miny = current->shape.bounds.maxy = current->avgy;
+
+ if (layerinfo->keep_locations == MS_FALSE) {
+ current->shape.line[0].point[0].x = current->shape.bounds.minx = current->shape.bounds.maxx = current->avgx;
+ current->shape.line[0].point[0].y = current->shape.bounds.miny = current->shape.bounds.maxy = current->avgy;
+ }
return MS_SUCCESS;
}
@@ -893,6 +910,19 @@ int RebuildClusters(layerObj *layer, int isQuery)
else
layerinfo->get_all_shapes = MS_FALSE;
+ /* check whether the location of the shapes should be preserved (no averaging) */
+ if(msLayerGetProcessingKey(layer, "CLUSTER_KEEP_LOCATIONS") != NULL)
+ layerinfo->keep_locations = MS_TRUE;
+ else
+ layerinfo->keep_locations = MS_FALSE;
+
+ /* check whether the maxdistance and the buffer parameters
+ are specified in map units (scale independent clustering) */
+ if(msLayerGetProcessingKey(layer, "CLUSTER_USE_MAP_UNITS") != NULL)
+ layerinfo->use_map_units = MS_TRUE;
+ else
+ layerinfo->use_map_units = MS_FALSE;
+
/* identify the current extent */
if(layer->transform == MS_TRUE)
searchrect = map->extent;
@@ -931,16 +961,25 @@ int RebuildClusters(layerObj *layer, int isQuery)
/* trying to find a reasonable quadtree depth */
depth = 0;
distance = layer->cluster.maxdistance;
- while ((distance < map->width || distance < map->height) && depth <= TREE_MAX_DEPTH) {
- distance *= 2;
- ++depth;
+ if (layerinfo->use_map_units == MS_TRUE) {
+ while ((distance < (searchrect.maxx - searchrect.minx) || distance < (searchrect.maxy - searchrect.miny)) && depth <= TREE_MAX_DEPTH) {
+ distance *= 2;
+ ++depth;
+ }
+ cellSizeX = 1;
+ cellSizeY = 1;
+ }
+ else {
+ while ((distance < map->width || distance < map->height) && depth <= TREE_MAX_DEPTH) {
+ distance *= 2;
+ ++depth;
+ }
+ cellSizeX = MS_CELLSIZE(searchrect.minx, searchrect.maxx, map->width);
+ cellSizeY = MS_CELLSIZE(searchrect.miny, searchrect.maxy, map->height);
}
layerinfo->depth = depth;
- cellSizeX = MS_CELLSIZE(searchrect.minx, searchrect.maxx, map->width);
- cellSizeY = MS_CELLSIZE(searchrect.miny, searchrect.maxy, map->height);
-
maxDistanceX = layer->cluster.maxdistance * cellSizeX;
maxDistanceY = layer->cluster.maxdistance * cellSizeY;
@@ -1213,6 +1252,8 @@ int msClusterLayerInitItemInfo(layerObj *layer)
itemindexes[i] = MSCLUSTER_FEATURECOUNTINDEX;
else if (EQUAL(layer->items[i], MSCLUSTER_GROUP))
itemindexes[i] = MSCLUSTER_GROUPINDEX;
+ else if (EQUAL(layer->items[i], MSCLUSTER_BASEFID))
+ itemindexes[i] = MSCLUSTER_BASEFIDINDEX;
else
itemindexes[i] = numitems++;
}
@@ -1266,8 +1307,10 @@ static int prepareShape(layerObj* layer, msClusterLayerInfo* layerinfo, clusterI
}
/* update the positions of the cluster shape */
- shape->line[0].point[0].x = shape->bounds.minx = shape->bounds.maxx = current->avgx;
- shape->line[0].point[0].y = shape->bounds.miny = shape->bounds.maxy = current->avgy;
+ if (layerinfo->keep_locations == MS_FALSE) {
+ shape->line[0].point[0].x = shape->bounds.minx = shape->bounds.maxx = current->avgx;
+ shape->line[0].point[0].y = shape->bounds.miny = shape->bounds.maxy = current->avgy;
+ }
return MS_SUCCESS;
}
@@ -1330,6 +1373,7 @@ int msClusterLayerGetItems(layerObj *layer)
layer->items = msSmallMalloc(sizeof(char*) * (layer->numitems));
layer->items[0] = msStrdup(MSCLUSTER_FEATURECOUNT);
layer->items[1] = msStrdup(MSCLUSTER_GROUP);
+ layer->items[2] = msStrdup(MSCLUSTER_BASEFID);
return msClusterLayerInitItemInfo(layer);
}
diff --git a/mapcontext.c b/mapcontext.c
index c0fcc24..1b71216 100644
--- a/mapcontext.c
+++ b/mapcontext.c
@@ -392,19 +392,16 @@ int msLoadMapContextLayerFormat(CPLXMLNode *psFormat, layerObj *layer)
pszValue = msLookupHashTable(&(layer->metadata), "wms_format");
if (
-#if !(defined USE_GD_PNG || defined USE_PNG)
+ pszValue && (
+#if !(defined USE_PNG)
strcasecmp(pszValue, "image/png") == 0 ||
strcasecmp(pszValue, "PNG") == 0 ||
#endif
-#if !(defined USE_GD_JPEG || defined USE_JPEG)
+#if !(defined USE_JPEG)
strcasecmp(pszValue, "image/jpeg") == 0 ||
strcasecmp(pszValue, "JPEG") == 0 ||
#endif
-#ifndef USE_GD_GIF
- strcasecmp(pszValue, "image/gif") == 0 ||
- strcasecmp(pszValue, "GIF") == 0 ||
-#endif
- 0 ) {
+ 0 )) {
char **papszList=NULL;
int i, numformats=0;
@@ -414,11 +411,11 @@ int msLoadMapContextLayerFormat(CPLXMLNode *psFormat, layerObj *layer)
papszList = msStringSplit(pszValue, ',', &numformats);
for(i=0; i < numformats; i++) {
if (
-#if (defined USE_GD_PNG || defined USE_PNG)
+#if (defined USE_PNG)
strcasecmp(papszList[i], "image/png") == 0 ||
strcasecmp(papszList[i], "PNG") == 0 ||
#endif
-#if (defined USE_GD_JPEG || defined USE_JPEG)
+#if (defined USE_JPEG)
strcasecmp(papszList[i], "image/jpeg") == 0 ||
strcasecmp(papszList[i], "JPEG") == 0 ||
#endif
@@ -1035,7 +1032,11 @@ int msLoadMapContextLayer(mapObj *map, CPLXMLNode *psLayer, int nVersion,
if (psExtension != NULL) {
pszValue = (char*)CPLGetXMLValue(psExtension, "ol:opacity", NULL);
if(pszValue != NULL) {
- layer->opacity = atof(pszValue)*100;
+ if(!layer->compositer) {
+ layer->compositer = msSmallMalloc(sizeof(LayerCompositer));
+ initLayerCompositer(layer->compositer);
+ }
+ layer->compositer->opacity = atof(pszValue)*100;
}
}
@@ -1337,10 +1338,7 @@ int msWriteMapContext(mapObj *map, FILE *stream)
}
/* file header */
- msOWSPrintEncodeMetadata(stream, &(map->web.metadata),
- NULL, "wms_encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
+ msIO_fprintf( stream, "<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
/* set the WMS_Viewer_Context information */
pszEncodedVal = msEncodeHTMLEntities(version);
diff --git a/mapcontour.c b/mapcontour.c
index 15f3129..e1a9836 100644
--- a/mapcontour.c
+++ b/mapcontour.c
@@ -387,6 +387,10 @@ static int msContourLayerReadRaster(layerObj *layer, rectObj rect)
src_yoff = 0;
dst_xsize = src_xsize = MIN(map->width,src_xsize);
dst_ysize = src_ysize = MIN(map->height,src_ysize);
+ copyRect.minx = copyRect.miny = 0;
+ copyRect.maxx = map->width;
+ copyRect.maxy = map->height;
+ dst_cellsize_y = dst_cellsize_x = 1;
}
/* -------------------------------------------------------------------- */
@@ -544,7 +548,7 @@ static int msContourLayerGenerateContour(layerObj *layer)
return MS_FAILURE;
}
- clinfo->hOGRDS = OGR_Dr_CreateDataSource(hDriver, NULL, NULL);
+ clinfo->hOGRDS = OGR_Dr_CreateDataSource(hDriver, "", NULL);
if (clinfo->hOGRDS == NULL) {
msSetError(MS_OGRERR,
"Unable to create OGR DataSource.",
diff --git a/mapcopy.c b/mapcopy.c
index 1d31c0c..30d893d 100644
--- a/mapcopy.c
+++ b/mapcopy.c
@@ -45,32 +45,34 @@
#include "mapserver.h"
#include "mapsymbol.h"
-
-
#include "mapcopy.h"
/***********************************************************************
- * msCopyProjection() *
+ * msCopyProjectioExtended() *
* *
- * Copy a projectionObj *
+ * Copy a projectionObj while adding additional arguments *
**********************************************************************/
-int msCopyProjection(projectionObj *dst, projectionObj *src)
+int msCopyProjectionExtended(projectionObj *dst, projectionObj *src, char ** args, int num_args)
{
#ifdef USE_PROJ
int i;
MS_COPYSTELEM(numargs);
+ MS_COPYSTELEM(gt);
+ MS_COPYSTELEM(automatic);
for (i = 0; i < dst->numargs; i++) {
/* Our destination consists of unallocated pointers */
dst->args[i] = msStrdup(src->args[i]);
}
+ for(i=0 ; i< num_args; i++) {
+ dst->args[dst->numargs++] = msStrdup(args[i]);
+ }
if (dst->numargs != 0) {
if (msProcessProjection(dst) != MS_SUCCESS)
return MS_FAILURE;
-
}
#endif
MS_COPYSTELEM(wellknownprojection);
@@ -78,6 +80,17 @@ int msCopyProjection(projectionObj *dst, projectionObj *src)
}
/***********************************************************************
+ * msCopyProjection() *
+ * *
+ * Copy a projectionObj *
+ **********************************************************************/
+
+int msCopyProjection(projectionObj *dst, projectionObj *src)
+{
+ return msCopyProjectionExtended(dst,src,NULL,0);
+}
+
+/***********************************************************************
* msCopyLine() *
* *
* Copy a lineObj, using msCopyPoint() *
@@ -184,15 +197,16 @@ int msCopyFontSet(fontSetObj *dst, fontSetObj *src, mapObj *map)
}
/***********************************************************************
- * msCopyExpression( *
+ * msCopyExpression() *
* *
- * Copy an expressionObj, but only its string and type *
+ * Copy an expressionObj, but only its string, type and flags *
**********************************************************************/
int msCopyExpression(expressionObj *dst, expressionObj *src)
{
MS_COPYSTRING(dst->string, src->string);
MS_COPYSTELEM(type);
+ MS_COPYSTELEM(flags);
dst->compiled = MS_FALSE;
return MS_SUCCESS;
@@ -256,9 +270,10 @@ int msCopyQueryMap(queryMapObj *dst, queryMapObj *src)
* Copy a labelLeaderObj, using msCopyStyle() *
**********************************************************************/
-int msCopyLeader(labelLeaderObj *dst, labelLeaderObj *src)
+int msCopyLabelLeader(labelLeaderObj *dst, labelLeaderObj *src)
{
int i;
+ assert(dst && src);
MS_COPYSTELEM(gridstep);
MS_COPYSTELEM(maxdistance);
/*
@@ -271,7 +286,6 @@ int msCopyLeader(labelLeaderObj *dst, labelLeaderObj *src)
if( freeStyle(dst->styles[i]) == MS_SUCCESS ) msFree(dst->styles[i]);
}
}
- msFree(dst->styles);
dst->numstyles = 0;
for (i = 0; i < src->numstyles; i++) {
@@ -307,7 +321,6 @@ int msCopyLabel(labelObj *dst, labelObj *src)
MS_COPYSTELEM(numbindings);
MS_COPYSTRING(dst->font, src->font);
- MS_COPYSTELEM(type);
MS_COPYCOLOR(&(dst->color), &(src->color));
MS_COPYCOLOR(&(dst->outlinecolor), &(src->outlinecolor));
@@ -325,7 +338,6 @@ int msCopyLabel(labelObj *dst, labelObj *src)
MS_COPYSTELEM(angle);
MS_COPYSTELEM(anglemode);
MS_COPYSTELEM(buffer);
- MS_COPYSTELEM(antialias);
MS_COPYSTELEM(wrap);
MS_COPYSTELEM(align);
MS_COPYSTELEM(maxlength);
@@ -341,6 +353,10 @@ int msCopyLabel(labelObj *dst, labelObj *src)
MS_COPYSTELEM(force);
MS_COPYSTELEM(priority);
+ MS_COPYSTELEM(repeatdistance);
+ MS_COPYSTELEM(maxoverlapangle);
+
+
MS_COPYSTRING(dst->encoding, src->encoding);
MS_COPYSTELEM(outlinewidth);
@@ -366,7 +382,6 @@ int msCopyLabel(labelObj *dst, labelObj *src)
if( freeStyle(dst->styles[i]) == MS_SUCCESS ) msFree(dst->styles[i]);
}
}
- msFree(dst->styles);
dst->numstyles = 0;
for (i = 0; i < src->numstyles; i++) {
@@ -383,13 +398,17 @@ int msCopyLabel(labelObj *dst, labelObj *src)
dst->numstyles++;
}
- /*
- ** other book keeping information (RFC77 TODO)
- */
- MS_COPYSTELEM(status);
- MS_COPYSTRING(dst->annotext, src->annotext);
-
- msCopyLeader(&(dst->leader),&(src->leader));
+ if(src->leader) {
+ dst->leader = msSmallMalloc(sizeof(labelLeaderObj));
+ initLeader(dst->leader);
+ msCopyLabelLeader(dst->leader,src->leader);
+ } else {
+ if(dst->leader) {
+ freeLabelLeader(dst->leader);
+ msFree(dst->leader);
+ }
+ dst->leader = NULL;
+ }
return MS_SUCCESS;
}
@@ -480,7 +499,6 @@ int msCopyStyle(styleObj *dst, styleObj *src)
MS_COPYSTELEM(maxwidth);
MS_COPYSTELEM(offsetx);
MS_COPYSTELEM(offsety);
- MS_COPYSTELEM(antialias);
MS_COPYSTELEM(angle);
MS_COPYSTELEM(minvalue);
MS_COPYSTELEM(maxvalue);
@@ -524,7 +542,6 @@ int msCopyClass(classObj *dst, classObj *src, layerObj *layer)
}
}
}
- msFree(dst->styles);
dst->numstyles = 0;
for (i = 0; i < src->numstyles; i++) {
@@ -555,7 +572,16 @@ int msCopyClass(classObj *dst, classObj *src, layerObj *layer)
}
MS_COPYSTELEM(numlabels);
- msCopyLeader(&(dst->leader),&(src->leader));
+ if(src->leader) {
+ if(dst->leader) {
+ freeLabelLeader(dst->leader);
+ }
+ if(!dst->leader) {
+ dst->leader = msSmallMalloc(sizeof(labelLeaderObj));
+ initLeader(dst->leader);
+ }
+ msCopyLabelLeader(dst->leader,src->leader);
+ }
MS_COPYSTRING(dst->keyimage, src->keyimage);
MS_COPYSTRING(dst->name, src->name);
@@ -572,7 +598,6 @@ int msCopyClass(classObj *dst, classObj *src, layerObj *layer)
#else
MS_COPYSTRING(dst->_template, src->_template);
#endif
- MS_COPYSTELEM(type);
if (&(src->metadata) != NULL) {
/* dst->metadata = msCreateHashTable(); */
@@ -611,6 +636,36 @@ int msCopyCluster(clusterObj *dst, clusterObj *src)
return MS_SUCCESS;
}
+/***********************************************************************
+ * msCopyGrid() *
+ **********************************************************************/
+
+int msCopyGrid(graticuleObj *dst, graticuleObj *src)
+{
+ MS_COPYSTELEM(dwhichlatitude);
+ MS_COPYSTELEM(dwhichlongitude);
+ MS_COPYSTELEM(dstartlatitude);
+ MS_COPYSTELEM(dstartlongitude);
+ MS_COPYSTELEM(dendlatitude);
+ MS_COPYSTELEM(dendlongitude);
+ MS_COPYSTELEM(dincrementlatitude);
+ MS_COPYSTELEM(dincrementlongitude);
+ MS_COPYSTELEM(minarcs);
+ MS_COPYSTELEM(maxarcs);
+ MS_COPYSTELEM(minincrement);
+ MS_COPYSTELEM(maxincrement);
+ MS_COPYSTELEM(minsubdivides);
+ MS_COPYSTELEM(maxsubdivides);
+ MS_COPYSTELEM(bvertical);
+ MS_COPYSTELEM(blabelaxes);
+ MS_COPYSTELEM(ilabelstate);
+ MS_COPYSTELEM(ilabeltype);
+ MS_COPYRECT(&(dst->extent), &(src->extent));
+ MS_COPYSTRING(dst->labelformat, src->labelformat);
+
+ return MS_SUCCESS;
+}
+
#ifdef why_on_earth_would_you_copy_a_labelcache
/***********************************************************************
@@ -870,6 +925,29 @@ int msCopyScaleToken(scaleTokenObj *src, scaleTokenObj *dst) {
return MS_SUCCESS;
}
+int msCopyCompositer(LayerCompositer **ldst, LayerCompositer *src) {
+ LayerCompositer *dst = NULL;
+ if(!src) {
+ *ldst = NULL;
+ return MS_SUCCESS;
+ }
+
+ while(src) {
+ if(!dst) {
+ dst = *ldst = msSmallMalloc(sizeof(LayerCompositer));
+ } else {
+ dst->next = msSmallMalloc(sizeof(LayerCompositer));
+ dst = dst->next;
+ }
+ dst->comp_op = src->comp_op;
+ dst->opacity = src->opacity;
+ dst->next = NULL;
+ /* TODO dst->filter */
+ src = src->next;
+ }
+ return MS_SUCCESS;
+}
+
/***********************************************************************
* msCopyLayer() *
* *
@@ -925,10 +1003,10 @@ int msCopyLayer(layerObj *dst, layerObj *src)
MS_COPYSTRING(dst->name, src->name);
MS_COPYSTRING(dst->group, src->group);
MS_COPYSTRING(dst->data, src->data);
+ MS_COPYSTRING(dst->encoding, src->encoding);
MS_COPYSTELEM(status);
MS_COPYSTELEM(type);
- MS_COPYSTELEM(annotate);
MS_COPYSTELEM(tolerance);
MS_COPYSTELEM(toleranceunits);
MS_COPYSTELEM(symbolscaledenom);
@@ -1009,7 +1087,6 @@ int msCopyLayer(layerObj *dst, layerObj *src)
}
msCopyHashTable(&dst->validation,&src->validation);
- MS_COPYSTELEM(opacity);
MS_COPYSTELEM(dump);
MS_COPYSTELEM(debug);
@@ -1033,6 +1110,21 @@ int msCopyLayer(layerObj *dst, layerObj *src)
MS_COPYSTRING(dst->classgroup, src->classgroup);
MS_COPYSTRING(dst->mask, src->mask);
+ if (src->grid) {
+ if (dst->grid) {
+ freeGrid(dst->grid);
+ msFree(dst->grid);
+ }
+ dst->grid = (void *) malloc(sizeof(graticuleObj));
+ MS_CHECK_ALLOC(dst->grid, sizeof(graticuleObj), -1);
+ initGrid(dst->grid);
+ msCopyGrid(dst->grid, src->grid);
+ }
+
+ if(src->compositer) {
+ msCopyCompositer(&dst->compositer, src->compositer);
+ }
+
return MS_SUCCESS;
}
@@ -1176,3 +1268,21 @@ int msCopyMap(mapObj *dst, mapObj *src)
return MS_SUCCESS;
}
+int msCopyRasterBuffer(rasterBufferObj *dst, const rasterBufferObj *src) {
+ *dst = *src;
+ if(src->type == MS_BUFFER_BYTE_RGBA) {
+ dst->data.rgba = src->data.rgba;
+ dst->data.rgba.pixels = msSmallMalloc(src->height * src->data.rgba.row_step);
+ memcpy(dst->data.rgba.pixels, src->data.rgba.pixels, src->data.rgba.row_step*src->height);
+ dst->data.rgba.r = dst->data.rgba.pixels + (src->data.rgba.r - src->data.rgba.pixels);
+ dst->data.rgba.g = dst->data.rgba.pixels + (src->data.rgba.g - src->data.rgba.pixels);
+ dst->data.rgba.b = dst->data.rgba.pixels + (src->data.rgba.b - src->data.rgba.pixels);
+ if(src->data.rgba.a) {
+ dst->data.rgba.a = dst->data.rgba.pixels + (src->data.rgba.a - src->data.rgba.pixels);
+ } else {
+ dst->data.rgba.a = NULL;
+ }
+ }
+ return MS_SUCCESS;
+}
+
diff --git a/mapcopy.h b/mapcopy.h
index a973898..4dae91d 100644
--- a/mapcopy.h
+++ b/mapcopy.h
@@ -60,24 +60,13 @@
MS_MACROEND
#endif
-#ifdef USE_GD
#define MS_COPYCOLOR(_dst, _src) \
MS_MACROBEGIN \
- (_dst)->pen = (_src)->pen; \
(_dst)->red = (_src)->red; \
(_dst)->green = (_src)->green;\
(_dst)->blue = (_src)->blue; \
(_dst)->alpha = (_src)->alpha; \
MS_MACROEND
-#else
-#define MS_COPYCOLOR(_dst, _src) \
- MS_MACROBEGIN \
- (_dst)->red = (_src)->red; \
- (_dst)->green = (_src)->green;\
- (_dst)->blue = (_src)->blue; \
- (_dst)->alpha = (_src)->alpha; \
- MS_MACROEND
-#endif
#define MS_COPYSTRING(_dst, _src) \
MS_MACROBEGIN \
diff --git a/mapdebug.c b/mapdebug.c
index 322fa6c..ccac623 100644
--- a/mapdebug.c
+++ b/mapdebug.c
@@ -90,17 +90,13 @@ debugInfoObj *msGetDebugInfoObj()
else if( link == NULL || link->next == NULL ) {
debugInfoObj *new_link;
- new_link = (debugInfoObj *) malloc(sizeof(debugInfoObj));
- if (new_link != NULL) {
- new_link->next = debuginfo_list;
- new_link->thread_id = thread_id;
- new_link->global_debug_level = MS_DEBUGLEVEL_ERRORSONLY;
- new_link->debug_mode = MS_DEBUGMODE_OFF;
- new_link->errorfile = NULL;
- new_link->fp = NULL;
- } else
- msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGetDebugInfoObj()", (unsigned int)sizeof(debugInfoObj));
-
+ new_link = (debugInfoObj *) msSmallMalloc(sizeof(debugInfoObj));
+ new_link->next = debuginfo_list;
+ new_link->thread_id = thread_id;
+ new_link->global_debug_level = MS_DEBUGLEVEL_ERRORSONLY;
+ new_link->debug_mode = MS_DEBUGMODE_OFF;
+ new_link->errorfile = NULL;
+ new_link->fp = NULL;
debuginfo_list = new_link;
}
@@ -146,7 +142,7 @@ int msSetErrorFile(const char *pszErrorFile, const char *pszRelToPath)
pszErrorFile = extended_path;
}
- if (debuginfo && debuginfo->errorfile && pszErrorFile &&
+ if (debuginfo->errorfile && pszErrorFile &&
strcmp(debuginfo->errorfile, pszErrorFile) == 0) {
/* Nothing to do, already writing to the right place */
return MS_SUCCESS;
@@ -370,3 +366,12 @@ void msDebug( const char * pszFormat, ... )
}
+
+/* msDebug2()
+**
+** Variadic function with no operation
+**
+*/
+void msDebug2( int level, ... )
+{
+}
diff --git a/mapdraw.c b/mapdraw.c
index 992838d..5da1edb 100644
--- a/mapdraw.c
+++ b/mapdraw.c
@@ -32,97 +32,9 @@
#include "mapserver.h"
#include "maptime.h"
#include "mapcopy.h"
+#include "mapfile.h"
-#ifdef USE_GD
-/*
- * Functions to reset any pen (color index) values previously set. Used primarily to reset things when
- * using MapScript to create multiple images. How the pen values are set is irrelevant (definitely output
- * format type specific) which is why this function is here instead of the GD, PDF or SWF source files.
-*/
-void msClearLayerPenValues(layerObj *layer)
-{
- int i, j, k;
-
- for(i=0; i<layer->numclasses; i++) {
- for(j=0; j<layer->class[i]->numlabels; j++) {
- layer->class[i]->labels[j]->color.pen = MS_PEN_UNSET; /* set in MSXXDrawText function */
- layer->class[i]->labels[j]->outlinecolor.pen = MS_PEN_UNSET;
- layer->class[i]->labels[j]->shadowcolor.pen = MS_PEN_UNSET;
- for(k=0; k<layer->class[i]->labels[j]->numstyles; k++) {
- layer->class[i]->labels[j]->styles[k]->backgroundcolor.pen = MS_PEN_UNSET; /* set in various symbol drawing functions */
- layer->class[i]->labels[j]->styles[k]->color.pen = MS_PEN_UNSET;
- layer->class[i]->labels[j]->styles[k]->outlinecolor.pen = MS_PEN_UNSET;
- }
- }
-
- for(j=0; j<layer->class[i]->numstyles; j++) {
- layer->class[i]->styles[j]->backgroundcolor.pen = MS_PEN_UNSET; /* set in various symbol drawing functions */
- layer->class[i]->styles[j]->color.pen = MS_PEN_UNSET;
- layer->class[i]->styles[j]->outlinecolor.pen = MS_PEN_UNSET;
- }
- }
-}
-
-void msClearScalebarPenValues(scalebarObj *scalebar)
-{
- if (scalebar) {
- scalebar->color.pen = MS_PEN_UNSET;
- scalebar->backgroundcolor.pen = MS_PEN_UNSET;
- scalebar->outlinecolor.pen = MS_PEN_UNSET;
- scalebar->imagecolor.pen = MS_PEN_UNSET;
-
- scalebar->label.color.pen = MS_PEN_UNSET;
- scalebar->label.outlinecolor.pen = MS_PEN_UNSET;
- scalebar->label.shadowcolor.pen = MS_PEN_UNSET;
- /* TODO: deal with label styles here */
- }
-}
-
-void msClearLegendPenValues(legendObj *legend)
-{
- if (legend) {
- legend->outlinecolor.pen = MS_PEN_UNSET;
- legend->imagecolor.pen = MS_PEN_UNSET;
-
- legend->label.color.pen = MS_PEN_UNSET;
- legend->label.outlinecolor.pen = MS_PEN_UNSET;
- legend->label.shadowcolor.pen = MS_PEN_UNSET;
- /* TODO: deal with label styles here */
- }
-}
-
-void msClearReferenceMapPenValues(referenceMapObj *referencemap)
-{
- if (referencemap) {
- referencemap->outlinecolor.pen = MS_PEN_UNSET;
- referencemap->color.pen = MS_PEN_UNSET;
- }
-}
-
-
-void msClearQueryMapPenValues(queryMapObj *querymap)
-{
- if (querymap)
- querymap->color.pen = MS_PEN_UNSET;
-}
-
-
-void msClearPenValues(mapObj *map)
-{
- int i;
-
- for(i=0; i<map->numlayers; i++)
- msClearLayerPenValues((GET_LAYER(map, i)));
-
- msClearLegendPenValues(&(map->legend));
- msClearScalebarPenValues(&(map->scalebar));
- msClearReferenceMapPenValues(&(map->reference));
- msClearQueryMapPenValues(&(map->querymap));
-
-}
-#endif
-
/* msPrepareImage()
*
* Returns a new imageObj ready for rendering the current map.
@@ -156,7 +68,7 @@ imageObj *msPrepareImage(mapObj *map, int allow_nonsquare)
if(status != MS_SUCCESS) return NULL;
if(!map->outputformat) {
- msSetError(MS_GDERR, "Map outputformat not set!", "msPrepareImage()");
+ msSetError(MS_IMGERR, "Map outputformat not set!", "msPrepareImage()");
return(NULL);
} else if (MS_RENDERER_PLUGIN(map->outputformat)) {
rendererVTableObj *renderer = map->outputformat->vtable;
@@ -166,20 +78,21 @@ imageObj *msPrepareImage(mapObj *map, int allow_nonsquare)
/* don't set the image color */
bg = NULL;
}
- image = renderer->createImage(map->width, map->height, map->outputformat,bg);
- if (image == NULL)
- return(NULL);
- image->format = map->outputformat;
- image->format->refcount++;
- image->width = map->width;
- image->height = map->height;
-
- image->resolution = map->resolution;
- image->resolutionfactor = map->resolution/map->defresolution;
- if (map->web.imagepath)
- image->imagepath = msStrdup(map->web.imagepath);
- if (map->web.imageurl)
- image->imageurl = msStrdup(map->web.imageurl);
+
+ image = renderer->createImage(map->width, map->height, map->outputformat,bg);
+ if (image == NULL)
+ return(NULL);
+ image->format = map->outputformat;
+ image->format->refcount++;
+ image->width = map->width;
+ image->height = map->height;
+
+ image->resolution = map->resolution;
+ image->resolutionfactor = map->resolution/map->defresolution;
+ if (map->web.imagepath)
+ image->imagepath = msStrdup(map->web.imagepath);
+ if (map->web.imageurl)
+ image->imageurl = msStrdup(map->web.imageurl);
} else if( MS_RENDERER_IMAGEMAP(map->outputformat) ) {
image = msImageCreateIM(map->width, map->height, map->outputformat,
@@ -190,11 +103,13 @@ imageObj *msPrepareImage(mapObj *map, int allow_nonsquare)
} else {
image = NULL;
}
-
+
if(!image) {
- msSetError(MS_GDERR, "Unable to initialize image.", "msPrepareImage()");
+ msSetError(MS_IMGERR, "Unable to initialize image.", "msPrepareImage()");
return(NULL);
}
+
+ image->map = map;
/*
* If we want to support nonsquare pixels, note that now, otherwise
@@ -260,8 +175,29 @@ imageObj *msPrepareImage(mapObj *map, int allow_nonsquare)
image->refpt.y = MS_MAP2IMAGE_Y_IC_DBL(0, map->extent.maxy, 1.0/map->cellsize);
return image;
+
}
+static int msCompositeRasterBuffer(imageObj *img, rasterBufferObj *rb, LayerCompositer *comp) {
+ int ret = MS_SUCCESS;
+ if(MS_IMAGE_RENDERER(img)->compositeRasterBuffer) {
+ while(comp && ret == MS_SUCCESS) {
+ rasterBufferObj *rb_ptr = rb;
+ if(comp->filter) {
+ rb_ptr = msApplyFilterToRasterBuffer(rb,comp->filter);
+ }
+ ret = MS_IMAGE_RENDERER(img)->compositeRasterBuffer(img,rb_ptr,comp->comp_op, comp->opacity);
+ if(rb_ptr != rb) {
+ msFreeRasterBuffer(rb_ptr);
+ msFree(rb_ptr);
+ }
+ comp = comp->next;
+ }
+ } else {
+ ret = MS_FAILURE;
+ }
+ return ret;
+}
/*
* Generic function to render the map file.
@@ -446,14 +382,13 @@ imageObj *msDrawMap(mapObj *map, int querymap)
return(NULL);
}
}
- }
-
- if(map->debug >= MS_DEBUGLEVEL_TUNING || lp->debug >= MS_DEBUGLEVEL_TUNING) {
- msGettimeofday(&endtime, NULL);
- msDebug("msDrawMap(): Layer %d (%s), %.3fs\n",
- map->layerorder[i], lp->name?lp->name:"(null)",
- (endtime.tv_sec+endtime.tv_usec/1.0e6)-
- (starttime.tv_sec+starttime.tv_usec/1.0e6) );
+ if(map->debug >= MS_DEBUGLEVEL_TUNING || lp->debug >= MS_DEBUGLEVEL_TUNING) {
+ msGettimeofday(&endtime, NULL);
+ msDebug("msDrawMap(): Layer %d (%s), %.3fs\n",
+ map->layerorder[i], lp->name?lp->name:"(null)",
+ (endtime.tv_sec+endtime.tv_usec/1.0e6)-
+ (starttime.tv_sec+starttime.tv_usec/1.0e6) );
+ }
}
}
@@ -467,6 +402,13 @@ imageObj *msDrawMap(mapObj *map, int querymap)
if(MS_SUCCESS != msEmbedScalebar(map, image)) {
msFreeImage( image );
+#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
+ /* Cleanup WMS/WFS Request stuff */
+ if (pasOWSReqInfo) {
+ msHTTPFreeRequestObj(pasOWSReqInfo, numOWSRequests);
+ msFree(pasOWSReqInfo);
+ }
+#endif
return NULL;
}
@@ -478,13 +420,20 @@ imageObj *msDrawMap(mapObj *map, int querymap)
if(map->legend.status == MS_EMBED && !map->legend.postlabelcache) {
if( msEmbedLegend(map, image) != MS_SUCCESS ) {
msFreeImage( image );
+#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
+ /* Cleanup WMS/WFS Request stuff */
+ if (pasOWSReqInfo) {
+ msHTTPFreeRequestObj(pasOWSReqInfo, numOWSRequests);
+ msFree(pasOWSReqInfo);
+ }
+#endif
return NULL;
}
}
if(map->debug >= MS_DEBUGLEVEL_TUNING) msGettimeofday(&starttime, NULL);
- if(msDrawLabelCache(image, map) != MS_SUCCESS) {
+ if(msDrawLabelCache(map, image) != MS_SUCCESS) {
msFreeImage(image);
#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
if (pasOWSReqInfo) {
@@ -553,7 +502,10 @@ imageObj *msDrawMap(mapObj *map, int querymap)
msMapRestoreRealExtent(map);
if(map->legend.status == MS_EMBED && map->legend.postlabelcache)
- msEmbedLegend(map, image); /* TODO */
+ if(UNLIKELY(MS_FAILURE == msEmbedLegend(map, image))) {
+ msFreeImage( image );
+ return NULL;
+ }
if(map->scalebar.status == MS_EMBED && map->scalebar.postlabelcache) {
@@ -565,6 +517,13 @@ imageObj *msDrawMap(mapObj *map, int querymap)
if(MS_SUCCESS != msEmbedScalebar(map, image)) {
msFreeImage( image );
+#if defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
+ /* Cleanup WMS/WFS Request stuff */
+ if (pasOWSReqInfo) {
+ msHTTPFreeRequestObj(pasOWSReqInfo, numOWSRequests);
+ msFree(pasOWSReqInfo);
+ }
+#endif
return NULL;
}
@@ -600,7 +559,7 @@ int msLayerIsVisible(mapObj *map, layerObj *layer)
{
int i;
- if(!layer->data && !layer->tileindex && !layer->connection && !layer->features && !layer->layerinfo)
+ if(!layer->data && !layer->tileindex && !layer->connection && !layer->features && !layer->grid)
return(MS_FALSE); /* no data associated with this layer, not an error since layer may be used as a template from MapScript */
if(layer->type == MS_LAYER_QUERY || layer->type == MS_LAYER_TILEINDEX) return(MS_FALSE);
@@ -632,7 +591,7 @@ int msLayerIsVisible(mapObj *map, layerObj *layer)
}
return(MS_FALSE);
}
-
+
/* now check class scale boundaries (all layers *must* pass these tests) */
if(layer->numclasses > 0) {
for(i=0; i<layer->numclasses; i++) {
@@ -670,6 +629,9 @@ int msLayerIsVisible(mapObj *map, layerObj *layer)
return MS_TRUE; /* All tests passed. Layer is visible. */
}
+
+
+#define LAYER_NEEDS_COMPOSITING(layer) (((layer)->compositer != NULL) && ((layer)->compositer->next || (layer)->compositor->opacity < 100 || (layer)->compositor->compop != MS_COMPOP_SRC_OVER || (layer)->compositer->filter ))
/*
* Generic function to render a layer object.
*/
@@ -678,14 +640,14 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
imageObj *image_draw = image;
outputFormatObj *altFormat=NULL;
int retcode=MS_SUCCESS;
- int originalopacity = layer->opacity;
const char *alternativeFomatString = NULL;
layerObj *maskLayer = NULL;
if(!msLayerIsVisible(map, layer))
return MS_SUCCESS;
- if(layer->opacity == 0) return MS_SUCCESS; /* layer is completely transparent, skip it */
+ if(layer->compositer && !layer->compositer->next && layer->compositer->opacity == 0) return MS_SUCCESS; /* layer is completely transparent, skip it */
+
/* conditions may have changed since this layer last drawn, so set
layer->project true to recheck projection needs (Bug #673) */
@@ -775,11 +737,11 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
renderer->startLayer(image_draw,map,layer);
} else if (MS_RENDERER_PLUGIN(image_draw->format)) {
rendererVTableObj *renderer = MS_IMAGE_RENDERER(image_draw);
- if ((layer->mask && layer->connectiontype!=MS_WMS && layer->type != MS_LAYER_RASTER) || (layer->opacity > 0 && layer->opacity < 100)) {
+ if ((layer->mask && layer->connectiontype!=MS_WMS && layer->type != MS_LAYER_RASTER) || layer->compositer) {
/* masking occurs at the pixel/layer level for raster images, so we don't need to create a temporary image
in these cases
*/
- if (layer->mask || !renderer->supports_transparent_layers) {
+ if (layer->mask || renderer->compositeRasterBuffer) {
image_draw = msImageCreate(image->width, image->height,
image->format, image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
if (!image_draw) {
@@ -787,8 +749,6 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
"msDrawLayer()");
return (MS_FAILURE);
}
- /* set opacity to full, as the renderer should be rendering a fully opaque image */
- layer->opacity=100;
renderer->startLayer(image_draw,map,layer);
}
}
@@ -819,9 +779,16 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
altrenderer->endLayer(image_draw,map,layer);
- altrenderer->getRasterBufferHandle(image_draw,&rb);
- renderer->mergeRasterBuffer(image,&rb,layer->opacity*0.01,0,0,0,0,rb.width,rb.height);
+ retcode = altrenderer->getRasterBufferHandle(image_draw,&rb);
+ if(UNLIKELY(retcode == MS_FAILURE)) {
+ goto altformat_cleanup;
+ }
+ retcode = renderer->mergeRasterBuffer(image,&rb,((layer->compositer)?(layer->compositer->opacity*0.01):(1.0)),0,0,0,0,rb.width,rb.height);
+ if(UNLIKELY(retcode == MS_FAILURE)) {
+ goto altformat_cleanup;
+ }
+altformat_cleanup:
/*
* hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
* symbols that reference it. We want to remove those references before the altFormat is destroyed
@@ -838,7 +805,6 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
}
}
msFreeImage(image_draw);
-
/* set the imagetype from the original outputformat back (it was removed by msSelectOutputFormat() */
msFree(map->imagetype);
map->imagetype = msStrdup(image->format->name);
@@ -848,14 +814,19 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
memset(&rb,0,sizeof(rasterBufferObj));
renderer->endLayer(image_draw,map,layer);
- layer->opacity = originalopacity;
- renderer->getRasterBufferHandle(image_draw,&rb);
+ retcode = renderer->getRasterBufferHandle(image_draw,&rb);
+ if(UNLIKELY(retcode == MS_FAILURE)) {
+ goto imagedraw_cleanup;
+ }
if(maskLayer && maskLayer->maskimage) {
rasterBufferObj mask;
unsigned int row,col;
memset(&mask,0,sizeof(rasterBufferObj));
- MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,&mask);
+ retcode = MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,&mask);
+ if(UNLIKELY(retcode == MS_FAILURE)) {
+ goto imagedraw_cleanup;
+ }
/* modify the pixels of the overlay */
if(rb.type == MS_BUFFER_BYTE_RGBA) {
@@ -877,22 +848,19 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
ma+=mask.data.rgba.pixel_step;
}
}
-#ifdef USE_GD
- } else if(rb.type == MS_BUFFER_GD) {
- for(row=0; row<rb.height; row++) {
- unsigned char *ma;
- ma=mask.data.rgba.a+row*mask.data.rgba.row_step;
- for(col=0; col<rb.width; col++) {
- if(*ma == 0) {
- gdImageSetPixel(rb.data.gd_img,col,row,0);
- }
- ma+=mask.data.rgba.pixel_step;
- }
- }
-#endif
}
}
- renderer->mergeRasterBuffer(image,&rb,layer->opacity*0.01,0,0,0,0,rb.width,rb.height);
+ if(!layer->compositer) {
+ /*we have a mask layer with no composition configured, do a nomral blend */
+ retcode = renderer->mergeRasterBuffer(image,&rb,1.0,0,0,0,0,rb.width,rb.height);
+ } else {
+ retcode = msCompositeRasterBuffer(image,&rb,layer->compositer);
+ }
+ if(UNLIKELY(retcode == MS_FAILURE)) {
+ goto imagedraw_cleanup;
+ }
+
+imagedraw_cleanup:
msFreeImage(image_draw);
}
@@ -927,21 +895,16 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
if((layer->labelminscaledenom != -1) && (map->scaledenom < layer->labelminscaledenom)) annotate = MS_FALSE;
}
-#ifdef USE_GD
- /* reset layer pen values just in case the map has been previously processed */
- msClearLayerPenValues(layer);
-#endif
-
/* open this layer */
status = msLayerOpen(layer);
if(status != MS_SUCCESS) return MS_FAILURE;
- /* build item list */
- status = msLayerWhichItems(layer, MS_FALSE, NULL);
-
- if(status != MS_SUCCESS) {
- msLayerClose(layer);
- return MS_FAILURE;
+ /* build item list. STYLEITEM javascript needs the shape attributes */
+ if (layer->styleitem &&
+ (strncasecmp(layer->styleitem, "javascript://", 13) == 0)) {
+ status = msLayerWhichItems(layer, MS_TRUE, NULL);
+ } else {
+ status = msLayerWhichItems(layer, MS_FALSE, NULL);
}
/* identify target shapes */
@@ -951,8 +914,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
if((map->projection.numargs > 0) && (layer->projection.numargs > 0))
msProjectRect(&map->projection, &layer->projection, &searchrect); /* project the searchrect to source coords */
#endif
- }
- else {
+ } else {
searchrect.minx = searchrect.miny = 0;
searchrect.maxx = map->width-1;
searchrect.maxy = map->height-1;
@@ -1033,7 +995,6 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
/* RFC77 TODO: check return value, may need a more sophisticated if-then test. */
if(annotate && layer->class[shape.classindex]->numlabels > 0) {
- msShapeGetAnnotation(layer, &shape);
drawmode |= MS_DRAWMODE_LABELS;
if (msLayerGetProcessingKey(layer, "LABEL_NO_CLIP")) {
drawmode |= MS_DRAWMODE_UNCLIPPEDLABELS;
@@ -1141,7 +1102,9 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
continue;
}
if(s==0 && pStyle->outlinewidth>0 && MS_VALID_COLOR(pStyle->color)) {
- msDrawLineSymbol(&map->symbolset, image, ¤t->shape, pStyle, layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map, image, ¤t->shape, pStyle, layer->scalefactor))) {
+ return MS_FAILURE;
+ }
} else if(s>0) {
if (pStyle->outlinewidth > 0 && MS_VALID_COLOR(pStyle->outlinecolor)) {
colorObj tmp;
@@ -1164,7 +1127,9 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
tmp = pStyle->color;
pStyle->color = pStyle->outlinecolor;
pStyle->outlinecolor = tmp;
- msDrawLineSymbol(&map->symbolset, image, ¤t->shape, pStyle, layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map, image, ¤t->shape, pStyle, layer->scalefactor))) {
+ return MS_FAILURE;
+ }
/*
* RFC 49 implementation: switch back the styleobj to its
* original state, so the line fill will be drawn in the
@@ -1192,7 +1157,8 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
)
)
) {
- msDrawLineSymbol(&map->symbolset, image, ¤t->shape, pStyle, layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map, image, ¤t->shape, pStyle, layer->scalefactor)))
+ return MS_FAILURE;
}
}
}
@@ -1262,27 +1228,20 @@ int msDrawQueryLayer(mapObj *map, layerObj *layer, imageObj *image)
if(map->querymap.style == MS_NORMAL || status != MS_SUCCESS) return(status);
}
-#ifdef USE_GD
- /* reset layer pen values just in case the map has been previously processed */
- msClearLayerPenValues(layer);
-#endif
/* if MS_HILITE, alter the one style (always at least 1 style), and set a MINDISTANCE for the labelObj to avoid duplicates */
if(map->querymap.style == MS_HILITE) {
if (layer->numclasses > 0) {
- colorbuffer = (colorObj*)malloc(layer->numclasses*sizeof(colorObj));
- mindistancebuffer = (int*)malloc(layer->numclasses*sizeof(int));
-
- if (colorbuffer == NULL || mindistancebuffer == NULL) {
- msSetError(MS_MEMERR, "Failed to allocate memory for colorbuffer/mindistancebuffer", "msDrawQueryLayer()");
- return MS_FAILURE;
- }
+ colorbuffer = (colorObj*)msSmallMalloc(layer->numclasses*sizeof(colorObj));
+ mindistancebuffer = (int*)msSmallMalloc(layer->numclasses*sizeof(int));
}
for(i=0; i<layer->numclasses; i++) {
if(layer->type == MS_LAYER_POLYGON) { /* alter BOTTOM style since that's almost always the fill */
if (layer->class[i]->styles == NULL) {
msSetError(MS_MISCERR, "Don't know how to draw class %s of layer %s without a style definition.", "msDrawQueryLayer()", layer->class[i]->name, layer->name);
+ msFree(colorbuffer);
+ msFree(mindistancebuffer);
return(MS_FAILURE);
}
if(MS_VALID_COLOR(layer->class[i]->styles[0]->color)) {
@@ -1343,9 +1302,7 @@ int msDrawQueryLayer(mapObj *map, layerObj *layer, imageObj *image)
if(layer->type == MS_LAYER_LINE && layer->class[shape.classindex]->numstyles > 1)
cache = MS_TRUE; /* only line layers with multiple styles need be cached (I don't think POLYLINE layers need caching - SDL) */
- /* RFC 77 TODO: check return value for msShapeGetAnnotation() */
if(annotate && layer->class[shape.classindex]->numlabels > 0) {
- msShapeGetAnnotation(layer, &shape);
drawmode |= MS_DRAWMODE_LABELS;
}
@@ -1368,7 +1325,11 @@ int msDrawQueryLayer(mapObj *map, layerObj *layer, imageObj *image)
}
if(cache) {
- if(insertFeatureList(&shpcache, &shape) == NULL) return(MS_FAILURE); /* problem adding to the cache */
+ if(insertFeatureList(&shpcache, &shape) == NULL) {
+ msFree(colorbuffer);
+ msFree(mindistancebuffer);
+ return(MS_FAILURE); /* problem adding to the cache */
+ }
}
maxnumstyles = MS_MAX(maxnumstyles, layer->class[shape.classindex]->numstyles);
@@ -1388,7 +1349,8 @@ int msDrawQueryLayer(mapObj *map, layerObj *layer, imageObj *image)
if((curStyle->minscaledenom != -1) && (map->scaledenom < curStyle->minscaledenom))
continue;
}
- msDrawLineSymbol(&map->symbolset, image, ¤t->shape, (layer->class[current->shape.classindex]->styles[s]), layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map, image, ¤t->shape, (layer->class[current->shape.classindex]->styles[s]), layer->scalefactor)))
+ return MS_FAILURE;
}
}
}
@@ -1450,7 +1412,7 @@ msDrawRasterLayerPlugin( mapObj *map, layerObj *layer, imageObj *image)
ret = msDrawRasterLayerLow( map, layer, image, rb );
if( ret == 0 ) {
- renderer->mergeRasterBuffer( image, rb, 1.0, 0, 0, 0, 0, rb->width, rb->height );
+ ret = renderer->mergeRasterBuffer( image, rb, 1.0, 0, 0, 0, 0, rb->width, rb->height );
}
msFreeRasterBuffer(rb);
@@ -1577,169 +1539,13 @@ int circleLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj
if (msScaleInBounds(map->scaledenom,
layer->class[c]->styles[s]->minscaledenom,
layer->class[c]->styles[s]->maxscaledenom))
- msCircleDrawShadeSymbol(&map->symbolset, image, ¢er, r,
- layer->class[c]->styles[s], layer->scalefactor);
- }
- return MS_SUCCESS;
- /* TODO: need to handle circle annotation */
-}
-
-int annotationLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj *shape)
-{
- int c = shape->classindex;
- rectObj cliprect;
- labelObj *label;
- double minfeaturesize;
- labelPathObj **annopaths = NULL; /* Curved label path. Bug #1620 implementation */
- pointObj **annopoints = NULL;
- pointObj annopnt;
- pointObj *point;
- int *regularLines = NULL;
- double** angles = NULL, **lengths = NULL;
- int ret = MS_SUCCESS;
- int numpaths = 1, numpoints = 1, numRegularLines = 0, i,j,s;
- if (layer->class[c]->numlabels == 0) return (MS_SUCCESS); /* nothing to draw (RFC77 TDOO: could expand this test) */
- if (layer->class[c]->numlabels > 1) {
- msSetError(MS_MISCERR, "Multiple labels not supported on annotation layers.", "annotationLayerDrawShape()");
- return MS_FAILURE;
- }
-
- cliprect.minx = cliprect.miny = 0;
- cliprect.maxx = image->width;
- cliprect.maxy = image->height;
-
-
-
- /* annotation layers can only have one layer, don't treat the multi layer case */
- label = layer->class[c]->labels[0]; /* for brevity */
- minfeaturesize = label->minfeaturesize * image->resolutionfactor;
-
-
- switch (shape->type) {
- case(MS_SHAPE_LINE):
-
- if (label->anglemode == MS_FOLLOW) { /* bug #1620 implementation */
-#ifndef NDEBUG
- /* this test should already occur at the parser level in loadLabel() */
- if (label->type != MS_TRUETYPE) {
- msSetError(MS_MISCERR, "Angle mode 'FOLLOW' is supported only with truetype fonts.", "annotationLayerDrawShape()");
- return (MS_FAILURE);
- }
-#endif
- if(!layer->labelcache) {
- msSetError(MS_MISCERR, "Angle mode 'FOLLOW' is supported only with LABELCACHE ON", "annotationLayerDrawShape()");
- return (MS_FAILURE);
- }
- annopaths = msPolylineLabelPath(map, image, shape, minfeaturesize, &(map->fontset),
- label->annotext, label, layer->scalefactor, &numpaths, ®ularLines, &numRegularLines);
-
- for (i = 0; i < numpaths; i++) {
- label->position = MS_CC; /* force label position to MS_CC regardless if a path is computed (WHY HERE?) */
-
- if (annopaths[i]) {
- if (msAddLabel(map, label, layer->index, c, shape, NULL, annopaths[i], -1) != MS_SUCCESS) {
- ret = MS_FAILURE;
- goto anno_cleanup_line;
- }
- }
- }
-
- /* handle regular lines that have to be drawn with the regular algorithm */
- if (numRegularLines > 0) {
- annopoints = msPolylineLabelPointExtended(shape, minfeaturesize, label->repeatdistance,
- &angles, &lengths, &numpoints, regularLines, numRegularLines, MS_FALSE);
-
- for (i = 0; i < numpoints; i++) {
- label->angle = *angles[i];
- if (msAddLabel(map, label, layer->index, c, shape, annopoints[i], NULL, *lengths[i]) != MS_SUCCESS) {
- ret = MS_FAILURE;
- goto anno_cleanup_line;
- }
- }
- }
- } else {
- int s;
- annopoints = msPolylineLabelPoint(shape, minfeaturesize, label->repeatdistance, &angles, &lengths, &numpoints, label->anglemode);
-
- if (label->angle != 0)
- label->angle -= map->gt.rotation_angle; /* apply rotation angle */
-
- for (i = 0; i < numpoints; i++) {
- if (label->anglemode != MS_NONE) label->angle = *angles[i]; /* angle derived from line overrides even the rotation value. */
-
- if (layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, shape, annopoints[i], NULL, *lengths[i]) != MS_SUCCESS) return (MS_FAILURE);
- } else {
- if (layer->class[c]->numstyles > 0 && MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- for (s = 0; s < layer->class[c]->numstyles; s++) {
- if (msScaleInBounds(map->scaledenom, layer->class[c]->styles[s]->minscaledenom, layer->class[c]->styles[s]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, annopoints[i], layer->class[c]->styles[s], layer->scalefactor);
- }
- }
- msDrawLabel(map, image, *annopoints[i], label->annotext, label, layer->scalefactor);
- }
- }
- }
-
-anno_cleanup_line:
- msFree(annopaths);
- msFree(regularLines);
-
- if (annopoints) {
- for (i = 0; i < numpoints; i++) {
- if (annopoints[i]) free(annopoints[i]);
- if (angles[i]) free(angles[i]);
- if (lengths[i]) free(lengths[i]);
- }
- free(angles);
- free(annopoints);
- free(lengths);
- }
- return ret;
- case(MS_SHAPE_POLYGON):
-
- if (msPolygonLabelPoint(shape, &annopnt, minfeaturesize) == MS_SUCCESS) {
- if(annopnt.x>0 && annopnt.y >0 && annopnt.x <= image->width && annopnt.y<=image->height) {
- if (label->angle != 0)
- label->angle -= map->gt.rotation_angle; /* TODO: isn't this a bug, the label angle will be changed at each feature ? */
- if(layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, shape, &annopnt, NULL,
- MS_MIN(shape->bounds.maxx - shape->bounds.minx, shape->bounds.maxy - shape->bounds.miny)) != MS_SUCCESS) {
- return (MS_FAILURE);
- }
- } else {
- if (layer->class[c]->numstyles > 0 && MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- for (i = 0; i < layer->class[c]->numstyles; i++) {
- if (msScaleInBounds(map->scaledenom, layer->class[c]->styles[i]->minscaledenom, layer->class[c]->styles[i]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, &annopnt, layer->class[c]->styles[i], layer->scalefactor);
- }
- }
- msDrawLabel(map, image, annopnt, label->annotext, label, layer->scalefactor);
- }
- }
- }
- break;
- default: /* points and anything with out a proper type */
- if (label->angle != 0) label->angle -= map->gt.rotation_angle;
- for (j = 0; j < shape->numlines; j++) {
- for (i = 0; i < shape->line[j].numpoints; i++) {
- point = &(shape->line[j].point[i]);
- if (!msPointInRect(point, &cliprect)) continue;
- if (layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, shape, point, NULL, -1) != MS_SUCCESS) return (MS_FAILURE);
- } else {
- if (layer->class[c]->numstyles > 0 && MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- for (s = 0; s < layer->class[c]->numstyles; s++) {
- if (msScaleInBounds(map->scaledenom, layer->class[c]->styles[s]->minscaledenom, layer->class[c]->styles[s]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, point, layer->class[c]->styles[s], layer->scalefactor);
- }
- }
- msDrawLabel(map, image, *point, label->annotext, label, layer->scalefactor);
- }
- }
+ if(UNLIKELY(MS_FAILURE == msCircleDrawShadeSymbol(map, image, ¢er, r,
+ layer->class[c]->styles[s], layer->scalefactor))) {
+ return MS_FAILURE;
}
}
return MS_SUCCESS;
+ /* TODO: need to handle circle annotation */
}
int pointLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj *shape, int drawmode)
@@ -1771,15 +1577,22 @@ int pointLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj
if (msScaleInBounds(map->scaledenom,
layer->class[c]->styles[s]->minscaledenom,
layer->class[c]->styles[s]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, point, layer->class[c]->styles[s], layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, point, layer->class[c]->styles[s], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
}
}
if(MS_DRAW_LABELS(drawmode)) {
if (layer->labelcache) {
- if (msAddLabelGroup(map, layer->index, c, shape, point, -1) != MS_SUCCESS) return (MS_FAILURE);
+ if (msAddLabelGroup(map, image, layer->index, c, shape, point, -1) != MS_SUCCESS) return (MS_FAILURE);
} else {
for (l = 0; l < layer->class[c]->numlabels; l++)
- msDrawLabel(map, image, *point, layer->class[c]->labels[l]->annotext, layer->class[c]->labels[l], layer->scalefactor);
+ if(msGetLabelStatus(map,layer,shape,layer->class[c]->labels[l]) == MS_ON) {
+ char *annotext = msShapeGetLabelAnnotation(layer,shape,layer->class[c]->labels[l]);
+ if(UNLIKELY(MS_FAILURE == msDrawLabel(map, image, *point, annotext, layer->class[c]->labels[l], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
}
}
}
@@ -1791,13 +1604,8 @@ int lineLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj *
shapeObj *anno_shape, shapeObj *unclipped_shape, int style, int drawmode)
{
int c = shape->classindex;
- double minfeaturesize;
- labelPathObj **annopaths = NULL; /* Curved label path. Bug #1620 implementation */
- pointObj **annopoints = NULL;
- int *regularLines = NULL;
- double** angles = NULL, **lengths = NULL;
int ret = MS_SUCCESS;
- int numpaths = 1, numpoints = 1, numRegularLines = 0, i, j, s, l = 0;
+ int i, s, l = 0;
/* RFC48: loop through the styles, and pass off to the type-specific
function if the style has an appropriate type */
@@ -1806,10 +1614,16 @@ int lineLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj *
if (msScaleInBounds(map->scaledenom,
layer->class[c]->styles[s]->minscaledenom,
layer->class[c]->styles[s]->maxscaledenom)) {
- if (layer->class[c]->styles[s]->_geomtransform.type != MS_GEOMTRANSFORM_NONE)
- msDrawTransformedShape(map, &map->symbolset, image, unclipped_shape, layer->class[c]->styles[s], layer->scalefactor);
- else if (!MS_DRAW_SINGLESTYLE(drawmode) || s == style)
- msDrawLineSymbol(&map->symbolset, image, shape, layer->class[c]->styles[s], layer->scalefactor);
+ if (layer->class[c]->styles[s]->_geomtransform.type != MS_GEOMTRANSFORM_NONE) {
+ if(UNLIKELY(MS_FAILURE == msDrawTransformedShape(map, image, unclipped_shape, layer->class[c]->styles[s], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
+ else if (!MS_DRAW_SINGLESTYLE(drawmode) || s == style) {
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map, image, shape, layer->class[c]->styles[s], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
}
}
}
@@ -1817,100 +1631,115 @@ int lineLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer, shapeObj *
if(MS_DRAW_LABELS(drawmode)) {
for (l = 0; l < layer->class[c]->numlabels; l++) {
labelObj *label = layer->class[c]->labels[l];
- minfeaturesize = label->minfeaturesize * image->resolutionfactor;
+ textSymbolObj ts;
+ char *annotext;
+ if(!msGetLabelStatus(map,layer,shape,label)) {
+ continue;
+ }
+ annotext = msShapeGetLabelAnnotation(layer,anno_shape,label);
+ if(!annotext) continue;
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts,label,annotext,layer->scalefactor,image->resolutionfactor, layer->labelcache);
+
+
if (label->anglemode == MS_FOLLOW) { /* bug #1620 implementation */
- if (label->type != MS_TRUETYPE) {
- msSetError(MS_MISCERR, "Angle mode 'FOLLOW' is supported only with truetype fonts.", "msDrawShape()");
+ struct label_follow_result lfr;
+
+ if (!layer->labelcache) {
+ msSetError(MS_MISCERR, "Angle mode 'FOLLOW' is supported only with labelcache on", "msDrawShape()");
ret = MS_FAILURE;
goto line_cleanup;
}
- annopaths = msPolylineLabelPath(map, image, anno_shape, minfeaturesize, &(map->fontset),
- label->annotext, label, layer->scalefactor, &numpaths, ®ularLines, &numRegularLines);
-
- for (i = 0; i < numpaths; i++) {
- label->position = MS_CC; /* force all label positions to MS_CC regardless if a path is computed */
-
- if (annopaths[i]) {
- if (layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, anno_shape, NULL, annopaths[i], -1) != MS_SUCCESS) {
- ret = MS_FAILURE;
- goto line_cleanup;
- }
- } else {
- /* TODO: handle drawing curved labels outside the cache */
- msFreeLabelPathObj(annopaths[i]);
- annopaths[i] = NULL;
- }
+
+ memset(&lfr,0,sizeof(lfr));
+ msPolylineLabelPath(map, image, anno_shape, &ts, label, &lfr);
+
+ for (i = 0; i < lfr.num_follow_labels; i++) {
+ if (msAddLabel(map, image, label, layer->index, c, anno_shape, NULL, -1, lfr.follow_labels[i]) != MS_SUCCESS) {
+ ret = MS_FAILURE;
+ goto line_cleanup;
}
}
-
- /* handle regular lines that have to be drawn with the regular algorithm */
- if (numRegularLines > 0) {
- annopoints = msPolylineLabelPointExtended(anno_shape, minfeaturesize, label->repeatdistance,
- &angles, &lengths, &numpoints, regularLines, numRegularLines, MS_FALSE);
-
- for (i = 0; i < numpoints; i++) {
- label->angle = *angles[i];
- if (layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, anno_shape, annopoints[i], NULL, *lengths[i]) != MS_SUCCESS) {
- ret = MS_FAILURE;
- goto line_cleanup;
- }
- } else {
- msDrawLabel(map, image, *annopoints[i], label->annotext, label, layer->scalefactor);
+ free(lfr.follow_labels);
+ for(i=0; i<lfr.lar.num_label_points; i++) {
+ textSymbolObj *ts_auto = msSmallMalloc(sizeof(textSymbolObj));
+ initTextSymbol(ts_auto);
+ msCopyTextSymbol(ts_auto,&ts);
+ ts_auto->rotation = lfr.lar.angles[i];
+ if (layer->labelcache) {
+ if (msAddLabel(map, image, label, layer->index, c, anno_shape, &lfr.lar.label_points[i], -1, ts_auto) != MS_SUCCESS) {
+ ret = MS_FAILURE;
+ free(lfr.lar.angles);
+ free(lfr.lar.label_points);
+ goto line_cleanup;
}
+ } else {
+ ret = msDrawTextSymbol(map,image,lfr.lar.label_points[i],ts_auto);
+ freeTextSymbol(ts_auto);
+ free(ts_auto); /* TODO RFC98: could we not re-use the original ts instead of duplicating into ts_auto ?
+ * we cannot for now, as the rendering code will modify the glyph positions to apply
+ * the labelpoint and rotation offsets */
+ if(UNLIKELY(MS_FAILURE == ret)) goto line_cleanup;
}
+
}
+ free(lfr.lar.angles);
+ free(lfr.lar.label_points);
} else {
- annopoints = msPolylineLabelPoint(anno_shape, minfeaturesize, label->repeatdistance, &angles,
- &lengths, &numpoints, label->anglemode);
+ struct label_auto_result lar;
+ memset(&lar,0,sizeof(struct label_auto_result));
+ ret = msPolylineLabelPoint(map, anno_shape, &ts, label, &lar, image->resolutionfactor);
+ if(UNLIKELY(MS_FAILURE == ret)) goto line_cleanup;
if (label->angle != 0)
label->angle -= map->gt.rotation_angle; /* apply rotation angle */
- for (i = 0; i < numpoints; i++) {
- if (label->anglemode != MS_NONE) label->angle = *angles[i]; /* angle derived from line overrides even the rotation value. */
-
+ for(i=0; i<lar.num_label_points; i++) {
+ textSymbolObj *ts_auto = msSmallMalloc(sizeof(textSymbolObj));
+ initTextSymbol(ts_auto);
+ msCopyTextSymbol(ts_auto,&ts);
+ ts_auto->rotation = lar.angles[i];
if (layer->labelcache) {
- if (msAddLabel(map, label, layer->index, c, anno_shape, annopoints[i], NULL, *lengths[i]) != MS_SUCCESS) {
+ if (msAddLabel(map, image, label, layer->index, c, anno_shape, &lar.label_points[i], -1, ts_auto) != MS_SUCCESS) {
ret = MS_FAILURE;
+ free(lar.angles);
+ free(lar.label_points);
+ freeTextSymbol(ts_auto);
+ free(ts_auto);
goto line_cleanup;
}
} else {
- msDrawLabel(map, image, *annopoints[i], label->annotext, label, layer->scalefactor);
+ if(!ts_auto->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts_auto))) {
+ ret = MS_FAILURE;
+ free(lar.angles);
+ free(lar.label_points);
+ freeTextSymbol(ts_auto);
+ free(ts_auto);
+ goto line_cleanup;
+ }
+ }
+ ret = msDrawTextSymbol(map,image,lar.label_points[i],ts_auto);
+ freeTextSymbol(ts_auto);
+ free(ts_auto); /* TODO RFC98: could we not re-use the original ts instead of duplicating into ts_auto ?
+ * we cannot for now, as the rendering code will modify the glyph positions to apply
+ * the labelpoint and rotation offsets */
+ ts_auto = NULL;
+ if(UNLIKELY(MS_FAILURE == ret)) goto line_cleanup;
}
+
}
+ free(lar.angles);
+ free(lar.label_points);
}
line_cleanup:
/* clean up and reset */
- if (annopaths) {
- free(annopaths);
- annopaths = NULL;
- }
-
- if (regularLines) {
- free(regularLines);
- regularLines = NULL;
- }
-
- if (annopoints) {
- for (j = 0; j < numpoints; j++) {
- if (annopoints[j]) free(annopoints[j]);
- if (angles[j]) free(angles[j]);
- if (lengths[j]) free(lengths[j]);
- }
- free(angles);
- free(annopoints);
- free(lengths);
- annopoints = NULL;
- angles = NULL;
- lengths = NULL;
- }
if (ret == MS_FAILURE) {
break; /* from the label looping */
}
+ freeTextSymbol(&ts);
} /* next label */
}
@@ -1930,11 +1759,17 @@ int polygonLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer,
for (i = 0; i < layer->class[c]->numstyles; i++) {
if (msScaleInBounds(map->scaledenom, layer->class[c]->styles[i]->minscaledenom,
layer->class[c]->styles[i]->maxscaledenom)) {
- if (layer->class[c]->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE)
- msDrawShadeSymbol(&map->symbolset, image, shape, layer->class[c]->styles[i], layer->scalefactor);
- else
- msDrawTransformedShape(map, &map->symbolset, image, unclipped_shape,
- layer->class[c]->styles[i], layer->scalefactor);
+ if (layer->class[c]->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE) {
+ if(UNLIKELY(MS_FAILURE == msDrawShadeSymbol(map, image, shape, layer->class[c]->styles[i], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
+ else {
+ if(UNLIKELY(MS_FAILURE == msDrawTransformedShape(map, image, unclipped_shape,
+ layer->class[c]->styles[i], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
}
}
}
@@ -1946,14 +1781,18 @@ int polygonLayerDrawShape(mapObj *map, imageObj *image, layerObj *layer,
for (i = 0; i < layer->class[c]->numlabels; i++)
if (layer->class[c]->labels[i]->angle != 0) layer->class[c]->labels[i]->angle -= map->gt.rotation_angle; /* TODO: is this correct ??? */
if (layer->labelcache) {
- if (msAddLabelGroup(map, layer->index, c, anno_shape, &annopnt,
+ if (msAddLabelGroup(map, image, layer->index, c, anno_shape, &annopnt,
MS_MIN(shape->bounds.maxx - shape->bounds.minx, shape->bounds.maxy - shape->bounds.miny)) != MS_SUCCESS) {
return MS_FAILURE;
}
} else {
for (i = 0; i < layer->class[c]->numlabels; i++)
- msDrawLabel(map, image, annopnt, layer->class[c]->labels[i]->annotext,
- layer->class[c]->labels[i], layer->scalefactor);
+ if(msGetLabelStatus(map,layer,shape,layer->class[c]->labels[i]) == MS_ON) {
+ char *annotext = msShapeGetLabelAnnotation(layer,shape,layer->class[c]->labels[i]); /*ownership taken by msDrawLabel, no need to free */
+ if(UNLIKELY(MS_FAILURE == msDrawLabel(map, image, annopnt, annotext, layer->class[c]->labels[i], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
}
}
}
@@ -1977,7 +1816,6 @@ int msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image,
if(shape->numlines == 0 || shape->type == MS_SHAPE_NULL) return MS_SUCCESS;
- msDrawStartShape(map, layer, image, shape);
c = shape->classindex;
/* Before we do anything else, we will check for a rangeitem.
@@ -1992,11 +1830,13 @@ int msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image,
/* circle and point layers go through their own treatment */
if(layer->type == MS_LAYER_CIRCLE) {
if(msBindLayerToShape(layer, shape, drawmode) != MS_SUCCESS) return MS_FAILURE;
+ msDrawStartShape(map, layer, image, shape);
ret = circleLayerDrawShape(map,image,layer,shape);
msDrawEndShape(map,layer,image,shape);
return ret;
} else if(layer->type == MS_LAYER_POINT || layer->type == MS_LAYER_RASTER) {
if(msBindLayerToShape(layer, shape, drawmode) != MS_SUCCESS) return MS_FAILURE;
+ msDrawStartShape(map, layer, image, shape);
ret = pointLayerDrawShape(map,image,layer,shape,drawmode);
msDrawEndShape(map,layer,image,shape);
return ret;
@@ -2164,16 +2004,12 @@ int msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image,
}
switch(layer->type) {
- case MS_LAYER_ANNOTATION:
- if(MS_DRAW_LABELS(drawmode))
- ret = annotationLayerDrawShape(map, image, layer, anno_shape);
- else
- ret = MS_SUCCESS;
- break;
case MS_LAYER_LINE:
+ msDrawStartShape(map, layer, image, shape);
ret = lineLayerDrawShape(map, image, layer, shape, anno_shape, unclipped_shape, style, drawmode);
break;
case MS_LAYER_POLYGON:
+ msDrawStartShape(map, layer, image, shape);
ret = polygonLayerDrawShape(map, image, layer, shape, anno_shape, unclipped_shape, drawmode);
break;
case MS_LAYER_POINT:
@@ -2199,7 +2035,7 @@ draw_shape_cleanup:
*/
int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image, int classindex, char *labeltext)
{
- int s;
+ int s,ret;
classObj *theclass=layer->class[classindex];
labelObj *label=NULL;
@@ -2212,38 +2048,9 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
if(labeltext && theclass->numlabels > 0) {
label = theclass->labels[0];
-
- msFree(label->annotext); /* free any previously allocated annotation text */
- if(labeltext && (label->encoding || label->wrap || label->maxlength))
- label->annotext = msTransformLabelText(map,label,labeltext); /* apply wrap character and encoding to the label text */
- else
- label->annotext = msStrdup(labeltext);
}
switch(layer->type) {
- case MS_LAYER_ANNOTATION:
- if(layer->transform == MS_TRUE) {
- if(!msPointInRect(point, &map->extent)) return(0);
- point->x = MS_MAP2IMAGE_X(point->x, map->extent.minx, map->cellsize);
- point->y = MS_MAP2IMAGE_Y(point->y, map->extent.maxy, map->cellsize);
- } else
- msOffsetPointRelativeTo(point, layer);
-
- if(labeltext) {
- if(layer->labelcache) {
- if(msAddLabel(map, label, layer->index, classindex, NULL, point, NULL, -1) != MS_SUCCESS) return(MS_FAILURE);
- } else {
- if(theclass->numstyles > 0 && MS_VALID_COLOR(theclass->styles[0]->color)) {
- for(s=0; s<theclass->numstyles; s++) {
- if(msScaleInBounds(map->scaledenom, theclass->styles[s]->minscaledenom, theclass->styles[s]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, point, theclass->styles[s], layer->scalefactor);
- }
- }
- msDrawLabel(map, image, *point, label->annotext, label, layer->scalefactor);
- }
- }
- break;
-
case MS_LAYER_POINT:
if(layer->transform == MS_TRUE) {
if(!msPointInRect(point, &map->extent)) return(0);
@@ -2254,13 +2061,24 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
for(s=0; s<theclass->numstyles; s++) {
if(msScaleInBounds(map->scaledenom, theclass->styles[s]->minscaledenom, theclass->styles[s]->maxscaledenom))
- msDrawMarkerSymbol(&map->symbolset, image, point, theclass->styles[s], layer->scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, point, theclass->styles[s], layer->scalefactor))) {
+ return MS_FAILURE;
+ }
}
if(labeltext) {
+ textSymbolObj *ts = msSmallMalloc(sizeof(textSymbolObj));
+ initTextSymbol(ts);
+ msPopulateTextSymbolForLabelAndString(ts, label, msStrdup(labeltext), layer->scalefactor, image->resolutionfactor, layer->labelcache);
if(layer->labelcache) {
- if(msAddLabel(map, label, layer->index, classindex, NULL, point, NULL, -1) != MS_SUCCESS) return(MS_FAILURE);
- } else
- msDrawLabel(map, image, *point, label->annotext, label, layer->scalefactor);
+ if(msAddLabel(map, image, label, layer->index, classindex, NULL, point, -1, ts) != MS_SUCCESS) {
+ return(MS_FAILURE);
+ }
+ } else {
+ ret = msDrawTextSymbol(map,image,*point,ts);
+ freeTextSymbol(ts);
+ free(ts);
+ if(UNLIKELY(ret == MS_FAILURE)) return MS_FAILURE;
+ }
}
break;
default:
@@ -2276,32 +2094,26 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, labelObj *label, double scalefactor)
{
shapeObj labelPoly;
+ label_bounds lbounds;
lineObj labelPolyLine;
pointObj labelPolyPoints[5];
+ textSymbolObj ts;
int needLabelPoly=MS_TRUE;
int needLabelPoint=MS_TRUE;
- int label_offset_x, label_offset_y;
- double size;
- rectObj r;
-
- if(!string) return MS_SUCCESS; /* not an error, just don't need to do anything more */
- if(strlen(string) == 0) return MS_SUCCESS; /* not an error, just don't need to do anything more */
- if(label->status == MS_OFF) return(MS_SUCCESS); /* not an error */
-
-
- if(label->type == MS_TRUETYPE) {
- size = label->size * scalefactor;
- size = MS_MAX(size, label->minsize*image->resolutionfactor);
- size = MS_MIN(size, label->maxsize*image->resolutionfactor);
- } else {
- size = label->size;
- }
- if(msGetLabelSize(map, label, string, size, &r, NULL)!= MS_SUCCESS)
+
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts, label, string, scalefactor, image->resolutionfactor, 0);
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,&ts))) {
+ freeTextSymbol(&ts);
return MS_FAILURE;
+ }
- label_offset_x = label->offsetx*scalefactor;
- label_offset_y = label->offsety*scalefactor;
+ labelPoly.line = &labelPolyLine; /* setup the label polygon structure */
+ labelPoly.numlines = 1;
+ lbounds.poly = &labelPolyLine; /* setup the label polygon structure */
+ labelPoly.line->point = labelPolyPoints;
+ labelPoly.line->numpoints = 5;
if(label->position != MS_XY) {
pointObj p;
@@ -2311,113 +2123,190 @@ int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, l
for(i=0; i<label->numstyles; i++) {
if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
- msDrawMarkerSymbol(&map->symbolset, image, &labelPnt, label->styles[i], scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &labelPnt, label->styles[i], scalefactor))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
} else if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
if(needLabelPoly) {
- labelPoly.line = &labelPolyLine; /* setup the label polygon structure */
- labelPoly.numlines = 1;
- labelPoly.line->point = labelPolyPoints;
- labelPoly.line->numpoints = 5;
- p = get_metrics_line(&labelPnt, label->position, r, label_offset_x, label_offset_y, label->angle, 1, labelPoly.line);
+ p = get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
+ label->offsety * ts.scalefactor, ts.rotation, 1, &lbounds);
+ if(!lbounds.poly) {
+ /* we need the full shape to draw the label background */
+ labelPolyPoints[0].x = labelPolyPoints[4].x = lbounds.bbox.minx;
+ labelPolyPoints[0].y = labelPolyPoints[4].y = lbounds.bbox.miny;
+ labelPolyPoints[1].x = lbounds.bbox.minx;
+ labelPolyPoints[1].y = lbounds.bbox.maxy;
+ labelPolyPoints[2].x = lbounds.bbox.maxx;
+ labelPolyPoints[2].y = lbounds.bbox.maxy;
+ labelPolyPoints[3].x = lbounds.bbox.maxx;
+ labelPolyPoints[3].y = lbounds.bbox.miny;
+ }
needLabelPoint = MS_FALSE; /* don't re-compute */
needLabelPoly = MS_FALSE;
}
- msDrawShadeSymbol(&map->symbolset, image, &labelPoly, label->styles[i], scalefactor);
+ if(UNLIKELY(MS_FAILURE == msDrawShadeSymbol(map, image, &labelPoly, label->styles[i], ts.scalefactor))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
} else {
- /* TODO: need error msg about unsupported geomtransform */
+ msSetError(MS_MISCERR,"Unknown label geomtransform %s", "msDrawLabel()",label->styles[i]->_geomtransform.string);
+ freeTextSymbol(&ts);
return MS_FAILURE;
}
}
}
if(needLabelPoint)
- p = get_metrics_line(&labelPnt, label->position, r, label_offset_x, label_offset_y, label->angle, 0, NULL);
+ p = get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
+ label->offsety * ts.scalefactor, ts.rotation, 0, &lbounds);
/* draw the label text */
- msDrawText(image, p, string, label, &(map->fontset), scalefactor); /* actually draw the label */
+ if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,p,&ts))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
} else {
- labelPnt.x += label_offset_x;
- labelPnt.y += label_offset_y;
+ labelPnt.x += label->offsetx * ts.scalefactor;
+ labelPnt.y += label->offsety * ts.scalefactor;
if(label->numstyles > 0) {
int i;
for(i=0; i<label->numstyles; i++) {
- if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
- msDrawMarkerSymbol(&map->symbolset, image, &labelPnt, label->styles[i], scalefactor);
- else if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &labelPnt, label->styles[i], scalefactor))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
+ } else if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
if(needLabelPoly) {
- labelPoly.line = &labelPolyLine; /* setup the label polygon structure */
- labelPoly.numlines = 1;
- labelPoly.line->point = labelPolyPoints;
- labelPoly.line->numpoints = 5;
- get_metrics_line(&labelPnt, label->position, r, label_offset_x, label_offset_y, label->angle, 1, labelPoly.line);
+ get_metrics(&labelPnt, label->position, ts.textpath, label->offsetx * ts.scalefactor,
+ label->offsety * ts.scalefactor, ts.rotation, 1, &lbounds);
needLabelPoly = MS_FALSE; /* don't re-compute */
+ if(!lbounds.poly) {
+ /* we need the full shape to draw the label background */
+ labelPolyPoints[0].x = labelPolyPoints[4].x = lbounds.bbox.minx;
+ labelPolyPoints[0].y = labelPolyPoints[4].y = lbounds.bbox.miny;
+ labelPolyPoints[1].x = lbounds.bbox.minx;
+ labelPolyPoints[1].y = lbounds.bbox.maxy;
+ labelPolyPoints[2].x = lbounds.bbox.maxx;
+ labelPolyPoints[2].y = lbounds.bbox.maxy;
+ labelPolyPoints[3].x = lbounds.bbox.maxx;
+ labelPolyPoints[3].y = lbounds.bbox.miny;
+ }
+ }
+ if(UNLIKELY(MS_FAILURE == msDrawShadeSymbol(map, image, &labelPoly, label->styles[i], scalefactor))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
}
- msDrawShadeSymbol(&map->symbolset, image, &labelPoly, label->styles[i], scalefactor);
} else {
- /* TODO: need error msg about unsupported geomtransform */
+ msSetError(MS_MISCERR,"Unknown label geomtransform %s", "msDrawLabel()",label->styles[i]->_geomtransform.string);
+ freeTextSymbol(&ts);
return MS_FAILURE;
}
}
}
/* draw the label text */
- msDrawText(image, labelPnt, string, label, &(map->fontset), scalefactor); /* actually draw the label */
+ if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,labelPnt,&ts))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
}
+ freeTextSymbol(&ts);
return MS_SUCCESS;
}
-/* private shortcut function to try a leader offsetted label */
-void offsetAndTest(imageObj*image, mapObj *map, labelCacheMemberObj *cachePtr, double ox, double oy,
- int priority, int label_idx, shapeObj *unoffsetedpoly)
-{
- /* offset cachePtr->poly and cachePtr->point */
- int i,j;
- for(i=cachePtr->poly->numlines-1; i>=0; i--) {
- for(j=cachePtr->poly->line[i].numpoints-1; j>=0; j--) {
- cachePtr->poly->line[i].point[j].x = unoffsetedpoly->line[i].point[j].x + ox;
- cachePtr->poly->line[i].point[j].y = unoffsetedpoly->line[i].point[j].y + oy;
- }
- }
- cachePtr->poly->bounds.minx = unoffsetedpoly->bounds.minx + ox;
- cachePtr->poly->bounds.miny = unoffsetedpoly->bounds.miny + oy;
- cachePtr->poly->bounds.maxx = unoffsetedpoly->bounds.maxx + ox;
- cachePtr->poly->bounds.maxy = unoffsetedpoly->bounds.maxy + oy;
-
- cachePtr->point.x = cachePtr->leaderline->point[0].x + ox;
- cachePtr->point.y = cachePtr->leaderline->point[0].y + oy;
-
- /* set the second point of the leader line */
- cachePtr->leaderline->point[1].x = cachePtr->point.x;
- cachePtr->leaderline->point[1].y = cachePtr->point.y;
-
- /* compute leader line bbox */
- if(ox>0) {
- cachePtr->leaderbbox->minx = cachePtr->leaderline->point[0].x;
- cachePtr->leaderbbox->maxx = cachePtr->point.x;
+static inline void offset_bbox(const rectObj *from, rectObj *to, double ox, double oy) {
+ to->minx = from->minx + ox;
+ to->miny = from->miny + oy;
+ to->maxx = from->maxx + ox;
+ to->maxy = from->maxy + oy;
+}
+
+static inline void offset_label_bounds(const label_bounds *from, label_bounds *to, double ox, double oy) {
+ if(from->poly) {
+ int i;
+ for(i=0; i<from->poly->numpoints; i++) {
+ to->poly->point[i].x = from->poly->point[i].x + ox;
+ to->poly->point[i].y = from->poly->point[i].y + oy;
+ }
+ to->poly->numpoints = from->poly->numpoints;
} else {
- cachePtr->leaderbbox->maxx = cachePtr->leaderline->point[0].x;
- cachePtr->leaderbbox->minx = cachePtr->point.x;
+ to->poly = NULL;
}
- if(oy>0) {
- cachePtr->leaderbbox->miny = cachePtr->leaderline->point[0].y;
- cachePtr->leaderbbox->maxy = cachePtr->point.y;
- } else {
- cachePtr->leaderbbox->maxy = cachePtr->leaderline->point[0].y;
- cachePtr->leaderbbox->miny = cachePtr->point.y;
- }
- cachePtr->status = msTestLabelCacheCollisions(map, cachePtr, cachePtr->poly, cachePtr->labels[0].mindistance,priority,-label_idx);
- if(cachePtr->status) {
- int ll;
- for(ll=0; ll<cachePtr->numlabels; ll++) {
- cachePtr->labels[ll].annopoint.x += ox;
- cachePtr->labels[ll].annopoint.y += oy;
- if(cachePtr->labels[ll].annopoly) {
- for(i=0; i<5; i++) {
- cachePtr->labels[ll].annopoly->line[0].point[i].x += ox;
- cachePtr->labels[ll].annopoly->line[0].point[i].y += oy;
+ offset_bbox(&from->bbox, &to->bbox, ox, oy);
+}
+
+/* private shortcut function to try a leader offsetted label
+ * the caller must ensure that scratch->poly->points has been sufficiently allocated
+ * to hold the points from the cachePtr's label_bounds */
+void offsetAndTest(mapObj *map, labelCacheMemberObj *cachePtr, double ox, double oy,
+ int priority, int label_idx, label_bounds *scratch)
+{
+ int i,j,status;
+ pointObj leaderpt;
+ lineObj *scratch_line = scratch->poly;
+
+ for(i=0; i<cachePtr->numtextsymbols; i++) {
+ textSymbolObj *ts = cachePtr->textsymbols[i];
+ if(ts->textpath) {
+ offset_label_bounds(&ts->textpath->bounds, scratch, ox, oy);
+ status = msTestLabelCacheCollisions(map, cachePtr, scratch, priority, label_idx);
+ if(!status) {
+ return;
+ }
+ }
+ for(j=0; j<ts->label->numstyles; j++) {
+ if(ts->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ scratch->poly = scratch_line;
+ offset_label_bounds(ts->style_bounds[j], scratch, ox, oy);
+ status = msTestLabelCacheCollisions(map, cachePtr, scratch, priority, label_idx);
+ if(!status) {
+ return;
+ }
+ }
+ }
+ }
+
+ leaderpt.x = cachePtr->point.x + ox;
+ leaderpt.y = cachePtr->point.y + oy;
+
+ status = msTestLabelCacheLeaderCollision(map, &cachePtr->point, &leaderpt);
+ if(!status) {
+ return;
+ }
+
+
+ /* the current offset is ok */
+ cachePtr->leaderbbox = msSmallMalloc(sizeof(rectObj));
+ cachePtr->leaderline = msSmallMalloc(sizeof(lineObj));
+ cachePtr->leaderline->point = msSmallMalloc(2 * sizeof(pointObj));
+ cachePtr->leaderline->numpoints = 2;
+ cachePtr->leaderline->point[0] = cachePtr->point;
+ cachePtr->leaderline->point[1] = leaderpt;
+ cachePtr->leaderbbox->minx = MS_MIN(leaderpt.x,cachePtr->point.x);
+ cachePtr->leaderbbox->maxx = MS_MAX(leaderpt.x,cachePtr->point.x);
+ cachePtr->leaderbbox->miny = MS_MIN(leaderpt.y,cachePtr->point.y);
+ cachePtr->leaderbbox->maxy = MS_MAX(leaderpt.y,cachePtr->point.y);
+ cachePtr->status = MS_ON;
+
+ offset_bbox(&cachePtr->bbox,&cachePtr->bbox,ox,oy);
+
+ for(i=0; i<cachePtr->numtextsymbols; i++) {
+ textSymbolObj *ts = cachePtr->textsymbols[i];
+ if(ts->textpath) {
+ offset_label_bounds(&ts->textpath->bounds, &ts->textpath->bounds, ox, oy);
+ ts->annopoint.x += ox;
+ ts->annopoint.y += oy;
+ }
+ if(ts->style_bounds) {
+ for(j=0; j<ts->label->numstyles; j++) {
+ if(ts->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
+ ts->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ offset_label_bounds(ts->style_bounds[j], ts->style_bounds[j], ox, oy);
}
}
}
@@ -2431,368 +2320,403 @@ int msDrawOffsettedLabels(imageObj *image, mapObj *map, int priority)
labelCacheObj *labelcache = &(map->labelcache);
labelCacheSlotObj *cacheslot;
labelCacheMemberObj *cachePtr;
+ label_bounds scratch;
+ lineObj scratch_line;
+ pointObj *scratch_points = NULL;
+ int num_allocated_scratch_points = 0;
assert(MS_RENDERER_PLUGIN(image->format));
cacheslot = &(labelcache->slots[priority]);
+ scratch.poly = &scratch_line;
+
for(l=cacheslot->numlabels-1; l>=0; l--) {
cachePtr = &(cacheslot->labels[l]); /* point to right spot in the label cache */
- if(cachePtr->status == MS_FALSE && !cachePtr->labelpath && cachePtr->poly) {
+ if(cachePtr->status == MS_OFF) {
/* only test regular labels that have had their bounding box computed
and that haven't been rendered */
classObj *classPtr = (GET_CLASS(map,cachePtr->layerindex,cachePtr->classindex));
layerObj *layerPtr = (GET_LAYER(map,cachePtr->layerindex));
- if(classPtr->leader.maxdistance) { /* only test labels that can be offsetted */
- shapeObj origPoly;
- int steps,i;
- if(cachePtr->point.x < labelcache->gutter ||
- cachePtr->point.y < labelcache->gutter ||
- cachePtr->point.x >= image->width - labelcache->gutter ||
- cachePtr->point.y >= image->height - labelcache->gutter) {
- /* don't look for leaders if point is in edge buffer as the leader line would end up chopped off */
- continue;
- }
-
- /* TODO: check the cachePtr->point doesn't intersect a rendered label before event trying to offset ?*/
-
- /* TODO: if the entry has a single label and it has position != CC,
- * recompute the cachePtr->poly and labelPtr->annopoint using POSITION CC */
- msInitShape(&origPoly);
- msCopyShape(cachePtr->poly,&origPoly);
-
- cachePtr->leaderline = msSmallMalloc(sizeof(lineObj));
- cachePtr->leaderline->numpoints = 2;
- cachePtr->leaderline->point = msSmallMalloc(2*sizeof(pointObj));
- cachePtr->leaderline->point[0] = cachePtr->point;
- cachePtr->leaderbbox = msSmallMalloc(sizeof(rectObj));
-
- steps = classPtr->leader.maxdistance / classPtr->leader.gridstep;
+ int steps,i,num_scratch_points_to_allocate = 0;
-#define x0 (cachePtr->leaderline->point[0].x)
-#define y0 (cachePtr->leaderline->point[0].y)
-#define gridstepsc (classPtr->leader.gridstep)
+ assert(classPtr->leader); /* cachePtrs that don't need to be tested have been marked as status on or delete */
+ if(cachePtr->point.x < labelcache->gutter ||
+ cachePtr->point.y < labelcache->gutter ||
+ cachePtr->point.x >= image->width - labelcache->gutter ||
+ cachePtr->point.y >= image->height - labelcache->gutter) {
+ /* don't look for leaders if point is in edge buffer as the leader line would end up chopped off */
+ continue;
+ }
-#define otest(ox,oy) if((x0+(ox)) >= labelcache->gutter &&\
- (y0+(oy)) >= labelcache->gutter &&\
- (x0+(ox)) < image->width + labelcache->gutter &&\
- (y0+(oy)) < image->height + labelcache->gutter) {\
- offsetAndTest(image,map,cachePtr,(ox),(oy),priority,l,&origPoly); \
- if(cachePtr->status) break;\
- }
-
- /* loop through possible offsetted positions */
- for(i=1; i<=steps; i++) {
+ for(i=0; i<cachePtr->numtextsymbols; i++) {
+ int j;
+ textSymbolObj *ts = cachePtr->textsymbols[i];
+ if(ts->textpath && ts->textpath->bounds.poly) {
+ num_scratch_points_to_allocate = MS_MAX(num_scratch_points_to_allocate, ts->textpath->bounds.poly->numpoints);
+ }
+ if(ts->style_bounds) {
+ for(j=0;j<ts->label->numstyles; j++) {
+ if(ts->label->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT &&
+ ts->style_bounds[j]->poly) {
+ num_scratch_points_to_allocate = MS_MAX(num_scratch_points_to_allocate, ts->style_bounds[j]->poly->numpoints);
+ }
+ }
+ }
+ }
+ if(num_scratch_points_to_allocate > num_allocated_scratch_points) {
+ scratch_points = msSmallRealloc(scratch_points, num_scratch_points_to_allocate * sizeof(pointObj));
+ num_allocated_scratch_points = num_scratch_points_to_allocate;
+ }
+ steps = classPtr->leader->maxdistance / classPtr->leader->gridstep;
+#define x0 (cachePtr->point.x)
+#define y0 (cachePtr->point.y)
+#define gridstepsc (classPtr->leader->gridstep)
- /* test the intermediate points on the ring */
- /* (points marked "0" are the ones being tested)
+#define otest(ox,oy) if((x0+(ox)) >= labelcache->gutter &&\
+ (y0+(oy)) >= labelcache->gutter &&\
+ (x0+(ox)) < image->width + labelcache->gutter &&\
+ (y0+(oy)) < image->height + labelcache->gutter) {\
+ scratch_line.point = scratch_points;\
+ scratch.poly = &scratch_line; \
+ offsetAndTest(map,cachePtr,(ox),(oy),priority,l,&scratch); \
+ if(cachePtr->status == MS_ON) break;\
+ }
- X00X00X
- 0XXXXX0
- 0XXXXX0
- XXX.XXX
- 0XXXXX0
- 0XXXXX0
- X00X00X
- */
- int j;
- for(j=1; j<i-1; j++) {
- /* test the right positions */
- otest(i*gridstepsc,j * gridstepsc);
- otest(i*gridstepsc,- j * gridstepsc);
- /* test the left positions */
- otest(- i*gridstepsc,j * gridstepsc);
- otest(- i*gridstepsc,- j * gridstepsc);
- /* test the top positions */
- otest(j*gridstepsc,- i * gridstepsc);
- otest(- j *gridstepsc,- i * gridstepsc);
- /* test the bottom positions */
- otest(j*gridstepsc,i * gridstepsc);
- otest(- j *gridstepsc,i * gridstepsc);
- }
- if(j<(i-1)) break;
+ /* loop through possible offsetted positions */
+ for(i=1; i<=steps; i++) {
+
+
+
+
+ /* test the intermediate points on the ring */
+
+ /* (points marked "0" are the ones being tested)
+
+ X00X00X
+ 0XXXXX0
+ 0XXXXX0
+ XXX.XXX
+ 0XXXXX0
+ 0XXXXX0
+ X00X00X
+ */
+ int j;
+ for(j=1; j<i-1; j++) {
+ /* test the right positions */
+ otest(i*gridstepsc,j * gridstepsc);
+ otest(i*gridstepsc,- j * gridstepsc);
+ /* test the left positions */
+ otest(- i*gridstepsc,j * gridstepsc);
+ otest(- i*gridstepsc,- j * gridstepsc);
+ /* test the top positions */
+ otest(j*gridstepsc,- i * gridstepsc);
+ otest(- j *gridstepsc,- i * gridstepsc);
+ /* test the bottom positions */
+ otest(j*gridstepsc,i * gridstepsc);
+ otest(- j *gridstepsc,i * gridstepsc);
+ }
+ if(j<(i-1)) break;
- otest(i*gridstepsc,i*gridstepsc);
- otest(-i*gridstepsc,-i*gridstepsc);
- otest(i*gridstepsc,-i*gridstepsc);
- otest(-i*gridstepsc,i*gridstepsc);
+ otest(i*gridstepsc,i*gridstepsc);
+ otest(-i*gridstepsc,-i*gridstepsc);
+ otest(i*gridstepsc,-i*gridstepsc);
+ otest(-i*gridstepsc,i*gridstepsc);
- /* test the intermediate points on the ring */
+ /* test the intermediate points on the ring */
- /* (points marked "0" are the ones being tested)
+ /* (points marked "0" are the ones being tested)
- X00X00X
- 0XXXXX0
- 0XXXXX0
- XXX.XXX
- 0XXXXX0
- 0XXXXX0
- X00X00X
+ X00X00X
+ 0XXXXX0
+ 0XXXXX0
+ XXX.XXX
+ 0XXXXX0
+ 0XXXXX0
+ X00X00X
- */
+ */
- /* test the extreme diagonal points */
+ /* test the extreme diagonal points */
- /* (points marked "0" are the ones being tested)
+ /* (points marked "0" are the ones being tested)
- 0XXXXX0
- XXXXXXX
- XXXXXXX
- XXX.XXX
- XXXXXXX
- XXXXXXX
- 0XXXXX0
+ 0XXXXX0
+ XXXXXXX
+ XXXXXXX
+ XXX.XXX
+ XXXXXXX
+ XXXXXXX
+ 0XXXXX0
- (x0+i*gridstep, y0+i*gridstep), pos lr
- (x0-i*gridstep, y0-i*gridstep), pos ul
- (x0+i*gridstep, y0-i*gridstep), pos ur
- (x0-i*gridstep, y0+i*gridstep), pos ll
+ (x0+i*gridstep, y0+i*gridstep), pos lr
+ (x0-i*gridstep, y0-i*gridstep), pos ul
+ (x0+i*gridstep, y0-i*gridstep), pos ur
+ (x0-i*gridstep, y0+i*gridstep), pos ll
- */
+ */
- /* test the 4 cardinal points on the ring */
+ /* test the 4 cardinal points on the ring */
- /* (points marked "0" are the ones being tested)
+ /* (points marked "0" are the ones being tested)
- XXX0XXX
- XXXXXXX
- XXXXXXX
- 0XX.XX0
- XXXXXXX
- XXXXXXX
- XXX0XXX
+ XXX0XXX
+ XXXXXXX
+ XXXXXXX
+ 0XX.XX0
+ XXXXXXX
+ XXXXXXX
+ XXX0XXX
- * (x0+i*gridtep,y0), pos cr
+ * (x0+i*gridtep,y0), pos cr
- * (x0-i*gridstep,y0), pos cl
- * (x0,y0-i*gridstep), pos uc
- * (x0,y0+i*gridstep), pos lc
- */
- otest(i*gridstepsc,0);
- otest(-i*gridstepsc,0);
- otest(0,-i*gridstepsc);
- otest(0,i*gridstepsc);
- }
- if(cachePtr->status) {
- int ll;
- shapeObj labelLeader; /* label polygon (bounding box, possibly rotated) */
- labelLeader.line = cachePtr->leaderline; /* setup the label polygon structure */
- labelLeader.numlines = 1;
-
- for(ll=0; ll<classPtr->leader.numstyles; ll++) {
- msDrawLineSymbol(&map->symbolset, image,&labelLeader , classPtr->leader.styles[ll], layerPtr->scalefactor);
+ * (x0-i*gridstep,y0), pos cl
+ * (x0,y0-i*gridstep), pos uc
+ * (x0,y0+i*gridstep), pos lc
+ */
+ otest(i*gridstepsc,0);
+ otest(-i*gridstepsc,0);
+ otest(0,-i*gridstepsc);
+ otest(0,i*gridstepsc);
+ }
+ if(cachePtr->status == MS_ON) {
+ int ll;
+ shapeObj labelLeader; /* label polygon (bounding box, possibly rotated) */
+ labelLeader.line = cachePtr->leaderline; /* setup the label polygon structure */
+ labelLeader.numlines = 1;
+ insertRenderedLabelMember(map, cachePtr);
+
+ for(ll=0; ll<classPtr->leader->numstyles; ll++) {
+ retval = msDrawLineSymbol(map, image,&labelLeader , classPtr->leader->styles[ll], layerPtr->scalefactor);
+ if(UNLIKELY(retval == MS_FAILURE)) {
+ goto offset_cleanup;
}
- for(ll=0; ll<cachePtr->numlabels; ll++) {
- labelObj *labelPtr = &(cachePtr->labels[ll]);
+ }
+ for(ll=0; ll<cachePtr->numtextsymbols; ll++) {
+ textSymbolObj *ts = cachePtr->textsymbols[ll];
+ if(ts->style_bounds) {
/* here's where we draw the label styles */
- if(labelPtr->numstyles > 0) {
- for(i=0; i<labelPtr->numstyles; i++) {
- if(labelPtr->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
- msDrawMarkerSymbol(&map->symbolset, image, &(cachePtr->point), labelPtr->styles[i], layerPtr->scalefactor);
- else if(labelPtr->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
- msDrawShadeSymbol(&map->symbolset, image, labelPtr->annopoly, labelPtr->styles[i], layerPtr->scalefactor);
- } else {
- msSetError(MS_MISCERR,"Labels only support LABELPNT and LABELPOLY GEOMTRANSFORMS", "msDrawOffsettedLabels()");
- return MS_FAILURE;
+ for(i=0; i<ts->label->numstyles; i++) {
+ if(ts->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ retval = msDrawMarkerSymbol(map, image, &(cachePtr->point), ts->label->styles[i], layerPtr->scalefactor);
+ if(UNLIKELY(retval == MS_FAILURE)) {
+ goto offset_cleanup;
+ }
+ }
+ else if(ts->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ retval = msDrawLabelBounds(map,image,ts->style_bounds[i],ts->label->styles[i], ts->scalefactor);
+ if(UNLIKELY(retval == MS_FAILURE)) {
+ goto offset_cleanup;
}
+ } else {
+ msSetError(MS_MISCERR,"Labels only support LABELPNT and LABELPOLY GEOMTRANSFORMS", "msDrawOffsettedLabels()");
+ retval = MS_FAILURE;
}
}
- if(labelPtr->annotext)
- msDrawText(image, labelPtr->annopoint, labelPtr->annotext, labelPtr, &(map->fontset), layerPtr->scalefactor); /* actually draw the label */
}
- /* TODO: draw cachePtr->marker, but where ? */
+ if(ts->annotext) {
+ retval = msDrawTextSymbol(map,image,ts->annopoint,ts);
+ if(UNLIKELY(retval == MS_FAILURE)) {
+ goto offset_cleanup;
+ }
+ }
+ }
+ /* TODO: draw cachePtr->marker, but where ? */
- /*
- styleObj tstyle;
- static int foo =0;
- if(!foo) {
- srand(time(NULL));
- foo = 1;
- initStyle(&tstyle);
- tstyle.width = 1;
- tstyle.color.alpha = 255;
- }
- tstyle.color.red = random()%255;
- tstyle.color.green = random()%255;
- tstyle.color.blue =random()%255;
- msDrawLineSymbol(&map->symbolset, image, cachePtr->poly, &tstyle, layerPtr->scalefactor);
- */
+ /*
+ styleObj tstyle;
+ static int foo =0;
+ if(!foo) {
+ srand(time(NULL));
+ foo = 1;
+ initStyle(&tstyle);
+ tstyle.width = 1;
+ tstyle.color.alpha = 255;
+ }
+ tstyle.color.red = random()%255;
+ tstyle.color.green = random()%255;
+ tstyle.color.blue =random()%255;
+ msDrawLineSymbol(&map->symbolset, image, cachePtr->poly, &tstyle, layerPtr->scalefactor);
+ */
- } else {
- msFree(cachePtr->leaderline->point);
- msFree(cachePtr->leaderline);
- msFree(cachePtr->leaderbbox);
- cachePtr->leaderline = NULL;
- }
- msFreeShape(&origPoly);
}
}
}
+offset_cleanup:
- return retval;
-}
+ free(scratch_points);
-int computeMarkerPoly(mapObj *map, imageObj *image, labelCacheMemberObj *cachePtr,
- labelCacheSlotObj *cacheslot, shapeObj *markerPoly)
-{
- layerObj *layerPtr = (GET_LAYER(map, cachePtr->layerindex));
- if(layerPtr->type == MS_LAYER_ANNOTATION && cachePtr->numstyles > 0) {
- /* TODO: at the moment only checks the bottom (first) marker style since it *should* be the
- largest, perhaps we should check all of them and build a composite size */
- double marker_width,marker_height;
- pointObj *point = markerPoly->line[0].point;
- if(msGetMarkerSize(&map->symbolset, &(cachePtr->styles[0]), &marker_width, &marker_height, layerPtr->scalefactor) != MS_SUCCESS)
- return MS_FAILURE;
- markerPoly->numlines = 1;
- markerPoly->bounds.minx = cachePtr->point.x - .5 * marker_width;
- markerPoly->bounds.miny = cachePtr->point.y - .5 * marker_height;
- markerPoly->bounds.maxx = markerPoly->bounds.minx + marker_width;
- markerPoly->bounds.maxy = markerPoly->bounds.miny + marker_height;
- point[0].x = markerPoly->bounds.minx;
- point[0].y = markerPoly->bounds.miny;
- point[1].x = markerPoly->bounds.minx;
- point[1].y = markerPoly->bounds.maxy;
- point[2].x = markerPoly->bounds.maxx;
- point[2].y = markerPoly->bounds.maxy;
- point[3].x = markerPoly->bounds.maxx;
- point[3].y = markerPoly->bounds.miny;
- point[4].x = markerPoly->bounds.minx;
- point[4].y = markerPoly->bounds.miny;
- }
- return MS_SUCCESS;
+
+ return retval;
}
-void fastComputeBounds(shapeObj *shape)
+void fastComputeBounds(lineObj *line, rectObj *bounds)
{
- int i,j;
- shape->bounds.minx = shape->bounds.maxx = shape->line[0].point[0].x;
- shape->bounds.miny = shape->bounds.maxy = shape->line[0].point[0].y;
+ int j;
+ bounds->minx = bounds->maxx = line->point[0].x;
+ bounds->miny = bounds->maxy = line->point[0].y;
- for( i=0; i<shape->numlines; i++ ) {
- for( j=0; j<shape->line[i].numpoints; j++ ) {
- shape->bounds.minx = MS_MIN(shape->bounds.minx, shape->line[i].point[j].x);
- shape->bounds.maxx = MS_MAX(shape->bounds.maxx, shape->line[i].point[j].x);
- shape->bounds.miny = MS_MIN(shape->bounds.miny, shape->line[i].point[j].y);
- shape->bounds.maxy = MS_MAX(shape->bounds.maxy, shape->line[i].point[j].y);
- }
+ for( j=0; j<line->numpoints; j++ ) {
+ bounds->minx = MS_MIN(bounds->minx, line->point[j].x);
+ bounds->maxx = MS_MAX(bounds->maxx, line->point[j].x);
+ bounds->miny = MS_MIN(bounds->miny, line->point[j].y);
+ bounds->maxy = MS_MAX(bounds->maxy, line->point[j].y);
}
}
-int computeLabelMarkerPoly(mapObj *map, imageObj *img, labelCacheMemberObj *cachePtr,
- labelObj *label, shapeObj *markerPoly)
+int computeMarkerBounds(mapObj *map, pointObj *annopoint, textSymbolObj *ts, label_bounds *poly)
{
int i;
- layerObj *layerPtr = (GET_LAYER(map, cachePtr->layerindex));
- markerPoly->numlines = 0;
- for (i=0; i<label->numstyles; i++) {
- styleObj *style = label->styles[i];
+ for (i=0; i<ts->label->numstyles; i++) {
+ styleObj *style = ts->label->styles[i];
if(style->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT &&
- style->symbol < map->symbolset.numsymbols && style->symbol > 0) {
+ style->symbol < map->symbolset.numsymbols && style->symbol >= 0) {
double sx,sy;
- pointObj *point;
int p;
double aox,aoy;
symbolObj *symbol = map->symbolset.symbol[style->symbol];
- if(msGetMarkerSize(&map->symbolset, style, &sx, &sy, layerPtr->scalefactor) != MS_SUCCESS)
- return MS_FAILURE;
- point = markerPoly->line[0].point;
- point[0].x = sx / 2.0;
- point[0].y = sy / 2.0;
- point[1].x = point[0].x;
- point[1].y = -point[0].y;
- point[2].x = -point[0].x;
- point[2].y = -point[0].y;
- point[3].x = -point[0].x;
- point[3].y = point[0].y;
- point[4].x = point[0].x;
- point[4].y = point[0].y;
- if(symbol->anchorpoint_x != 0.5 || symbol->anchorpoint_y != 0.5) {
- aox = (0.5 - symbol->anchorpoint_x) * sx;
- aoy = (0.5 - symbol->anchorpoint_y) * sy;
+ if(msGetMarkerSize(map, style, &sx, &sy, ts->scalefactor) != MS_SUCCESS)
+ return MS_FALSE;
+ if(style->angle) {
+ pointObj *point = poly->poly->point;
+ point[0].x = sx / 2.0;
+ point[0].y = sy / 2.0;
+ point[1].x = point[0].x;
+ point[1].y = -point[0].y;
+ point[2].x = -point[0].x;
+ point[2].y = -point[0].y;
+ point[3].x = -point[0].x;
+ point[3].y = point[0].y;
+ point[4].x = point[0].x;
+ point[4].y = point[0].y;
+ if(symbol->anchorpoint_x != 0.5 || symbol->anchorpoint_y != 0.5) {
+ aox = (0.5 - symbol->anchorpoint_x) * sx;
+ aoy = (0.5 - symbol->anchorpoint_y) * sy;
+ for(p=0; p<5; p++) {
+ point[p].x += aox;
+ point[p].y += aoy;
+ }
+ }
+ if(style->angle) {
+ double rot = -style->angle * MS_DEG_TO_RAD;
+ double sina = sin(rot);
+ double cosa = cos(rot);
+ for(p=0; p<5; p++) {
+ double tmpx = point[p].x;
+ point[p].x = point[p].x * cosa - point[p].y * sina;
+ point[p].y = tmpx * sina + point[p].y * cosa;
+ }
+ }
+ aox = annopoint->x + style->offsetx * ts->scalefactor;
+ aoy = annopoint->y + style->offsety * ts->scalefactor;
for(p=0; p<5; p++) {
point[p].x += aox;
point[p].y += aoy;
}
+ fastComputeBounds(poly->poly,&poly->bbox);
+ } else {
+ double aox = (0.5 - symbol->anchorpoint_x)*sx + annopoint->x + style->offsetx * ts->scalefactor;
+ double aoy = (0.5 - symbol->anchorpoint_y)*sy + annopoint->y + style->offsety * ts->scalefactor;
+ poly->poly = NULL;
+ poly->bbox.maxx = sx/2.0 + aox;
+ poly->bbox.minx = -sx/2.0 + aox;
+ poly->bbox.maxy = sy/2.0 + aoy;
+ poly->bbox.miny = -sy/2.0 + aoy;
}
- if(style->angle) {
- double rot = -style->angle * MS_DEG_TO_RAD;
- double sina = sin(rot);
- double cosa = cos(rot);
- for(p=0; p<5; p++) {
- double tmpx = point[p].x;
- point[p].x = point[p].x * cosa - point[p].y * sina;
- point[p].y = tmpx * sina + point[p].y * cosa;
- }
- }
- aox = cachePtr->point.x + style->offsetx * layerPtr->scalefactor;
- aoy = cachePtr->point.y + style->offsety * layerPtr->scalefactor;
- for(p=0; p<5; p++) {
- point[p].x += aox;
- point[p].y += aoy;
- }
- markerPoly->numlines = 1;
- fastComputeBounds(markerPoly);
break;
}
}
- return MS_SUCCESS;
+ if(i == ts->label->numstyles)
+ return MS_FALSE; /* the label has no marker styles */
+ else
+ return MS_TRUE;
+}
+
+/* check that the current entry does not fall close to a label with identical text, if configured so.
+ * Currently only checks the first label/text */
+
+int msCheckLabelMinDistance(mapObj *map, labelCacheMemberObj *lc) {
+ double sqmindistance;
+ int i;
+ textSymbolObj *s; /* shortcut */
+ if(lc->numtextsymbols == 0) return MS_FALSE; /* no label with text */
+ s = lc->textsymbols[0];
+ if(!s->annotext || s->label->mindistance <= 0.0 || s->label->force == MS_TRUE) return MS_FALSE; /* min distance is not checked */
+ sqmindistance = s->label->mindistance * s->label->mindistance * s->resolutionfactor * s->resolutionfactor;
+ for(i=0;i<map->labelcache.num_rendered_members;i++) {
+ labelCacheMemberObj *ilc = map->labelcache.rendered_text_symbols[i];
+ double sqdistance;
+ if(ilc->numtextsymbols == 0 || !ilc->textsymbols[0]->annotext) continue;
+ sqdistance = (lc->point.x - ilc->point.x)*(lc->point.x - ilc->point.x)+
+ (lc->point.y - ilc->point.y)*(lc->point.y - ilc->point.y);
+ if(sqdistance < sqmindistance) {
+ if(!strcmp(s->annotext,ilc->textsymbols[0]->annotext)) {
+ return MS_TRUE;
+ }
+ }
+ }
+ return MS_FALSE;
+}
+
+void copyLabelBounds(label_bounds *dst, label_bounds *src) {
+ *dst = *src;
+ if(src->poly) {
+ int i;
+ dst->poly = msSmallMalloc(sizeof(lineObj));
+ dst->poly->numpoints = src->poly->numpoints;
+ dst->poly->point = msSmallMalloc(dst->poly->numpoints * sizeof(pointObj));
+ for(i=0; i<dst->poly->numpoints; i++) {
+ dst->poly->point[i] = src->poly->point[i];
+ }
+ }
}
-int msDrawLabelCache(imageObj *image, mapObj *map)
+int msDrawLabelCache(mapObj *map, imageObj *image)
{
int nReturnVal = MS_SUCCESS;
if(image) {
if(MS_RENDERER_PLUGIN(image->format)) {
- int i, l, ll, priority;
- rectObj r;
- shapeObj marker_poly;
- lineObj marker_line;
- pointObj marker_points[5];
- shapeObj label_marker_poly;
- lineObj label_marker_line;
- pointObj label_marker_points[5];
- shapeObj metrics_poly;
- lineObj metrics_line;
- pointObj metrics_points[5];
+ int i, l, ll, priority, its;
double marker_offset_x, marker_offset_y;
int label_offset_x, label_offset_y;
- int label_mindistance=-1, label_buffer=0;
const char *value;
labelCacheMemberObj *cachePtr=NULL;
layerObj *layerPtr=NULL;
classObj *classPtr=NULL;
- labelObj *labelPtr=NULL;
+ textSymbolObj *textSymbolPtr=NULL;
+
+ /*
+ * some statically allocated containers for storing label bounds before
+ * copying them into the cachePtr: we avoid allocating these structures
+ * at runtime, except for the labels that are actually rendered.
+ */
+ lineObj labelpoly_line;
+ pointObj labelpoly_points[5];
+ label_bounds labelpoly_bounds;
+ lineObj label_marker_line;
+ pointObj label_marker_points[5];
+ label_bounds label_marker_bounds;
+ lineObj metrics_line;
+ pointObj metrics_points[5];
+ label_bounds metrics_bounds;
- /* holds the contour of the label styles that correspond to markers */
- marker_line.point = marker_points;
- marker_line.numpoints = 5;
- msInitShape(&marker_poly);
- marker_poly.line = &marker_line;
- marker_poly.numlines = 0;
- marker_poly.type = MS_SHAPE_POLYGON;
label_marker_line.point = label_marker_points;
label_marker_line.numpoints = 5;
- msInitShape(&label_marker_poly);
- label_marker_poly.line = &label_marker_line;
- label_marker_poly.numlines = 0;
- label_marker_poly.type = MS_SHAPE_POLYGON;
-
metrics_line.point = metrics_points;
metrics_line.numpoints = 5;
- msInitShape(&metrics_poly);
- metrics_poly.line = &metrics_line;
- metrics_poly.numlines = 1;
- metrics_poly.type = MS_SHAPE_POLYGON;
+ labelpoly_line.point = labelpoly_points;
+ labelpoly_line.numpoints = 5;
+
/* Look for labelcache_map_edge_buffer map metadata
* If set then the value defines a buffer (in pixels) along the edge of the
@@ -2808,384 +2732,387 @@ int msDrawLabelCache(imageObj *image, mapObj *map)
cacheslot = &(map->labelcache.slots[priority]);
for(l=cacheslot->numlabels-1; l>=0; l--) {
- double scalefactor,size;
cachePtr = &(cacheslot->labels[l]); /* point to right spot in the label cache */
layerPtr = (GET_LAYER(map, cachePtr->layerindex)); /* set a couple of other pointers, avoids nasty references */
classPtr = (GET_CLASS(map, cachePtr->layerindex, cachePtr->classindex));
- if (layerPtr->type == MS_LAYER_ANNOTATION && (cachePtr->numlabels > 1 || classPtr->leader.maxdistance)) {
- msSetError(MS_MISCERR, "Multiple Labels and/or LEADERs are not supported with annotation layers", "msDrawLabelCache()");
- return MS_FAILURE;
+ /* before going any futher (and maybe even computing label size for performance,
+ check that mindistance is respected */
+ if(cachePtr->numtextsymbols && cachePtr->textsymbols[0]->label->mindistance > 0.0 && cachePtr->textsymbols[0]->annotext) {
+ if(msCheckLabelMinDistance(map, cachePtr) == MS_TRUE) {
+ cachePtr->status = MS_DELETE;
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping labelgroup %d \"%s\" in layer \"%s\": too close to an identical label (mindistance)\n",
+ l, cachePtr->textsymbols[0]->annotext, layerPtr->name);
+ continue; /* move on to next entry, this one is too close to an already placed one */
+ }
}
-
- /* TODO: classes with a labelpath do not respect multi label rendering */
- if(cachePtr->labelpath) { /* path-based label */
- labelPtr = &(cachePtr->labels[0]);
-
- if(labelPtr->status != MS_ON) continue; /* skip this label */
- if(!labelPtr->annotext) continue; /* skip this label, nothing to with curved labels when there is nothing to draw */
-
- /* path-following labels *must* be TRUETYPE */
- size = labelPtr->size * layerPtr->scalefactor;
- size = MS_MAX(size, labelPtr->minsize*image->resolutionfactor);
- size = MS_MIN(size, labelPtr->maxsize*image->resolutionfactor);
- scalefactor = size / labelPtr->size;
-
- label_buffer = (labelPtr->buffer*image->resolutionfactor);
- label_mindistance = (labelPtr->mindistance*image->resolutionfactor);
-
-
- /* compare against image bounds, rendered labels and markers (sets cachePtr->status), if FORCE=TRUE then skip it */
- cachePtr->status = MS_TRUE;
- assert(cachePtr->poly == NULL);
-
- if(!labelPtr->force)
- cachePtr->status = msTestLabelCacheCollisions(map,cachePtr,&cachePtr->labelpath->bounds,label_mindistance,priority,l);
-
-
- if(!cachePtr->status) {
- msFreeShape(&cachePtr->labelpath->bounds);
- continue;
+ if(cachePtr->textsymbols[0]->textpath && cachePtr->textsymbols[0]->textpath->absolute) {
+ /* we have an angle follow label */
+ if(!cachePtr->textsymbols[0]->label->force)
+ cachePtr->status = msTestLabelCacheCollisions(map,cachePtr,&cachePtr->textsymbols[0]->textpath->bounds, priority, l);
+ else
+ cachePtr->status = MS_ON;
+ if(cachePtr->status) {
+ if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,cachePtr->textsymbols[0]->annopoint /*not used*/,cachePtr->textsymbols[0]))) {
+ return MS_FAILURE;
+ }
+ cachePtr->bbox = cachePtr->textsymbols[0]->textpath->bounds.bbox;
+ insertRenderedLabelMember(map, cachePtr);
} else {
- /* take ownership of cachePtr->poly*/
- cachePtr->poly = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
- msInitShape(cachePtr->poly);
- cachePtr->poly->type = MS_SHAPE_POLYGON;
- cachePtr->poly->numlines = cachePtr->labelpath->bounds.numlines;
- cachePtr->poly->line = cachePtr->labelpath->bounds.line;
- cachePtr->labelpath->bounds.numlines = 0;
- cachePtr->labelpath->bounds.line = NULL;
- cachePtr->poly->bounds.minx = cachePtr->labelpath->bounds.bounds.minx;
- cachePtr->poly->bounds.miny = cachePtr->labelpath->bounds.bounds.miny;
- cachePtr->poly->bounds.maxx = cachePtr->labelpath->bounds.bounds.maxx;
- cachePtr->poly->bounds.maxy = cachePtr->labelpath->bounds.bounds.maxy;
- msFreeShape(&cachePtr->labelpath->bounds);
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping follow labelgroup %d \"%s\" in layer \"%s\": text collided\n",
+ l, cachePtr->textsymbols[0]->annotext, layerPtr->name);
}
-
- msDrawTextLine(image, labelPtr->annotext, labelPtr, cachePtr->labelpath, &(map->fontset), layerPtr->scalefactor); /* Draw the curved label */
-
- } else { /* point-based label */
- scalefactor = layerPtr->scalefactor; /* FIXME avoid compiler warning, see also #4408 */
+ cachePtr->status = MS_DELETE; /* we're done with this label, it won't even have a second chance in the leader phase */
+ } else {
marker_offset_x = marker_offset_y = 0; /* assume no marker */
-
- /* compute label bbox of a marker used in an annotation layer and/or
- * the offset needed for point layer with markerPtr */
- marker_poly.numlines = 0;
- if(layerPtr->type == MS_LAYER_ANNOTATION) {
- if(computeMarkerPoly(map,image,cachePtr,cacheslot,&marker_poly)!=MS_SUCCESS) return MS_FAILURE;
- if(marker_poly.numlines) {
- marker_offset_x = (marker_poly.bounds.maxx-marker_poly.bounds.minx)/2.0;
- marker_offset_y = (marker_poly.bounds.maxy-marker_poly.bounds.miny)/2.0;
- /* if this is an annotation layer, transfer the markerPoly */
- if( MS_OFF == msTestLabelCacheCollisions(map, cachePtr, &marker_poly, 0,priority, l)) {
- continue; /* the marker collided, no point continuing */
- }
- }
- } else if (layerPtr->type == MS_LAYER_POINT && cachePtr->markerid!=-1) { /* there is a marker already in the image that we need to account for */
+
+ if (layerPtr->type == MS_LAYER_POINT && cachePtr->markerid!=-1) { /* there is a marker already in the image that we need to account for */
markerCacheMemberObj *markerPtr = &(cacheslot->markers[cachePtr->markerid]); /* point to the right spot in the marker cache*/
- marker_offset_x = (markerPtr->poly->bounds.maxx-markerPtr->poly->bounds.minx)/2.0;
- marker_offset_y = (markerPtr->poly->bounds.maxy-markerPtr->poly->bounds.miny)/2.0;
+ marker_offset_x = (markerPtr->bounds.maxx-markerPtr->bounds.minx)/2.0;
+ marker_offset_y = (markerPtr->bounds.maxy-markerPtr->bounds.miny)/2.0;
}
/*
** all other cases *could* have multiple labels defined
*/
- cachePtr->status = MS_OFF; /* assume this cache element *can't* be placed */
- for(ll=0; ll<cachePtr->numlabels; ll++) { /* RFC 77 TODO: Still may want to step through backwards... */
- int label_marker_status = MS_ON;
- labelPtr = &(cachePtr->labels[ll]);
- labelPtr->status = MS_OFF;
-
- /* first check if there's anything to do with this label */
- if(!labelPtr->annotext) {
- int s;
- for(s=0; s<labelPtr->numstyles; s++) {
- if(labelPtr->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
- break;
- }
- if(s == labelPtr->numstyles) {
- /* no label text, and no markers to render, skip this label */
- labelPtr->status = MS_ON;
- continue;
+ cachePtr->status = MS_ON; /* assume this cache element can be placed */
+ for(ll=0; ll<cachePtr->numtextsymbols; ll++) { /* RFC 77 TODO: Still may want to step through backwards... */
+ int label_marker_status = MS_ON, have_label_marker, metrics_status = MS_ON;
+ int need_labelpoly = 0;
+
+ /* reset the lineObj which may have been unset by a previous call to get_metrics() */
+ label_marker_bounds.poly = &label_marker_line;
+ labelpoly_bounds.poly = &labelpoly_line;
+
+ textSymbolPtr = cachePtr->textsymbols[ll];
+ for(i=0; i<textSymbolPtr->label->numstyles; i++) {
+ if(textSymbolPtr->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ need_labelpoly = 1;
+ break;
}
}
/* compute the poly of the label styles */
- if(computeLabelMarkerPoly(map,image,cachePtr,labelPtr,&label_marker_poly)!=MS_SUCCESS) return MS_FAILURE;
- if(label_marker_poly.numlines) {
- if(cachePtr->numlabels > 1) { /* FIXME this test doesn't seem right, should probably check if we have an annotation layer with a regular style defined */
- marker_offset_x = (label_marker_poly.bounds.maxx-label_marker_poly.bounds.minx)/2.0;
- marker_offset_y = (label_marker_poly.bounds.maxy-label_marker_poly.bounds.miny)/2.0;
+ if((have_label_marker = computeMarkerBounds(map,&cachePtr->point,textSymbolPtr, &label_marker_bounds)) == MS_TRUE) {
+ if(cachePtr->numtextsymbols > 1) { /* FIXME this test doesn't seem right, should probably check if we have an annotation layer with a regular style defined */
+ marker_offset_x = (label_marker_bounds.bbox.maxx-label_marker_bounds.bbox.minx)/2.0;
+ marker_offset_y = (label_marker_bounds.bbox.maxy-label_marker_bounds.bbox.miny)/2.0;
} else {
/* we might be using an old style behavior with a markerPtr */
- marker_offset_x = MS_MAX(marker_offset_x,(label_marker_poly.bounds.maxx-label_marker_poly.bounds.minx)/2.0);
- marker_offset_y = MS_MAX(marker_offset_y,(label_marker_poly.bounds.maxy-label_marker_poly.bounds.miny)/2.0);
+ marker_offset_x = MS_MAX(marker_offset_x,(label_marker_bounds.bbox.maxx-label_marker_bounds.bbox.minx)/2.0);
+ marker_offset_y = MS_MAX(marker_offset_y,(label_marker_bounds.bbox.maxy-label_marker_bounds.bbox.miny)/2.0);
}
/* add marker to cachePtr->poly */
- if(labelPtr->force != MS_TRUE) {
- label_marker_status = msTestLabelCacheCollisions(map, cachePtr,&label_marker_poly, 0,priority, l);
+ if(textSymbolPtr->label->force != MS_TRUE) {
+ label_marker_status = msTestLabelCacheCollisions(map, cachePtr, &label_marker_bounds ,priority, l);
}
if(label_marker_status == MS_OFF &&
- !(labelPtr->force || classPtr->leader.maxdistance))
+ !(textSymbolPtr->label->force==MS_ON || classPtr->leader)) {
+ cachePtr->status = MS_DELETE;
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping label %d of labelgroup %d of class %d in layer \"%s\": marker collided\n",
+ ll,l,cachePtr->classindex, layerPtr->name);
break; /* the marker collided, break from multi-label loop */
+ }
}
+ if(textSymbolPtr->annotext) {
+ /*
+ * if we don't have an offset defined, first check that the labelpoint itself does not collide
+ * this helps speed things up in dense labelling, as if the labelpoint collides there's
+ * no use in computing the labeltext bounds (i.e. going into shaping+freetype).
+ * We do however skip collision testing against the marker cache, as we want to allow rendering
+ * a label for points that overlap each other: this is done by setting priority to MAX_PRIORITY
+ * in the call to msTestLabelCacheCollisions (which is a hack!!)
+ */
+ if(!have_label_marker && textSymbolPtr->label->force != MS_TRUE && !classPtr->leader &&
+ !textSymbolPtr->label->offsetx && !textSymbolPtr->label->offsety) {
+ label_bounds labelpoint_bounds;
+ labelpoint_bounds.poly = NULL;
+ labelpoint_bounds.bbox.minx = cachePtr->point.x - 0.1;
+ labelpoint_bounds.bbox.maxx = cachePtr->point.x + 0.1;
+ labelpoint_bounds.bbox.miny = cachePtr->point.y - 0.1;
+ labelpoint_bounds.bbox.maxy = cachePtr->point.y + 0.1;
+ if(MS_OFF == msTestLabelCacheCollisions(map, cachePtr, &labelpoint_bounds ,MS_MAX_LABEL_PRIORITY, l)) {
+ cachePtr->status = MS_DELETE; /* we won't check for leader offseted positions, as the anchor point colided */
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping label %d \"%s\" of labelgroup %d of class %d in layer \"%s\": labelpoint collided\n",
+ ll, textSymbolPtr->annotext, l, cachePtr->classindex, layerPtr->name);
+ break;
+ }
+ }
- if(labelPtr->annotext) {
/* compute label size */
- if(labelPtr->type == MS_TRUETYPE) {
- size = labelPtr->size * layerPtr->scalefactor;
- size = MS_MAX(size, labelPtr->minsize*image->resolutionfactor);
- size = MS_MIN(size, labelPtr->maxsize*image->resolutionfactor);
- scalefactor = size / labelPtr->size;
- } else {
- size = labelPtr->size;
- scalefactor = 1;
+ if(!textSymbolPtr->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,textSymbolPtr))) {
+ return MS_FAILURE;
+ }
}
- if(msGetLabelSize(map, labelPtr, labelPtr->annotext, size, &r, NULL) != MS_SUCCESS)
- return MS_FAILURE;
+
/* if our label has an outline, adjust the marker offset so the outlinecolor does
* not bleed into the marker */
- if(marker_offset_x && MS_VALID_COLOR(labelPtr->outlinecolor)) {
- marker_offset_x += labelPtr->outlinewidth/2.0;
- marker_offset_y += labelPtr->outlinewidth/2.0;
+ if(marker_offset_x && MS_VALID_COLOR(textSymbolPtr->label->outlinecolor)) {
+ marker_offset_x += textSymbolPtr->label->outlinewidth/2.0 * textSymbolPtr->scalefactor;
+ marker_offset_y += textSymbolPtr->label->outlinewidth/2.0 * textSymbolPtr->scalefactor;
}
-
- if(labelPtr->autominfeaturesize && (cachePtr->featuresize != -1) && ((r.maxx-r.minx) > cachePtr->featuresize)) {
- /* label too large relative to the feature */
- /* this label cannot be rendered, go on to next cachePtr */
- break;
- /* TODO: treat the case with multiple labels and/or leader lines */
+
+ /* apply offset and buffer settings */
+ if(textSymbolPtr->label->anglemode != MS_FOLLOW) {
+ label_offset_x = textSymbolPtr->label->offsetx * textSymbolPtr->scalefactor;
+ label_offset_y = textSymbolPtr->label->offsety * textSymbolPtr-> scalefactor;
+ } else {
+ label_offset_x = 0;
+ label_offset_y = 0;
}
- /* apply offset and buffer settings */
- if(labelPtr->anglemode != MS_FOLLOW) {
- label_offset_x = labelPtr->offsetx*scalefactor;
- label_offset_y = labelPtr->offsety*scalefactor;
- } else {
- label_offset_x = 0;
- label_offset_y = 0;
- }
- label_buffer = (labelPtr->buffer*image->resolutionfactor);
- label_mindistance = (labelPtr->mindistance*image->resolutionfactor);
-
-#ifdef oldcode
- /* adjust the baseline (see #1449) */
- if(labelPtr->type == MS_TRUETYPE) {
- char *lastline = strrchr(labelPtr->annotext,'\n');
- if(!lastline || !*(++lastline)) {
- label_offset_y += ((r.miny + r.maxy) + size) / 2.0;
+ if(textSymbolPtr->label->position == MS_AUTO) {
+ /* no point in using auto positionning if the marker cannot be placed */
+ int positions[MS_POSITIONS_LENGTH], npositions=0;
+
+ /*
+ ** (Note: might be able to re-order this for more speed.)
+ */
+ if(layerPtr->type == MS_LAYER_POLYGON && marker_offset_x==0 ) {
+ positions[0]=MS_CC;
+ positions[1]=MS_UC;
+ positions[2]=MS_LC;
+ positions[3]=MS_CL;
+ positions[4]=MS_CR;
+ npositions = 5;
+ } else if(layerPtr->type == MS_LAYER_LINE && marker_offset_x == 0) {
+ positions[0]=MS_UC;
+ positions[1]=MS_LC;
+ positions[2]=MS_CC;
+ npositions = 3;
} else {
- rectObj rect2; /* bbox of first line only */
- msGetLabelSize(map, labelPtr, lastline, size, &rect2, NULL);
- label_offset_y += ((rect2.miny+rect2.maxy) + size) / 2.0;
+ positions[0]=MS_UL;
+ positions[1]=MS_LR;
+ positions[2]=MS_UR;
+ positions[3]=MS_LL;
+ positions[4]=MS_CR;
+ positions[5]=MS_CL;
+ positions[6]=MS_UC;
+ positions[7]=MS_LC;
+ npositions = 8;
}
- }
-#endif
-
- /* compute the label annopoly if we need to render the background billboard */
- if(labelPtr->numstyles > 0) {
- for(i=0; i<labelPtr->numstyles; i++) {
- if(labelPtr->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
- /* initialize the annotation polygon */
- labelPtr->annopoly = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
- msInitShape(labelPtr->annopoly);
- labelPtr->annopoly->line = (lineObj *) malloc(sizeof(lineObj));
- labelPtr->annopoly->numlines = 1;
- labelPtr->annopoly->line->point = (pointObj *) malloc(5*sizeof(pointObj));
- labelPtr->annopoly->line->numpoints = 5;
- break;
+ for(i=0; i<npositions; i++) {
+ // RFC 77 TODO: take label_marker_offset_x/y into account
+ metrics_bounds.poly = &metrics_line;
+ textSymbolPtr->annopoint = get_metrics(&(cachePtr->point), positions[i], textSymbolPtr->textpath,
+ marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
+ textSymbolPtr->rotation, textSymbolPtr->label->buffer * textSymbolPtr->scalefactor, &metrics_bounds);
+ if(textSymbolPtr->label->force == MS_OFF) {
+ for(its=0;its<ll;its++) {
+ /* check for collisions inside the label group */
+ if(intersectTextSymbol(cachePtr->textsymbols[its],&metrics_bounds) == MS_TRUE) {
+ /* there was a self intersection */
+ break; /* next position, will break out to next position in containing loop*/
+ }
+ if(its != ll)
+ continue; /* goto next position, this one had an intersection with our own label group */
+ }
}
- }
- }
- }
- /* TODO: no point in using auto positionning if the marker cannot be placed? */
- if(labelPtr->annotext && labelPtr->position == MS_AUTO) {
- /* no point in using auto positionning if the marker cannot be placed */
- int positions[MS_POSITIONS_LENGTH], npositions=0;
+ metrics_status = msTestLabelCacheCollisions(map, cachePtr,&metrics_bounds, priority, l);
- /*
- ** If the ANNOTATION has an associated marker then the position is handled like a point regardless of underlying shape type. (#2993)
- ** (Note: might be able to re-order this for more speed.)
- */
- if((layerPtr->type == MS_LAYER_POLYGON && marker_offset_x==0 )|| (layerPtr->type == MS_LAYER_ANNOTATION && cachePtr->shapetype == MS_SHAPE_POLYGON && cachePtr->numstyles == 0)) {
- positions[0]=MS_CC;
- positions[1]=MS_UC;
- positions[2]=MS_LC;
- positions[3]=MS_CL;
- positions[4]=MS_CR;
- npositions = 5;
- } else if((layerPtr->type == MS_LAYER_LINE && marker_offset_x == 0) || (layerPtr->type == MS_LAYER_ANNOTATION && cachePtr->shapetype == MS_SHAPE_LINE && cachePtr->numstyles == 0)) {
- positions[0]=MS_UC;
- positions[1]=MS_LC;
- positions[2]=MS_CC;
- npositions = 3;
- } else {
- positions[0]=MS_UL;
- positions[1]=MS_LR;
- positions[2]=MS_UR;
- positions[3]=MS_LL;
- positions[4]=MS_CR;
- positions[5]=MS_CL;
- positions[6]=MS_UC;
- positions[7]=MS_LC;
- npositions = 8;
- }
+ /* found a suitable place for this label */
+ if(metrics_status == MS_TRUE || (i==(npositions-1) && textSymbolPtr->label->force == MS_ON)) {
+ metrics_status = MS_TRUE; /* set to true in case we are forcing it */
+ /* compute anno poly for label background if needed */
+ if(need_labelpoly) get_metrics(&(cachePtr->point), positions[i], textSymbolPtr->textpath,
+ marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
+ textSymbolPtr->rotation, 1, &labelpoly_bounds);
- for(i=0; i<npositions; i++) {
- // RFC 77 TODO: take label_marker_offset_x/y into account
- labelPtr->annopoint = get_metrics_line(&(cachePtr->point), positions[i], r,
- marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, label_buffer, &metrics_line);
- fastComputeBounds(&metrics_poly);
-
- if(labelPtr->force == MS_OFF) {
- /* check for collisions inside the label group */
- if(cachePtr->poly && cachePtr->poly->numlines && intersectLabelPolygons(&metrics_poly, cachePtr->poly) == MS_TRUE) {
- /* there was a self intersection */
- continue; /* next position, labelPtr->status is left to MS_OFF */
+ break; /* ...out of position loop */
}
- }
-
- labelPtr->status = msTestLabelCacheCollisions(map, cachePtr,&metrics_poly, label_mindistance,priority, l);
-
- /* found a suitable place for this label */
- if(labelPtr->status == MS_TRUE || (i==(npositions-1) && labelPtr->force == MS_ON)) {
- labelPtr->status = MS_TRUE; /* set to true in case we are forcing it */
- if(labelPtr->annopoly) get_metrics_line(&(cachePtr->point), positions[i], r,
+ } /* next position */
+
+ /* if position auto didn't manage to find a position, but we have leader configured
+ * for the class, then we want to compute the label poly anyway, placed as MS_CC */
+ if(classPtr->leader && metrics_status == MS_FALSE) {
+ metrics_bounds.poly = &metrics_line;
+ textSymbolPtr->annopoint = get_metrics(&(cachePtr->point), MS_CC, textSymbolPtr->textpath, label_offset_x, label_offset_y,
+ textSymbolPtr->rotation, textSymbolPtr->label->buffer * textSymbolPtr->scalefactor,
+ &metrics_bounds);
+ if(need_labelpoly) get_metrics(&(cachePtr->point), MS_CC, textSymbolPtr->textpath,
marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, 1, labelPtr->annopoly->line);
- break; /* ...out of position loop */
+ textSymbolPtr->rotation, 1, &labelpoly_bounds);
}
- } /* next position */
-
- /* if position auto didn't manage to find a position, but we have leader configured
- * for the class, then we want to compute the label poly anyways */
- if(classPtr->leader.maxdistance && labelPtr->status == MS_FALSE) {
- labelPtr->annopoint = get_metrics_line(&(cachePtr->point), MS_CC, r,
- marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, label_buffer, &metrics_line);
- if(labelPtr->annopoly) get_metrics_line(&(cachePtr->point), MS_CC, r,
- marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, 1, labelPtr->annopoly->line);
- fastComputeBounds(&metrics_poly);
- }
- } else { /* explicit position */
-
- if(labelPtr->annotext) {
- if(labelPtr->position == MS_CC) { /* don't need the marker_offset */
- labelPtr->annopoint = get_metrics_line(&(cachePtr->point), labelPtr->position, r,
- label_offset_x, label_offset_y, labelPtr->angle, label_buffer, &metrics_line);
- if(labelPtr->annopoly) get_metrics_line(&(cachePtr->point), labelPtr->position, r,
- label_offset_x, label_offset_y, labelPtr->angle, 1, labelPtr->annopoly->line);
+ } else { /* explicit position */
+ if(textSymbolPtr->label->position == MS_CC) { /* don't need the marker_offset */
+ metrics_bounds.poly = &metrics_line;
+ textSymbolPtr->annopoint = get_metrics(&(cachePtr->point), MS_CC, textSymbolPtr->textpath, label_offset_x, label_offset_y,
+ textSymbolPtr->rotation, textSymbolPtr->label->buffer * textSymbolPtr->scalefactor, &metrics_bounds);
+ if(need_labelpoly) get_metrics(&(cachePtr->point), textSymbolPtr->label->position, textSymbolPtr->textpath,
+ label_offset_x, label_offset_y, textSymbolPtr->rotation, 1, &labelpoly_bounds);
} else {
- labelPtr->annopoint = get_metrics_line(&(cachePtr->point), labelPtr->position, r,
+ metrics_bounds.poly = &metrics_line;
+ textSymbolPtr->annopoint = get_metrics(&(cachePtr->point), textSymbolPtr->label->position, textSymbolPtr->textpath,
marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, label_buffer, &metrics_line);
- if(labelPtr->annopoly) get_metrics_line(&(cachePtr->point), labelPtr->position, r,
- marker_offset_x + label_offset_x, marker_offset_y + label_offset_y,
- labelPtr->angle, 1, labelPtr->annopoly->line);
+ textSymbolPtr->rotation, textSymbolPtr->label->buffer * textSymbolPtr->scalefactor,
+ &metrics_bounds);
+ if(need_labelpoly) get_metrics(&(cachePtr->point), textSymbolPtr->label->position, textSymbolPtr->textpath,
+ marker_offset_x + label_offset_x, marker_offset_y + label_offset_y, textSymbolPtr->rotation, 1, &labelpoly_bounds);
}
- fastComputeBounds(&metrics_poly);
- if(labelPtr->force == MS_ON) {
- labelPtr->status = MS_ON;
+ if(textSymbolPtr->label->force == MS_ON) {
+ metrics_status = MS_ON;
} else {
- if(labelPtr->force == MS_OFF) {
+ if(textSymbolPtr->label->force == MS_OFF) {
/* check for collisions inside the label group unless the label is FORCE GROUP */
- if(cachePtr->poly && cachePtr->poly->numlines && intersectLabelPolygons(&metrics_poly, cachePtr->poly) == MS_TRUE) {
- break; /* collision within the group */
+ for(its=0;its<ll;its++) {
+ /* check for collisions inside the label group */
+ if(intersectTextSymbol(cachePtr->textsymbols[its],&metrics_bounds) == MS_TRUE) {
+ /* there was a self intersection */
+ break; /* will break out to next position in containing loop*/
+ }
+ if(its != ll) {
+ cachePtr->status = MS_DELETE; /* TODO RFC98: check if this is correct */
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping label %d (\"%s\") of labelgroup %d of class %d in layer \"%s\": intercollision with label text inside labelgroup\n",
+ ll, textSymbolPtr->annotext, l,cachePtr->classindex, layerPtr->name);
+ break; /* collision within the group, break out of textSymbol loop */
+ }
}
}
/* TODO: in case we have leader lines and multiple labels, there's no use in testing for labelcache collisions
* once a first collision has been found. we only need to know that the label group has collided, and the
* poly of the whole label group: if(label_group) testLabelCacheCollisions */
- labelPtr->status = msTestLabelCacheCollisions(map, cachePtr,&metrics_poly, label_mindistance, priority, l);
+ metrics_status = msTestLabelCacheCollisions(map, cachePtr,&metrics_bounds, priority, l);
}
- } else {
- labelPtr->status = MS_ON;
+ } /* end POSITION AUTO vs Fixed POSITION */
+
+ if(!metrics_status && classPtr->leader == 0) {
+ cachePtr->status = MS_DELETE;
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Skipping label %d \"%s\" of labelgroup %d of class %d in layer \"%s\": text collided\n",
+ ll, textSymbolPtr->annotext, l, cachePtr->classindex, layerPtr->name);
+ break; /* no point looking at more labels, unless their is a leader defined */
}
- } /* end POSITION AUTO vs Fixed POSITION */
+ }
- if((!labelPtr->status || !label_marker_status) && classPtr->leader.maxdistance == 0) {
- labelPtr->status = MS_OFF;
- break; /* no point looking at more labels, unless their is a leader defined, in which
- case we still want to compute the full cachePtr->poly to be used for offset tests */
- } else {
- if(!cachePtr->poly) {
- cachePtr->poly = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
- msInitShape(cachePtr->poly);
- }
- if(labelPtr->annotext) {
- msAddLine(cachePtr->poly, metrics_poly.line);
- }
- if(label_marker_poly.numlines) {
- msAddLine(cachePtr->poly, label_marker_poly.line);
+ /* if we're here, we can either fit the label directly, or we need to put it in the leader queue */
+ assert((metrics_status && label_marker_status) || classPtr->leader);
+
+ if(textSymbolPtr->annotext) {
+ copyLabelBounds(&textSymbolPtr->textpath->bounds, &metrics_bounds);
+ }
+ if(have_label_marker) {
+ if(!textSymbolPtr->style_bounds)
+ textSymbolPtr->style_bounds = msSmallCalloc(textSymbolPtr->label->numstyles, sizeof(label_bounds*));
+ for(its=0;its<textSymbolPtr->label->numstyles; its++) {
+ if(textSymbolPtr->label->styles[its]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ textSymbolPtr->style_bounds[its] = msSmallMalloc(sizeof(label_bounds));
+ copyLabelBounds(textSymbolPtr->style_bounds[its], &label_marker_bounds);
+ }
}
- if(!label_marker_status)
- labelPtr->status = MS_OFF;
}
+ if(!label_marker_status || ! metrics_status) {
+ MS_DEBUG(MS_DEBUGLEVEL_DEVDEBUG,map,
+ "Putting label %d of labelgroup %d of class %d , layer \"%s\" in leader queue\n",
+ ll,l,cachePtr->classindex, layerPtr->name);
+ cachePtr->status = MS_OFF; /* we have a collision, but this entry is a candidate for leader testing */
+ }
+
+ /* do we need to copy the labelpoly, or can we use the static one ?*/
+ if(cachePtr->numtextsymbols > 1 || (cachePtr->status == MS_OFF && classPtr->leader)) {
+ /*
+ * if we have more than one label, or if we have a single one which didn't fit but needs
+ * to go through leader offset testing
+ */
+ if(!textSymbolPtr->style_bounds)
+ textSymbolPtr->style_bounds = msSmallCalloc(textSymbolPtr->label->numstyles, sizeof(label_bounds*));
+ for(its=0;its<textSymbolPtr->label->numstyles; its++) {
+ if(textSymbolPtr->label->styles[its]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ textSymbolPtr->style_bounds[its] = msSmallMalloc(sizeof(label_bounds));
+ copyLabelBounds(textSymbolPtr->style_bounds[its], &labelpoly_bounds);
+ }
+ }
+
+ } /* else: we'll use labelpoly_bounds directly below */
} /* next label in the group */
- /*
- * cachePtr->status can be set to ON only if all it's labels didn't collide
- */
- cachePtr->status = MS_ON;
- for(ll=0; ll<cachePtr->numlabels; ll++) {
- if(cachePtr->labels[ll].status == MS_OFF) {
- cachePtr->status = MS_OFF;
- break;
- }
- }
- if(cachePtr->status == MS_ON || classPtr->leader.maxdistance) {
- /* add the marker polygon if we have one */
- if(marker_poly.numlines) {
- if(!cachePtr->poly) {
- cachePtr->poly = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
- msInitShape(cachePtr->poly);
+ if(cachePtr->status != MS_DELETE) {
+ /* compute the global label bbox */
+ int inited = 0,s;
+ for(its=0;its<cachePtr->numtextsymbols;its++) {
+ if(cachePtr->textsymbols[its]->annotext) {
+ if(inited == 0) {
+ cachePtr->bbox = cachePtr->textsymbols[its]->textpath->bounds.bbox;
+ inited = 1;
+ } else {
+ cachePtr->bbox.minx = MS_MIN(cachePtr->bbox.minx, cachePtr->textsymbols[its]->textpath->bounds.bbox.minx);
+ cachePtr->bbox.miny = MS_MIN(cachePtr->bbox.miny, cachePtr->textsymbols[its]->textpath->bounds.bbox.miny);
+ cachePtr->bbox.maxx = MS_MAX(cachePtr->bbox.maxx, cachePtr->textsymbols[its]->textpath->bounds.bbox.maxx);
+ cachePtr->bbox.maxy = MS_MAX(cachePtr->bbox.maxy, cachePtr->textsymbols[its]->textpath->bounds.bbox.maxy);
+ }
+ }
+ for(s=0; s<cachePtr->textsymbols[its]->label->numstyles; s++) {
+ if(cachePtr->textsymbols[its]->label->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ if(inited == 0) {
+ cachePtr->bbox = cachePtr->textsymbols[its]->style_bounds[s]->bbox;
+ inited = 1;
+ break;
+ } else {
+ cachePtr->bbox.minx = MS_MIN(cachePtr->bbox.minx, cachePtr->textsymbols[its]->style_bounds[s]->bbox.minx);
+ cachePtr->bbox.miny = MS_MIN(cachePtr->bbox.miny, cachePtr->textsymbols[its]->style_bounds[s]->bbox.miny);
+ cachePtr->bbox.maxx = MS_MAX(cachePtr->bbox.maxx, cachePtr->textsymbols[its]->style_bounds[s]->bbox.maxx);
+ cachePtr->bbox.maxy = MS_MAX(cachePtr->bbox.maxy, cachePtr->textsymbols[its]->style_bounds[s]->bbox.maxy);
+ break;
+ }
+ }
}
- msAddLine(cachePtr->poly, marker_poly.line);
}
- if(cachePtr->poly)
- msComputeBounds(cachePtr->poly);
}
- if(cachePtr->status == MS_OFF)
- continue; /* next label, as we had a collision */
+ if(cachePtr->status == MS_OFF || cachePtr->status == MS_DELETE)
+ continue; /* next labelCacheMemberObj, as we had a collision */
+ /* insert the rendered label */
+ insertRenderedLabelMember(map, cachePtr);
- if(layerPtr->type == MS_LAYER_ANNOTATION && cachePtr->numstyles > 0) { /* need to draw a marker */
- for(i=0; i<cachePtr->numstyles; i++)
- msDrawMarkerSymbol(&map->symbolset, image, &(cachePtr->point), &(cachePtr->styles[i]), layerPtr->scalefactor);
- }
-
- for(ll=0; ll<cachePtr->numlabels; ll++) {
- labelPtr = &(cachePtr->labels[ll]);
+ for(ll=0; ll<cachePtr->numtextsymbols; ll++) {
+ textSymbolPtr = cachePtr->textsymbols[ll];
/* here's where we draw the label styles */
- if(labelPtr->numstyles > 0) {
- for(i=0; i<labelPtr->numstyles; i++) {
- if(labelPtr->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
- msDrawMarkerSymbol(&map->symbolset, image, &(cachePtr->point), labelPtr->styles[i], layerPtr->scalefactor);
- else if(labelPtr->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY && labelPtr->annotext) {
- msDrawShadeSymbol(&map->symbolset, image, labelPtr->annopoly, labelPtr->styles[i], scalefactor); /* FIXME: scalefactor here should be adjusted by the label minsize/maxsize adjustments of each label, not only the last one. see #4408 */
+ for(i=0; i<textSymbolPtr->label->numstyles; i++) {
+ if(textSymbolPtr->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &(cachePtr->point), textSymbolPtr->label->styles[i], textSymbolPtr->scalefactor))) {
+ return MS_FAILURE;
+ }
+ } else if(textSymbolPtr->label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY && textSymbolPtr->annotext) {
+ if(textSymbolPtr->style_bounds && textSymbolPtr->style_bounds[i]) {
+ if(UNLIKELY(MS_FAILURE == msDrawLabelBounds(map,image,textSymbolPtr->style_bounds[i],textSymbolPtr->label->styles[i], textSymbolPtr->scalefactor))) {
+ return MS_FAILURE;
+ }
+ } else {
+ if(UNLIKELY(MS_FAILURE == msDrawLabelBounds(map,image,&labelpoly_bounds,textSymbolPtr->label->styles[i], textSymbolPtr->scalefactor))) {
+ return MS_FAILURE;
+ }
+ }
} else {
msSetError(MS_MISCERR,"Labels only support LABELPNT and LABELPOLY GEOMTRANSFORMS", "msDrawLabelCAche()");
return MS_FAILURE;
}
}
+
+ if(textSymbolPtr->annotext) {
+ if(UNLIKELY(MS_FAILURE == msDrawTextSymbol(map,image,textSymbolPtr->annopoint,textSymbolPtr))) {
+ return MS_FAILURE;
+ }
}
- if(labelPtr->annotext)
- msDrawText(image, labelPtr->annopoint, labelPtr->annotext, labelPtr, &(map->fontset), layerPtr->scalefactor); /* actually draw the label */
}
- } /* end else */
+ }
} /* next label(group) from cacheslot */
- msDrawOffsettedLabels(image, map, priority);
+ if(UNLIKELY(MS_FAILURE == msDrawOffsettedLabels(image, map, priority))) {
+ return MS_FAILURE;
+ }
} /* next priority */
#ifdef TBDEBUG
styleObj tstyle;
@@ -3206,7 +3133,7 @@ int msDrawLabelCache(imageObj *image, mapObj *map)
(cachePtr->poly && (cachePtr->status == MS_ON));
*/
if(cachePtr->status) {
- msDrawLineSymbol(&map->symbolset, image, cachePtr->poly, &tstyle, layerPtr->scalefactor);
+ msDrawLineSymbol(map, image, cachePtr->poly, &tstyle, layerPtr->scalefactor);
}
}
}
@@ -3269,7 +3196,7 @@ void msImageEndLayer(mapObj *map, layerObj *layer, imageObj *image)
/**
* Generic function to tell the underline device that shape
- * drawing is stating
+ * drawing is starting
*/
void msDrawStartShape(mapObj *map, layerObj *layer, imageObj *image,
@@ -3317,7 +3244,7 @@ int msShapeToRange(styleObj *style, shapeObj *shape)
fieldVal = 0.0;
fieldVal = atof(fieldStr); /*faith that it's ok -- */
/*should switch to strtod*/
- return msValueToRange(style, fieldVal);
+ return msValueToRange(style, fieldVal, MS_COLORSPACE_RGB);
}
/**
@@ -3325,7 +3252,7 @@ int msShapeToRange(styleObj *style, shapeObj *shape)
* Ranges. The styls passed in is updated to reflect the right color
* based on the fieldVal
*/
-int msValueToRange(styleObj *style, double fieldVal)
+int msValueToRange(styleObj *style, double fieldVal, colorspace cs)
{
double range;
double scaledVal;
@@ -3333,16 +3260,30 @@ int msValueToRange(styleObj *style, double fieldVal)
range = style->maxvalue - style->minvalue;
scaledVal = (fieldVal - style->minvalue)/range;
- /*At this point, we know where on the range we need to be*/
- /*However, we don't know how to map it yet, since RGB(A) can */
- /*Go up or down*/
- style->color.red = (int)(MS_MAX(0,(MS_MIN(255, (style->mincolor.red + ((style->maxcolor.red - style->mincolor.red) * scaledVal))))));
- style->color.green = (int)(MS_MAX(0,(MS_MIN(255,(style->mincolor.green + ((style->maxcolor.green - style->mincolor.green) * scaledVal))))));
- style->color.blue = (int)(MS_MAX(0,(MS_MIN(255,(style->mincolor.blue + ((style->maxcolor.blue - style->mincolor.blue) * scaledVal))))));
-#ifdef USE_GD
- style->color.pen = MS_PEN_UNSET; /*so it will recalculate pen*/
-#endif
-
+ if(cs == MS_COLORSPACE_RGB) {
+ /*At this point, we know where on the range we need to be*/
+ /*However, we don't know how to map it yet, since RGB(A) can */
+ /*Go up or down*/
+ style->color.red = (int)(MS_MAX(0,(MS_MIN(255, (style->mincolor.red + ((style->maxcolor.red - style->mincolor.red) * scaledVal))))));
+ style->color.green = (int)(MS_MAX(0,(MS_MIN(255,(style->mincolor.green + ((style->maxcolor.green - style->mincolor.green) * scaledVal))))));
+ style->color.blue = (int)(MS_MAX(0,(MS_MIN(255,(style->mincolor.blue + ((style->maxcolor.blue - style->mincolor.blue) * scaledVal))))));
+ style->color.alpha = (int)(MS_MAX(0,(MS_MIN(255,(style->mincolor.alpha + ((style->maxcolor.alpha - style->mincolor.alpha) * scaledVal))))));
+ } else {
+ /* HSL */
+ assert(cs == MS_COLORSPACE_HSL);
+ if(fieldVal <= style->minvalue) style->color = style->mincolor;
+ else if(fieldVal >= style->maxvalue) style->color = style->maxcolor;
+ else {
+ double mh,ms,ml,Mh,Ms,Ml;
+ msRGBtoHSL(&style->mincolor,&mh,&ms,&ml);
+ msRGBtoHSL(&style->maxcolor,&Mh,&Ms,&Ml);
+ mh+=(Mh-mh)*scaledVal;
+ ms+=(Ms-ms)*scaledVal;
+ ml+=(Ml-ml)*scaledVal;
+ msHSLtoRGB(mh,ms,ml,&style->color);
+ style->color.alpha = style->mincolor.alpha + (style->maxcolor.alpha - style->mincolor.alpha)*scaledVal;
+ }
+ }
/*( "msMapRange(): %i %i %i", style->color.red , style->color.green, style->color.blue);*/
#if ALPHACOLOR_ENABLED
diff --git a/mapdrawgdal.c b/mapdrawgdal.c
index 54ef084..e843318 100644
--- a/mapdrawgdal.c
+++ b/mapdrawgdal.c
@@ -69,31 +69,6 @@ msDrawRasterLayerGDAL_16BitClassification(
int src_xoff, int src_yoff, int src_xsize, int src_ysize,
int dst_xoff, int dst_yoff, int dst_xsize, int dst_ysize );
-#ifdef USE_GD
-static void Dither24to8( GByte *pabyRed, GByte *pabyGreen, GByte *pabyBlue,
- GByte *pabyDithered, int xsize, int ysize,
- int bTransparent, colorObj transparentColor,
- gdImagePtr gdImg );
-/*
- * Stuff for allocating color cubes, and mapping between RGB values and
- * the corresponding color cube index.
- */
-
-static int allocColorCube(mapObj *map, gdImagePtr img, int *panColorCube);
-#endif
-
-
-#define RED_LEVELS 5
-#define RED_DIV 52
-/* #define GREEN_LEVELS 7 */
-#define GREEN_LEVELS 5
-/* #define GREEN_DIV 37 */
-#define GREEN_DIV 52
-#define BLUE_LEVELS 5
-#define BLUE_DIV 52
-
-#define RGB_LEVEL_INDEX(r,g,b) ((r)*GREEN_LEVELS*BLUE_LEVELS + (g)*BLUE_LEVELS+(b))
-#define RGB_INDEX(r,g,b) RGB_LEVEL_INDEX(((r)/RED_DIV),((g)/GREEN_DIV),((b)/BLUE_DIV))
/*
* rasterBufferObj setting macros.
@@ -131,12 +106,6 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
int bHaveRGBNoData = FALSE;
int nNoData1=-1,nNoData2=-1,nNoData3=-1;
rasterBufferObj *mask_rb = NULL;
-#ifdef USE_GD
- int anColorCube[256];
- int cmt=0;
- /*make sure we don't have a truecolor gd image*/
- assert(!rb || rb->type != MS_BUFFER_GD || !gdImageTrueColor(rb->data.gd_img));
-#endif
if(layer->mask) {
int ret;
layerObj *maskLayer = GET_LAYER(map, msGetLayerIndex(map,layer->mask));
@@ -459,22 +428,6 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
if( alpha_band != 0 )
hBandAlpha = GDALGetRasterBand( hDS, alpha_band );
-#ifdef USE_GD
- /*
- * Wipe pen indicators for all our layer class colors if they exist.
- * Sometimes temporary gdImg'es are used in which case previously allocated
- * pens won't generally apply. See Bug 504.
- */
- if( rb->type == MS_BUFFER_GD ) {
- int iClass;
- int iStyle;
- for( iClass = 0; iClass < layer->numclasses; iClass++ ) {
- for (iStyle=0; iStyle<layer->class[iClass]->numstyles; iStyle++)
- layer->class[iClass]->styles[iStyle]->color.pen = MS_PEN_UNSET;
- }
- }
-#endif
-
/*
* The logic for a classification rendering of non-8bit raster bands
* is sufficiently different than the normal mechanism of loading
@@ -508,30 +461,17 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
pixel.red = i;
pixel.green = i;
pixel.blue = i;
-#ifdef USE_GD
- pixel.pen = i;
-#endif
if(MS_COMPARE_COLORS(pixel, layer->offsite)) {
sEntry.c1 = 0;
sEntry.c2 = 0;
sEntry.c3 = 0;
sEntry.c4 = 0; /* alpha set to zero */
- } else if( rb->type != MS_BUFFER_GD ) {
+ } else {
sEntry.c1 = i;
sEntry.c2 = i;
sEntry.c3 = i;
sEntry.c4 = 255;
- } else {
- /*
- ** This special calculation is intended to use only 128
- ** unique colors for greyscale in non-truecolor mode.
- */
-
- sEntry.c1 = i - i%2;
- sEntry.c2 = i - i%2;
- sEntry.c3 = i - i%2;
- sEntry.c4 = 255;
}
GDALSetColorEntry( hColorMap, i, &sEntry );
@@ -568,6 +508,8 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
*/
if( classified ) {
int c, color_count;
+ const char* pszRangeColorspace = msLayerGetProcessingKey( layer, "RANGE_COLORSPACE" );
+ colorspace iRangeColorspace;
#ifndef NDEBUG
cmap_set = TRUE;
@@ -579,6 +521,17 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
"drawGDAL()");
return -1;
}
+
+ if(!pszRangeColorspace || !strcasecmp(pszRangeColorspace, "RGB")) {
+ iRangeColorspace = MS_COLORSPACE_RGB;
+ } else if(!strcasecmp(pszRangeColorspace, "HSL")) {
+ iRangeColorspace = MS_COLORSPACE_HSL;
+ } else {
+ msSetError(MS_MISCERR,
+ "Unknown RANGE_COLORSPACE \"%s\", expecting RGB or HSL",
+ "drawGDAL()", pszRangeColorspace);
+ return -1;
+ }
color_count = MIN(256,GDALGetColorEntryCount(hColorMap));
for(i=0; i < color_count; i++) {
@@ -596,85 +549,49 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
if(!MS_COMPARE_COLORS(pixel, layer->offsite)) {
c = msGetClass(layer, &pixel, colormap_index);
- if(c == -1) { /* doesn't belong to any class, so handle like offsite*/
- if( rb->type == MS_BUFFER_GD )
- cmap[i] = -1;
- } else {
+ if(c != -1) { /* belongs to any class */
int s;
/* change colour based on colour range? Currently we
only address the greyscale case properly. */
- for(s=0; s<layer->class[c]->numstyles; s++) {
- if( MS_VALID_COLOR(layer->class[c]->styles[s]->mincolor)
- && MS_VALID_COLOR(layer->class[c]->styles[s]->maxcolor) )
- msValueToRange(layer->class[c]->styles[s],
- sEntry.c1 );
- }
-#ifdef USE_GD
- if( rb->type == MS_BUFFER_GD ) {
- RESOLVE_PEN_GD(rb->data.gd_img, layer->class[c]->styles[0]->color);
- if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color) )
- cmap[i] = -1;
- else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- /* use class color */
- cmap[i] = layer->class[c]->styles[0]->color.pen;
- } else /* Use raster color */
- cmap[i] = msAddColorGD(map, rb->data.gd_img, cmt,
- pixel.red, pixel.green, pixel.blue);
- } else if( rb->type == MS_BUFFER_BYTE_RGBA )
-#endif
- {
- if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color))
- /* leave it transparent */;
-
- else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- rb_cmap[0][i] = layer->class[c]->styles[0]->color.red;
- rb_cmap[1][i] = layer->class[c]->styles[0]->color.green;
- rb_cmap[2][i] = layer->class[c]->styles[0]->color.blue;
- rb_cmap[3][i] = (255*layer->class[c]->styles[0]->opacity / 100);
+ if( MS_VALID_COLOR(layer->class[c]->styles[0]->mincolor) ) {
+ for(s=0; s<layer->class[c]->numstyles; s++) {
+ if( MS_VALID_COLOR(layer->class[c]->styles[s]->mincolor)
+ && MS_VALID_COLOR(layer->class[c]->styles[s]->maxcolor)) {
+ if( layer->class[c]->numstyles == 1 || (sEntry.c1 >= layer->class[c]->styles[s]->minvalue
+ && sEntry.c1 <= layer->class[c]->styles[s]->maxvalue )) {
+ msValueToRange(layer->class[c]->styles[s], sEntry.c1, iRangeColorspace);
+ if(MS_VALID_COLOR(layer->class[c]->styles[s]->color)) {
+ rb_cmap[0][i] = layer->class[c]->styles[s]->color.red;
+ rb_cmap[1][i] = layer->class[c]->styles[s]->color.green;
+ rb_cmap[2][i] = layer->class[c]->styles[s]->color.blue;
+ rb_cmap[3][i] = (layer->class[c]->styles[s]->color.alpha != 255)?(layer->class[c]->styles[s]->color.alpha):(255*layer->class[c]->styles[0]->opacity / 100);
+ break;
+ }
+ }
+ }
}
+ }
+ else if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color))
+ /* leave it transparent */;
- else { /* Use raster color */
- rb_cmap[0][i] = pixel.red;
- rb_cmap[1][i] = pixel.green;
- rb_cmap[2][i] = pixel.blue;
- rb_cmap[3][i] = 255;
- }
+ else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
+ rb_cmap[0][i] = layer->class[c]->styles[0]->color.red;
+ rb_cmap[1][i] = layer->class[c]->styles[0]->color.green;
+ rb_cmap[2][i] = layer->class[c]->styles[0]->color.blue;
+ rb_cmap[3][i] = (255*layer->class[c]->styles[0]->opacity / 100);
+ }
+
+ else { /* Use raster color */
+ rb_cmap[0][i] = pixel.red;
+ rb_cmap[1][i] = pixel.green;
+ rb_cmap[2][i] = pixel.blue;
+ rb_cmap[3][i] = 255;
}
}
-#ifdef USE_GD
- } else {
- if( rb->type == MS_BUFFER_GD )
- cmap[i] = -1;
-#endif
}
}
-#ifdef USE_GD
- } else if( hColorMap != NULL && rb->type == MS_BUFFER_GD ) {
- int color_count;
-#ifndef NDEBUG
- cmap_set = TRUE;
-#endif
-
- color_count = MIN(256,GDALGetColorEntryCount(hColorMap));
-
- for(i=0; i < color_count; i++) {
- GDALColorEntry sEntry;
-
- GDALGetColorEntryAsRGB( hColorMap, i, &sEntry );
-
- if( sEntry.c4 != 0
- && (!MS_VALID_COLOR( layer->offsite )
- || layer->offsite.red != sEntry.c1
- || layer->offsite.green != sEntry.c2
- || layer->offsite.blue != sEntry.c3 ) )
- cmap[i] = msAddColorGD(map, rb->data.gd_img, cmt,
- sEntry.c1, sEntry.c2, sEntry.c3);
- else
- cmap[i] = -1;
- }
-#endif
} else if( hBand2 == NULL && hColorMap != NULL && rb->type == MS_BUFFER_BYTE_RGBA ) {
int color_count;
#ifndef NDEBUG
@@ -700,12 +617,6 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
}
}
}
-#ifdef USE_GD
- else if( rb->type == MS_BUFFER_GD ) {
- allocColorCube( map, rb->data.gd_img, anColorCube );
- }
-#endif
-
/*
* Allocate imagery buffers.
*/
@@ -803,63 +714,6 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
}
}
-#ifdef USE_GD
- /* -------------------------------------------------------------------- */
- /* Single band plus colormap with alpha blending to 8bit. */
- /* -------------------------------------------------------------------- */
- if( hBand2 == NULL && rb->type == MS_BUFFER_GD && hBandAlpha != NULL ) {
- assert( cmap_set );
- k = 0;
-
- for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
- int result, alpha;
-
- for( j = dst_xoff; j < dst_xoff + dst_xsize; j++ ) {
- alpha = pabyRawAlpha[k];
-
- result = cmap[pabyRaw1[k++]];
- if(SKIP_MASK(j,i)) {
- continue;
- }
-
- /*
- ** We don't do alpha blending in non-truecolor mode, just
- ** threshold the point on/off at alpha=128.
- */
-
- if( result != -1 && alpha >= 128 )
- rb->data.gd_img->pixels[i][j] = result;
- }
- }
-
- assert( k == dst_xsize * dst_ysize );
- }
-
- /* -------------------------------------------------------------------- */
- /* Single band plus colormap (no alpha) to 8bit. */
- /* -------------------------------------------------------------------- */
- else if( hBand2 == NULL && rb->type == MS_BUFFER_GD ) {
- assert( cmap_set );
- k = 0;
-
- for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
- int result;
-
- for( j = dst_xoff; j < dst_xoff + dst_xsize; j++ ) {
- result = cmap[pabyRaw1[k++]];
- if(SKIP_MASK(j,i)) {
- continue;
- }
- if( result != -1 ) {
- rb->data.gd_img->pixels[i][j] = result;
- }
- }
- }
-
- assert( k == dst_xsize * dst_ysize );
- } else
-#endif
-
/* -------------------------------------------------------------------- */
/* Single band plus colormap and alpha to truecolor. (RB) */
/* -------------------------------------------------------------------- */
@@ -973,91 +827,6 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
}
}
-#ifdef USE_GD
- /* -------------------------------------------------------------------- */
- /* Input is 3 band RGB. Alpha blending is mixed into the loop */
- /* since this case is less commonly used and has lots of other */
- /* overhead. (GD) */
- /* -------------------------------------------------------------------- */
- else if( hBand3 != NULL && rb->type == MS_BUFFER_GD ) {
- /* Dithered 24bit to 8bit conversion */
- if( CSLFetchBoolean( layer->processing, "DITHER", FALSE ) ) {
- unsigned char *pabyDithered;
-
- pabyDithered = (unsigned char *) malloc(dst_xsize * dst_ysize);
- if( pabyDithered == NULL ) {
- msSetError(MS_MEMERR, "Allocating work image of size %dx%d failed.",
- "msDrawRasterLayerGDAL()", dst_xsize, dst_ysize );
- return -1;
- }
-
- Dither24to8( pabyRaw1, pabyRaw2, pabyRaw3, pabyDithered,
- dst_xsize, dst_ysize, image->format->transparent,
- map->imagecolor, rb->data.gd_img );
-
- k = 0;
- for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
- for( j = dst_xoff; j < dst_xoff + dst_xsize; j++, k++ ) {
- if(SKIP_MASK(j,i)) {
- continue;
- }
- if( MS_VALID_COLOR( layer->offsite )
- && pabyRaw1[k] == layer->offsite.red
- && pabyRaw2[k] == layer->offsite.green
- && pabyRaw3[k] == layer->offsite.blue )
- continue;
-
- if( bHaveRGBNoData
- && pabyRaw1[k] == nNoData1
- && pabyRaw2[k] == nNoData2
- && pabyRaw3[k] == nNoData3 )
- continue;
-
- if( pabyRawAlpha != NULL && pabyRawAlpha[k] == 0 )
- continue;
-
- rb->data.gd_img->pixels[i][j] = pabyDithered[k];
- }
- }
-
- free( pabyDithered );
- }
-
- /* Color cubed 24bit to 8bit conversion. */
- else if( rb->type == MS_BUFFER_GD ) {
- k = 0;
- for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
- for( j = dst_xoff; j < dst_xoff + dst_xsize; j++, k++ ) {
- int cc_index;
- if(SKIP_MASK(j,i)) {
- continue;
- }
-
- if( MS_VALID_COLOR( layer->offsite )
- && pabyRaw1[k] == layer->offsite.red
- && pabyRaw2[k] == layer->offsite.green
- && pabyRaw3[k] == layer->offsite.blue )
- continue;
-
- if( bHaveRGBNoData
- && pabyRaw1[k] == nNoData1
- && pabyRaw2[k] == nNoData2
- && pabyRaw3[k] == nNoData3 )
- continue;
-
- if( pabyRawAlpha != NULL && pabyRawAlpha[k] == 0 )
- continue;
-
- cc_index= RGB_INDEX(pabyRaw1[k],pabyRaw2[k],pabyRaw3[k]);
- rb->data.gd_img->pixels[i][j] = anColorCube[cc_index];
- }
- }
- } else {
- msSetError(MS_MISCERR,"Unsupported raster configuration","msDrawRasterLayerGDAL()");
- return MS_FAILURE;
- }
- }
-#endif
/*
** Cleanup
@@ -1563,152 +1332,6 @@ LoadGDALImages( GDALDatasetH hDS, int band_numbers[4], int band_count,
return result_code;
}
-#ifdef USE_GD
-/************************************************************************/
-/* allocColorCube() */
-/* */
-/* Allocate color table entries as best possible for a color */
-/* cube. */
-/************************************************************************/
-
-static int allocColorCube(mapObj *map, gdImagePtr img, int *panColorCube)
-
-{
- int r, g, b;
- int i = 0;
- int nGreyColors = 32;
- int nSpaceGreyColors = 8;
- int iColors = 0;
- int red, green, blue;
-
- for( r = 0; r < RED_LEVELS; r++ ) {
- for( g = 0; g < GREEN_LEVELS; g++ ) {
- for( b = 0; b < BLUE_LEVELS; b++ ) {
- red = MS_MIN(255,r * (255 / (RED_LEVELS-1)));
- green = MS_MIN(255,g * (255 / (GREEN_LEVELS-1)));
- blue = MS_MIN(255,b * (255 / (BLUE_LEVELS-1)));
-
- panColorCube[RGB_LEVEL_INDEX(r,g,b)] =
- msAddColorGD(map, img, 1, red, green, blue );
- iColors++;
- }
- }
- }
- /* -------------------------------------------------------------------- */
- /* Adding 32 grey colors */
- /* -------------------------------------------------------------------- */
- for (i=0; i<nGreyColors; i++) {
- red = i*nSpaceGreyColors;
- green = red;
- blue = red;
- if(iColors < 256) {
- panColorCube[iColors] = msAddColorGD(map,img,1,red,green,blue);
- iColors++;
- }
- }
- return MS_SUCCESS;
-}
-
-/************************************************************************/
-/* Dither24to8() */
-/* */
-/* Wrapper for GDAL dithering algorithm. */
-/************************************************************************/
-
-static void Dither24to8( GByte *pabyRed, GByte *pabyGreen, GByte *pabyBlue,
- GByte *pabyDithered, int xsize, int ysize,
- int bTransparent, colorObj transparent,
- gdImagePtr gdImg )
-
-{
- GDALDatasetH hDS;
- GDALDriverH hDriver;
- char **papszBandOptions = NULL;
- char szDataPointer[120];
- GDALColorTableH hCT;
- int c;
-
- /* -------------------------------------------------------------------- */
- /* Create the "memory" GDAL dataset referencing our working */
- /* arrays. */
- /* -------------------------------------------------------------------- */
- hDriver = GDALGetDriverByName( "MEM" );
- if( hDriver == NULL )
- return;
-
- hDS = GDALCreate( hDriver, "TempDitherDS", xsize, ysize, 0, GDT_Byte,
- NULL );
-
- /* Add Red Band */
- memset( szDataPointer, 0, sizeof(szDataPointer) );
- CPLPrintPointer( szDataPointer, pabyRed, sizeof(szDataPointer) );
- papszBandOptions = CSLSetNameValue( papszBandOptions, "DATAPOINTER",
- szDataPointer );
- GDALAddBand( hDS, GDT_Byte, papszBandOptions );
-
- /* Add Green Band */
- memset( szDataPointer, 0, sizeof(szDataPointer) );
- CPLPrintPointer( szDataPointer, pabyGreen, sizeof(szDataPointer) );
- papszBandOptions = CSLSetNameValue( papszBandOptions, "DATAPOINTER",
- szDataPointer );
- GDALAddBand( hDS, GDT_Byte, papszBandOptions );
-
- /* Add Blue Band */
- memset( szDataPointer, 0, sizeof(szDataPointer) );
- CPLPrintPointer( szDataPointer, pabyBlue, sizeof(szDataPointer) );
- papszBandOptions = CSLSetNameValue( papszBandOptions, "DATAPOINTER",
- szDataPointer );
- GDALAddBand( hDS, GDT_Byte, papszBandOptions );
-
- /* Add Dithered Band */
- memset( szDataPointer, 0, sizeof(szDataPointer) );
- CPLPrintPointer( szDataPointer, pabyDithered, sizeof(szDataPointer) );
- papszBandOptions = CSLSetNameValue( papszBandOptions, "DATAPOINTER",
- szDataPointer );
- GDALAddBand( hDS, GDT_Byte, papszBandOptions );
-
- CSLDestroy( papszBandOptions );
-
- /* -------------------------------------------------------------------- */
- /* Create the color table. */
- /* -------------------------------------------------------------------- */
- hCT = GDALCreateColorTable( GPI_RGB );
-
- for (c = 0; c < gdImg->colorsTotal; c++) {
- GDALColorEntry sEntry;
-
- sEntry.c1 = gdImg->red[c];
- sEntry.c2 = gdImg->green[c];
- sEntry.c3 = gdImg->blue[c];
-
- if( bTransparent
- && transparent.red == sEntry.c1
- && transparent.green == sEntry.c2
- && transparent.blue == sEntry.c3 )
- sEntry.c4 = 0;
- else
- sEntry.c4 = 255;
-
- GDALSetColorEntry( hCT, c, &sEntry );
- }
-
- /* -------------------------------------------------------------------- */
- /* Perform dithering. */
- /* -------------------------------------------------------------------- */
- GDALDitherRGB2PCT( GDALGetRasterBand( hDS, 1 ),
- GDALGetRasterBand( hDS, 2 ),
- GDALGetRasterBand( hDS, 3 ),
- GDALGetRasterBand( hDS, 4 ),
- hCT, NULL, NULL );
-
- /* -------------------------------------------------------------------- */
- /* Cleanup. */
- /* -------------------------------------------------------------------- */
- GDALDestroyColorTable( hCT );
- GDALClose( hDS );
-}
-#endif
-
/************************************************************************/
/* msGetGDALGeoTransform() */
@@ -2100,7 +1723,7 @@ msDrawRasterLayerGDAL_16BitClassification(
return -1;
}
- assert( rb->type == MS_BUFFER_GD || rb->type == MS_BUFFER_BYTE_RGBA );
+ assert( rb->type == MS_BUFFER_BYTE_RGBA );
/* ==================================================================== */
/* Read the requested data in one gulp into a floating point */
@@ -2261,30 +1884,17 @@ msDrawRasterLayerGDAL_16BitClassification(
for(s=0; s<layer->class[c]->numstyles; s++) {
if( MS_VALID_COLOR(layer->class[c]->styles[s]->mincolor)
&& MS_VALID_COLOR(layer->class[c]->styles[s]->maxcolor) )
- msValueToRange(layer->class[c]->styles[s],dfOriginalValue);
+ msValueToRange(layer->class[c]->styles[s],dfOriginalValue, MS_COLORSPACE_RGB);
+ }
+ if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color) ) {
+ /* leave it transparent */
+ } else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
+ /* use class color */
+ rb_cmap[0][i] = layer->class[c]->styles[0]->color.red;
+ rb_cmap[1][i] = layer->class[c]->styles[0]->color.green;
+ rb_cmap[2][i] = layer->class[c]->styles[0]->color.blue;
+ rb_cmap[3][i] = (255*layer->class[c]->styles[0]->opacity / 100);
}
-#ifdef USE_GD
- if(rb->type == MS_BUFFER_GD) {
- RESOLVE_PEN_GD(rb->data.gd_img, layer->class[c]->styles[0]->color);
- if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color) )
- cmap[i] = -1;
- else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- /* use class color */
- cmap[i] = layer->class[c]->styles[0]->color.pen;
- }
- } else
-#endif
- if( rb->type == MS_BUFFER_BYTE_RGBA ) {
- if( MS_TRANSPARENT_COLOR(layer->class[c]->styles[0]->color) ) {
- /* leave it transparent */
- } else if( MS_VALID_COLOR(layer->class[c]->styles[0]->color)) {
- /* use class color */
- rb_cmap[0][i] = layer->class[c]->styles[0]->color.red;
- rb_cmap[1][i] = layer->class[c]->styles[0]->color.green;
- rb_cmap[2][i] = layer->class[c]->styles[0]->color.blue;
- rb_cmap[3][i] = (255*layer->class[c]->styles[0]->opacity / 100);
- }
- }
}
}
@@ -2317,24 +1927,13 @@ msDrawRasterLayerGDAL_16BitClassification(
if( iMapIndex >= nBucketCount || iMapIndex < 0 ) {
continue;
}
-#ifdef USE_GD
- if( rb->type == MS_BUFFER_GD ) {
- int result = cmap[iMapIndex];
- if( result == -1 )
- continue;
-
- rb->data.gd_img->pixels[i][j] = result;
- } else
-#endif
- if( rb->type == MS_BUFFER_BYTE_RGBA ) {
- /* currently we never have partial alpha so keep simple */
- if( rb_cmap[3][iMapIndex] > 0 )
- RB_SET_PIXEL( rb, j, i,
- rb_cmap[0][iMapIndex],
- rb_cmap[1][iMapIndex],
- rb_cmap[2][iMapIndex],
- rb_cmap[3][iMapIndex] );
- }
+ /* currently we never have partial alpha so keep simple */
+ if( rb_cmap[3][iMapIndex] > 0 )
+ RB_SET_PIXEL( rb, j, i,
+ rb_cmap[0][iMapIndex],
+ rb_cmap[1][iMapIndex],
+ rb_cmap[2][iMapIndex],
+ rb_cmap[3][iMapIndex] );
}
}
diff --git a/mapdummyrenderer.c b/mapdummyrenderer.c
index 2092205..c34cca6 100644
--- a/mapdummyrenderer.c
+++ b/mapdummyrenderer.c
@@ -60,13 +60,6 @@ int renderRasterGlyphsDummy(imageObj *img, double x, double y, int fontIndex,
return MS_FAILURE;
}
-int renderGlyphsDummy(imageObj *img, double x, double y,
- labelStyleObj *style, char *text)
-{
- msSetError(MS_RENDERERERR,"renderGlyphs not implemented","renderGlyphs()");
- return MS_FAILURE;
-}
-
int renderGlyphsLineDummy(imageObj *img,labelPathObj *labelpath,
labelStyleObj *style, char *text)
{
@@ -91,48 +84,48 @@ void* createVectorSymbolTileDummy(int width, int height,
int renderPixmapSymbolDummy(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"renderPixmapSymbol not implemented","renderPixmapSymbol()");
return MS_FAILURE;
}
void* createPixmapSymbolTileDummy(int width, int height,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"createPixmapSymbolTile not implemented","createPixmapSymbolTile()");
return NULL;
}
int renderEllipseSymbolDummy(imageObj *image, double x, double y,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"renderEllipseSymbol not implemented","renderEllipseSymbol()");
return MS_FAILURE;
}
void* createEllipseSymbolTileDummy(int width, int height,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"createEllipseSymbolTile not implemented","createEllipseSymbolTile()");
return NULL;
}
int renderTruetypeSymbolDummy(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"renderTruetypeSymbol not implemented","renderTruetypeSymbol()");
return MS_FAILURE;
}
void* createTruetypeSymbolTileDummy(int width, int height,
symbolObj *symbol, symbolStyleObj *style)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"createTruetypeSymbolTile not implemented","createTruetypeSymbolTile()");
return NULL;
}
int renderTileDummy(imageObj *img, imageObj *tile, double x, double y)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"renderTile not implemented","renderTile()");
return MS_FAILURE;
}
@@ -145,7 +138,7 @@ rasterBufferObj* loadImageFromFileDummy(char *path)
int getRasterBufferHandleDummy(imageObj *img, rasterBufferObj *rb)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"getRasterBufferHandle not implemented","getRasterBufferHandle()");
return MS_FAILURE;
}
@@ -223,7 +216,7 @@ int endShapeDummy(imageObj *img, shapeObj *shape)
int setClipDummy(imageObj *img, rectObj clipRect)
{
- msSetError(MS_RENDERERERR,"renderLine not implemented","renderLine()");
+ msSetError(MS_RENDERERERR,"setClip not implemented","setClip()");
return MS_FAILURE;
}
int resetClipDummy(imageObj *img)
@@ -260,9 +253,8 @@ int msInitializeDummyRenderer(rendererVTableObj *renderer)
renderer->use_imagecache = 0;
renderer->supports_pixel_buffer = 0;
- renderer->supports_transparent_layers = 0;
+ renderer->compositeRasterBuffer = NULL;
renderer->supports_clipping = 0;
- renderer->supports_bitmap_fonts = 0;
renderer->supports_svg = 0;
renderer->renderer_data = NULL;
renderer->transform_mode = MS_TRANSFORM_SIMPLIFY;
@@ -276,22 +268,18 @@ int msInitializeDummyRenderer(rendererVTableObj *renderer)
renderer->getRasterBufferCopy=getRasterBufferCopyDummy;
renderer->initializeRasterBuffer=initializeRasterBufferDummy;
renderer->renderPolygon=&renderPolygonDummy;
- renderer->renderGlyphs=&renderGlyphsDummy;
- renderer->renderGlyphsLine = NULL;
- renderer->renderBitmapGlyphs = &renderGlyphsDummy;
renderer->freeImage=&freeImageDummy;
renderer->renderEllipseSymbol = &renderEllipseSymbolDummy;
renderer->renderVectorSymbol = &renderVectorSymbolDummy;
- renderer->renderTruetypeSymbol = &renderTruetypeSymbolDummy;
renderer->renderPixmapSymbol = &renderPixmapSymbolDummy;
renderer->mergeRasterBuffer = &mergeRasterBufferDummy;
- renderer->getTruetypeTextBBox = &getTruetypeTextBBoxDummy;
renderer->renderTile = &renderTileDummy;
renderer->renderPolygonTiled = &renderPolygonTiledDummy;
renderer->freeSymbol = &freeSymbolDummy;
renderer->cleanup = &cleanupDummy;
renderer->startShape = NULL;
renderer->endShape = NULL;
+ renderer->renderGlyphs = NULL;
return MS_SUCCESS;
}
diff --git a/maperror.c b/maperror.c
index 1cb2a94..333b5f5 100644
--- a/maperror.c
+++ b/maperror.c
@@ -83,7 +83,8 @@ static char *ms_errorCodes[MS_NUMERRORCODES] = {"",
"AGG library error.",
"OWS error.",
"OpenGL renderer error.",
- "Renderer error."
+ "Renderer error.",
+ "V8 engine error."
};
#ifndef USE_THREAD
@@ -195,12 +196,14 @@ static errorObj *msInsertErrorObj(void)
new_error->isreported = ms_error->isreported;
strlcpy(new_error->routine, ms_error->routine, sizeof(new_error->routine));
strlcpy(new_error->message, ms_error->message, sizeof(new_error->message));
+ new_error->errorcount = ms_error->errorcount;
ms_error->next = new_error;
ms_error->code = MS_NOERR;
ms_error->isreported = MS_FALSE;
ms_error->routine[0] = '\0';
ms_error->message[0] = '\0';
+ ms_error->errorcount = 0;
}
}
@@ -229,6 +232,7 @@ void msResetErrorList()
ms_error->code = MS_NOERR;
ms_error->routine[0] = '\0';
ms_error->message[0] = '\0';
+ ms_error->errorcount = 0;
/* -------------------------------------------------------------------- */
/* Cleanup our entry in the thread list. This is mainly */
@@ -285,6 +289,18 @@ char *msAddErrorDisplayString(char *source, errorObj *error)
if((source = msStringConcatenate(source, ms_errorCodes[error->code])) == NULL) return(NULL);
if((source = msStringConcatenate(source, " ")) == NULL) return(NULL);
if((source = msStringConcatenate(source, error->message)) == NULL) return(NULL);
+ if (error->errorcount > 0) {
+ char* pszTmp;
+ if((source = msStringConcatenate(source, " (message repeated ")) == NULL) return(NULL);
+ pszTmp = msIntToString(error->errorcount);
+ if((source = msStringConcatenate(source, pszTmp)) == NULL) {
+ msFree(pszTmp);
+ return(NULL);
+ }
+ msFree(pszTmp);
+ if((source = msStringConcatenate(source, " times)")) == NULL) return(NULL);
+ }
+
return source;
}
@@ -310,25 +326,36 @@ char *msGetErrorString(char *delimiter)
void msSetError(int code, const char *message_fmt, const char *routine, ...)
{
- errorObj *ms_error = msInsertErrorObj();
+ errorObj *ms_error;
va_list args;
-
- ms_error->code = code;
-
- if(!routine)
- strcpy(ms_error->routine, "");
- else {
- strlcpy(ms_error->routine, routine, sizeof(ms_error->routine));
- }
+ char message[MESSAGELENGTH];
if(!message_fmt)
- strcpy(ms_error->message, "");
+ strcpy(message, "");
else {
va_start(args, routine);
- vsnprintf( ms_error->message, MESSAGELENGTH, message_fmt, args );
+ vsnprintf( message, MESSAGELENGTH, message_fmt, args );
va_end(args);
}
+ ms_error = msGetErrorObj();
+
+ /* Insert the error to the list if it is not the same as the previous error*/
+ if (ms_error->code != code || !EQUAL(message, ms_error->message) ||
+ !EQUAL(routine, ms_error->routine)) {
+ ms_error = msInsertErrorObj();
+ if(!routine)
+ strcpy(ms_error->routine, "");
+ else {
+ strlcpy(ms_error->routine, routine, sizeof(ms_error->routine));
+ }
+ strlcpy(ms_error->message, message, sizeof(ms_error->message));
+ ms_error->code = code;
+ ms_error->errorcount = 0;
+ }
+ else
+ ++ms_error->errorcount;
+
/* Log a copy of errors to MS_ERRORFILE if set (handled automatically inside msDebug()) */
msDebug("%s: %s %s\n", ms_error->routine, ms_errorCodes[ms_error->code], ms_error->message);
@@ -366,7 +393,6 @@ void msWriteErrorImage(mapObj *map, char *filename, int blank)
{
imageObj *img;
rendererVTableObj *renderer;
- int font_index = 0;
int width=400, height=300;
int nMargin =5;
int nTextLength = 0;
@@ -378,18 +404,16 @@ void msWriteErrorImage(mapObj *map, char *filename, int blank)
int nEnd = 0;
int nLength = 0;
char **papszLines = NULL;
- int nXPos = 0;
- int nYPos = 0;
+ pointObj pnt;
int nWidthTxt = 0;
outputFormatObj *format = NULL;
char *errormsg = msGetErrorString("; ");
errorObj *error = msGetErrorObj();
- fontMetrics *font = NULL;
char *imagepath = NULL, *imageurl = NULL;
- labelStyleObj ls;
- colorObj labelcolor, labeloutlinecolor, imagecolor, *imagecolorptr=NULL;
- ls.color = &labelcolor;
- ls.outlinecolor = &labeloutlinecolor;
+ colorObj imagecolor, *imagecolorptr=NULL;
+ textSymbolObj ts;
+ labelObj label;
+ int charWidth = 5, charHeight = 8; /* hardcoded, should be looked up from ft face */
if(!errormsg) {
errormsg = msStrdup("No error found sorry. This is likely a bug");
}
@@ -405,7 +429,7 @@ void msWriteErrorImage(mapObj *map, char *filename, int blank)
}
/* Default to GIF if no suitable GD output format set */
- if (format == NULL || !MS_RENDERER_PLUGIN(format) || !format->vtable->supports_bitmap_fonts)
+ if (format == NULL || !MS_RENDERER_PLUGIN(format))
format = msCreateDefaultOutputFormat( NULL, "AGG/PNG8", "png" );
if(!format->transparent) {
@@ -420,63 +444,60 @@ void msWriteErrorImage(mapObj *map, char *filename, int blank)
img = msImageCreate(width,height,format,imagepath,imageurl,MS_DEFAULT_RESOLUTION,MS_DEFAULT_RESOLUTION,imagecolorptr);
renderer = MS_IMAGE_RENDERER(img);
- for(i=0; i<5; i++) {
- /* use the first font we find */
- if((font = renderer->bitmapFontMetrics[font_index]) != NULL) {
- ls.size = i;
- MS_INIT_COLOR(*ls.color,0,0,0,255);
- MS_INIT_COLOR(*ls.outlinecolor,255,255,255,255);
- ls.outlinewidth = 1;
- break;
- }
- }
- /* if no font found we can't do much. this shouldn't happen */
- if(font) {
-
- nTextLength = strlen(errormsg);
- nWidthTxt = nTextLength * font->charWidth;
- nUsableWidth = width - (nMargin*2);
-
- /* Check to see if it all fits on one line. If not, split the text on several lines. */
- if(!blank) {
- if (nWidthTxt > nUsableWidth) {
- nMaxCharsPerLine = nUsableWidth/font->charWidth;
- nLines = (int) ceil ((double)nTextLength / (double)nMaxCharsPerLine);
- if (nLines > 0) {
- papszLines = (char **)malloc(nLines*sizeof(char *));
- for (i=0; i<nLines; i++) {
- papszLines[i] = (char *)malloc((nMaxCharsPerLine+1)*sizeof(char));
- papszLines[i][0] = '\0';
- }
- }
+
+ nTextLength = strlen(errormsg);
+ nWidthTxt = nTextLength * charWidth;
+ nUsableWidth = width - (nMargin*2);
+
+ /* Check to see if it all fits on one line. If not, split the text on several lines. */
+ if(!blank) {
+ if (nWidthTxt > nUsableWidth) {
+ nMaxCharsPerLine = nUsableWidth/charWidth;
+ nLines = (int) ceil ((double)nTextLength / (double)nMaxCharsPerLine);
+ if (nLines > 0) {
+ papszLines = (char **)malloc(nLines*sizeof(char *));
for (i=0; i<nLines; i++) {
- nStart = i*nMaxCharsPerLine;
- nEnd = nStart + nMaxCharsPerLine;
- if (nStart < nTextLength) {
- if (nEnd > nTextLength)
- nEnd = nTextLength;
- nLength = nEnd-nStart;
-
- strncpy(papszLines[i], errormsg+nStart, nLength);
- papszLines[i][nLength] = '\0';
- }
+ papszLines[i] = (char *)malloc((nMaxCharsPerLine+1)*sizeof(char));
+ papszLines[i][0] = '\0';
}
- } else {
- nLines = 1;
- papszLines = (char **)malloc(nLines*sizeof(char *));
- papszLines[0] = msStrdup(errormsg);
}
for (i=0; i<nLines; i++) {
- nYPos = (font->charHeight) * ((i*2) +1);
- nXPos = font->charWidth;;
- renderer->renderBitmapGlyphs(img, nXPos, nYPos, &ls, papszLines[i]);
- }
- if (papszLines) {
- for (i=0; i<nLines; i++) {
- free(papszLines[i]);
+ nStart = i*nMaxCharsPerLine;
+ nEnd = nStart + nMaxCharsPerLine;
+ if (nStart < nTextLength) {
+ if (nEnd > nTextLength)
+ nEnd = nTextLength;
+ nLength = nEnd-nStart;
+
+ strncpy(papszLines[i], errormsg+nStart, nLength);
+ papszLines[i][nLength] = '\0';
}
- free(papszLines);
}
+ } else {
+ nLines = 1;
+ papszLines = (char **)malloc(nLines*sizeof(char *));
+ papszLines[0] = msStrdup(errormsg);
+ }
+ initLabel(&label);
+ MS_INIT_COLOR(label.color,0,0,0,255);
+ MS_INIT_COLOR(label.outlinecolor,255,255,255,255);
+ label.outlinewidth = 1;
+
+ label.size = MS_SMALL;
+ MS_REFCNT_INCR((&label));
+ for (i=0; i<nLines; i++) {
+ pnt.y = charHeight * ((i*2) +1);
+ pnt.x = charWidth;
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts,&label,papszLines[i],1,1,0);
+ if(LIKELY(MS_SUCCESS == msComputeTextPath(map,&ts))) {
+ int idontcare;
+ idontcare = msDrawTextSymbol(NULL,img,pnt,&ts);
+ freeTextSymbol(&ts);
+ }
+ }
+ if (papszLines) {
+ free(papszLines);
}
}
@@ -505,13 +526,10 @@ char *msGetVersion()
sprintf(version, "MapServer version %s", MS_VERSION);
-#ifdef USE_GD_GIF
- strcat(version, " OUTPUT=GIF");
-#endif
-#if (defined USE_GD_PNG || defined USE_PNG)
+#if (defined USE_PNG)
strcat(version, " OUTPUT=PNG");
#endif
-#if (defined USE_GD_JPEG || defined USE_JPEG)
+#if (defined USE_JPEG)
strcat(version, " OUTPUT=JPEG");
#endif
#ifdef USE_KML
@@ -520,9 +538,6 @@ char *msGetVersion()
#ifdef USE_PROJ
strcat(version, " SUPPORTS=PROJ");
#endif
-#ifdef USE_GD
- strcat(version, " SUPPORTS=GD");
-#endif
strcat(version, " SUPPORTS=AGG");
strcat(version, " SUPPORTS=FREETYPE");
#ifdef USE_CAIRO
@@ -578,6 +593,9 @@ char *msGetVersion()
#ifdef USE_POINT_Z_M
strcat(version, " SUPPORTS=POINT_Z_M");
#endif
+#ifdef USE_V8_MAPSCRIPT
+ strcat(version, " SUPPORTS=V8");
+#endif
#ifdef USE_JPEG
strcat(version, " INPUT=JPEG");
#endif
diff --git a/maperror.h b/maperror.h
index 0ed965c..f92f38d 100644
--- a/maperror.h
+++ b/maperror.h
@@ -46,7 +46,6 @@ extern "C" {
#define MS_REGEXERR 5
#define MS_TTFERR 6
#define MS_DBFERR 7
-#define MS_GDERR 8
#define MS_IDENTERR 9
#define MS_EOFERR 10
#define MS_PROJERR 11
@@ -59,7 +58,7 @@ extern "C" {
#define MS_NOTFOUND 18 /* empty search results */
#define MS_SHPERR 19
#define MS_PARSEERR 20
-#define MS_SDEERR 21
+#define MS_UNUSEDERR 21
#define MS_OGRERR 22
#define MS_QUERYERR 23
#define MS_WMSERR 24 /* WMS server error */
@@ -79,8 +78,9 @@ extern "C" {
#define MS_NULLPARENTERR 38
#define MS_AGGERR 39
#define MS_OWSERR 40
-#define MS_OGLERR 42
-#define MS_RENDERERERR 43
+#define MS_OGLERR 41
+#define MS_RENDERERERR 42
+#define MS_V8ERR 43
#define MS_NUMERRORCODES 44
#define MESSAGELENGTH 2048
@@ -107,6 +107,7 @@ extern "C" {
char routine[ROUTINELENGTH];
char message[MESSAGELENGTH];
int isreported;
+ int errorcount; /* number of subsequent errors */
#ifndef SWIG
struct errorObj *next;
#endif
@@ -142,7 +143,8 @@ extern "C" {
MS_DEBUGLEVEL_TUNING = 2, /* Reports timing info */
MS_DEBUGLEVEL_V = 3, /* Verbose */
MS_DEBUGLEVEL_VV = 4, /* Very verbose */
- MS_DEBUGLEVEL_VVV = 5 /* Very very verbose */
+ MS_DEBUGLEVEL_VVV = 5, /* Very very verbose */
+ MS_DEBUGLEVEL_DEVDEBUG = 20, /* Undocumented, will trigger debug messages only useful for developers */
} debugLevel;
#ifndef SWIG
diff --git a/mapfile.c b/mapfile.c
index 6e0ae01..eb01324 100644
--- a/mapfile.c
+++ b/mapfile.c
@@ -27,7 +27,9 @@
* DEALINGS IN THE SOFTWARE.
****************************************************************************/
+#ifndef _GNU_SOURCE
#define _GNU_SOURCE
+#endif
#include <stdarg.h>
#include <assert.h>
@@ -77,7 +79,7 @@ static void writeExpression(FILE *stream, int indent, const char *name, expressi
** Must be kept in sync with enumerations and defines found in mapserver.h.
*/
/* static char *msUnits[9]={"INCHES", "FEET", "MILES", "METERS", "KILOMETERS", "DD", "PIXELS", "PERCENTAGES", "NAUTICALMILES"}; */
-/* static char *msLayerTypes[9]={"POINT", "LINE", "POLYGON", "RASTER", "ANNOTATION", "QUERY", "CIRCLE", "TILEINDEX","CHART"}; */
+/* static char *msLayerTypes[10]={"POINT", "LINE", "POLYGON", "RASTER", "ANNOTATION", "QUERY", "CIRCLE", "TILEINDEX","CHART"}; */
char *msPositionsText[MS_POSITIONS_LENGTH] = {"UL", "LR", "UR", "LL", "CR", "CL", "UC", "LC", "CC", "AUTO", "XY", "FOLLOW"}; /* msLabelPositions[] also used in mapsymbols.c (not static) */
/* static char *msBitmapFontSizes[5]={"TINY", "SMALL", "MEDIUM", "LARGE", "GIANT"}; */
/* static char *msQueryMapStyles[4]={"NORMAL", "HILITE", "SELECTED", "INVERTED"}; */
@@ -99,11 +101,10 @@ int msValidateParameter(char *value, char *pattern1, char *pattern2, char *patte
if(msEvalRegex(pattern3, value) == MS_TRUE) return MS_SUCCESS;
if(msEvalRegex(pattern4, value) == MS_TRUE) return MS_SUCCESS;
- msSetError(MS_REGEXERR, "Parameter pattern validation failed." , "msValidateParameter()");
return(MS_FAILURE);
}
-int msEvalRegex(char *e, char *s)
+int msEvalRegex(const char *e, const char *s)
{
ms_regex_t re;
@@ -116,7 +117,6 @@ int msEvalRegex(char *e, char *s)
if(ms_regexec(&re, s, 0, NULL, 0) != 0) { /* no match */
ms_regfree(&re);
- msSetError(MS_REGEXERR, "String failed expression test.", "msEvalRegex()");
return(MS_FALSE);
}
ms_regfree(&re);
@@ -137,10 +137,9 @@ void msFree(void *p)
void msFreeCharArray(char **array, int num_items)
{
int i;
-
+ if(!array) return;
for(i=0; i<num_items; i++)
msFree(array[i]);
-
msFree(array);
}
@@ -354,7 +353,7 @@ int msGetSymbolIndex(symbolSetObj *symbols, char *name, int try_addimage_if_notf
/*
** Return the index number for a given layer based on its name.
*/
-int msGetLayerIndex(mapObj *map, char *name)
+int msGetLayerIndex(mapObj *map, const char *name)
{
int i;
@@ -369,7 +368,8 @@ int msGetLayerIndex(mapObj *map, char *name)
return(-1);
}
-int msGetClassIndex(layerObj *layer, char *name)
+static
+int msGetClassIndex(layerObj *layer, const char *name)
{
int i;
@@ -531,6 +531,12 @@ static void writeDimension(FILE *stream, int indent, const char *name, int x, in
else msIO_fprintf(stream, "%d\n", y);
}
+static void writeDoubleRange(FILE *stream, int indent, const char *name, double x, double y)
+{
+ writeIndent(stream, ++indent);
+ msIO_fprintf(stream, "%s %f %f\n", name, x, y);
+}
+
static void writeExtent(FILE *stream, int indent, const char *name, rectObj extent)
{
if(!MS_VALID_EXTENT(extent)) return;
@@ -552,32 +558,38 @@ static void writeCharacter(FILE *stream, int indent, const char *name, const cha
msIO_fprintf(stream, "%s '%c'\n", name, character);
}
-static void writeString(FILE *stream, int indent, const char *name, const char *defaultString, char *string)
+static void writeStringElement(FILE *stream, char *string)
{
- char *string_escaped;
+ char *string_escaped;
+
+ if(strchr(string,'\\')) {
+ string_escaped = msStrdup(string);
+ string_escaped = msReplaceSubstring(string_escaped,"\\","\\\\");
+ } else {
+ string_escaped = string;
+ }
+ if ( (strchr(string_escaped, '\'') == NULL) && (strchr(string_escaped, '\"') == NULL))
+ msIO_fprintf(stream, "\"%s\"", string_escaped);
+ else if ( (strchr(string_escaped, '\"') != NULL) && (strchr(string_escaped, '\'') == NULL))
+ msIO_fprintf(stream, "'%s'", string_escaped);
+ else if ( (strchr(string_escaped, '\'') != NULL) && (strchr(string_escaped, '\"') == NULL))
+ msIO_fprintf(stream, "\"%s\"", string_escaped);
+ else {
+ char *string_tmp = msStringEscape(string_escaped);
+ msIO_fprintf(stream, "\"%s\"", string_tmp);
+ if(string_escaped!=string_tmp) free(string_tmp);
+ }
+ if(string_escaped!=string) free(string_escaped);
+}
+static void writeString(FILE *stream, int indent, const char *name, const char *defaultString, char *string)
+{
if(!string) return;
if(defaultString && strcmp(string, defaultString) == 0) return;
writeIndent(stream, ++indent);
if(name) msIO_fprintf(stream, "%s ", name);
- if(strchr(string,'\\')) {
- string_escaped = msStrdup(string);
- string_escaped = msReplaceSubstring(string_escaped,"\\","\\\\");
- } else {
- string_escaped = string;
- }
- if ( (strchr(string_escaped, '\'') == NULL) && (strchr(string_escaped, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\n", string_escaped);
- else if ( (strchr(string_escaped, '\"') != NULL) && (strchr(string_escaped, '\'') == NULL))
- msIO_fprintf(stream, "'%s'\n", string_escaped);
- else if ( (strchr(string_escaped, '\'') != NULL) && (strchr(string_escaped, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\n", string_escaped);
- else {
- char *string_tmp = msStringEscape(string_escaped);
- msIO_fprintf(stream, "\"%s\"\n", string_tmp);
- if(string_escaped!=string_tmp) free(string_tmp);
- }
- if(string_escaped!=string) free(string_escaped);
+ writeStringElement(stream, string);
+ writeLineFeed(stream);
}
static void writeNumberOrString(FILE *stream, int indent, const char *name, double defaultNumber, double number, char *string)
@@ -613,33 +625,13 @@ static void writeNumberOrKeyword(FILE *stream, int indent, const char *name, dou
static void writeNameValuePair(FILE *stream, int indent, const char *name, const char *value)
{
- char *string_tmp;
if(!name || !value) return;
writeIndent(stream, ++indent);
- if ( (strchr(name, '\'') == NULL) && (strchr(name, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\t", name);
- else if ( (strchr(name, '\"') != NULL) && (strchr(name, '\'') == NULL))
- msIO_fprintf(stream, "'%s'\t", name);
- else if ( (strchr(name, '\'') != NULL) && (strchr(name, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\t", name);
- else {
- string_tmp = msStringEscape(name);
- msIO_fprintf(stream, "\"%s\"\t", string_tmp);
- if(name!=string_tmp) free(string_tmp);
- }
-
- if ( (strchr(value, '\'') == NULL) && (strchr(value, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\n", value);
- else if ( (strchr(value, '\"') != NULL) && (strchr(value, '\'') == NULL))
- msIO_fprintf(stream, "'%s'\n", value);
- else if ( (strchr(value, '\'') != NULL) && (strchr(value, '\"') == NULL))
- msIO_fprintf(stream, "\"%s\"\n", value);
- else {
- string_tmp = msStringEscape(value);
- msIO_fprintf(stream, "\"%s\"\n", string_tmp);
- if(value!=string_tmp) free(string_tmp);
- }
+ writeStringElement(stream, (char*)name);
+ msIO_fprintf(stream,"\t");
+ writeStringElement(stream, (char*)value);
+ writeLineFeed(stream);
}
static void writeAttributeBinding(FILE *stream, int indent, const char *name, attributeBindingObj *binding)
@@ -824,11 +816,13 @@ featureListNodeObjPtr insertFeatureList(featureListNodeObjPtr *list, shapeObj *s
{
featureListNodeObjPtr node;
- node = (featureListNodeObjPtr) malloc(sizeof(featureListNodeObj));
- MS_CHECK_ALLOC(node, sizeof(featureListNodeObj), NULL);
+ node = (featureListNodeObjPtr) msSmallMalloc(sizeof(featureListNodeObj));
msInitShape(&(node->shape));
- if(msCopyShape(shape, &(node->shape)) == -1) return(NULL);
+ if(msCopyShape(shape, &(node->shape)) == -1) {
+ msFree(node);
+ return(NULL);
+ }
/* AJS - alans at wunderground.com O(n^2) -> O(n) conversion, keep a pointer to the end */
@@ -903,7 +897,6 @@ static int loadFeature(layerObj *player, int type)
{
int status=MS_SUCCESS;
featureListNodeObjPtr *list = &(player->features);
- featureListNodeObjPtr node;
multipointObj points= {0,NULL};
shapeObj *shape=NULL;
@@ -917,13 +910,15 @@ static int loadFeature(layerObj *player, int type)
switch(msyylex()) {
case(EOF):
msSetError(MS_EOFERR, NULL, "loadFeature()");
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
return(MS_FAILURE);
case(END):
if(player->features != NULL && player->features->tailifhead != NULL)
shape->index = player->features->tailifhead->shape.index + 1;
else
shape->index = 0;
- if((node = insertFeatureList(list, shape)) == NULL)
+ if(insertFeatureList(list, shape) == NULL)
status = MS_FAILURE;
msFreeShape(shape); /* clean up */
@@ -933,17 +928,29 @@ static int loadFeature(layerObj *player, int type)
case(FEATURE):
break; /* for string loads */
case(POINTS):
- if(loadFeaturePoints(&points) == MS_FAILURE) return(MS_FAILURE); /* no clean up necessary, just return */
+ if(loadFeaturePoints(&points) == MS_FAILURE) {
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
+ return(MS_FAILURE);
+ }
status = msAddLine(shape, &points);
msFree(points.point); /* clean up */
points.numpoints = 0;
- if(status == MS_FAILURE) return(MS_FAILURE);
+ if(status == MS_FAILURE) {
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
+ return(MS_FAILURE);
+ }
break;
case(ITEMS): {
char *string=NULL;
- if(getString(&string) == MS_FAILURE) return(MS_FAILURE);
+ if(getString(&string) == MS_FAILURE) {
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
+ return(MS_FAILURE);
+ }
if (string) {
if(shape->values) msFreeCharArray(shape->values, shape->numvalues);
shape->values = msStringSplit(string, ';', &shape->numvalues);
@@ -952,26 +959,37 @@ static int loadFeature(layerObj *player, int type)
break;
}
case(TEXT):
- if(getString(&shape->text) == MS_FAILURE) return(MS_FAILURE);
+ if(getString(&shape->text) == MS_FAILURE) {
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
+ return(MS_FAILURE);
+ }
break;
case(WKT): {
char *string=NULL;
/* todo, what do we do with multiple WKT property occurances? */
- if(getString(&string) == MS_FAILURE) return(MS_FAILURE);
msFreeShape(shape);
msFree(shape);
+ if(getString(&string) == MS_FAILURE) return(MS_FAILURE);
+
if((shape = msShapeFromWKT(string)) == NULL)
status = MS_FAILURE;
msFree(string); /* clean up */
- if(status == MS_FAILURE) return(MS_FAILURE);
+ if(status == MS_FAILURE) {
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
+ return(MS_FAILURE);
+ }
break;
}
default:
msSetError(MS_IDENTERR, "Parsing error near (%s):(line %d)", "loadfeature()", msyystring_buffer, msyylineno);
+ msFreeShape(shape); /* clean up */
+ msFree(shape);
return(MS_FAILURE);
}
} /* next token */
@@ -1016,6 +1034,13 @@ void initGrid( graticuleObj *pGraticule )
memset( pGraticule, 0, sizeof( graticuleObj ) );
}
+void freeGrid( graticuleObj *pGraticule )
+{
+ msFree(pGraticule->labelformat);
+ msFree(pGraticule->pboundingpoints);
+ msFree(pGraticule->pboundinglines);
+}
+
static int loadGrid( layerObj *pLayer )
{
for(;;) {
@@ -1028,35 +1053,35 @@ static int loadGrid( layerObj *pLayer )
case(GRID):
break; /* for string loads */
case( LABELFORMAT ):
- if(getString(&((graticuleObj *)pLayer->layerinfo)->labelformat) == MS_FAILURE) {
+ if(getString(&(pLayer->grid->labelformat)) == MS_FAILURE) {
if(strcasecmp(msyystring_buffer, "DD") == 0) /* DD triggers a symbol to be returned instead of a string so check for this special case */
- ((graticuleObj *)pLayer->layerinfo)->labelformat = msStrdup("DD");
+ pLayer->grid->labelformat = msStrdup("DD");
else
return(-1);
}
break;
case( MINARCS ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->minarcs) == -1)
+ if(getDouble(&(pLayer->grid->minarcs)) == -1)
return(-1);
break;
case( MAXARCS ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->maxarcs) == -1)
+ if(getDouble(&(pLayer->grid->maxarcs)) == -1)
return(-1);
break;
case( MININTERVAL ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->minincrement) == -1)
+ if(getDouble(&(pLayer->grid->minincrement)) == -1)
return(-1);
break;
case( MAXINTERVAL ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->maxincrement) == -1)
+ if(getDouble(&(pLayer->grid->maxincrement)) == -1)
return(-1);
break;
case( MINSUBDIVIDE ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->minsubdivides) == -1)
+ if(getDouble(&(pLayer->grid->minsubdivides)) == -1)
return(-1);
break;
case( MAXSUBDIVIDE ):
- if(getDouble(&((graticuleObj *)pLayer->layerinfo)->maxsubdivides) == -1)
+ if(getDouble(&(pLayer->grid->maxsubdivides)) == -1)
return(-1);
break;
default:
@@ -1374,16 +1399,102 @@ static int loadProjection(projectionObj *p)
/************************************************************************/
+/* msLoadProjectionStringEPSGLike */
+/************************************************************************/
+
+static int msLoadProjectionStringEPSGLike(projectionObj *p, const char *value,
+ const char* pszPrefix,
+ int bFollowEPSGAxisOrder)
+{
+ size_t buffer_size = 0;
+ char *init_string = NULL;
+ const char *code;
+ const char *next_sep;
+ size_t prefix_len;
+
+ prefix_len = strlen(pszPrefix);
+ if( strncasecmp(value, pszPrefix, prefix_len) != 0 )
+ return -1;
+
+ code = value + prefix_len;
+ next_sep = strchr(code, pszPrefix[prefix_len-1]);
+ if( next_sep != NULL )
+ code = next_sep + 1;
+
+ buffer_size = 10 + strlen(code) + 1;
+ init_string = (char*)msSmallMalloc(buffer_size);
+
+ /* translate into PROJ.4 format. */
+ snprintf( init_string, buffer_size, "init=epsg:%s", code );
+
+ p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
+ p->args[0] = init_string;
+ p->numargs = 1;
+
+ if( bFollowEPSGAxisOrder && msIsAxisInverted(atoi(code))) {
+ p->args[1] = msStrdup("+epsgaxis=ne");
+ p->numargs = 2;
+ }
+
+ return 0;
+}
+
+/************************************************************************/
+/* msLoadProjectionStringCRSLike */
+/************************************************************************/
+
+static int msLoadProjectionStringCRSLike(projectionObj *p, const char *value,
+ const char* pszPrefix)
+{
+ char init_string[100];
+ const char *id;
+ const char *next_sep;
+ size_t prefix_len;
+
+ prefix_len = strlen(pszPrefix);
+ if( strncasecmp(value, pszPrefix, prefix_len) != 0 )
+ return -1;
+
+ id = value + prefix_len;
+ next_sep = strchr(id, pszPrefix[prefix_len-1]);
+ if( next_sep != NULL )
+ id = next_sep + 1;
+
+ init_string[0] = '\0';
+
+ if( strcasecmp(id,"84") == 0 || strcasecmp(id,"CRS84") == 0 )
+ strncpy( init_string, "init=epsg:4326", sizeof(init_string) );
+ else if( strcasecmp(id,"83") == 0 || strcasecmp(id,"CRS83") == 0 )
+ strncpy( init_string, "init=epsg:4269", sizeof(init_string) );
+ else if( strcasecmp(id,"27") == 0 || strcasecmp(id,"CRS27") == 0 )
+ strncpy( init_string, "init=epsg:4267", sizeof(init_string) );
+ else {
+ msSetError( MS_PROJERR,
+ "Unrecognised OGC CRS def '%s'.",
+ "msLoadProjectionString()",
+ value );
+ return -1;
+ }
+
+ p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
+ p->args[0] = msStrdup(init_string);
+ p->numargs = 1;
+
+ return 0;
+}
+
+/************************************************************************/
/* msLoadProjectionStringEPSG */
/* */
-/* Checks fro EPSG type projection and set the axes for a */
+/* Checks for EPSG type projection and set the axes for a */
/* certain code ranges. */
-/* Use for now in WMS 1.3.0 */
+/* Use for now in WMS 1.3.0 and WFS >= 1.1.0 */
/************************************************************************/
int msLoadProjectionStringEPSG(projectionObj *p, const char *value)
{
#ifdef USE_PROJ
- if(p) msFreeProjection(p);
+ assert(p);
+ msFreeProjection(p);
p->gt.need_geotransform = MS_FALSE;
#ifdef USE_PROJ_FASTPATHS
@@ -1396,24 +1507,8 @@ int msLoadProjectionStringEPSG(projectionObj *p, const char *value)
}
#endif
-
- if (strncasecmp(value, "EPSG:", 5) == 0) {
- size_t buffer_size = 10 + strlen(value+5) + 1;
- char *init_string = (char*)msSmallMalloc(buffer_size);
-
- /* translate into PROJ.4 format. */
- snprintf(init_string, buffer_size, "init=epsg:%s", value+5 );
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = init_string;
- p->numargs = 1;
-
-
- if( msIsAxisInverted(atoi(value+5))) {
- p->args[1] = msStrdup("+epsgaxis=ne");
- p->numargs = 2;
- }
-
+ if( msLoadProjectionStringEPSGLike(p, value, "EPSG:", MS_TRUE) == 0 )
+ {
return msProcessProjection( p );
}
@@ -1426,13 +1521,13 @@ int msLoadProjectionStringEPSG(projectionObj *p, const char *value)
#endif
}
-
int msLoadProjectionString(projectionObj *p, const char *value)
{
+ assert(p);
p->gt.need_geotransform = MS_FALSE;
#ifdef USE_PROJ
- if(p) msFreeProjection(p);
+ msFreeProjection(p);
/*
@@ -1463,194 +1558,23 @@ int msLoadProjectionString(projectionObj *p, const char *value)
p->args = (char**)msSmallMalloc(sizeof(char*));
p->args[0] = msStrdup(value);
p->numargs = 1;
- } else if (strncasecmp(value, "EPSG:", 5) == 0) {
- size_t buffer_size = 10 + strlen(value+5) + 1;
- char *init_string = (char*)msSmallMalloc(buffer_size);
-
- /* translate into PROJ.4 format. */
- snprintf( init_string, buffer_size, "init=epsg:%s", value+5);
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = init_string;
- p->numargs = 1;
- } else if (strncasecmp(value, "urn:ogc:def:crs:EPSG:",21) == 0) {
- /* this is very preliminary urn support ... expand later */
- size_t buffer_size = 0;
- char *init_string = NULL;
- const char *code;
-
- code = value + 21;
-
- while( *code != ':' && *code != '\0' )
- code++;
- if( *code == ':' )
- code++;
-
- buffer_size = 10 + strlen(code) + 1;
- init_string = (char*)msSmallMalloc(buffer_size);
-
- /* translate into PROJ.4 format. */
- snprintf( init_string, buffer_size, "init=epsg:%s", code );
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = init_string;
- p->numargs = 1;
-
- if( msIsAxisInverted(atoi(code))) {
- p->args[1] = msStrdup("+epsgaxis=ne");
- p->numargs = 2;
- }
- } else if (strncasecmp(value, "urn:x-ogc:def:crs:EPSG:",23) == 0) {
+ } else if (msLoadProjectionStringEPSGLike(p, value, "EPSG:", MS_FALSE) == 0 ) {
+ /* Assume lon/lat ordering. Use msLoadProjectionStringEPSG() if wanting to follow EPSG axis */
+ } else if (msLoadProjectionStringEPSGLike(p, value, "urn:ogc:def:crs:EPSG:", MS_TRUE) == 0 ) {
+ } else if (msLoadProjectionStringEPSGLike(p, value, "urn:EPSG:geographicCRS:", MS_TRUE) == 0 ) {
+ } else if (msLoadProjectionStringEPSGLike(p, value, "urn:x-ogc:def:crs:EPSG:", MS_TRUE) == 0 ) {
/*this case is to account for OGC CITE tests where x-ogc was used
before the ogc name became an official NID. Note also we also account
for the fact that a space for the version of the espg is not used with CITE tests.
(Syntax used could be urn:ogc:def:objectType:authority:code)*/
-
- size_t buffer_size = 0;
- char *init_string = NULL;
- const char *code;
-
- if (value[23] == ':')
- code = value + 23;
- else
- code = value + 22;
-
- while( *code != ':' && *code != '\0' )
- code++;
- if( *code == ':' )
- code++;
-
- buffer_size = 10 + strlen(code) + 1;
- init_string = (char*)msSmallMalloc(buffer_size);
-
- /* translate into PROJ.4 format. */
- snprintf( init_string, buffer_size, "init=epsg:%s", code );
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = init_string;
- p->numargs = 1;
-
- if( msIsAxisInverted(atoi(code))) {
- p->args[1] = msStrdup("+epsgaxis=ne");
- p->numargs = 2;
- }
-
- } else if (strncasecmp(value, "urn:ogc:def:crs:OGC:",20) == 0 ) {
- /* this is very preliminary urn support ... expand later */
- char init_string[100];
- const char *id;
-
- id = value + 20;
- while( *id != ':' && *id == '\0' )
- id++;
-
- if( *id == ':' )
- id++;
-
- init_string[0] = '\0';
-
- if( strcasecmp(id,"CRS84") == 0 )
- strncpy( init_string, "init=epsg:4326", sizeof(init_string) );
- else if( strcasecmp(id,"CRS83") == 0 )
- strncpy( init_string, "init=epsg:4269", sizeof(init_string) );
- else if( strcasecmp(id,"CRS27") == 0 )
- strncpy( init_string, "init=epsg:4267", sizeof(init_string) );
- else {
- msSetError( MS_PROJERR,
- "Unrecognised OGC CRS def '%s'.",
- "msLoadProjectionString()",
- value );
- return -1;
- }
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = msStrdup(init_string);
- p->numargs = 1;
- }
- /* URI projection support */
- else if (EQUALN("http://www.opengis.net/def/crs/EPSG/", value, 36)) {
- /* this is very preliminary urn support ... expand later */
- char init_string[100];
- const char *code;
-
- code = value + 36;
- while( *code != '/' && *code != '\0' )
- code++;
- if( *code == '/' )
- code++;
-
- /* translate into PROJ.4 format. */
- snprintf( init_string, sizeof(init_string), "init=epsg:%s", code );
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = msStrdup(init_string);
- p->numargs = 1;
-
- if( msIsAxisInverted(atoi(code))) {
- p->args[1] = msStrdup("+epsgaxis=ne");
- p->numargs = 2;
- }
- } else if (EQUALN("http://www.opengis.net/def/crs/OGC/", value, 35) ) {
- char init_string[100];
- const char *id;
-
- id = value + 35;
- while( *id != '/' && *id == '\0' )
- id++;
- if( *id == '/' )
- id++;
-
- init_string[0] = '\0';
-
- if( strcasecmp(id,"CRS84") == 0 )
- strncpy( init_string, "init=epsg:4326", sizeof(init_string) );
- else if( strcasecmp(id,"CRS83") == 0 )
- strncpy( init_string, "init=epsg:4269", sizeof(init_string) );
- else if( strcasecmp(id,"CRS27") == 0 )
- strncpy( init_string, "init=epsg:4267", sizeof(init_string) );
- else {
- msSetError( MS_PROJERR,
- "Unrecognised OGC CRS def '%s'.",
- "msLoadProjectionString()",
- value );
- return -1;
- }
-
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = msStrdup(init_string);
- p->numargs = 1;
- /* Mandatory support for this URI format specified in WFS1.1 (also in 1.0?) */
- } else if (EQUALN("http://www.opengis.net/gml/srs/epsg.xml#", value, 40)) {
- /* We assume always lon/lat ordering, as that is what GeoServer does... */
- const char *code;
-
- code = value + 40;
-
- p->args = (char **) msSmallMalloc(sizeof(char *));
- /* translate into PROJ.4 format as we go */
- p->args[0] = (char *) msSmallMalloc(11 + strlen(code));
- snprintf(p->args[0], 11 + strlen(code), "init=epsg:%s", code);
- p->numargs = 1;
-
- } else if (strncasecmp(value, "CRS:",4) == 0 ) {
- char init_string[100];
- init_string[0] = '\0';
- if (atoi(value+4) == 84)
- strncpy( init_string, "init=epsg:4326", sizeof(init_string) );
- else if (atoi(value+4) == 83)
- strncpy( init_string, "init=epsg:4269", sizeof(init_string) );
- else if (atoi(value+4) == 27)
- strncpy( init_string, "init=epsg:4267", sizeof(init_string) );
- else {
- msSetError( MS_PROJERR,
- "Unrecognised OGC CRS def '%s'.",
- "msLoadProjectionString()",
- value );
- return -1;
- }
- p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
- p->args[0] = msStrdup(init_string);
- p->numargs = 1;
+ } else if (msLoadProjectionStringCRSLike(p, value, "urn:ogc:def:crs:OGC:") == 0 ) {
+ } else if (msLoadProjectionStringEPSGLike(p, value, "http://www.opengis.net/def/crs/EPSG/", MS_TRUE) == 0 ) {
+ /* URI projection support */
+ } else if (msLoadProjectionStringCRSLike(p, value, "http://www.opengis.net/def/crs/OGC/") == 0 ) {
+ /* Mandatory support for this URI format specified in WFS1.1 (also in 1.0?) */
+ } else if (msLoadProjectionStringEPSGLike(p, value, "http://www.opengis.net/gml/srs/epsg.xml#", MS_FALSE) == 0 ) {
+ /* We assume always lon/lat ordering, as that is what GeoServer does... */
+ } else if (msLoadProjectionStringCRSLike(p, value, "CRS:") == 0 ) {
}
/*
* Handle old style comma delimited. eg. "proj=utm,zone=11,ellps=WGS84".
@@ -1702,8 +1626,7 @@ void initLabel(labelObj *label)
MS_REFCNT_INIT(label);
- label->antialias = -1; /* off */
- label->align = MS_ALIGN_LEFT;
+ label->align = MS_ALIGN_DEFAULT;
MS_INIT_COLOR(label->color, 0,0,0,255);
MS_INIT_COLOR(label->outlinecolor, -1,-1,-1,255); /* don't use it */
label->outlinewidth=1;
@@ -1712,7 +1635,6 @@ void initLabel(labelObj *label)
label->shadowsizex = label->shadowsizey = 1;
label->font = NULL;
- label->type = MS_BITMAP;
label->size = MS_MEDIUM;
label->position = MS_CC;
@@ -1752,19 +1674,15 @@ void initLabel(labelObj *label)
label->bindings[i].index = -1;
}
- label->status = MS_ON;
- initExpression(&(label->expression));
- initExpression(&(label->text));
-
- label->annotext = NULL;
- label->annopoly = NULL;
+ msInitExpression(&(label->expression));
+ msInitExpression(&(label->text));
- initLeader(&(label->leader));
+ label->leader = NULL;
return;
}
-static int freeLabelLeader(labelLeaderObj *leader)
+int freeLabelLeader(labelLeaderObj *leader)
{
int i;
for(i=0; i<leader->numstyles; i++) {
@@ -1797,18 +1715,15 @@ int freeLabel(labelObj *label)
for(i=0; i<MS_LABEL_BINDING_LENGTH; i++)
msFree(label->bindings[i].item);
- freeExpression(&(label->expression));
- freeExpression(&(label->text));
+ msFreeExpression(&(label->expression));
+ msFreeExpression(&(label->text));
- /* free book keeping vars associated with the label cache */
- msFree(label->annotext);
- if(label->annopoly) {
- msFreeShape(label->annopoly);
- msFree(label->annopoly);
+ if(label->leader) {
+ freeLabelLeader(label->leader);
+ msFree(label->leader);
+ label->leader = NULL;
}
- freeLabelLeader(&(label->leader));
-
return MS_SUCCESS;
}
@@ -1863,19 +1778,15 @@ static int loadLabel(labelObj *label)
msFree(label->bindings[MS_LABEL_BINDING_ANGLE].item);
label->bindings[MS_LABEL_BINDING_ANGLE].item = msStrdup(msyystring_buffer);
label->numbindings++;
- } else if ( symbol == MS_FOLLOW ) {
- label->anglemode = MS_FOLLOW;
- } else if ( symbol == MS_AUTO2 ) {
- label->anglemode = MS_AUTO2;
- } else
- label->anglemode = MS_AUTO;
+ } else {
+ label->anglemode = symbol;
+ }
break;
case(ALIGN):
if((label->align = getSymbol(3, MS_ALIGN_LEFT,MS_ALIGN_CENTER,MS_ALIGN_RIGHT)) == -1) return(-1);
break;
- case(ANTIALIAS):
- if((label->antialias = getSymbol(2, MS_TRUE,MS_FALSE)) == -1)
- return(-1);
+ case(ANTIALIAS): /*ignore*/
+ msyylex();
break;
case(BUFFER):
if(getInteger(&(label->buffer)) == -1) return(-1);
@@ -1888,11 +1799,6 @@ static int loadLabel(labelObj *label)
if((getString(&label->encoding)) == MS_FAILURE) return(-1);
break;
case(END):
- /* sanity check */
- if(label->anglemode == MS_FOLLOW && label->type == MS_BITMAP) {
- msSetError(MS_MISCERR,"Follow labels not supported with bitmap fonts.", "loadLabel()");
- return -1;
- }
return(0);
break;
case(EOF):
@@ -1903,7 +1809,7 @@ static int loadLabel(labelObj *label)
if(loadExpression(&(label->expression)) == -1) return(-1); /* loadExpression() cleans up previously allocated expression */
if(msyysource == MS_URL_TOKENS) {
msSetError(MS_MISCERR, "URL-based EXPRESSION configuration not supported." , "loadLabel()");
- freeExpression(&(label->expression));
+ msFreeExpression(&(label->expression));
return(-1);
}
break;
@@ -1943,10 +1849,11 @@ static int loadLabel(labelObj *label)
case(LEADER):
msSetError(MS_MISCERR, "LABEL LEADER not implemented. LEADER goes at the CLASS level." , "loadLabel()");
return(-1);
- if(loadLeader(&(label->leader)) == -1) return(-1);
+ label->leader = msSmallMalloc(sizeof(labelLeaderObj));
+ if(loadLeader(label->leader) == -1) return(-1);
break;
case(MAXSIZE):
- if(getDouble(&(label->maxsize)) == -1) return(-1);
+ if(getInteger(&(label->maxsize)) == -1) return(-1);
break;
case(MAXSCALEDENOM):
if(getDouble(&(label->maxscaledenom)) == -1) return(-1);
@@ -1977,7 +1884,7 @@ static int loadLabel(labelObj *label)
if(getDouble(&(label->minscaledenom)) == -1) return(-1);
break;
case(MINSIZE):
- if(getDouble(&(label->minsize)) == -1) return(-1);
+ if(getInteger(&(label->minsize)) == -1) return(-1);
break;
case(OFFSET):
if(getInteger(&(label->offsetx)) == -1) return(-1);
@@ -2075,7 +1982,7 @@ static int loadLabel(labelObj *label)
if(loadExpression(&(label->text)) == -1) return(-1); /* loadExpression() cleans up previously allocated expression */
if(msyysource == MS_URL_TOKENS) {
msSetError(MS_MISCERR, "URL-based TEXT configuration not supported for labels." , "loadLabel()");
- freeExpression(&(label->text));
+ msFreeExpression(&(label->text));
return(-1);
}
if((label->text.type != MS_STRING) && (label->text.type != MS_EXPRESSION)) {
@@ -2084,7 +1991,7 @@ static int loadLabel(labelObj *label)
}
break;
case(TYPE):
- if((label->type = getSymbol(2, MS_TRUETYPE,MS_BITMAP)) == -1) return(-1);
+ if(getSymbol(2, MS_TRUETYPE,MS_BITMAP) == -1) return(-1); /* ignore TYPE */
break;
case(WRAP):
if(getCharacter(&(label->wrap)) == -1) return(-1);
@@ -2152,33 +2059,24 @@ static void writeLabel(FILE *stream, int indent, labelObj *label)
indent++;
writeBlockBegin(stream, indent, "LABEL");
- /*
- ** a few attributes are bitmap or truetype only
- */
- if(label->type == MS_BITMAP) {
- writeKeyword(stream, indent, "SIZE", (int)label->size, 5, MS_TINY, "TINY", MS_SMALL, "SMALL", MS_MEDIUM, "MEDIUM", MS_LARGE, "LARGE", MS_GIANT, "GIANT");
- } else {
- if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_ANGLE].item)
- writeAttributeBinding(stream, indent, "ANGLE", &(label->bindings[MS_LABEL_BINDING_ANGLE]));
- else writeNumberOrKeyword(stream, indent, "ANGLE", 0, label->angle, label->anglemode, 3, MS_FOLLOW, "FOLLOW", MS_AUTO, "AUTO", MS_AUTO2, "AUTO2");
-
- writeKeyword(stream, indent, "ANTIALIAS", label->antialias, 1, MS_TRUE, "TRUE");
+ if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_ANGLE].item)
+ writeAttributeBinding(stream, indent, "ANGLE", &(label->bindings[MS_LABEL_BINDING_ANGLE]));
+ else writeNumberOrKeyword(stream, indent, "ANGLE", 0, label->angle, label->anglemode, 3, MS_FOLLOW, "FOLLOW", MS_AUTO, "AUTO", MS_AUTO2, "AUTO2");
- writeExpression(stream, indent, "EXPRESSION", &(label->expression));
+ writeExpression(stream, indent, "EXPRESSION", &(label->expression));
- if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_FONT].item)
- writeAttributeBinding(stream, indent, "FONT", &(label->bindings[MS_LABEL_BINDING_FONT]));
- else writeString(stream, indent, "FONT", NULL, label->font);
+ if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_FONT].item)
+ writeAttributeBinding(stream, indent, "FONT", &(label->bindings[MS_LABEL_BINDING_FONT]));
+ else writeString(stream, indent, "FONT", NULL, label->font);
- writeNumber(stream, indent, "MAXSIZE", MS_MAXFONTSIZE, label->maxsize);
- writeNumber(stream, indent, "MINSIZE", MS_MINFONTSIZE, label->minsize);
+ writeNumber(stream, indent, "MAXSIZE", MS_MAXFONTSIZE, label->maxsize);
+ writeNumber(stream, indent, "MINSIZE", MS_MINFONTSIZE, label->minsize);
- if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_SIZE].item)
- writeAttributeBinding(stream, indent, "SIZE", &(label->bindings[MS_LABEL_BINDING_SIZE]));
- else writeNumber(stream, indent, "SIZE", -1, label->size);
- }
+ if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_SIZE].item)
+ writeAttributeBinding(stream, indent, "SIZE", &(label->bindings[MS_LABEL_BINDING_SIZE]));
+ else writeNumber(stream, indent, "SIZE", -1, label->size);
- writeKeyword(stream, indent, "ALIGN", label->align, 2, MS_ALIGN_CENTER, "CENTER", MS_ALIGN_RIGHT, "RIGHT");
+ writeKeyword(stream, indent, "ALIGN", label->align, 3, MS_ALIGN_LEFT, "LEFT", MS_ALIGN_CENTER, "CENTER", MS_ALIGN_RIGHT, "RIGHT");
writeNumber(stream, indent, "BUFFER", 0, label->buffer);
if(label->numbindings > 0 && label->bindings[MS_LABEL_BINDING_COLOR].item)
@@ -2189,7 +2087,8 @@ static void writeLabel(FILE *stream, int indent, labelObj *label)
}
writeString(stream, indent, "ENCODING", NULL, label->encoding);
- writeLeader(stream,indent,&(label->leader));
+ if(label->leader)
+ writeLeader(stream,indent,label->leader);
writeKeyword(stream, indent, "FORCE", label->force, 2, MS_TRUE, "TRUE", MS_LABEL_FORCE_GROUP, "GROUP");
writeNumber(stream, indent, "MAXLENGTH", 0, label->maxlength);
writeNumber(stream, indent, "MAXSCALEDENOM", -1, label->maxscaledenom);
@@ -2224,7 +2123,6 @@ static void writeLabel(FILE *stream, int indent, labelObj *label)
writeExpression(stream, indent, "TEXT", &(label->text));
- writeKeyword(stream, indent, "TYPE", label->type, 2, MS_BITMAP, "BITMAP", MS_TRUETYPE, "TRUETYPE");
writeCharacter(stream, indent, "WRAP", '\0', label->wrap);
writeBlockEnd(stream, indent, "LABEL");
}
@@ -2252,16 +2150,17 @@ char* msWriteLabelToString(labelObj *label)
return (char*)buffer.data;
}
-void initExpression(expressionObj *exp)
+void msInitExpression(expressionObj *exp)
{
exp->type = MS_STRING;
exp->string = NULL;
+ exp->native_string = NULL;
exp->compiled = MS_FALSE;
exp->flags = 0;
exp->tokens = exp->curtoken = NULL;
}
-void freeExpressionTokens(expressionObj *exp)
+void msFreeExpressionTokens(expressionObj *exp)
{
tokenListNodeObjPtr node = NULL;
tokenListNodeObjPtr nextNode = NULL;
@@ -2273,6 +2172,8 @@ void freeExpressionTokens(expressionObj *exp)
while (node != NULL) {
nextNode = node->next;
+ msFree(node->tokensrc); /* not set very often */
+
switch(node->token) {
case MS_TOKEN_BINDING_DOUBLE:
case MS_TOKEN_BINDING_INTEGER:
@@ -2299,23 +2200,26 @@ void freeExpressionTokens(expressionObj *exp)
}
}
-void freeExpression(expressionObj *exp)
+void msFreeExpression(expressionObj *exp)
{
if(!exp) return;
msFree(exp->string);
+ msFree(exp->native_string);
if((exp->type == MS_REGEX) && exp->compiled) ms_regfree(&(exp->regex));
- freeExpressionTokens(exp);
- initExpression(exp); /* re-initialize */
+ msFreeExpressionTokens(exp);
+ msInitExpression(exp); /* re-initialize */
}
int loadExpression(expressionObj *exp)
{
- /* TODO: should we fall freeExpression if exp->string != NULL? We do some checking to avoid a leak but is it enough... */
+ /* TODO: should we fall msFreeExpression if exp->string != NULL? We do some checking to avoid a leak but is it enough... */
msyystring_icase = MS_TRUE;
if((exp->type = getSymbol(6, MS_STRING,MS_EXPRESSION,MS_REGEX,MS_ISTRING,MS_IREGEX,MS_LIST)) == -1) return(-1);
- if (exp->string != NULL)
+ if (exp->string != NULL) {
msFree(exp->string);
+ msFree(exp->native_string);
+ }
exp->string = msStrdup(msyystring_buffer);
if(exp->type == MS_ISTRING) {
@@ -2358,7 +2262,7 @@ int loadExpressionString(expressionObj *exp, char *value)
msyystring = value;
msyylex(); /* sets things up but processes no tokens */
- freeExpression(exp); /* we're totally replacing the old expression so free (which re-inits) to start over */
+ msFreeExpression(exp); /* we're totally replacing the old expression so free (which re-inits) to start over */
msyystring_icase = MS_TRUE;
if((exp->type = getSymbol2(5, MS_EXPRESSION,MS_REGEX,MS_IREGEX,MS_ISTRING,MS_LIST)) != -1) {
@@ -2428,7 +2332,6 @@ char *msGetExpressionString(expressionObj *exp)
static void writeExpression(FILE *stream, int indent, const char *name, expressionObj *exp)
{
- char *string_tmp;
if(!exp || !exp->string) return;
writeIndent(stream, ++indent);
@@ -2440,17 +2343,8 @@ static void writeExpression(FILE *stream, int indent, const char *name, expressi
msIO_fprintf(stream, "%s /%s/", name, exp->string);
break;
case(MS_STRING):
- if ( (strchr(exp->string, '\'') == NULL) && (strchr(exp->string, '\"') == NULL))
- msIO_fprintf(stream, "%s \"%s\"", name, exp->string);
- else if ( (strchr(exp->string, '\"') != NULL) && (strchr(exp->string, '\'') == NULL))
- msIO_fprintf(stream, "%s \'%s\'", name, exp->string);
- else if ( (strchr(exp->string, '\'') != NULL) && (strchr(exp->string, '\"') == NULL))
- msIO_fprintf(stream, "%s \"%s\"", name, exp->string);
- else {
- string_tmp = msStringEscape(exp->string);
- msIO_fprintf(stream, "%s \"%s\"", name, string_tmp);
- if(exp->string!=string_tmp) free(string_tmp);
- }
+ msIO_fprintf(stream, "%s ", name);
+ writeStringElement(stream, exp->string);
break;
case(MS_EXPRESSION):
msIO_fprintf(stream, "%s (%s)", name, exp->string);
@@ -2464,8 +2358,7 @@ static void writeExpression(FILE *stream, int indent, const char *name, expressi
int loadHashTable(hashTableObj *ptable)
{
char *key=NULL, *data=NULL;
-
- if (!ptable) ptable = msCreateHashTable();
+ assert(ptable);
for(;;) {
switch(msyylex()) {
@@ -2524,7 +2417,11 @@ static void writeHashTableInline(FILE *stream, int indent, char *name, hashTable
if (table->items[i] != NULL) {
for (tp=table->items[i]; tp!=NULL; tp=tp->next) {
writeIndent(stream, indent);
- msIO_fprintf(stream, "%s \"%s\" \"%s\"\n", name, tp->key, tp->data);
+ msIO_fprintf(stream, "%s ", name);
+ writeStringElement(stream, tp->key);
+ msIO_fprintf(stream," ");
+ writeStringElement(stream, tp->data);
+ writeLineFeed(stream);
}
}
}
@@ -2538,15 +2435,15 @@ void initCluster(clusterObj *cluster)
cluster->maxdistance = 10;
cluster->buffer = 0;
cluster->region = NULL;
- initExpression(&(cluster->group));
- initExpression(&(cluster->filter));
+ msInitExpression(&(cluster->group));
+ msInitExpression(&(cluster->filter));
}
void freeCluster(clusterObj *cluster)
{
msFree(cluster->region);
- freeExpression(&(cluster->group));
- freeExpression(&(cluster->filter));
+ msFreeExpression(&(cluster->group));
+ msFreeExpression(&(cluster->filter));
}
int loadCluster(clusterObj *cluster)
@@ -2680,12 +2577,11 @@ int initStyle(styleObj *style)
style->minscaledenom=style->maxscaledenom = -1.0;
style->offsetx = style->offsety = 0; /* no offset */
style->polaroffsetpixel = style->polaroffsetangle = 0; /* no polar offset */
- style->antialias = MS_FALSE;
style->angle = 0;
style->autoangle= MS_FALSE;
style->opacity = 100; /* fully opaque */
- initExpression(&(style->_geomtransform));
+ msInitExpression(&(style->_geomtransform));
style->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
style->patternlength = 0; /* solid line */
@@ -2740,9 +2636,8 @@ int loadStyle(styleObj *style)
style->autoangle=MS_TRUE;
}
break;
- case(ANTIALIAS):
- if((style->antialias = getSymbol(2, MS_TRUE,MS_FALSE)) == -1)
- return(MS_FAILURE);
+ case(ANTIALIAS): /*ignore*/
+ msyylex();
break;
case(BACKGROUNDCOLOR):
if(loadColor(&(style->backgroundcolor), NULL) != MS_SUCCESS) return(MS_FAILURE);
@@ -3016,7 +2911,7 @@ int freeStyle(styleObj *style)
}
msFree(style->symbolname);
- freeExpression(&style->_geomtransform);
+ msFreeExpression(&style->_geomtransform);
msFree(style->rangeitem);
for(i=0; i<MS_STYLE_BINDING_LENGTH; i++)
@@ -3035,7 +2930,6 @@ void writeStyle(FILE *stream, int indent, styleObj *style)
writeAttributeBinding(stream, indent, "ANGLE", &(style->bindings[MS_STYLE_BINDING_ANGLE]));
else writeNumberOrKeyword(stream, indent, "ANGLE", 0, style->angle, style->autoangle, 1, MS_TRUE, "AUTO");
- writeKeyword(stream, indent, "ANTIALIAS", style->antialias, 1, MS_TRUE, "TRUE");
writeColor(stream, indent, "BACKGROUNDCOLOR", NULL, &(style->backgroundcolor));
if(style->numbindings > 0 && style->bindings[MS_STYLE_BINDING_COLOR].item)
@@ -3138,7 +3032,7 @@ void writeStyle(FILE *stream, int indent, styleObj *style)
if(style->rangeitem) {
writeString(stream, indent, "RANGEITEM", NULL, style->rangeitem);
writeColorRange(stream, indent, "COLORRANGE", &(style->mincolor), &(style->maxcolor));
- writeDimension(stream, indent, "DATARANGE", style->minvalue, style->maxvalue, NULL, NULL);
+ writeDoubleRange(stream, indent, "DATARANGE", style->minvalue, style->maxvalue);
}
writeBlockEnd(stream, indent, "STYLE");
@@ -3176,15 +3070,13 @@ int initClass(classObj *class)
class->debug = MS_OFF;
MS_REFCNT_INIT(class);
- initExpression(&(class->expression));
+ msInitExpression(&(class->expression));
class->name = NULL;
class->title = NULL;
- initExpression(&(class->text));
+ msInitExpression(&(class->text));
class->template = NULL;
- class->type = -1;
-
initHashTable(&(class->metadata));
initHashTable(&(class->validation));
@@ -3204,7 +3096,7 @@ int initClass(classObj *class)
class->group = NULL;
- initLeader(&(class->leader));
+ class->leader = NULL;
return(0);
}
@@ -3217,8 +3109,8 @@ int freeClass(classObj *class)
return MS_FAILURE;
}
- freeExpression(&(class->expression));
- freeExpression(&(class->text));
+ msFreeExpression(&(class->expression));
+ msFreeExpression(&(class->text));
msFree(class->name);
msFree(class->title);
msFree(class->template);
@@ -3246,7 +3138,12 @@ int freeClass(classObj *class)
msFree(class->labels);
msFree(class->keyimage);
- freeLabelLeader(&(class->leader));
+
+ if(class->leader) {
+ freeLabelLeader(class->leader);
+ msFree(class->leader);
+ class->leader = NULL;
+ }
return MS_SUCCESS;
}
@@ -3398,7 +3295,7 @@ void resetClassStyle(classObj *class)
/* reset labels */
for(i=0; i<class->numlabels; i++) {
- if(class->styles[i] != NULL) {
+ if(class->labels[i] != NULL) {
if(freeLabel(class->labels[i]) == MS_SUCCESS ) {
msFree(class->labels[i]);
}
@@ -3407,8 +3304,8 @@ void resetClassStyle(classObj *class)
}
class->numlabels = 0;
- freeExpression(&(class->text));
- initExpression(&(class->text));
+ msFreeExpression(&(class->text));
+ msInitExpression(&(class->text));
/* reset styles */
for(i=0; i<class->numstyles; i++) {
@@ -3421,7 +3318,6 @@ void resetClassStyle(classObj *class)
}
class->numstyles = 0;
- class->type = -1;
class->layer = NULL;
}
@@ -3482,7 +3378,7 @@ int loadClass(classObj *class, layerObj *layer)
if(msyysource == MS_URL_TOKENS) {
if(msValidateParameter(class->expression.string, msLookupHashTable(&(class->validation), "expression"), msLookupHashTable(&(layer->validation), "expression"), msLookupHashTable(&(map->web.validation), "expression"), NULL) != MS_SUCCESS) {
msSetError(MS_MISCERR, "URL-based EXPRESSION configuration failed pattern validation." , "loadClass()");
- freeExpression(&(class->expression));
+ msFreeExpression(&(class->expression));
return(-1);
}
}
@@ -3520,7 +3416,11 @@ int loadClass(classObj *class, layerObj *layer)
class->numlabels++;
break;
case(LEADER):
- if(loadLeader(&(class->leader)) == -1) return(-1);
+ if(!class->leader) {
+ class->leader = msSmallMalloc(sizeof(labelLeaderObj));
+ initLeader(class->leader);
+ }
+ if(loadLeader(class->leader) == -1) return(-1);
break;
case(MAXSCALE):
case(MAXSCALEDENOM):
@@ -3565,7 +3465,7 @@ int loadClass(classObj *class, layerObj *layer)
if(msyysource == MS_URL_TOKENS) {
if(msValidateParameter(class->text.string, msLookupHashTable(&(class->validation), "text"), msLookupHashTable(&(layer->validation), "text"), msLookupHashTable(&(map->web.validation), "text"), NULL) != MS_SUCCESS) {
msSetError(MS_MISCERR, "URL-based TEXT configuration failed pattern validation." , "loadClass()");
- freeExpression(&(class->text));
+ msFreeExpression(&(class->text));
return(-1);
}
}
@@ -3585,9 +3485,6 @@ int loadClass(classObj *class, layerObj *layer)
}
}
break;
- case(TYPE):
- if((class->type = getSymbol(6, MS_LAYER_POINT,MS_LAYER_LINE,MS_LAYER_RASTER,MS_LAYER_POLYGON,MS_LAYER_ANNOTATION,MS_LAYER_CIRCLE)) == -1) return(-1);
- break;
/*
** for backwards compatability, these are shortcuts for style 0
@@ -3759,7 +3656,8 @@ static void writeClass(FILE *stream, int indent, classObj *class)
writeExpression(stream, indent, "EXPRESSION", &(class->expression));
writeString(stream, indent, "KEYIMAGE", NULL, class->keyimage);
for(i=0; i<class->numlabels; i++) writeLabel(stream, indent, class->labels[i]);
- writeLeader(stream,indent,&(class->leader));
+ if(class->leader)
+ writeLeader(stream,indent,class->leader);
writeNumber(stream, indent, "MAXSCALEDENOM", -1, class->maxscaledenom);
writeHashTable(stream, indent, "METADATA", &(class->metadata));
writeNumber(stream, indent, "MINSCALEDENOM", -1, class->minscaledenom);
@@ -3796,6 +3694,18 @@ char* msWriteClassToString(classObj *class)
return (char*)buffer.data;
}
+int initCompositingFilter(CompositingFilter *filter) {
+ filter->filter = NULL;
+ return MS_SUCCESS;
+}
+
+int initLayerCompositer(LayerCompositer *compositer) {
+ compositer->comp_op = MS_COMPOP_SRC_OVER;
+ compositer->opacity = 100;
+ compositer->next = NULL;
+ compositer->filter = NULL;
+ return MS_SUCCESS;
+}
/*
** Initialize, load and free a single layer structure
*/
@@ -3824,8 +3734,6 @@ int initLayer(layerObj *layer, mapObj *map)
layer->type = -1;
- layer->annotate = MS_FALSE;
-
layer->toleranceunits = MS_PIXELS;
layer->tolerance = -1; /* perhaps this should have a different value based on type */
@@ -3895,7 +3803,7 @@ int initLayer(layerObj *layer, mapObj *map)
layer->resultcache= NULL;
- initExpression(&(layer->filter));
+ msInitExpression(&(layer->filter));
layer->filteritem = NULL;
layer->filteritemindex = -1;
@@ -3910,8 +3818,6 @@ int initLayer(layerObj *layer, mapObj *map)
layer->styleitem = NULL;
layer->styleitemindex = -1;
- layer->opacity = 100; /* fully opaque */
-
layer->numprocessing = 0;
layer->processing = NULL;
layer->numjoins = 0;
@@ -3925,10 +3831,23 @@ int initLayer(layerObj *layer, mapObj *map)
layer->mask = NULL;
layer->maskimage = NULL;
+ layer->grid = NULL;
- initExpression(&(layer->_geomtransform));
+ msInitExpression(&(layer->_geomtransform));
layer->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+
+ msInitExpression(&(layer->utfdata));
+ layer->utfitem = NULL;
+ layer->utfitemindex = -1;
+
+ layer->encoding = NULL;
+ layer->sortBy.nProperties = 0;
+ layer->sortBy.properties = NULL;
+ layer->orig_st = NULL;
+
+ layer->compositer = NULL;
+
return(0);
}
@@ -3969,6 +3888,7 @@ int freeLayer(layerObj *layer)
msLayerClose(layer);
msFree(layer->name);
+ msFree(layer->encoding);
msFree(layer->group);
msFree(layer->data);
msFree(layer->classitem);
@@ -3987,7 +3907,7 @@ int freeLayer(layerObj *layer)
msFree(layer->classgroup);
msFreeProjection(&(layer->projection));
- freeExpression(&layer->_geomtransform);
+ msFreeExpression(&layer->_geomtransform);
freeCluster(&layer->cluster);
@@ -4019,7 +3939,7 @@ int freeLayer(layerObj *layer)
msFree(layer->styleitem);
msFree(layer->filteritem);
- freeExpression(&(layer->filter));
+ msFreeExpression(&(layer->filter));
msFree(layer->requires);
msFree(layer->labelrequires);
@@ -4043,6 +3963,18 @@ int freeLayer(layerObj *layer)
msFreeImage(layer->maskimage);
}
+ if (layer->grid) {
+ freeGrid(layer->grid);
+ msFree(layer->grid);
+ }
+
+ msFreeExpression(&(layer->utfdata));
+ msFree(layer->utfitem);
+
+ for(i=0;i<layer->sortBy.nProperties;i++)
+ msFree(layer->sortBy.properties[i].item);
+ msFree(layer->sortBy.properties);
+
return MS_SUCCESS;
}
@@ -4167,6 +4099,97 @@ int loadScaletoken(scaleTokenObj *token, layerObj *layer) {
} /* next token*/
}
+int loadLayerCompositer(LayerCompositer *compositer) {
+ for(;;) {
+ switch(msyylex()) {
+ case COMPFILTER:
+ compositer->filter = msSmallMalloc(sizeof(CompositingFilter));
+ initCompositingFilter(compositer->filter);
+ if(getString(&compositer->filter->filter) == MS_FAILURE) return(MS_FAILURE);
+ break;
+ case COMPOP: {
+ char *compop=NULL;
+ if(getString(&compop) == MS_FAILURE) return(MS_FAILURE);
+ else if(!strcmp(compop,"clear"))
+ compositer->comp_op = MS_COMPOP_CLEAR;
+ else if(!strcmp(compop,"color-burn"))
+ compositer->comp_op = MS_COMPOP_COLOR_BURN;
+ else if(!strcmp(compop,"color-dodge"))
+ compositer->comp_op = MS_COMPOP_COLOR_DODGE;
+ else if(!strcmp(compop,"contrast"))
+ compositer->comp_op = MS_COMPOP_CONTRAST;
+ else if(!strcmp(compop,"darken"))
+ compositer->comp_op = MS_COMPOP_DARKEN;
+ else if(!strcmp(compop,"difference"))
+ compositer->comp_op = MS_COMPOP_DIFFERENCE;
+ else if(!strcmp(compop,"dst"))
+ compositer->comp_op = MS_COMPOP_DST;
+ else if(!strcmp(compop,"dst-atop"))
+ compositer->comp_op = MS_COMPOP_DST_ATOP;
+ else if(!strcmp(compop,"dst-in"))
+ compositer->comp_op = MS_COMPOP_DST_IN;
+ else if(!strcmp(compop,"dst-out"))
+ compositer->comp_op = MS_COMPOP_DST_OUT;
+ else if(!strcmp(compop,"dst-over"))
+ compositer->comp_op = MS_COMPOP_DST_OVER;
+ else if(!strcmp(compop,"exclusion"))
+ compositer->comp_op = MS_COMPOP_EXCLUSION;
+ else if(!strcmp(compop,"hard-light"))
+ compositer->comp_op = MS_COMPOP_HARD_LIGHT;
+ else if(!strcmp(compop,"invert"))
+ compositer->comp_op = MS_COMPOP_INVERT;
+ else if(!strcmp(compop,"invert-rgb"))
+ compositer->comp_op = MS_COMPOP_INVERT_RGB;
+ else if(!strcmp(compop,"lighten"))
+ compositer->comp_op = MS_COMPOP_LIGHTEN;
+ else if(!strcmp(compop,"minus"))
+ compositer->comp_op = MS_COMPOP_MINUS;
+ else if(!strcmp(compop,"multiply"))
+ compositer->comp_op = MS_COMPOP_MULTIPLY;
+ else if(!strcmp(compop,"overlay"))
+ compositer->comp_op = MS_COMPOP_OVERLAY;
+ else if(!strcmp(compop,"plus"))
+ compositer->comp_op = MS_COMPOP_PLUS;
+ else if(!strcmp(compop,"screen"))
+ compositer->comp_op = MS_COMPOP_SCREEN;
+ else if(!strcmp(compop,"soft-light"))
+ compositer->comp_op = MS_COMPOP_SOFT_LIGHT;
+ else if(!strcmp(compop,"src"))
+ compositer->comp_op = MS_COMPOP_SRC;
+ else if(!strcmp(compop,"src-atop"))
+ compositer->comp_op = MS_COMPOP_SRC_ATOP;
+ else if(!strcmp(compop,"src-in"))
+ compositer->comp_op = MS_COMPOP_SRC_IN;
+ else if(!strcmp(compop,"src-out"))
+ compositer->comp_op = MS_COMPOP_SRC_OUT;
+ else if(!strcmp(compop,"src-over"))
+ compositer->comp_op = MS_COMPOP_SRC_OVER;
+ else if(!strcmp(compop,"xor"))
+ compositer->comp_op = MS_COMPOP_XOR;
+ else {
+ msSetError(MS_PARSEERR,"Unknown COMPOP \"%s\"", "loadLayerCompositer()", compop);
+ free(compop);
+ return MS_FAILURE;
+ }
+ free(compop);
+ }
+ break;
+ case END:
+ return MS_SUCCESS;
+ case OPACITY:
+ if (getInteger(&(compositer->opacity)) == -1)
+ return MS_FAILURE;
+ if(compositer->opacity<0 || compositer->opacity>100) {
+ msSetError(MS_PARSEERR,"OPACITY must be between 0 and 100 (line %d)","loadLayerCompositer()",msyylineno);
+ return MS_FAILURE;
+ }
+ break;
+ default:
+ msSetError(MS_IDENTERR, "Parsing error 2 near (%s):(line %d)", "loadLayerCompositer()", msyystring_buffer, msyylineno );
+ return(MS_FAILURE);
+ }
+ }
+}
int loadLayer(layerObj *layer, mapObj *map)
{
int type;
@@ -4183,7 +4206,6 @@ int loadLayer(layerObj *layer, mapObj *map)
return(-1);
initClass(layer->class[layer->numclasses]);
if(loadClass(layer->class[layer->numclasses], layer) == -1) return(-1);
- if(layer->class[layer->numclasses]->type == -1) layer->class[layer->numclasses]->type = layer->type;
layer->numclasses++;
break;
case(CLUSTER):
@@ -4212,6 +4234,19 @@ int loadLayer(layerObj *layer, mapObj *map)
}
}
break;
+ case(COMPOSITE): {
+ LayerCompositer *compositer = msSmallMalloc(sizeof(LayerCompositer));
+ initLayerCompositer(compositer);
+ if(MS_FAILURE == loadLayerCompositer(compositer)) return -1;
+ if(!layer->compositer) {
+ layer->compositer = compositer;
+ } else {
+ LayerCompositer *lctmp = layer->compositer;
+ while(lctmp->next) lctmp = lctmp->next;
+ lctmp->next = compositer;
+ }
+ break;
+ }
case(CONNECTION):
if(getString(&layer->connection) == MS_FAILURE) return(-1); /* getString() cleans up previously allocated string */
if(msyysource == MS_URL_TOKENS) {
@@ -4224,7 +4259,7 @@ int loadLayer(layerObj *layer, mapObj *map)
}
break;
case(CONNECTIONTYPE):
- if((layer->connectiontype = getSymbol(11, MS_SDE, MS_OGR, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR)) == -1) return(-1);
+ if((layer->connectiontype = getSymbol(11, MS_OGR, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR, MS_KERNELDENSITY)) == -1) return(-1);
break;
case(DATA):
if(getString(&layer->data) == MS_FAILURE) return(-1); /* getString() cleans up previously allocated string */
@@ -4248,6 +4283,9 @@ int loadLayer(layerObj *layer, mapObj *map)
msSetError(MS_EOFERR, NULL, "loadLayer()");
return(-1);
break;
+ case(ENCODING):
+ if(getString(&layer->encoding) == MS_FAILURE) return(-1);
+ break;
case(END):
if(layer->type == -1) {
msSetError(MS_MISCERR, "Layer type not set.", "loadLayer()");
@@ -4289,7 +4327,7 @@ int loadLayer(layerObj *layer, mapObj *map)
if(msyysource == MS_URL_TOKENS) {
if(msValidateParameter(layer->filter.string, msLookupHashTable(&(layer->validation), "filter"), msLookupHashTable(&(map->web.validation), "filter"), NULL, NULL) != MS_SUCCESS) {
msSetError(MS_MISCERR, "URL-based FILTER configuration failed pattern validation." , "loadLayer()");
- freeExpression(&(layer->filter));
+ msFreeExpression(&(layer->filter));
return(-1);
}
}
@@ -4318,10 +4356,14 @@ int loadLayer(layerObj *layer, mapObj *map)
break;
case(GRID):
layer->connectiontype = MS_GRATICULE;
- layer->layerinfo = (void *) malloc(sizeof(graticuleObj));
- MS_CHECK_ALLOC(layer->layerinfo, sizeof(graticuleObj), -1);
+ if (layer->grid) {
+ freeGrid(layer->grid);
+ msFree(layer->grid);
+ }
+ layer->grid = (void *) malloc(sizeof(graticuleObj));
+ MS_CHECK_ALLOC(layer->grid, sizeof(graticuleObj), -1);
- initGrid((graticuleObj *) layer->layerinfo);
+ initGrid(layer->grid);
loadGrid(layer);
break;
case(GROUP):
@@ -4441,8 +4483,19 @@ int loadLayer(layerObj *layer, mapObj *map)
break;
case(OPACITY):
case(TRANSPARENCY): /* keyword supported for mapfile backwards compatability */
- if (getIntegerOrSymbol(&(layer->opacity), 1, MS_GD_ALPHA) == -1)
- return(-1);
+ {
+ int opacity;
+ if (getInteger(&opacity) == -1) return(-1);
+ if(opacity != 100) {
+ if(layer->compositer) {
+ msSetError(MS_PARSEERR, "Cannot use OPACITY and COMPOSITER simultaneously at the LAYER level (line %d)", "loadLayer()", msyylineno );
+ return -1;
+ }
+ layer->compositer = msSmallMalloc(sizeof(LayerCompositer));
+ initLayerCompositer(layer->compositer);
+ layer->compositer->opacity = opacity;
+ }
+ }
break;
case(MS_PLUGIN): {
int rv;
@@ -4576,10 +4629,20 @@ int loadLayer(layerObj *layer, mapObj *map)
case(TYPE):
if((layer->type = getSymbol(9, MS_LAYER_POINT,MS_LAYER_LINE,MS_LAYER_RASTER,MS_LAYER_POLYGON,MS_LAYER_ANNOTATION,MS_LAYER_QUERY,MS_LAYER_CIRCLE,MS_LAYER_CHART,TILEINDEX)) == -1) return(-1);
if(layer->type == TILEINDEX) layer->type = MS_LAYER_TILEINDEX; /* TILEINDEX is also a parameter */
+ if(layer->type == MS_LAYER_ANNOTATION) {
+ msSetError(MS_IDENTERR, "Annotation Layers have been removed. To obtain same functionality, use a layer with label->styles and no class->styles", "loadLayer()");
+ return -1;
+ }
break;
case(UNITS):
if((layer->units = getSymbol(9, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD,MS_PIXELS,MS_PERCENTAGES)) == -1) return(-1);
break;
+ case(UTFDATA):
+ if(loadExpression(&(layer->utfdata)) == -1) return(-1); /* loadExpression() cleans up previously allocated expression */
+ break;
+ case(UTFITEM):
+ if(getString(&layer->utfitem) == MS_FAILURE) return(-1); /* loadExpression() cleans up previously allocated expression */
+ break;
case(VALIDATION):
if(loadHashTable(&(layer->validation)) != MS_SUCCESS) return(-1);
break;
@@ -4643,9 +4706,10 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
writeString(stream, indent, "CLASSITEM", NULL, layer->classitem);
writeCluster(stream, indent, &(layer->cluster));
writeString(stream, indent, "CONNECTION", NULL, layer->connection);
- writeKeyword(stream, indent, "CONNECTIONTYPE", layer->connectiontype, 10, MS_SDE, "SDE", MS_OGR, "OGR", MS_POSTGIS, "POSTGIS", MS_WMS, "WMS", MS_ORACLESPATIAL, "ORACLESPATIAL", MS_WFS, "WFS", MS_PLUGIN, "PLUGIN", MS_UNION, "UNION", MS_UVRASTER, "UVRASTER", MS_CONTOUR, "CONTOUR");
+ writeKeyword(stream, indent, "CONNECTIONTYPE", layer->connectiontype, 10, MS_OGR, "OGR", MS_POSTGIS, "POSTGIS", MS_WMS, "WMS", MS_ORACLESPATIAL, "ORACLESPATIAL", MS_WFS, "WFS", MS_PLUGIN, "PLUGIN", MS_UNION, "UNION", MS_UVRASTER, "UVRASTER", MS_CONTOUR, "CONTOUR", MS_KERNELDENSITY, "KERNELDENSITY");
writeString(stream, indent, "DATA", NULL, layer->data);
writeNumber(stream, indent, "DEBUG", 0, layer->debug); /* is this right? see loadLayer() */
+ writeString(stream, indent, "ENCODING", NULL, layer->encoding);
writeExtent(stream, indent, "EXTENT", layer->extent);
writeExpression(stream, indent, "FILTER", &(layer->filter));
writeString(stream, indent, "FILTERITEM", NULL, layer->filteritem);
@@ -4691,8 +4755,7 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
writeNumber(stream, indent, "TOLERANCE", -1, layer->tolerance);
writeKeyword(stream, indent, "TOLERANCEUNITS", layer->toleranceunits, 7, MS_INCHES, "INCHES", MS_FEET ,"FEET", MS_MILES, "MILES", MS_METERS, "METERS", MS_KILOMETERS, "KILOMETERS", MS_NAUTICALMILES, "NAUTICALMILES", MS_DD, "DD");
writeKeyword(stream, indent, "TRANSFORM", layer->transform, 10, MS_FALSE, "FALSE", MS_UL, "UL", MS_UC, "UC", MS_UR, "UR", MS_CL, "CL", MS_CC, "CC", MS_CR, "CR", MS_LL, "LL", MS_LC, "LC", MS_LR, "LR");
- writeNumberOrKeyword(stream, indent, "OPACITY", 100, layer->opacity, (int)layer->opacity, 1, MS_GD_ALPHA, "ALPHA");
- writeKeyword(stream, indent, "TYPE", layer->type, 9, MS_LAYER_POINT, "POINT", MS_LAYER_LINE, "LINE", MS_LAYER_POLYGON, "POLYGON", MS_LAYER_RASTER, "RASTER", MS_LAYER_ANNOTATION, "ANNOTATION", MS_LAYER_QUERY, "QUERY", MS_LAYER_CIRCLE, "CIRCLE", MS_LAYER_TILEINDEX, "TILEINDEX", MS_LAYER_CHART, "CHART");
+ writeKeyword(stream, indent, "TYPE", layer->type, 8, MS_LAYER_POINT, "POINT", MS_LAYER_LINE, "LINE", MS_LAYER_POLYGON, "POLYGON", MS_LAYER_RASTER, "RASTER", MS_LAYER_QUERY, "QUERY", MS_LAYER_CIRCLE, "CIRCLE", MS_LAYER_TILEINDEX, "TILEINDEX", MS_LAYER_CHART, "CHART");
writeKeyword(stream, indent, "UNITS", layer->units, 9, MS_INCHES, "INCHES", MS_FEET ,"FEET", MS_MILES, "MILES", MS_METERS, "METERS", MS_KILOMETERS, "KILOMETERS", MS_NAUTICALMILES, "NAUTICALMILES", MS_DD, "DD", MS_PIXELS, "PIXELS", MS_PERCENTAGES, "PERCENTATGES");
writeHashTable(stream, indent, "VALIDATION", &(layer->validation));
@@ -4701,8 +4764,8 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
for(i=0; i<layer->numjoins; i++) writeJoin(stream, indent, &(layer->joins[i]));
for(i=0; i<layer->numclasses; i++) writeClass(stream, indent, layer->class[i]);
- if( layer->layerinfo && layer->connectiontype == MS_GRATICULE)
- writeGrid(stream, indent, (graticuleObj *) layer->layerinfo);
+ if( layer->grid && layer->connectiontype == MS_GRATICULE)
+ writeGrid(stream, indent, layer->grid);
else {
current = layer->features;
while(current != NULL) {
@@ -4935,7 +4998,7 @@ static int loadOutputFormat(mapObj *map)
switch(msyylex()) {
case(EOF):
msSetError(MS_EOFERR, NULL, "loadOutputFormat()");
- return(-1);
+ goto load_output_error;
case(END): {
outputFormatObj *format;
@@ -4945,36 +5008,40 @@ static int loadOutputFormat(mapObj *map)
"OUTPUTFORMAT clause lacks DRIVER keyword near (%s):(%d)",
"loadOutputFormat()",
msyystring_buffer, msyylineno );
- return -1;
+ goto load_output_error;
}
format = msCreateDefaultOutputFormat( map, driver, name );
- msFree( name );
- name = NULL;
if( format == NULL ) {
msSetError(MS_MISCERR,
- "OUTPUTFORMAT clause references driver %s, but this driver isn't configured.",
- "loadOutputFormat()", driver );
- return -1;
+ "OUTPUTFORMAT (%s) clause references driver (%s), but this driver isn't configured.",
+ "loadOutputFormat()", name, driver );
+ goto load_output_error;
}
+ msFree( name );
+ name = NULL;
msFree( driver );
+ driver = NULL;
if( transparent != MS_NOOVERRIDE )
format->transparent = transparent;
if( extension != NULL ) {
msFree( format->extension );
format->extension = extension;
+ extension = NULL;
}
if( mimetype != NULL ) {
msFree( format->mimetype );
format->mimetype = mimetype;
+ mimetype = NULL;
}
if( imagemode != MS_NOOVERRIDE ) {
-#ifndef USE_GD
- /* don't override a GD format if GD isn't configured in */
- if(imagemode != MS_IMAGEMODE_PC256)
-#endif
+ if(format->renderer != MS_RENDER_WITH_AGG || imagemode != MS_IMAGEMODE_PC256) {
+ /* don't force to PC256 with agg, this can happen when using mapfile defined GD
+ * ouputformats that are now falling back to agg/png8
+ */
format->imagemode = imagemode;
+ }
if( transparent == MS_NOOVERRIDE ) {
if( imagemode == MS_IMAGEMODE_RGB )
@@ -4986,10 +5053,6 @@ static int loadOutputFormat(mapObj *map)
|| format->imagemode == MS_IMAGEMODE_FLOAT32
|| format->imagemode == MS_IMAGEMODE_BYTE )
format->renderer = MS_RENDER_WITH_RAWDATA;
-#ifdef USE_GD
- if( format->imagemode == MS_IMAGEMODE_PC256 )
- format->renderer = MS_RENDER_WITH_GD;
-#endif
}
format->numformatoptions = numformatoptions;
@@ -5007,14 +5070,18 @@ static int loadOutputFormat(mapObj *map)
}
case(NAME):
msFree( name );
- if((name = getToken()) == NULL) return(-1);
+ if((name = getToken()) == NULL)
+ goto load_output_error;
break;
case(MIMETYPE):
- if(getString(&mimetype) == MS_FAILURE) return(-1);
+ if(getString(&mimetype) == MS_FAILURE)
+ goto load_output_error;
break;
case(DRIVER): {
int s;
- if((s = getSymbol(2, MS_STRING, TEMPLATE)) == -1) return -1; /* allow the template to be quoted or not in the mapfile */
+ if((s = getSymbol(2, MS_STRING, TEMPLATE)) == -1) /* allow the template to be quoted or not in the mapfile */
+ goto load_output_error;
+ free(driver);
if(s == MS_STRING)
driver = msStrdup(msyystring_buffer);
else
@@ -5022,7 +5089,8 @@ static int loadOutputFormat(mapObj *map)
}
break;
case(EXTENSION):
- if(getString(&extension) == MS_FAILURE) return(-1);
+ if(getString(&extension) == MS_FAILURE)
+ goto load_output_error;
if( extension[0] == '.' ) {
char *temp = msStrdup(extension+1);
free( extension );
@@ -5030,7 +5098,8 @@ static int loadOutputFormat(mapObj *map)
}
break;
case(FORMATOPTION):
- if(getString(&value) == MS_FAILURE) return(-1);
+ if(getString(&value) == MS_FAILURE)
+ goto load_output_error;
if( numformatoptions < MAX_FORMATOPTIONS )
formatoptions[numformatoptions++] = msStrdup(value);
free(value);
@@ -5056,20 +5125,28 @@ static int loadOutputFormat(mapObj *map)
msSetError(MS_IDENTERR,
"Parsing error near (%s):(line %d), expected PC256, RGB, RGBA, FEATURE, BYTE, INT16, or FLOAT32 for IMAGEMODE.", "loadOutputFormat()",
msyystring_buffer, msyylineno);
- return -1;
+ goto load_output_error;
}
free(value);
value=NULL;
break;
case(TRANSPARENT):
- if((transparent = getSymbol(2, MS_ON,MS_OFF)) == -1) return(-1);
+ if((transparent = getSymbol(2, MS_ON,MS_OFF)) == -1)
+ goto load_output_error;
break;
default:
msSetError(MS_IDENTERR, "Parsing error near (%s):(line %d)", "loadOutputFormat()",
msyystring_buffer, msyylineno);
- return(-1);
+ goto load_output_error;
}
} /* next token */
+load_output_error:
+ msFree( driver );
+ msFree( extension );
+ msFree( mimetype );
+ msFree( name );
+ msFree( value );
+ return -1;
}
/*
@@ -5464,7 +5541,7 @@ int loadQueryMap(queryMapObj *querymap)
case(QUERYMAP):
break; /* for string loads */
case(COLOR):
- loadColor(&(querymap->color), NULL);
+ if(loadColor(&(querymap->color), NULL) != MS_SUCCESS) return MS_FAILURE;
break;
case(EOF):
msSetError(MS_EOFERR, NULL, "loadQueryMap()");
@@ -5863,7 +5940,6 @@ int initMap(mapObj *map)
map->labelcache.slots[i].markercachesize = 0;
map->labelcache.slots[i].nummarkers = 0;
}
- map->labelcache.numlabels = 0;
map->fontset.filename = NULL;
map->fontset.numfonts = 0;
@@ -5901,6 +5977,10 @@ int initMap(mapObj *map)
msInitQuery(&(map->query));
+#ifdef USE_V8_MAPSCRIPT
+ map->v8context = NULL;
+#endif
+
return(0);
}
@@ -5965,19 +6045,17 @@ int msFreeLabelCacheSlot(labelCacheSlotObj *cacheslot)
/* free the labels */
if (cacheslot->labels) {
for(i=0; i<cacheslot->numlabels; i++) {
- if (cacheslot->labels[i].labelpath)
- msFreeLabelPathObj(cacheslot->labels[i].labelpath);
- for(j=0; j<cacheslot->labels[i].numlabels; j++) freeLabel(&(cacheslot->labels[i].labels[j]));
- msFree(cacheslot->labels[i].labels);
-
- if(cacheslot->labels[i].poly) {
- msFreeShape(cacheslot->labels[i].poly); /* empties the shape */
- msFree(cacheslot->labels[i].poly); /* free's the pointer */
+ for(j=0; j<cacheslot->labels[i].numtextsymbols; j++) {
+ freeTextSymbol(cacheslot->labels[i].textsymbols[j]);
+ free(cacheslot->labels[i].textsymbols[j]);
}
+ msFree(cacheslot->labels[i].textsymbols);
+#ifdef include_deprecated
for(j=0; j<cacheslot->labels[i].numstyles; j++) freeStyle(&(cacheslot->labels[i].styles[j]));
msFree(cacheslot->labels[i].styles);
+#endif
if(cacheslot->labels[i].leaderline) {
msFree(cacheslot->labels[i].leaderline->point);
msFree(cacheslot->labels[i].leaderline);
@@ -5990,13 +6068,6 @@ int msFreeLabelCacheSlot(labelCacheSlotObj *cacheslot)
cacheslot->cachesize = 0;
cacheslot->numlabels = 0;
- /* free the markers */
- if (cacheslot->markers) {
- for(i=0; i<cacheslot->nummarkers; i++) {
- msFreeShape(cacheslot->markers[i].poly);
- msFree(cacheslot->markers[i].poly);
- }
- }
msFree(cacheslot->markers);
cacheslot->markers = NULL;
cacheslot->markercachesize = 0;
@@ -6014,7 +6085,8 @@ int msFreeLabelCache(labelCacheObj *cache)
return MS_FAILURE;
}
- cache->numlabels = 0;
+ cache->num_allocated_rendered_members = cache->num_rendered_members = 0;
+ msFree(cache->rendered_text_symbols);
return MS_SUCCESS;
}
@@ -6048,8 +6120,9 @@ int msInitLabelCache(labelCacheObj *cache)
if (msInitLabelCacheSlot(&(cache->slots[p])) != MS_SUCCESS)
return MS_FAILURE;
}
- cache->numlabels = 0;
cache->gutter = 0;
+ cache->num_allocated_rendered_members = cache->num_rendered_members = 0;
+ cache->rendered_text_symbols = NULL;
return MS_SUCCESS;
}
@@ -6060,6 +6133,7 @@ static void writeMap(FILE *stream, int indent, mapObj *map)
colorObj c;
writeBlockBegin(stream, indent, "MAP");
+ writeNumber(stream, indent, "ANGLE", 0, map->gt.rotation_angle);
writeHashTableInline(stream, indent, "CONFIG", &(map->configoptions));
writeString(stream, indent, "DATAPATTERN", NULL, map->datapattern); /* depricated */
writeNumber(stream, indent, "DEBUG", 0, map->debug);
@@ -6521,11 +6595,11 @@ mapObj *msLoadMap(char *filename, char *new_mappath)
}
if (new_mappath)
- map->mappath = msStrdup(msBuildPath(szPath, szCWDPath, msStrdup(new_mappath)));
+ map->mappath = msStrdup(msBuildPath(szPath, szCWDPath, new_mappath));
else {
char *path = msGetPath(filename);
map->mappath = msStrdup(msBuildPath(szPath, szCWDPath, path));
- if( path ) free( path );
+ free( path );
}
msyybasepath = map->mappath; /* for INCLUDEs */
@@ -6778,48 +6852,55 @@ int msUpdateMapFromURL(mapObj *map, char *variable, char *string)
return(MS_SUCCESS);
}
-static int classNeedsSubstitutions(classObj *class, char *from) {
- if(class->expression.string && (strcasestr(class->expression.string, from) != NULL)) return MS_TRUE;
- if(class->text.string && (strcasestr(class->text.string, from) != NULL)) return MS_TRUE;
- if(class->title && (strcasestr(class->title, from) != NULL)) return MS_TRUE;
-
- return MS_FALSE;
-}
-
-static int layerNeedsSubstitutions(layerObj *layer, char *from)
-{
- if(layer->data && (strcasestr(layer->data, from) != NULL)) return MS_TRUE;
- if(layer->tileindex && (strcasestr(layer->tileindex, from) != NULL)) return MS_TRUE;
- if(layer->connection && (strcasestr(layer->connection, from) != NULL)) return MS_TRUE;
- if(layer->filter.string && (strcasestr(layer->filter.string, from) != NULL)) return MS_TRUE;
-
- if(!msHashIsEmpty(&layer->bindvals)) return MS_TRUE;
-
- return MS_FALSE;
+static void hashTableSubstituteString(hashTableObj *hash, const char *from, const char *to) {
+ const char *key, *val;
+ key = msFirstKeyFromHashTable(hash);
+ while(key != NULL) {
+ val = msLookupHashTable(hash, key);
+ if(strcasestr(val, from)) {
+ msInsertHashTable(hash, key, msCaseReplaceSubstring(msStrdup(val), from, to));
+ }
+ key = msNextKeyFromHashTable(hash, key);
+ }
}
-static void classSubstituteString(classObj *class, char *from, char *to) {
+static void classSubstituteString(classObj *class, const char *from, const char *to) {
if(class->expression.string) class->expression.string = msCaseReplaceSubstring(class->expression.string, from, to);
if(class->text.string) class->text.string = msCaseReplaceSubstring(class->text.string, from, to);
if(class->title) class->title = msCaseReplaceSubstring(class->title, from, to);
}
-static void layerSubstituteString(layerObj *layer, char *from, char *to)
-{
- char *bindvals_key, *bindvals_val;
+static void layerSubstituteString(layerObj *layer, const char *from, const char *to)
+{
+ int c;
if(layer->data) layer->data = msCaseReplaceSubstring(layer->data, from, to);
if(layer->tileindex) layer->tileindex = msCaseReplaceSubstring(layer->tileindex, from, to);
if(layer->connection) layer->connection = msCaseReplaceSubstring(layer->connection, from, to);
if(layer->filter.string) layer->filter.string = msCaseReplaceSubstring(layer->filter.string, from, to);
-
+
/* The bindvalues are most useful when able to substitute values from the URL */
- bindvals_key = (char*)msFirstKeyFromHashTable(&layer->bindvals);
- while(bindvals_key != NULL) {
- bindvals_val = msStrdup((char*)msLookupHashTable(&layer->bindvals, bindvals_key));
- msInsertHashTable(&layer->bindvals, bindvals_key, msCaseReplaceSubstring(bindvals_val, from, to));
- bindvals_key = (char*)msNextKeyFromHashTable(&layer->bindvals, bindvals_key);
+ hashTableSubstituteString(&layer->bindvals, from, to);
+ hashTableSubstituteString(&layer->metadata, from, to);
+ msLayerSubstituteProcessing( layer, from, to );
+ for(c=0; c<layer->numclasses;c++) {
+ classSubstituteString(layer->class[c], from, to);
+ }
+}
+
+static void mapSubstituteString(mapObj *map, const char *from, const char *to) {
+ int l;
+ for(l=0;l<map->numlayers; l++) {
+ layerSubstituteString(GET_LAYER(map,l), from, to);
+ }
+ /* output formats (#3751) */
+ for(l=0; l<map->numoutputformats; l++) {
+ int o;
+ for(o=0; o<map->outputformatlist[l]->numformatoptions; o++) {
+ map->outputformatlist[l]->formatoptions[o] = msCaseReplaceSubstring(map->outputformatlist[l]->formatoptions[o], from, to);
+ }
}
+ hashTableSubstituteString(&map->web.metadata, from, to);
}
static void applyOutputFormatDefaultSubstitutions(outputFormatObj *format, const char *option, hashTableObj *table)
@@ -6902,6 +6983,7 @@ void msApplyDefaultSubstitutions(mapObj *map)
/* output formats (#3751) */
for(i=0; i<map->numoutputformats; i++) {
applyOutputFormatDefaultSubstitutions(map->outputformatlist[i], "filename", &(map->web.validation));
+ applyOutputFormatDefaultSubstitutions(map->outputformatlist[i], "JSONP", &(map->web.validation));
}
for(i=0; i<map->numlayers; i++) {
@@ -6917,93 +6999,89 @@ void msApplyDefaultSubstitutions(mapObj *map)
}
}
-void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs)
-{
- int i,j,k;
-
- char *tag=NULL;
-
- for(i=0; i<npairs; i++) {
+char *_get_param_value(const char *key, char **names, char **values, int npairs) {
- /* runtime subtitution string */
- tag = (char *) msSmallMalloc(sizeof(char)*strlen(names[i]) + 3);
- sprintf(tag, "%%%s%%", names[i]);
-
- /* output formats (#3751) */
- for(j=0; j<map->numoutputformats; j++) {
- const char *filename = msGetOutputFormatOption(map->outputformatlist[j], "FILENAME", NULL);
- if(filename && (strcasestr(filename, tag) != NULL)) {
- if(msValidateParameter(values[i], msLookupHashTable(&(map->web.validation), names[i]), NULL, NULL, NULL) == MS_SUCCESS) {
- char *new_filename = msStrdup(filename);
- new_filename = msCaseReplaceSubstring(new_filename, tag, values[i]);
- msSetOutputFormatOption(map->outputformatlist[j], "FILENAME", new_filename);
- free(new_filename);
- }
- }
+ if(getenv(key)) { /* envirronment override */
+ return getenv(key);
+ }
+ while(npairs) {
+ npairs--;
+ if(strcasecmp(key, names[npairs]) == 0) {
+ return values[npairs];
}
+ }
+ return NULL;
+}
- for(j=0; j<map->numlayers; j++) {
- layerObj *layer = GET_LAYER(map, j);
-
- /* perform class level substitutions (#4596) */
- for(k=0; k<layer->numclasses; k++) {
- classObj *class = GET_CLASS(map, j, k);
-
- if(!classNeedsSubstitutions(class, tag)) continue;
-
- if(layer->debug >= MS_DEBUGLEVEL_V)
- msDebug( " runtime substitution - Layer %s, Class %s, tag %s...\n", layer->name, class->name, tag);
-
- if (msLookupHashTable(&(class->validation), names[i])) {
- if (msValidateParameter(values[i],
- msLookupHashTable(&(class->validation), names[i]),
- NULL, NULL, NULL) != MS_SUCCESS) {
- /* skip as the name exists in the class validation but does not validate */
- continue;
- }
- } else if (msLookupHashTable(&(layer->validation), names[i])) {
- if (msValidateParameter(values[i],
- msLookupHashTable(&(layer->validation), names[i]),
- NULL, NULL, NULL) != MS_SUCCESS) {
- /* skip as the name exists in the layer validation but does not validate */
- continue;
+void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs)
+{
+ int l;
+ const char *key, *value, *validation;
+ char *tag;
+ for(l=0; l<map->numlayers; l++) {
+ int c;
+ layerObj *lp = GET_LAYER(map,l);
+ for(c=0; c<lp->numclasses; c++) {
+ classObj *cp = lp->class[c];
+ key = NULL;
+ while( (key = msNextKeyFromHashTable(&cp->validation, key)) ) {
+ value = _get_param_value(key,names,values,npairs);
+ if(!value) continue; /*parameter was not in url*/
+ validation = msLookupHashTable(&cp->validation, key);
+ if(msEvalRegex(validation, value)) {
+ /* we've found a substitution and it validates correctly, now let's apply it */
+ tag = msSmallMalloc(strlen(key)+3);
+ sprintf(tag,"%%%s%%",key);
+ classSubstituteString(cp,tag,value);
+ free(tag);
+ } else {
+ msSetError(MS_REGEXERR, "Parameter pattern validation failed." , "msApplySubstitutions()");
+ if(map->debug || lp->debug) {
+ msDebug("layer (%s), class %d: failed to validate (%s=%s) for regex (%s)\n", lp->name, c, key, value, validation);
}
- } else if (msValidateParameter(values[i],
- msLookupHashTable(&(map->web.validation), names[i]),
- NULL, NULL, NULL) != MS_SUCCESS) {
- /* skip as the web validation fails */
- continue;
}
- /* validation has succeeded in either class, layer or web */
- classSubstituteString(class, tag, values[i]);
}
-
- if(!layerNeedsSubstitutions(layer, tag)) continue;
-
- if(layer->debug >= MS_DEBUGLEVEL_V)
- msDebug( " runtime substitution - Layer %s, tag %s...\n", layer->name, tag);
-
- if (msLookupHashTable(&(layer->validation), names[i])) {
- if (msValidateParameter(values[i],
- msLookupHashTable(&(layer->validation), names[i]),
- NULL, NULL, NULL) != MS_SUCCESS) {
- /* skip as the name exists in the layer validation but does not validate */
- continue;
+ }
+ key = NULL;
+ while( (key = msNextKeyFromHashTable(&lp->validation, key)) ) {
+ value = _get_param_value(key,names,values,npairs);
+ if(!value) continue; /*parameter was not in url*/
+ validation = msLookupHashTable(&lp->validation, key);
+ if(msEvalRegex(validation, value)) {
+ /* we've found a substitution and it validates correctly, now let's apply it */
+ tag = msSmallMalloc(strlen(key)+3);
+ sprintf(tag,"%%%s%%",key);
+ layerSubstituteString(lp,tag,value);
+ free(tag);
+ } else {
+ msSetError(MS_REGEXERR, "Parameter pattern validation failed." , "msApplySubstitutions()");
+ if(map->debug || lp->debug) {
+ msDebug("layer (%s): failed to validate (%s=%s) for regex (%s)\n", lp->name, key, value, validation);
}
- } else if (msValidateParameter(values[i],
- msLookupHashTable(&(map->web.validation), names[i]),
- NULL, NULL, NULL) != MS_SUCCESS) {
- /* skip as the web validation fails */
- continue;
}
- /* validation has succeeded in either layer or web */
- layerSubstituteString(layer, tag, values[i]);
+ }
+ }
+ key = NULL;
+ while( (key = msNextKeyFromHashTable(&map->web.validation, key)) ) {
+ value = _get_param_value(key,names,values,npairs);
+ if(!value) continue; /*parameter was not in url*/
+ validation = msLookupHashTable(&map->web.validation, key);
+ if(msEvalRegex(validation, value)) {
+ /* we've found a substitution and it validates correctly, now let's apply it */
+ tag = msSmallMalloc(strlen(key)+3);
+ sprintf(tag,"%%%s%%",key);
+ mapSubstituteString(map,tag,value);
+ free(tag);
+ } else {
+ msSetError(MS_REGEXERR, "Parameter pattern validation failed." , "msApplySubstitutions()");
+ if(map->debug) {
+ msDebug("failed to validate (%s=%s) for regex (%s)\n", key, value, validation);
+ }
}
- msFree(tag);
- } /* next name/value pair */
+ }
}
/*
@@ -7100,8 +7178,12 @@ static char **tokenizeMapInternal(char *filename, int *ret_numtokens)
}
if(tokens[numtokens] == NULL) {
+ int i;
msSetError(MS_MEMERR, NULL, "msTokenizeMap()");
fclose(msyyin);
+ for(i=0; i<numtokens; i++)
+ msFree(tokens[i]);
+ msFree(tokens);
return NULL;
}
@@ -7148,6 +7230,7 @@ void initResultCache(resultCacheObj *resultcache)
resultcache->numresults = 0;
resultcache->cachesize = 0;
resultcache->bounds.minx = resultcache->bounds.miny = resultcache->bounds.maxx = resultcache->bounds.maxy = -1;
+ resultcache->previousBounds = resultcache->bounds;
resultcache->usegetshape = MS_FALSE;
}
}
diff --git a/mapfile.h b/mapfile.h
index 9188140..4057de8 100644
--- a/mapfile.h
+++ b/mapfile.h
@@ -312,6 +312,15 @@ enum MS_TOKEN_SOURCES {MS_FILE_TOKENS=0, MS_STRING_TOKENS, MS_URL_TOKENS};
#define SCALETOKEN 1270
#define VALUES 1271
+/* rfc 93 support for utfgrid */
+#define UTFDATA 1280
+#define UTFITEM 1281
+
+/* rfc 113 layer compositing */
+#define COMPOSITE 1290
+#define COMPOP 1291
+#define COMPFILTER 1292
+
/* rfc59 bindvals objects */
#define BINDVALS 2000
diff --git a/mapgd.c b/mapgd.c
deleted file mode 100644
index 3d304c8..0000000
--- a/mapgd.c
+++ /dev/null
@@ -1,1070 +0,0 @@
-/******************************************************************************
- * $Id$
- *
- * Project: MapServer
- * Purpose: GD rendering functions (using renderer plugin API)
- * Author: Stephen Lime, Thomas Bonfort
- *
- ******************************************************************************
- * Copyright (c) 1996-2009 Regents of the University of Minnesota.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies of this Software or works derived from this Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *****************************************************************************/
-#include "mapserver-config.h"
-#ifdef USE_GD
-
-#include "mapserver.h"
-#include "mapthread.h"
-#include <time.h>
-#include <gdfonts.h>
-#include <gdfontl.h>
-#include <gdfontt.h>
-#include <gdfontmb.h>
-#include <gdfontg.h>
-
-#ifdef _WIN32
-#include <fcntl.h>
-#include <io.h>
-#endif
-
-int msGDSetup()
-{
-#ifdef USE_GD_FREETYPE
- if (gdFontCacheSetup() != 0) {
- return MS_FAILURE;
- }
-#endif
- return MS_SUCCESS;
-}
-
-void msGDCleanup(int signal)
-{
-#ifdef USE_GD_FREETYPE
- if(!signal) {
- /* there's a potential deadlock if we're killed by a signal and the font
- cache is already locked. We don't tear down the fontcache in this case
- to avoid it (issue 4093)*/
- gdFontCacheShutdown();
- }
-#endif
-}
-
-#define MS_IMAGE_GET_GDIMAGEPTR(image) ((gdImagePtr) image->img.plugin)
-
-fontMetrics bitmapFontMetricsGD[5];
-
-gdFontPtr msGetBitmapFont(int size)
-{
- switch(size) { /* set the font to use */
- case MS_TINY:
- return gdFontGetTiny();
- break;
- case MS_SMALL:
- return gdFontGetSmall();
- break;
- case MS_MEDIUM:
- return gdFontGetMediumBold();
- break;
- case MS_LARGE:
- return gdFontGetLarge();
- break;
- case MS_GIANT:
- return gdFontGetGiant();
- break;
- default:
- msSetError(MS_GDERR,"Invalid bitmap font. Must be one of tiny, small, medium, large or giant." , "msGetBitmapFont()");
- return(NULL);
- }
-}
-
-int msImageSetPenGD(gdImagePtr img, colorObj *color)
-{
- if(MS_VALID_COLOR(*color))
- color->pen = gdImageColorResolve(img, color->red, color->green, color->blue);
- else
- color->pen = -1;
-
- return(MS_SUCCESS);
-}
-
-int startNewLayerGD(imageObj *img, mapObj *map, layerObj *layer)
-{
- return MS_SUCCESS;
-}
-
-int closeNewLayerGD(imageObj *img, mapObj *map, layerObj *layer)
-{
- return MS_SUCCESS;
-}
-
-/*
-** GD driver-specific image handling functions.
-*/
-imageObj *createImageGD(int width, int height, outputFormatObj *format, colorObj* bg)
-{
- imageObj *img = NULL;
- gdImagePtr ip;
-
- img = (imageObj *) calloc(1, sizeof (imageObj));
- MS_CHECK_ALLOC(img, sizeof (imageObj), NULL);
-
- /* we're only doing PC256 for the moment */
- ip = gdImageCreate(width, height);
- if(bg && MS_VALID_COLOR(*bg)) {
- gdImageColorAllocate(ip, bg->red, bg->green, bg->blue); /* set the background color */
- } else {
- gdImageColorAllocate(ip,117,17,91); /*random bg color (same one as picked in msResampleGDALToMap) */
- }
- if(format->transparent || !bg || !MS_VALID_COLOR(*bg)) {
- gdImageColorTransparent(ip, 0);
- }
-
- img->img.plugin = (void *) ip;
- return img;
-}
-
-
-
-int saveImageGD(imageObj *img, mapObj *map, FILE *fp, outputFormatObj *format)
-{
- gdImagePtr ip;
-
- if(!img || !fp) return MS_FAILURE;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
-
- return saveGdImage(ip,fp,format);
-
-}
-
-int freeImageGD(imageObj *img)
-{
- gdImagePtr ip;
-
- if(img) {
- ip = MS_IMAGE_GET_GDIMAGEPTR(img);
- if(ip) gdImageDestroy(ip);
- }
-
- return MS_SUCCESS;
-}
-
-/*
-** GD driver-specific rendering functions.
-*/
-#define SWAP(a, b, t) ((t) = (a), (a) = (b), (b) = (t))
-
-#define SETPEN(ip, c) if(c && c->pen == MS_PEN_UNSET) c->pen = gdImageColorResolve(ip, c->red, c->green, c->blue)
-
-
-static void imageScanline(gdImagePtr im, int x1, int x2, int y, int c)
-{
- int x;
-
- /* TO DO: This fix (adding if/then) was to address circumstances in the polygon fill code */
- /* where x2 < x1. There may be something wrong in that code, but at any rate this is safer. */
-
- if(x1 < x2)
- for(x=x1; x<=x2; x++) gdImageSetPixel(im, x, y, c);
- else
- for(x=x2; x<=x1; x++) gdImageSetPixel(im, x, y, c);
-}
-
-/*
-** Polygon fill. Based on "Concave Polygon Scan Conversion" by Paul
-** Heckbert from "Graphics Gems", Academic Press, 1990.
-**
-*/
-static void imageFilledPolygon(gdImagePtr im, shapeObj *p, int c)
-{
- typedef struct { /* a polygon edge */
- double x; /* x coordinate of edge's intersection with current scanline */
- double dx; /* change in x with respect to y */
- int i; /* point index */
- int l; /* line number */
- int s; /* scanline */
- } pEdge;
-
- pointObj *point1, *point2;
-
- int k, l, i, j, xl, xr, ymin, ymax, y, n,nvert, nact, m;
- int wrong_order;
-
- pEdge *edge, *temp;
- pEdge **active;
- int *yhist, *edgeindex;
-
- if(p->numlines == 0) return;
- n=0;
-
- for(i=0; i<p->numlines; i++) {
- n += p->line[i].numpoints;
- }
-
- if(n == 0) return;
-
- edge = (pEdge *) msSmallCalloc(n,sizeof(pEdge)); /* All edges in the polygon */
- edgeindex = (int *) msSmallCalloc(n,sizeof(int)); /* Index to edges sorted by scanline */
- active = (pEdge **) msSmallCalloc(n,sizeof(pEdge*)); /* Pointers to active edges for current scanline */
-
- nvert=0;
-
- ymin= (int) ceil(p->line[0].point[0].y-0.5);
- ymax= (int) floor(p->line[0].point[0].y-0.5);
-
- /* populate the edge table */
- for(l=0; l<p->numlines; l++) {
- for(i=0; i < p->line[l].numpoints; i++) {
- j = i < p->line[l].numpoints -1 ? i+1 : 0;
- if (p->line[l].point[i].y < p->line[l].point[j].y ) {
- point1 = &(p->line[l].point[i]);
- point2 = &(p->line[l].point[j]);
- } else {
- point2 = &(p->line[l].point[i]);
- point1 = &(p->line[l].point[j]);
- }
-
- edge[nvert].dx = point2->y == point1->y ? 0 : (point2->x - point1->x) / (point2->y - point1->y);
- edge[nvert].s = MS_NINT( p->line[l].point[i].y ); /* ceil( p->line[l].point[i].y - 0.5 ); */
- edge[nvert].x = point1->x;
- edge[nvert].i = nvert;
- edge[nvert].l = l;
-
- ymin = MS_MIN(ymin,edge[nvert].s);
- ymax = MS_MAX(ymax,edge[nvert].s);
-
- nvert++;
- }
- }
-
- /* Use histogram sort to create a bucket-sorted edgeindex by scanline */
- yhist = (int*) msSmallCalloc(ymax - ymin + 2, sizeof(int));
-
- for(i=0; i<nvert; i++) {
- yhist[ edge[i].s - ymin + 1 ]++;
- }
- for(i=0; i<=(ymax - ymin); i++) {/* Calculate starting point in edgeindex for each scanline */
- yhist[i+1] += yhist[i];
- }
- for(i=0; i<nvert; i++) { /* Bucket sort edges into edgeindex */
- y = edge[i].s;
- edgeindex[yhist[y-ymin]] = i;
- yhist[y-ymin]++;
- }
- free(yhist);
-
- k=0;
- nact=0;
-
- for (y=ymin; y<=ymax; y++) { /* step through scanlines */
- /* scanline y is at y+.5 in continuous coordinates */
-
- /* check vertices between previous scanline and current one, if any */
- for (; k<nvert && edge[edgeindex[k]].s <= y; k++) {
- i = edge[edgeindex[k]].i;
-
- /* vertex previous to i */
- if(i==0 || edge[i].l != edge[i-1].l)
- j = i + p->line[edge[i].l].numpoints - 1;
- else
- j = i - 1;
-
- if (edge[j].s <= y ) { /* old edge, remove from active list */
- for (m=0; m<nact && active[m]->i!=j; m++);
- if (m<nact) {
- nact--;
- active[m]=active[nact];
- }
- } else if (edge[j].s > y) { /* new edge, insert into active list */
- active[nact]= & edge[j];
- nact++;
- }
-
- /* vertex next after i */
- if(i==nvert-1 || edge[i].l != edge[i+1].l)
- j = i - p->line[edge[i].l].numpoints + 1;
- else
- j = i + 1;
-
- if (edge[j].s <= y - 1 ) { /* old edge, remove from active list */
- for (m=0; m<nact && active[m]->i!=i; m++);
- if (m<nact) {
- nact--;
- active[m]=active[nact];
- }
- } else if (edge[j].s > y ) { /* new edge, insert into active list */
- active[nact]= & edge[i];
- nact++;
- }
- }
-
- /* Sort active edges by x */
- do {
- wrong_order = 0;
- for(i=0; i < nact-1; i++) {
- if(active[i]->x > active[i+1]->x) {
- wrong_order = 1;
- SWAP(active[i], active[i+1], temp);
- }
- }
- } while(wrong_order);
-
- /* draw horizontal spans for scanline y */
- for (j=0; j<nact; j+=2) {
- /* j -> j+1 is inside, j+1 -> j+2 is outside */
- xl = (int) MS_NINT(active[j]->x );
- xr = (int) (active[j+1]->x - 0.5) ;
-
- if(active[j]->x != active[j+1]->x)
- imageScanline(im, xl, xr, y, c);
-
- active[j]->x += active[j]->dx; /* increment edge coords */
- active[j+1]->x += active[j+1]->dx;
- }
- }
-
- free(active);
- free(edgeindex);
- free(edge);
-}
-
-static void imagePolyline(gdImagePtr im, shapeObj *p, int c)
-{
- int i, j;
-
- for (i=0; i < p->numlines; i++) {
- lineObj *line = &(p->line[i]);
- for(j=1; j<line->numpoints; j++) {
- pointObj *point1 = &line->point[j-1];
- pointObj *point2 = &line->point[j];
-
- gdImageLine(im, (int) point1->x, (int) point1->y, (int) point2->x, (int) point2->y, c);
- }
- }
-}
-
-int renderLineGD(imageObj *img, shapeObj *p, strokeStyleObj *stroke)
-{
- gdImagePtr ip;
- int c;
- gdImagePtr brush=NULL;
-
- if(!img || !p || !stroke) return MS_FAILURE;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
-
- SETPEN(ip, stroke->color);
- c = stroke->color->pen;
-
- if(stroke->patternlength > 0) {
- int *style;
- int i, j, k=0;
- int sc;
-
- for(i=0; i<stroke->patternlength; i++)
- k += MS_NINT(stroke->pattern[i]);
- style = (int *) malloc (k * sizeof(int));
- MS_CHECK_ALLOC(style, k * sizeof(int), MS_FAILURE);
-
- sc = c; /* start with the color */
-
- k=0;
- for(i=0; i<stroke->patternlength; i++) {
- for(j=0; j<MS_NINT(stroke->pattern[i]); j++, k++) {
- style[k] = sc;
- }
- sc = ((sc==c)?gdTransparent:c);
- }
-
- gdImageSetStyle(ip, style, k);
- free(style);
-
- c = gdStyled;
- }
-
- if(stroke->width > 1) {
- int brush_fc;
- brush = gdImageCreate(ceil(stroke->width), ceil(stroke->width));
- gdImageColorAllocate(brush, gdImageRed(ip,0), gdImageGreen(ip, 0), gdImageBlue(ip, 0));
- gdImageColorTransparent(brush,0);
- brush_fc = gdImageColorAllocate(brush, gdImageRed(ip,stroke->color->pen),
- gdImageGreen(ip,stroke->color->pen), gdImageBlue(ip,stroke->color->pen));
- gdImageFilledEllipse(brush,MS_NINT(brush->sx/2),MS_NINT(brush->sy/2),
- MS_NINT(stroke->width),MS_NINT(stroke->width), brush_fc);
- gdImageSetBrush(ip, brush);
- if(stroke->patternlength > 0) {
- c = gdStyledBrushed;
- } else {
- c = gdBrushed;
- }
- }
-
- /* finally draw something */
- imagePolyline(ip, p, c);
-
- /* clean up */
- if(stroke->width>1) {
- gdImageDestroy(brush);
- }
- return MS_SUCCESS;
-}
-
-int renderPolygonGD(imageObj *img, shapeObj *p, colorObj *color)
-{
- gdImagePtr ip;
-
- if(!img || !p || !color) return MS_FAILURE;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- SETPEN(ip, color);
- imageFilledPolygon(ip, p, color->pen);
- return MS_SUCCESS;
-}
-
-int renderGlyphsLineGD(imageObj *img, labelPathObj *labelpath, labelStyleObj *style, char *text)
-{
- return MS_SUCCESS;
-}
-
-int renderGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char *text)
-{
-#ifdef USE_GD_FREETYPE
- gdImagePtr ip;
- char *error=NULL;
- int bbox[8];
- int c = 0,oc = 0;
- x = MS_NINT(x);
- y = MS_NINT(y);
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- if(!text || !strlen(text)) return(MS_SUCCESS); /* not errors, just don't want to do anything */
-
- SETPEN(ip, style->color);
- SETPEN(ip, style->outlinecolor);
-
- if(style->antialias) {
- if(style->color)
- c = style->color->pen;
- if(style->outlinewidth > 0)
- oc = style->outlinecolor->pen;
- } else {
- if(style->color)
- c = -style->color->pen;
- if(style->outlinewidth > 0)
- oc = -style->outlinecolor->pen;
- }
-
- if(style->outlinewidth > 0) { /* handle the outline color */
- error = gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x, y-1, text);
- if(error) {
- msSetError(MS_TTFERR, "%s", "msDrawTextGD()", error);
- return(MS_FAILURE);
- }
-
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x, y+1, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x+1, y, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x-1, y, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x-1, y-1, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x-1, y+1, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x+1, y-1, text);
- gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x+1, y+1, text);
- }
-
- if(style->color)
- gdImageStringFT(ip, bbox, c, style->fonts[0], style->size, style->rotation, x, y, text);
- return MS_SUCCESS;
-#else
- msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "renderGlyphsGD()");
- return MS_FAILURE;
-#endif
-}
-
-int renderEllipseSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style)
-{
- /* check for trivial cases - 1x1 and 2x2, GD does not do these well */
- gdImagePtr ip;
- int w,h,fc,oc;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- SETPEN(ip, style->color);
- SETPEN(ip, style->outlinecolor);
- fc = style->color ? style->color->pen : -1;
- oc = style->outlinecolor ? style->outlinecolor->pen : -1;
-
- if(oc==-1 && fc ==-1) {
- return MS_SUCCESS;
- }
-
- w = symbol->sizex * style->scale;
- h = symbol->sizey * style->scale;
-
- if(w==1 && h==1) {
- if(fc >= 0)
- gdImageSetPixel(ip, x, y, fc);
- else
- gdImageSetPixel(ip, x, y, oc);
- return MS_SUCCESS;
- }
-
- if(w==2 && h==2) {
- if(oc >= 0) {
- gdImageSetPixel(ip, x, y, oc);
- gdImageSetPixel(ip, x, y+1, oc);
- gdImageSetPixel(ip, x+1, y, oc);
- gdImageSetPixel(ip, x+1, y+1, oc);
- } else {
- gdImageSetPixel(ip, x, y, fc);
- gdImageSetPixel(ip, x, y+1, fc);
- gdImageSetPixel(ip, x+1, y, fc);
- gdImageSetPixel(ip, x+1, y+1, fc);
- }
- return MS_SUCCESS;
- }
-
- if(symbol->filled) {
- if(fc >= 0) gdImageFilledEllipse(ip, x, y, w, h, fc);
- if(oc >= 0) gdImageArc(ip, x, y, w, h, 0, 360, oc);
- } else {
- if(fc < 0) fc = oc; /* try the outline color */
- gdImageArc(ip, x, y, w, h, 0, 360, fc);
- }
- return MS_SUCCESS;
-}
-
-static void get_bbox(pointObj *poiList, int numpoints, double *minx, double *miny, double *maxx, double *maxy)
-{
- int j;
-
- *minx = *maxx = poiList[0].x;
- *miny = *maxy = poiList[0].y;
- for(j=1; j<numpoints; j++) {
- if ((poiList[j].x==-99.0) || (poiList[j].y==-99.0)) continue;
- *minx = MS_MIN(*minx, poiList[j].x);
- *maxx = MS_MAX(*maxx, poiList[j].x);
- *miny = MS_MIN(*miny, poiList[j].y);
- *maxy = MS_MAX(*maxy, poiList[j].y);
- }
-
- return;
-}
-
-symbolObj* rotateVectorSymbolPoints(symbolObj *symbol, double angle_rad)
-{
- double dp_x, dp_y, xcor, ycor;
- double sin_a, cos_a;
- double minx,miny,maxx,maxy;
- symbolObj *newSymbol;
- double TOL=0.00000000001;
- int i;
-
- angle_rad = -angle_rad;
-
- newSymbol = (symbolObj *) msSmallMalloc(sizeof(symbolObj));
- msCopySymbol(newSymbol, symbol, NULL);
-
- sin_a = sin(angle_rad);
- cos_a = cos(angle_rad);
-
- dp_x = symbol->sizex * .5; /* get the shift vector at 0,0 */
- dp_y = symbol->sizey * .5;
-
- /* center at 0,0 and rotate; then move back */
- for( i=0; i < symbol->numpoints; i++) {
- /* don't rotate PENUP commands (TODO: should use a constant here) */
- if ((symbol->points[i].x == -99.0) && (symbol->points[i].x == -99.0) ) {
- newSymbol->points[i].x = -99.0;
- newSymbol->points[i].y = -99.0;
- continue;
- }
-
- newSymbol->points[i].x = dp_x + ((symbol->points[i].x-dp_x)*cos_a - (symbol->points[i].y-dp_y)*sin_a);
- newSymbol->points[i].y = dp_y + ((symbol->points[i].x-dp_x)*sin_a + (symbol->points[i].y-dp_y)*cos_a);
- }
-
- /* get the new bbox of the symbol, because we need it to get the new dimensions of the new symbol */
- get_bbox(newSymbol->points, newSymbol->numpoints, &minx, &miny, &maxx, &maxy);
- if ( (fabs(minx)>TOL) || (fabs(miny)>TOL) ) {
- xcor = minx*-1.0; /* symbols always start at 0,0 so get the shift vector */
- ycor = miny*-1.0;
- for( i=0; i < newSymbol->numpoints; i++) {
- if ((newSymbol->points[i].x == -99.0) && (newSymbol->points[i].x == -99.0))
- continue;
- newSymbol->points[i].x = newSymbol->points[i].x + xcor;
- newSymbol->points[i].y = newSymbol->points[i].y + ycor;
- }
-
- /* update the bbox to get the final dimension values for the symbol */
- get_bbox(newSymbol->points, newSymbol->numpoints, &minx, &miny, &maxx, &maxy);
- }
- newSymbol->sizex = maxx;
- newSymbol->sizey = maxy;
- return newSymbol;
-}
-
-int renderVectorSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style)
-{
- int bRotated = MS_FALSE;
- int j,k;
- gdImagePtr ip;
- gdPoint mPoints[MS_MAXVECTORPOINTS];
- gdPoint oldpnt,newpnt;
- int fc,oc;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
-
-
- SETPEN(ip, style->color);
- SETPEN(ip, style->outlinecolor);
- fc = style->color ? style->color->pen : -1;
- oc = style->outlinecolor ? style->outlinecolor->pen : -1;
-
- if(oc==-1 && fc ==-1) {
- return MS_SUCCESS;
- }
-
- if (style->rotation != 0.0) {
- bRotated = MS_TRUE;
- symbol = rotateVectorSymbolPoints(symbol, style->rotation);
- if(!symbol) {
- return MS_FAILURE;
- }
- }
-
- /* We avoid MS_NINT in this context because the potentially variable
- handling of 0.5 rounding is often a problem for symbols which are
- often an odd size (ie. 7pixels) and so if "p" is integral the
- value is always on a 0.5 boundary - bug 1716 */
- x -= style->scale*.5*symbol->sizex;
- y -= style->scale*.5*symbol->sizey;
-
- if(symbol->filled) { /* if filled */
-
- k = 0; /* point counter */
- for(j=0; j < symbol->numpoints; j++) {
- if((symbol->points[j].x == -99) && (symbol->points[j].x == -99)) { /* new polygon (PENUP) */
- if(k>2) {
- if(fc >= 0)
- gdImageFilledPolygon(ip, mPoints, k, fc);
- if(oc >= 0)
- gdImagePolygon(ip, mPoints, k, oc);
- }
- k = 0; /* reset point counter */
- } else {
- mPoints[k].x = MS_NINT(style->scale*symbol->points[j].x + x);
- mPoints[k].y = MS_NINT(style->scale*symbol->points[j].y + y);
- k++;
- }
- }
-
- if(fc >= 0)
- gdImageFilledPolygon(ip, mPoints, k, fc);
- if(oc >= 0)
- gdImagePolygon(ip, mPoints, k, oc);
-
- } else { /* NOT filled */
-
- if(oc >= 0) fc = oc; /* try the outline color (reference maps sometimes do this when combining a box and a custom vector marker */
-
- oldpnt.x = MS_NINT(style->scale*symbol->points[0].x + x); /* convert first point in marker */
- oldpnt.y = MS_NINT(style->scale*symbol->points[0].y + y);
-
- gdImageSetThickness(ip, style->outlinewidth);
-
- for(j=1; j < symbol->numpoints; j++) { /* step through the marker */
- if((symbol->points[j].x != -99) || (symbol->points[j].x != -99)) {
- if((symbol->points[j-1].x == -99) && (symbol->points[j-1].y == -99)) { /* Last point was PENUP, now a new beginning */
- oldpnt.x = MS_NINT(style->scale*symbol->points[j].x + x);
- oldpnt.y = MS_NINT(style->scale*symbol->points[j].y + y);
- } else {
- newpnt.x = MS_NINT(style->scale*symbol->points[j].x + x);
- newpnt.y = MS_NINT(style->scale*symbol->points[j].y + y);
- gdImageLine(ip, oldpnt.x, oldpnt.y, newpnt.x, newpnt.y, fc);
- oldpnt = newpnt;
- }
- }
- } /* end for loop */
-
- gdImageSetThickness(ip, 1); /* restore thinkness */
- } /* end if-then-else */
-
- if(bRotated) {
- msFreeSymbol(symbol); /* clean up */
- msFree(symbol);
- }
- return MS_SUCCESS;
-}
-
-int renderTruetypeSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *s)
-{
-#ifdef USE_GD_FREETYPE
- int bbox[8];
- char *error;
- int c,oc = 0;
- gdImagePtr ip;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- SETPEN(ip, s->color);
- SETPEN(ip, s->outlinecolor);
-
- if(s->style->antialias) {
- c = s->color->pen;
- if(s->outlinecolor)
- oc = s->outlinecolor->pen;
- } else {
- c = -s->color->pen;
- if(s->outlinecolor)
- oc = -s->outlinecolor->pen;
- }
- gdImageStringFT(NULL, bbox, c, symbol->full_font_path, s->scale, s->rotation, 0,0, symbol->character);
-
- x -= (bbox[2] - bbox[0])/2 + bbox[0];
- y += (bbox[1] - bbox[5])/2 - bbox[1];
-
- if( s->outlinecolor ) {
- error = gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x, y-1, symbol->character);
- if(error) {
- msSetError(MS_TTFERR, "%s", "renderTruetypeSymbolGD()", error);
- return MS_FAILURE;
- }
-
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x, y+1, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x+1, y, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x-1, y, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x+1, y+1, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x+1, y-1, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x-1, y+1, symbol->character);
- gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x-1, y-1, symbol->character);
- }
- if(s->color)
- gdImageStringFT(ip, bbox, c, symbol->full_font_path, s->scale, s->rotation, x, y, symbol->character);
- return MS_SUCCESS;
-#else
- msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "renderTruetypeSymbolGD()");
- return MS_FAILURE;
-#endif
-}
-
-gdImagePtr rotatePixmapGD(gdImagePtr img, double angle_rad)
-{
- gdImagePtr rimg = NULL;
- double cos_a, sin_a;
- double x1 = 0.0, y1 = 0.0; /* destination rectangle */
- double x2 = 0.0, y2 = 0.0;
- double x3 = 0.0, y3 = 0.0;
- double x4 = 0.0, y4 = 0.0;
-
- long minx, miny, maxx, maxy;
-
- int width=0, height=0;
- /* int color; */
-
- sin_a = sin(angle_rad);
- cos_a = cos(angle_rad);
-
- /* compute distination rectangle (x1,y1 is known) */
- x1 = 0 ;
- y1 = 0 ;
- x2 = img->sy * sin_a;
- y2 = -img->sy * cos_a;
- x3 = (img->sx * cos_a) + (img->sy * sin_a);
- y3 = (img->sx * sin_a) - (img->sy * cos_a);
- x4 = (img->sx * cos_a);
- y4 = (img->sx * sin_a);
-
- minx = (long) MS_MIN(x1,MS_MIN(x2,MS_MIN(x3,x4)));
- miny = (long) MS_MIN(y1,MS_MIN(y2,MS_MIN(y3,y4)));
- maxx = (long) MS_MAX(x1,MS_MAX(x2,MS_MAX(x3,x4)));
- maxy = (long) MS_MAX(y1,MS_MAX(y2,MS_MAX(y3,y4)));
-
- width = (int)ceil(maxx-minx);
- height = (int)ceil(maxy-miny);
-
- /* create the new image based on the computed width/height */
-
- if (gdImageTrueColor(img)) {
- rimg = gdImageCreateTrueColor(width, height);
- gdImageAlphaBlending(rimg, 0);
- gdImageFilledRectangle(rimg, 0, 0, width, height, gdImageColorAllocateAlpha(rimg, 0, 0, 0, gdAlphaTransparent));
- } else {
- int tc = gdImageGetTransparent(img);
- rimg = gdImageCreate(width, height);
- if(tc != -1)
- gdImageColorTransparent(rimg, gdImageColorAllocate(rimg, gdImageRed(img, tc), gdImageGreen(img, tc), gdImageBlue(img, tc)));
- }
- if(!rimg) {
- msSetError(MS_GDERR,"failed to create rotated pixmap","rotatePixmapGD()");
- return NULL;
- }
-
- gdImageCopyRotated (rimg, img, width*0.5, height*0.5, 0, 0, gdImageSX(img), gdImageSY(img), angle_rad*MS_RAD_TO_DEG);
- return rimg;
-}
-
-int renderPixmapSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style)
-{
- gdImagePtr ip,pp;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- assert(symbol->pixmap_buffer && symbol->pixmap_buffer->type == MS_BUFFER_GD);
- pp = symbol->pixmap_buffer->data.gd_img;
- /* gdImageAlphaBlending(ip,1); */
- /* gdImageAlphaBlending(pp,1); */
-
- if(symbol->transparent)
- gdImageColorTransparent(pp,symbol->transparentcolor);
- if(style->scale == 1.0 && style->rotation == 0.0) { /* don't scale */
- x -= .5*symbol->pixmap_buffer->width;
- y -= .5*symbol->pixmap_buffer->height;
- gdImageCopy(ip, pp, x, y, 0, 0, symbol->pixmap_buffer->width,symbol->pixmap_buffer->height);
- } else {
- int bRotated = MS_FALSE;
- if(style->rotation) {
- bRotated = MS_TRUE;
- pp = rotatePixmapGD(pp,style->rotation);
- }
- x -= .5*gdImageSX(pp)*style->scale;
- y -= .5*gdImageSY(pp)*style->scale;
- gdImageCopyResampled(ip, pp, x, y, 0, 0,
- (int)(gdImageSX(pp) * style->scale),
- (int)(gdImageSY(pp) * style->scale),
- gdImageSX(pp),gdImageSY(pp));
- if(bRotated) {
- gdImageDestroy(pp);
- }
- }
- /* gdImageAlphaBlending(ip,0); */
- return MS_SUCCESS;
-}
-
-int renderTileGD(imageObj *img, imageObj *tile, double x, double y)
-{
- return MS_SUCCESS;
-}
-
-int renderPolygonTiledGD(imageObj *img, shapeObj *p, imageObj *tile)
-{
- gdImagePtr ip, tp;
-
- if(!img || !p || !tile) return MS_FAILURE;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- if(!(tp = MS_IMAGE_GET_GDIMAGEPTR(tile))) return MS_FAILURE;
- gdImageColorTransparent(tp,0);
- gdImageSetTile(ip, tp);
- imageFilledPolygon(ip, p, gdTiled);
- return MS_SUCCESS;
-}
-
-
-int initializeRasterBufferGD(rasterBufferObj *rb, int width, int height, int mode)
-{
- rb->type = MS_BUFFER_GD;
- rb->data.gd_img = gdImageCreate(width, height);
- if(!rb->data.gd_img)
- return MS_FAILURE;
- rb->width = width;
- rb->height= height;
- return MS_SUCCESS;
-}
-
-/*
-** GD driver-specific raster buffer functions.
-*/
-int getRasterBufferHandleGD(imageObj *img, rasterBufferObj *rb)
-{
- gdImagePtr gdImg = MS_IMAGE_GET_GDIMAGEPTR(img);
- rb->type = MS_BUFFER_GD;
- rb->data.gd_img = gdImg;
- rb->width = gdImg->sx;
- rb->height = gdImg->sy;
- return MS_SUCCESS;
-
-}
-
-int getRasterBufferCopyGD(imageObj *img, rasterBufferObj *rb)
-{
- gdImagePtr gdImg = MS_IMAGE_GET_GDIMAGEPTR(img);
- int row;
- rb->type = MS_BUFFER_GD;
- rb->width = gdImg->sx;
- rb->height = gdImg->sy;
- rb->data.gd_img = gdImageCreate(gdImg->sx,gdImg->sy);
- rb->data.gd_img->transparent = gdImg->transparent;
- gdImagePaletteCopy(rb->data.gd_img,gdImg);
- for(row=0; row<gdImg->sy; row++)
- memcpy(rb->data.gd_img->pixels[row],gdImg->pixels[row],gdImg->sx);
- return MS_SUCCESS;
-}
-
-int mergeRasterBufferGD(imageObj *dest, rasterBufferObj *overlay, double opacity, int srcX, int srcY, int dstX, int dstY, int width, int height)
-{
- assert(dest && overlay);
- assert(overlay->type == MS_BUFFER_GD);
- gdImageCopyMerge(MS_IMAGE_GET_GDIMAGEPTR(dest),overlay->data.gd_img,dstX,dstY,srcX,srcY,width,height,opacity*100);
- return MS_SUCCESS;
-}
-
-int getTruetypeTextBBoxGD(rendererVTableObj *renderer, char **fonts, int numfonts, double size, char *string, rectObj *rect, double **advances, int bAdjustBaseline)
-{
-#ifdef USE_GD_FREETYPE
- int bbox[8];
- char *error;
- if(advances) {
- char *s;
- int k;
- gdFTStringExtra strex;
- strex.flags = gdFTEX_XSHOW;
- error = gdImageStringFTEx(NULL, bbox, 0, fonts[0], size, 0, 0, 0, string, &strex);
- if(error) {
- msSetError(MS_TTFERR, "%s", "gdImageStringFTEx()", error);
- return(MS_FAILURE);
- }
-
- *advances = (double*)malloc( strlen(string) * sizeof(double) );
- MS_CHECK_ALLOC(*advances, strlen(string) * sizeof(double), MS_FAILURE);
- s = strex.xshow;
- k = 0;
- /* TODO this smells buggy and can cause errors at a higher level. strlen NOK here*/
- while ( *s && k < strlen(string) ) {
- (*advances)[k++] = atof(s);
- while ( *s && *s != ' ')
- s++;
- if ( *s == ' ' )
- s++;
- }
-
- gdFree(strex.xshow); /* done with character advances */
-
- rect->minx = bbox[0];
- rect->miny = bbox[5];
- rect->maxx = bbox[2];
- rect->maxy = bbox[1];
- return MS_SUCCESS;
- } else {
- error = gdImageStringFT(NULL, bbox, 0, fonts[0], size, 0, 0, 0, string);
- if(error) {
- msSetError(MS_TTFERR, "%s", "msGetTruetypeTextBBoxGD()", error);
- return(MS_FAILURE);
- }
-
- rect->minx = bbox[0];
- rect->miny = bbox[5];
- rect->maxx = bbox[2];
- rect->maxy = bbox[1];
- return MS_SUCCESS;
- }
-#else
- msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "getTruetypeTextBBoxGD()");
- return MS_FAILURE;
-#endif
-}
-
-int renderBitmapGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char *text)
-{
- int size = MS_NINT(style->size);
- gdFontPtr fontPtr;
- gdImagePtr ip;
- int numlines=0,t;
- char **lines;
- if(!(ip = MS_IMAGE_GET_GDIMAGEPTR(img))) return MS_FAILURE;
- if(size<0 || size>4 || (fontPtr = msGetBitmapFont(size))==NULL) {
- msSetError(MS_RENDERERERR,"invalid bitmap font size", "renderBitmapGlyphsGD()");
- return MS_FAILURE;
- }
-
- SETPEN(ip, style->color);
- SETPEN(ip, style->outlinecolor);
-
- if(msCountChars(text,'\n')) {
- if((lines = msStringSplit((const char*)text, '\n', &(numlines))) == NULL)
- return(-1);
- } else {
- lines = &text;
- numlines = 1;
- }
-
- y -= fontPtr->h;
- for(t=0; t<numlines; t++) {
- if(style->outlinewidth > 0) {
- gdImageString(ip, fontPtr, x, y-1, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x, y+1, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x+1, y, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x-1, y, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x+1, y-1, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x+1, y+1, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x-1, y-1, (unsigned char *) lines[t], style->outlinecolor->pen);
- gdImageString(ip, fontPtr, x-1, y+1, (unsigned char *) lines[t], style->outlinecolor->pen);
- }
- if(style->color->pen != -1) {
- gdImageString(ip, fontPtr, x, y, (unsigned char *) lines[t], style->color->pen);
- }
-
- y += fontPtr->h; /* shift down */
- }
-
-
- if(*lines != text)
- msFreeCharArray(lines, numlines);
- return MS_SUCCESS;
-}
-
-/*
-** Misc. cleanup functions for GD driver.
-*/
-
-int freeSymbolGD(symbolObj *s)
-{
- return MS_SUCCESS;
-}
-
-int msPopulateRendererVTableGD( rendererVTableObj *renderer )
-{
- int i;
- renderer->use_imagecache=0;
- renderer->supports_pixel_buffer=1;
- renderer->supports_transparent_layers = 0;
- renderer->supports_bitmap_fonts = 1;
- renderer->default_transform_mode = MS_TRANSFORM_ROUND;
-
- for(i=0; i<5; i++) {
- gdFontPtr f = msGetBitmapFont(i);
- bitmapFontMetricsGD[i].charWidth = f->w;
- bitmapFontMetricsGD[i].charHeight = f->h;
- renderer->bitmapFontMetrics[i] = &bitmapFontMetricsGD[i];
- }
-
-
- renderer->startLayer = startNewLayerGD;
- renderer->endLayer = closeNewLayerGD;
- renderer->renderLineTiled = NULL;
- renderer->renderLine = &renderLineGD;
- renderer->createImage = &createImageGD;
- renderer->saveImage = &saveImageGD;
- renderer->getRasterBufferHandle = &getRasterBufferHandleGD;
- renderer->getRasterBufferCopy = &getRasterBufferCopyGD;
- renderer->initializeRasterBuffer = initializeRasterBufferGD;
- renderer->loadImageFromFile = msLoadGDRasterBufferFromFile;
- renderer->renderPolygon = &renderPolygonGD;
- renderer->renderGlyphs = &renderGlyphsGD;
- renderer->renderBitmapGlyphs = &renderBitmapGlyphsGD;
- renderer->freeImage = &freeImageGD;
- renderer->renderEllipseSymbol = &renderEllipseSymbolGD;
- renderer->renderVectorSymbol = &renderVectorSymbolGD;
- renderer->renderTruetypeSymbol = &renderTruetypeSymbolGD;
- renderer->renderPixmapSymbol = &renderPixmapSymbolGD;
- renderer->mergeRasterBuffer = &mergeRasterBufferGD;
- renderer->getTruetypeTextBBox = &getTruetypeTextBBoxGD;
- renderer->renderTile = &renderTileGD;
- renderer->renderPolygonTiled = &renderPolygonTiledGD;
- renderer->freeSymbol = &freeSymbolGD;
- return MS_SUCCESS;
-}
-
-#endif
diff --git a/mapgdal.c b/mapgdal.c
index 33868dc..b2cf2d9 100644
--- a/mapgdal.c
+++ b/mapgdal.c
@@ -215,7 +215,10 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
if( format->imagemode == MS_IMAGEMODE_RGB ) {
nBands = 3;
assert( MS_RENDERER_PLUGIN(format) && format->vtable->supports_pixel_buffer );
- format->vtable->getRasterBufferHandle(image,&rb);
+ if(UNLIKELY(MS_FAILURE == format->vtable->getRasterBufferHandle(image,&rb))) {
+ msReleaseLock( TLOCK_GDAL );
+ return MS_FAILURE;
+ }
} else if( format->imagemode == MS_IMAGEMODE_RGBA ) {
pabyAlphaLine = (GByte *) calloc(image->width,1);
if (pabyAlphaLine == NULL) {
@@ -225,7 +228,10 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
}
nBands = 4;
assert( MS_RENDERER_PLUGIN(format) && format->vtable->supports_pixel_buffer );
- format->vtable->getRasterBufferHandle(image,&rb);
+ if(UNLIKELY(MS_FAILURE == format->vtable->getRasterBufferHandle(image,&rb))) {
+ msReleaseLock( TLOCK_GDAL );
+ return MS_FAILURE;
+ }
} else if( format->imagemode == MS_IMAGEMODE_INT16 ) {
nBands = format->bands;
eDataType = GDT_Int16;
@@ -236,17 +242,9 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
nBands = format->bands;
eDataType = GDT_Byte;
} else {
-#ifdef USE_GD
- assert( format->imagemode == MS_IMAGEMODE_PC256
- && format->renderer == MS_RENDER_WITH_GD );
-#else
- {
- msReleaseLock( TLOCK_GDAL );
- msSetError( MS_MEMERR, "GD not compiled in. This is a bug.", "msSaveImageGDAL()");
- return MS_FAILURE;
- }
-#endif
-
+ msReleaseLock( TLOCK_GDAL );
+ msSetError( MS_MEMERR, "Unkown format. This is a bug.", "msSaveImageGDAL()");
+ return MS_FAILURE;
}
/* -------------------------------------------------------------------- */
@@ -296,16 +294,7 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
image->img.raw_byte + iLine * image->width
+ iBand * image->width * image->height,
image->width, 1, GDT_Byte, 1, 0 );
- }
-#ifdef USE_GD
- else if(format->renderer == MS_RENDER_WITH_GD) {
- gdImagePtr img = (gdImagePtr)image->img.plugin;
- GDALRasterIO( hBand, GF_Write, 0, iLine, image->width, 1,
- img->pixels[iLine],
- image->width, 1, GDT_Byte, 0, 0 );
- }
-#endif
- else {
+ } else {
GByte *pabyData;
unsigned char *pixptr = NULL;
assert( rb.type == MS_BUFFER_BYTE_RGBA );
@@ -371,36 +360,6 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
/* -------------------------------------------------------------------- */
/* Attach the palette if appropriate. */
/* -------------------------------------------------------------------- */
-#ifdef USE_GD
- if( format->renderer == MS_RENDER_WITH_GD ) {
- GDALColorEntry sEntry;
- int iColor;
- GDALColorTableH hCT;
- gdImagePtr img = (gdImagePtr)image->img.plugin;
- hCT = GDALCreateColorTable( GPI_RGB );
-
- for( iColor = 0; iColor < img->colorsTotal; iColor++ ) {
- sEntry.c1 = img->red[iColor];
- sEntry.c2 = img->green[iColor];
- sEntry.c3 = img->blue[iColor];
-
- if( iColor == gdImageGetTransparent( img ) )
- sEntry.c4 = 0;
- else if( iColor == 0
- && gdImageGetTransparent( img ) == -1
- && format->transparent )
- sEntry.c4 = 0;
- else
- sEntry.c4 = 255;
-
- GDALSetColorEntry( hCT, iColor, &sEntry );
- }
-
- GDALSetRasterColorTable( GDALGetRasterBand( hMemDS, 1 ), hCT );
-
- GDALDestroyColorTable( hCT );
- } else
-#endif
if( format->imagemode == MS_IMAGEMODE_RGB ) {
GDALSetRasterColorInterpretation(
GDALGetRasterBand( hMemDS, 1 ), GCI_RedBand );
diff --git a/mapgeomtransform.c b/mapgeomtransform.c
index 37cc72d..1458017 100644
--- a/mapgeomtransform.c
+++ b/mapgeomtransform.c
@@ -96,10 +96,10 @@ double calcMidAngle(pointObj *p1, pointObj *p2, pointObj *p3)
* - transform the original shapeobj
* - use the styleObj to render the transformed shapeobj
*/
-int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image, shapeObj *shape, styleObj *style, double scalefactor)
+int msDrawTransformedShape(mapObj *map, imageObj *image, shapeObj *shape, styleObj *style, double scalefactor)
{
int type = style->_geomtransform.type;
- int i,j;
+ int i,j,status = MS_SUCCESS;
switch(type) {
case MS_GEOMTRANSFORM_END: /*render point on last vertex only*/
for(j=0; j<shape->numlines; j++) {
@@ -110,7 +110,7 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
if(style->autoangle==MS_TRUE && line->numpoints>1) {
style->angle = calcOrientation(&(line->point[line->numpoints-2]),p);
}
- msDrawMarkerSymbol(symbolset,image,p,style,scalefactor);
+ status = msDrawMarkerSymbol(map,image,p,style,scalefactor);
}
break;
case MS_GEOMTRANSFORM_START: /*render point on first vertex only*/
@@ -123,7 +123,7 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
if(style->autoangle==MS_TRUE && line->numpoints>1) {
style->angle = calcOrientation(p,&(line->point[1]));
}
- msDrawMarkerSymbol(symbolset,image,p,style,scalefactor);
+ status = msDrawMarkerSymbol(map,image,p,style,scalefactor);
}
break;
case MS_GEOMTRANSFORM_VERTICES:
@@ -137,7 +137,7 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
if(style->autoangle==MS_TRUE) {
style->angle = calcMidAngle(&(line->point[i-1]),&(line->point[i]),&(line->point[i+1]));
}
- msDrawMarkerSymbol(symbolset,image,p,style,scalefactor);
+ status = msDrawMarkerSymbol(map,image,p,style,scalefactor);
}
}
break;
@@ -162,14 +162,14 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
(shape->bounds.miny < -padding) ? -padding : shape->bounds.miny;
bbox_points[1].y=bbox_points[2].y =
(shape->bounds.maxy > image->height+padding) ? image->height+padding : shape->bounds.maxy;
- msDrawShadeSymbol(symbolset, image, &bbox, style, scalefactor);
+ status = msDrawShadeSymbol(map, image, &bbox, style, scalefactor);
}
break;
case MS_GEOMTRANSFORM_CENTROID: {
double unused; /*used by centroid function*/
pointObj centroid;
if(MS_SUCCESS == msGetPolygonCentroid(shape,¢roid,&unused,&unused)) {
- msDrawMarkerSymbol(symbolset,image,¢roid,style,scalefactor);
+ status = msDrawMarkerSymbol(map,image,¢roid,style,scalefactor);
}
}
break;
@@ -193,10 +193,10 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
switch (tmpshp->type) {
case MS_SHAPE_POINT:
case MS_SHAPE_POLYGON:
- msDrawShadeSymbol(symbolset, image, tmpshp, style, scalefactor);
+ status = msDrawShadeSymbol(map, image, tmpshp, style, scalefactor);
break;
case MS_SHAPE_LINE:
- msDrawLineSymbol(symbolset, image, tmpshp, style, scalefactor);
+ status = msDrawLineSymbol(map, image, tmpshp, style, scalefactor);
break;
}
@@ -211,7 +211,7 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
msSetError(MS_MISCERR, "unknown geomtransform", "msDrawTransformedShape()");
return MS_FAILURE;
}
- return MS_SUCCESS;
+ return status;
}
/*
@@ -221,8 +221,21 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
int msGeomTransformShape(mapObj *map, layerObj *layer, shapeObj *shape)
{
int i;
- expressionObj *e = &layer->_geomtransform;
-
+ expressionObj *e = &layer->_geomtransform;
+
+#ifdef USE_V8_MAPSCRIPT
+ if (!map->v8context) {
+ msV8CreateContext(map);
+ if (!map->v8context)
+ {
+ msSetError(MS_V8ERR, "Unable to create v8 context.", "msGeomTransformShape()");
+ return MS_FAILURE;
+ }
+ }
+
+ msV8ContextSetLayer(map, layer);
+#endif
+
switch(e->type) {
case MS_GEOMTRANSFORM_EXPRESSION: {
int status;
diff --git a/mapgeos.c b/mapgeos.c
index c319a66..08c9b64 100644
--- a/mapgeos.c
+++ b/mapgeos.c
@@ -31,6 +31,10 @@
#ifdef USE_GEOS
+// To avoid accidental use of non reentrant GEOS API.
+// (check only effective in GEOS >= 3.5)
+#define GEOS_USE_ONLY_R_API
+
#include <geos_c.h>
/*
@@ -269,14 +273,17 @@ static GEOSGeom msGEOSShape2Geometry_simplepolygon(shapeObj *shape, int r, int *
if(numInnerRings > 0) {
k = 0; /* inner ring counter */
- innerRings = malloc(numInnerRings*sizeof(GEOSGeom));
- if(!innerRings) return NULL; /* todo, this will leak memory (outerRing) */
+ innerRings = msSmallMalloc(numInnerRings*sizeof(GEOSGeom));
for(j=0; j<shape->numlines; j++) {
if(innerList[j] == MS_FALSE) continue;
coords = GEOSCoordSeq_create_r(handle,shape->line[j].numpoints, 2); /* todo handle z's */
- if(!coords) return NULL; /* todo, this will leak memory (shell + allocated holes) */
+ if(!coords) {
+ free(innerRings);
+ free(innerList);
+ return NULL; /* todo, this will leak memory (shell + allocated holes) */
+ }
for(i=0; i<shape->line[j].numpoints; i++) {
GEOSCoordSeq_setX_r(handle,coords, i, shape->line[j].point[i].x);
@@ -316,8 +323,7 @@ static GEOSGeom msGEOSShape2Geometry_polygon(shapeObj *shape)
if(numOuterRings == 1) {
g = msGEOSShape2Geometry_simplepolygon(shape, lastOuterRing, outerList);
} else { /* a true multipolygon */
- polygons = malloc(numOuterRings*sizeof(GEOSGeom));
- if(!polygons) return NULL;
+ polygons = msSmallMalloc(numOuterRings*sizeof(GEOSGeom));
j = 0; /* part counter */
for(i=0; i<shape->numlines; i++) {
diff --git a/mapgml.c b/mapgml.c
index dcbd271..3e07119 100644
--- a/mapgml.c
+++ b/mapgml.c
@@ -30,21 +30,23 @@
#include "mapserver.h"
#include "maperror.h"
#include "mapgml.h"
-
+#include "maptime.h"
/* Use only mapgml.c if WMS or WFS is available (with minor exceptions at end)*/
#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR)
-static int msGMLGeometryLookup(gmlGeometryListObj *geometryList, char *type);
+static int msGMLGeometryLookup(gmlGeometryListObj *geometryList, const char *type);
/*
** Functions that write the feature boundary geometry (i.e. a rectObj).
*/
/* GML 2.1.2 */
-static int gmlWriteBounds_GML2(FILE *stream, rectObj *rect, const char *srsname, char *tab)
+static int gmlWriteBounds_GML2(FILE *stream, rectObj *rect,
+ const char *srsname, const char *tab,
+ const char *pszTopPrefix)
{
char *srsname_encoded;
@@ -52,7 +54,7 @@ static int gmlWriteBounds_GML2(FILE *stream, rectObj *rect, const char *srsname,
if(!rect) return(MS_FAILURE);
if(!tab) return(MS_FAILURE);
- msIO_fprintf(stream, "%s<gml:boundedBy>\n", tab);
+ msIO_fprintf(stream, "%s<%s:boundedBy>\n", tab, pszTopPrefix);
if(srsname) {
srsname_encoded = msEncodeHTMLEntities(srsname);
msIO_fprintf(stream, "%s\t<gml:Box srsName=\"%s\">\n", tab, srsname_encoded);
@@ -64,13 +66,15 @@ static int gmlWriteBounds_GML2(FILE *stream, rectObj *rect, const char *srsname,
msIO_fprintf(stream, "%.6f,%.6f %.6f,%.6f", rect->minx, rect->miny, rect->maxx, rect->maxy );
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s\t</gml:Box>\n", tab);
- msIO_fprintf(stream, "%s</gml:boundedBy>\n", tab);
+ msIO_fprintf(stream, "%s</%s:boundedBy>\n", tab, pszTopPrefix);
return MS_SUCCESS;
}
-/* GML 3.1 (MapServer limits GML encoding to the level 0 profile) */
-static int gmlWriteBounds_GML3(FILE *stream, rectObj *rect, const char *srsname, char *tab)
+/* GML 3.1 or GML 3.2 (MapServer limits GML encoding to the level 0 profile) */
+static int gmlWriteBounds_GML3(FILE *stream, rectObj *rect,
+ const char *srsname, const char *tab,
+ const char *pszTopPrefix)
{
char *srsname_encoded;
@@ -78,7 +82,7 @@ static int gmlWriteBounds_GML3(FILE *stream, rectObj *rect, const char *srsname,
if(!rect) return(MS_FAILURE);
if(!tab) return(MS_FAILURE);
- msIO_fprintf(stream, "%s<gml:boundedBy>\n", tab);
+ msIO_fprintf(stream, "%s<%s:boundedBy>\n", tab, pszTopPrefix);
if(srsname) {
srsname_encoded = msEncodeHTMLEntities(srsname);
msIO_fprintf(stream, "%s\t<gml:Envelope srsName=\"%s\">\n", tab, srsname_encoded);
@@ -90,12 +94,13 @@ static int gmlWriteBounds_GML3(FILE *stream, rectObj *rect, const char *srsname,
msIO_fprintf(stream, "%s\t\t<gml:upperCorner>%.6f %.6f</gml:upperCorner>\n", tab, rect->maxx, rect->maxy);
msIO_fprintf(stream, "%s\t</gml:Envelope>\n", tab);
- msIO_fprintf(stream, "%s</gml:boundedBy>\n", tab);
+ msIO_fprintf(stream, "%s</%s:boundedBy>\n", tab, pszTopPrefix);
return MS_SUCCESS;
}
-static void gmlStartGeometryContainer(FILE *stream, char *name, char *namespace, const char *tab)
+static void gmlStartGeometryContainer(FILE *stream, const char *name,
+ const char *namespace, const char *tab)
{
const char *tag_name=OWS_GML_DEFAULT_GEOMETRY_NAME;
@@ -107,7 +112,8 @@ static void gmlStartGeometryContainer(FILE *stream, char *name, char *namespace,
msIO_fprintf(stream, "%s<%s>\n", tab, tag_name);
}
-static void gmlEndGeometryContainer(FILE *stream, char *name, char *namespace, const char *tab)
+static void gmlEndGeometryContainer(FILE *stream, const char *name,
+ const char *namespace, const char *tab)
{
const char *tag_name=OWS_GML_DEFAULT_GEOMETRY_NAME;
@@ -120,10 +126,13 @@ static void gmlEndGeometryContainer(FILE *stream, char *name, char *namespace, c
}
/* GML 2.1.2 */
-static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList, shapeObj *shape, const char *srsname, char *namespace, char *tab)
+static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
+ shapeObj *shape, const char *srsname,
+ const char *namespace, const char *tab,
+ int nSRSDimension)
{
int i, j, k;
- int *innerlist, *outerlist, numouters;
+ int *innerlist, *outerlist=NULL, numouters;
char *srsname_encoded = NULL;
int geometry_aggregate_index, geometry_simple_index;
@@ -160,7 +169,15 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s<gml:Point srsName=\"%s\">\n", tab, srsname_encoded);
else
msIO_fprintf(stream, "%s<gml:Point>\n", tab);
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%s <gml:coordinates>%f,%f,%f</gml:coordinates>\n",
+ tab, shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%s <gml:coordinates>%f,%f</gml:coordinates>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y);
+
msIO_fprintf(stream, "%s</gml:Point>\n", tab);
gmlEndGeometryContainer(stream, geometry_simple_name, namespace, tab);
@@ -179,6 +196,14 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
for(j=0; j<shape->line[i].numpoints; j++) {
msIO_fprintf(stream, "%s <gml:pointMember>\n", tab);
msIO_fprintf(stream, "%s <gml:Point>\n", tab);
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%s <gml:coordinates>%f,%f,%f</gml:coordinates>\n",
+ tab, shape->line[i].point[j].x, shape->line[i].point[j].y,
+ shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%s <gml:coordinates>%f,%f</gml:coordinates>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y);
msIO_fprintf(stream, "%s </gml:Point>\n", tab);
msIO_fprintf(stream, "%s </gml:pointMember>\n", tab);
@@ -213,7 +238,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(j=0; j<shape->line[i].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y,
+ shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s</gml:LineString>\n", tab);
@@ -235,7 +269,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(i=0; i<shape->line[j].numpoints; i++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[j].point[i].x, shape->line[j].point[i].y,
+ shape->line[j].point[i].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[j].point[i].x, shape->line[j].point[i].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s </gml:LineString>\n", tab);
msIO_fprintf(stream, "%s </gml:lineStringMember>\n", tab);
@@ -284,7 +327,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(j=0; j<shape->line[i].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y,
+ shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -297,7 +349,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(j=0; j<shape->line[k].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[k].point[j].x, shape->line[k].point[j].y,
+ shape->line[k].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[k].point[j].x, shape->line[k].point[j].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -311,6 +372,7 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
gmlEndGeometryContainer(stream, geometry_simple_name, namespace, tab);
}
free(outerlist);
+ outerlist = NULL;
} else if(geometry_aggregate_index != -1 || (geometryList->numgeometries == 0)) { /* write a MultiPolygon */
gmlStartGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
@@ -332,7 +394,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(j=0; j<shape->line[i].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y,
+ shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -345,7 +416,16 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:coordinates>", tab);
for(j=0; j<shape->line[k].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f,%f,%f ", shape->line[k].point[j].x, shape->line[k].point[j].y,
+ shape->line[k].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f,%f ", shape->line[k].point[j].x, shape->line[k].point[j].y);
+ }
msIO_fprintf(stream, "</gml:coordinates>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -362,6 +442,7 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s</gml:MultiPolygon>\n", tab);
free(outerlist);
+ outerlist = NULL;
gmlEndGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
} else {
@@ -375,16 +456,35 @@ static int gmlWriteGeometry_GML2(FILE *stream, gmlGeometryListObj *geometryList,
/* clean-up */
msFree(srsname_encoded);
+ msFree(outerlist);
return(MS_SUCCESS);
}
-/* GML 3.1 (MapServer limits GML encoding to the level 0 profile) */
-static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList, shapeObj *shape, const char *srsname, char *namespace, char *tab)
+static char* gmlCreateGeomId(OWSGMLVersion nGMLVersion, const char* pszFID, int* p_id)
{
- int i, j, k;
- int *innerlist, *outerlist, numouters;
+ char* pszGMLId;
+ if( nGMLVersion == OWS_GML32 )
+ {
+ pszGMLId = (char*) msSmallMalloc( strlen(pszFID) + 1 + strlen(" gml:id=\"\"") + 10 );
+ sprintf(pszGMLId, " gml:id=\"%s.%d\"", pszFID, *p_id);
+ (*p_id) ++;
+ }
+ else
+ pszGMLId = msStrdup("");
+ return pszGMLId;
+}
+
+/* GML 3.1 or GML 3.2 (MapServer limits GML encoding to the level 0 profile) */
+static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList, shapeObj *shape,
+ const char *srsname, const char *namespace, const char *tab,
+ const char *pszFID, OWSGMLVersion nGMLVersion,
+ int nSRSDimension)
+{
+ int i, j, k, id = 1;
+ int *innerlist, *outerlist=NULL, numouters;
char *srsname_encoded = NULL;
+ char* pszGMLId;
int geometry_aggregate_index, geometry_simple_index;
char *geometry_aggregate_name = NULL, *geometry_simple_name = NULL;
@@ -416,34 +516,55 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
gmlStartGeometryContainer(stream, geometry_simple_name, namespace, tab);
/* Point */
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:Point srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:Point%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:Point>\n", tab);
+ msIO_fprintf(stream, "%s <gml:Point%s>\n", tab, pszGMLId);
+
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%s <gml:pos srsDimension=\"3\">%f %f %f</gml:pos>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%s <gml:pos>%f %f</gml:pos>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y);
+
msIO_fprintf(stream, "%s </gml:Point>\n", tab);
gmlEndGeometryContainer(stream, geometry_simple_name, namespace, tab);
+ msFree(pszGMLId);
}
}
} else if((geometry_aggregate_index != -1) || (geometryList->numgeometries == 0)) { /* write a MultiPoint */
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
gmlStartGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
/* MultiPoint */
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:MultiPoint srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:MultiPoint%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:MultiPoint>\n", tab);
+ msIO_fprintf(stream, "%s <gml:MultiPoint%s>\n", tab, pszGMLId);
+
+ msFree(pszGMLId);
- msIO_fprintf(stream, "%s <gml:pointMembers>\n", tab);
for(i=0; i<shape->numlines; i++) {
for(j=0; j<shape->line[i].numpoints; j++) {
- msIO_fprintf(stream, "%s <gml:Point>\n", tab);
+ msIO_fprintf(stream, "%s <gml:pointMember>\n", tab);
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
+ msIO_fprintf(stream, "%s <gml:Point%s>\n", tab, pszGMLId);
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%s <gml:pos srsDimension=\"3\">%f %f %f</gml:pos>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%s <gml:pos>%f %f</gml:pos>\n", tab, shape->line[i].point[j].x, shape->line[i].point[j].y);
msIO_fprintf(stream, "%s </gml:Point>\n", tab);
+ msFree(pszGMLId);
+ msIO_fprintf(stream, "%s </gml:pointMember>\n", tab);
}
}
- msIO_fprintf(stream, "%s </gml:pointMembers>\n", tab);
msIO_fprintf(stream, "%s </gml:MultiPoint>\n", tab);
@@ -466,14 +587,24 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
gmlStartGeometryContainer(stream, geometry_simple_name, namespace, tab);
/* LineString (should be Curve?) */
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:LineString srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:LineString%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:LineString>\n", tab);
+ msIO_fprintf(stream, "%s <gml:LineString%s>\n", tab, pszGMLId);
+ msFree(pszGMLId);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[i].numpoints; j++)
- msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
+ msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LineString>\n", tab);
@@ -484,22 +615,35 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
gmlStartGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
/* MultiCurve */
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:MultiCurve srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:MultiCurve%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:MultiCurve>\n", tab);
+ msIO_fprintf(stream, "%s <gml:MultiCurve%s>\n", tab, pszGMLId);
+ msFree(pszGMLId);
- msIO_fprintf(stream, "%s <gml:curveMembers>\n", tab);
for(i=0; i<shape->numlines; i++) {
- msIO_fprintf(stream, "%s <gml:LineString>\n", tab); /* no srsname at this point */
+ msIO_fprintf(stream, "%s <gml:curveMember>\n", tab);
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
+ msIO_fprintf(stream, "%s <gml:LineString%s>\n", tab, pszGMLId); /* no srsname at this point */
+ msFree(pszGMLId);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[i].numpoints; j++)
- msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
+ msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
+
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LineString>\n", tab);
+ msIO_fprintf(stream, "%s </gml:curveMember>\n", tab);
}
- msIO_fprintf(stream, "%s </gml:curveMembers>\n", tab);
msIO_fprintf(stream, "%s </gml:MultiCurve>\n", tab);
@@ -533,18 +677,30 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
gmlStartGeometryContainer(stream, geometry_simple_name, namespace, tab);
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
+
/* Polygon (should be Surface?) */
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:Polygon srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:Polygon%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:Polygon>\n", tab);
+ msIO_fprintf(stream, "%s <gml:Polygon%s>\n", tab, pszGMLId);
+ msFree(pszGMLId);
msIO_fprintf(stream, "%s <gml:exterior>\n", tab);
msIO_fprintf(stream, "%s <gml:LinearRing>\n", tab);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[i].numpoints; j++)
- msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
+ msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
+
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -555,9 +711,18 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:interior>\n", tab);
msIO_fprintf(stream, "%s <gml:LinearRing>\n", tab);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[k].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[k].point[j].x, shape->line[k].point[j].y, shape->line[k].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f %f ", shape->line[k].point[j].x, shape->line[k].point[j].y);
+ }
+
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -571,30 +736,46 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
gmlEndGeometryContainer(stream, geometry_simple_name, namespace, tab);
}
free(outerlist);
+ outerlist = NULL;
} else if(geometry_aggregate_index != -1 || (geometryList->numgeometries == 0)) { /* write a MultiSurface */
gmlStartGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
+
/* MultiSurface */
if(srsname_encoded)
- msIO_fprintf(stream, "%s <gml:MultiSurface srsName=\"%s\">\n", tab, srsname_encoded);
+ msIO_fprintf(stream, "%s <gml:MultiSurface%s srsName=\"%s\">\n", tab, pszGMLId, srsname_encoded);
else
- msIO_fprintf(stream, "%s <gml:MultiSurface>\n", tab);
+ msIO_fprintf(stream, "%s <gml:MultiSurface%s>\n", tab, pszGMLId);
+ msFree(pszGMLId);
- msIO_fprintf(stream, "%s <gml:surfaceMembers>\n", tab);
for(i=0; i<shape->numlines; i++) { /* step through the outer rings */
if(outerlist[i] == MS_TRUE) {
+ msIO_fprintf(stream, "%s <gml:surfaceMember>\n", tab);
/* get a list of inner rings for this polygon */
innerlist = msGetInnerList(shape, i, outerlist);
- msIO_fprintf(stream, "%s <gml:Polygon>\n", tab);
+ pszGMLId = gmlCreateGeomId(nGMLVersion, pszFID, &id);
+
+ msIO_fprintf(stream, "%s <gml:Polygon%s>\n", tab, pszGMLId);
+ msFree(pszGMLId);
msIO_fprintf(stream, "%s <gml:exterior>\n", tab);
msIO_fprintf(stream, "%s <gml:LinearRing>\n", tab);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[i].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y, shape->line[i].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f %f ", shape->line[i].point[j].x, shape->line[i].point[j].y);
+ }
+
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -605,9 +786,17 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s <gml:interior>\n", tab);
msIO_fprintf(stream, "%s <gml:LinearRing>\n", tab);
- msIO_fprintf(stream, "%s <gml:posList srsDimension=\"2\">", tab);
+ msIO_fprintf(stream, "%s <gml:posList srsDimension=\"%d\">", tab, nSRSDimension);
for(j=0; j<shape->line[k].numpoints; j++)
+ {
+#ifdef USE_POINT_Z_M
+ if( nSRSDimension == 3 )
+ msIO_fprintf(stream, "%f %f %f ", shape->line[k].point[j].x, shape->line[k].point[j].y, shape->line[k].point[j].z);
+ else
+ /* fall-through */
+#endif
msIO_fprintf(stream, "%f %f ", shape->line[k].point[j].x, shape->line[k].point[j].y);
+ }
msIO_fprintf(stream, "</gml:posList>\n");
msIO_fprintf(stream, "%s </gml:LinearRing>\n", tab);
@@ -618,12 +807,13 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
msIO_fprintf(stream, "%s </gml:Polygon>\n", tab);
free(innerlist);
+ msIO_fprintf(stream, "%s </gml:surfaceMember>\n", tab);
}
}
- msIO_fprintf(stream, "%s </gml:surfaceMembers>\n", tab);
msIO_fprintf(stream, "%s </gml:MultiSurface>\n", tab);
free(outerlist);
+ outerlist = NULL;
gmlEndGeometryContainer(stream, geometry_aggregate_name, namespace, tab);
} else {
@@ -636,6 +826,7 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
}
/* clean-up */
+ msFree(outerlist);
msFree(srsname_encoded);
return(MS_SUCCESS);
@@ -644,14 +835,17 @@ static int gmlWriteGeometry_GML3(FILE *stream, gmlGeometryListObj *geometryList,
/*
** Wrappers for the format specific encoding functions.
*/
-static int gmlWriteBounds(FILE *stream, int format, rectObj *rect, const char *srsname, char *tab)
+static int gmlWriteBounds(FILE *stream, OWSGMLVersion format, rectObj *rect,
+ const char *srsname, const char *tab,
+ const char *pszTopPrefix)
{
switch(format) {
case(OWS_GML2):
- return gmlWriteBounds_GML2(stream, rect, srsname, tab);
+ return gmlWriteBounds_GML2(stream, rect, srsname, tab, pszTopPrefix);
break;
case(OWS_GML3):
- return gmlWriteBounds_GML3(stream, rect, srsname, tab);
+ case(OWS_GML32):
+ return gmlWriteBounds_GML3(stream, rect, srsname, tab, pszTopPrefix);
break;
default:
msSetError(MS_IOERR, "Unsupported GML format.", "gmlWriteBounds()");
@@ -660,14 +854,18 @@ static int gmlWriteBounds(FILE *stream, int format, rectObj *rect, const char *s
return(MS_FAILURE);
}
-static int gmlWriteGeometry(FILE *stream, gmlGeometryListObj *geometryList, int format, shapeObj *shape, const char *srsname, char *namespace, char *tab)
+static int gmlWriteGeometry(FILE *stream, gmlGeometryListObj *geometryList,
+ OWSGMLVersion format, shapeObj *shape,
+ const char *srsname, const char *namespace,
+ const char *tab, const char* pszFID, int nSRSDimension)
{
switch(format) {
case(OWS_GML2):
- return gmlWriteGeometry_GML2(stream, geometryList, shape, srsname, namespace, tab);
+ return gmlWriteGeometry_GML2(stream, geometryList, shape, srsname, namespace, tab, nSRSDimension);
break;
case(OWS_GML3):
- return gmlWriteGeometry_GML3(stream, geometryList, shape, srsname, namespace, tab);
+ case(OWS_GML32):
+ return gmlWriteGeometry_GML3(stream, geometryList, shape, srsname, namespace, tab, pszFID, format, nSRSDimension);
break;
default:
msSetError(MS_IOERR, "Unsupported GML format.", "gmlWriteGeometry()");
@@ -680,7 +878,7 @@ static int gmlWriteGeometry(FILE *stream, gmlGeometryListObj *geometryList, int
** GML specific metadata handling functions.
*/
-int msItemInGroups(char *name, gmlGroupListObj *groupList)
+int msItemInGroups(const char *name, gmlGroupListObj *groupList)
{
int i, j;
gmlGroupObj *group;
@@ -697,7 +895,7 @@ int msItemInGroups(char *name, gmlGroupListObj *groupList)
return MS_FALSE;
}
-static int msGMLGeometryLookup(gmlGeometryListObj *geometryList, char *type)
+static int msGMLGeometryLookup(gmlGeometryListObj *geometryList, const char *type)
{
int i;
@@ -707,10 +905,13 @@ static int msGMLGeometryLookup(gmlGeometryListObj *geometryList, char *type)
if(geometryList->geometries[i].type && (strcasecmp(geometryList->geometries[i].type, type) == 0))
return i;
+ if( geometryList->numgeometries == 1 && geometryList->geometries[0].type == NULL )
+ return 0;
+
return -1; /* not found */
}
-gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_namespaces)
+gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_namespaces, int bWithDefaultGeom)
{
int i;
@@ -767,11 +968,20 @@ gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_nam
else
geometry->occurmax = atof(occur[1]);
}
+ msFreeCharArray(occur,numoccur);
}
}
msFreeCharArray(names, numnames);
}
+ else if( bWithDefaultGeom ) {
+ geometryList->numgeometries = 1;
+ geometryList->geometries = (gmlGeometryObj *) calloc(1, sizeof(gmlGeometryObj));
+ geometryList->geometries[0].name = msStrdup(OWS_GML_DEFAULT_GEOMETRY_NAME);
+ geometryList->geometries[0].type = NULL;
+ geometryList->geometries[0].occurmin = 0;
+ geometryList->geometries[0].occurmax = 1;
+ }
return geometryList;
}
@@ -791,37 +1001,74 @@ void msGMLFreeGeometries(gmlGeometryListObj *geometryList)
free(geometryList);
}
-static void msGMLWriteItem(FILE *stream, gmlItemObj *item, char *value, const char *namespace, const char *tab)
+static void msGMLWriteItem(FILE *stream, gmlItemObj *item,
+ const char *value, const char *namespace,
+ const char *tab,
+ OWSGMLVersion outputformat,
+ const char *pszFID)
{
- char *encoded_value, *tag_name;
+ char *encoded_value = NULL, *tag_name;
int add_namespace = MS_TRUE;
+ char gmlid[256];
+ gmlid[0] = 0;
if(!stream || !item) return;
if(!item->visible) return;
if(!namespace) add_namespace = MS_FALSE;
- if(item->encode == MS_TRUE)
- encoded_value = msEncodeHTMLEntities(value);
+ if(item->alias)
+ tag_name = item->alias;
else
- encoded_value = msStrdup(value);
+ tag_name = item->name;
+ if(strchr(tag_name, ':') != NULL) add_namespace = MS_FALSE;
+
+ if( item->type && EQUAL(item->type, "Date") ) {
+ struct tm tm;
+ if( msParseTime(value, &tm) == MS_TRUE ) {
+ const char* pszStartTag = "";
+ const char* pszEndTag = "";
+ int timeresolution;
+
+ timeresolution = msTimeGetResolution(value);
+ encoded_value = (char*) msSmallMalloc(256);
+ if( outputformat == OWS_GML32 ) {
+ if( pszFID != NULL )
+ snprintf(gmlid, 256, " gml:id=\"%s.%s\"", pszFID, tag_name);
+ pszStartTag = "<gml:timePosition>";
+ pszEndTag = "</gml:timePosition>";
+ }
+
+ if( timeresolution == TIME_RESOLUTION_DAY )
+ snprintf(encoded_value, 256, "%s%04d-%02d-%02d%s",
+ pszStartTag,
+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
+ pszEndTag);
+ else
+ snprintf(encoded_value, 256, "%s%04d-%02d-%02dT%02d:%02d:%02dZ%s",
+ pszStartTag,
+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
+ tm.tm_hour, tm.tm_min, tm.tm_sec, pszEndTag);
+ }
+ }
+
+ if( encoded_value == NULL )
+ {
+ if(item->encode == MS_TRUE)
+ encoded_value = msEncodeHTMLEntities(value);
+ else
+ encoded_value = msStrdup(value);
+ }
if(!item->template) { /* build the tag from pieces */
- if(item->alias) {
- tag_name = item->alias;
- if(strchr(item->alias, ':') != NULL) add_namespace = MS_FALSE;
- } else {
- tag_name = item->name;
- if(strchr(item->name, ':') != NULL) add_namespace = MS_FALSE;
- }
if(add_namespace == MS_TRUE && msIsXMLTagValid(tag_name) == MS_FALSE)
msIO_fprintf(stream, "<!-- WARNING: The value '%s' is not valid in a XML tag context. -->\n", tag_name);
if(add_namespace == MS_TRUE)
- msIO_fprintf(stream, "%s<%s:%s>%s</%s:%s>\n", tab, namespace, tag_name, encoded_value, namespace, tag_name);
+ msIO_fprintf(stream, "%s<%s:%s%s>%s</%s:%s>\n", tab, namespace, tag_name, gmlid, encoded_value, namespace, tag_name);
else
- msIO_fprintf(stream, "%s<%s>%s</%s>\n", tab, tag_name, encoded_value, tag_name);
+ msIO_fprintf(stream, "%s<%s%s>%s</%s>\n", tab, tag_name, gmlid, encoded_value, tag_name);
} else {
char *tag = NULL;
@@ -1016,7 +1263,8 @@ gmlGroupListObj *msGMLGetGroups(layerObj *layer, const char *metadata_namespaces
groupList->numgroups = 0;
/* list of groups (TODO: make this automatic by parsing metadata) */
- if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "groups")) != NULL) {
+ if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "groups")) != NULL &&
+ value[0] != '\0' ) {
names = msStringSplit(value, ',', &numnames);
/* allocation an array of gmlGroupObj's */
@@ -1063,11 +1311,18 @@ void msGMLFreeGroups(gmlGroupListObj *groupList)
msFreeCharArray(groupList->groups[i].items, groupList->groups[i].numitems);
msFree(groupList->groups[i].type);
}
+ msFree(groupList->groups);
free(groupList);
}
-static void msGMLWriteGroup(FILE *stream, gmlGroupObj *group, shapeObj *shape, gmlItemListObj *itemList, gmlConstantListObj *constantList, const char *namespace, const char *tab)
+static void msGMLWriteGroup(FILE *stream,
+ gmlGroupObj *group, shapeObj *shape,
+ gmlItemListObj *itemList,
+ gmlConstantListObj *constantList,
+ const char *namespace, const char *tab,
+ OWSGMLVersion outputformat,
+ const char *pszFID)
{
int i,j;
int add_namespace = MS_TRUE;
@@ -1105,7 +1360,7 @@ static void msGMLWriteGroup(FILE *stream, gmlGroupObj *group, shapeObj *shape, g
item = &(itemList->items[j]);
if(strcasecmp(item->name, group->items[i]) == 0) {
/* the number of items matches the number of values exactly */
- msGMLWriteItem(stream, item, shape->values[j], namespace, itemtab);
+ msGMLWriteItem(stream, item, shape->values[j], namespace, itemtab, outputformat, pszFID);
break;
}
}
@@ -1117,6 +1372,8 @@ static void msGMLWriteGroup(FILE *stream, gmlGroupObj *group, shapeObj *shape, g
else
msIO_fprintf(stream, "%s</%s>\n", tab, group->name);
+ msFree(itemtab);
+
return;
}
#endif
@@ -1151,9 +1408,7 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
}
}
- /* charset encoding: lookup "gml_encoding" metadata first, then */
- /* "wms_encoding", and if not found then use "ISO-8859-1" as default. */
- msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "encoding", OWS_NOERR, "<?xml version=\"1.0\" encoding=\"%s\"?>\n\n", "ISO-8859-1");
+ msIO_fprintf(stream, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n");
msOWSPrintValidateMetadata(stream, &(map->web.metadata), namespaces, "rootname", OWS_NOERR, "<%s ", "msGMLOutput");
msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "uri", OWS_NOERR, "xmlns=\"%s\"", NULL);
@@ -1172,6 +1427,9 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
/* step through the layers looking for query results */
for(i=0; i<map->numlayers; i++) {
const char *pszOutputSRS = NULL;
+ int nSRSDimension = 2;
+ const char* geomtype;
+
lp = (GET_LAYER(map, map->layerorder[i]));
if(lp->resultcache && lp->resultcache->numresults > 0) { /* found results */
@@ -1199,11 +1457,21 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
msOWSPrintMetadata(stream, &(lp->metadata), namespaces, "title", OWS_NOERR, "\t<gml:name>%s</gml:name>\n", value);
}
+ geomtype = msOWSLookupMetadata(&(lp->metadata), "OFG", "geomtype");
+ if( geomtype != NULL && (strstr(geomtype, "25d") != NULL || strstr(geomtype, "25D") != NULL) )
+ {
+#ifdef USE_POINT_Z_M
+ nSRSDimension = 3;
+#else
+ msIO_fprintf(stream, "<!-- WARNING: 25d requested forn typename '%s' but MapServer compiled without USE_POINT_Z_M support. -->\n", lp->name);
+#endif
+ }
+
/* populate item and group metadata structures */
itemList = msGMLGetItems(lp, namespaces);
constantList = msGMLGetConstants(lp, namespaces);
groupList = msGMLGetGroups(lp, namespaces);
- geometryList = msGMLGetGeometries(lp, namespaces);
+ geometryList = msGMLGetGeometries(lp, namespaces, MS_FALSE);
if (itemList == NULL || constantList == NULL || groupList == NULL || geometryList == NULL) {
msSetError(MS_MISCERR, "Unable to populate item and group metadata structures", "msGMLWriteQuery()");
return MS_FAILURE;
@@ -1211,7 +1479,13 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
for(j=0; j<lp->resultcache->numresults; j++) {
status = msLayerGetShape(lp, &shape, &(lp->resultcache->results[j]));
- if(status != MS_SUCCESS) return(status);
+ if(status != MS_SUCCESS) {
+ msGMLFreeGroups(groupList);
+ msGMLFreeConstants(constantList);
+ msGMLFreeItems(itemList);
+ msGMLFreeGeometries(geometryList);
+ return(status);
+ }
#ifdef USE_PROJ
/* project the shape into the map projection (if necessary), note that this projects the bounds as well */
@@ -1234,24 +1508,16 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
/* Write the feature geometry and bounding box unless 'none' was requested. */
/* Default to bbox only if nothing specified and output full geometry only if explicitly requested */
if(!(geometryList && geometryList->numgeometries == 1 && strcasecmp(geometryList->geometries[0].name, "none") == 0)) {
-
-#ifdef USE_PROJ
- gmlWriteBounds(stream, OWS_GML2, &(shape.bounds), pszOutputSRS, "\t\t\t");
- if (geometryList && geometryList->numgeometries > 0 )
- gmlWriteGeometry(stream, geometryList, OWS_GML2, &(shape), pszOutputSRS, NULL, "\t\t\t");
-#else
- gmlWriteBounds(stream, OWS_GML2, &(shape.bounds), NULL, "\t\t\t"); /* no projection information */
+ gmlWriteBounds(stream, OWS_GML2, &(shape.bounds), pszOutputSRS, "\t\t\t", "gml");
if (geometryList && geometryList->numgeometries > 0 )
- gmlWriteGeometry(stream, geometryList, OWS_GML2, &(shape), NULL, NULL, "\t\t\t");
-#endif
-
+ gmlWriteGeometry(stream, geometryList, OWS_GML2, &(shape), pszOutputSRS, NULL, "\t\t\t", "", nSRSDimension);
}
/* write any item/values */
for(k=0; k<itemList->numitems; k++) {
item = &(itemList->items[k]);
if(msItemInGroups(item->name, groupList) == MS_FALSE)
- msGMLWriteItem(stream, item, shape.values[k], NULL, "\t\t\t");
+ msGMLWriteItem(stream, item, shape.values[k], NULL, "\t\t\t", OWS_GML2, NULL);
}
/* write any constants */
@@ -1263,7 +1529,7 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
/* write any groups */
for(k=0; k<groupList->numgroups; k++)
- msGMLWriteGroup(stream, &(groupList->groups[k]), &shape, itemList, constantList, NULL, "\t\t\t");
+ msGMLWriteGroup(stream, &(groupList->groups[k]), &shape, itemList, constantList, NULL, "\t\t\t", OWS_GML2, NULL);
/* end this feature */
/* specify a feature name if nothing provided */
@@ -1305,51 +1571,68 @@ int msGMLWriteQuery(mapObj *map, char *filename, const char *namespaces)
#endif
}
-
-/************************************************************************/
-/* msAxisSwapShape */
-/* */
-/* Utility function to swap x and y coordiatesn Use for now for */
-/* WFS 1.1.x */
-/************************************************************************/
-void msAxisSwapShape(shapeObj *shape)
+#ifdef USE_WFS_SVR
+void msGMLWriteWFSBounds(mapObj *map, FILE *stream, const char *tab,
+ OWSGMLVersion outputformat, int nWFSVersion, int bUseURN)
{
- double tmp;
- int i,j;
+ rectObj resultBounds = {-1.0,-1.0,-1.0,-1.0};
- if (shape) {
- for(i=0; i<shape->numlines; i++) {
- for( j=0; j<shape->line[i].numpoints; j++ ) {
- tmp = shape->line[i].point[j].x;
- shape->line[i].point[j].x = shape->line[i].point[j].y;
- shape->line[i].point[j].y = tmp;
- }
- }
+ /*add a check to see if the map projection is set to be north-east*/
+ int bSwapAxis = msIsAxisInvertedProj(&(map->projection));
+
+ /* Need to start with BBOX of the whole resultset */
+ if (msGetQueryResultBounds(map, &resultBounds) > 0) {
+ char* srs = NULL;
+ if (bSwapAxis) {
+ double tmp;
- /*swap bounds*/
- tmp = shape->bounds.minx;
- shape->bounds.minx = shape->bounds.miny;
- shape->bounds.miny = tmp;
+ tmp = resultBounds.minx;
+ resultBounds.minx = resultBounds.miny;
+ resultBounds.miny = tmp;
- tmp = shape->bounds.maxx;
- shape->bounds.maxx = shape->bounds.maxy;
- shape->bounds.maxy = tmp;
+ tmp = resultBounds.maxx;
+ resultBounds.maxx = resultBounds.maxy;
+ resultBounds.maxy = tmp;
+
+ }
+ if( bUseURN )
+ {
+ srs = msOWSGetProjURN(&(map->projection), NULL, "FGO", MS_TRUE);
+ if (!srs)
+ srs = msOWSGetProjURN(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
+ }
+ else
+ {
+ const char* constsrs;
+ constsrs = msOWSGetEPSGProj(&(map->projection), NULL, "FGO", MS_TRUE);
+ if (!constsrs)
+ constsrs = msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
+ if (constsrs)
+ srs = msStrdup(constsrs);
+ }
+
+ gmlWriteBounds(stream, outputformat, &resultBounds, srs, tab,
+ (nWFSVersion == OWS_2_0_0) ? "wfs" : "gml");
+ msFree(srs);
}
}
+
+#endif
+
/*
** msGMLWriteWFSQuery()
**
-** Similar to msGMLWriteQuery() but tuned for use with WFS 1.0.0
+** Similar to msGMLWriteQuery() but tuned for use with WFS
*/
-int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix, int outputformat)
+int msGMLWriteWFSQuery(mapObj *map, FILE *stream, const char *default_namespace_prefix,
+ OWSGMLVersion outputformat, int nWFSVersion, int bUseURN,
+ int bGetPropertyValueRequest)
{
#ifdef USE_WFS_SVR
int status;
int i,j,k;
layerObj *lp=NULL;
shapeObj shape;
- rectObj resultBounds = {-1.0,-1.0,-1.0,-1.0};
- int features = 0;
gmlGroupListObj *groupList=NULL;
gmlItemListObj *itemList=NULL;
@@ -1358,43 +1641,17 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
gmlItemObj *item=NULL;
gmlConstantObj *constant=NULL;
- char *namespace_prefix=NULL;
- const char *axis = NULL;
- int bSwapAxis = 0;
- double tmp;
- const char *srsMap = NULL;
+ const char *namespace_prefix=NULL;
+ int bSwapAxis;
msInitShape(&shape);
/*add a check to see if the map projection is set to be north-east*/
- for( i = 0; i < map->projection.numargs; i++ ) {
- if( strstr(map->projection.args[i],"epsgaxis=") != NULL ) {
- axis = strstr(map->projection.args[i],"=") + 1;
- break;
- }
- }
-
- if (axis && strcasecmp(axis,"ne") == 0 )
- bSwapAxis = 1;
-
+ bSwapAxis = msIsAxisInvertedProj(&(map->projection));
/* Need to start with BBOX of the whole resultset */
- if (msGetQueryResultBounds(map, &resultBounds) > 0) {
- if (bSwapAxis) {
- tmp = resultBounds.minx;
- resultBounds.minx = resultBounds.miny;
- resultBounds.miny = tmp;
-
- tmp = resultBounds.maxx;
- resultBounds.maxx = resultBounds.maxy;
- resultBounds.maxy = tmp;
-
- }
- srsMap = msOWSGetEPSGProj(&(map->projection), NULL, "FGO", MS_TRUE);
- if (!srsMap)
- msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
-
- gmlWriteBounds(stream, outputformat, &resultBounds, srsMap, " ");
+ if (!bGetPropertyValueRequest) {
+ msGMLWriteWFSBounds(map, stream, " ", outputformat, nWFSVersion, bUseURN);
}
/* step through the layers looking for query results */
for(i=0; i<map->numlayers; i++) {
@@ -1405,11 +1662,24 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
char *layerName;
const char *value;
int featureIdIndex=-1; /* no feature id */
-
+ char* srs = NULL;
+ int bOutputGMLIdOnly = MS_FALSE;
+ int nSRSDimension = 2;
+ const char* geomtype;
/* setup namespace, a layer can override the default */
- namespace_prefix = (char*) msOWSLookupMetadata(&(lp->metadata), "OFG", "namespace_prefix");
+ namespace_prefix = msOWSLookupMetadata(&(lp->metadata), "OFG", "namespace_prefix");
if(!namespace_prefix) namespace_prefix = default_namespace_prefix;
+
+ geomtype = msOWSLookupMetadata(&(lp->metadata), "OFG", "geomtype");
+ if( geomtype != NULL && (strstr(geomtype, "25d") != NULL || strstr(geomtype, "25D") != NULL) )
+ {
+#ifdef USE_POINT_Z_M
+ nSRSDimension = 3;
+#else
+ msIO_fprintf(stream, "<!-- WARNING: 25d requested forn typename '%s' but MapServer compiled without USE_POINT_Z_M support. -->\n", lp->name);
+#endif
+ }
value = msOWSLookupMetadata(&(lp->metadata), "OFG", "featureid");
if(value) { /* find the featureid amongst the items for this layer */
@@ -1424,17 +1694,25 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
if (featureIdIndex == -1)
msIO_fprintf(stream, "<!-- WARNING: FeatureId item '%s' not found in typename '%s'. -->\n", value, lp->name);
}
+ else if( outputformat == OWS_GML32 )
+ msIO_fprintf(stream, "<!-- WARNING: No featureid defined for typename '%s'. Output will not validate. -->\n", lp->name);
/* populate item and group metadata structures */
itemList = msGMLGetItems(lp, "G");
constantList = msGMLGetConstants(lp, "G");
groupList = msGMLGetGroups(lp, "G");
- geometryList = msGMLGetGeometries(lp, "GFO");
+ geometryList = msGMLGetGeometries(lp, "GFO", MS_FALSE);
if (itemList == NULL || constantList == NULL || groupList == NULL || geometryList == NULL) {
msSetError(MS_MISCERR, "Unable to populate item and group metadata structures", "msGMLWriteWFSQuery()");
return MS_FAILURE;
}
-
+
+ if( bGetPropertyValueRequest )
+ {
+ const char* value = msOWSLookupMetadata(&(lp->metadata), "G", "include_items");
+ if( value != NULL && strcmp(value, "@gml:id") == 0 )
+ bOutputGMLIdOnly = MS_TRUE;
+ }
if (namespace_prefix) {
layerName = (char *) msSmallMalloc(strlen(namespace_prefix)+strlen(lp->name)+2);
@@ -1443,11 +1721,40 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
layerName = msStrdup(lp->name);
}
+#ifdef USE_PROJ
+ if( bUseURN )
+ {
+ srs = msOWSGetProjURN(&(map->projection), NULL, "FGO", MS_TRUE);
+ if (!srs)
+ srs = msOWSGetProjURN(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
+ if (!srs)
+ srs = msOWSGetProjURN(&(lp->projection), &(lp->metadata), "FGO", MS_TRUE);
+ }
+ else
+ {
+ const char* constsrs;
+ constsrs = msOWSGetEPSGProj(&(map->projection), NULL, "FGO", MS_TRUE);
+ if (!constsrs)
+ constsrs = msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
+ if (!constsrs)
+ constsrs = msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FGO", MS_TRUE);
+ if (constsrs)
+ srs = msStrdup(constsrs);
+ }
+#endif
+
for(j=0; j<lp->resultcache->numresults; j++) {
+ char* pszFID;
status = msLayerGetShape(lp, &shape, &(lp->resultcache->results[j]));
- if(status != MS_SUCCESS)
+ if(status != MS_SUCCESS) {
+ msGMLFreeGroups(groupList);
+ msGMLFreeConstants(constantList);
+ msGMLFreeItems(itemList);
+ msGMLFreeGeometries(geometryList);
+ msFree(layerName);
return(status);
+ }
#ifdef USE_PROJ
/* project the shape into the map projection (if necessary), note that this projects the bounds as well */
@@ -1455,47 +1762,62 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
msProjectShape(&lp->projection, &map->projection, &shape);
#endif
+ if(featureIdIndex != -1) {
+ pszFID = (char*) msSmallMalloc( strlen(lp->name) + 1 + strlen(shape.values[featureIdIndex]) + 1 );
+ sprintf(pszFID, "%s.%s", lp->name, shape.values[featureIdIndex]);
+ }
+ else
+ pszFID = msStrdup("");
+
+
+ if( bOutputGMLIdOnly )
+ {
+ msIO_fprintf(stream, " <wfs:member>%s</wfs:member>\n", pszFID);
+ msFree(pszFID);
+ msFreeShape(&shape); /* init too */
+ continue;
+ }
+
/*
** start this feature
*/
- msIO_fprintf(stream, " <gml:featureMember>\n");
+ if( nWFSVersion == OWS_2_0_0 )
+ msIO_fprintf(stream, " <wfs:member>\n");
+ else
+ msIO_fprintf(stream, " <gml:featureMember>\n");
if(msIsXMLTagValid(layerName) == MS_FALSE)
- msIO_fprintf(stream, "<!-- WARNING: The value '%s' is not valid in a XML tag context. -->\n", layerName);
+ msIO_fprintf(stream, "<!-- WARNING: The value '%s' is not valid in a XML tag context. -->\n", layerName);
if(featureIdIndex != -1) {
- if(outputformat == OWS_GML2)
- msIO_fprintf(stream, " <%s fid=\"%s.%s\">\n", layerName, lp->name, shape.values[featureIdIndex]);
- else /* OWS_GML3 */
- msIO_fprintf(stream, " <%s gml:id=\"%s.%s\">\n", layerName, lp->name, shape.values[featureIdIndex]);
- } else
- msIO_fprintf(stream, " <%s>\n", layerName);
+ if( !bGetPropertyValueRequest )
+ {
+ if(outputformat == OWS_GML2)
+ msIO_fprintf(stream, " <%s fid=\"%s\">\n", layerName, pszFID);
+ else /* OWS_GML3 or OWS_GML32 */
+ msIO_fprintf(stream, " <%s gml:id=\"%s\">\n", layerName, pszFID);
+ }
+ } else {
+ if( !bGetPropertyValueRequest )
+ msIO_fprintf(stream, " <%s>\n", layerName);
+ }
if (bSwapAxis)
msAxisSwapShape(&shape);
/* write the feature geometry and bounding box */
- if(!(geometryList && geometryList->numgeometries == 1 && strcasecmp(geometryList->geometries[0].name, "none") == 0)) {
-#ifdef USE_PROJ
- srsMap = msOWSGetEPSGProj(&(map->projection), NULL, "FGO", MS_TRUE);
- if (!srsMap)
- msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FGO", MS_TRUE);
- if(srsMap) { /* use the map projection first*/
- gmlWriteBounds(stream, outputformat, &(shape.bounds), srsMap, " ");
- gmlWriteGeometry(stream, geometryList, outputformat, &(shape), srsMap, namespace_prefix, " ");
- } else { /* then use the layer projection and/or metadata */
- gmlWriteBounds(stream, outputformat, &(shape.bounds), msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FGO", MS_TRUE), " ");
- gmlWriteGeometry(stream, geometryList, outputformat, &(shape), msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FGO", MS_TRUE), namespace_prefix, " ");
- }
-#else
- gmlWriteBounds(stream, outputformat, &(shape.bounds), NULL, " "); /* no projection information */
- gmlWriteGeometry(stream, geometryList, outputformat, &(shape), NULL, namespace_prefix, " ");
-#endif
+ if(!(geometryList && geometryList->numgeometries == 1 &&
+ strcasecmp(geometryList->geometries[0].name, "none") == 0)) {
+ if( !bGetPropertyValueRequest )
+ gmlWriteBounds(stream, outputformat, &(shape.bounds), srs, " ", "gml");
+ gmlWriteGeometry(stream, geometryList, outputformat, &(shape), srs,
+ namespace_prefix, " ", pszFID, nSRSDimension);
}
/* write any item/values */
for(k=0; k<itemList->numitems; k++) {
item = &(itemList->items[k]);
if(msItemInGroups(item->name, groupList) == MS_FALSE)
- msGMLWriteItem(stream, item, shape.values[k], namespace_prefix, " ");
+ msGMLWriteItem(stream, item, shape.values[k], namespace_prefix,
+ " ", outputformat, pszFID);
}
/* write any constants */
@@ -1507,17 +1829,26 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
/* write any groups */
for(k=0; k<groupList->numgroups; k++)
- msGMLWriteGroup(stream, &(groupList->groups[k]), &shape, itemList, constantList, namespace_prefix, " ");
+ msGMLWriteGroup(stream, &(groupList->groups[k]), &shape, itemList,
+ constantList, namespace_prefix, " ", outputformat, pszFID);
- /* end this feature */
- msIO_fprintf(stream, " </%s>\n", layerName);
- msIO_fprintf(stream, " </gml:featureMember>\n");
+ if( !bGetPropertyValueRequest )
+ /* end this feature */
+ msIO_fprintf(stream, " </%s>\n", layerName);
+
+ if( nWFSVersion == OWS_2_0_0 )
+ msIO_fprintf(stream, " </wfs:member>\n");
+ else
+ msIO_fprintf(stream, " </gml:featureMember>\n");
- msFreeShape(&shape); /* init too */
- features++;
+ msFree(pszFID);
+ pszFID = NULL;
+ msFreeShape(&shape); /* init too */
}
+ msFree(srs);
+
/* done with this layer, do a little clean-up */
msFree(layerName);
@@ -1534,7 +1865,7 @@ int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *default_namespace_prefix
return(MS_SUCCESS);
#else /* Stub for mapscript */
- msSetError(MS_MISCERR, "WMS server support not enabled", "msGMLWriteWFSQuery()");
+ msSetError(MS_MISCERR, "WFS server support not enabled", "msGMLWriteWFSQuery()");
return MS_FAILURE;
#endif /* USE_WFS_SVR */
}
@@ -1730,13 +2061,22 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
char **excitems=NULL;
int numexcitems=0;
+ char **optionalitems=NULL;
+ int numoptionalitems=0;
+
+ char **mandatoryitems=NULL;
+ int nummandatoryitems=0;
+
+ char **defaultitems=NULL;
+ int numdefaultitems=0;
+
const char *value=NULL;
char tag[64];
gmlItemListObj *itemList=NULL;
gmlItemObj *item=NULL;
- /* get a list of items that should be included in output */
+ /* get a list of items that might be included in output */
if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "include_items")) != NULL)
incitems = msStringSplit(value, ',', &numincitems);
@@ -1744,10 +2084,22 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "exclude_items")) != NULL)
excitems = msStringSplit(value, ',', &numexcitems);
- /* get a list of items that need don't get encoded */
+ /* get a list of items that should not be XML encoded */
if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "xml_items")) != NULL)
xmlitems = msStringSplit(value, ',', &numxmlitems);
+ /* get a list of items that should be indicated as optional in DescribeFeatureType */
+ if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "optional_items")) != NULL)
+ optionalitems = msStringSplit(value, ',', &numoptionalitems);
+
+ /* get a list of items that should be indicated as mandatory in DescribeFeatureType */
+ if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "mandatory_items")) != NULL)
+ mandatoryitems = msStringSplit(value, ',', &nummandatoryitems);
+
+ /* get a list of items that should be presented by default in GetFeature */
+ if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, "default_items")) != NULL)
+ defaultitems = msStringSplit(value, ',', &numdefaultitems);
+
/* allocate memory and iinitialize the item collection */
itemList = (gmlItemListObj *) malloc(sizeof(gmlItemListObj));
if(itemList == NULL) {
@@ -1755,13 +2107,11 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
return NULL;
}
- itemList->items = NULL;
- itemList->numitems = 0;
-
itemList->numitems = layer->numitems;
itemList->items = (gmlItemObj *) malloc(sizeof(gmlItemObj)*itemList->numitems);
if(!itemList->items) {
msSetError(MS_MEMERR, "Error allocating a collection GML item structures.", "msGMLGetItems()");
+ free(itemList);
return NULL;
}
@@ -1776,6 +2126,8 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
item->visible = MS_FALSE;
item->width = 0;
item->precision = 0;
+ item->outputByDefault = (numdefaultitems == 0);
+ item->minOccurs = 0;
/* check visibility, included items first... */
if(numincitems == 1 && strcasecmp("all", incitems[0]) == 0) {
@@ -1799,6 +2151,34 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
item->encode = MS_FALSE;
}
+ /* check optional */
+ if(numoptionalitems == 1 && strcasecmp("all", optionalitems[0]) == 0) {
+ item->minOccurs = 0;
+ } else if( numoptionalitems > 0) {
+ item->minOccurs = 1;
+ for(j=0; j<numoptionalitems; j++) {
+ if(strcasecmp(layer->items[i], optionalitems[j]) == 0)
+ item->minOccurs = 0;
+ }
+ }
+
+ /* check mandatory */
+ if(nummandatoryitems == 1 && strcasecmp("all", mandatoryitems[0]) == 0) {
+ item->minOccurs = 1;
+ } else if( nummandatoryitems > 0) {
+ item->minOccurs = 0;
+ for(j=0; j<nummandatoryitems; j++) {
+ if(strcasecmp(layer->items[i], mandatoryitems[j]) == 0)
+ item->minOccurs = 1;
+ }
+ }
+
+ /* check default */
+ for(j=0; j<numdefaultitems; j++) {
+ if(strcasecmp(layer->items[i], defaultitems[j]) == 0)
+ item->outputByDefault = 1;
+ }
+
snprintf(tag, sizeof(tag), "%s_alias", layer->items[i]);
if((value = msOWSLookupMetadata(&(layer->metadata), metadata_namespaces, tag)) != NULL)
item->alias = msStrdup(value);
@@ -1823,6 +2203,9 @@ gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces)
msFreeCharArray(incitems, numincitems);
msFreeCharArray(excitems, numexcitems);
msFreeCharArray(xmlitems, numxmlitems);
+ msFreeCharArray(optionalitems, numoptionalitems);
+ msFreeCharArray(mandatoryitems, nummandatoryitems);
+ msFreeCharArray(defaultitems, numdefaultitems);
return itemList;
}
diff --git a/mapgml.h b/mapgml.h
index 03dbac2..1bff8db 100644
--- a/mapgml.h
+++ b/mapgml.h
@@ -36,9 +36,6 @@
#include<libxml/parser.h>
#include<libxml/tree.h>
-#define MS_GML_NAMESPACE_URI "http://www.opengis.net/gml"
-#define MS_GML_NAMESPACE_PREFIX "gml"
-
xmlNodePtr msGML3BoundedBy(xmlNsPtr psNs, double minx, double miny, double maxx, double maxy, const char *psEpsg);
xmlNodePtr msGML3TimePeriod(xmlNsPtr psNs, char *pszStart, char *pszEnd);
xmlNodePtr msGML3TimeInstant(xmlNsPtr psNs, char *timeInstant);
diff --git a/mapgraticule.c b/mapgraticule.c
index 60e114b..239e38a 100644
--- a/mapgraticule.c
+++ b/mapgraticule.c
@@ -67,7 +67,7 @@ int msGraticuleLayerInitItemInfo(layerObj *layer);
*/
int msGraticuleLayerOpen(layerObj *layer)
{
- graticuleObj *pInfo = (graticuleObj *) layer->layerinfo;
+ graticuleObj *pInfo = layer->grid;
if( pInfo == NULL )
return MS_FAILURE;
@@ -115,7 +115,7 @@ int msGraticuleLayerOpen(layerObj *layer)
*/
int msGraticuleLayerIsOpen(layerObj *layer)
{
- if(layer->layerinfo)
+ if(layer->grid)
return MS_TRUE;
return MS_FALSE;
@@ -127,26 +127,6 @@ int msGraticuleLayerIsOpen(layerObj *layer)
*/
int msGraticuleLayerClose(layerObj *layer)
{
- graticuleObj *pInfo = (graticuleObj *) layer->layerinfo;
-
- if( pInfo->labelformat ) {
- free( pInfo->labelformat );
- pInfo->labelformat = NULL;
- }
-
- if( pInfo->pboundingpoints ) {
- free( pInfo->pboundingpoints );
- pInfo->pboundingpoints = NULL;
- }
-
- if( pInfo->pboundinglines ) {
- free( pInfo->pboundinglines );
- pInfo->pboundinglines = NULL;
- }
-
- free(layer->layerinfo);
- layer->layerinfo=NULL;
-
return MS_SUCCESS;
}
@@ -155,7 +135,7 @@ int msGraticuleLayerClose(layerObj *layer)
*/
int msGraticuleLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
{
- graticuleObj *pInfo = (graticuleObj *) layer->layerinfo;
+ graticuleObj *pInfo = layer->grid;
int iAxisTickCount = 0;
rectObj rectMapCoordinates;
@@ -207,7 +187,9 @@ int msGraticuleLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
* These lines will be used when generating labels to get correct placement at arc/rect edge intersections.
*/
rectMapCoordinates = layer->map->extent;
+ msFree(pInfo->pboundinglines);
pInfo->pboundinglines = (lineObj *) msSmallMalloc( sizeof( lineObj ) * 4 );
+ msFree(pInfo->pboundingpoints);
pInfo->pboundingpoints = (pointObj *) msSmallMalloc( sizeof( pointObj ) * 8 );
{
@@ -289,7 +271,7 @@ int msGraticuleLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
*/
int msGraticuleLayerNextShape(layerObj *layer, shapeObj *shape)
{
- graticuleObj *pInfo = (graticuleObj *) layer->layerinfo;
+ graticuleObj *pInfo = layer->grid;
if( pInfo->minsubdivides <= 0.0 || pInfo->maxsubdivides <= 0.0 )
pInfo->minsubdivides = pInfo->maxsubdivides = MAPGRATICULE_ARC_SUBDIVISION_DEFAULT;
@@ -535,7 +517,7 @@ int msGraticuleLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record
*/
int msGraticuleLayerGetExtent(layerObj *layer, rectObj *extent)
{
- graticuleObj *pInfo = (graticuleObj *) layer->layerinfo;
+ graticuleObj *pInfo = layer->grid;
if(pInfo) {
*extent = pInfo->extent;
@@ -638,7 +620,7 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
if (layer->connectiontype != MS_GRATICULE)
return NULL;
- pInfo = (graticuleObj *) layer->layerinfo;
+ pInfo = layer->grid;
/*set cellsize if bnot already set*/
if (map->cellsize == 0)
@@ -661,7 +643,9 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
msProjectRect(&map->projection, &layer->projection, &searchrect); /* project the searchrect to source coords */
#endif
- msLayerOpen(layer);
+ status = msLayerOpen(layer);
+ if(status != MS_SUCCESS)
+ return NULL;
status = msLayerWhichShapes(layer, searchrect, MS_FALSE);
if(status == MS_DONE) { /* no overlap */
@@ -783,8 +767,10 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
if (psValues->pasBottom[i].x == oFirstPoint.x)
break;
}
- if (i < psValues->nBottom)
+ if (i < psValues->nBottom) {
+ msFree(pszLabel);
continue;
+ }
}
if (psValues->pasBottom == NULL) {
psValues->pasBottom = (pointObj *)msSmallMalloc(sizeof(pointObj));
@@ -798,9 +784,7 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
psValues->pasBottom[psValues->nBottom-1].x = oFirstPoint.x;
psValues->pasBottom[psValues->nBottom-1].y = oFirstPoint.y;
- psValues->papszBottomLabels[psValues->nBottom-1] = msStrdup(pszLabel);
-
- msFree(pszLabel);
+ psValues->papszBottomLabels[psValues->nBottom-1] = pszLabel;
}
/*first point should cross the TOP base where y==0*/
@@ -831,8 +815,10 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
strcasecmp(pszLabel, psValues->papszTopLabels[i]) == 0)
break;
}
- if (i < psValues->nTop)
+ if (i < psValues->nTop) {
+ msFree(pszLabel);
continue;
+ }
}
@@ -848,9 +834,7 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
psValues->pasTop[psValues->nTop-1].x = oLastPoint.x;
psValues->pasTop[psValues->nTop-1].y = oLastPoint.y;
- psValues->papszTopLabels[psValues->nTop-1] = msStrdup(pszLabel);
-
- msFree(pszLabel);
+ psValues->papszTopLabels[psValues->nTop-1] = pszLabel;
}
} else { /*horzontal*/
/*Normally lines are drawn from left to right but not always for some reason, so
@@ -893,8 +877,10 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
if (psValues->pasLeft[i].y == oFirstPoint.y)
break;
}
- if (i < psValues->nLeft)
+ if (i < psValues->nLeft) {
+ msFree(pszLabel);
continue;
+ }
}
if (psValues->pasLeft == NULL) {
psValues->pasLeft = (pointObj *)msSmallMalloc(sizeof(pointObj));
@@ -908,8 +894,7 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
psValues->pasLeft[psValues->nLeft-1].x = oFirstPoint.x;
psValues->pasLeft[psValues->nLeft-1].y = oFirstPoint.y;
- psValues->papszLeftLabels[psValues->nLeft-1] = msStrdup(pszLabel);
- msFree(pszLabel);
+ psValues->papszLeftLabels[psValues->nLeft-1] = pszLabel; /* takes ownership of allocated pszLabel */
}
/*first point should cross the RIGHT base where x=map=>width axis*/
if (abs((int)oLastPoint.x - map->width) <=1) {
@@ -938,8 +923,10 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
if (psValues->pasRight[i].y == oLastPoint.y)
break;
}
- if (i < psValues->nRight)
+ if (i < psValues->nRight) {
+ msFree(pszLabel);
continue;
+ }
}
if (psValues->pasRight == NULL) {
psValues->pasRight = (pointObj *)msSmallMalloc(sizeof(pointObj));
@@ -953,9 +940,7 @@ graticuleIntersectionObj *msGraticuleLayerGetIntersectionPoints(mapObj *map,
psValues->pasRight[psValues->nRight-1].x = oLastPoint.x;
psValues->pasRight[psValues->nRight-1].y = oLastPoint.y;
- psValues->papszRightLabels[psValues->nRight-1] = msStrdup(pszLabel);
-
- msFree(pszLabel);
+ psValues->papszRightLabels[psValues->nRight-1] = pszLabel;
}
}
msFreeShape(&shapegrid);
@@ -1006,7 +991,7 @@ int msGraticuleLayerInitializeVirtualTable(layerObj *layer)
*/
static void _FormatLabel( layerObj *pLayer, shapeObj *pShape, double dDataToFormat )
{
- graticuleObj *pInfo = (graticuleObj *) pLayer->layerinfo;
+ graticuleObj *pInfo = pLayer->grid;
char cBuffer[32];
int iDegrees, iMinutes;
@@ -1041,16 +1026,19 @@ static void _FormatLabel( layerObj *pLayer, shapeObj *pShape, double dDataToForm
*/
static int _AdjustLabelPosition( layerObj *pLayer, shapeObj *pShape, msGraticulePosition ePosition )
{
- graticuleObj *pInfo = (graticuleObj *) pLayer->layerinfo;
+ graticuleObj *pInfo = pLayer->grid;
rectObj rectLabel;
pointObj ptPoint;
double size = -1;
+ char *labeltxt;
if( pInfo == NULL || pShape == NULL ) {
- msSetError(MS_MISCERR, "Assertion failed: Null shape or layerinfo!, ", "_AdjustLabelPosition()");
+ msSetError(MS_MISCERR, "Assertion failed: Null shape or non-configured grid!, ", "_AdjustLabelPosition()");
return MS_FAILURE;
}
+ assert(pLayer->class[0]->numlabels >= 1);
+
if(msCheckParentPointer(pLayer->map,"map")==MS_FAILURE)
return MS_FAILURE;
@@ -1064,10 +1052,17 @@ static int _AdjustLabelPosition( layerObj *pLayer, shapeObj *pShape, msGraticule
if(pLayer->transform) {
msTransformShapeToPixelRound(pShape, pLayer->map->extent, pLayer->map->cellsize);
}
-
- size = pLayer->class[0]->labels[0]->size; /* TODO TBT: adjust minsize/maxsize/resolution. TODO RFC 77: ok to use first label? */
- if(msGetLabelSize(pLayer->map, pLayer->class[0]->labels[0], pShape->text, size, &rectLabel, NULL) != MS_SUCCESS)
+
+ size = pLayer->class[0]->labels[0]->size; /* TODO someday: adjust minsize/maxsize/resolution*/
+ /* We only use the first label as there's no use (yet) in defining multiple lables for GRID layers,
+ as the only label to represent is the longitude or latitude */
+ labeltxt = msShapeGetLabelAnnotation(pLayer, pShape, pLayer->class[0]->labels[0]);
+ assert(labeltxt);
+ if(msGetStringSize(pLayer->map, pLayer->class[0]->labels[0], size, labeltxt, &rectLabel) != MS_SUCCESS) {
+ free(labeltxt);
return MS_FAILURE; /* msSetError already called */
+ }
+ free(labeltxt);
switch( ePosition ) {
case posBottom:
diff --git a/maphash.c b/maphash.c
index d6dd3e0..c548602 100644
--- a/maphash.c
+++ b/maphash.c
@@ -105,7 +105,6 @@ void msFreeHashItems( hashTableObj *table )
msFree(tp->data);
}
}
- if (tp) free(tp);
}
free(table->items);
table->items = NULL;
diff --git a/maphttp.c b/maphttp.c
index 9f21a5b..e7a1801 100644
--- a/maphttp.c
+++ b/maphttp.c
@@ -373,6 +373,8 @@ int msHTTPAuthProxySetup(hashTableObj *mapmd, hashTableObj *lyrmd,
"proxy_password")) != NULL) {
pszProxyPassword = msDecryptStringTokens(map, pszTmp);
if (pszProxyPassword == NULL) {
+ msFree(pszProxyHost);
+ msFree(pszProxyUsername);
return(MS_FAILURE); /* An error should already have been produced */
}
}
@@ -405,6 +407,10 @@ int msHTTPAuthProxySetup(hashTableObj *mapmd, hashTableObj *lyrmd,
"auth_password")) != NULL) {
pszHttpAuthPassword = msDecryptStringTokens(map, pszTmp);
if (pszHttpAuthPassword == NULL) {
+ msFree(pszHttpAuthUsername);
+ msFree(pszProxyHost);
+ msFree(pszProxyUsername);
+ msFree(pszProxyPassword);
return(MS_FAILURE); /* An error should already have been produced */
}
}
diff --git a/mapimageio.c b/mapimageio.c
index 08b4d6f..e6bdcb5 100644
--- a/mapimageio.c
+++ b/mapimageio.c
@@ -28,14 +28,14 @@
****************************************************************************/
#include "mapserver.h"
-#include "png.h"
-#include "setjmp.h"
+#include <png.h>
+#include <setjmp.h>
#include <assert.h>
-#include "jpeglib.h"
+#include <jpeglib.h>
#include <stdlib.h>
#ifdef USE_GIF
-#include "gif_lib.h"
+#include <gif_lib.h>
#endif
@@ -127,17 +127,50 @@ int jpeg_buffer_empty_output_buffer (j_compress_ptr cinfo)
return TRUE;
}
+static void msJPEGErrorExit(j_common_ptr cinfo)
+{
+ jmp_buf* pJmpBuffer = (jmp_buf* ) cinfo->client_data;
+ char buffer[JMSG_LENGTH_MAX];
+
+ /* Create the message */
+ (*cinfo->err->format_message) (cinfo, buffer);
+
+ msSetError(MS_MISCERR,"libjpeg: %s","jpeg_ErrorExit()", buffer);
+
+ /* Return control to the setjmp point */
+ longjmp(*pJmpBuffer, 1);
+}
-int saveAsJPEG(mapObj *map /*not used*/, rasterBufferObj *rb, streamInfo *info,
+int saveAsJPEG(mapObj *map, rasterBufferObj *rb, streamInfo *info,
outputFormatObj *format)
{
struct jpeg_compress_struct cinfo;
struct jpeg_error_mgr jerr;
- int quality = atoi(msGetOutputFormatOption( format, "QUALITY", "75"));
+ int quality;
+ const char* pszOptimized;
+ int optimized;
+ int arithmetic;
ms_destination_mgr *dest;
- JSAMPLE *rowdata;
+ JSAMPLE *rowdata = NULL;
unsigned int row;
+ jmp_buf setjmp_buffer;
+
+ quality = atoi(msGetOutputFormatOption( format, "QUALITY", "75"));
+ pszOptimized = msGetOutputFormatOption( format, "OPTIMIZED", "YES");
+ optimized = EQUAL(pszOptimized, "YES") || EQUAL(pszOptimized, "ON") ||
+ EQUAL(pszOptimized, "TRUE");
+ arithmetic = EQUAL(pszOptimized, "ARITHMETIC");
+
+ if (setjmp(setjmp_buffer))
+ {
+ jpeg_destroy_compress(&cinfo);
+ free(rowdata);
+ return MS_FAILURE;
+ }
+
cinfo.err = jpeg_std_error(&jerr);
+ jerr.error_exit = msJPEGErrorExit;
+ cinfo.client_data = (void *) &(setjmp_buffer);
jpeg_create_compress(&cinfo);
if (cinfo.dest == NULL) {
@@ -167,9 +200,23 @@ int saveAsJPEG(mapObj *map /*not used*/, rasterBufferObj *rb, streamInfo *info,
cinfo.in_color_space = JCS_RGB;
jpeg_set_defaults(&cinfo);
jpeg_set_quality(&cinfo, quality, TRUE);
- jpeg_start_compress(&cinfo, TRUE);
+ if( arithmetic )
+ cinfo.arith_code = TRUE;
+ else if( optimized )
+ cinfo.optimize_coding = TRUE;
+
+ if( arithmetic || optimized ) {
+ if (map == NULL || msGetConfigOption(map, "JPEGMEM") == NULL) {
+ /* If the user doesn't provide a value for JPEGMEM, we want to be sure */
+ /* that at least the image size will be used before creating the temporary file */
+ cinfo.mem->max_memory_to_use =
+ MAX(cinfo.mem->max_memory_to_use, cinfo.input_components * rb->width * rb->height);
+ }
+ }
+ jpeg_start_compress(&cinfo, TRUE);
rowdata = (JSAMPLE*)malloc(rb->width*cinfo.input_components*sizeof(JSAMPLE));
+
for(row=0; row<rb->height; row++) {
JSAMPLE *pixptr = rowdata;
int col;
@@ -554,178 +601,6 @@ int saveAsPNG(mapObj *map,rasterBufferObj *rb, streamInfo *info, outputFormatObj
#endif /* SEEK_SET */
-
-#ifdef USE_GD
-/* #include <math.h> */
-/* #include <string.h> */
-/* #include <stdlib.h> */
-#include "gd.h"
-
-/* this is used for creating images in main memory */
-
-typedef struct fileIOCtx {
- gdIOCtx ctx;
- FILE *f;
-}
-fileIOCtx;
-
-static void msFreeFileCtx (gdIOCtx * ctx)
-{
- free(ctx);
-}
-
-static int filePutbuf (gdIOCtx * ctx, const void *buf, int size)
-{
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
-
- return fwrite (buf, 1, size, fctx->f);
-}
-
-static int fileGetbuf (gdIOCtx * ctx, void *buf, int size)
-{
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
-
- return (msIO_fread (buf, 1, size, fctx->f));
-
-}
-
-static void filePutchar (gdIOCtx * ctx, int a)
-{
- unsigned char b;
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
-
- b = a;
-
- putc (b, fctx->f);
-}
-
-static int fileGetchar (gdIOCtx * ctx)
-{
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
-
- return getc (fctx->f);
-}
-
-
-static int fileSeek (struct gdIOCtx *ctx, const int pos)
-{
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
- return (fseek (fctx->f, pos, SEEK_SET) == 0);
-}
-
-static long fileTell (struct gdIOCtx *ctx)
-{
- fileIOCtx *fctx;
- fctx = (fileIOCtx *) ctx;
-
- return ftell (fctx->f);
-}
-
-/* return data as a dynamic pointer */
-gdIOCtx *msNewGDFileCtx (FILE * f)
-{
- fileIOCtx *ctx;
-
- ctx = (fileIOCtx *) malloc (sizeof (fileIOCtx));
- if (ctx == NULL) {
- return NULL;
- }
-
- ctx->f = f;
-
- ctx->ctx.getC = fileGetchar;
- ctx->ctx.putC = filePutchar;
-
- ctx->ctx.getBuf = fileGetbuf;
- ctx->ctx.putBuf = filePutbuf;
-
- ctx->ctx.tell = fileTell;
- ctx->ctx.seek = fileSeek;
-
- ctx->ctx.gd_free = msFreeFileCtx;
-
- return (gdIOCtx *) ctx;
-}
-
-static const unsigned char PNGsig[8] = {137, 80, 78, 71, 13, 10, 26, 10}; /* 89 50 4E 47 0D 0A 1A 0A hex */
-
-int msLoadGDRasterBufferFromFile(char *path, rasterBufferObj *rb)
-{
- FILE *stream;
- char bytes[8];
- gdImagePtr img = NULL;
- stream = fopen(path,"rb");
- if(!stream) {
- msSetError(MS_MISCERR, "unable to open file %s for reading", "loadGDImg()", path);
- return MS_FAILURE;
- }
- if(1 != fread(bytes,8,1,stream)) { /* read some bytes to try and identify the file */
- msSetError(MS_MISCERR, "Unable to read header from image file %s", "msLoadGDRasterBufferFromFile()",path);
- return MS_FAILURE;
- }
- rewind(stream); /* reset the image for the readers */
- if(memcmp(bytes,"GIF8",4)==0) {
-#ifdef USE_GD_GIF
- gdIOCtx *ctx;
- ctx = msNewGDFileCtx(stream);
- img = gdImageCreateFromGifCtx(ctx);
- ctx->gd_free(ctx);
-#else
- msSetError(MS_MISCERR, "Unable to load GIF symbol.", "msLoadGDRasterBufferFromFile()");
- return MS_FAILURE;
-#endif
- } else if (memcmp(bytes,PNGsig,8)==0) {
-#ifdef USE_GD_PNG
- gdIOCtx *ctx;
- ctx = msNewGDFileCtx(stream);
- img = gdImageCreateFromPngCtx(ctx);
- ctx->gd_free(ctx);
-#else
- msSetError(MS_MISCERR, "Unable to load PNG symbol.", "msLoadGDRasterBufferFromFile()");
- return MS_FAILURE;
-#endif
- }
-
- fclose(stream);
-
- if(!img) {
- msSetError(MS_GDERR, NULL, "loadGDImg()");
- rb->type = MS_BUFFER_NONE;
- return MS_FAILURE;
- }
- if(gdImageTrueColor(img)) {
- int x,y;
- gdImagePtr pimg = gdImageCreate(gdImageSX(img),gdImageSY(img));
- gdImageColorAllocateAlpha(pimg,0,0,0,127);
- for(y = 0 ; y < gdImageSY(img); y++) {
- for(x = 0; x < gdImageSX(img); x++) {
- int pix = gdImageGetTrueColorPixel(img,x,y);
- if(gdTrueColorGetAlpha(pix) == 127) {
- gdImageSetPixel(pimg,x,y,0);
- pimg->transparent = 0;
- } else {
- gdImageSetPixel(pimg,x,y,gdImageColorResolveAlpha(pimg,gdTrueColorGetRed(pix),gdTrueColorGetGreen(pix),
- gdTrueColorGetBlue(pix),gdTrueColorGetAlpha(pix)));
- }
-
- }
- }
- gdImageDestroy(img);
- img = pimg;
- }
- rb->type = MS_BUFFER_GD;
- rb->width = gdImageSX(img);
- rb->height = gdImageSY(img);
- rb->data.gd_img = img;
- return MS_SUCCESS;
-}
-#endif
-
int readPNG(char *path, rasterBufferObj *rb)
{
png_uint_32 width,height;
@@ -741,17 +616,21 @@ int readPNG(char *path, rasterBufferObj *rb)
/* could pass pointers to user-defined error handlers instead of NULLs: */
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
- if (!png_ptr)
+ if (!png_ptr) {
+ fclose(stream);
return MS_FAILURE; /* out of memory */
+ }
info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) {
png_destroy_read_struct(&png_ptr, NULL, NULL);
+ fclose(stream);
return MS_FAILURE; /* out of memory */
}
if(setjmp(png_jmpbuf(png_ptr))) {
png_destroy_read_struct(&png_ptr,&info_ptr,NULL);
+ fclose(stream);
return MS_FAILURE;
}
@@ -830,127 +709,9 @@ int readPNG(char *path, rasterBufferObj *rb)
}
-#ifdef USE_GD
-int saveGdImage(gdImagePtr ip, FILE *fp, outputFormatObj *format)
-{
- gdIOCtx *ctx = NULL;
-
- if (fp && (fp == stdout))
- ctx = msIO_getGDIOCtx( fp );
-
- if(strcasecmp("ON", msGetOutputFormatOption(format, "INTERLACE", "ON")) == 0)
- gdImageInterlace(ip, 1);
-
- if(format->transparent)
- gdImageColorTransparent(ip, 0);
-
- if(strcasestr(format->driver, "/gif")) {
-#ifdef USE_GD_GIF
- if (ctx)
- gdImageGifCtx(ip, ctx);
- else
- gdImageGif(ip, fp);
-#else
- msSetError(MS_MISCERR, "GIF output is not available.", "saveImageGD()");
- return(MS_FAILURE);
-#endif
- } else if(strcasestr(format->driver, "/png")) {
-#ifdef USE_GD_PNG
- if (ctx)
- gdImagePngCtx(ip, ctx);
- else
- gdImagePng(ip, fp);
-#else
- msSetError(MS_MISCERR, "PNG output is not available.", "saveImageGD()");
- return(MS_FAILURE);
-#endif
- } else if(strcasestr(format->driver, "/jpeg")) {
-#ifdef USE_GD_JPEG
- if (ctx)
- gdImageJpegCtx(ip, ctx, atoi(msGetOutputFormatOption( format, "QUALITY", "75")));
- else
- gdImageJpeg(ip, fp, atoi(msGetOutputFormatOption( format, "QUALITY", "75")));
-#else
- msSetError(MS_MISCERR, "JPEG output is not available.", "saveImageGD()");
- return(MS_FAILURE);
-#endif
- } else {
- msSetError(MS_MISCERR, "Unknown or unsupported format.", "saveImageGD()");
- return(MS_FAILURE);
- }
- msFree(ctx);
-
- return MS_SUCCESS;
-}
-
-int saveGdImageBuffer(gdImagePtr ip, bufferObj *buffer, outputFormatObj *format)
-{
- gdIOCtx *ctx;
- int tmp_size;
-
- ctx = gdNewDynamicCtx (2048, NULL);
-
- if( format->imagemode == MS_IMAGEMODE_RGBA )
- gdImageSaveAlpha( ip, 1 );
- else if( format->imagemode == MS_IMAGEMODE_RGB )
- gdImageSaveAlpha( ip, 0 );
-
- if(strcasecmp("ON", msGetOutputFormatOption(format, "INTERLACE", "ON")) == 0)
- gdImageInterlace(ip, 1);
-
- if(format->transparent)
- gdImageColorTransparent(ip, 0);
-
- if(strcasestr(format->driver, "/gif")) {
-#ifdef USE_GD_GIF
- gdImageGifCtx( ip, ctx );
-#else
- msSetError(MS_MISCERR, "GIF output is not available.", "saveImageGD()");
- ctx->gd_free(ctx);
- return(MS_FAILURE);
-#endif
- } else if(strcasestr(format->driver, "/png")) {
-#ifdef USE_GD_PNG
- gdImagePngCtx(ip, ctx);
-#else
- msSetError(MS_MISCERR, "PNG output is not available.", "saveImageGD()");
- ctx->gd_free(ctx);
- return(MS_FAILURE);
-#endif
- } else if(strcasestr(format->driver, "/jpeg")) {
-#ifdef USE_GD_JPEG
- gdImageJpegCtx(ip, ctx, atoi(msGetOutputFormatOption( format, "QUALITY", "75")));
-#else
- msSetError(MS_MISCERR, "JPEG output is not available.", "saveImageGD()");
- ctx->gd_free(ctx);
- return(MS_FAILURE);
-#endif
- } else {
- msSetError(MS_MISCERR, "Unknown or unsupported format.", "saveImageGD()");
- ctx->gd_free(ctx);
- return(MS_FAILURE);
- }
-
- /* gdDPExtractData expects a int*, but bufferObj::size is a size_t */
- /* so use a temp variable to hold it */
- buffer->data = gdDPExtractData (ctx, &tmp_size);
- buffer->size = tmp_size;
-
- ctx->gd_free(ctx);
- return MS_SUCCESS;
-}
-#endif
-
int msSaveRasterBuffer(mapObj *map, rasterBufferObj *rb, FILE *stream,
outputFormatObj *format)
{
-#ifdef USE_GD
- if(rb->type == MS_BUFFER_GD) {
- return saveGdImage(rb->data.gd_img, stream, format);
- }
-#else
- assert(rb->type != MS_BUFFER_GD);
-#endif
if(strcasestr(format->driver,"/png")) {
streamInfo info;
info.fp = stream;
@@ -961,6 +722,7 @@ int msSaveRasterBuffer(mapObj *map, rasterBufferObj *rb, FILE *stream,
streamInfo info;
info.fp = stream;
info.buffer=NULL;
+
return saveAsJPEG(map, rb,&info,format);
} else {
msSetError(MS_MISCERR,"unsupported image format\n", "msSaveRasterBuffer()");
@@ -971,13 +733,6 @@ int msSaveRasterBuffer(mapObj *map, rasterBufferObj *rb, FILE *stream,
int msSaveRasterBufferToBuffer(rasterBufferObj *data, bufferObj *buffer,
outputFormatObj *format)
{
-#ifdef USE_GD
- if(data->type == MS_BUFFER_GD) {
- return saveGdImageBuffer(data->data.gd_img, buffer, format);
- }
-#else
- assert(data->type != MS_BUFFER_GD);
-#endif
if(strcasestr(format->driver,"/png")) {
streamInfo info;
info.fp = NULL;
@@ -1120,7 +875,7 @@ int readGIF(char *path, rasterBufferObj *rb)
rb->height = image->SHeight;
rb->data.rgba.row_step = rb->width * 4;
rb->data.rgba.pixel_step = 4;
- rb->data.rgba.pixels = (unsigned char*)malloc(rb->width*rb->height*4*sizeof(unsigned char*));
+ rb->data.rgba.pixels = (unsigned char*)malloc(rb->width*rb->height*4*sizeof(unsigned char));
b = rb->data.rgba.b = &rb->data.rgba.pixels[0];
g = rb->data.rgba.g = &rb->data.rgba.pixels[1];
r = rb->data.rgba.r = &rb->data.rgba.pixels[2];
diff --git a/mapimagemap.c b/mapimagemap.c
index 5f38436..15f1c09 100644
--- a/mapimagemap.c
+++ b/mapimagemap.c
@@ -260,73 +260,69 @@ imageObj *msImageCreateIM(int width, int height, outputFormatObj *format,
};
DEBUG_IF printf("msImageCreateIM<BR>\n");
if (width > 0 && height > 0) {
- image = (imageObj *)calloc(1,sizeof(imageObj));
- MS_CHECK_ALLOC(image, sizeof(imageObj), NULL);
- if (image) {
- imgStr.string = &(image->img.imagemap);
- imgStr.alloc_size = &(image->size);
-
- image->format = format;
- format->refcount++;
-
- image->width = width;
- image->height = height;
- image->imagepath = NULL;
- image->imageurl = NULL;
- image->resolution = resolution;
- image->resolutionfactor = resolution/defresolution;
-
- if( strcasecmp("ON",msGetOutputFormatOption( format, "DXF", "OFF" )) == 0) {
- dxf = 1;
- im_iprintf(&layerStr, " 2\nLAYER\n 70\n 10\n");
- } else
- dxf = 0;
-
- if( strcasecmp("ON",msGetOutputFormatOption( format, "SCRIPT", "OFF" )) == 0) {
- dxf = 2;
- im_iprintf(&layerStr, "");
- }
+ image = (imageObj *)msSmallCalloc(1,sizeof(imageObj));
+ imgStr.string = &(image->img.imagemap);
+ imgStr.alloc_size = &(image->size);
+
+ image->format = format;
+ format->refcount++;
+
+ image->width = width;
+ image->height = height;
+ image->imagepath = NULL;
+ image->imageurl = NULL;
+ image->resolution = resolution;
+ image->resolutionfactor = resolution/defresolution;
+
+ if( strcasecmp("ON",msGetOutputFormatOption( format, "DXF", "OFF" )) == 0) {
+ dxf = 1;
+ im_iprintf(&layerStr, " 2\nLAYER\n 70\n 10\n");
+ } else
+ dxf = 0;
- /* get href formation string options */
- polyHrefFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "POLYHREF", "javascript:Clicked('%s');"), 1);
- polyMOverFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "POLYMOUSEOVER", ""), 1);
- polyMOutFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "POLYMOUSEOUT", ""), 1);
- symbolHrefFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "SYMBOLHREF", "javascript:SymbolClicked();"), 1);
- symbolMOverFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "SYMBOLMOUSEOVER", ""), 1);
- symbolMOutFmt = makeFmtSafe(msGetOutputFormatOption
- ( format, "SYMBOLMOUSEOUT", ""), 1);
- /* get name of client-side image map */
- mapName = msGetOutputFormatOption
- ( format, "MAPNAME", "map1" );
- /* should we suppress area declarations with no title? */
- if( strcasecmp("YES",msGetOutputFormatOption( format, "SUPPRESS", "NO" )) == 0) {
- suppressEmpty=1;
- }
+ if( strcasecmp("ON",msGetOutputFormatOption( format, "SCRIPT", "OFF" )) == 0) {
+ dxf = 2;
+ im_iprintf(&layerStr, "");
+ }
- lname = msStrdup("NONE");
- *(imgStr.string) = msStrdup("");
- if (*(imgStr.string)) {
- *(imgStr.alloc_size) =
- imgStr.string_len = strlen(*(imgStr.string));
- } else {
- *(imgStr.alloc_size) =
- imgStr.string_len = 0;
- }
- if (imagepath) {
- image->imagepath = msStrdup(imagepath);
- }
- if (imageurl) {
- image->imageurl = msStrdup(imageurl);
- }
+ /* get href formation string options */
+ polyHrefFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "POLYHREF", "javascript:Clicked('%s');"), 1);
+ polyMOverFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "POLYMOUSEOVER", ""), 1);
+ polyMOutFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "POLYMOUSEOUT", ""), 1);
+ symbolHrefFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "SYMBOLHREF", "javascript:SymbolClicked();"), 1);
+ symbolMOverFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "SYMBOLMOUSEOVER", ""), 1);
+ symbolMOutFmt = makeFmtSafe(msGetOutputFormatOption
+ ( format, "SYMBOLMOUSEOUT", ""), 1);
+ /* get name of client-side image map */
+ mapName = msGetOutputFormatOption
+ ( format, "MAPNAME", "map1" );
+ /* should we suppress area declarations with no title? */
+ if( strcasecmp("YES",msGetOutputFormatOption( format, "SUPPRESS", "NO" )) == 0) {
+ suppressEmpty=1;
+ }
- return image;
- } else
- free( image );
+ lname = msStrdup("NONE");
+ *(imgStr.string) = msStrdup("");
+ if (*(imgStr.string)) {
+ *(imgStr.alloc_size) =
+ imgStr.string_len = strlen(*(imgStr.string));
+ } else {
+ *(imgStr.alloc_size) =
+ imgStr.string_len = 0;
+ }
+ if (imagepath) {
+ image->imagepath = msStrdup(imagepath);
+ }
+ if (imageurl) {
+ image->imageurl = msStrdup(imageurl);
+ }
+
+ return image;
} else {
msSetError(MS_IMGERR,
"Cannot create IM image of size %d x %d.",
@@ -338,7 +334,7 @@ imageObj *msImageCreateIM(int width, int height, outputFormatObj *format,
/* ------------------------------------------------------------------------- */
/* Draw a single marker symbol of the specified size and color */
/* ------------------------------------------------------------------------- */
-void msDrawMarkerSymbolIM(symbolSetObj *symbolset, imageObj* img, pointObj *p, styleObj *style, double scalefactor)
+void msDrawMarkerSymbolIM(mapObj *map, imageObj* img, pointObj *p, styleObj *style, double scalefactor)
{
symbolObj *symbol;
int ox, oy;
@@ -353,7 +349,8 @@ void msDrawMarkerSymbolIM(symbolSetObj *symbolset, imageObj* img, pointObj *p, s
if(!p) return;
- symbol = symbolset->symbol[style->symbol];
+ if(style->symbol > map->symbolset.numsymbols || style->symbol < 0) return; /* no such symbol, 0 is OK */
+ symbol = map->symbolset.symbol[style->symbol];
ox = style->offsetx*scalefactor;
oy = style->offsety*scalefactor;
if(style->size == -1) {
@@ -364,7 +361,6 @@ void msDrawMarkerSymbolIM(symbolSetObj *symbolset, imageObj* img, pointObj *p, s
size = MS_MAX(size, style->minsize*img->resolutionfactor);
size = MS_MIN(size, style->maxsize*img->resolutionfactor);
- if(style->symbol > symbolset->numsymbols || style->symbol < 0) return; /* no such symbol, 0 is OK */
if(size < 1) return; /* size too small */
/* DEBUG_IF printf(".%d.%d.%d.", symbol->type, style->symbol, fc); */
@@ -468,7 +464,7 @@ void msDrawMarkerSymbolIM(symbolSetObj *symbolset, imageObj* img, pointObj *p, s
/* ------------------------------------------------------------------------- */
/* Draw a line symbol of the specified size and color */
/* ------------------------------------------------------------------------- */
-void msDrawLineSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, styleObj *style, double scalefactor)
+void msDrawLineSymbolIM(mapObj *map, imageObj* img, shapeObj *p, styleObj *style, double scalefactor)
{
symbolObj *symbol;
int i,j,l;
@@ -480,7 +476,8 @@ void msDrawLineSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, sty
if(!p) return;
if(p->numlines <= 0) return;
- symbol = symbolset->symbol[style->symbol];
+ if(style->symbol > map->symbolset.numsymbols || style->symbol < 0) return; /* no such symbol, 0 is OK */
+ symbol = map->symbolset.symbol[style->symbol];
if(style->size == -1) {
size = msSymbolGetDefaultSize( symbol );
size = MS_NINT(size*scalefactor);
@@ -489,7 +486,6 @@ void msDrawLineSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, sty
size = MS_MAX(size, style->minsize*img->resolutionfactor);
size = MS_MIN(size, style->maxsize*img->resolutionfactor);
- if(style->symbol > symbolset->numsymbols || style->symbol < 0) return; /* no such symbol, 0 is OK */
if (suppressEmpty && p->numvalues==0) return;/* suppress area with empty title */
if(style->symbol == 0) { /* just draw a single width line */
for(l=0,j=0; j<p->numlines; j++) {
@@ -550,7 +546,7 @@ void msDrawLineSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, sty
/* ------------------------------------------------------------------------- */
/* Draw a shade symbol of the specified size and color */
/* ------------------------------------------------------------------------- */
-void msDrawShadeSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, styleObj *style, double scalefactor)
+void msDrawShadeSymbolIM(mapObj *map, imageObj* img, shapeObj *p, styleObj *style, double scalefactor)
{
symbolObj *symbol;
int i,j,l;
@@ -561,7 +557,7 @@ void msDrawShadeSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, st
if(!p) return;
if(p->numlines <= 0) return;
- symbol = symbolset->symbol[style->symbol];
+ symbol = map->symbolset.symbol[style->symbol];
if(style->size == -1) {
size = msSymbolGetDefaultSize( symbol );
size = MS_NINT(size*scalefactor);
@@ -626,7 +622,7 @@ void msDrawShadeSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, st
/*
* Simply draws a label based on the label point and the supplied label object.
*/
-int msDrawTextIM(imageObj* img, pointObj labelPnt, char *string, labelObj *label, fontSetObj *fontset, double scalefactor)
+int msDrawTextIM(mapObj *map, imageObj* img, pointObj labelPnt, char *string, labelObj *label, double scalefactor)
{
DEBUG_IF printf("msDrawText<BR>\n");
if(!string) return(0); /* not errors, just don't want to do anything */
diff --git a/mapio.c b/mapio.c
index 0861213..9e016fe 100644
--- a/mapio.c
+++ b/mapio.c
@@ -46,6 +46,7 @@
static int is_msIO_initialized = MS_FALSE;
+static int is_msIO_header_enabled = MS_TRUE;
typedef struct msIOContextGroup_t {
msIOContext stdin_context;
@@ -145,6 +146,23 @@ static msIOContextGroup *msIO_GetContextGroup()
return group;
}
+/* returns MS_TRUE if the msIO standard output hasn't been redirected */
+int msIO_isStdContext() {
+ msIOContextGroup *group = io_context_list;
+ int nThreadId = msGetThreadId();
+ if(!group || group->thread_id != nThreadId) {
+ group = msIO_GetContextGroup();
+ if(!group) {
+ return MS_FALSE; /* probably a bug */
+ }
+ }
+ if(group->stderr_context.cbData == (void*)stderr &&
+ group->stdin_context.cbData == (void*)stdin &&
+ group->stdout_context.cbData == (void*)stdout)
+ return MS_TRUE;
+ return MS_FALSE;
+}
+
/************************************************************************/
/* msIO_getHandler() */
/************************************************************************/
@@ -173,6 +191,19 @@ msIOContext *msIO_getHandler( FILE * fp )
return NULL;
}
+/************************************************************************/
+/* msIO_setHeaderEnabled() */
+/************************************************************************/
+
+void msIO_setHeaderEnabled(int bFlag)
+{
+ is_msIO_header_enabled = bFlag;
+}
+
+/************************************************************************/
+/* msIO_setHeader() */
+/************************************************************************/
+
void msIO_setHeader (const char *header, const char* value, ...)
{
va_list args;
@@ -195,12 +226,15 @@ void msIO_setHeader (const char *header, const char* value, ...)
}
} else {
#endif // MOD_WMS_ENABLED
- msIO_fprintf(stdout,"%s: ",header);
- msIO_vfprintf(stdout,value,args);
- msIO_fprintf(stdout,"\r\n");
+ if( is_msIO_header_enabled ) {
+ msIO_fprintf(stdout,"%s: ",header);
+ msIO_vfprintf(stdout,value,args);
+ msIO_fprintf(stdout,"\r\n");
+ }
#ifdef MOD_WMS_ENABLED
}
#endif
+ va_end( args );
}
void msIO_sendHeaders ()
@@ -209,8 +243,10 @@ void msIO_sendHeaders ()
msIOContext *ioctx = msIO_getHandler (stdout);
if(ioctx && !strcmp(ioctx->label,"apache")) return;
#endif // !MOD_WMS_ENABLED
- msIO_printf ("\r\n");
- fflush (stdout);
+ if( is_msIO_header_enabled ) {
+ msIO_printf ("\r\n");
+ fflush (stdout);
+ }
}
@@ -500,6 +536,8 @@ static int msIO_stdioWrite( void *cbData, void *data, int byteCount )
static void msIO_Initialize( void )
{
+ const char* pszStripHTTPHeader;
+
if( is_msIO_initialized == MS_TRUE )
return;
@@ -524,79 +562,6 @@ static void msIO_Initialize( void )
is_msIO_initialized = MS_TRUE;
}
-/* ==================================================================== */
-/* ==================================================================== */
-/* Stuff related to having a gdIOCtx operate through the msIO */
-/* layer. */
-/* ==================================================================== */
-/* ==================================================================== */
-
-typedef struct {
-#ifdef USE_GD
- gdIOCtx gd_io_ctx;
-#endif
- msIOContext *ms_io_ctx;
-} msIO_gdIOCtx;
-
-
-#ifdef USE_GD
-/************************************************************************/
-/* msIO_gd_putC() */
-/* */
-/* A GD IO context callback to put a character, redirected */
-/* through the msIO output context. */
-/************************************************************************/
-
-static void msIO_gd_putC( gdIOCtx *cbData, int out_char )
-
-{
- msIO_gdIOCtx *merged_context = (msIO_gdIOCtx *) cbData;
- char out_char_as_char = (char) out_char;
-
- msIO_contextWrite( merged_context->ms_io_ctx, &out_char_as_char, 1 );
-}
-
-/************************************************************************/
-/* msIO_gd_putBuf() */
-/* */
-/* The GD IO context callback to put a buffer of data, */
-/* redirected through the msIO output context. */
-/************************************************************************/
-
-static int msIO_gd_putBuf( gdIOCtx *cbData, const void *data, int byteCount )
-
-{
- msIO_gdIOCtx *merged_context = (msIO_gdIOCtx *) cbData;
-
- return msIO_contextWrite( merged_context->ms_io_ctx, data, byteCount );
-}
-#endif
-
-/************************************************************************/
-/* msIO_getGDIOCtx() */
-/* */
-/* The returned context should be freed with free() when no */
-/* longer needed. */
-/************************************************************************/
-
-#ifdef USE_GD
-gdIOCtx *msIO_getGDIOCtx( FILE *fp )
-
-{
- msIO_gdIOCtx *merged_context;
- msIOContext *context = msIO_getHandler( fp );
-
- if( context == NULL )
- return NULL;
-
- merged_context = (msIO_gdIOCtx *) calloc(1,sizeof(msIO_gdIOCtx));
- merged_context->gd_io_ctx.putC = msIO_gd_putC;
- merged_context->gd_io_ctx.putBuf = msIO_gd_putBuf;
- merged_context->ms_io_ctx = context;
-
- return (gdIOCtx *) merged_context;
-}
-#endif
/* ==================================================================== */
/* ==================================================================== */
@@ -723,6 +688,57 @@ void msIO_installStdoutToBuffer()
&group->stderr_context );
}
+
+/************************************************************************/
+/* msIO_pushStdoutToBufferAndGetOldContext() */
+/* */
+/* This function installs a temporary buffer I/O context and returns */
+/* previously installed stdout handler. This previous stdout handler */
+/* should later be restored with msIO_restoreOldStdoutContext(). */
+/* This function can be for example used when wanting to ingest into */
+/* libxml objects XML generated by msIO_fprintf() */
+/************************************************************************/
+
+msIOContext* msIO_pushStdoutToBufferAndGetOldContext()
+
+{
+ msIOContextGroup *group = msIO_GetContextGroup();
+ msIOContext *old_context;
+
+ /* Backup current context */
+ old_context = (msIOContext*) msSmallMalloc(sizeof(msIOContext));
+ memcpy(old_context, &group->stdout_context, sizeof(msIOContext));
+
+ msIO_installStdoutToBuffer();
+
+ return old_context;
+}
+
+/************************************************************************/
+/* msIO_restoreOldStdoutContext() */
+/************************************************************************/
+
+void msIO_restoreOldStdoutContext(msIOContext *context_to_restore)
+{
+ msIOContextGroup *group = msIO_GetContextGroup();
+ msIOContext *prev_context = &group->stdout_context;
+ msIOBuffer* buffer;
+
+ /* Free memory associated to our temporary context */
+ assert( strcmp(prev_context->label, "buffer") == 0 );
+
+ buffer = (msIOBuffer* )prev_context->cbData;
+ msFree(buffer->data);
+ msFree(buffer);
+
+ /* Restore old context */
+ msIO_installHandlers( &group->stdin_context,
+ context_to_restore,
+ &group->stderr_context );
+
+ msFree(context_to_restore);
+}
+
/************************************************************************/
/* msIO_installStdinFromBuffer() */
/************************************************************************/
@@ -920,9 +936,9 @@ int msIO_bufferWrite( void *cbData, void *data, int byteCount )
msIOBuffer *buf = (msIOBuffer *) cbData;
/*
- ** Grow buffer if needed.
+ ** Grow buffer if needed (reserve one extra byte to put nul character)
*/
- if( buf->data_offset + byteCount > buf->data_len ) {
+ if( buf->data_offset + byteCount >= buf->data_len ) {
buf->data_len = buf->data_len * 2 + byteCount + 100;
if( buf->data == NULL )
buf->data = (unsigned char *) malloc(buf->data_len);
@@ -944,6 +960,7 @@ int msIO_bufferWrite( void *cbData, void *data, int byteCount )
memcpy( buf->data + buf->data_offset, data, byteCount );
buf->data_offset += byteCount;
+ buf->data[buf->data_offset] = '\0';
return byteCount;
}
diff --git a/mapio.h b/mapio.h
index b5faef2..f339839 100644
--- a/mapio.h
+++ b/mapio.h
@@ -57,10 +57,6 @@ extern "C" {
int MS_DLL_EXPORT msIO_fread( void *ptr, size_t size, size_t nmemb, FILE *stream );
int MS_DLL_EXPORT msIO_vfprintf( FILE *fp, const char *format, va_list ap );
-#ifdef USE_GD
- gdIOCtx MS_DLL_EXPORT *msIO_getGDIOCtx( FILE *fp );
-#endif
-
/*
** Definitions for the callback function and the details of the IO
** channel contexts.
@@ -79,6 +75,7 @@ extern "C" {
msIOContext *stdout_context,
msIOContext *stderr_context );
msIOContext MS_DLL_EXPORT *msIO_getHandler( FILE * );
+ void MS_DLL_EXPORT msIO_setHeaderEnabled(int bFlag);
void msIO_setHeader (const char *header, const char* value, ...) MS_PRINT_FUNC_FORMAT(2,3);
void msIO_sendHeaders(void);
@@ -108,6 +105,12 @@ extern "C" {
void MS_DLL_EXPORT msIO_Cleanup(void);
char MS_DLL_EXPORT *msIO_stripStdoutBufferContentType(void);
void MS_DLL_EXPORT msIO_stripStdoutBufferContentHeaders(void);
+
+ msIOContext *msIO_pushStdoutToBufferAndGetOldContext(void);
+ void msIO_restoreOldStdoutContext(msIOContext *context_to_restore);
+
+ int MS_DLL_EXPORT msIO_isStdContext(void);
+
/* this is just for setting normal stdout's to binary mode on windows */
diff --git a/mapkml.cpp b/mapkml.cpp
index 7ec0557..65b5ed7 100644
--- a/mapkml.cpp
+++ b/mapkml.cpp
@@ -86,11 +86,10 @@ extern "C" {
return MS_SUCCESS;
}
- int msRenderGlyphsKml(imageObj *img, double x, double y,
- labelStyleObj *style, char *text)
+ int msRenderGlyphsKml(imageObj *img, pointObj *labelpnt, char *text, double angle, colorObj *clr, colorObj *olcolor, int olwidth)
{
KmlRenderer* renderer = getKmlRenderer(img);
- renderer->renderGlyphs(img, x, y, style, text);
+ renderer->renderGlyphs(img, labelpnt, text, angle, clr, olcolor, olwidth);
return MS_SUCCESS;
}
@@ -215,10 +214,7 @@ int aggInitializeRasterBuffer(rasterBufferObj *rb, int width, int height, int mo
int msPopulateRendererVTableKML( rendererVTableObj *renderer )
{
#ifdef USE_KML
-
- renderer->supports_transparent_layers = 1;
renderer->supports_pixel_buffer = 0;
- renderer->supports_bitmap_fonts = 0;
renderer->supports_clipping = 0;
renderer->use_imagecache = 0;
renderer->default_transform_mode = MS_TRANSFORM_NONE;
@@ -229,21 +225,20 @@ int msPopulateRendererVTableKML( rendererVTableObj *renderer )
renderer->createImage=&msCreateImageKml;
renderer->saveImage=&msSaveImageKml;
renderer->renderPolygon=&msRenderPolygonKml;
- renderer->renderGlyphs=&msRenderGlyphsKml;
+ renderer->renderText=&msRenderGlyphsKml;
renderer->renderEllipseSymbol = &msRenderEllipseSymbolKml;
renderer->renderVectorSymbol = &msRenderVectorSymbolKml;
renderer->renderPixmapSymbol = &msRenderPixmapSymbolKml;
- renderer->renderTruetypeSymbol = &msRenderTruetypeSymbolKml;
renderer->mergeRasterBuffer = &msMergeRasterBufferKml;
renderer->loadImageFromFile = msLoadMSRasterBufferFromFile;
renderer->initializeRasterBuffer = aggInitializeRasterBuffer;
- renderer->getTruetypeTextBBox = &msGetTruetypeTextBBoxKml;
renderer->renderTile = &msRenderTileKml;
renderer->renderPolygonTiled = &msRenderPolygonTiledKml;
renderer->renderLineTiled = NULL;
renderer->freeSymbol = &msFreeSymbolKml;
renderer->freeImage=&msFreeImageKml;
renderer->mergeRasterBuffer = msMergeRasterBufferKml;
+ renderer->compositeRasterBuffer = NULL;
renderer->startShape=&msStartShapeKml;
renderer->endShape=&msEndShapeKml;
diff --git a/mapkmlrenderer.cpp b/mapkmlrenderer.cpp
index 9192749..f65fb45 100644
--- a/mapkmlrenderer.cpp
+++ b/mapkmlrenderer.cpp
@@ -373,6 +373,7 @@ int KmlRenderer::startNewLayer(imageObj *img, layerObj *layer)
if (!msLayerIsOpen(layer)) {
if (msLayerOpen(layer) != MS_SUCCESS) {
msSetError(MS_MISCERR, "msLayerOpen failed", "KmlRenderer::startNewLayer" );
+ return MS_FAILURE;
}
}
@@ -404,7 +405,9 @@ int KmlRenderer::startNewLayer(imageObj *img, layerObj *layer)
pszLayerNameAttributeMetadata = msLookupHashTable(&layer->metadata, "kml_name_item");
/*get all attributes*/
- msLayerWhichItems(layer, MS_TRUE, NULL);
+ if(msLayerWhichItems(layer, MS_TRUE, NULL) != MS_SUCCESS) {
+ return MS_FAILURE;
+ }
NumItems = layer->numitems;
@@ -687,7 +690,7 @@ void KmlRenderer::addCoordsNode(xmlNodePtr parentNode, pointObj *pts, int numPts
xmlNodeAddContent(coordsNode, BAD_CAST "\t");
}
-void KmlRenderer::renderGlyphs(imageObj*, double x, double y, labelStyleObj *style, char *text)
+void KmlRenderer::renderGlyphs(imageObj *img, pointObj *labelpnt, char *text, double angle, colorObj *clr, colorObj *olcolor, int olwidth)
{
xmlNodePtr node;
@@ -697,7 +700,7 @@ void KmlRenderer::renderGlyphs(imageObj*, double x, double y, labelStyleObj *sty
if (!PlacemarkNode)
return;
- memcpy(&LabelStyle, style, sizeof(labelStyleObj));
+ memcpy(&LabelColor, clr, sizeof(colorObj));
SymbologyFlag[Label] = 1;
/*there is alaws a default name (layer.shapeid). Replace it*/
@@ -717,8 +720,8 @@ void KmlRenderer::renderGlyphs(imageObj*, double x, double y, labelStyleObj *sty
addAddRenderingSpecifications(geomNode);
pointObj pt;
- pt.x = x;
- pt.y = y;
+ pt.x = labelpnt->x;
+ pt.y = labelpnt->y;
addCoordsNode(geomNode, &pt, 1);
}
@@ -766,7 +769,7 @@ int KmlRenderer::createIconImage(char *fileName, symbolObj *symbol, symbolStyleO
p.z = 0.0;
#endif
- msDrawMarkerSymbol(&map->symbolset,tmpImg, &p, symstyle->style, 1);
+ msDrawMarkerSymbol(map,tmpImg, &p, symstyle->style, 1);
return msSaveImage(map, tmpImg, fileName);
}
@@ -844,8 +847,8 @@ xmlNodePtr KmlRenderer::createGroundOverlayNode(xmlNodePtr parentNode, char *ima
xmlNodePtr groundOverlayNode = xmlNewChild(parentNode, NULL, BAD_CAST "GroundOverlay", NULL);
char *layerName = getLayerName(layer);
xmlNewChild(groundOverlayNode, NULL, BAD_CAST "name", BAD_CAST layerName);
- if (layer->opacity > 0 && layer->opacity < 100) {
- sprintf(layerHexColor, "%02xffffff", (unsigned int)MS_NINT(layer->opacity*2.55));
+ if (layer->compositer && layer->compositer->opacity > 0 && layer->compositer->opacity < 100) {
+ sprintf(layerHexColor, "%02xffffff", (unsigned int)MS_NINT(layer->compositer->opacity*2.55));
xmlNewChild(groundOverlayNode, NULL, BAD_CAST "color", BAD_CAST layerHexColor);
} else
xmlNewChild(groundOverlayNode, NULL, BAD_CAST "color", BAD_CAST "ffffffff");
@@ -900,14 +903,12 @@ void KmlRenderer::startShape(imageObj *, shapeObj *shape)
numLineStyle = 0;
}
- if (shape) {
- CurrentShapeIndex = shape->index;
- if (pszLayerNameAttributeMetadata) {
- for (int i=0; i<currentLayer->numitems; i++) {
- if (strcasecmp(currentLayer->items[i], pszLayerNameAttributeMetadata) == 0 && shape->values[i]) {
- CurrentShapeName = msStrdup(shape->values[i]);
- break;
- }
+ CurrentShapeIndex = shape->index;
+ if (pszLayerNameAttributeMetadata) {
+ for (int i=0; i<currentLayer->numitems; i++) {
+ if (strcasecmp(currentLayer->items[i], pszLayerNameAttributeMetadata) == 0 && shape->values[i]) {
+ CurrentShapeName = msStrdup(shape->values[i]);
+ break;
}
}
}
@@ -1022,9 +1023,9 @@ char* KmlRenderer::lookupPlacemarkStyle()
*/
for (int i=0; i<numLineStyle; i++) {
- if (currentLayer && currentLayer->opacity > 0 && currentLayer->opacity < 100 &&
+ if (currentLayer && currentLayer->compositer && currentLayer->compositer->opacity > 0 && currentLayer->compositer->opacity < 100 &&
LineStyle[i].color->alpha == 255)
- LineStyle[i].color->alpha = MS_NINT(currentLayer->opacity*2.55);
+ LineStyle[i].color->alpha = MS_NINT(currentLayer->compositer->opacity*2.55);
sprintf(lineHexColor,"%02x%02x%02x%02x", LineStyle[i].color->alpha, LineStyle[0].color->blue,
LineStyle[i].color->green, LineStyle[i].color->red);
@@ -1048,9 +1049,9 @@ char* KmlRenderer::lookupPlacemarkStyle()
</PolyStyle>
*/
- if (currentLayer && currentLayer->opacity > 0 && currentLayer->opacity < 100 &&
+ if (currentLayer && currentLayer->compositer && currentLayer->compositer->opacity > 0 && currentLayer->compositer->opacity < 100 &&
PolygonColor.alpha == 255)
- PolygonColor.alpha = MS_NINT(currentLayer->opacity*2.55);
+ PolygonColor.alpha = MS_NINT(currentLayer->compositer->opacity*2.55);
sprintf(polygonHexColor,"%02x%02x%02x%02x", PolygonColor.alpha, PolygonColor.blue, PolygonColor.green, PolygonColor.red);
char polygonStyleName[64];
@@ -1070,10 +1071,10 @@ char* KmlRenderer::lookupPlacemarkStyle()
</LabelStyle>
*/
- if (currentLayer && currentLayer->opacity > 0 && currentLayer->opacity < 100 &&
- LabelStyle.color->alpha == 255)
- LabelStyle.color->alpha = MS_NINT(currentLayer->opacity*2.55);
- sprintf(labelHexColor,"%02x%02x%02x%02x", LabelStyle.color->alpha, LabelStyle.color->blue, LabelStyle.color->green, LabelStyle.color->red);
+ if (currentLayer && currentLayer->compositer && currentLayer->compositer->opacity > 0 && currentLayer->compositer->opacity < 100 &&
+ LabelColor.alpha == 255)
+ LabelColor.alpha = MS_NINT(currentLayer->compositer->opacity*2.55);
+ sprintf(labelHexColor,"%02x%02x%02x%02x", LabelColor.alpha, LabelColor.blue, LabelColor.green, LabelColor.red);
// __TODO__ add label scale
diff --git a/mapkmlrenderer.h b/mapkmlrenderer.h
index e0525b2..20b99d9 100644
--- a/mapkmlrenderer.h
+++ b/mapkmlrenderer.h
@@ -77,7 +77,7 @@ protected:
// placemark symbology
hashTableObj *StyleHashTable;
- labelStyleObj LabelStyle;
+ colorObj LabelColor;
strokeStyleObj *LineStyle;
int numLineStyle;
colorObj PolygonColor;
@@ -160,7 +160,7 @@ public:
void renderLine(imageObj *img, shapeObj *p, strokeStyleObj *style);
void renderPolygon(imageObj *img, shapeObj *p, colorObj *color);
- void renderGlyphs(imageObj *img, double x, double y, labelStyleObj *style, char *text);
+ void renderGlyphs(imageObj *img, pointObj *labelpnt, char *text, double angle, colorObj *clr, colorObj *olcolor, int olwidth);
// Symbols
void renderPixmapSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style);
diff --git a/maplabel.c b/maplabel.c
index dbda6d6..6b804e1 100644
--- a/maplabel.c
+++ b/maplabel.c
@@ -31,7 +31,10 @@
** maplabel.c: Routines to enable text drawing, BITMAP or TRUETYPE.
*/
+#include <float.h>
+
#include "mapserver.h"
+#include "fontcache.h"
@@ -51,14 +54,10 @@
* for a summary of how wrap/maxlength interact on the result
* of the text transformation
*/
-char *msWrapText(labelObj *label, char *text)
+char *msWrapText(char *text, char wrap, int maxlength)
{
- char wrap;
- int maxlength;
if(!text) /*not an error if no text*/
return text;
- wrap = label->wrap;
- maxlength = label->maxlength;
if(maxlength == 0) {
if(wrap!='\0') {
/* if maxlength = 0 *and* a wrap character was specified,
@@ -81,33 +80,17 @@ char *msWrapText(labelObj *label, char *text)
int numwrapchars = msCountChars(text,wrap);
if(numwrapchars > 0) {
- if(label->encoding) {
- /* we have to use utf decoding functions here, so as not to
- * split a text line on a multibyte character */
-
- int num_cur_glyph_on_line = 0; /*count for the number of glyphs
- on the current line*/
- char *textptr = text;
- char glyph[11]; /*storage for unicode fetching function*/
- int glyphlen = 0; /*size of current glyph in bytes*/
- while((glyphlen = msGetNextGlyph((const char**)&textptr,glyph))>0) {
- num_cur_glyph_on_line++;
- if(*glyph == wrap && num_cur_glyph_on_line>=(maxlength)) {
- /*FIXME (if wrap becomes something other than char):*/
- *(textptr-1)='\n'; /*replace wrap char with a \n*/
- num_cur_glyph_on_line=0; /*reset count*/
- }
- }
- } else {
- int cur_char_on_line = 0;
- char *textptr = text;
- while(*textptr != 0) {
- cur_char_on_line++;
- if(*textptr == wrap && cur_char_on_line>=maxlength) {
- *textptr='\n'; /*replace wrap char with a \n*/
- cur_char_on_line=0; /*reset count*/
- }
- textptr++;
+ int num_cur_glyph_on_line = 0; /*count for the number of glyphs
+ on the current line*/
+ char *textptr = text;
+ char glyph[11]; /*storage for unicode fetching function*/
+ int glyphlen = 0; /*size of current glyph in bytes*/
+ while((glyphlen = msGetNextGlyph((const char**)&textptr,glyph))>0) {
+ num_cur_glyph_on_line++;
+ if(*glyph == wrap && num_cur_glyph_on_line>=(maxlength)) {
+ /*FIXME (if wrap becomes something other than char):*/
+ *(textptr-1)='\n'; /*replace wrap char with a \n*/
+ num_cur_glyph_on_line=0; /*reset count*/
}
}
return text;
@@ -156,189 +139,156 @@ char *msWrapText(labelObj *label, char *text)
}
}
-char *msAlignText(mapObj *map, labelObj *label, char *text)
-{
- double spacewidth=0.0; /*size of a single space, in fractional pixels*/
- int numlines;
- char **textlines,*newtext,*newtextptr;
- int *textlinelengths,*numspacesforpadding;
- int numspacestoadd,maxlinelength,i;
- rectObj label_rect;
- if(!msCountChars(text,'\n'))
- return text; /*only one line*/
-
- /*split text into individual lines
- * TODO: check if splitting on \n is utf8 safe*/
- textlines = msStringSplit(text,'\n',&numlines);
-
- /*
- * label->space_size_10 contains a cache for the horizontal size of a single
- * 'space' character, at size 10 for the current label
- * FIXME: in case of attribute binding for the FONT of the label, this cache will
- * be wrong for labels where the attributed font is different than the first
- * computed font. This shouldn't happen too often, and hopefully the size of a
- * space character shouldn't vary too much between different fonts*/
- if(label->space_size_10 == 0.0) {
- /*if the cache hasn't been initialized yet, or with pixmap fonts*/
-
- /* compute the size of 16 adjacent spaces. we can't do this for just one space,
- * as the labelSize computing functions return integer bounding boxes. we assume
- * that the integer rounding for such a number of spaces will be negligeable
- * compared to the actual size of thoses spaces */
- if(msGetLabelSize(map,label,". .",10.0,&label_rect,NULL) != MS_SUCCESS) {
- /*error computing label size, we can't continue*/
-
- /*free the previously allocated split text*/
- while(numlines--)
- free(textlines[numlines]);
- free(textlines);
- return text;
- }
+void initTextPath(textPathObj *ts) {
+ memset(ts,0,sizeof(*ts));
+}
- /* this is the size of a single space character. for truetype fonts,
- * it's the size of a 10pt space. For pixmap fonts, it's the size
- * for the current label */
- spacewidth = (label_rect.maxx-label_rect.minx)/16.0;
- if(label->type == MS_TRUETYPE) {
- label->space_size_10=spacewidth; /*cache the computed size*/
+int WARN_UNUSED msLayoutTextSymbol(mapObj *map, textSymbolObj *ts, textPathObj *tgret);
- /*size of a space for current label size*/
- spacewidth = spacewidth * (double)label->size/10.0;
+#if defined(USE_EXTENDED_DEBUG) && 0
+static void msDebugTextPath(textSymbolObj *ts) {
+ int i;
+ msDebug("text: %s\n",ts->annotext);
+ if(ts->textpath) {
+ for(i=0;i<ts->textpath->numglyphs; i++) {
+ glyphObj *g = &ts->textpath->glyphs[i];
+ msDebug("glyph %d: pos: %f %f\n",g->glyph->key.codepoint,g->pnt.x,g->pnt.y);
}
} else {
- spacewidth = label->space_size_10 * (double)label->size/10.0;
+ msDebug("no glyphs\n");
}
- spacewidth = MS_MAX(1,spacewidth);
-
-
- /*length in pixels of each line*/
- textlinelengths = (int*)msSmallMalloc(numlines*sizeof(int));
-
- /*number of spaces that need to be added to each line*/
- numspacesforpadding = (int*)msSmallMalloc(numlines*sizeof(int));
+ msDebug("\n=========================================\n");
+}
+#endif
- /*total number of spaces that need to be added*/
- numspacestoadd=0;
+int msComputeTextPath(mapObj *map, textSymbolObj *ts) {
+ textPathObj *tgret = msSmallMalloc(sizeof(textPathObj));
+ assert(ts->annotext && *ts->annotext);
+ initTextPath(tgret);
+ ts->textpath = tgret;
+ tgret->absolute = 0;
+ tgret->glyph_size = ts->label->size * ts->scalefactor;
+ tgret->glyph_size = MS_MAX(tgret->glyph_size, ts->label->minsize * ts->resolutionfactor);
+ tgret->glyph_size = MS_NINT(MS_MIN(tgret->glyph_size, ts->label->maxsize * ts->resolutionfactor));
+ tgret->line_height = ceil(tgret->glyph_size * 1.33);
+ return msLayoutTextSymbol(map,ts,tgret);
+}
+
+void initTextSymbol(textSymbolObj *ts) {
+ memset(ts,0,sizeof(*ts));
+}
- /*length in pixels of the longest line*/
- maxlinelength=0;
- for(i=0; i<numlines; i++) {
- if(MS_SUCCESS != msGetLabelSize(map,label,textlines[i],label->size, &label_rect,NULL)) {
- msFreeCharArray(textlines,numlines);
- msFree(textlinelengths);
- msFree(numspacesforpadding);
- return text;
- }
- textlinelengths[i] = label_rect.maxx-label_rect.minx;
- if(maxlinelength<textlinelengths[i])
- maxlinelength=textlinelengths[i];
+void freeTextPath(textPathObj *tp) {
+ free(tp->glyphs);
+ if(tp->bounds.poly) {
+ free(tp->bounds.poly->point);
+ free(tp->bounds.poly);
}
- for(i=0; i<numlines; i++) {
- /* number of spaces to add so the current line is
- * as long as the longest line */
- double nfracspaces = (maxlinelength - textlinelengths[i])/spacewidth;
-
- if(label->align == MS_ALIGN_CENTER) {
- numspacesforpadding[i]=MS_NINT(nfracspaces/2.0);
- } else {
- if(label->align == MS_ALIGN_RIGHT) {
- numspacesforpadding[i]=MS_NINT(nfracspaces);
+}
+void freeTextSymbol(textSymbolObj *ts) {
+ if(ts->textpath) {
+ freeTextPath(ts->textpath);
+ free(ts->textpath);
+ }
+ if(ts->label->numstyles) {
+ if(ts->style_bounds) {
+ int i;
+ for(i=0;i<ts->label->numstyles; i++) {
+ if(ts->style_bounds[i]) {
+ if(ts->style_bounds[i]->poly) {
+ free(ts->style_bounds[i]->poly->point);
+ free(ts->style_bounds[i]->poly);
+ }
+ free(ts->style_bounds[i]);
+ }
}
+ free(ts->style_bounds);
}
- numspacestoadd+=numspacesforpadding[i];
}
+ free(ts->annotext);
+ if(freeLabel(ts->label) == MS_SUCCESS) {
+ free(ts->label);
+ }
+}
- /*allocate new text with room for the additional spaces needed*/
- newtext = (char*)msSmallMalloc(strlen(text)+1+numspacestoadd);
- newtextptr=newtext;
- for(i=0; i<numlines; i++) {
- int j;
- /*padd beginning of line with needed spaces*/
- for(j=0; j<numspacesforpadding[i]; j++) {
- *(newtextptr++)=' ';
- }
- /*copy original line*/
- strcpy(newtextptr,textlines[i]);
- /*place pointer at the char right after the current line*/
- newtextptr+=strlen(textlines[i])+1;
- if(i!=numlines-1) {
- /*put the \n back in (was taken away by msStringSplit)*/
- *(newtextptr-1)='\n';
+void msCopyTextPath(textPathObj *dst, textPathObj *src) {
+ int i;
+ *dst = *src;
+ if(src->bounds.poly) {
+ dst->bounds.poly = msSmallMalloc(sizeof(lineObj));
+ dst->bounds.poly->numpoints = src->bounds.poly->numpoints;
+ for(i=0; i<src->bounds.poly->numpoints; i++) {
+ dst->bounds.poly->point[i] = src->bounds.poly->point[i];
}
+ } else {
+ dst->bounds.poly = NULL;
}
- /*free the original text*/
- free(text);
- for(i=0; i<numlines; i++) {
- free(textlines[i]);
+ if(dst->numglyphs > 0) {
+ dst->glyphs = msSmallMalloc(dst->numglyphs * sizeof(glyphObj));
+ for(i=0; i<dst->numglyphs; i++)
+ dst->glyphs[i] = src->glyphs[i];
}
- free(textlines);
- free(textlinelengths);
- free(numspacesforpadding);
-
- /*return the aligned text. note that the terminating \0 was added by the last
- * call to strcpy */
- return newtext;
}
-
-/*
- * this function applies the label encoding and wrap parameters
- * to the supplied text
- * Note: it is the caller's responsibility to free the returned
- * char array
- */
-char *msTransformLabelText(mapObj *map, labelObj *label, char *text)
-{
- char *newtext = text;
- if(label->encoding)
- newtext = msGetEncodedString(text, label->encoding);
- else
- newtext=msStrdup(text);
-
- if(newtext && (label->wrap!='\0' || label->maxlength!=0)) {
- newtext = msWrapText(label, newtext);
+void msCopyTextSymbol(textSymbolObj *dst, textSymbolObj *src) {
+ *dst = *src;
+ MS_REFCNT_INCR(src->label);
+ dst->annotext = msStrdup(src->annotext);
+ if(dst->textpath) {
+ dst->textpath = msSmallMalloc(sizeof(textPathObj));
+ msCopyTextPath(dst->textpath,src->textpath);
}
+}
- if(newtext && label->align!=MS_ALIGN_LEFT ) {
- newtext = msAlignText(map, label, newtext);
+static int labelNeedsDeepCopy(labelObj *label) {
+ int i;
+ if(label->numbindings > 0) return MS_TRUE;
+ for(i=0; i<label->numstyles; i++) {
+ if(label->styles[i]->numbindings>0) {
+ return MS_TRUE;
+ }
}
+ return MS_FALSE;
+}
- return newtext;
+void msPopulateTextSymbolForLabelAndString(textSymbolObj *ts, labelObj *l, char *string, double scalefactor, double resolutionfactor, label_cache_mode cache) {
+ if(cache == duplicate_always) {
+ ts->label = msSmallMalloc(sizeof(labelObj));
+ initLabel(ts->label);
+ msCopyLabel(ts->label,l);
+ } else if(cache == duplicate_never) {
+ ts->label = l;
+ MS_REFCNT_INCR(l);
+ } else if(cache == duplicate_if_needed && labelNeedsDeepCopy(l)) {
+ ts->label = msSmallMalloc(sizeof(labelObj));
+ initLabel(ts->label);
+ msCopyLabel(ts->label,l);
+ } else {
+ ts->label = l;
+ MS_REFCNT_INCR(l);
+ }
+ ts->resolutionfactor = resolutionfactor;
+ ts->scalefactor = scalefactor;
+ ts->annotext = string; /* we take the ownership of the annotation text */
+ ts->rotation = l->angle * MS_DEG_TO_RAD;
}
-int msAddLabelGroup(mapObj *map, int layerindex, int classindex, shapeObj *shape, pointObj *point, double featuresize)
+int msAddLabelGroup(mapObj *map, imageObj *image, int layerindex, int classindex, shapeObj *shape, pointObj *point, double featuresize)
{
- int i, priority, numactivelabels=0;
+ int l,s, priority;
labelCacheSlotObj *cacheslot;
labelCacheMemberObj *cachePtr=NULL;
layerObj *layerPtr=NULL;
classObj *classPtr=NULL;
+ int numtextsymbols = 0;
+ textSymbolObj **textsymbols, *ts;
layerPtr = (GET_LAYER(map, layerindex)); /* set up a few pointers for clarity */
classPtr = GET_LAYER(map, layerindex)->class[classindex];
if(classPtr->numlabels == 0) return MS_SUCCESS; /* not an error just nothing to do */
- for(i=0; i<classPtr->numlabels; i++) {
- if(classPtr->labels[i]->status == MS_ON) {
- numactivelabels++;
- }
- }
- if(numactivelabels == 0) return MS_SUCCESS;
-
- /* if the number of labels is 1 then call msAddLabel() accordingly */
- if(numactivelabels == 1) {
- for(i=0; i<classPtr->numlabels; i++) {
- if(classPtr->labels[i]->status == MS_ON)
- return msAddLabel(map, classPtr->labels[i], layerindex, classindex, shape, point, NULL, featuresize);
- }
- }
-
- if (layerPtr->type == MS_LAYER_ANNOTATION && (cachePtr->numlabels > 1 || classPtr->leader.maxdistance)) {
- msSetError(MS_MISCERR, "Multiple Labels and/or LEADERs are not supported with annotation layers", "msAddLabelGroup()");
- return MS_FAILURE;
- }
-
+
/* check that the label intersects the layer mask */
if(layerPtr->mask) {
int maskLayerIdx = msGetLayerIndex(map,layerPtr->mask);
@@ -348,39 +298,67 @@ int msAddLabelGroup(mapObj *map, int layerindex, int classindex, shapeObj *shape
rasterBufferObj rb;
int x,y;
memset(&rb,0,sizeof(rasterBufferObj));
- MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,&rb);
+ if(UNLIKELY(MS_FAILURE == MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,&rb))) {
+ return MS_FAILURE;
+ }
x = MS_NINT(point->x);
y = MS_NINT(point->y);
/* Using label repeatdistance, we might have a point with x/y below 0. See #4764 */
- if (x >= 0 && x < rb.width && y >= 0 && y < rb.height) {
-#ifdef USE_GD
- if(rb.type == MS_BUFFER_BYTE_RGBA) {
- alphapixptr = rb.data.rgba.a+rb.data.rgba.row_step*y + rb.data.rgba.pixel_step*x;
- if(!*alphapixptr) {
- /* label point does not intersect mask */
- return MS_SUCCESS;
- }
- } else {
- if(!gdImageGetPixel(rb.data.gd_img,x,y))
- return MS_SUCCESS;
- }
-#else
+ if (x >= 0 && x < rb.width && y >= 0 && y < rb.height) {
assert(rb.type == MS_BUFFER_BYTE_RGBA);
alphapixptr = rb.data.rgba.a+rb.data.rgba.row_step*y + rb.data.rgba.pixel_step*x;
if(!*alphapixptr) {
/* label point does not intersect mask */
return MS_SUCCESS;
}
-#endif
}
} else {
msSetError(MS_MISCERR, "Layer (%s) references references a mask layer, but the selected renderer does not support them", "msAddLabelGroup()", layerPtr->name);
return (MS_FAILURE);
}
}
-
-
-
+
+ textsymbols = msSmallMalloc(classPtr->numlabels * sizeof(textSymbolObj*));
+
+ for(l=0; l<classPtr->numlabels; l++) {
+ labelObj *lbl = classPtr->labels[l];
+ char *annotext;
+ if(msGetLabelStatus(map,layerPtr,shape,lbl) == MS_OFF) {
+ continue;
+ }
+ annotext = msShapeGetLabelAnnotation(layerPtr,shape,lbl);
+ if(!annotext) {
+ for(s=0;s<lbl->numstyles;l++) {
+ if(lbl->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
+ break; /* we have a "symbol only label, so we shouldn't skip this label */
+ }
+ if(s == lbl->numstyles) {
+ continue; /* no anno text, and no label symbols */
+ }
+ }
+ ts = msSmallMalloc(sizeof(textSymbolObj));
+ initTextSymbol(ts);
+ msPopulateTextSymbolForLabelAndString(ts,lbl,annotext,layerPtr->scalefactor,image->resolutionfactor, 1);
+
+ if(annotext && *annotext && lbl->autominfeaturesize && featuresize > 0) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts)))
+ return MS_FAILURE;
+ if(featuresize < (ts->textpath->bounds.bbox.maxx - ts->textpath->bounds.bbox.minx)) {
+ /* feature is too big to be drawn, skip it */
+ freeTextSymbol(ts);
+ free(ts);
+ continue;
+ }
+ }
+ textsymbols[numtextsymbols] = ts;
+ numtextsymbols++;
+ }
+
+ if(numtextsymbols == 0) {
+ free(textsymbols);
+ return MS_SUCCESS;
+ }
+
/* Validate label priority value and get ref on label cache for it */
priority = classPtr->labels[0]->priority; /* take priority from the first label */
if (priority < 1)
@@ -399,71 +377,24 @@ int msAddLabelGroup(mapObj *map, int layerindex, int classindex, shapeObj *shape
cachePtr = &(cacheslot->labels[cacheslot->numlabels]);
cachePtr->layerindex = layerindex; /* so we can get back to this *raw* data if necessary */
+
cachePtr->classindex = classindex;
- if(shape) {
- cachePtr->shapetype = shape->type;
- } else {
- cachePtr->shapetype = MS_SHAPE_POINT;
- }
cachePtr->point = *point; /* the actual label point */
- cachePtr->labelpath = NULL;
cachePtr->leaderline = NULL;
cachePtr->leaderbbox = NULL;
- // cachePtr->text = msStrdup(string); /* the actual text */
-
- /* TODO: perhaps we can get rid of this next section and just store a marker size? Why do we cache the styles for a point layer? */
-
- /* copy the styles (only if there is an accompanying marker)
- * We cannot simply keep refs because the rendering code might alters some members of the style objects
- */
- cachePtr->styles = NULL;
- cachePtr->numstyles = 0;
- if(layerPtr->type == MS_LAYER_ANNOTATION && classPtr->numstyles > 0) {
- cachePtr->numstyles = classPtr->numstyles;
- cachePtr->styles = (styleObj *) msSmallMalloc(sizeof(styleObj)*classPtr->numstyles);
- if (classPtr->numstyles > 0) {
- for(i=0; i<classPtr->numstyles; i++) {
- initStyle(&(cachePtr->styles[i]));
- msCopyStyle(&(cachePtr->styles[i]), classPtr->styles[i]);
- }
- }
- }
-
- /*
- ** copy the labels (we are guaranteed to have more than one):
- ** we cannot simply keep refs because the rendering code alters some members of the style objects
- */
-
- cachePtr->numlabels = 0;
- cachePtr->labels = (labelObj *) msSmallMalloc(sizeof(labelObj)*numactivelabels);
- for(i=0; i<classPtr->numlabels; i++) {
- if(classPtr->labels[i]->status == MS_OFF) continue;
- initLabel(&(cachePtr->labels[cachePtr->numlabels]));
- msCopyLabel(&(cachePtr->labels[cachePtr->numlabels]), classPtr->labels[i]);
- cachePtr->numlabels++;
- }
- assert(cachePtr->numlabels == numactivelabels);
-
cachePtr->markerid = -1;
- cachePtr->featuresize = featuresize;
-
- //cachePtr->poly = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
- //msInitShape(cachePtr->poly);
- cachePtr->poly = NULL;
-
cachePtr->status = MS_FALSE;
if(layerPtr->type == MS_LAYER_POINT && classPtr->numstyles > 0) {
/* cache the marker placement, it's already on the map */
/* TO DO: at the moment only checks the bottom style, perhaps should check all of them */
/* #2347: after RFC-24 classPtr->styles could be NULL so we check it */
- rectObj rect;
double w, h;
- if(msGetMarkerSize(&map->symbolset, classPtr->styles[0], &w, &h, layerPtr->scalefactor) != MS_SUCCESS)
+ if(msGetMarkerSize(map, classPtr->styles[0], &w, &h, layerPtr->scalefactor) != MS_SUCCESS)
return(MS_FAILURE);
if(cacheslot->nummarkers == cacheslot->markercachesize) { /* just add it to the end */
@@ -472,43 +403,47 @@ int msAddLabelGroup(mapObj *map, int layerindex, int classindex, shapeObj *shape
cacheslot->markercachesize+=MS_LABELCACHEINCREMENT;
}
- i = cacheslot->nummarkers;
-
- cacheslot->markers[i].poly = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
- msInitShape(cacheslot->markers[i].poly);
-
- rect.minx = (point->x - .5 * w);
- rect.miny = (point->y - .5 * h);
- rect.maxx = rect.minx + (w-1);
- rect.maxy = rect.miny + (h-1);
- msRectToPolygon(rect, cacheslot->markers[i].poly);
- cacheslot->markers[i].id = cacheslot->numlabels;
-
- cachePtr->markerid = i;
+ cacheslot->markers[cacheslot->nummarkers].bounds.minx = (point->x - .5 * w);
+ cacheslot->markers[cacheslot->nummarkers].bounds.miny = (point->y - .5 * h);
+ cacheslot->markers[cacheslot->nummarkers].bounds.maxx = cacheslot->markers[cacheslot->nummarkers].bounds.minx + (w-1);
+ cacheslot->markers[cacheslot->nummarkers].bounds.maxy = cacheslot->markers[cacheslot->nummarkers].bounds.miny + (h-1);
+ cacheslot->markers[cacheslot->nummarkers].id = cacheslot->numlabels;
+ cachePtr->markerid = cacheslot->nummarkers;
cacheslot->nummarkers++;
}
+ cachePtr->textsymbols = textsymbols;
+ cachePtr->numtextsymbols = numtextsymbols;
cacheslot->numlabels++;
- /* Maintain main labelCacheObj.numlabels only for backwards compatibility */
- map->labelcache.numlabels++;
-
return(MS_SUCCESS);
}
-int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, shapeObj *shape, pointObj *point, labelPathObj *labelpath, double featuresize)
+int msAddLabel(mapObj *map, imageObj *image, labelObj *label, int layerindex, int classindex,
+ shapeObj *shape, pointObj *point, double featuresize, textSymbolObj *ts)
{
int i;
labelCacheSlotObj *cacheslot;
-
labelCacheMemberObj *cachePtr=NULL;
- layerObj *layerPtr=NULL;
- classObj *classPtr=NULL;
-
- if(!label) return(MS_FAILURE); // RFC 77 TODO: set a proper message
- if(label->status == MS_OFF) return(MS_SUCCESS); /* not an error */
- if(!label->annotext) {
+ char *annotext = NULL;
+ layerObj *layerPtr;
+ classObj *classPtr;
+
+ layerPtr=GET_LAYER(map,layerindex);
+ assert(layerPtr);
+
+ assert(classindex < layerPtr->numclasses);
+ classPtr = layerPtr->class[classindex];
+
+ assert(label);
+
+ if(ts)
+ annotext = ts->annotext;
+ else if(shape)
+ annotext = msShapeGetLabelAnnotation(layerPtr,shape,label);
+
+ if(!annotext) {
/* check if we have a labelpnt style */
for(i=0; i<label->numstyles; i++) {
if(label->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT)
@@ -516,19 +451,16 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
}
if(i==label->numstyles) {
/* label has no text or marker symbols */
+ if(ts) {
+ freeTextSymbol(ts);
+ free(ts);
+ }
return MS_SUCCESS;
}
}
- layerPtr = (GET_LAYER(map, layerindex)); /* set up a few pointers for clarity */
- classPtr = GET_LAYER(map, layerindex)->class[classindex];
-
- if(classPtr->leader.maxdistance) {
- if (layerPtr->type == MS_LAYER_ANNOTATION) {
- msSetError(MS_MISCERR, "LEADERs are not supported on annotation layers", "msAddLabel()");
- return MS_FAILURE;
- }
- if(labelpath) {
+ if(classPtr->leader) {
+ if(ts && ts->textpath && ts->textpath->absolute) {
msSetError(MS_MISCERR, "LEADERs are not supported on ANGLE FOLLOW labels", "msAddLabel()");
return MS_FAILURE;
}
@@ -542,63 +474,37 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
if (maskLayer->maskimage && MS_IMAGE_RENDERER(maskLayer->maskimage)->supports_pixel_buffer) {
rasterBufferObj rb;
memset(&rb, 0, sizeof (rasterBufferObj));
- MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage, &rb);
+ if(UNLIKELY(MS_FAILURE == MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage, &rb))) {
+ return MS_FAILURE;
+ }
+ assert(rb.type == MS_BUFFER_BYTE_RGBA);
if (point) {
int x = MS_NINT(point->x);
int y = MS_NINT(point->y);
/* Using label repeatdistance, we might have a point with x/y below 0. See #4764 */
if (x >= 0 && x < rb.width && y >= 0 && y < rb.height) {
-#ifdef USE_GD
- if(rb.type == MS_BUFFER_BYTE_RGBA) {
- alphapixptr = rb.data.rgba.a+rb.data.rgba.row_step*y + rb.data.rgba.pixel_step*x;
- if(!*alphapixptr) {
- /* label point does not intersect mask */
- return MS_SUCCESS;
- }
- } else {
- if(!gdImageGetPixel(rb.data.gd_img,x,y)) {
- return MS_SUCCESS;
- }
- }
-#else
- assert(rb.type == MS_BUFFER_BYTE_RGBA);
alphapixptr = rb.data.rgba.a+rb.data.rgba.row_step*y + rb.data.rgba.pixel_step*x;
if(!*alphapixptr) {
/* label point does not intersect mask */
+ if(ts) {
+ freeTextSymbol(ts);
+ free(ts);
+ }
return MS_SUCCESS;
}
-#endif
}
- } else if (labelpath) {
+ } else if (ts && ts->textpath) {
int i = 0;
- for (i = 0; i < labelpath->path.numpoints; i++) {
- int x = MS_NINT(labelpath->path.point[i].x);
- int y = MS_NINT(labelpath->path.point[i].y);
- /* Using label repeatdistance, we might have a point with x/y below 0. See #4764 */
- if (x >= 0 && x < rb.width && y >= 0 && y < rb.height) {
-#ifdef USE_GD
- if (rb.type == MS_BUFFER_BYTE_RGBA) {
- alphapixptr = rb.data.rgba.a + rb.data.rgba.row_step * y + rb.data.rgba.pixel_step*x;
- if (!*alphapixptr) {
- /* label point does not intersect mask */
- msFreeLabelPathObj(labelpath);
- return MS_SUCCESS;
- }
- } else {
- if (!gdImageGetPixel(rb.data.gd_img, x, y)) {
- msFreeLabelPathObj(labelpath);
- return MS_SUCCESS;
- }
- }
-#else
- assert(rb.type == MS_BUFFER_BYTE_RGBA);
+ for (i = 0; i < ts->textpath->numglyphs; i++) {
+ int x = MS_NINT(ts->textpath->glyphs[i].pnt.x);
+ int y = MS_NINT(ts->textpath->glyphs[i].pnt.y);
+ if (x >= 0 && x < rb.width && y >= 0 && y < rb.height) {
alphapixptr = rb.data.rgba.a + rb.data.rgba.row_step * y + rb.data.rgba.pixel_step*x;
if (!*alphapixptr) {
- /* label point does not intersect mask */
- msFreeLabelPathObj(labelpath);
+ freeTextSymbol(ts);
+ free(ts);
return MS_SUCCESS;
}
-#endif
}
}
}
@@ -608,6 +514,25 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
}
}
+ if(!ts) {
+ ts = msSmallMalloc(sizeof(textSymbolObj));
+ initTextSymbol(ts);
+ msPopulateTextSymbolForLabelAndString(ts,label,annotext,layerPtr->scalefactor,image->resolutionfactor, 1);
+ }
+
+ if(annotext && label->autominfeaturesize && featuresize > 0) {
+ if(!ts->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts)))
+ return MS_FAILURE;
+ }
+ if(featuresize > (ts->textpath->bounds.bbox.maxx - ts->textpath->bounds.bbox.minx)) {
+ /* feature is too big to be drawn, skip it */
+ freeTextSymbol(ts);
+ free(ts);
+ return MS_SUCCESS;
+ }
+ }
+
/* Validate label priority value and get ref on label cache for it */
@@ -628,61 +553,35 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
cachePtr->layerindex = layerindex; /* so we can get back to this *raw* data if necessary */
cachePtr->classindex = classindex;
+#ifdef include_deprecated
if(shape) {
cachePtr->shapetype = shape->type;
} else {
cachePtr->shapetype = MS_SHAPE_POINT;
}
+#endif
+
cachePtr->leaderline = NULL;
cachePtr->leaderbbox = NULL;
/* Store the label point or the label path (Bug #1620) */
if ( point ) {
cachePtr->point = *point; /* the actual label point */
- cachePtr->labelpath = NULL;
} else {
- assert(labelpath);
- cachePtr->labelpath = labelpath;
+ assert(ts && ts->textpath && ts->textpath->absolute && ts->textpath->numglyphs>0);
/* Use the middle point of the labelpath for mindistance calculations */
- cachePtr->point = labelpath->path.point[labelpath->path.numpoints / 2];
- }
-
- /* TODO: perhaps we can get rid of this next section and just store a marker size? Why do we cache the styles for a point layer? */
-
- /* copy the styles (only if there is an accompanying marker)
- * We cannot simply keeep refs because the rendering code alters some members of the style objects
- */
- cachePtr->styles = NULL;
- cachePtr->numstyles = 0;
- if(layerPtr->type == MS_LAYER_ANNOTATION && classPtr->numstyles > 0) {
- cachePtr->numstyles = classPtr->numstyles;
- cachePtr->styles = (styleObj *) msSmallMalloc(sizeof(styleObj)*classPtr->numstyles);
- if (classPtr->numstyles > 0) {
- for(i=0; i<classPtr->numstyles; i++) {
- initStyle(&(cachePtr->styles[i]));
- msCopyStyle(&(cachePtr->styles[i]), classPtr->styles[i]);
- }
- }
+ cachePtr->point = ts->textpath->glyphs[ts->textpath->numglyphs/2].pnt;
}
/* copy the label */
- cachePtr->numlabels = 1;
- cachePtr->labels = (labelObj *) msSmallMalloc(sizeof(labelObj));
- initLabel(cachePtr->labels);
- msCopyLabel(cachePtr->labels, label);
-
+ cachePtr->numtextsymbols = 1;
+ cachePtr->textsymbols = (textSymbolObj **) msSmallMalloc(sizeof(textSymbolObj*));
+ cachePtr->textsymbols[0] = ts;
cachePtr->markerid = -1;
- cachePtr->featuresize = featuresize;
-
- //cachePtr->poly = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
- //msInitShape(cachePtr->poly);
- cachePtr->poly = NULL;
-
cachePtr->status = MS_FALSE;
if(layerPtr->type == MS_LAYER_POINT && classPtr->numstyles > 0) { /* cache the marker placement, it's already on the map */
- rectObj rect;
double w, h;
if(cacheslot->nummarkers == cacheslot->markercachesize) { /* just add it to the end */
@@ -693,19 +592,15 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
i = cacheslot->nummarkers;
- cacheslot->markers[i].poly = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
- msInitShape(cacheslot->markers[i].poly);
-
/* TO DO: at the moment only checks the bottom style, perhaps should check all of them */
/* #2347: after RFC-24 classPtr->styles could be NULL so we check it */
if(classPtr->styles != NULL) {
- if(msGetMarkerSize(&map->symbolset, classPtr->styles[0], &w, &h, layerPtr->scalefactor) != MS_SUCCESS)
+ if(msGetMarkerSize(map, classPtr->styles[0], &w, &h, layerPtr->scalefactor) != MS_SUCCESS)
return(MS_FAILURE);
- rect.minx = point->x - .5 * w;
- rect.miny = point->y - .5 * h;
- rect.maxx = rect.minx + (w-1);
- rect.maxy = rect.miny + (h-1);
- msRectToPolygon(rect, cacheslot->markers[i].poly);
+ cacheslot->markers[cacheslot->nummarkers].bounds.minx = (point->x - .5 * w);
+ cacheslot->markers[cacheslot->nummarkers].bounds.miny = (point->y - .5 * h);
+ cacheslot->markers[cacheslot->nummarkers].bounds.maxx = cacheslot->markers[cacheslot->nummarkers].bounds.minx + (w-1);
+ cacheslot->markers[cacheslot->nummarkers].bounds.maxy = cacheslot->markers[cacheslot->nummarkers].bounds.miny + (h-1);
cacheslot->markers[i].id = cacheslot->numlabels;
cachePtr->markerid = i;
@@ -716,9 +611,6 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
cacheslot->numlabels++;
- /* Maintain main labelCacheObj.numlabels only for backwards compatibility */
- map->labelcache.numlabels++;
-
return(MS_SUCCESS);
}
@@ -727,69 +619,151 @@ int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, sha
** image for no labels (effectively making image larger. The gutter can be
** negative in cases where a label has a buffer around it.
*/
-static int labelInImage(int width, int height, shapeObj *lpoly, int gutter)
+static int labelInImage(int width, int height, lineObj *lpoly, rectObj *bounds, int gutter)
{
- int i,j;
+ int j;
/* do a bbox test first */
- if(lpoly->bounds.minx >= gutter &&
- lpoly->bounds.miny >= gutter &&
- lpoly->bounds.maxx < width-gutter &&
- lpoly->bounds.maxy < height-gutter) {
+ if(bounds->minx >= gutter &&
+ bounds->miny >= gutter &&
+ bounds->maxx < width-gutter &&
+ bounds->maxy < height-gutter) {
return MS_TRUE;
}
- for(i=0; i<lpoly->numlines; i++) {
- for(j=1; j<lpoly->line[i].numpoints; j++) {
- if(lpoly->line[i].point[j].x < gutter) return(MS_FALSE);
- if(lpoly->line[i].point[j].x >= width-gutter) return(MS_FALSE);
- if(lpoly->line[i].point[j].y < gutter) return(MS_FALSE);
- if(lpoly->line[i].point[j].y >= height-gutter) return(MS_FALSE);
+ if(lpoly) {
+ for(j=1; j<lpoly->numpoints; j++) {
+ if(lpoly->point[j].x < gutter) return(MS_FALSE);
+ if(lpoly->point[j].x >= width-gutter) return(MS_FALSE);
+ if(lpoly->point[j].y < gutter) return(MS_FALSE);
+ if(lpoly->point[j].y >= height-gutter) return(MS_FALSE);
}
+ } else {
+ /* if no poly, then return false as the boundong box intersected */
+ return MS_FALSE;
}
return(MS_TRUE);
}
+void insertRenderedLabelMember(mapObj *map, labelCacheMemberObj *cachePtr) {
+ if(map->labelcache.num_rendered_members == map->labelcache.num_allocated_rendered_members) {
+ if(map->labelcache.num_rendered_members == 0) {
+ map->labelcache.num_allocated_rendered_members = 50;
+ } else {
+ map->labelcache.num_allocated_rendered_members *= 2;
+ }
+ map->labelcache.rendered_text_symbols = msSmallRealloc(map->labelcache.rendered_text_symbols,
+ map->labelcache.num_allocated_rendered_members * sizeof(labelCacheMemberObj*));
+ }
+ map->labelcache.rendered_text_symbols[map->labelcache.num_rendered_members++] = cachePtr;
+}
+
+static inline int testSegmentLabelBBoxIntersection(const rectObj *leaderbbox, const pointObj *lp1,
+ const pointObj *lp2, const label_bounds *test) {
+ if(msRectOverlap(leaderbbox, &test->bbox)) {
+ if(test->poly) {
+ int pp;
+ for(pp=1; pp<test->poly->numpoints; pp++) {
+ if(msIntersectSegments(
+ &(test->poly->point[pp-1]),
+ &(test->poly->point[pp]),
+ lp1,lp2) == MS_TRUE) {
+ return(MS_FALSE);
+ }
+ }
+ } else {
+ pointObj tp1,tp2;
+ tp1.x = test->bbox.minx;
+ tp1.y = test->bbox.miny;
+ tp2.x = test->bbox.minx;
+ tp2.y = test->bbox.maxy;
+ if(msIntersectSegments(lp1,lp2,&tp1,&tp2))
+ return MS_FALSE;
+ tp2.x = test->bbox.maxx;
+ tp2.y = test->bbox.miny;
+ if(msIntersectSegments(lp1,lp2,&tp1,&tp2))
+ return MS_FALSE;
+ tp1.x = test->bbox.maxx;
+ tp1.y = test->bbox.maxy;
+ tp2.x = test->bbox.minx;
+ tp2.y = test->bbox.maxy;
+ if(msIntersectSegments(lp1,lp2,&tp1,&tp2))
+ return MS_FALSE;
+ tp2.x = test->bbox.maxx;
+ tp2.y = test->bbox.miny;
+ if(msIntersectSegments(lp1,lp2,&tp1,&tp2))
+ return MS_FALSE;
+ }
+ }
+ return MS_TRUE;
+}
+
+int msTestLabelCacheLeaderCollision(mapObj *map, pointObj *lp1, pointObj *lp2) {
+ int p;
+ rectObj leaderbbox;
+ leaderbbox.minx = MS_MIN(lp1->x,lp2->x);
+ leaderbbox.maxx = MS_MAX(lp1->x,lp2->x);
+ leaderbbox.miny = MS_MIN(lp1->y,lp2->y);
+ leaderbbox.maxy = MS_MAX(lp1->y,lp2->y);
+ for(p=0; p<map->labelcache.num_rendered_members; p++) {
+ labelCacheMemberObj *curCachePtr= map->labelcache.rendered_text_symbols[p];
+ if(msRectOverlap(&leaderbbox, &(curCachePtr->bbox))) {
+ /* leaderbbox interesects with the curCachePtr's global bbox */
+ int t;
+ for(t=0; t<curCachePtr->numtextsymbols; t++) {
+ int s;
+ textSymbolObj *ts = curCachePtr->textsymbols[t];
+ /* check for intersect with textpath */
+ if(ts->textpath && testSegmentLabelBBoxIntersection(&leaderbbox, lp1, lp2, &ts->textpath->bounds) == MS_FALSE) {
+ return MS_FALSE;
+ }
+ /* check for intersect with label's labelpnt styles */
+ if(ts->style_bounds) {
+ for(s=0; s<ts->label->numstyles; s++) {
+ if(ts->label->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ if(testSegmentLabelBBoxIntersection(&leaderbbox, lp1,lp2, ts->style_bounds[s]) == MS_FALSE) {
+ return MS_FALSE;
+ }
+ }
+ }
+ }
+ }
+ if(curCachePtr->leaderbbox) {
+ if(msIntersectSegments(lp1,lp2,&(curCachePtr->leaderline->point[0]), &(curCachePtr->leaderline->point[1])) == MS_TRUE) {
+ return MS_FALSE;
+ }
+ }
+ }
+ }
+ return MS_TRUE;
+}
+
/* msTestLabelCacheCollisions()
**
-** Compares current label against labels already drawn and markers from cache and discards it
-** by setting cachePtr->status=MS_FALSE if it is a duplicate, collides with another label,
-** or collides with a marker.
+** Compares label bounds (in *bounds) against labels already drawn and markers from cache and
+** returns MS_FALSE if it collides with another label, or collides with a marker.
**
** This function is used by the various msDrawLabelCacheXX() implementations.
-int msTestLabelCacheCollisions(labelCacheObj *labelcache, labelObj *labelPtr,
- int mapwidth, int mapheight, int buffer,
- labelCacheMemberObj *cachePtr, int current_priority,
- int current_label, int mindistance, double label_size);
+int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, label_bounds *bounds,
+ int current_priority, int current_label);
*/
-
-int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, shapeObj *poly,
- int mindistance, int current_priority, int current_label)
+int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, label_bounds *lb,
+ int current_priority, int current_label)
{
labelCacheObj *labelcache = &(map->labelcache);
- int i, p, ll, pp;
- double label_width = 0;
- labelCacheMemberObj *curCachePtr=NULL;
+ int i, p, ll;
/*
* Check against image bounds first
*/
- if(!cachePtr->labels[0].partials) {
- if(labelInImage(map->width, map->height, poly, labelcache->gutter) == MS_FALSE) {
+ if(!cachePtr->textsymbols[0]->label->partials) {
+ if(labelInImage(map->width, map->height, lb->poly, &lb->bbox, labelcache->gutter) == MS_FALSE) {
return MS_FALSE;
}
}
- /* compute start index of first label to test: only test against rendered labels */
- if(current_label>=0) {
- i = current_label+1;
- } else {
- i = 0;
- current_label = -current_label;
- }
-
/* Compare against all rendered markers from this priority level and higher.
** Labels can overlap their own marker and markers from lower priority levels
*/
@@ -799,119 +773,58 @@ int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, shape
for ( ll = 0; ll < markerslot->nummarkers; ll++ ) {
if ( !(p == current_priority && current_label == markerslot->markers[ll].id ) ) { /* labels can overlap their own marker */
- if ( intersectLabelPolygons(markerslot->markers[ll].poly, poly ) == MS_TRUE ) {
+ if ( intersectLabelPolygons(NULL, &markerslot->markers[ll].bounds, lb->poly, &lb->bbox ) == MS_TRUE ) {
return MS_FALSE;
}
}
}
}
- if(mindistance > 0)
- label_width = poly->bounds.maxx - poly->bounds.minx;
-
- for(p=current_priority; p<MS_MAX_LABEL_PRIORITY; p++) {
- labelCacheSlotObj *cacheslot;
- cacheslot = &(labelcache->slots[p]);
-
- for( ; i < cacheslot->numlabels; i++) {
- curCachePtr = &(cacheslot->labels[i]);
-
- if(curCachePtr->status == MS_TRUE) { /* compare bounding polygons and check for duplicates */
-
- /* skip testing against ourself */
- assert(p!=current_priority || i != current_label);
-
- /*
- ** Note 1: We add the label_size to the mindistance value when comparing because we do want the mindistance
- ** value between the labels and not only from point to point.
- **
- ** Note 2: We only check the first label (could be multiples (RFC 77)) since that is *by far* the most common
- ** use case. Could change in the future but it's not worth the overhead at this point.
- */
- if(mindistance >0 &&
- (cachePtr->layerindex == curCachePtr->layerindex) &&
- (cachePtr->classindex == curCachePtr->classindex) &&
- (cachePtr->labels[0].annotext && curCachePtr->labels[0].annotext &&
- strcmp(cachePtr->labels[0].annotext, curCachePtr->labels[0].annotext) == 0) &&
- (msDistancePointToPoint(&(cachePtr->point), &(curCachePtr->point)) <= (mindistance + label_width))) { /* label is a duplicate */
+ for(p=0; p<labelcache->num_rendered_members; p++) {
+ labelCacheMemberObj *curCachePtr= labelcache->rendered_text_symbols[p];
+ if(msRectOverlap(&curCachePtr->bbox,&lb->bbox)) {
+ for(i=0; i<curCachePtr->numtextsymbols; i++) {
+ int j;
+ textSymbolObj *ts = curCachePtr->textsymbols[i];
+ if(ts->textpath && intersectLabelPolygons(ts->textpath->bounds.poly, &ts->textpath->bounds.bbox, lb->poly, &lb->bbox) == MS_TRUE ) {
return MS_FALSE;
}
-
- if(intersectLabelPolygons(curCachePtr->poly, poly) == MS_TRUE) { /* polys intersect */
- return MS_FALSE;
- }
- if(curCachePtr->leaderline) {
- /* our poly against rendered leader lines */
- /* first do a bbox check */
- if(msRectOverlap(curCachePtr->leaderbbox, &(poly->bounds))) {
- /* look for intersecting line segments */
- for(ll=0; ll<poly->numlines; ll++)
- for(pp=1; pp<poly->line[ll].numpoints; pp++)
- if(msIntersectSegments(
- &(poly->line[ll].point[pp-1]),
- &(poly->line[ll].point[pp]),
- &(curCachePtr->leaderline->point[0]),
- &(curCachePtr->leaderline->point[1])) == MS_TRUE) {
- return(MS_FALSE);
- }
- }
-
- }
- if(cachePtr->leaderline) {
- /* does our leader intersect current label */
- /* first do a bbox check */
- if(msRectOverlap(cachePtr->leaderbbox, &(curCachePtr->poly->bounds))) {
- /* look for intersecting line segments */
- for(ll=0; ll<curCachePtr->poly->numlines; ll++)
- for(pp=1; pp<curCachePtr->poly->line[ll].numpoints; pp++)
- if(msIntersectSegments(
- &(curCachePtr->poly->line[ll].point[pp-1]),
- &(curCachePtr->poly->line[ll].point[pp]),
- &(cachePtr->leaderline->point[0]),
- &(cachePtr->leaderline->point[1])) == MS_TRUE) {
- return(MS_FALSE);
- }
-
- }
- if(curCachePtr->leaderline) {
- /* TODO: check intersection of leader lines, not only bbox test ? */
- if(msRectOverlap(curCachePtr->leaderbbox, cachePtr->leaderbbox)) {
- return MS_FALSE;
+ if(ts->style_bounds) {
+ for(j=0;j<ts->label->numstyles;j++) {
+ if(ts->style_bounds[j] && ts->label->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ if(intersectLabelPolygons(ts->style_bounds[j]->poly, &ts->style_bounds[j]->bbox,
+ lb->poly, &lb->bbox)) {
+ return MS_FALSE;
+ }
}
-
}
}
}
- } /* i */
-
- i = 0; /* Start over with 1st label of next slot */
- } /* p */
- return MS_TRUE;
-}
-
-/* msGetLabelCacheMember()
-**
-** Returns label cache members by index, making all members of the cache
-** appear as if they were stored in a single array indexed from 0 to numlabels.
-**
-** Returns NULL if requested index is out of range.
-*/
-labelCacheMemberObj *msGetLabelCacheMember(labelCacheObj *labelcache, int i)
-{
- if(i >= 0 && i < labelcache->numlabels) {
- int p;
- for(p=0; p<MS_MAX_LABEL_PRIORITY; p++) {
- if (i < labelcache->slots[p].numlabels )
- return &(labelcache->slots[p].labels[i]); /* Found it */
- else
- i -= labelcache->slots[p].numlabels; /* Check next slots */
+ }
+ if(curCachePtr->leaderline) {
+ if(testSegmentLabelBBoxIntersection(curCachePtr->leaderbbox, &curCachePtr->leaderline->point[0],
+ &curCachePtr->leaderline->point[1], lb) == MS_FALSE) {
+ return MS_FALSE;
+ }
}
}
-
- /* Out of range / not found */
- return NULL;
+ return MS_TRUE;
}
+/* utility function to get the rect of a string outside of a rendering loop, i.e.
+ without going through textpath layouts */
+int msGetStringSize(mapObj *map, labelObj *label, int size, char *string, rectObj *r) {
+ textSymbolObj ts;
+ double lsize = label->size;
+ initTextSymbol(&ts);
+ label->size = size;
+ msPopulateTextSymbolForLabelAndString(&ts,label,msStrdup(string),1,1,0);
+ if(UNLIKELY(MS_FAILURE == msGetTextSymbolSize(map,&ts,r)))
+ return MS_FAILURE;
+ label->size = lsize;
+ freeTextSymbol(&ts);
+ return MS_SUCCESS;
+}
int msInitFontSet(fontSetObj *fontset)
{
@@ -1017,181 +930,32 @@ int msLoadFontSet(fontSetObj *fontset, mapObj *map)
return(0);
}
-int msGetTruetypeTextBBox(rendererVTableObj *renderer, char* fontstring, fontSetObj *fontset,
- double size, char *string, rectObj *rect, double **advances, int bAdjustbaseline)
-{
- outputFormatObj *format = NULL;
- int ret = MS_FAILURE;
- char *lookedUpFonts[MS_MAX_LABEL_FONTS];
- int numfonts;
- if(!renderer) {
- outputFormatObj *format = msCreateDefaultOutputFormat(NULL,"AGG/PNG","tmp");
- if(!format) {
- goto tt_cleanup;
- }
- msInitializeRendererVTable(format);
- renderer = format->vtable;
- }
- if(MS_FAILURE == msFontsetLookupFonts(fontstring, &numfonts, fontset, lookedUpFonts))
- goto tt_cleanup;
- ret = renderer->getTruetypeTextBBox(renderer,lookedUpFonts,numfonts,size,string,rect,advances,bAdjustbaseline);
-tt_cleanup:
- if(format) {
- msFreeOutputFormat(format);
- }
- return ret;
-}
-int msGetRasterTextBBox(rendererVTableObj *renderer, int size, char *string, rectObj *rect)
-{
- if(renderer && renderer->supports_bitmap_fonts) {
- int num_lines=1, cur_line_length=0, max_line_length=0;
- char *stringPtr = string;
- fontMetrics *fontPtr;
- if((fontPtr=renderer->bitmapFontMetrics[size]) == NULL) {
- msSetError(MS_MISCERR, "selected renderer does not support bitmap font size %d", "msGetRasterTextBBox()",size);
+int msGetTextSymbolSize(mapObj *map, textSymbolObj *ts, rectObj *r) {
+ if(!ts->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts)))
return MS_FAILURE;
- }
- while(*stringPtr) {
- if(*stringPtr=='\n') {
- max_line_length = MS_MAX(cur_line_length,max_line_length);
- num_lines++;
- cur_line_length=0;
- } else {
- if(*stringPtr!='\r')
- cur_line_length++;
- }
- stringPtr++;
- }
- max_line_length = MS_MAX(cur_line_length,max_line_length);
- rect->minx = 0;
- rect->miny = -fontPtr->charHeight;
- rect->maxx = fontPtr->charWidth * max_line_length;
- rect->maxy = fontPtr->charHeight * (num_lines-1);
- return MS_SUCCESS;
- } else if(!renderer) {
- int ret = MS_FAILURE;
- outputFormatObj *format = msCreateDefaultOutputFormat(NULL,"AGG/PNG","tmp");
- if(!format) {
- msSetError(MS_MISCERR, "failed to create default format", "msGetRasterTextBBox()");
- return MS_FAILURE;
- }
- msInitializeRendererVTable(format);
- renderer = format->vtable;
- ret = msGetRasterTextBBox(renderer,size,string,rect);
- msFreeOutputFormat(format);
- return ret;
- } else {
- msSetError(MS_MISCERR, "selected renderer does not support raster fonts", "msGetRasterTextBBox()");
- return MS_FAILURE;
- }
-}
-
-
-char *msFontsetLookupFont(fontSetObj *fontset, char *fontKey)
-{
- char *font;
- if(!fontKey) {
- msSetError(MS_TTFERR, "Requested font (NULL) not found.", "msFontsetLookupFont()");
- return NULL;
}
- font = msLookupHashTable(&(fontset->fonts), fontKey);
- if(!font) {
- msSetError(MS_TTFERR, "Requested font (%s) not found.", "msFontsetLookupFont()", fontKey);
- return NULL;
- }
- return font;
+ *r = ts->textpath->bounds.bbox;
+ return MS_SUCCESS;
}
-
-int msFontsetLookupFonts(char* fontstring, int *numfonts, fontSetObj *fontset, char **lookedUpFonts)
-{
- char *start,*ptr;
- *numfonts = 0;
- start = ptr = fontstring;
- while(*numfonts<MS_MAX_LABEL_FONTS) {
- if(*ptr==',') {
- if(start==ptr) { /*first char is a comma, or two successive commas*/
- start = ++ptr;
- continue;
- }
- *ptr = 0;
- lookedUpFonts[*numfonts] = msLookupHashTable(&(fontset->fonts), start);
- *ptr = ',';
- if (!lookedUpFonts[*numfonts]) {
- msSetError(MS_TTFERR, "Requested font (%s) not found.","msFontsetLookupFonts()", fontstring);
- return MS_FAILURE;
- }
- start = ++ptr;
- (*numfonts)++;
- } else if(*ptr==0) {
- if(start==ptr) { /* last char of string was a comma */
- return MS_SUCCESS;
- }
- lookedUpFonts[*numfonts] = msLookupHashTable(&(fontset->fonts), start);
- if (!lookedUpFonts[*numfonts]) {
- msSetError(MS_TTFERR, "Requested font (%s) not found.","msFontsetLookupFonts()", fontstring);
- return (MS_FAILURE);
- }
- (*numfonts)++;
- return MS_SUCCESS;
- } else {
- ptr++;
- }
- }
- msSetError(MS_TTFERR, "Requested font (%s) not has too many members (max is %d)",
- "msFontsetLookupFonts()", fontstring, MS_MAX_LABEL_FONTS);
- return MS_FAILURE;
-}
-
-
/*
** Note: All these routines assume a reference point at the LL corner of the text. GD's
** bitmapped fonts use UL and this is compensated for. Note the rect is relative to the
** LL corner of the text to be rendered, this is first line for TrueType fonts.
*/
-/* assumes an angle of 0 regardless of what's in the label object */
-int msGetLabelSize(mapObj *map, labelObj *label, char *string, double size, rectObj *rect, double **advances)
-{
- rendererVTableObj *renderer = NULL;
-
- if (map)
- renderer =MS_MAP_RENDERER(map);
-
- if(label->type == MS_TRUETYPE) {
- if(!label->font) {
- msSetError(MS_MISCERR, "label has no true type font", "msGetLabelSize()");
- return MS_FAILURE;
- }
- return msGetTruetypeTextBBox(renderer,label->font,&(map->fontset),size,string,rect,advances,1);
- } else if(label->type == MS_BITMAP) {
- if(renderer->supports_bitmap_fonts)
- return msGetRasterTextBBox(renderer,MS_NINT(label->size),string,rect);
- else {
- msSetError(MS_MISCERR, "renderer does not support bitmap fonts", "msGetLabelSize()");
- return MS_FAILURE;
- }
- } else {
- msSetError(MS_MISCERR, "unknown label type", "msGetLabelSize()");
- return MS_FAILURE;
- }
-}
-
#define MARKER_SLOP 2
-/*pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, lineObj *poly)
- * called by get_metrics and drawLabelCache
- * the poly lineObj MUST have at least 5 points allocated in poly->point
- * it should also probably have poly->numpoints set to 5 */
-pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, lineObj *poly)
+pointObj get_metrics(pointObj *p, int position, textPathObj *tp, int ox, int oy, double rotation, int buffer, label_bounds *bounds)
{
pointObj q;
double x1=0, y1=0, x2=0, y2=0;
double sin_a,cos_a;
double w, h, x, y;
- w = rect.maxx - rect.minx;
- h = rect.maxy - rect.miny;
+ w = tp->bounds.bbox.maxx - tp->bounds.bbox.minx;
+ h = tp->bounds.bbox.maxy - tp->bounds.bbox.miny;
switch(position) {
case MS_UL:
@@ -1208,7 +972,10 @@ pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int o
break;
case MS_CL:
x1 = -w - ox - MARKER_SLOP;
- y1 = (h/2.0);
+ if(oy > 0 && tp->numlines == 1)
+ y1 = oy;
+ else
+ y1 = (h/2.0);
break;
case MS_CC:
x1 = -(w/2.0) + ox;
@@ -1216,7 +983,10 @@ pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int o
break;
case MS_CR:
x1 = ox + MARKER_SLOP;
- y1 = (h/2.0);
+ if(oy > 0 && tp->numlines == 1)
+ y1 = oy;
+ else
+ y1 = (h/2.0);
break;
case MS_LL:
x1 = -w - ox;
@@ -1232,106 +1002,133 @@ pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int o
break;
}
- sin_a = sin(MS_DEG_TO_RAD*angle);
- cos_a = cos(MS_DEG_TO_RAD*angle);
-
- x = x1 - rect.minx;
- y = rect.maxy - y1;
- q.x = p->x + (x * cos_a - (y) * sin_a);
- q.y = p->y - (x * sin_a + (y) * cos_a);
-
- if(poly) {
- /*
- * here we should/could have a test asserting that the poly lineObj
- * has at least 5 points available.
- */
-
- x2 = x1 - buffer; /* ll */
- y2 = y1 + buffer;
- poly->point[0].x = p->x + (x2 * cos_a - (-y2) * sin_a);
- poly->point[0].y = p->y - (x2 * sin_a + (-y2) * cos_a);
-
- x2 = x1 - buffer; /* ul */
- y2 = y1 - h - buffer;
- poly->point[1].x = p->x + (x2 * cos_a - (-y2) * sin_a);
- poly->point[1].y = p->y - (x2 * sin_a + (-y2) * cos_a);
-
- x2 = x1 + w + buffer; /* ur */
- y2 = y1 - h - buffer;
- poly->point[2].x = p->x + (x2 * cos_a - (-y2) * sin_a);
- poly->point[2].y = p->y - (x2 * sin_a + (-y2) * cos_a);
-
- x2 = x1 + w + buffer; /* lr */
- y2 = y1 + buffer;
- poly->point[3].x = p->x + (x2 * cos_a - (-y2) * sin_a);
- poly->point[3].y = p->y - (x2 * sin_a + (-y2) * cos_a);
-
- poly->point[4].x = poly->point[0].x;
- poly->point[4].y = poly->point[0].y;
+ if(rotation) {
+ sin_a = sin(rotation);
+ cos_a = cos(rotation);
+
+ x = x1 - tp->bounds.bbox.minx;
+ y = tp->bounds.bbox.maxy - y1;
+ q.x = p->x + (x * cos_a - (y) * sin_a);
+ q.y = p->y - (x * sin_a + (y) * cos_a);
+
+ if(bounds) {
+ x2 = x1 - buffer; /* ll */
+ y2 = y1 + buffer;
+ bounds->poly->point[0].x = p->x + (x2 * cos_a - (-y2) * sin_a);
+ bounds->poly->point[0].y = p->y - (x2 * sin_a + (-y2) * cos_a);
+
+ x2 = x1 - buffer; /* ul */
+ y2 = y1 - h - buffer;
+ bounds->poly->point[1].x = p->x + (x2 * cos_a - (-y2) * sin_a);
+ bounds->poly->point[1].y = p->y - (x2 * sin_a + (-y2) * cos_a);
+
+ x2 = x1 + w + buffer; /* ur */
+ y2 = y1 - h - buffer;
+ bounds->poly->point[2].x = p->x + (x2 * cos_a - (-y2) * sin_a);
+ bounds->poly->point[2].y = p->y - (x2 * sin_a + (-y2) * cos_a);
+
+ x2 = x1 + w + buffer; /* lr */
+ y2 = y1 + buffer;
+ bounds->poly->point[3].x = p->x + (x2 * cos_a - (-y2) * sin_a);
+ bounds->poly->point[3].y = p->y - (x2 * sin_a + (-y2) * cos_a);
+
+ bounds->poly->point[4].x = bounds->poly->point[0].x;
+ bounds->poly->point[4].y = bounds->poly->point[0].y;
+ fastComputeBounds(bounds->poly,&bounds->bbox);
+ }
}
+ else {
+ q.x = p->x + x1 - tp->bounds.bbox.minx;
+ q.y = p->y + y1 ;
+
+ if(bounds) {
+ /* no rotation, we only need to return a bbox */
+ bounds->poly = NULL;
+
+ bounds->bbox.minx = q.x - buffer;
+ bounds->bbox.maxy = q.y + buffer + tp->bounds.bbox.maxy;
+ bounds->bbox.maxx = q.x + w + buffer;
+ bounds->bbox.miny = bounds->bbox.maxy - h - buffer*2;
+ }
+ }
return(q);
}
-
-/* static pointObj get_metrics(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, shapeObj *poly) */
-pointObj get_metrics(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, shapeObj *poly)
-{
- lineObj newline;
- pointObj newpoints[5];
- pointObj rp;
- newline.numpoints=5;
- newline.point=newpoints;
- rp = get_metrics_line(p, position, rect, ox,oy, angle, buffer, &newline);
- if(poly) {
- msAddLine(poly,&newline);
- msComputeBounds(poly);
+int intersectTextSymbol(textSymbolObj *ts, label_bounds *lb) {
+ if(ts->textpath && ts->textpath->absolute) {
+ if(intersectLabelPolygons(lb->poly,&lb->bbox,ts->textpath->bounds.poly,&ts->textpath->bounds.bbox))
+ return MS_TRUE;
}
- return rp;
+ if(ts->style_bounds) {
+ int s;
+ for(s=0; s<ts->label->numstyles; s++) {
+ if(ts->style_bounds[s] && ts->label->styles[s]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT &&
+ intersectLabelPolygons(lb->poly,&lb->bbox,ts->style_bounds[s]->poly, &ts->style_bounds[s]->bbox))
+ return MS_TRUE;
+ }
+ }
+ return MS_FALSE;
}
/*
** Variation on msIntersectPolygons. Label polygons aren't like shapefile polygons. They
** have no holes, and often do have overlapping parts (i.e. road symbols).
*/
-
-/* static int intersectLabelPolygons(shapeObj *p1, shapeObj *p2) { */
-int intersectLabelPolygons(shapeObj *p1, shapeObj *p2)
+int intersectLabelPolygons(lineObj *l1, rectObj *r1, lineObj *l2, rectObj *r2)
{
- int c1,v1,c2,v2;
+ int v1,v2;
pointObj *point;
+ lineObj *p1,*p2,sp1,sp2;
+ pointObj pnts1[5],pnts2[5];
+
/* STEP 0: check bounding boxes */
- if(!msRectOverlap(&p1->bounds, &p2->bounds)) { /* from alans at wunderground.com */
+ if(!msRectOverlap(r1,r2)) { /* from alans at wunderground.com */
return(MS_FALSE);
}
+ if(!l1 && !l2)
+ return MS_TRUE;
- /* STEP 1: look for intersecting line segments */
- for(c1=0; c1<p1->numlines; c1++)
- for(v1=1; v1<p1->line[c1].numpoints; v1++)
- for(c2=0; c2<p2->numlines; c2++)
- for(v2=1; v2<p2->line[c2].numpoints; v2++)
- if(msIntersectSegments(&(p1->line[c1].point[v1-1]), &(p1->line[c1].point[v1]), &(p2->line[c2].point[v2-1]), &(p2->line[c2].point[v2])) == MS_TRUE) {
- return(MS_TRUE);
- }
+ if(!l1) {
+ p1 = &sp1;
+ p1->numpoints = 5;
+ p1->point = pnts1;
+ pnts1[0].x = pnts1[1].x = pnts1[4].x = r1->minx;
+ pnts1[2].x = pnts1[3].x = r1->maxx;
+ pnts1[0].y = pnts1[3].y = pnts1[4].y = r1->miny;
+ pnts1[1].y = pnts1[2].y = r1->maxy;
+ } else {
+ p1 = l1;
+ }
+ if(!l2) {
+ p2 = &sp2;
+ p2->numpoints = 5;
+ p2->point = pnts2;
+ pnts2[0].x = pnts2[1].x = pnts2[4].x = r2->minx;
+ pnts2[2].x = pnts2[3].x = r2->maxx;
+ pnts2[0].y = pnts2[3].y = pnts2[4].y = r2->miny;
+ pnts2[1].y = pnts2[2].y = r2->maxy;
+ } else {
+ p2 = l2;
+ }
- /* STEP 2: polygon one completely contains two (only need to check one point from each part) */
- for(c2=0; c2<p2->numlines; c2++) {
- point = &(p2->line[c2].point[0]);
- for(c1=0; c1<p1->numlines; c1++) {
- if(msPointInPolygon(point, &p1->line[c1]) == MS_TRUE) /* ok, the point is in a polygon */
+ /* STEP 1: look for intersecting line segments */
+ for(v1=1; v1<p1->numpoints; v1++)
+ for(v2=1; v2<p2->numpoints; v2++)
+ if(msIntersectSegments(&(p1->point[v1-1]), &(p1->point[v1]), &(p2->point[v2-1]), &(p2->point[v2])) == MS_TRUE) {
return(MS_TRUE);
}
- }
+
+ /* STEP 2: polygon one completely contains two (only need to check one point from each part) */
+ point = &(p2->point[0]);
+ if(msPointInPolygon(point, p1) == MS_TRUE) /* ok, the point is in a polygon */
+ return(MS_TRUE);
/* STEP 3: polygon two completely contains one (only need to check one point from each part) */
- for(c1=0; c1<p1->numlines; c1++) {
- point = &(p1->line[c1].point[0]);
- for(c2=0; c2<p2->numlines; c2++) {
- if(msPointInPolygon(point, &p2->line[c2]) == MS_TRUE) /* ok, the point is in a polygon */
- return(MS_TRUE);
- }
- }
+ point = &(p1->point[0]);
+ if(msPointInPolygon(point, p2) == MS_TRUE) /* ok, the point is in a polygon */
+ return(MS_TRUE);
return(MS_FALSE);
}
diff --git a/maplayer.c b/maplayer.c
index 93c562f..931b0bf 100644
--- a/maplayer.c
+++ b/maplayer.c
@@ -37,7 +37,6 @@
#include <assert.h>
-
static int populateVirtualTable(layerVTableObj *vtable);
/*
@@ -70,40 +69,47 @@ void msLayerFreeItemInfo(layerObj *layer)
int msLayerRestoreFromScaletokens(layerObj *layer)
{
- if(!layer->scaletokens) {
+ if(!layer->scaletokens || !layer->orig_st) {
return MS_SUCCESS;
}
- if(layer->orig_data) {
+ if(layer->orig_st->data) {
msFree(layer->data);
- layer->data = layer->orig_data;
- layer->orig_data = NULL;
+ layer->data = layer->orig_st->data;
}
- if(layer->orig_tileindex) {
+ if(layer->orig_st->tileindex) {
msFree(layer->tileindex);
- layer->tileindex = layer->orig_tileindex;
- layer->orig_tileindex = NULL;
+ layer->tileindex = layer->orig_st->tileindex;
}
- if(layer->orig_tileitem) {
+ if(layer->orig_st->tileitem) {
msFree(layer->tileitem);
- layer->tileitem = layer->orig_tileitem;
- layer->orig_tileitem = NULL;
+ layer->tileitem = layer->orig_st->tileitem;
}
- if(layer->orig_filter) {
- msLoadExpressionString(&(layer->filter),layer->orig_filter);
- msFree(layer->orig_filter);
- layer->orig_filter = NULL;
+ if(layer->orig_st->filter) {
+ msLoadExpressionString(&(layer->filter),layer->orig_st->filter);
+ msFree(layer->orig_st->filter);
}
- if(layer->orig_filteritem) {
+ if(layer->orig_st->filteritem) {
msFree(layer->filteritem);
- layer->filteritem = layer->orig_filteritem;
- layer->orig_filteritem = NULL;
+ layer->filteritem = layer->orig_st->filteritem;
+ }
+ if(layer->orig_st->n_processing) {
+ int i;
+ for(i=0;i<layer->orig_st->n_processing;i++) {
+ msFree(layer->processing[layer->orig_st->processing_idx[i]]);
+ layer->processing[layer->orig_st->processing_idx[i]] = layer->orig_st->processing[i];
+ }
+ msFree(layer->orig_st->processing);
+ msFree(layer->orig_st->processing_idx);
}
+ msFree(layer->orig_st);
+ layer->orig_st = NULL;
return MS_SUCCESS;
}
+#define check_st_alloc(l) if(!l->orig_st) l->orig_st=msSmallCalloc(1,sizeof(originalScaleTokenStrings));
int msLayerApplyScaletokens(layerObj *layer, double scale)
{
- int i;
+ int i,p;
if(!layer->scaletokens) {
return MS_SUCCESS;
}
@@ -129,7 +135,8 @@ int msLayerApplyScaletokens(layerObj *layer, double scale)
msDebug("replacing scaletoken (%s) with (%s) in layer->data (%s) for scale=%f\n",
st->name,ste->value,layer->name,scale);
}
- layer->orig_data = layer->data;
+ check_st_alloc(layer);
+ layer->orig_st->data = layer->data;
layer->data = msStrdup(layer->data);
layer->data = msReplaceSubstring(layer->data,st->name,ste->value);
}
@@ -138,7 +145,8 @@ int msLayerApplyScaletokens(layerObj *layer, double scale)
msDebug("replacing scaletoken (%s) with (%s) in layer->tileindex (%s) for scale=%f\n",
st->name,ste->value,layer->name,scale);
}
- layer->orig_tileindex = layer->tileindex;
+ check_st_alloc(layer);
+ layer->orig_st->tileindex = layer->tileindex;
layer->tileindex = msStrdup(layer->tileindex);
layer->tileindex = msReplaceSubstring(layer->tileindex,st->name,ste->value);
}
@@ -147,7 +155,8 @@ int msLayerApplyScaletokens(layerObj *layer, double scale)
msDebug("replacing scaletoken (%s) with (%s) in layer->tileitem (%s) for scale=%f\n",
st->name,ste->value,layer->name,scale);
}
- layer->orig_tileitem = layer->tileitem;
+ check_st_alloc(layer);
+ layer->orig_st->tileitem = layer->tileitem;
layer->tileitem = msStrdup(layer->tileitem);
layer->tileitem = msReplaceSubstring(layer->tileitem,st->name,ste->value);
}
@@ -156,7 +165,8 @@ int msLayerApplyScaletokens(layerObj *layer, double scale)
msDebug("replacing scaletoken (%s) with (%s) in layer->filteritem (%s) for scale=%f\n",
st->name,ste->value,layer->name,scale);
}
- layer->orig_filteritem = layer->filteritem;
+ check_st_alloc(layer);
+ layer->orig_st->filteritem = layer->filteritem;
layer->filteritem = msStrdup(layer->filteritem);
layer->filteritem = msReplaceSubstring(layer->filteritem,st->name,ste->value);
}
@@ -166,12 +176,26 @@ int msLayerApplyScaletokens(layerObj *layer, double scale)
msDebug("replacing scaletoken (%s) with (%s) in layer->filter (%s) for scale=%f\n",
st->name,ste->value,layer->name,scale);
}
- layer->orig_filter = msStrdup(layer->filter.string);
+ check_st_alloc(layer);
+ layer->orig_st->filter = msStrdup(layer->filter.string);
tmpval = msStrdup(layer->filter.string);
tmpval = msReplaceSubstring(tmpval,st->name,ste->value);
- if(msLoadExpressionString(&(layer->filter),tmpval) == -1) return(MS_FAILURE); /* loadExpression() cleans up previously allocated expression */
+ if(msLoadExpressionString(&(layer->filter),tmpval) == -1) return(MS_FAILURE); /* msLoadExpressionString() cleans up previously allocated expression */
msFree(tmpval);
}
+ for(p=0;p<layer->numprocessing;p++) {
+ if(strstr(layer->processing[p],st->name)) {
+ check_st_alloc(layer);
+ layer->orig_st->n_processing++;
+ layer->orig_st->processing = msSmallRealloc(layer->orig_st->processing, layer->orig_st->n_processing * sizeof(char*));
+ layer->orig_st->processing_idx = msSmallRealloc(layer->orig_st->processing_idx, layer->orig_st->n_processing * sizeof(int));
+ layer->orig_st->processing[layer->orig_st->n_processing-1] = layer->processing[p];
+ layer->orig_st->processing_idx[layer->orig_st->n_processing-1] = p;
+ layer->processing[p] = msStrdup(layer->processing[p]);
+ layer->processing[p] = msReplaceSubstring(layer->processing[p],st->name,ste->value);
+ }
+ }
+
}
return MS_SUCCESS;
}
@@ -235,6 +259,16 @@ int msLayerSupportsCommonFilters(layerObj *layer)
return layer->vtable->LayerSupportsCommonFilters(layer);
}
+int msLayerTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem)
+{
+ if (!layer->vtable) {
+ int rv = msInitializeVirtualTable(layer);
+ if (rv != MS_SUCCESS)
+ return rv;
+ }
+ return layer->vtable->LayerTranslateFilter(layer, filter, filteritem);
+}
+
/*
** Performs a spatial, and optionally an attribute based feature search. The function basically
** prepares things so that candidate features can be accessed by query or drawing functions. For
@@ -247,6 +281,9 @@ int msLayerSupportsCommonFilters(layerObj *layer)
*/
int msLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
{
+ if(!msLayerSupportsCommonFilters(layer))
+ msLayerTranslateFilter(layer, &layer->filter, layer->filteritem);
+
if ( ! layer->vtable) {
int rv = msInitializeVirtualTable(layer);
if (rv != MS_SUCCESS)
@@ -263,7 +300,7 @@ int msLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
*/
int msLayerNextShape(layerObj *layer, shapeObj *shape)
{
- int rv;
+ int rv, filter_passed;
if ( ! layer->vtable) {
rv = msInitializeVirtualTable(layer);
@@ -271,18 +308,46 @@ int msLayerNextShape(layerObj *layer, shapeObj *shape)
return rv;
}
+#ifdef USE_V8_MAPSCRIPT
+ /* we need to force the GetItems for the geomtransform attributes */
+ if(!layer->items &&
+ layer->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION &&
+ strstr(layer->_geomtransform.string, "javascript"))
+ msLayerGetItems(layer);
+#endif
+
/* At the end of switch case (default -> break; -> return MS_FAILURE),
* was following TODO ITEM:
+ *
+ * TO DO! This is where dynamic joins will happen. Joined attributes will be
+ * tagged on to the main attributes with the naming scheme [join name].[item name].
+ * We need to leverage the iteminfo (I think) at this point
*/
- /* TO DO! This is where dynamic joins will happen. Joined attributes will be */
- /* tagged on to the main attributes with the naming scheme [join name].[item name]. */
- /* We need to leverage the iteminfo (I think) at this point */
- rv = layer->vtable->LayerNextShape(layer, shape);
+ /* RFC 91: MapServer-based filtering is done at a more general level. */
+ do {
+ rv = layer->vtable->LayerNextShape(layer, shape);
+ if(rv != MS_SUCCESS) return rv;
+
+ filter_passed = MS_TRUE; /* By default accept ANY shape */
+ // if(layer->numitems > 0 && layer->iteminfo) {
+ filter_passed = msEvalExpression(layer, shape, &(layer->filter), layer->filteritemindex);
+ // }
+
+ if(!filter_passed) msFreeShape(shape);
+ } while(!filter_passed);
/* RFC89 Apply Layer GeomTransform */
if(layer->_geomtransform.type != MS_GEOMTRANSFORM_NONE && rv == MS_SUCCESS) {
rv = msGeomTransformShape(layer->map, layer, shape);
+ if(rv != MS_SUCCESS)
+ return rv;
+ }
+
+ if(layer->encoding) {
+ rv = msLayerEncodeShapeAttributes(layer,shape);
+ if(rv != MS_SUCCESS)
+ return rv;
}
return rv;
@@ -323,10 +388,20 @@ int msLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
*/
rv = layer->vtable->LayerGetShape(layer, shape, record);
+ if(rv != MS_SUCCESS)
+ return rv;
/* RFC89 Apply Layer GeomTransform */
if(layer->_geomtransform.type != MS_GEOMTRANSFORM_NONE && rv == MS_SUCCESS) {
rv = msGeomTransformShape(layer->map, layer, shape);
+ if(rv != MS_SUCCESS)
+ return rv;
+ }
+
+ if(layer->encoding) {
+ rv = msLayerEncodeShapeAttributes(layer,shape);
+ if(rv != MS_SUCCESS)
+ return rv;
}
return rv;
@@ -348,17 +423,17 @@ void msLayerClose(layerObj *layer)
}
/* clear out items used as part of expressions (bug #2702) -- what about the layer filter? */
- freeExpressionTokens(&(layer->filter));
- freeExpressionTokens(&(layer->cluster.group));
- freeExpressionTokens(&(layer->cluster.filter));
+ msFreeExpressionTokens(&(layer->filter));
+ msFreeExpressionTokens(&(layer->cluster.group));
+ msFreeExpressionTokens(&(layer->cluster.filter));
for(i=0; i<layer->numclasses; i++) {
- freeExpressionTokens(&(layer->class[i]->expression));
- freeExpressionTokens(&(layer->class[i]->text));
+ msFreeExpressionTokens(&(layer->class[i]->expression));
+ msFreeExpressionTokens(&(layer->class[i]->text));
for(j=0; j<layer->class[i]->numstyles; j++)
- freeExpressionTokens(&(layer->class[i]->styles[j]->_geomtransform));
+ msFreeExpressionTokens(&(layer->class[i]->styles[j]->_geomtransform));
for(k=0; k<layer->class[i]->numlabels; k++) {
- freeExpressionTokens(&(layer->class[i]->labels[k]->expression));
- freeExpressionTokens(&(layer->class[i]->labels[k]->text));
+ msFreeExpressionTokens(&(layer->class[i]->labels[k]->expression));
+ msFreeExpressionTokens(&(layer->class[i]->labels[k]->text));
}
}
@@ -460,11 +535,12 @@ static int string2list(char **list, int *listsize, char *string)
{
int i;
- for(i=0; i<(*listsize); i++)
+ for(i=0; i<(*listsize); i++) {
if(strcasecmp(list[i], string) == 0) {
/* printf("string2list (duplicate): %s %d\n", string, i); */
return(i);
}
+ }
list[i] = msStrdup(string);
(*listsize)++;
@@ -483,6 +559,58 @@ extern char *msyystring; /* string to tokenize */
extern double msyynumber; /* token containers */
extern char *msyystring_buffer;
+const char *msExpressionTokenToString(int token) {
+ switch(token) {
+ case '(': return "(";
+ case ')': return ")";
+ case ',': return ",";
+ case '+': return "+";
+ case '-': return "-";
+ case '/': return "/";
+ case '*': return "*";
+ case '%': return "%";
+
+ case MS_TOKEN_LOGICAL_AND: return " and ";
+ case MS_TOKEN_LOGICAL_OR: return " or ";
+ case MS_TOKEN_LOGICAL_NOT: return " not ";
+
+ case MS_TOKEN_COMPARISON_EQ: return " = ";
+ case MS_TOKEN_COMPARISON_NE: return " != ";
+ case MS_TOKEN_COMPARISON_GT: return " > ";
+ case MS_TOKEN_COMPARISON_GE: return " >= ";
+ case MS_TOKEN_COMPARISON_LT: return " < ";
+ case MS_TOKEN_COMPARISON_LE: return " <= ";
+ case MS_TOKEN_COMPARISON_IEQ: return "";
+ case MS_TOKEN_COMPARISON_RE: return " ~ ";
+ case MS_TOKEN_COMPARISON_IRE: return " ~* ";
+ case MS_TOKEN_COMPARISON_IN: return " in ";
+ case MS_TOKEN_COMPARISON_LIKE: return " like ";
+
+ case MS_TOKEN_COMPARISON_INTERSECTS: return "intersects";
+ case MS_TOKEN_COMPARISON_DISJOINT: return "disjoint";
+ case MS_TOKEN_COMPARISON_TOUCHES: return "touches";
+ case MS_TOKEN_COMPARISON_OVERLAPS: return "overlaps";
+ case MS_TOKEN_COMPARISON_CROSSES: return "crosses";
+ case MS_TOKEN_COMPARISON_WITHIN: return "within";
+ case MS_TOKEN_COMPARISON_CONTAINS: return "contains";
+ case MS_TOKEN_COMPARISON_EQUALS: return "equals";
+ case MS_TOKEN_COMPARISON_BEYOND: return "beyond";
+ case MS_TOKEN_COMPARISON_DWITHIN: return "dwithin";
+
+ case MS_TOKEN_FUNCTION_LENGTH: return "length";
+ case MS_TOKEN_FUNCTION_TOSTRING: return "tostring";
+ case MS_TOKEN_FUNCTION_COMMIFY: return "commify";
+ case MS_TOKEN_FUNCTION_AREA: return "area";
+ case MS_TOKEN_FUNCTION_ROUND: return "round";
+ case MS_TOKEN_FUNCTION_BUFFER: return "buffer";
+ case MS_TOKEN_FUNCTION_DIFFERENCE: return "difference";
+ case MS_TOKEN_FUNCTION_SIMPLIFY: return "simplify";
+ // case MS_TOKEN_FUNCTION_SIMPLIFYPT:
+ case MS_TOKEN_FUNCTION_GENERALIZE: return "generalize";
+ default: return NULL;
+ }
+}
+
int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
{
tokenListNodeObjPtr node;
@@ -502,10 +630,13 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
goto parse_error;
}
+ node->tokensrc = NULL;
+
node->tailifhead = NULL;
node->next = NULL;
switch(token) {
+ case MS_TOKEN_LITERAL_BOOLEAN:
case MS_TOKEN_LITERAL_NUMBER:
node->token = token;
node->tokenval.dblval = msyynumber;
@@ -515,10 +646,12 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
node->tokenval.strval = msStrdup(msyystring_buffer);
break;
case MS_TOKEN_LITERAL_TIME:
+ node->tokensrc = msStrdup(msyystring_buffer);
node->token = token;
msTimeInit(&(node->tokenval.tmval));
if(msParseTime(msyystring_buffer, &(node->tokenval.tmval)) != MS_TRUE) {
msSetError(MS_PARSEERR, "Parsing time value failed.", "msTokenizeExpression()");
+ free(node);
goto parse_error;
}
break;
@@ -542,11 +675,13 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
case MS_TOKEN_FUNCTION_FROMTEXT: /* we want to process a shape from WKT once and not for every feature being evaluated */
if((token = msyylex()) != 40) { /* ( */
msSetError(MS_PARSEERR, "Parsing fromText function failed.", "msTokenizeExpression()");
+ free(node);
goto parse_error;
}
if((token = msyylex()) != MS_TOKEN_LITERAL_STRING) {
msSetError(MS_PARSEERR, "Parsing fromText function failed.", "msTokenizeExpression()");
+ free(node);
goto parse_error;
}
@@ -555,6 +690,7 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
if(!node->tokenval.shpval) {
msSetError(MS_PARSEERR, "Parsing fromText function failed, WKT processing failed.", "msTokenizeExpression()");
+ free(node);
goto parse_error;
}
@@ -562,6 +698,9 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
if((token = msyylex()) != 41) { /* ) */
msSetError(MS_PARSEERR, "Parsing fromText function failed.", "msTokenizeExpression()");
+ msFreeShape(node->tokenval.shpval);
+ free(node->tokenval.shpval);
+ free(node);
goto parse_error;
}
break;
@@ -599,7 +738,7 @@ parse_error:
** examining the contents of the various xxxxitem parameters and expressions. That list is
** then used to set the iteminfo variable.
*/
-int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
+int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata)
{
int i, j, k, l, rv;
int nt=0;
@@ -626,11 +765,14 @@ int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
layer->filteritemindex = -1;
layer->styleitemindex = -1;
layer->labelitemindex = -1;
+ layer->utfitemindex = -1;
if(layer->classitem) nt++;
if(layer->filteritem) nt++;
- if(layer->styleitem && strcasecmp(layer->styleitem, "AUTO") != 0) nt++;
-
+ if(layer->styleitem &&
+ (strcasecmp(layer->styleitem, "AUTO") != 0) &&
+ (strncasecmp(layer->styleitem, "javascript://", 13) != 0)) nt++;
+
if(layer->filter.type == MS_EXPRESSION)
nt += msCountChars(layer->filter.string, '[');
@@ -641,6 +783,7 @@ int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
nt += msCountChars(layer->cluster.filter.string, '[');
if(layer->labelitem) nt++;
+ if(layer->utfitem) nt++;
if(layer->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION)
msTokenizeExpression(&layer->_geomtransform, layer->items, &(layer->numitems));
@@ -677,6 +820,10 @@ int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
nt += msCountChars(layer->class[i]->text.string, '[');
}
+ /* utfgrid count */
+ if(layer->utfdata.type == MS_EXPRESSION || (layer->utfdata.string && strchr(layer->utfdata.string,'[') != NULL && strchr(layer->utfdata.string,']') != NULL))
+ nt += msCountChars(layer->utfdata.string, '[');
+
/*
** allocate space for the item list (worse case size)
*/
@@ -684,71 +831,85 @@ int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
/* always retrieve all items in some cases */
if(layer->connectiontype == MS_INLINE || get_all == MS_TRUE ||
(layer->map->outputformat && layer->map->outputformat->renderer == MS_RENDER_WITH_KML)) {
- msLayerGetItems(layer);
+ rv = msLayerGetItems(layer);
if(nt > 0) /* need to realloc the array to accept the possible new items*/
layer->items = (char **)msSmallRealloc(layer->items, sizeof(char *)*(layer->numitems + nt));
} else {
rv = layer->vtable->LayerCreateItems(layer, nt);
- if(rv != MS_SUCCESS)
- return rv;
}
+ if(rv != MS_SUCCESS)
+ return rv;
/*
** build layer item list, compute item indexes for explicity item references (e.g. classitem) or item bindings
*/
- if(nt > 0) {
- /* layer items */
- if(layer->classitem) layer->classitemindex = string2list(layer->items, &(layer->numitems), layer->classitem);
- if(layer->filteritem) layer->filteritemindex = string2list(layer->items, &(layer->numitems), layer->filteritem);
- if(layer->styleitem && strcasecmp(layer->styleitem, "AUTO") != 0) layer->styleitemindex = string2list(layer->items, &(layer->numitems), layer->styleitem);
- if(layer->labelitem) layer->labelitemindex = string2list(layer->items, &(layer->numitems), layer->labelitem);
-
- /* layer classes */
- for(i=0; i<layer->numclasses; i++) {
- /* class expression */
- if(layer->class[i]->expression.type == MS_EXPRESSION) msTokenizeExpression(&(layer->class[i]->expression), layer->items, &(layer->numitems));
-
- /* class styles (items, bindings, geomtransform) */
- for(j=0; j<layer->class[i]->numstyles; j++) {
- if(layer->class[i]->styles[j]->rangeitem) layer->class[i]->styles[j]->rangeitemindex = string2list(layer->items, &(layer->numitems), layer->class[i]->styles[j]->rangeitem);
- for(k=0; k<MS_STYLE_BINDING_LENGTH; k++)
- if(layer->class[i]->styles[j]->bindings[k].item) layer->class[i]->styles[j]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->styles[j]->bindings[k].item);
- if(layer->class[i]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION)
- msTokenizeExpression(&(layer->class[i]->styles[j]->_geomtransform), layer->items, &(layer->numitems));
+ /* layer items */
+ if(layer->classitem) layer->classitemindex = string2list(layer->items, &(layer->numitems), layer->classitem);
+ if(layer->filteritem) layer->filteritemindex = string2list(layer->items, &(layer->numitems), layer->filteritem);
+ if(layer->styleitem && (strcasecmp(layer->styleitem, "AUTO") != 0) && (strncasecmp(layer->styleitem, "javascript://",13) != 0))
+ layer->styleitemindex = string2list(layer->items, &(layer->numitems), layer->styleitem);
+ if(layer->labelitem) layer->labelitemindex = string2list(layer->items, &(layer->numitems), layer->labelitem);
+ if(layer->utfitem) layer->utfitemindex = string2list(layer->items, &(layer->numitems), layer->utfitem);
+
+ /* layer classes */
+ for(i=0; i<layer->numclasses; i++) {
+
+ if(layer->class[i]->expression.type == MS_EXPRESSION) /* class expression */
+ msTokenizeExpression(&(layer->class[i]->expression), layer->items, &(layer->numitems));
+
+ /* class styles (items, bindings, geomtransform) */
+ for(j=0; j<layer->class[i]->numstyles; j++) {
+ if(layer->class[i]->styles[j]->rangeitem)
+ layer->class[i]->styles[j]->rangeitemindex = string2list(layer->items, &(layer->numitems), layer->class[i]->styles[j]->rangeitem);
+ for(k=0; k<MS_STYLE_BINDING_LENGTH; k++) {
+ if(layer->class[i]->styles[j]->bindings[k].item)
+ layer->class[i]->styles[j]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->styles[j]->bindings[k].item);
}
+ if(layer->class[i]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION)
+ msTokenizeExpression(&(layer->class[i]->styles[j]->_geomtransform), layer->items, &(layer->numitems));
+ }
- /* class labels and label styles (items, bindings, geomtransform) */
- for(l=0; l<layer->class[i]->numlabels; l++) {
- for(j=0; j<layer->class[i]->labels[l]->numstyles; j++) {
- if(layer->class[i]->labels[l]->styles[j]->rangeitem) layer->class[i]->labels[l]->styles[j]->rangeitemindex = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->styles[j]->rangeitem);
- for(k=0; k<MS_STYLE_BINDING_LENGTH; k++)
- if(layer->class[i]->labels[l]->styles[j]->bindings[k].item) layer->class[i]->labels[l]->styles[j]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->styles[j]->bindings[k].item);
+ /* class labels and label styles (items, bindings, geomtransform) */
+ for(l=0; l<layer->class[i]->numlabels; l++) {
+ for(j=0; j<layer->class[i]->labels[l]->numstyles; j++) {
+ if(layer->class[i]->labels[l]->styles[j]->rangeitem)
+ layer->class[i]->labels[l]->styles[j]->rangeitemindex = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->styles[j]->rangeitem);
+ for(k=0; k<MS_STYLE_BINDING_LENGTH; k++) {
+ if(layer->class[i]->labels[l]->styles[j]->bindings[k].item)
+ layer->class[i]->labels[l]->styles[j]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->styles[j]->bindings[k].item);
if(layer->class[i]->labels[l]->styles[j]->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION)
msTokenizeExpression(&(layer->class[i]->labels[l]->styles[j]->_geomtransform), layer->items, &(layer->numitems));
}
- for(k=0; k<MS_LABEL_BINDING_LENGTH; k++)
- if(layer->class[i]->labels[l]->bindings[k].item) layer->class[i]->labels[l]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->bindings[k].item);
-
- /* label expression */
- if(layer->class[i]->labels[l]->expression.type == MS_EXPRESSION) msTokenizeExpression(&(layer->class[i]->labels[l]->expression), layer->items, &(layer->numitems));
-
- /* label text */
- if(layer->class[i]->labels[l]->text.type == MS_EXPRESSION || (layer->class[i]->labels[l]->text.string && strchr(layer->class[i]->labels[l]->text.string,'[') != NULL && strchr(layer->class[i]->labels[l]->text.string,']') != NULL))
- msTokenizeExpression(&(layer->class[i]->labels[l]->text), layer->items, &(layer->numitems));
}
+ for(k=0; k<MS_LABEL_BINDING_LENGTH; k++) {
+ if(layer->class[i]->labels[l]->bindings[k].item)
+ layer->class[i]->labels[l]->bindings[k].index = string2list(layer->items, &(layer->numitems), layer->class[i]->labels[l]->bindings[k].item);
+ }
+
+ /* label expression */
+ if(layer->class[i]->labels[l]->expression.type == MS_EXPRESSION) msTokenizeExpression(&(layer->class[i]->labels[l]->expression), layer->items, &(layer->numitems));
- /* class text */
- if(layer->class[i]->text.type == MS_EXPRESSION || (layer->class[i]->text.string && strchr(layer->class[i]->text.string,'[') != NULL && strchr(layer->class[i]->text.string,']') != NULL))
- msTokenizeExpression(&(layer->class[i]->text), layer->items, &(layer->numitems));
+ /* label text */
+ if(layer->class[i]->labels[l]->text.type == MS_EXPRESSION || (layer->class[i]->labels[l]->text.string && strchr(layer->class[i]->labels[l]->text.string,'[') != NULL && strchr(layer->class[i]->labels[l]->text.string,']') != NULL))
+ msTokenizeExpression(&(layer->class[i]->labels[l]->text), layer->items, &(layer->numitems));
}
- /* layer filter */
- if(layer->filter.type == MS_EXPRESSION) msTokenizeExpression(&(layer->filter), layer->items, &(layer->numitems));
+ /* class text */
+ if(layer->class[i]->text.type == MS_EXPRESSION || (layer->class[i]->text.string && strchr(layer->class[i]->text.string,'[') != NULL && strchr(layer->class[i]->text.string,']') != NULL))
+ msTokenizeExpression(&(layer->class[i]->text), layer->items, &(layer->numitems));
+ }
+
+ /* layer filter */
+ if(layer->filter.type == MS_EXPRESSION) msTokenizeExpression(&(layer->filter), layer->items, &(layer->numitems));
+
+ /* cluster expressions */
+ if(layer->cluster.group.type == MS_EXPRESSION) msTokenizeExpression(&(layer->cluster.group), layer->items, &(layer->numitems));
+ if(layer->cluster.filter.type == MS_EXPRESSION) msTokenizeExpression(&(layer->cluster.filter), layer->items, &(layer->numitems));
- /* cluster expressions */
- if(layer->cluster.group.type == MS_EXPRESSION) msTokenizeExpression(&(layer->cluster.group), layer->items, &(layer->numitems));
- if(layer->cluster.filter.type == MS_EXPRESSION) msTokenizeExpression(&(layer->cluster.filter), layer->items, &(layer->numitems));
+ /* utfdata */
+ if(layer->utfdata.type == MS_EXPRESSION || (layer->utfdata.string && strchr(layer->utfdata.string,'[') != NULL && strchr(layer->utfdata.string,']') != NULL)) {
+ msTokenizeExpression(&(layer->utfdata), layer->items, &(layer->numitems));
}
if(metadata) {
@@ -839,41 +1000,75 @@ int msLayerGetAutoStyle(mapObj *map, layerObj *layer, classObj *c, shapeObj* sha
*/
int msLayerGetFeatureStyle(mapObj *map, layerObj *layer, classObj *c, shapeObj* shape)
{
- char* stylestring;
+ char* stylestring = NULL;
if (layer->styleitem && layer->styleitemindex >=0) {
- stylestring = shape->values[layer->styleitemindex];
- /* try to find out the current style format */
- if (strncasecmp(stylestring,"style",5) == 0) {
- resetClassStyle(c);
- c->layer = layer;
- if (msMaybeAllocateClassStyle(c, 0))
- return(MS_FAILURE);
-
- msUpdateStyleFromString(c->styles[0], stylestring, MS_FALSE);
- if(c->styles[0]->symbolname) {
- if((c->styles[0]->symbol = msGetSymbolIndex(&(map->symbolset), c->styles[0]->symbolname, MS_TRUE)) == -1) {
- msSetError(MS_MISCERR, "Undefined symbol \"%s\" in class of layer %s.", "msLayerGetFeatureStyle()",
- c->styles[0]->symbolname, layer->name);
- return MS_FAILURE;
- }
+ stylestring = msStrdup(shape->values[layer->styleitemindex]);
+ }
+ else if (strncasecmp(layer->styleitem,"javascript://",13) == 0) {
+#ifdef USE_V8_MAPSCRIPT
+ char *filename = layer->styleitem+13;
+
+ if (!map->v8context) {
+ msV8CreateContext(map);
+ if (!map->v8context)
+ {
+ msSetError(MS_V8ERR, "Unable to create v8 context.", "msLayerGetFeatureStyle()");
+ return MS_FAILURE;
}
- } else if (strncasecmp(stylestring,"class",5) == 0) {
- if (strcasestr(stylestring, " style ") != NULL) {
- /* reset style if stylestring contains style definitions */
- resetClassStyle(c);
- c->layer = layer;
+ }
+
+ if (*filename == '\0') {
+ msSetError(MS_V8ERR, "Invalid javascript filename: \"%s\".", "msLayerGetFeatureStyle()", layer->styleitem);
+ return MS_FAILURE;
+ }
+
+ stylestring = msV8GetFeatureStyle(map, filename, layer, shape);
+#else
+ msSetError(MS_V8ERR, "V8 Javascript support is not available.", "msLayerGetFeatureStyle()");
+ return MS_FAILURE;
+#endif
+ }
+ else { /* unknown styleitem */
+ return MS_FAILURE;
+ }
+
+ /* try to find out the current style format */
+ if (!stylestring)
+ return MS_FAILURE;
+
+ if (strncasecmp(stylestring,"style",5) == 0) {
+ resetClassStyle(c);
+ c->layer = layer;
+ if (msMaybeAllocateClassStyle(c, 0)) {
+ free(stylestring);
+ return(MS_FAILURE);
+ }
+
+ msUpdateStyleFromString(c->styles[0], stylestring, MS_FALSE);
+ if(c->styles[0]->symbolname) {
+ if((c->styles[0]->symbol = msGetSymbolIndex(&(map->symbolset), c->styles[0]->symbolname, MS_TRUE)) == -1) {
+ msSetError(MS_MISCERR, "Undefined symbol \"%s\" in class of layer %s.", "msLayerGetFeatureStyle()",
+ c->styles[0]->symbolname, layer->name);
+ free(stylestring);
+ return MS_FAILURE;
}
- msUpdateClassFromString(c, stylestring, MS_FALSE);
- } else if (strncasecmp(stylestring,"pen",3) == 0 || strncasecmp(stylestring,"brush",5) == 0 ||
- strncasecmp(stylestring,"symbol",6) == 0 || strncasecmp(stylestring,"label",5) == 0) {
- msOGRUpdateStyleFromString(map, layer, c, stylestring);
- } else {
+ }
+ } else if (strncasecmp(stylestring,"class",5) == 0) {
+ if (strcasestr(stylestring, " style ") != NULL) {
+ /* reset style if stylestring contains style definitions */
resetClassStyle(c);
+ c->layer = layer;
}
-
- return MS_SUCCESS;
+ msUpdateClassFromString(c, stylestring, MS_FALSE);
+ } else if (strncasecmp(stylestring,"pen",3) == 0 || strncasecmp(stylestring,"brush",5) == 0 ||
+ strncasecmp(stylestring,"symbol",6) == 0 || strncasecmp(stylestring,"label",5) == 0) {
+ msOGRUpdateStyleFromString(map, layer, c, stylestring);
+ } else {
+ resetClassStyle(c);
}
- return MS_FAILURE;
+
+ free(stylestring);
+ return MS_SUCCESS;
}
@@ -931,6 +1126,13 @@ msLayerSetProcessingKey( layerObj *layer, const char *key, const char *value)
}
}
+void msLayerSubstituteProcessing( layerObj *layer, const char *from, const char *to ) {
+ int i;
+ for( i = 0; i < layer->numprocessing; i++ ) {
+ layer->processing[i] = msCaseReplaceSubstring(layer->processing[i], from, to);
+ }
+}
+
void msLayerAddProcessing( layerObj *layer, const char *directive )
{
@@ -1033,7 +1235,7 @@ makeTimeFilter(layerObj *lp,
if(lp->filteritem) free(lp->filteritem);
lp->filteritem = msStrdup(timefield);
if (&lp->filter)
- freeExpression(&lp->filter);
+ msFreeExpression(&lp->filter);
*/
if (&lp->filter) {
@@ -1044,7 +1246,7 @@ makeTimeFilter(layerObj *lp,
pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
pszBuffer = msStringConcatenate(pszBuffer, ") and ");
} else {
- freeExpression(&lp->filter);
+ msFreeExpression(&lp->filter);
}
}
@@ -1080,7 +1282,7 @@ makeTimeFilter(layerObj *lp,
pszBuffer = msStringConcatenate(pszBuffer, ")");
}
- loadExpressionString(&lp->filter, pszBuffer);
+ msLoadExpressionString(&lp->filter, pszBuffer);
if (pszBuffer)
msFree(pszBuffer);
@@ -1089,100 +1291,39 @@ makeTimeFilter(layerObj *lp,
}
atimes = msStringSplit(timestring, ',', &numtimes);
- if (atimes == NULL || numtimes < 1)
+ if (atimes == NULL || numtimes < 1) {
+ msFreeCharArray(atimes,numtimes);
return MS_FALSE;
+ }
- if (numtimes >= 1) {
- if (&lp->filter && lp->filter.string && lp->filter.type == MS_STRING) {
- pszBuffer = msStringConcatenate(pszBuffer, "((");
- pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
- pszBuffer = msStringConcatenate(pszBuffer, ") and ");
- /*this flag is used to indicate that the buffer contains only the
- existing filter. It is set to 0 when time filter parts are
- added to the buffer */
- bOnlyExistingFilter = 1;
- } else
- freeExpression(&lp->filter);
-
- /* check to see if we have ranges by parsing the first entry */
- tokens = msStringSplit(atimes[0], '/', &ntmp);
- if (ntmp == 2) { /* ranges */
- msFreeCharArray(tokens, ntmp);
- for (i=0; i<numtimes; i++) {
- tokens = msStringSplit(atimes[i], '/', &ntmp);
- if (ntmp == 2) {
- if (pszBuffer && strlen(pszBuffer) > 0 && bOnlyExistingFilter == 0)
- pszBuffer = msStringConcatenate(pszBuffer, " OR ");
- else
- pszBuffer = msStringConcatenate(pszBuffer, "(");
-
- bOnlyExistingFilter = 0;
-
+ if (&lp->filter && lp->filter.string && lp->filter.type == MS_STRING) {
+ pszBuffer = msStringConcatenate(pszBuffer, "((");
+ pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
+ pszBuffer = msStringConcatenate(pszBuffer, ") and ");
+ /*this flag is used to indicate that the buffer contains only the
+ existing filter. It is set to 0 when time filter parts are
+ added to the buffer */
+ bOnlyExistingFilter = 1;
+ } else
+ msFreeExpression(&lp->filter);
+
+ /* check to see if we have ranges by parsing the first entry */
+ tokens = msStringSplit(atimes[0], '/', &ntmp);
+ if (ntmp == 2) { /* ranges */
+ msFreeCharArray(tokens, ntmp);
+ for (i=0; i<numtimes; i++) {
+ tokens = msStringSplit(atimes[i], '/', &ntmp);
+ if (ntmp == 2) {
+ if (pszBuffer && strlen(pszBuffer) > 0 && bOnlyExistingFilter == 0)
+ pszBuffer = msStringConcatenate(pszBuffer, " OR ");
+ else
pszBuffer = msStringConcatenate(pszBuffer, "(");
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
-
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "[");
- pszBuffer = msStringConcatenate(pszBuffer, (char *)timefield);
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "]");
-
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
-
- pszBuffer = msStringConcatenate(pszBuffer, " >= ");
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
- else
- pszBuffer = msStringConcatenate(pszBuffer, "'");
-
- pszBuffer = msStringConcatenate(pszBuffer, tokens[0]);
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
- else
- pszBuffer = msStringConcatenate(pszBuffer, "'");
- pszBuffer = msStringConcatenate(pszBuffer, " AND ");
-
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
-
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "[");
- pszBuffer = msStringConcatenate(pszBuffer, (char *)timefield);
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "]");
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
-
- pszBuffer = msStringConcatenate(pszBuffer, " <= ");
-
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
- else
- pszBuffer = msStringConcatenate(pszBuffer, "'");
- pszBuffer = msStringConcatenate(pszBuffer, tokens[1]);
- if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
- else
- pszBuffer = msStringConcatenate(pszBuffer, "'");
- pszBuffer = msStringConcatenate(pszBuffer, ")");
- }
- msFreeCharArray(tokens, ntmp);
- }
- if (pszBuffer && strlen(pszBuffer) > 0 && bOnlyExistingFilter == 0)
- pszBuffer = msStringConcatenate(pszBuffer, ")");
- } else if (ntmp == 1) { /* multiple times */
- msFreeCharArray(tokens, ntmp);
- pszBuffer = msStringConcatenate(pszBuffer, "(");
- for (i=0; i<numtimes; i++) {
- if (i > 0)
- pszBuffer = msStringConcatenate(pszBuffer, " OR ");
+ bOnlyExistingFilter = 0;
pszBuffer = msStringConcatenate(pszBuffer, "(");
if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
if (addtimebacktics)
pszBuffer = msStringConcatenate(pszBuffer, "[");
@@ -1191,50 +1332,108 @@ makeTimeFilter(layerObj *lp,
pszBuffer = msStringConcatenate(pszBuffer, "]");
if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
- pszBuffer = msStringConcatenate(pszBuffer, " = ");
+ pszBuffer = msStringConcatenate(pszBuffer, " >= ");
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+ else
+ pszBuffer = msStringConcatenate(pszBuffer, "'");
+ pszBuffer = msStringConcatenate(pszBuffer, tokens[0]);
if (addtimebacktics)
- pszBuffer = msStringConcatenate(pszBuffer, "`");
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
else
pszBuffer = msStringConcatenate(pszBuffer, "'");
- pszBuffer = msStringConcatenate(pszBuffer, atimes[i]);
+ pszBuffer = msStringConcatenate(pszBuffer, " AND ");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "[");
+ pszBuffer = msStringConcatenate(pszBuffer, (char *)timefield);
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "]");
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+
+ pszBuffer = msStringConcatenate(pszBuffer, " <= ");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+ else
+ pszBuffer = msStringConcatenate(pszBuffer, "'");
+ pszBuffer = msStringConcatenate(pszBuffer, tokens[1]);
if (addtimebacktics)
pszBuffer = msStringConcatenate(pszBuffer, "`");
else
pszBuffer = msStringConcatenate(pszBuffer, "'");
pszBuffer = msStringConcatenate(pszBuffer, ")");
}
- pszBuffer = msStringConcatenate(pszBuffer, ")");
- } else {
- msFreeCharArray(atimes, numtimes);
- return MS_FALSE;
+
+ msFreeCharArray(tokens, ntmp);
}
+ if (pszBuffer && strlen(pszBuffer) > 0 && bOnlyExistingFilter == 0)
+ pszBuffer = msStringConcatenate(pszBuffer, ")");
+ } else if (ntmp == 1) { /* multiple times */
+ msFreeCharArray(tokens, ntmp);
+ pszBuffer = msStringConcatenate(pszBuffer, "(");
+ for (i=0; i<numtimes; i++) {
+ if (i > 0)
+ pszBuffer = msStringConcatenate(pszBuffer, " OR ");
+ pszBuffer = msStringConcatenate(pszBuffer, "(");
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "[");
+ pszBuffer = msStringConcatenate(pszBuffer, (char *)timefield);
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "]");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+
+ pszBuffer = msStringConcatenate(pszBuffer, " = ");
+
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+ else
+ pszBuffer = msStringConcatenate(pszBuffer, "'");
+ pszBuffer = msStringConcatenate(pszBuffer, atimes[i]);
+ if (addtimebacktics)
+ pszBuffer = msStringConcatenate(pszBuffer, "`");
+ else
+ pszBuffer = msStringConcatenate(pszBuffer, "'");
+ pszBuffer = msStringConcatenate(pszBuffer, ")");
+ }
+ pszBuffer = msStringConcatenate(pszBuffer, ")");
+ } else {
+ msFreeCharArray(tokens, ntmp);
msFreeCharArray(atimes, numtimes);
+ msFree(pszBuffer);
+ return MS_FALSE;
+ }
- /* load the string to the filter */
- if (pszBuffer && strlen(pszBuffer) > 0) {
- if(&lp->filter && lp->filter.string && lp->filter.type == MS_STRING)
- pszBuffer = msStringConcatenate(pszBuffer, ")");
- /*
- if(lp->filteritem)
- free(lp->filteritem);
- lp->filteritem = msStrdup(timefield);
- */
-
- loadExpressionString(&lp->filter, pszBuffer);
+ msFreeCharArray(atimes, numtimes);
- if (pszBuffer)
- msFree(pszBuffer);
- }
+ /* load the string to the filter */
+ if (pszBuffer && strlen(pszBuffer) > 0) {
+ if(&lp->filter && lp->filter.string && lp->filter.type == MS_STRING)
+ pszBuffer = msStringConcatenate(pszBuffer, ")");
+ /*
+ if(lp->filteritem)
+ free(lp->filteritem);
+ lp->filteritem = msStrdup(timefield);
+ */
- return MS_TRUE;
+ msLoadExpressionString(&lp->filter, pszBuffer);
}
-
- return MS_FALSE;
+ msFree(pszBuffer);
+ return MS_TRUE;
}
/**
@@ -1337,9 +1536,70 @@ int msLayerSupportsPaging(layerObj *layer)
return MS_FALSE;
}
+int msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex);
+
+/*
+ * msLayerSupportsSorting()
+ *
+ * Returns MS_TRUE if the layer supports sorting/ordering.
+ */
+int msLayerSupportsSorting(layerObj *layer)
+{
+ if (layer && (
+ (layer->connectiontype == MS_OGR) || (layer->connectiontype == MS_POSTGIS) || (layer->connectiontype == MS_ORACLESPATIAL)
+ )
+ )
+ return MS_TRUE;
+
+ return MS_FALSE;
+}
+
+/*
+ * msLayerSetSort()
+ *
+ * Copy the sortBy clause passed as an argument into the layer sortBy member.
+ */
+void msLayerSetSort(layerObj *layer, const sortByClause* sortBy)
+{
+ int i;
+ for(i=0;i<layer->sortBy.nProperties;i++)
+ msFree(layer->sortBy.properties[i].item);
+ msFree(layer->sortBy.properties);
+
+ layer->sortBy.nProperties = sortBy->nProperties;
+ layer->sortBy.properties = (sortByProperties*) msSmallMalloc(sortBy->nProperties * sizeof(sortByProperties));
+ for(i=0;i<layer->sortBy.nProperties;i++) {
+ layer->sortBy.properties[i].item = msStrdup(sortBy->properties[i].item);
+ layer->sortBy.properties[i].sortOrder = sortBy->properties[i].sortOrder;
+ }
+ }
+
+/*
+ * msLayerBuildSQLOrderBy()
+ *
+ * Returns the content of a SQL ORDER BY clause from the sortBy member of
+ * the layer. The string does not contain the "ORDER BY" keywords itself.
+ */
+char* msLayerBuildSQLOrderBy(layerObj *layer)
+{
+ char* strOrderBy = NULL;
+ if( layer->sortBy.nProperties > 0 ) {
+ int i;
+ for(i=0;i<layer->sortBy.nProperties;i++) {
+ char* escaped = msLayerEscapePropertyName(layer, layer->sortBy.properties[i].item);
+ if( i > 0 )
+ strOrderBy = msStringConcatenate(strOrderBy, ", ");
+ strOrderBy = msStringConcatenate(strOrderBy, escaped);
+ if( layer->sortBy.properties[i].sortOrder == SORT_DESC )
+ strOrderBy = msStringConcatenate(strOrderBy, " DESC");
+ msFree(escaped);
+ }
+ }
+ return strOrderBy;
+}
+
int
-msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex)
+msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex)
{
#ifdef USE_OGR
return FLTLayerApplyPlainFilterToLayer(psNode, map, iLayerIndex);
@@ -1416,6 +1676,14 @@ int LayerDefaultSupportsCommonFilters(layerObj *layer)
return MS_FALSE;
}
+int LayerDefaultTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem)
+{
+ if(!filter->string) return MS_SUCCESS; /* nothing to do, not an error */
+
+ msSetError(MS_MISCERR, "This data driver does not implement filter translation support", "LayerDefaultTranslateFilter()");
+ return MS_FAILURE;
+}
+
int msLayerDefaultGetPaging(layerObj *layer)
{
return MS_FALSE;
@@ -1528,6 +1796,8 @@ static int populateVirtualTable(layerVTableObj *vtable)
assert(vtable != NULL);
vtable->LayerSupportsCommonFilters = LayerDefaultSupportsCommonFilters;
+ vtable->LayerTranslateFilter = LayerDefaultTranslateFilter;
+
vtable->LayerInitItemInfo = LayerDefaultInitItemInfo;
vtable->LayerFreeItemInfo = LayerDefaultFreeItemInfo;
vtable->LayerOpen = LayerDefaultOpen;
@@ -1605,9 +1875,6 @@ int msInitializeVirtualTable(layerObj *layer)
case(MS_TILED_SHAPEFILE):
return(msTiledSHPLayerInitializeVirtualTable(layer));
break;
- case(MS_SDE):
- return(msSDELayerInitializeVirtualTable(layer));
- break;
case(MS_OGR):
return(msOGRLayerInitializeVirtualTable(layer));
break;
diff --git a/maplegend.c b/maplegend.c
index d8b82f7..7986b33 100644
--- a/maplegend.c
+++ b/maplegend.c
@@ -44,15 +44,16 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
int width, int height, imageObj *image, int dstX, int dstY,
int scale_independant, class_hittest *hittest)
{
- int i, type, hasmarkersymbol;
+ int i, type, hasmarkersymbol, ret=MS_SUCCESS;
double offset;
double polygon_contraction = 0.5; /* used to account for the width of a polygon's outline */
shapeObj box, zigzag;
+ lineObj box_line,zigzag_line;
+ pointObj box_point[5], zigzag_point[4];
pointObj marker;
char szPath[MS_MAXPATHLEN];
styleObj outline_style;
imageObj *image_draw = image;
- int originalopacity = lp->opacity;
rendererVTableObj *renderer;
outputFormatObj *transFormat = NULL, *altFormat=NULL;
const char *alternativeFormatString = NULL;
@@ -69,21 +70,19 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
image_draw = msImageCreate(image->width, image->height,
altFormat, image->imagepath, image->imageurl, map->resolution, map->defresolution, &map->imagecolor);
+ image_draw->map = map;
renderer = MS_IMAGE_RENDERER(image_draw);
} else {
renderer = MS_IMAGE_RENDERER(image_draw);
- if (lp->opacity > 0 && lp->opacity < 100) {
- if (!renderer->supports_transparent_layers) {
- image_draw = msImageCreate(image->width, image->height,
- image->format, image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
- if (!image_draw) {
- msSetError(MS_MISCERR, "Unable to initialize temporary transparent image.",
- "msDrawLegendIcon()");
- return (MS_FAILURE);
- }
- /* set opacity to full, as the renderer should be rendering a fully opaque image */
- lp->opacity=100;
+ if (lp->compositer && renderer->compositeRasterBuffer) {
+ image_draw = msImageCreate(image->width, image->height,
+ image->format, image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
+ if (!image_draw) {
+ msSetError(MS_MISCERR, "Unable to initialize temporary transparent image.",
+ "msDrawLegendIcon()");
+ return (MS_FAILURE);
}
+ image_draw->map = map;
}
}
@@ -120,9 +119,9 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
/* initialize the box used for polygons and for outlines */
msInitShape(&box);
- box.line = (lineObj *)msSmallMalloc(sizeof(lineObj));
+ box.line = &box_line;
box.numlines = 1;
- box.line[0].point = (pointObj *)msSmallMalloc(sizeof(pointObj)*5);
+ box.line[0].point = box_point;
box.line[0].numpoints = 5;
box.line[0].point[0].x = dstX + polygon_contraction;
@@ -135,65 +134,13 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
box.line[0].point[3].y = dstY + height - polygon_contraction;
box.line[0].point[4].x = box.line[0].point[0].x;
box.line[0].point[4].y = box.line[0].point[0].y;
- box.line[0].numpoints = 5;
+
/*
** now draw the appropriate color/symbol/size combination
*/
switch(type) {
- case MS_LAYER_ANNOTATION:
- marker.x = dstX + MS_NINT(width / 2.0);
- marker.y = dstY + MS_NINT(height / 2.0);
- hasmarkersymbol = 0;
- for(i=0; i<theclass->numstyles; i++) {
- if(!scale_independant && map->scaledenom > 0) {
- styleObj *lp = theclass->styles[i];
- if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
- if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
- }
- if(hittest && hittest->stylehits[i].status == 0) continue;
- if (theclass->styles[i]->symbol < map->symbolset.numsymbols && theclass->styles[i]->symbol > 0) {
- hasmarkersymbol = 1;
- break;
- }
- }
- if (hasmarkersymbol) {
- for(i=0; i<theclass->numstyles; i++) {
- if(!scale_independant && map->scaledenom > 0) {
- styleObj *lp = theclass->styles[i];
- if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
- if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
- }
- if(hittest && hittest->stylehits[i].status == 0) continue;
- msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
- }
- } else if (theclass->labels && theclass->numlabels > 0) {
- labelObj *label = theclass->labels[0]; /* use the first label definition */
- double lsize = label->size;
- double langle = label->angle;
- int lpos = label->position;
- int loffsetx = label->offsetx;
- int loffsety = label->offsety;
- int lstatus = label->status;
- if(!hittest || hittest->labelhits[0].status == 1) {
- label->offsetx = 0;
- label->offsety = 0;
- label->angle = 0;
- label->position = MS_CC;
- if (label->type == MS_TRUETYPE) label->size = height;
- label->status = MS_ON;
- msDrawLabel(map, image_draw, marker, (char*)"Az", label,1.0);
-
- label->size = lsize;
- label->position = lpos;
- label->angle = langle;
- label->offsetx = loffsetx;
- label->offsety = loffsety;
- label->status = lstatus;
- }
- }
- break;
case MS_LAYER_POINT:
marker.x = dstX + MS_NINT(width / 2.0);
marker.y = dstY + MS_NINT(height / 2.0);
@@ -203,7 +150,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
symbolObj *symbol=NULL;
symbolNum = msAddImageSymbol(&(map->symbolset), msBuildPath(szPath, map->mappath, theclass->keyimage));
if(symbolNum == -1) {
- msSetError(MS_GDERR, "Failed to open legend key image", "msCreateLegendIcon()");
+ msSetError(MS_IMGERR, "Failed to open legend key image", "msCreateLegendIcon()");
return(MS_FAILURE);
}
@@ -220,7 +167,8 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
imgStyle.maxsize = imgStyle.size;
imgStyle.symbol = symbolNum;
- msDrawMarkerSymbol(&map->symbolset,image_draw,&marker,&imgStyle,lp->scalefactor * image_draw->resolutionfactor);
+ ret = msDrawMarkerSymbol(map ,image_draw,&marker,&imgStyle, 1.0);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
/* TO DO: we may want to handle this differently depending on the relative size of the keyimage */
} else {
for(i=0; i<theclass->numstyles; i++) {
@@ -230,7 +178,8 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
}
if(hittest && hittest->stylehits[i].status == 0) continue;
- msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ ret = msDrawMarkerSymbol(map, image_draw, &marker, theclass->styles[i], lp->scalefactor * image->resolutionfactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
}
}
break;
@@ -245,9 +194,9 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
offset = theclass->styles[0]->width/2;
}
msInitShape(&zigzag);
- zigzag.line = (lineObj *)msSmallMalloc(sizeof(lineObj));
+ zigzag.line = &zigzag_line;
zigzag.numlines = 1;
- zigzag.line[0].point = (pointObj *)msSmallMalloc(sizeof(pointObj)*4);
+ zigzag.line[0].point = zigzag_point;
zigzag.line[0].numpoints = 4;
zigzag.line[0].point[0].x = dstX + offset;
@@ -268,15 +217,16 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
if(hittest && hittest->stylehits[i].status == 0) continue;
if (theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE ||
theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
- theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY)
- msDrawLineSymbol(&map->symbolset, image_draw, &zigzag, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
- else
- msDrawTransformedShape(map, &map->symbolset, image_draw, &zigzag,
- theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ ret = msDrawLineSymbol(map, image_draw, &zigzag, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ }
+ else {
+ ret = msDrawTransformedShape(map, image_draw, &zigzag, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ }
}
- free(zigzag.line[0].point);
- free(zigzag.line);
break;
case MS_LAYER_CIRCLE:
case MS_LAYER_RASTER:
@@ -291,11 +241,15 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
if(hittest && hittest->stylehits[i].status == 0) continue;
if (theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE ||
theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
- theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY)
- msDrawShadeSymbol(&map->symbolset, image_draw, &box, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
- else
- msDrawTransformedShape(map, &map->symbolset, image_draw, &box,
- theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY) {
+ ret = msDrawShadeSymbol(map, image_draw, &box, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ }
+ else {
+ ret = msDrawTransformedShape(map, image_draw, &box,
+ theclass->styles[i], lp->scalefactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ }
}
break;
default:
@@ -303,11 +257,70 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
break;
} /* end symbol drawing */
+ /* handle label styles */
+ for(i=0; i<theclass->numlabels; i++) {
+ labelObj *l = theclass->labels[i];
+ if(!scale_independant && map->scaledenom > 0) {
+ if(msScaleInBounds(map->scaledenom, l->minscaledenom, l->maxscaledenom)) {
+ int j;
+ for(j=0; j<l->numstyles; j++) {
+ styleObj *s = l->styles[j];
+ marker.x = dstX + MS_NINT(width / 2.0);
+ marker.y = dstY + MS_NINT(height / 2.0);
+ if(s->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ ret = msDrawMarkerSymbol(map, image_draw, &marker, s, lp->scalefactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ }
+ }
+ }
+ }
+ }
+
+ /* handle "pure" text layers, i.e. layers with no symbology */
+ hasmarkersymbol = 0;
+ if(theclass->numstyles == 0) {
+ for(i=0; i<theclass->numlabels; i++) {
+ labelObj *l = theclass->labels[i];
+ if(!scale_independant && map->scaledenom > 0) {
+ if(msScaleInBounds(map->scaledenom, l->minscaledenom, l->maxscaledenom)) {
+ int j;
+ for(j=0; j<l->numstyles; j++) {
+ styleObj *s = l->styles[j];
+ if(s->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT) {
+ hasmarkersymbol = 1;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ hasmarkersymbol = 1;
+ }
+
+ if(!hasmarkersymbol && theclass->numlabels>0) {
+ textSymbolObj ts;
+ pointObj textstartpt;
+ marker.x = dstX + MS_NINT(width / 2.0);
+ marker.y = dstY + MS_NINT(height / 2.0);
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts,theclass->labels[0],msStrdup("Az"),lp->scalefactor*image_draw->resolutionfactor,image_draw->resolutionfactor, duplicate_always);
+ ts.label->size = height - 1;
+ ret = msComputeTextPath(map,&ts);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ textstartpt = get_metrics(&marker,MS_CC,ts.textpath,0,0,0,0,NULL);
+ ret = msDrawTextSymbol(map,image_draw, textstartpt, &ts);
+ freeTextSymbol(&ts);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+
+ }
+
+
/* handle an outline if necessary */
if(MS_VALID_COLOR(map->legend.outlinecolor)) {
initStyle(&outline_style);
outline_style.color = map->legend.outlinecolor;
- msDrawLineSymbol(&map->symbolset, image_draw, &box, &outline_style, 1.0 * image_draw->resolutionfactor);
+ ret = msDrawLineSymbol(map, image_draw, &box, &outline_style, image_draw->resolutionfactor);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
/* reset clipping rectangle */
if(renderer->supports_clipping)
renderer->resetClip(image_draw);
@@ -319,8 +332,10 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
rasterBufferObj rb;
memset(&rb,0,sizeof(rasterBufferObj));
- altrenderer->getRasterBufferHandle(image_draw,&rb);
- renderer->mergeRasterBuffer(image,&rb,lp->opacity*0.01,0,0,0,0,rb.width,rb.height);
+ ret = altrenderer->getRasterBufferHandle(image_draw,&rb);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ ret = renderer->mergeRasterBuffer(image,&rb,((lp->compositer)?lp->compositer->opacity*0.01:1.0),0,0,0,0,rb.width,rb.height);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
/*
* hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
* symbols that reference it. We want to remove those references before the altFormat is destroyed
@@ -336,28 +351,27 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
}
}
}
- msFreeImage(image_draw);
} else if(image != image_draw) {
rendererVTableObj *renderer = MS_IMAGE_RENDERER(image_draw);
rasterBufferObj rb;
memset(&rb,0,sizeof(rasterBufferObj));
- lp->opacity = originalopacity;
-
- renderer->getRasterBufferHandle(image_draw,&rb);
- renderer->mergeRasterBuffer(image,&rb,lp->opacity*0.01,0,0,0,0,rb.width,rb.height);
- msFreeImage(image_draw);
+ ret = renderer->getRasterBufferHandle(image_draw,&rb);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
+ ret = renderer->mergeRasterBuffer(image,&rb,((lp->compositer)?lp->compositer->opacity*0.01:1.0),0,0,0,0,rb.width,rb.height);
+ if(UNLIKELY(ret == MS_FAILURE)) goto legend_icon_cleanup;
/* deref and possibly free temporary transparent output format. */
msApplyOutputFormat( &transFormat, NULL, MS_NOOVERRIDE, MS_NOOVERRIDE, MS_NOOVERRIDE );
}
- free(box.line[0].point);
- free(box.line);
-
- return MS_SUCCESS;
+legend_icon_cleanup:
+ if(image != image_draw) {
+ msFreeImage(image_draw);
+ }
+ return ret;
}
@@ -384,23 +398,27 @@ imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int wid
msApplyOutputFormat( &format, NULL, MS_NOOVERRIDE, MS_NOOVERRIDE, MS_NOOVERRIDE );
if(image == NULL) {
- msSetError(MS_GDERR, "Unable to initialize image.","msCreateLegendIcon()");
+ msSetError(MS_IMGERR, "Unable to initialize image.","msCreateLegendIcon()");
return(NULL);
}
+ image->map = map;
/* Call drawLegendIcon with destination (0, 0) */
/* Return an empty image if lp==NULL || class=NULL */
/* (If class is NULL draw the legend for all classes. Modifications done */
/* Fev 2004 by AY) */
if (lp) {
-#ifdef USE_GD
- msClearLayerPenValues(lp); /* just in case the mapfile has already been processed */
-#endif
if (class) {
- msDrawLegendIcon(map, lp, class, width, height, image, 0, 0, scale_independant, NULL);
+ if(UNLIKELY(MS_FAILURE == msDrawLegendIcon(map, lp, class, width, height, image, 0, 0, scale_independant, NULL))) {
+ msFreeImage(image);
+ return NULL;
+ }
} else {
for (i=0; i<lp->numclasses; i++) {
- msDrawLegendIcon(map, lp, lp->class[i], width, height, image, 0, 0, scale_independant, NULL);
+ if(UNLIKELY(MS_FAILURE == msDrawLegendIcon(map, lp, lp->class[i], width, height, image, 0, 0, scale_independant, NULL))) {
+ msFreeImage(image);
+ return NULL;
+ }
}
}
}
@@ -419,11 +437,11 @@ imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int wid
*/
int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_y,
int *layer_index, int num_layers, map_hittest *hittest,
- int resolutionfactor)
+ double resolutionfactor)
{
int i, j;
int status, maxwidth=0, nLegendItems=0;
- char *text, *transformedText; /* legend text before/after applying wrapping, encoding if necessary */
+ char *text;
layerObj *lp;
rectObj rect;
int current_layers=0;
@@ -450,7 +468,6 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
for(i=0; i< current_layers; i++) {
int layerindex;
- double lsize;
if (layer_index != NULL && num_layers > 0)
layerindex = layer_index[i];
else
@@ -469,6 +486,7 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
}
for(j=lp->numclasses-1; j>=0; j--) {
+ textSymbolObj ts;
text = lp->class[j]->title?lp->class[j]->title:lp->class[j]->name; /* point to the right legend text, title takes precedence */
if(!text) continue; /* skip it */
@@ -483,33 +501,20 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
}
if(hittest && hittest->layerhits[layerindex].classhits[j].status == 0) continue;
- /*
- * apply encoding and line wrapping to the legend label if requested
- * this is done conditionally as the text transformation function
- * does some memory allocations that can be avoided in most cases.
- * the transformed text must be freed once finished, this must be done
- * conditionnally by testing if the transformed text pointer is the
- * same as the class name pointer
- */
- if(map->legend.label.encoding || map->legend.label.wrap)
- transformedText = msTransformLabelText(map,&map->legend.label, text);
- else
- transformedText = msStrdup(text);
-
- lsize = map->legend.label.size;
- if(map->legend.label.type == MS_TRUETYPE) {
- lsize *= resolutionfactor;
- lsize = MS_MAX(lsize, map->legend.label.minsize*resolutionfactor);
- lsize = MS_MIN(lsize, map->legend.label.maxsize*resolutionfactor);
- }
- if(transformedText == NULL || msGetLabelSize(map, &map->legend.label, transformedText, lsize, &rect, NULL) != MS_SUCCESS) { /* something bad happened */
- if(transformedText) msFree(transformedText);
- return MS_FAILURE;
- }
+ if(*text) {
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts,&map->legend.label,msStrdup(text),lp->scalefactor*resolutionfactor,resolutionfactor, 0);
+ if(UNLIKELY(MS_FAILURE == msGetTextSymbolSize(map,&ts,&rect))) {
+ freeTextSymbol(&ts);
+ return MS_FAILURE;
+ }
+ freeTextSymbol(&ts);
- msFree(transformedText);
- maxwidth = MS_MAX(maxwidth, MS_NINT(rect.maxx - rect.minx));
- *size_y += MS_MAX(MS_NINT(rect.maxy - rect.miny), map->legend.keysizey);
+ maxwidth = MS_MAX(maxwidth, MS_NINT(rect.maxx - rect.minx));
+ *size_y += MS_MAX(MS_NINT(rect.maxy - rect.miny), map->legend.keysizey);
+ } else {
+ *size_y += map->legend.keysizey;
+ }
nLegendItems++;
}
}
@@ -538,7 +543,7 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
*/
imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
{
- int i,j; /* loop counters */
+ int i,j,ret=MS_SUCCESS; /* loop counters */
pointObj pnt;
int size_x, size_y=0;
layerObj *lp;
@@ -549,8 +554,8 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
struct legend_struct {
int height;
- char *transformedText;
- int layerindex,classindex;
+ textSymbolObj ts;
+ int layerindex, classindex;
struct legend_struct* pred;
};
typedef struct legend_struct legendlabel;
@@ -567,8 +572,8 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
* step through all map classes, and for each one that will be displayed
* keep a reference to its label size and text
*/
+
for(i=0; i<map->numlayers; i++) {
- double lsize;
lp = (GET_LAYER(map, map->layerorder[i]));
if((lp->status == MS_OFF) || (lp->type == MS_LAYER_QUERY)) /* skip it */
@@ -586,6 +591,12 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
if((lp->maxgeowidth > 0) && ((map->extent.maxx - map->extent.minx) > lp->maxgeowidth)) continue;
if((lp->mingeowidth > 0) && ((map->extent.maxx - map->extent.minx) < lp->mingeowidth)) continue;
}
+
+ /* set the scale factor so that scale dependant symbols are drawn in the legend with their default size */
+ if(lp->sizeunits != MS_PIXELS) {
+ map->cellsize = msAdjustExtent(&(map->extent), map->width, map->height);
+ lp->scalefactor = (msInchesPerUnit(lp->sizeunits,0)/msInchesPerUnit(map->units,0)) / map->cellsize;
+ }
for(j=lp->numclasses-1; j>=0; j--) {
text = lp->class[j]->title?lp->class[j]->title:lp->class[j]->name; /* point to the right legend text, title takes precedence */
@@ -605,46 +616,30 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
}
cur = (legendlabel*) msSmallMalloc(sizeof(legendlabel));
-
- /*
- * apply encoding and line wrapping to the legend label if requested
- * this is done conditionnally as the text transformation function
- * does some memory allocations that can be avoided in most cases.
- * the transformed text must be freed once finished, this must be done
- * conditionally by testing if the transformed text pointer is the
- * same as the class name pointer
- */
- if(map->legend.label.encoding || map->legend.label.wrap)
- cur->transformedText = msTransformLabelText(map,&map->legend.label,text);
- else
- cur->transformedText = msStrdup(text); /* so we can always do msFree() when cleaning up */
+ initTextSymbol(&cur->ts);
+ if(*text) {
+ msPopulateTextSymbolForLabelAndString(&cur->ts,&map->legend.label,msStrdup(text),lp->scalefactor*map->resolution/map->defresolution,map->resolution/map->defresolution, 0);
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,&cur->ts))) {
+ ret = MS_FAILURE;
+ goto cleanup;
+ }
+ if(UNLIKELY(MS_FAILURE == msGetTextSymbolSize(map,&cur->ts,&rect))) {
+ ret = MS_FAILURE;
+ goto cleanup;
+ }
+ cur->height = MS_MAX(MS_NINT(rect.maxy - rect.miny), map->legend.keysizey);
+ } else {
+ cur->height = map->legend.keysizey;
+ }
cur->classindex = j;
- cur->layerindex = map->layerorder[i];
+ cur->layerindex = i;
cur->pred = head;
head = cur;
-
- lsize = map->legend.label.size;
- if(map->legend.label.type == MS_TRUETYPE) {
- lsize *= lp->scalefactor * map->resolution/map->defresolution;
- lsize = MS_MAX(lsize, map->legend.label.minsize*map->resolution/map->defresolution);
- lsize = MS_MIN(lsize, map->legend.label.maxsize*map->resolution/map->defresolution);
- }
- if(cur->transformedText==NULL ||
- msGetLabelSize(map, &map->legend.label, cur->transformedText, lsize, &rect, NULL) != MS_SUCCESS) { /* something bad happened, free allocated mem */
- while(cur) {
- free(cur->transformedText);
- head = cur;
- cur = cur->pred;
- free(head);
- }
- return(NULL);
- }
-
- cur->height = MS_MAX(MS_NINT(rect.maxy - rect.miny), map->legend.keysizey);
}
}
+
/* ensure we have an image format representing the options for the legend. */
msApplyOutputFormat(&format, map->outputformat, map->legend.transparent, map->legend.interlace, MS_NOOVERRIDE);
@@ -654,19 +649,17 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
msSetError(MS_MISCERR, "Unable to initialize image.", "msDrawLegend()");
return NULL;
}
+ image->map = map;
+
/* image = renderer->createImage(size_x,size_y,format,&(map->legend.imagecolor)); */
/* drop this reference to output format */
msApplyOutputFormat(&format, NULL, MS_NOOVERRIDE, MS_NOOVERRIDE, MS_NOOVERRIDE);
-#ifdef USE_GD
- msClearPenValues(map); /* just in case the mapfile has already been processed */
-#endif
pnt.y = VMARGIN;
pnt.x = HMARGIN + map->legend.keysizex + map->legend.keyspacingx;
while(cur) { /* cur initially points on the last legend item, i.e. the one that should be at the top */
- int number_of_newlines=0, offset=0;
class_hittest *ch = NULL;
/* set the scale factor so that scale dependant symbols are drawn in the legend with their default size */
@@ -677,38 +670,40 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
if(hittest) {
ch = &hittest->layerhits[cur->layerindex].classhits[cur->classindex];
}
- if(msDrawLegendIcon(map, map->layers[cur->layerindex], map->layers[cur->layerindex]->class[cur->classindex], map->legend.keysizex, map->legend.keysizey, image, HMARGIN, (int) pnt.y, scale_independent, ch) != MS_SUCCESS)
- return NULL;
-
- /*
- * adjust the baseline for multiline truetype labels. the label point is the bottom left
- * corner of the *first* line, which we do not know exactly as we only have the
- * bounding box of the whole label. current approach is to suppose that all lines
- * mostly have the same height, and offset the starting point by the mean hight of
- * one line. This isn't perfect but still much better than the previous approach
- */
- if(map->legend.label.type==MS_TRUETYPE && (number_of_newlines=msCountChars(cur->transformedText,'\n')) > 0) {
- offset=cur->height/(number_of_newlines+1);
- pnt.y += offset;
- } else
- pnt.y += cur->height;
-
- /* TODO: note tbonfort: if this todo concerned treating the individual heights of the legend labels, then this is now done */
-
- msDrawLabel(map, image, pnt, cur->transformedText, &(map->legend.label), 1.0 * image->resolutionfactor);
- if(offset) {
- /* if we had multiple lines, adjust the current position so it points to the bottom of the current label */
- pnt.y += cur->height-offset;
+ ret = msDrawLegendIcon(map, map->layers[cur->layerindex], map->layers[cur->layerindex]->class[cur->classindex], map->legend.keysizex, map->legend.keysizey, image, HMARGIN, (int) pnt.y, scale_independent, ch);
+ if(UNLIKELY(ret != MS_SUCCESS))
+ goto cleanup;
+
+ pnt.y += cur->height;
+
+ if(cur->ts.annotext) {
+ pnt.y -= cur->ts.textpath->bounds.bbox.maxy;
+ ret = msDrawTextSymbol(map,image,pnt,&cur->ts);
+ if(UNLIKELY(ret == MS_FAILURE))
+ goto cleanup;
+ pnt.y += cur->ts.textpath->bounds.bbox.maxy;
+ freeTextSymbol(&cur->ts);
}
+
pnt.y += map->legend.keyspacingy; /* bump y for next label */
/* clean up */
- free(cur->transformedText);
head = cur;
cur = cur->pred;
free(head);
} /* next legend */
+cleanup:
+ while(cur) {
+ freeTextSymbol(&cur->ts);
+ head = cur;
+ cur = cur->pred;
+ free(head);
+ }
+ if(UNLIKELY(ret != MS_SUCCESS)) {
+ if(image) msFreeImage(image);
+ return NULL;
+ }
return(image);
}
@@ -747,7 +742,10 @@ int msEmbedLegend(mapObj *map, imageObj *img)
/* render the legend. */
image = msDrawLegend(map, MS_FALSE, NULL);
- if( image == NULL ) return -1;
+ if( image == NULL ) {
+ msFree(imageType);
+ return MS_FAILURE;
+ }
if (imageType) {
map->outputformat = msSelectOutputFormat( map, imageType ); /* restore format */
@@ -764,7 +762,7 @@ int msEmbedLegend(mapObj *map, imageObj *img)
msFreeImage( image );
- if(!legendSymbol->pixmap_buffer) return(-1); /* something went wrong creating scalebar */
+ if(!legendSymbol->pixmap_buffer) return(MS_FAILURE); /* something went wrong creating scalebar */
legendSymbol->type = MS_SYMBOL_PIXMAP; /* intialize a few things */
legendSymbol->name = msStrdup("legend");
@@ -824,9 +822,10 @@ int msEmbedLegend(mapObj *map, imageObj *img)
GET_LAYER(map, l)->status = MS_ON;
if(map->legend.postlabelcache) { /* add it directly to the image */
- if(msMaybeAllocateClassStyle(GET_LAYER(map, l)->class[0], 0)==MS_FAILURE) return MS_FAILURE;
+ if(UNLIKELY(msMaybeAllocateClassStyle(GET_LAYER(map, l)->class[0], 0)==MS_FAILURE)) return MS_FAILURE;
GET_LAYER(map, l)->class[0]->styles[0]->symbol = s;
- msDrawMarkerSymbol(&map->symbolset, img, &point, GET_LAYER(map, l)->class[0]->styles[0], 1.0);
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, img, &point, GET_LAYER(map, l)->class[0]->styles[0], 1.0)))
+ return MS_FAILURE;
} else {
if(!GET_LAYER(map, l)->class[0]->labels) {
if(msGrowClassLabels(GET_LAYER(map, l)->class[0]) == NULL) return MS_FAILURE;
@@ -835,7 +834,6 @@ int msEmbedLegend(mapObj *map, imageObj *img)
GET_LAYER(map, l)->class[0]->labels[0]->force = MS_TRUE;
GET_LAYER(map, l)->class[0]->labels[0]->size = MS_MEDIUM; /* must set a size to have a valid label definition */
GET_LAYER(map, l)->class[0]->labels[0]->priority = MS_MAX_LABEL_PRIORITY;
- GET_LAYER(map, l)->class[0]->labels[0]->annotext = NULL;
}
if(GET_LAYER(map, l)->class[0]->labels[0]->numstyles == 0) {
if(msGrowLabelStyles(GET_LAYER(map,l)->class[0]->labels[0]) == NULL)
@@ -845,11 +843,12 @@ int msEmbedLegend(mapObj *map, imageObj *img)
GET_LAYER(map,l)->class[0]->labels[0]->styles[0]->_geomtransform.type = MS_GEOMTRANSFORM_LABELPOINT;
}
GET_LAYER(map,l)->class[0]->labels[0]->styles[0]->symbol = s;
- msAddLabel(map, GET_LAYER(map, l)->class[0]->labels[0], l, 0, NULL, &point, NULL, -1);
+ if(UNLIKELY(MS_FAILURE == msAddLabel(map, img, GET_LAYER(map, l)->class[0]->labels[0], l, 0, NULL, &point, -1, NULL)))
+ return MS_FAILURE;
}
/* Mark layer as deleted so that it doesn't interfere with html legends or with saving maps */
GET_LAYER(map, l)->status = MS_DELETE;
- return(0);
+ return MS_SUCCESS;
}
diff --git a/maplexer.c b/maplexer.c
index 8b54b19..9773769 100644
--- a/maplexer.c
+++ b/maplexer.c
@@ -1,6 +1,6 @@
-#line 2 "/home/even/mapserver/git/mapserver/maplexer.c"
+#line 2 "/vagrant/maplexer.c"
-#line 4 "/home/even/mapserver/git/mapserver/maplexer.c"
+#line 4 "/vagrant/maplexer.c"
#define YY_INT_ALIGNED short int
@@ -388,8 +388,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 333
-#define YY_END_OF_BUFFER 334
+#define YY_NUM_RULES 345
+#define YY_END_OF_BUFFER 346
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -397,220 +397,229 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1930] =
+static yyconst flex_int16_t yy_accept[2002] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 334, 331, 1, 329, 322, 2, 331, 331,
- 315, 328, 315, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 331, 331, 330,
- 330, 3, 331, 331, 331, 331, 331, 331, 331, 331,
- 331, 331, 331, 331, 331, 331, 331, 1, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 332, 1,
- 1, 6, 327, 332, 327, 332, 316, 316, 10, 7,
-
- 9, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 330, 13,
- 330, 333, 1, 333, 333, 325, 323, 323, 324, 1,
- 2, 0, 320, 315, 315, 328, 315, 328, 0, 328,
- 319, 315, 0, 328, 328, 328, 328, 328, 328, 328,
- 328, 232, 328, 328, 328, 236, 328, 237, 328, 328,
- 242, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 254, 328,
- 328, 257, 328, 258, 328, 328, 328, 328, 328, 328,
-
- 328, 328, 328, 269, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 212, 328, 328, 296, 297, 328, 298, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 0, 308,
- 0, 321, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 346, 343, 1, 341, 334, 2, 343, 343,
+ 327, 340, 327, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 343, 343, 342,
+ 342, 3, 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 1, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 344, 1,
+ 1, 6, 339, 344, 339, 344, 328, 328, 10, 7,
+
+ 9, 344, 344, 344, 344, 344, 344, 344, 344, 344,
+ 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
+ 342, 13, 342, 345, 1, 345, 345, 337, 335, 335,
+ 336, 1, 2, 0, 332, 327, 327, 340, 327, 340,
+ 0, 340, 331, 327, 0, 340, 340, 340, 340, 340,
+ 340, 340, 340, 245, 340, 340, 340, 249, 340, 250,
+ 340, 340, 255, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 268, 340, 340, 271, 340, 272, 340, 340, 340, 340,
+
+ 340, 340, 340, 340, 340, 283, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 223, 340, 340, 309, 310, 340, 311,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 0, 320, 0, 333, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 307, 328, 328, 328, 236, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 269, 328, 328, 328, 328, 328,
-
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 8, 0, 5, 0, 316, 316, 316, 0, 316,
- 0, 12, 14, 7, 11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 9, 16, 12, 10, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 312, 0, 0, 317, 15, 0, 326, 0, 325,
- 323, 323, 324, 315, 0, 0, 328, 315, 319, 318,
- 315, 0, 0, 315, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 238, 328, 328, 328,
-
- 328, 328, 328, 328, 328, 328, 66, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 81,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 122, 123, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 267, 268, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 284, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 328, 290, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 222, 303,
- 328, 224, 304, 328, 0, 0, 0, 0, 0, 0,
- 0, 0, 123, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 222, 0, 306, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 267,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 0, 0, 0, 0, 0, 316, 316, 0, 0,
- 316, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 315, 318, 0,
- 315, 328, 328, 328, 328, 328, 328, 227, 328, 328,
- 328, 328, 328, 328, 328, 231, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 59, 328, 328, 328, 328,
- 63, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 246, 328, 328, 328, 76, 328, 328, 328, 80, 328,
- 328, 328, 83, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 101, 328, 328, 328, 328, 328,
- 328, 328, 328, 255, 328, 256, 328, 126, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 157, 328, 265,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 195,
- 328, 328, 328, 328, 328, 328, 328, 207, 328, 292,
- 328, 328, 328, 328, 294, 218, 328, 328, 328, 328,
- 328, 328, 328, 225, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 195, 0, 0,
-
- 0, 328, 328, 59, 328, 76, 328, 328, 328, 328,
- 328, 328, 328, 195, 328, 328, 294, 313, 0, 316,
+ 0, 0, 0, 319, 340, 340, 249, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 283, 340, 340, 340, 340,
+
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 8, 0, 5, 0, 328, 328, 328, 0,
+ 328, 0, 12, 14, 7, 11, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 0, 0, 11, 9,
+ 16, 0, 12, 0, 10, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 0, 0, 329, 15, 0, 338, 0, 337, 335, 335,
+ 336, 327, 0, 0, 340, 327, 331, 330, 327, 0,
+ 0, 327, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+
+ 340, 340, 340, 340, 251, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 77, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 92, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 133, 134, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 281, 282, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 303,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 235, 316, 340,
+ 237, 317, 340, 0, 0, 0, 0, 0, 0, 0,
+ 0, 134, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 235, 0, 318, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 281, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 0, 0, 0, 0, 0, 328, 328, 0, 0, 328,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 327, 330, 0, 327, 340, 340,
+ 340, 340, 340, 240, 340, 340, 340, 340, 340, 340,
+ 340, 244, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 70, 340, 340, 340, 340, 74, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 259, 340, 340,
+ 340, 87, 340, 340, 340, 91, 340, 340, 340, 94,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 112, 340, 340, 340, 340, 340, 340, 340, 340,
+
+ 340, 269, 340, 270, 340, 137, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 168, 340, 279, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 206, 340, 340,
+ 340, 340, 340, 340, 340, 218, 340, 305, 340, 340,
+ 340, 340, 307, 229, 340, 340, 340, 340, 340, 340,
+
+ 340, 340, 340, 238, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 206, 0, 0,
+ 0, 340, 340, 70, 340, 87, 340, 340, 340, 340,
+ 340, 340, 340, 206, 340, 340, 307, 325, 0, 328,
17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 314, 41, 305, 328, 43, 328, 328,
- 228, 328, 328, 229, 328, 328, 328, 328, 328, 328,
- 234, 328, 51, 328, 55, 328, 328, 328, 328, 328,
- 61, 328, 328, 328, 328, 244, 64, 328, 67, 328,
- 328, 245, 328, 328, 328, 328, 328, 328, 78, 328,
- 328, 248, 328, 328, 86, 249, 328, 328, 88, 328,
-
- 328, 97, 328, 328, 174, 328, 328, 328, 328, 105,
- 253, 328, 115, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 262, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 263, 328,
- 240, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 276, 328, 328,
- 328, 328, 328, 328, 328, 328, 280, 328, 328, 328,
- 328, 328, 328, 328, 328, 282, 283, 188, 328, 328,
- 328, 328, 328, 328, 288, 328, 328, 198, 328, 204,
-
- 328, 328, 328, 328, 211, 328, 328, 328, 328, 299,
- 219, 328, 328, 328, 328, 223, 43, 51, 0, 0,
- 0, 105, 115, 0, 0, 0, 0, 0, 0, 198,
- 0, 219, 328, 55, 328, 328, 328, 328, 328, 328,
- 328, 328, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 21, 0, 0, 0, 0,
- 0, 0, 0, 0, 328, 328, 328, 328, 328, 328,
- 230, 328, 49, 233, 328, 235, 328, 328, 328, 328,
- 56, 328, 328, 328, 328, 328, 328, 62, 328, 328,
- 328, 328, 69, 328, 72, 73, 247, 328, 75, 328,
-
- 328, 328, 328, 87, 250, 328, 328, 328, 328, 328,
- 328, 251, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 114, 116, 117, 328, 328,
- 124, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 259, 328, 260, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 266, 158, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 275, 274, 279, 173, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 281, 328, 183, 328, 328, 328, 328, 328, 328, 328,
-
- 328, 328, 328, 286, 287, 328, 289, 197, 328, 200,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 221, 302, 0, 69, 0, 0, 117, 0,
- 0, 0, 0, 0, 0, 328, 200, 328, 35, 22,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 33, 0, 0, 0, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 54,
- 328, 328, 301, 328, 328, 241, 328, 243, 328, 328,
- 328, 71, 328, 77, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 96, 328, 328, 328, 328, 103,
-
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 119,
- 328, 328, 127, 328, 328, 328, 328, 328, 328, 328,
- 328, 136, 328, 328, 328, 328, 328, 142, 328, 328,
- 328, 328, 328, 328, 328, 153, 328, 328, 328, 328,
- 328, 159, 328, 160, 328, 328, 328, 328, 328, 172,
- 328, 328, 277, 328, 278, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 210, 328, 328, 328, 328, 328, 328, 328,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
-
- 328, 20, 0, 32, 0, 0, 36, 0, 0, 0,
- 0, 0, 0, 0, 30, 0, 0, 309, 328, 328,
- 328, 328, 328, 47, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 65, 328, 328, 328, 328, 328, 328,
- 84, 328, 328, 328, 328, 328, 95, 328, 328, 328,
- 102, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 120, 328, 328, 328, 328, 328, 328, 328, 328, 132,
- 328, 328, 139, 140, 141, 328, 328, 328, 328, 328,
- 328, 149, 328, 328, 156, 264, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 171, 328,
-
- 328, 175, 328, 328, 177, 328, 328, 328, 181, 328,
- 328, 328, 328, 185, 328, 190, 328, 328, 285, 328,
- 328, 328, 328, 328, 328, 328, 205, 94, 328, 209,
- 328, 328, 328, 293, 295, 300, 328, 0, 0, 0,
- 0, 181, 0, 0, 190, 0, 205, 34, 0, 29,
- 37, 0, 0, 31, 24, 0, 19, 0, 0, 328,
- 328, 44, 328, 46, 328, 50, 328, 52, 328, 328,
- 328, 39, 328, 328, 70, 328, 328, 328, 85, 328,
- 92, 93, 328, 90, 328, 99, 100, 328, 328, 328,
- 328, 108, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 328, 328, 328, 135, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 152, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 40, 182,
- 328, 328, 328, 328, 328, 328, 328, 194, 196, 199,
- 328, 203, 328, 208, 213, 217, 328, 328, 0, 0,
- 90, 0, 182, 0, 0, 0, 0, 0, 0, 27,
- 0, 0, 328, 226, 328, 328, 53, 38, 57, 328,
- 328, 68, 74, 328, 328, 89, 328, 98, 104, 252,
- 106, 328, 328, 328, 328, 328, 328, 125, 128, 328,
-
- 328, 328, 328, 328, 328, 328, 328, 143, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 270, 328, 328,
- 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 239, 328, 178, 179, 328, 184, 328, 186, 189,
- 191, 328, 193, 328, 328, 328, 328, 220, 0, 89,
- 179, 186, 0, 23, 26, 28, 25, 0, 0, 42,
- 328, 328, 328, 60, 328, 328, 328, 328, 107, 328,
- 328, 328, 328, 328, 129, 130, 134, 131, 328, 328,
- 328, 138, 144, 328, 151, 148, 328, 328, 155, 328,
- 271, 328, 328, 328, 328, 328, 328, 328, 328, 328,
-
- 169, 328, 273, 291, 328, 180, 328, 192, 201, 328,
- 328, 328, 216, 0, 216, 0, 0, 328, 48, 328,
- 328, 79, 328, 91, 328, 328, 328, 118, 328, 328,
- 328, 137, 328, 328, 154, 328, 328, 161, 162, 163,
- 328, 165, 328, 328, 328, 328, 328, 328, 328, 328,
- 328, 215, 0, 0, 0, 328, 328, 187, 82, 109,
- 111, 113, 328, 328, 133, 328, 150, 261, 272, 328,
- 328, 328, 328, 170, 328, 328, 328, 328, 328, 187,
- 0, 0, 328, 58, 328, 328, 328, 328, 147, 328,
- 166, 167, 328, 176, 145, 328, 328, 214, 0, 310,
-
- 45, 328, 328, 121, 146, 328, 328, 328, 206, 311,
- 328, 328, 328, 328, 202, 328, 328, 328, 328, 110,
- 112, 328, 328, 328, 168, 328, 328, 164, 0
+ 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
+ 0, 326, 49, 340, 51, 340, 340, 241, 340, 340,
+ 242, 340, 340, 340, 340, 340, 340, 247, 340, 59,
+ 340, 63, 340, 340, 340, 340, 340, 340, 340, 72,
+
+ 340, 340, 340, 340, 257, 75, 340, 78, 340, 340,
+ 258, 340, 340, 340, 340, 340, 340, 89, 340, 340,
+ 261, 340, 340, 97, 262, 340, 340, 99, 340, 340,
+ 108, 340, 340, 185, 340, 340, 340, 340, 340, 116,
+ 267, 340, 126, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 276, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 277, 340,
+ 253, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 290, 340, 340,
+
+ 340, 340, 340, 340, 340, 340, 294, 340, 340, 340,
+ 340, 340, 340, 340, 340, 296, 297, 199, 340, 340,
+ 340, 340, 340, 340, 301, 340, 340, 209, 340, 215,
+ 340, 340, 340, 340, 222, 340, 340, 340, 340, 312,
+ 230, 340, 340, 340, 340, 340, 340, 236, 51, 59,
+ 0, 0, 0, 116, 126, 0, 0, 0, 0, 0,
+ 0, 209, 0, 230, 340, 63, 340, 340, 340, 340,
+ 340, 340, 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
+ 0, 23, 0, 21, 0, 0, 0, 0, 22, 0,
+
+ 0, 0, 0, 340, 340, 340, 340, 340, 340, 243,
+ 340, 57, 246, 340, 248, 340, 340, 340, 340, 340,
+ 66, 340, 67, 340, 340, 340, 340, 340, 340, 73,
+ 340, 340, 340, 340, 80, 340, 83, 84, 260, 340,
+ 86, 340, 340, 340, 340, 98, 264, 340, 340, 340,
+ 340, 340, 340, 265, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 125, 127,
+ 128, 340, 340, 135, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 273, 340, 274,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+
+ 340, 340, 340, 340, 340, 280, 169, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 289, 288, 293,
+ 184, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 295, 340, 194, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 299, 300, 340, 302,
+ 208, 340, 211, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 234, 315, 0,
+ 80, 0, 0, 128, 0, 0, 0, 0, 0, 0,
+ 340, 211, 340, 41, 26, 0, 0, 0, 0, 0,
+ 0, 40, 0, 0, 0, 0, 0, 0, 18, 0,
+
+ 0, 0, 0, 0, 38, 0, 0, 0, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 62, 340,
+ 340, 340, 340, 314, 340, 340, 254, 340, 256, 340,
+ 340, 340, 82, 340, 88, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 107, 340, 340, 340, 340,
+ 340, 114, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 130, 340, 340, 138, 340, 340, 340, 340, 340,
+ 340, 340, 340, 147, 340, 340, 340, 340, 340, 153,
+ 340, 340, 340, 340, 340, 340, 340, 164, 340, 340,
+ 340, 340, 340, 170, 340, 171, 340, 340, 340, 340,
+
+ 340, 183, 340, 340, 291, 340, 292, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 221, 340, 340, 340, 340, 340,
+ 231, 232, 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 340, 340, 20, 0, 37, 0, 0,
+ 42, 0, 0, 0, 24, 0, 0, 0, 0, 0,
+ 0, 35, 0, 0, 321, 340, 340, 340, 340, 340,
+ 55, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 76, 340, 340, 340, 340, 340, 340, 95,
+
+ 340, 340, 340, 340, 340, 106, 340, 340, 340, 340,
+ 113, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 131, 340, 340, 340, 340, 340, 340, 340, 340, 143,
+ 340, 340, 150, 151, 152, 340, 340, 340, 340, 340,
+ 340, 160, 340, 340, 167, 278, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 182, 340,
+ 340, 186, 340, 340, 188, 340, 340, 340, 192, 340,
+ 340, 340, 340, 196, 340, 201, 340, 340, 298, 340,
+ 340, 340, 340, 340, 340, 340, 216, 105, 340, 220,
+ 340, 340, 340, 306, 308, 313, 340, 0, 0, 0,
+
+ 0, 192, 0, 0, 201, 0, 216, 39, 0, 34,
+ 25, 43, 0, 0, 0, 36, 28, 0, 19, 0,
+ 0, 340, 340, 52, 340, 54, 340, 58, 340, 60,
+ 340, 340, 65, 340, 340, 47, 340, 340, 81, 340,
+ 340, 340, 96, 340, 103, 104, 340, 101, 340, 110,
+ 111, 340, 340, 340, 340, 340, 119, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 146, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 163, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+
+ 340, 340, 340, 48, 193, 340, 340, 340, 340, 340,
+ 340, 340, 205, 207, 210, 340, 214, 340, 219, 224,
+ 228, 340, 340, 0, 0, 101, 0, 193, 0, 0,
+ 0, 0, 0, 0, 0, 31, 0, 0, 340, 239,
+ 340, 340, 61, 46, 64, 68, 340, 340, 79, 85,
+ 340, 340, 100, 340, 109, 340, 115, 266, 117, 340,
+ 340, 340, 340, 340, 340, 136, 139, 340, 340, 340,
+ 340, 340, 340, 340, 340, 154, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 284, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 252,
+
+ 340, 189, 190, 340, 195, 340, 197, 200, 202, 340,
+ 204, 340, 340, 340, 340, 233, 0, 100, 190, 197,
+ 0, 27, 30, 33, 32, 29, 0, 0, 50, 340,
+ 340, 340, 71, 340, 340, 340, 340, 340, 118, 340,
+ 340, 340, 340, 340, 140, 141, 145, 142, 340, 340,
+ 340, 149, 155, 340, 162, 159, 340, 340, 166, 340,
+ 285, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 180, 340, 287, 304, 340, 191, 340, 203, 212, 340,
+ 340, 340, 227, 0, 227, 0, 0, 340, 56, 340,
+ 340, 90, 340, 102, 340, 340, 340, 340, 129, 340,
+
+ 340, 340, 148, 340, 340, 165, 340, 340, 172, 173,
+ 174, 340, 176, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 226, 0, 0, 0, 340, 340, 198, 93,
+ 263, 120, 122, 124, 340, 340, 144, 340, 161, 275,
+ 286, 340, 340, 340, 340, 181, 340, 340, 340, 340,
+ 340, 198, 0, 0, 340, 69, 340, 340, 340, 340,
+ 158, 340, 177, 178, 340, 187, 156, 340, 340, 225,
+ 0, 322, 53, 340, 340, 132, 157, 340, 340, 340,
+ 217, 323, 340, 340, 340, 340, 213, 340, 340, 340,
+ 340, 121, 123, 340, 340, 340, 179, 340, 340, 175,
+
+ 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -620,15 +629,15 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 5, 6, 7, 8, 1, 1, 9, 10, 11,
12, 13, 14, 1, 15, 16, 17, 18, 18, 19,
- 18, 18, 18, 18, 18, 18, 18, 1, 1, 20,
- 21, 22, 1, 1, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 1, 52, 53, 54, 55, 56, 57,
-
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 1, 1, 1, 1,
+ 18, 18, 18, 18, 18, 18, 18, 20, 1, 21,
+ 22, 23, 1, 1, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 1, 53, 54, 55, 56, 57, 58,
+
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -645,955 +654,986 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[85] =
+static yyconst flex_int32_t yy_meta[86] =
{ 0,
1, 1, 2, 1, 3, 1, 4, 1, 1, 5,
- 1, 1, 1, 1, 6, 7, 7, 7, 7, 1,
- 6, 1, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 1, 8,
- 9, 6, 1, 7, 7, 7, 7, 7, 7, 7,
+ 1, 1, 1, 1, 6, 7, 7, 7, 7, 3,
+ 1, 6, 1, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 1,
- 1, 1, 1, 1
+ 8, 9, 6, 1, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 1, 1, 1, 1, 1
} ;
-static yyconst flex_int16_t yy_base[1949] =
+static yyconst flex_int16_t yy_base[2021] =
{ 0,
- 0, 0, 84, 0, 168, 0, 252, 0, 335, 339,
- 340, 341, 945, 4408, 350, 4408, 4408, 0, 930, 340,
- 342, 400, 357, 351, 400, 460, 421, 468, 401, 484,
- 482, 400, 320, 335, 533, 534, 473, 585, 593, 321,
- 549, 640, 646, 655, 496, 700, 0, 885, 849, 4408,
- 4408, 4408, 329, 333, 341, 375, 391, 520, 406, 394,
- 394, 412, 537, 405, 410, 459, 533, 375, 607, 466,
- 707, 716, 702, 595, 665, 471, 570, 532, 723, 663,
- 476, 752, 761, 724, 763, 772, 782, 538, 4408, 840,
- 846, 906, 835, 872, 827, 836, 838, 842, 796, 350,
-
- 746, 716, 588, 760, 647, 467, 526, 762, 573, 832,
- 835, 762, 639, 832, 648, 714, 838, 321, 680, 744,
- 4408, 4408, 866, 746, 739, 0, 777, 815, 868, 878,
- 0, 717, 700, 888, 893, 0, 895, 620, 686, 953,
- 835, 910, 873, 870, 949, 843, 913, 842, 940, 862,
- 951, 0, 866, 896, 881, 954, 947, 0, 896, 899,
- 0, 960, 955, 952, 955, 987, 970, 950, 1001, 958,
- 1017, 964, 1011, 962, 962, 964, 1015, 1018, 1004, 1027,
- 1018, 1030, 1062, 1027, 1027, 1012, 1026, 1068, 0, 1071,
- 1028, 0, 1036, 0, 1065, 1071, 1113, 1033, 1060, 1077,
-
- 1086, 1074, 1067, 1082, 1091, 1098, 1085, 1102, 1114, 1110,
- 1113, 1118, 1131, 1132, 1137, 1130, 1170, 1141, 1131, 1152,
- 1149, 1148, 1160, 1180, 1165, 1146, 1187, 1162, 1177, 1193,
- 1186, 1189, 1184, 1214, 1186, 0, 0, 1196, 0, 1193,
- 1202, 1213, 1220, 1209, 1225, 1211, 1219, 1238, 617, 4408,
- 566, 560, 1237, 1247, 1243, 1230, 1250, 1253, 1245, 1240,
- 1242, 1253, 1255, 1262, 1238, 1240, 1266, 1259, 1269, 568,
- 1288, 4408, 1263, 1286, 1270, 1275, 1296, 1270, 1285, 1295,
- 1297, 1295, 1300, 1304, 1298, 1313, 1320, 1295, 1323, 1320,
- 1307, 1318, 1312, 1328, 0, 1315, 1331, 1318, 1324, 1343,
-
- 1338, 1338, 1358, 1337, 1367, 1357, 1361, 1360, 1361, 1354,
- 1367, 4408, 534, 4408, 524, 1391, 1395, 1412, 929, 1416,
- 1385, 4408, 4408, 4408, 4408, 1391, 1392, 1373, 1396, 1401,
- 1395, 1413, 1409, 1405, 1408, 4408, 1403, 1410, 4408, 1405,
- 4408, 1425, 1413, 1422, 1421, 1418, 1418, 502, 1442, 1443,
- 1449, 4408, 473, 330, 4408, 4408, 505, 4408, 483, 0,
- 4408, 4408, 4408, 1480, 1487, 530, 564, 795, 1433, 0,
- 1485, 1499, 905, 907, 1451, 1454, 1478, 1475, 1479, 1488,
- 1483, 1488, 1496, 1496, 1498, 1490, 1481, 1499, 1486, 1487,
- 1490, 1506, 1491, 1492, 1497, 1538, 0, 1513, 1494, 1546,
-
- 1497, 1504, 1513, 1518, 1504, 1511, 0, 1533, 1531, 1551,
- 1540, 1540, 1541, 1550, 1551, 1545, 1546, 1564, 1555, 0,
- 1556, 1557, 1552, 1569, 1553, 1573, 1577, 1573, 1577, 1598,
- 1580, 1566, 1583, 1596, 1597, 1605, 1603, 1615, 1614, 1610,
- 1618, 1621, 1606, 1622, 1623, 0, 0, 1618, 1619, 1661,
- 1624, 1642, 1630, 1633, 1715, 1639, 1626, 1631, 1666, 1652,
- 1677, 1670, 1668, 0, 473, 1686, 1689, 1693, 1677, 1677,
- 1680, 1703, 1720, 1701, 1696, 1729, 1723, 1714, 1739, 1726,
- 1738, 1726, 1746, 1748, 1758, 1757, 1746, 1753, 1762, 1757,
- 1760, 0, 1773, 1775, 1765, 1776, 1779, 1774, 1786, 1769,
-
- 1780, 0, 1792, 1783, 1780, 1777, 1795, 1779, 1793, 1801,
- 1793, 1807, 1806, 1808, 1801, 1818, 1820, 1804, 0, 0,
- 1810, 0, 0, 1816, 1821, 1815, 1822, 1838, 1838, 1841,
- 1843, 1844, 4408, 1841, 1835, 1849, 1841, 1845, 1853, 1847,
- 1848, 1846, 4408, 405, 4408, 1848, 1853, 1855, 1869, 1872,
- 1870, 1858, 1861, 1876, 1878, 1886, 1883, 1889, 1890, 1877,
- 1891, 1887, 1902, 1894, 1901, 1907, 1908, 1913, 1900, 1913,
- 1899, 382, 331, 379, 368, 916, 1043, 1924, 1959, 1098,
- 1149, 1927, 1915, 1925, 1919, 1915, 1918, 1934, 1933, 1925,
- 1935, 1948, 1949, 1950, 4408, 1940, 1950, 1949, 1952, 1949,
-
- 1967, 1964, 1953, 1961, 1977, 1015, 1603, 1463, 4408, 1689,
- 1694, 1966, 1980, 1968, 1981, 1967, 1990, 373, 1985, 1974,
- 1982, 1975, 1998, 1983, 2000, 0, 2002, 2009, 2001, 1996,
- 1996, 2001, 2011, 2016, 2011, 2016, 2020, 2010, 2030, 2032,
- 0, 2023, 2036, 2017, 2039, 2027, 2043, 2035, 2048, 2033,
- 0, 2050, 2051, 2044, 2042, 2059, 2062, 2068, 0, 2052,
- 2055, 2068, 2059, 2065, 2074, 2078, 2068, 2084, 2086, 2072,
- 2070, 2087, 2079, 2080, 0, 2088, 2095, 2089, 2093, 2102,
- 2095, 2097, 2111, 0, 2103, 2134, 2113, 0, 2103, 2108,
- 2117, 2124, 2126, 2120, 2134, 2118, 2142, 2138, 2141, 2132,
-
- 2151, 2138, 2139, 2139, 2143, 2149, 2157, 2162, 2164, 2158,
- 2168, 2190, 2172, 2169, 2161, 2174, 2173, 0, 2179, 0,
- 2190, 2196, 2176, 2193, 2194, 2198, 2191, 2201, 2206, 2212,
- 2213, 2208, 2220, 2214, 2205, 2208, 2221, 2209, 2227, 2213,
- 2230, 2235, 2216, 2240, 2242, 2232, 2238, 2235, 2257, 2252,
- 2251, 2244, 2263, 2263, 2266, 2258, 2269, 2263, 2265, 2258,
- 2268, 2264, 2262, 2280, 2272, 2283, 2281, 0, 2282, 0,
- 2285, 2278, 2283, 2289, 2287, 0, 2295, 2293, 2296, 2313,
- 2315, 2308, 2317, 0, 2321, 2310, 2325, 2317, 2330, 2324,
- 2319, 2325, 2336, 2317, 2326, 2333, 2342, 4408, 2344, 2331,
-
- 2333, 2334, 2337, 0, 2344, 0, 2354, 2345, 2355, 2353,
- 2364, 2359, 2354, 0, 2362, 2367, 0, 4408, 2391, 2395,
- 4408, 2368, 2380, 2384, 2396, 2379, 2394, 2386, 2395, 2384,
- 2388, 2389, 2389, 2399, 2408, 2402, 2395, 2399, 2410, 2410,
- 2422, 2391, 2410, 4408, 0, 0, 2404, 0, 2424, 2415,
- 0, 2413, 2424, 0, 2435, 2425, 2439, 2429, 2434, 2452,
- 0, 2454, 2454, 2455, 2447, 2459, 2465, 2448, 2469, 2470,
- 0, 2461, 2455, 2458, 2458, 0, 0, 2470, 0, 2461,
- 2462, 0, 2466, 2481, 2469, 2465, 2484, 2475, 0, 2475,
- 2480, 0, 2500, 2486, 0, 0, 2491, 2509, 2522, 2498,
-
- 2517, 0, 2521, 2511, 0, 2526, 2502, 2529, 2526, 2554,
- 0, 2530, 0, 2528, 2543, 2548, 2535, 2533, 2552, 2541,
- 2549, 2570, 2561, 2559, 2569, 2579, 2584, 2561, 2587, 2577,
- 2588, 2580, 2594, 2578, 0, 2575, 2598, 2580, 2586, 2605,
- 2593, 2589, 2597, 2611, 2587, 2615, 2606, 2618, 0, 2609,
- 0, 2624, 2617, 2610, 2613, 2619, 2618, 2636, 2631, 2626,
- 2646, 2648, 2633, 2638, 2635, 2639, 2643, 2640, 2647, 2648,
- 2657, 2661, 2666, 2659, 2652, 2670, 2668, 2666, 2666, 2682,
- 2675, 2682, 2672, 2677, 2675, 0, 0, 2705, 2680, 2680,
- 2692, 2706, 2708, 2700, 0, 2711, 2698, 2710, 2709, 0,
-
- 2723, 2727, 2715, 2712, 0, 2731, 2727, 2729, 2712, 0,
- 0, 2721, 2745, 2730, 2733, 0, 4408, 4408, 2734, 2734,
- 2755, 4408, 4408, 2753, 2759, 2752, 2764, 2749, 2769, 4408,
- 2757, 4408, 2769, 0, 2759, 2778, 2761, 2777, 2786, 2771,
- 2779, 2791, 2790, 2779, 2792, 2790, 2798, 2787, 2799, 2802,
- 2808, 2814, 2797, 2811, 2819, 4408, 2815, 2819, 2822, 2827,
- 2819, 2808, 2832, 2836, 2824, 2823, 2836, 2833, 2829, 2840,
- 0, 2847, 0, 0, 2834, 0, 2838, 2837, 2841, 2859,
- 0, 2847, 2850, 2849, 2856, 2853, 2860, 0, 2872, 2864,
- 2862, 2873, 0, 2881, 0, 2880, 0, 2872, 0, 2878,
-
- 2893, 2874, 2891, 0, 0, 2882, 2887, 2902, 2884, 2882,
- 2892, 0, 2906, 2902, 2914, 2915, 2911, 2914, 2918, 2902,
- 2928, 2915, 2911, 2931, 2930, 0, 0, 2931, 2923, 2934,
- 2925, 2929, 2932, 2934, 2935, 2933, 2952, 2951, 2941, 2952,
- 2960, 2963, 2953, 2952, 0, 2953, 0, 2960, 2958, 2959,
- 2960, 2961, 2960, 2979, 2984, 2980, 2988, 2990, 2981, 2979,
- 2989, 3001, 0, 0, 3000, 374, 2981, 2991, 3008, 3010,
- 2992, 3006, 3005, 3000, 0, 0, 0, 0, 3015, 3012,
- 3012, 3010, 3026, 3032, 3015, 3019, 3019, 3025, 3041, 3023,
- 0, 3031, 0, 3024, 3049, 3049, 3035, 3055, 3054, 3046,
-
- 3058, 3061, 3066, 0, 0, 3059, 0, 0, 3052, 3056,
- 3058, 3059, 3077, 3077, 3064, 3074, 3074, 3090, 3081, 3080,
- 3092, 3080, 0, 0, 3086, 4408, 3087, 3079, 4408, 3085,
- 3106, 3094, 3095, 3115, 3116, 3093, 0, 3101, 4408, 4408,
- 3098, 3111, 3107, 3124, 3116, 3120, 3113, 3128, 3136, 4408,
- 3126, 3137, 3125, 3131, 3131, 4408, 3148, 3150, 335, 3138,
- 3149, 3158, 3141, 3158, 3145, 3151, 3162, 3154, 3165, 0,
- 3164, 3171, 0, 3163, 3178, 0, 3175, 0, 3181, 3182,
- 3177, 0, 3176, 0, 3183, 3188, 3191, 3188, 3193, 3202,
- 3187, 3207, 3194, 3200, 0, 3206, 3212, 3205, 3215, 0,
-
- 3212, 3219, 3222, 3208, 3223, 3205, 3217, 3215, 3225, 0,
- 3228, 3236, 0, 3238, 3248, 3229, 3244, 3236, 3238, 3249,
- 3259, 0, 3256, 3254, 3259, 3267, 3264, 0, 3261, 3271,
- 3253, 3266, 3259, 3259, 3277, 0, 3274, 3274, 3279, 3283,
- 3278, 0, 3278, 0, 3278, 3304, 3287, 3313, 3285, 0,
- 3308, 3305, 0, 3298, 0, 3301, 3318, 3304, 3321, 3322,
- 3316, 3320, 3332, 3336, 3336, 3335, 3326, 3339, 3331, 3336,
- 3341, 3349, 3340, 3347, 3344, 3346, 3364, 3368, 3369, 3369,
- 3373, 3369, 0, 3382, 3370, 3371, 3385, 3386, 3374, 3384,
- 3382, 3384, 3382, 3390, 3385, 3400, 3397, 3389, 3392, 3433,
-
- 3406, 4408, 3393, 4408, 3400, 3395, 4408, 3398, 3417, 3425,
- 3412, 3408, 3430, 3433, 4408, 3439, 3443, 4408, 3438, 3435,
- 3432, 3439, 3441, 0, 3438, 3440, 3439, 3448, 3456, 3450,
- 3464, 3468, 3453, 0, 3461, 3463, 3475, 3468, 3471, 3488,
- 0, 3480, 3492, 3490, 3487, 3496, 0, 3501, 3498, 3487,
- 0, 3495, 3492, 3504, 3500, 3501, 3496, 3497, 3496, 3500,
- 3507, 3496, 3497, 3511, 3509, 3527, 3513, 3528, 3537, 3535,
- 3520, 3549, 0, 0, 0, 3526, 3541, 3539, 3555, 3538,
- 3553, 3559, 3542, 3564, 0, 0, 3555, 3570, 3558, 3573,
- 3560, 3567, 3559, 3577, 3564, 3584, 3559, 3573, 0, 3577,
-
- 3568, 0, 3572, 3585, 0, 3586, 3586, 3591, 0, 3599,
- 3609, 3597, 3600, 0, 3606, 0, 3607, 3618, 0, 3613,
- 3600, 3619, 3611, 3620, 3633, 3616, 3621, 0, 3614, 0,
- 3634, 3627, 3636, 0, 0, 0, 3627, 3623, 3631, 3642,
- 3634, 4408, 3646, 3640, 4408, 3654, 0, 4408, 3657, 4408,
- 4408, 3636, 3643, 4408, 3650, 3673, 4408, 3667, 3669, 3662,
- 3669, 0, 3680, 0, 3672, 0, 3671, 0, 3683, 3675,
- 3674, 0, 3675, 3685, 0, 3687, 3692, 3696, 0, 3685,
- 0, 0, 3695, 0, 3690, 0, 0, 3701, 3690, 3706,
- 3712, 0, 3714, 3718, 3713, 3711, 3724, 3722, 3723, 3726,
-
- 3731, 3718, 3740, 0, 3727, 3740, 3737, 3727, 3744, 3747,
- 3746, 3734, 3756, 0, 3756, 3753, 3743, 3755, 3751, 3761,
- 3748, 3758, 3767, 3760, 3772, 3767, 3759, 3770, 3766, 3761,
- 3776, 3785, 3786, 3786, 3797, 3796, 3791, 3806, 0, 0,
- 3793, 3789, 3797, 3799, 3799, 3801, 3814, 0, 0, 0,
- 3811, 0, 3823, 0, 3804, 0, 3812, 3813, 3808, 3812,
- 4408, 3818, 4408, 3819, 3821, 3832, 3836, 3826, 3826, 4408,
- 3836, 3833, 3829, 0, 3848, 3852, 0, 0, 3840, 3853,
- 3860, 0, 0, 3855, 3856, 0, 3853, 0, 0, 0,
- 0, 3854, 3874, 3877, 3863, 3884, 3862, 0, 0, 3882,
-
- 3869, 3881, 3878, 3891, 3879, 3890, 3890, 0, 3891, 3878,
- 3891, 3891, 3893, 3904, 3905, 3899, 3888, 0, 3905, 3900,
- 3902, 3928, 3920, 3917, 3914, 3916, 3924, 3932, 3938, 3924,
- 3927, 0, 3947, 0, 0, 3929, 0, 3949, 0, 0,
- 0, 3933, 0, 3947, 3934, 3941, 3953, 0, 3948, 4408,
- 4408, 4408, 3938, 4408, 4408, 4408, 4408, 3940, 3963, 0,
- 3950, 3950, 3950, 0, 3961, 3963, 3966, 3966, 0, 3981,
- 3982, 3990, 3977, 3979, 0, 0, 0, 0, 3985, 3985,
- 3997, 0, 0, 3996, 0, 0, 3994, 4005, 0, 4006,
- 0, 4011, 3995, 4006, 3996, 4010, 4000, 4010, 4011, 4012,
-
- 0, 4008, 0, 0, 4024, 0, 4018, 0, 4030, 4015,
- 4028, 4013, 0, 4024, 4408, 4044, 4030, 4034, 0, 4039,
- 4043, 0, 4047, 0, 4056, 4057, 4045, 0, 4058, 4064,
- 4059, 0, 4048, 4062, 0, 4057, 4066, 0, 0, 0,
- 4061, 0, 4054, 4055, 4068, 4071, 4077, 4086, 4085, 4089,
- 4076, 0, 4083, 4075, 4094, 4085, 4103, 0, 0, 4111,
- 4113, 0, 4092, 4107, 0, 4117, 0, 0, 0, 4109,
- 4121, 4124, 4128, 0, 4129, 4130, 4122, 4119, 4119, 4408,
- 4142, 321, 4123, 0, 4137, 4138, 4139, 4140, 0, 4130,
- 0, 0, 4149, 0, 0, 4139, 4142, 0, 302, 4408,
-
- 0, 4144, 4145, 0, 0, 4147, 4147, 4150, 0, 4408,
- 4155, 4162, 4175, 4168, 0, 4168, 4171, 4183, 4173, 0,
- 0, 4176, 4177, 4184, 0, 4182, 4180, 0, 4408, 4251,
- 4260, 4269, 4278, 4282, 4289, 4298, 4307, 4310, 4319, 4328,
- 4337, 4346, 4355, 4364, 4371, 4380, 4389, 4398
+ 0, 0, 85, 0, 170, 0, 255, 0, 339, 343,
+ 344, 345, 1180, 4548, 354, 4548, 4548, 0, 1116, 344,
+ 346, 405, 361, 355, 403, 465, 405, 401, 470, 477,
+ 488, 330, 319, 411, 528, 529, 416, 580, 588, 325,
+ 544, 635, 590, 644, 417, 693, 0, 1068, 986, 4548,
+ 4548, 4548, 333, 336, 344, 346, 398, 471, 426, 410,
+ 408, 425, 532, 420, 467, 482, 496, 379, 530, 489,
+ 698, 649, 694, 716, 641, 491, 534, 527, 745, 583,
+ 538, 706, 754, 605, 758, 756, 762, 640, 4548, 576,
+ 630, 1043, 1009, 1004, 948, 672, 784, 823, 926, 363,
+
+ 916, 691, 752, 775, 799, 587, 816, 790, 647, 662,
+ 818, 796, 809, 699, 827, 828, 752, 766, 831, 328,
+ 853, 920, 4548, 4548, 870, 918, 912, 0, 821, 828,
+ 886, 897, 0, 908, 896, 887, 891, 0, 893, 899,
+ 869, 952, 863, 911, 909, 871, 948, 873, 914, 891,
+ 940, 907, 950, 0, 912, 944, 940, 963, 953, 0,
+ 939, 943, 0, 967, 962, 959, 962, 1004, 974, 970,
+ 1001, 995, 1017, 1004, 1011, 1009, 1011, 1013, 1029, 1030,
+ 1012, 1032, 1022, 1034, 1064, 1035, 1032, 1025, 1032, 1067,
+ 0, 1076, 1064, 0, 1072, 0, 1070, 1076, 1116, 1078,
+
+ 1072, 1080, 1088, 1089, 1085, 1102, 1111, 1130, 1115, 1134,
+ 1122, 1123, 1120, 1124, 1137, 1138, 1143, 1136, 1176, 1147,
+ 1137, 1162, 1153, 1167, 1177, 1168, 1153, 1200, 1190, 1185,
+ 1200, 1191, 1196, 1194, 1229, 1193, 0, 0, 1202, 0,
+ 1206, 1199, 1206, 1217, 1225, 1212, 1232, 1224, 1226, 1251,
+ 800, 4548, 727, 704, 1246, 1253, 1249, 1237, 1258, 1262,
+ 1253, 1247, 1250, 1261, 1273, 1267, 1244, 1246, 1271, 1264,
+ 1272, 697, 527, 4548, 1286, 1274, 1277, 1268, 1269, 1292,
+ 1305, 1308, 1299, 1302, 1313, 1301, 1316, 1331, 1296, 1320,
+ 1320, 1310, 1320, 1312, 1329, 0, 1316, 1334, 1321, 1318,
+
+ 1335, 1334, 1338, 1359, 1336, 1367, 1356, 1363, 1369, 1362,
+ 1356, 1369, 4548, 690, 4548, 671, 1399, 1418, 1401, 1430,
+ 1433, 1448, 4548, 4548, 4548, 4548, 1375, 1379, 1363, 1395,
+ 1389, 1401, 1411, 1415, 1406, 1419, 1418, 1426, 1428, 4548,
+ 1436, 1424, 1435, 1427, 4548, 1431, 4548, 1447, 1432, 1444,
+ 1444, 1444, 1439, 1448, 1446, 667, 1469, 1470, 1471, 4548,
+ 641, 469, 4548, 4548, 637, 4548, 629, 0, 4548, 4548,
+ 4548, 1508, 1516, 368, 681, 728, 1465, 0, 1519, 1525,
+ 913, 923, 1468, 1470, 1480, 1503, 1510, 1507, 1514, 1522,
+ 1522, 1524, 1516, 1507, 1525, 1512, 1513, 1516, 1532, 1517,
+
+ 1518, 1523, 1523, 1534, 0, 1540, 1521, 1573, 1523, 1530,
+ 1538, 1546, 1532, 1560, 0, 1565, 1563, 1579, 1567, 1567,
+ 1568, 1577, 1578, 1572, 1573, 1591, 1582, 0, 1583, 1584,
+ 1579, 1596, 1580, 1599, 1599, 1598, 1601, 1601, 1605, 1594,
+ 1611, 1623, 1623, 1628, 1634, 1631, 1643, 1642, 1638, 1646,
+ 1648, 1634, 1650, 1651, 0, 0, 1646, 1647, 1689, 1652,
+ 1670, 1658, 1661, 1743, 1664, 1652, 1659, 1694, 1685, 1705,
+ 1698, 1696, 0, 621, 1714, 1717, 1721, 1705, 1705, 1708,
+ 1731, 1748, 1731, 1743, 1757, 1751, 1752, 1767, 1754, 1766,
+ 1754, 1774, 1776, 1786, 1785, 1774, 1781, 1791, 1786, 1794,
+
+ 1802, 1807, 1793, 1805, 1809, 1803, 1816, 1799, 1808, 0,
+ 1820, 1812, 1809, 1808, 1824, 1807, 1821, 1829, 1821, 1835,
+ 1834, 1836, 1829, 1843, 1856, 1852, 1838, 0, 0, 1842,
+ 0, 0, 1852, 1857, 1852, 1856, 1871, 1870, 1874, 1876,
+ 1877, 4548, 1874, 1867, 1881, 1872, 1878, 1886, 1882, 1881,
+ 1876, 4548, 578, 4548, 1878, 1883, 1887, 1902, 1905, 1904,
+ 1891, 1894, 1912, 1912, 1918, 1922, 1919, 1925, 1914, 1923,
+ 1918, 1933, 1925, 1934, 1940, 1941, 1945, 1932, 1944, 1932,
+ 465, 686, 342, 783, 925, 1156, 1963, 1990, 1490, 1664,
+ 1952, 1941, 1951, 1947, 1943, 1946, 1965, 1963, 1956, 1988,
+
+ 1971, 1973, 1980, 1990, 1977, 1993, 1999, 1994, 1998, 4548,
+ 1987, 1992, 1992, 1994, 1990, 2008, 2007, 2008, 2006, 1996,
+ 2001, 2017, 816, 826, 1669, 4548, 1718, 1723, 2005, 2007,
+ 2022, 2013, 2034, 372, 2031, 2032, 2040, 2032, 2054, 2037,
+ 2052, 0, 2054, 2059, 2049, 2043, 2043, 2047, 2061, 2059,
+ 2065, 2056, 2056, 2066, 2054, 2072, 2073, 0, 2064, 2077,
+ 2059, 2085, 2077, 2092, 2086, 2108, 2093, 0, 2111, 2112,
+ 2103, 2100, 2116, 2117, 2122, 0, 2104, 2105, 2118, 2110,
+ 2114, 2124, 2128, 2114, 2130, 2131, 2116, 2114, 2130, 2122,
+ 2122, 0, 2137, 2130, 2166, 2133, 2145, 2154, 2147, 2158,
+
+ 2173, 0, 2165, 2177, 2176, 0, 2165, 2169, 2176, 2181,
+ 2184, 2177, 2187, 2172, 2218, 2190, 2188, 2177, 2195, 2182,
+ 2182, 2182, 2185, 2189, 2196, 2214, 2219, 2223, 2233, 2238,
+ 2235, 2233, 2225, 2235, 2233, 0, 2237, 0, 2247, 2244,
+ 2231, 2245, 2244, 2248, 2239, 2249, 2253, 2258, 2259, 2253,
+ 2265, 2258, 2261, 2265, 2279, 2269, 2292, 2282, 2296, 2297,
+ 2278, 2300, 2301, 2289, 2293, 2289, 2309, 2302, 2301, 2295,
+ 2312, 2313, 2316, 2306, 2317, 2311, 2312, 2304, 2314, 2309,
+ 2307, 2324, 2328, 2340, 2349, 0, 2353, 0, 2343, 2333,
+ 2344, 2350, 2346, 0, 2353, 2349, 2368, 2350, 2352, 2369,
+
+ 2370, 2362, 2370, 0, 2375, 2362, 2378, 2370, 2380, 2374,
+ 2369, 2374, 2384, 2365, 2373, 2393, 2402, 4548, 2405, 2394,
+ 2404, 2405, 2407, 0, 2412, 0, 2422, 2410, 2420, 2418,
+ 2426, 2420, 2413, 0, 2419, 2423, 0, 4548, 2444, 2447,
+ 4548, 2423, 2440, 2437, 2446, 2429, 2444, 2435, 2443, 2440,
+ 2448, 2447, 2449, 2452, 2468, 2454, 2454, 2454, 2457, 2473,
+ 2482, 2475, 2468, 2471, 2482, 4548, 2473, 2483, 2495, 2464,
+ 2479, 4548, 0, 2479, 0, 2498, 2495, 0, 2491, 2501,
+ 0, 2510, 2496, 2508, 2496, 2497, 2522, 0, 2524, 2524,
+ 2527, 2516, 2526, 2520, 2530, 2544, 2527, 2548, 2549, 0,
+
+ 2539, 2533, 2535, 2535, 0, 0, 2546, 0, 2538, 2539,
+ 0, 2543, 2565, 2553, 2549, 2568, 2556, 0, 2555, 2558,
+ 0, 2574, 2567, 0, 0, 2573, 2588, 2596, 2575, 2591,
+ 0, 2595, 2589, 0, 2585, 2597, 2584, 2613, 2610, 2646,
+ 0, 2605, 0, 2602, 2619, 2630, 2619, 2617, 2633, 2613,
+ 2619, 2638, 2638, 2636, 2643, 2653, 2659, 2635, 2661, 2658,
+ 2668, 2660, 2673, 2656, 0, 2651, 2674, 2654, 2660, 2680,
+ 2667, 2665, 2679, 2695, 2671, 2696, 2686, 2696, 0, 2685,
+ 0, 2708, 2702, 2695, 2697, 2703, 2699, 2715, 2707, 2702,
+ 2722, 2724, 2708, 2719, 2715, 2719, 2722, 2718, 2723, 2724,
+
+ 2731, 2754, 2742, 2735, 2728, 2752, 2767, 2749, 2741, 2755,
+ 2747, 2753, 2756, 2759, 2758, 0, 0, 2779, 2762, 2761,
+ 2769, 2782, 2783, 2781, 0, 2791, 2778, 2789, 2788, 0,
+ 2800, 2801, 2803, 2787, 0, 2805, 2818, 2802, 2795, 0,
+ 0, 2801, 2817, 2805, 2834, 2819, 2821, 0, 4548, 4548,
+ 2822, 2822, 2840, 4548, 4548, 2840, 2842, 2833, 2842, 2828,
+ 2848, 4548, 2841, 4548, 2852, 0, 2838, 2859, 2841, 2877,
+ 2866, 2849, 2859, 2878, 2878, 2865, 2878, 2876, 2882, 2878,
+ 2888, 2891, 2882, 4548, 2900, 2899, 2904, 2905, 2888, 2905,
+ 2901, 4548, 2910, 4548, 2903, 2911, 2911, 2916, 4548, 2908,
+
+ 2894, 2926, 2920, 2914, 2913, 2932, 2929, 2925, 2934, 0,
+ 2941, 0, 0, 2928, 0, 2936, 2937, 2940, 2958, 2950,
+ 0, 2954, 0, 2945, 2948, 2947, 2954, 2949, 2955, 0,
+ 2966, 2959, 2955, 2971, 0, 2976, 0, 2973, 0, 2963,
+ 0, 2969, 2985, 2966, 2986, 0, 0, 2977, 2980, 3002,
+ 2985, 2982, 2990, 0, 3004, 2998, 3015, 3018, 3016, 3014,
+ 3019, 3022, 3007, 3027, 3014, 3010, 3034, 3026, 0, 0,
+ 3026, 3017, 3027, 3023, 3025, 3026, 3026, 3028, 3026, 3048,
+ 3047, 3039, 3053, 3063, 3065, 3054, 3051, 0, 3052, 0,
+ 3062, 3062, 3063, 3063, 3066, 3064, 3084, 3083, 3079, 3087,
+
+ 3089, 3078, 3075, 3085, 3097, 0, 0, 3099, 360, 3080,
+ 3087, 3102, 3102, 3085, 3099, 3101, 3096, 0, 0, 0,
+ 0, 3113, 3113, 3115, 3112, 3127, 3131, 3114, 3121, 3123,
+ 3129, 3144, 3128, 0, 3135, 0, 3129, 3148, 3148, 3134,
+ 3154, 3151, 3142, 3154, 3170, 3159, 0, 0, 3157, 0,
+ 0, 3147, 3149, 3149, 3150, 3168, 3172, 3159, 3167, 3177,
+ 3192, 3182, 3179, 3195, 3189, 3200, 3186, 0, 0, 3192,
+ 4548, 3195, 3186, 4548, 3193, 3213, 3201, 3196, 3216, 3217,
+ 3194, 0, 3201, 4548, 4548, 3197, 3214, 3210, 3225, 3217,
+ 3218, 4548, 3233, 3211, 3227, 3224, 3238, 3233, 4548, 3238,
+
+ 3249, 3237, 3243, 3239, 4548, 3261, 3262, 316, 3253, 3260,
+ 3271, 3252, 3270, 3257, 3262, 3273, 3264, 3275, 0, 3267,
+ 3263, 3264, 3283, 0, 3273, 3287, 0, 3284, 0, 3290,
+ 3292, 3287, 0, 3285, 0, 3297, 3302, 3305, 3302, 3307,
+ 3316, 3301, 3321, 3310, 3317, 0, 3323, 3328, 3322, 3330,
+ 3332, 0, 3329, 3334, 3337, 3323, 3337, 3319, 3331, 3329,
+ 3339, 0, 3341, 3347, 0, 3349, 3358, 3342, 3355, 3349,
+ 3355, 3366, 3374, 0, 3371, 3369, 3374, 3382, 3379, 0,
+ 3379, 3390, 3371, 3384, 3378, 3377, 3394, 0, 3391, 3389,
+ 3394, 3398, 3392, 0, 3392, 0, 3392, 3414, 3401, 3438,
+
+ 3399, 0, 3420, 3419, 0, 3415, 0, 3423, 3438, 3419,
+ 3436, 3437, 3432, 3438, 3450, 3455, 3454, 3452, 3443, 3454,
+ 3446, 3451, 3455, 3463, 3454, 3461, 3458, 3459, 3475, 3499,
+ 3478, 3479, 3486, 3486, 0, 3500, 3487, 3488, 3502, 3503,
+ 0, 0, 3494, 3504, 3503, 3504, 3501, 3510, 3504, 3518,
+ 3514, 3506, 3507, 3526, 3521, 4548, 3508, 4548, 3517, 3512,
+ 4548, 3524, 3522, 3540, 4548, 3550, 3552, 3545, 3540, 3557,
+ 3560, 4548, 3564, 3556, 4548, 3561, 3559, 3556, 3563, 3565,
+ 0, 3561, 3563, 3561, 3570, 3579, 3582, 3583, 3574, 3585,
+ 3586, 3573, 0, 3587, 3589, 3599, 3587, 3592, 3610, 0,
+
+ 3601, 3618, 3616, 3614, 3622, 0, 3627, 3624, 3611, 3617,
+ 0, 3618, 3618, 3629, 3626, 3627, 3622, 3624, 3623, 3627,
+ 3635, 3623, 3624, 3637, 3634, 3649, 3634, 3656, 3664, 3662,
+ 3647, 3672, 0, 0, 0, 3651, 3664, 3667, 3682, 3666,
+ 3681, 3686, 3669, 3691, 0, 0, 3680, 3693, 3684, 3698,
+ 3686, 3693, 3685, 3704, 3691, 3706, 3689, 3702, 0, 3705,
+ 3694, 0, 3697, 3706, 0, 3712, 3713, 3718, 0, 3722,
+ 3734, 3720, 3728, 0, 3733, 0, 3735, 3746, 0, 3740,
+ 3727, 3746, 3736, 3743, 3759, 3741, 3747, 0, 3740, 0,
+ 3760, 3754, 3763, 0, 0, 0, 3754, 3751, 3758, 3769,
+
+ 3760, 4548, 3771, 3762, 4548, 3775, 0, 4548, 3785, 4548,
+ 4548, 4548, 3763, 3770, 3777, 4548, 3781, 3800, 4548, 3797,
+ 3798, 3788, 3798, 0, 3809, 0, 3801, 0, 3799, 0,
+ 3811, 3799, 0, 3804, 3804, 0, 3803, 3811, 0, 3816,
+ 3821, 3825, 0, 3816, 0, 0, 3826, 0, 3820, 0,
+ 0, 3818, 3831, 3820, 3837, 3849, 0, 3848, 3849, 3846,
+ 3844, 3857, 3854, 3858, 3861, 3866, 3852, 3873, 0, 3859,
+ 3871, 3868, 3858, 3874, 3877, 3879, 3865, 3886, 0, 3886,
+ 3883, 3873, 3887, 3883, 3893, 3879, 3888, 3897, 3891, 3909,
+ 3901, 3890, 3903, 3899, 3894, 3908, 3920, 3921, 3921, 3931,
+
+ 3929, 3923, 3937, 0, 0, 3924, 3920, 3927, 3929, 3932,
+ 3932, 3944, 0, 0, 0, 3941, 0, 3953, 0, 3934,
+ 0, 3944, 3945, 3940, 3943, 4548, 3948, 4548, 3949, 3952,
+ 3969, 3970, 3957, 3959, 3961, 4548, 3970, 3969, 3963, 0,
+ 3984, 3994, 0, 0, 0, 3976, 3986, 3992, 0, 0,
+ 3987, 3988, 0, 3984, 0, 3999, 0, 0, 0, 3989,
+ 4010, 4014, 3998, 4016, 3996, 0, 0, 4016, 4003, 4015,
+ 4012, 4024, 4014, 4025, 4025, 0, 4031, 4018, 4030, 4029,
+ 4029, 4040, 4040, 4037, 4025, 0, 4048, 4043, 4042, 4062,
+ 4053, 4050, 4047, 4051, 4059, 4068, 4075, 4059, 4059, 0,
+
+ 4081, 0, 0, 4063, 0, 4083, 0, 0, 0, 4067,
+ 0, 4081, 4067, 4076, 4100, 0, 4082, 4548, 4548, 4548,
+ 4072, 4548, 4548, 4548, 4548, 4548, 4100, 4096, 0, 4084,
+ 4080, 4081, 0, 4092, 4097, 4094, 4099, 4106, 0, 4115,
+ 4116, 4127, 4113, 4116, 0, 0, 0, 0, 4125, 4125,
+ 4136, 0, 0, 4135, 0, 0, 4130, 4141, 0, 4142,
+ 0, 4147, 4131, 4144, 4133, 4147, 4138, 4151, 4152, 4153,
+ 0, 4150, 0, 0, 4164, 0, 4154, 0, 4165, 4153,
+ 4165, 4156, 0, 4167, 4548, 4177, 4168, 4176, 0, 4173,
+ 4176, 0, 4182, 0, 4176, 4197, 4198, 4188, 0, 4199,
+
+ 4202, 4197, 0, 4185, 4201, 0, 4196, 4204, 0, 0,
+ 0, 4200, 0, 4196, 4197, 4210, 4215, 4220, 4226, 4225,
+ 4226, 4215, 0, 4222, 4222, 4239, 4228, 4245, 0, 0,
+ 0, 4248, 4252, 0, 4231, 4251, 0, 4259, 0, 0,
+ 0, 4250, 4264, 4265, 4266, 0, 4267, 4268, 4262, 4259,
+ 4259, 4548, 4277, 309, 4262, 0, 4279, 4280, 4281, 4284,
+ 0, 4269, 0, 0, 4288, 0, 0, 4277, 4279, 0,
+ 290, 4548, 0, 4283, 4284, 0, 0, 4285, 4290, 4297,
+ 0, 4548, 4297, 4299, 4314, 4307, 0, 4312, 4313, 4324,
+ 4316, 0, 0, 4317, 4315, 4322, 0, 4320, 4319, 0,
+
+ 4548, 4391, 4400, 4409, 4418, 4422, 4429, 4438, 4447, 4450,
+ 4459, 4468, 4477, 4486, 4495, 4504, 4511, 4520, 4529, 4538
} ;
-static yyconst flex_int16_t yy_def[1949] =
+static yyconst flex_int16_t yy_def[2021] =
{ 0,
- 1929, 1, 1929, 3, 1929, 5, 1929, 7, 1930, 1930,
- 1931, 1931, 1929, 1929, 1929, 1929, 1929, 1932, 1933, 1929,
- 1934, 1935, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1936, 1937, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1938, 1929, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 35, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
-
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1940, 1929, 1929,
- 1929, 1929, 1929, 1941, 1942, 1943, 1929, 1929, 1929, 1929,
- 1932, 1933, 1933, 1929, 1929, 1934, 1934, 1934, 1944, 1935,
- 1934, 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1936, 1929,
- 1937, 1937, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1945,
- 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1929, 1946, 1929, 1947, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1939,
- 1939, 1929, 1940, 1948, 1929, 1929, 1941, 1929, 1942, 1943,
- 1929, 1929, 1929, 1929, 1929, 1929, 1934, 1934, 1929, 1934,
- 1929, 1929, 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1945, 1929, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1946, 1946, 1947, 1947, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
-
- 1929, 1929, 1939, 1939, 1939, 1948, 1948, 1929, 1929, 1929,
- 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
-
- 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1939, 1939, 1939, 1929, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1939, 1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1934, 1934, 1934, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1939, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1934,
-
- 1934, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1929, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1934, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1929, 1929, 1939, 1939, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1929, 1939, 1939, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929,
- 1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1939, 1929,
-
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
- 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 0, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929
+ 2001, 1, 2001, 3, 2001, 5, 2001, 7, 2002, 2002,
+ 2003, 2003, 2001, 2001, 2001, 2001, 2001, 2004, 2005, 2001,
+ 2006, 2007, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2008, 2009, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2010, 2001, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 35, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 44, 2006, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2012,
+ 2001, 2001, 2001, 2001, 2001, 2013, 2014, 2015, 2001, 2001,
+ 2001, 2001, 2004, 2005, 2005, 2001, 2001, 2006, 2006, 2006,
+ 2016, 2007, 2006, 2001, 2001, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2008, 2001, 2009, 2009, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2017, 2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2001, 2018, 2001, 2019, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2011, 2011, 2001,
+ 2012, 2020, 2001, 2001, 2013, 2001, 2014, 2015, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2006, 2006, 2001, 2006, 2001, 2001,
+ 2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2017, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2018, 2018, 2019, 2019, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011,
+ 2011, 2011, 2020, 2020, 2001, 2001, 2001, 2001, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011,
+ 2011, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2011, 2011, 2011, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2011, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2006, 2006, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2011, 2011, 2001, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2001, 2006, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2011,
+ 2011, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2011, 2011, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2001, 2001, 2011, 2011, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2001, 2011, 2011, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2001, 2011, 2011, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2011, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2001, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+
+ 0, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001
} ;
-static yyconst flex_int16_t yy_nxt[4493] =
+static yyconst flex_int16_t yy_nxt[4634] =
{ 0,
14, 15, 16, 15, 15, 14, 17, 18, 14, 17,
19, 14, 14, 14, 20, 21, 22, 23, 23, 14,
- 14, 14, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 47, 47, 48, 14,
14, 14, 14, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 47, 47, 49,
- 14, 14, 14, 14, 14, 14, 50, 51, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 52,
-
- 14, 14, 14, 14, 14, 14, 53, 14, 54, 55,
- 56, 14, 14, 14, 57, 14, 14, 58, 59, 14,
- 14, 60, 61, 62, 63, 64, 65, 14, 66, 14,
- 14, 14, 67, 14, 14, 52, 14, 53, 14, 54,
- 55, 56, 14, 14, 14, 57, 14, 14, 58, 59,
- 14, 14, 60, 61, 62, 63, 64, 65, 14, 66,
- 14, 14, 14, 14, 51, 14, 14, 51, 14, 15,
- 50, 68, 15, 14, 17, 14, 14, 17, 19, 14,
- 14, 14, 20, 21, 22, 23, 23, 14, 14, 14,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 47,
-
- 78, 79, 80, 81, 82, 83, 47, 84, 85, 86,
- 87, 47, 88, 47, 47, 47, 14, 14, 14, 14,
- 14, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 47, 78, 79, 80, 81, 82, 83, 47, 84, 85,
- 86, 87, 47, 88, 47, 47, 47, 49, 51, 14,
- 14, 51, 89, 90, 50, 91, 90, 92, 93, 89,
- 94, 95, 89, 89, 89, 89, 96, 97, 89, 98,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 89, 109, 89, 89, 110, 89, 111, 112, 89,
- 89, 113, 114, 115, 89, 89, 116, 89, 89, 89,
-
- 117, 89, 89, 89, 118, 102, 103, 104, 105, 106,
- 107, 108, 89, 109, 89, 89, 110, 89, 111, 112,
- 89, 89, 113, 114, 115, 89, 89, 116, 89, 89,
- 89, 89, 119, 89, 120, 121, 123, 818, 123, 123,
- 123, 124, 123, 123, 125, 124, 127, 127, 125, 128,
- 128, 130, 1910, 130, 130, 134, 185, 135, 135, 137,
- 137, 186, 323, 215, 253, 187, 254, 255, 138, 354,
- 324, 1900, 142, 355, 135, 135, 130, 818, 130, 130,
- 607, 573, 355, 143, 144, 1418, 145, 185, 1343, 129,
- 129, 851, 186, 146, 215, 253, 187, 254, 255, 138,
-
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 143, 144, 141, 145, 575, 139,
- 256, 139, 147, 170, 146, 257, 148, 171, 260, 575,
- 149, 172, 573, 261, 182, 183, 262, 173, 263, 150,
- 174, 184, 151, 160, 267, 268, 161, 162, 139, 139,
- 139, 256, 139, 147, 170, 545, 257, 148, 171, 260,
- 163, 149, 172, 164, 261, 182, 183, 262, 173, 263,
- 150, 174, 184, 151, 160, 267, 268, 161, 162, 139,
- 139, 139, 139, 139, 152, 269, 153, 723, 275, 154,
- 155, 163, 358, 156, 164, 200, 157, 180, 293, 158,
-
- 159, 165, 166, 167, 179, 324, 175, 168, 180, 201,
- 176, 358, 181, 169, 177, 152, 269, 153, 241, 275,
- 154, 155, 242, 178, 156, 355, 200, 157, 180, 293,
- 158, 159, 165, 166, 167, 179, 324, 175, 168, 180,
- 201, 176, 258, 181, 169, 177, 259, 608, 608, 241,
- 271, 271, 352, 242, 178, 188, 195, 189, 288, 190,
- 196, 264, 187, 191, 197, 334, 192, 265, 245, 193,
- 246, 216, 194, 258, 575, 217, 198, 259, 266, 218,
- 199, 368, 368, 272, 573, 219, 188, 195, 189, 288,
- 190, 196, 264, 187, 191, 197, 334, 192, 265, 245,
-
- 193, 246, 216, 194, 286, 287, 217, 198, 337, 266,
- 218, 199, 202, 203, 328, 209, 219, 170, 545, 210,
- 204, 171, 205, 211, 206, 283, 212, 207, 208, 213,
- 329, 284, 214, 366, 367, 286, 287, 368, 368, 337,
- 273, 252, 274, 202, 203, 328, 209, 252, 170, 146,
- 210, 204, 171, 205, 211, 206, 283, 212, 207, 208,
- 213, 329, 284, 214, 220, 221, 222, 250, 230, 223,
- 224, 273, 231, 274, 225, 343, 232, 332, 226, 236,
- 146, 227, 233, 228, 346, 234, 229, 175, 237, 291,
- 238, 333, 235, 292, 239, 220, 221, 222, 240, 230,
-
- 223, 224, 369, 231, 285, 225, 343, 232, 332, 226,
- 236, 133, 227, 233, 228, 346, 234, 229, 175, 237,
- 291, 238, 333, 235, 292, 239, 243, 244, 133, 240,
- 245, 152, 246, 153, 247, 285, 280, 281, 278, 248,
- 276, 161, 279, 277, 347, 289, 158, 282, 358, 290,
- 302, 326, 358, 136, 218, 327, 356, 243, 244, 136,
- 341, 245, 152, 246, 153, 247, 325, 280, 281, 278,
- 248, 276, 161, 279, 277, 347, 289, 158, 282, 294,
- 290, 302, 326, 298, 136, 218, 327, 295, 335, 205,
- 136, 299, 303, 304, 296, 297, 330, 300, 307, 331,
-
- 301, 341, 308, 336, 305, 342, 236, 361, 309, 306,
- 294, 310, 368, 368, 298, 237, 322, 311, 295, 335,
- 205, 239, 299, 303, 304, 296, 297, 330, 300, 307,
- 331, 301, 341, 308, 336, 305, 342, 236, 361, 309,
- 306, 130, 310, 130, 130, 362, 237, 130, 311, 130,
- 130, 316, 239, 317, 317, 318, 318, 320, 338, 317,
- 317, 312, 344, 349, 319, 370, 345, 130, 321, 130,
- 130, 340, 350, 339, 363, 315, 362, 363, 351, 130,
- 314, 130, 130, 313, 381, 384, 373, 373, 352, 338,
- 374, 374, 312, 344, 349, 319, 370, 345, 387, 321,
-
- 375, 390, 340, 350, 339, 364, 364, 376, 142, 351,
- 135, 135, 137, 137, 365, 381, 384, 363, 391, 143,
- 392, 138, 374, 374, 374, 374, 312, 371, 371, 387,
- 252, 375, 390, 577, 577, 250, 372, 382, 376, 397,
- 398, 133, 576, 576, 1929, 365, 577, 577, 383, 391,
- 143, 392, 138, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 372, 382, 141,
- 397, 398, 139, 377, 139, 385, 393, 378, 388, 383,
- 395, 386, 396, 399, 379, 401, 402, 400, 403, 408,
- 380, 411, 389, 1929, 406, 407, 394, 414, 419, 420,
-
- 421, 139, 139, 139, 377, 139, 385, 393, 378, 388,
- 404, 395, 386, 396, 399, 379, 401, 402, 400, 403,
- 408, 380, 411, 389, 405, 406, 407, 394, 414, 419,
- 420, 421, 139, 139, 139, 139, 139, 422, 409, 412,
- 423, 404, 410, 413, 415, 426, 416, 417, 424, 427,
- 418, 428, 429, 434, 425, 405, 1929, 435, 436, 437,
- 577, 577, 1929, 445, 446, 607, 457, 355, 422, 409,
- 412, 423, 1929, 410, 413, 415, 426, 416, 417, 424,
- 427, 418, 428, 429, 434, 425, 430, 431, 435, 436,
- 437, 438, 432, 442, 445, 446, 451, 457, 443, 444,
-
- 458, 463, 447, 433, 448, 449, 464, 439, 465, 440,
- 450, 459, 452, 466, 441, 581, 581, 430, 431, 460,
- 467, 461, 438, 432, 442, 462, 468, 451, 469, 443,
- 444, 458, 463, 447, 433, 448, 449, 464, 439, 465,
- 440, 450, 459, 452, 466, 441, 453, 454, 455, 472,
- 460, 467, 461, 470, 456, 471, 462, 468, 473, 469,
- 474, 475, 478, 480, 476, 481, 581, 581, 479, 489,
- 482, 477, 1929, 490, 491, 492, 1929, 453, 454, 455,
- 472, 493, 494, 1929, 470, 456, 471, 498, 499, 473,
- 502, 474, 475, 478, 480, 476, 481, 483, 484, 479,
-
- 489, 482, 477, 485, 490, 491, 492, 486, 487, 500,
- 488, 503, 493, 494, 495, 496, 504, 510, 498, 499,
- 505, 502, 507, 514, 508, 1929, 515, 497, 483, 484,
- 509, 506, 516, 501, 485, 517, 511, 518, 486, 487,
- 500, 488, 503, 519, 512, 495, 496, 504, 510, 520,
- 521, 505, 522, 507, 514, 508, 513, 515, 497, 523,
- 524, 509, 506, 516, 501, 525, 517, 511, 518, 526,
- 527, 528, 529, 532, 519, 512, 530, 533, 534, 535,
- 520, 521, 536, 522, 538, 539, 540, 513, 541, 542,
- 523, 524, 543, 375, 382, 537, 525, 546, 1929, 531,
-
- 526, 527, 528, 529, 532, 271, 271, 530, 533, 534,
- 535, 549, 550, 536, 378, 538, 539, 540, 404, 541,
- 542, 379, 407, 543, 375, 382, 537, 380, 546, 547,
- 531, 548, 409, 552, 425, 554, 551, 415, 272, 553,
- 417, 557, 549, 550, 555, 378, 558, 443, 559, 404,
- 432, 453, 379, 407, 460, 560, 561, 562, 380, 471,
- 547, 556, 548, 409, 552, 425, 554, 551, 415, 563,
- 553, 417, 557, 564, 479, 555, 487, 558, 443, 559,
- 566, 432, 453, 565, 567, 460, 560, 561, 562, 500,
- 471, 568, 556, 507, 510, 569, 570, 571, 580, 580,
-
- 563, 509, 581, 581, 564, 479, 506, 487, 318, 318,
- 320, 566, 317, 317, 565, 567, 314, 319, 582, 583,
- 500, 321, 568, 584, 507, 510, 569, 570, 571, 318,
- 318, 587, 509, 578, 578, 585, 586, 506, 319, 590,
- 588, 591, 579, 592, 593, 594, 595, 314, 319, 582,
- 583, 596, 321, 589, 584, 597, 598, 599, 600, 602,
- 601, 1929, 587, 609, 603, 604, 585, 586, 1929, 319,
- 590, 588, 591, 579, 592, 593, 594, 595, 605, 612,
- 608, 608, 596, 613, 589, 1929, 597, 598, 599, 600,
- 602, 601, 352, 352, 609, 603, 604, 364, 364, 352,
-
- 366, 366, 371, 371, 608, 608, 365, 614, 615, 605,
- 612, 372, 610, 610, 613, 616, 611, 611, 617, 618,
- 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
- 629, 630, 631, 632, 1929, 636, 637, 365, 614, 615,
- 640, 641, 372, 642, 643, 644, 616, 645, 1929, 617,
- 618, 619, 620, 621, 622, 623, 624, 625, 626, 627,
- 628, 629, 630, 631, 632, 633, 636, 637, 638, 646,
- 647, 640, 641, 634, 642, 643, 644, 648, 645, 635,
- 649, 650, 651, 652, 654, 639, 655, 656, 657, 659,
- 660, 653, 661, 662, 663, 664, 633, 665, 658, 638,
-
- 646, 647, 666, 667, 634, 668, 671, 672, 648, 673,
- 635, 649, 650, 651, 652, 654, 639, 655, 656, 657,
- 659, 660, 653, 661, 662, 663, 664, 669, 665, 658,
- 674, 670, 675, 666, 667, 676, 668, 671, 672, 678,
- 673, 679, 680, 681, 682, 677, 683, 684, 685, 686,
- 687, 688, 1929, 607, 700, 844, 703, 1929, 669, 704,
- 1929, 674, 670, 675, 701, 715, 676, 716, 702, 717,
- 678, 1929, 679, 680, 681, 682, 677, 683, 684, 685,
- 686, 687, 688, 689, 690, 700, 691, 703, 692, 693,
- 704, 694, 718, 719, 695, 701, 715, 696, 716, 702,
-
- 717, 697, 698, 720, 721, 699, 611, 611, 722, 1929,
- 724, 611, 611, 725, 689, 690, 728, 691, 729, 692,
- 693, 730, 694, 718, 719, 695, 726, 731, 696, 734,
- 727, 735, 697, 698, 720, 721, 699, 705, 706, 722,
- 707, 724, 708, 709, 725, 710, 732, 728, 711, 729,
- 740, 736, 730, 738, 733, 712, 713, 726, 731, 714,
- 734, 727, 735, 741, 739, 743, 744, 745, 705, 706,
- 742, 707, 746, 708, 709, 737, 710, 732, 747, 711,
- 748, 740, 736, 749, 738, 733, 712, 713, 750, 751,
- 714, 752, 753, 754, 741, 739, 743, 744, 745, 755,
-
- 756, 742, 758, 746, 759, 760, 737, 761, 762, 747,
- 763, 748, 757, 764, 749, 765, 766, 767, 768, 750,
- 751, 769, 752, 753, 754, 770, 771, 772, 773, 774,
- 755, 756, 775, 758, 776, 759, 760, 777, 761, 762,
- 779, 763, 778, 757, 764, 782, 765, 766, 767, 768,
- 780, 783, 769, 784, 785, 786, 770, 771, 772, 773,
- 774, 787, 781, 775, 788, 776, 789, 790, 777, 791,
- 792, 779, 793, 778, 794, 795, 782, 796, 797, 798,
- 799, 780, 783, 800, 784, 785, 786, 801, 802, 803,
- 634, 804, 787, 781, 638, 788, 805, 789, 790, 653,
-
- 791, 792, 806, 793, 807, 794, 795, 669, 796, 797,
- 798, 799, 808, 676, 800, 810, 702, 811, 801, 802,
- 803, 634, 804, 809, 726, 638, 812, 805, 732, 813,
- 653, 738, 756, 806, 814, 807, 815, 816, 669, 817,
- 778, 578, 578, 808, 676, 1929, 810, 702, 811, 821,
- 579, 822, 823, 824, 809, 726, 825, 812, 826, 732,
- 813, 827, 738, 756, 828, 814, 829, 815, 816, 830,
- 817, 778, 819, 819, 831, 832, 820, 820, 833, 834,
- 821, 579, 822, 823, 824, 835, 836, 825, 837, 826,
- 838, 839, 827, 840, 841, 828, 1929, 829, 842, 843,
-
- 830, 845, 846, 352, 847, 831, 832, 848, 849, 833,
- 834, 352, 850, 852, 853, 854, 835, 836, 855, 837,
- 856, 838, 839, 857, 840, 841, 858, 352, 859, 842,
- 843, 860, 845, 846, 862, 847, 863, 864, 848, 849,
- 865, 866, 867, 850, 852, 853, 854, 868, 871, 855,
- 861, 856, 872, 869, 857, 870, 873, 858, 874, 859,
- 875, 876, 860, 877, 878, 862, 879, 863, 864, 880,
- 881, 865, 866, 867, 882, 883, 884, 885, 868, 871,
- 886, 861, 887, 872, 869, 888, 870, 873, 889, 874,
- 890, 875, 876, 891, 877, 878, 892, 879, 893, 894,
-
- 880, 881, 895, 896, 897, 882, 883, 884, 885, 898,
- 899, 886, 900, 887, 901, 902, 888, 903, 904, 889,
- 905, 890, 906, 909, 891, 907, 910, 892, 911, 893,
- 894, 912, 908, 895, 896, 897, 913, 914, 915, 918,
- 898, 899, 919, 900, 920, 901, 902, 921, 903, 904,
- 922, 905, 923, 906, 909, 924, 907, 910, 916, 911,
- 925, 926, 912, 908, 930, 917, 927, 913, 914, 915,
- 918, 931, 928, 919, 932, 920, 933, 934, 921, 935,
- 936, 922, 937, 923, 929, 938, 924, 939, 940, 916,
- 941, 925, 926, 942, 943, 930, 917, 927, 947, 948,
-
- 949, 1929, 931, 928, 950, 932, 951, 933, 934, 952,
- 935, 936, 953, 937, 944, 929, 938, 956, 939, 940,
- 945, 941, 954, 957, 942, 943, 955, 958, 959, 947,
- 948, 949, 946, 960, 961, 950, 962, 951, 963, 964,
- 952, 965, 966, 953, 967, 944, 968, 969, 956, 970,
- 971, 945, 974, 954, 957, 972, 975, 955, 958, 959,
- 973, 976, 977, 946, 960, 961, 978, 962, 979, 963,
- 964, 980, 965, 966, 981, 967, 982, 968, 969, 983,
- 970, 971, 984, 974, 985, 986, 972, 975, 987, 988,
- 989, 973, 976, 977, 990, 991, 992, 978, 993, 979,
-
- 994, 995, 980, 996, 997, 981, 998, 982, 999, 1000,
- 983, 1005, 1003, 984, 1001, 985, 986, 1006, 1002, 987,
- 988, 989, 1004, 1007, 1008, 990, 991, 992, 1009, 993,
- 1010, 994, 995, 1011, 996, 997, 1012, 998, 1013, 999,
- 1000, 1014, 1005, 1003, 1015, 1001, 1016, 1017, 1006, 1002,
- 1018, 1019, 1020, 1004, 1007, 1008, 1021, 1022, 1023, 1009,
- 1024, 1010, 1025, 1026, 1011, 1027, 1028, 1012, 1029, 1013,
- 1030, 1031, 1014, 1032, 1033, 1015, 1034, 1016, 1017, 1035,
- 1036, 1018, 1019, 1020, 1037, 907, 1038, 1021, 1022, 1023,
- 954, 1024, 1039, 1025, 1026, 1040, 1027, 1028, 1041, 1029,
-
- 1042, 1030, 1031, 1043, 1032, 1033, 1044, 1034, 820, 820,
- 1035, 1036, 820, 820, 1045, 1037, 907, 1038, 1046, 1047,
- 1048, 954, 1049, 1039, 1050, 1051, 1040, 1052, 1053, 1041,
- 1054, 1042, 1055, 1056, 1043, 1057, 1058, 1044, 1059, 1060,
- 1061, 352, 1063, 1065, 1062, 1045, 1066, 1064, 1067, 1046,
- 1047, 1048, 1068, 1049, 1069, 1050, 1051, 1070, 1052, 1053,
- 352, 1054, 1071, 1055, 1056, 1072, 1057, 1058, 1073, 1059,
- 1060, 1061, 352, 1074, 1065, 1062, 1075, 1066, 1064, 1067,
- 1076, 1079, 1077, 1068, 1078, 1069, 1080, 1081, 1070, 1082,
- 1083, 1084, 1085, 1071, 1086, 1087, 1072, 1088, 1089, 1073,
-
- 1090, 1091, 1092, 1093, 1074, 1094, 1095, 1075, 1096, 1097,
- 1098, 1076, 1079, 1077, 1099, 1078, 1100, 1080, 1081, 1101,
- 1082, 1083, 1084, 1085, 1102, 1086, 1087, 1103, 1088, 1089,
- 1104, 1090, 1091, 1092, 1093, 1105, 1094, 1095, 1112, 1096,
- 1097, 1098, 1113, 1114, 1115, 1099, 1106, 1100, 1117, 1118,
- 1101, 1119, 1120, 1929, 1116, 1102, 1107, 1929, 1103, 1108,
- 1109, 1104, 1929, 1110, 1111, 1126, 1105, 1127, 1128, 1112,
- 1129, 1130, 1131, 1113, 1114, 1115, 1132, 1106, 1121, 1117,
- 1118, 1122, 1119, 1120, 1123, 1116, 1133, 1107, 1124, 1134,
- 1108, 1109, 1135, 1125, 1110, 1111, 1126, 1136, 1127, 1128,
-
- 1137, 1129, 1130, 1131, 1138, 1139, 1140, 1132, 1141, 1121,
- 1142, 1143, 1122, 1144, 1145, 1123, 1146, 1133, 1147, 1124,
- 1134, 1148, 1149, 1135, 1125, 1150, 1151, 1152, 1136, 1153,
- 1154, 1137, 1155, 1156, 1157, 1138, 1139, 1140, 1158, 1141,
- 1159, 1142, 1143, 1160, 1144, 1145, 1161, 1146, 1162, 1147,
- 1163, 1164, 1148, 1149, 1165, 1166, 1150, 1151, 1152, 1167,
- 1153, 1154, 1168, 1155, 1156, 1157, 1169, 1170, 1171, 1158,
- 1172, 1159, 1173, 1174, 1160, 1175, 1176, 1161, 1177, 1162,
- 1178, 1163, 1164, 1179, 1180, 1165, 1166, 1181, 1184, 1185,
- 1167, 1182, 1186, 1168, 1187, 1188, 1190, 1169, 1170, 1171,
-
- 1183, 1172, 1189, 1173, 1174, 1191, 1175, 1176, 1192, 1177,
- 1193, 1178, 1194, 1195, 1179, 1180, 1196, 1197, 1181, 1184,
- 1185, 1201, 1182, 1186, 1202, 1187, 1188, 1190, 1198, 1203,
- 1199, 1183, 1204, 1189, 1205, 1206, 1191, 1207, 1208, 1192,
- 1209, 1193, 1210, 1194, 1195, 1211, 1200, 1196, 1197, 1212,
- 1213, 1215, 1201, 1216, 1217, 1202, 1214, 1219, 1220, 1198,
- 1203, 1199, 1221, 1204, 1218, 1205, 1206, 1222, 1207, 1208,
- 1223, 1209, 1224, 1210, 1225, 1226, 1211, 1200, 1229, 1227,
- 1212, 1213, 1215, 1230, 1216, 1217, 1231, 1214, 1219, 1220,
- 1232, 1233, 1234, 1221, 1235, 1218, 1228, 1077, 1222, 1078,
-
- 1093, 1223, 1106, 1224, 1116, 1225, 1226, 1123, 1236, 1229,
- 1227, 1178, 1237, 1238, 1230, 1239, 1125, 1231, 1240, 1241,
- 1242, 1232, 1233, 1234, 1243, 1235, 1244, 1228, 1077, 1245,
- 1078, 1093, 1246, 1106, 1247, 1116, 1248, 1249, 1123, 1236,
- 1250, 1251, 1178, 1237, 1238, 1252, 1239, 1125, 1253, 1240,
- 1241, 1242, 1254, 1255, 1256, 1243, 1258, 1244, 352, 1257,
- 1245, 1260, 1259, 1246, 1261, 1247, 1262, 1248, 1249, 1263,
- 1264, 1250, 1251, 1265, 1266, 1267, 1252, 1268, 1269, 1253,
- 1270, 1271, 352, 1254, 1255, 1256, 352, 1258, 1272, 1273,
- 1274, 1275, 1260, 1259, 1276, 1261, 1277, 1262, 1278, 1279,
-
- 1263, 1264, 1280, 1281, 1265, 1266, 1267, 1282, 1268, 1269,
- 1283, 1270, 1271, 1284, 1285, 1286, 1287, 1288, 1289, 1272,
- 1273, 1274, 1275, 1290, 1291, 1276, 1292, 1277, 1293, 1278,
- 1279, 1294, 1295, 1280, 1281, 1296, 1297, 1298, 1282, 1299,
- 1300, 1283, 1301, 1302, 1284, 1285, 1286, 1287, 1288, 1289,
- 1303, 1304, 1305, 1306, 1290, 1291, 1308, 1292, 1309, 1293,
- 1310, 1307, 1294, 1295, 1311, 1312, 1296, 1297, 1298, 1313,
- 1299, 1300, 1314, 1301, 1302, 1315, 1316, 1317, 1318, 1319,
- 1320, 1303, 1304, 1305, 1306, 1321, 1322, 1308, 1323, 1309,
- 1324, 1310, 1307, 1325, 1326, 1311, 1312, 1327, 1328, 1329,
-
- 1313, 1330, 1331, 1314, 1332, 1333, 1315, 1316, 1317, 1318,
- 1319, 1320, 1334, 1335, 1336, 1337, 1321, 1322, 1338, 1323,
- 1339, 1324, 1340, 1341, 1325, 1326, 1342, 1344, 1327, 1328,
- 1329, 1345, 1330, 1331, 1346, 1332, 1333, 1347, 1348, 1349,
- 1350, 1351, 1352, 1334, 1335, 1336, 1337, 1353, 1354, 1338,
- 1355, 1339, 1356, 1340, 1341, 1357, 1358, 1342, 1344, 1359,
- 1360, 1361, 1345, 1362, 1363, 1346, 1364, 1365, 1347, 1348,
- 1349, 1350, 1351, 1352, 1366, 1367, 1368, 1369, 1353, 1354,
- 1370, 1355, 1371, 1356, 1372, 1373, 1357, 1358, 1375, 1376,
- 1359, 1360, 1361, 1377, 1362, 1363, 1378, 1364, 1365, 1379,
-
- 1380, 1374, 1381, 1382, 1383, 1366, 1367, 1368, 1369, 1384,
- 1385, 1370, 1386, 1371, 1387, 1372, 1373, 1388, 1389, 1375,
- 1376, 1390, 1391, 1392, 1377, 1393, 1394, 1378, 1395, 1396,
- 1379, 1380, 1374, 1381, 1382, 1383, 1397, 1398, 1399, 1400,
- 1384, 1385, 1401, 1386, 1402, 1387, 1403, 1404, 1388, 1389,
- 1405, 1406, 1390, 1391, 1392, 1407, 1393, 1394, 1408, 1395,
- 1396, 1409, 1410, 1411, 1412, 1413, 1414, 1397, 1398, 1399,
- 1400, 1415, 1416, 1401, 1419, 1402, 1417, 1403, 1404, 1420,
- 1421, 1405, 1406, 1422, 1423, 1424, 1407, 1425, 1426, 1408,
- 1427, 1428, 1409, 1410, 1411, 1412, 1413, 1414, 352, 1429,
-
- 352, 1430, 1415, 1416, 1431, 1419, 1432, 1417, 1433, 1434,
- 1420, 1421, 1435, 1436, 1422, 1423, 1424, 1437, 1425, 1426,
- 1438, 1427, 1428, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
- 1429, 1446, 1430, 1447, 1448, 1431, 1449, 1432, 1450, 1433,
- 1434, 1451, 1452, 1435, 1436, 1453, 1454, 1455, 1437, 1456,
- 1457, 1438, 1458, 1459, 1439, 1440, 1441, 1442, 1443, 1444,
- 1445, 1460, 1446, 1461, 1447, 1448, 1462, 1449, 1463, 1450,
- 1464, 1465, 1451, 1452, 1466, 1467, 1453, 1454, 1455, 1468,
- 1456, 1457, 1469, 1458, 1459, 1470, 1471, 1472, 1473, 1474,
- 1475, 1476, 1460, 1477, 1461, 1478, 1479, 1462, 1480, 1463,
-
- 1481, 1464, 1465, 1482, 1483, 1466, 1467, 1484, 1485, 1486,
- 1468, 1487, 1488, 1469, 1489, 1490, 1470, 1471, 1472, 1473,
- 1474, 1475, 1476, 1493, 1477, 1499, 1478, 1479, 1491, 1480,
- 1500, 1481, 1501, 1502, 1482, 1483, 1494, 1495, 1484, 1485,
- 1486, 1503, 1487, 1488, 1504, 1489, 1490, 1496, 1492, 1497,
- 1505, 1506, 1507, 1498, 1493, 1508, 1499, 1509, 1510, 1491,
- 1511, 1500, 1512, 1501, 1502, 1513, 1514, 1494, 1495, 1515,
- 1516, 1517, 1503, 1518, 1519, 1504, 1520, 1521, 1496, 1492,
- 1497, 1505, 1506, 1507, 1498, 1522, 1508, 1523, 1509, 1510,
- 1524, 1511, 1525, 1512, 1526, 1527, 1513, 1514, 1528, 1529,
-
- 1515, 1516, 1517, 1530, 1518, 1519, 1531, 1520, 1521, 1532,
- 1533, 1534, 1535, 1536, 1537, 1538, 1522, 1539, 1523, 1540,
- 1541, 1524, 1542, 1525, 1543, 1526, 1527, 1544, 1545, 1528,
- 1529, 1546, 1547, 1548, 1530, 1549, 1550, 1531, 1929, 1551,
- 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1552, 1539, 1553,
- 1540, 1541, 1554, 1542, 1555, 1543, 1494, 1495, 1544, 1545,
- 1556, 1557, 1546, 1547, 1548, 1558, 1549, 1550, 1560, 1497,
- 1551, 1561, 1562, 1498, 1563, 1564, 1559, 1565, 1552, 1566,
- 1553, 1567, 1568, 1554, 1569, 1555, 1570, 1494, 1495, 352,
- 1571, 1556, 1557, 352, 1572, 1573, 1558, 1574, 1575, 1560,
-
- 1497, 1576, 1561, 1562, 1498, 1563, 1564, 1559, 1565, 1577,
- 1566, 1578, 1567, 1568, 1579, 1569, 1580, 1570, 1581, 1582,
- 1583, 1571, 1584, 1585, 1586, 1572, 1573, 1587, 1574, 1575,
- 1588, 1589, 1576, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
- 1577, 1597, 1578, 1598, 1599, 1579, 1600, 1580, 1601, 1581,
- 1582, 1583, 1602, 1584, 1585, 1586, 1603, 1604, 1587, 1605,
- 1606, 1588, 1589, 1607, 1590, 1591, 1592, 1593, 1594, 1595,
- 1596, 1608, 1597, 1609, 1598, 1599, 1610, 1600, 1611, 1601,
- 1612, 1613, 1614, 1602, 1615, 1616, 1617, 1603, 1604, 1618,
- 1605, 1606, 1619, 1620, 1607, 1621, 1622, 1623, 1624, 1625,
-
- 1626, 1629, 1608, 1630, 1609, 1632, 1627, 1610, 1633, 1611,
- 1634, 1612, 1613, 1614, 1628, 1615, 1616, 1617, 1635, 1631,
- 1618, 1636, 1637, 1619, 1620, 1638, 1621, 1622, 1623, 1624,
- 1625, 1626, 1629, 1639, 1630, 1640, 1632, 1627, 1641, 1633,
- 1642, 1634, 1643, 1644, 1645, 1628, 1646, 1647, 1648, 1635,
- 1631, 1649, 1636, 1637, 1650, 1651, 1638, 1652, 1653, 1654,
- 1655, 1656, 1657, 1658, 1639, 1659, 1640, 1660, 1661, 1641,
- 1662, 1642, 1663, 1643, 1644, 1645, 1664, 1646, 1647, 1648,
- 1665, 1666, 1649, 1667, 1668, 1650, 1651, 1669, 1652, 1653,
- 1654, 1655, 1656, 1657, 1658, 1670, 1659, 1673, 1660, 1661,
-
- 1671, 1662, 1672, 1663, 1674, 1675, 1676, 1664, 1677, 1678,
- 1679, 1665, 1666, 1680, 1667, 1668, 1681, 352, 1669, 352,
- 1682, 1683, 1684, 1685, 1686, 1687, 1670, 1688, 1673, 1689,
- 1690, 1671, 1691, 1672, 1692, 1674, 1675, 1676, 1693, 1677,
- 1678, 1679, 1694, 1695, 1680, 1696, 1697, 1681, 1698, 1699,
- 1700, 1682, 1683, 1684, 1685, 1686, 1687, 1701, 1688, 1702,
- 1689, 1690, 1703, 1691, 1704, 1692, 1705, 1706, 1707, 1693,
- 1708, 1709, 1710, 1694, 1695, 1711, 1696, 1697, 1712, 1698,
- 1699, 1700, 1713, 1714, 1715, 1716, 1717, 1718, 1701, 1719,
- 1702, 1720, 1721, 1703, 1722, 1704, 1723, 1705, 1706, 1707,
-
- 1724, 1708, 1709, 1710, 1725, 1726, 1711, 1727, 1728, 1712,
- 1729, 1730, 1731, 1713, 1714, 1715, 1716, 1717, 1718, 1732,
- 1719, 1733, 1720, 1721, 1734, 1722, 1735, 1723, 1736, 1737,
- 1738, 1724, 1739, 1740, 1741, 1725, 1726, 1742, 1727, 1728,
- 1743, 1729, 1730, 1731, 1744, 1745, 1746, 1747, 1748, 1749,
- 1732, 1750, 1733, 1751, 1752, 1734, 1753, 1735, 1754, 1736,
- 1737, 1738, 1755, 1739, 1740, 1741, 1756, 1757, 1742, 1758,
- 1760, 1743, 1761, 1759, 1762, 1744, 1745, 1746, 1747, 1748,
- 1749, 1763, 1750, 352, 1751, 1752, 352, 1753, 1764, 1754,
- 1765, 1766, 1767, 1755, 1768, 1769, 1770, 1756, 1757, 1771,
-
- 1758, 1760, 1772, 1761, 1759, 1762, 1773, 1774, 1775, 1776,
- 1777, 1778, 1763, 1779, 1780, 1781, 1782, 1783, 1784, 1764,
- 1785, 1765, 1766, 1767, 1786, 1768, 1769, 1770, 1787, 1788,
- 1771, 1789, 1790, 1772, 1791, 1792, 1793, 1773, 1774, 1775,
- 1776, 1777, 1778, 1794, 1779, 1780, 1781, 1782, 1783, 1784,
- 1795, 1785, 1796, 1797, 1798, 1786, 1799, 1800, 1801, 1787,
- 1788, 1802, 1789, 1790, 1803, 1791, 1792, 1793, 1804, 1805,
- 1806, 1807, 1808, 1809, 1794, 1810, 1811, 1812, 1814, 1815,
- 1816, 1795, 1929, 1796, 1797, 1798, 1818, 1799, 1800, 1801,
- 352, 1819, 1802, 1817, 1813, 1803, 1820, 1821, 1822, 1804,
-
- 1805, 1806, 1807, 1808, 1809, 1823, 1810, 1811, 1812, 1814,
- 1815, 1816, 1824, 352, 1825, 1826, 1827, 1818, 1828, 1829,
- 1830, 1831, 1819, 1832, 1817, 1813, 1833, 1820, 1821, 1822,
- 1834, 1835, 1836, 1837, 1838, 1839, 1823, 1840, 1841, 1842,
- 1843, 1844, 1845, 1824, 1846, 1825, 1826, 1827, 1847, 1828,
- 1829, 1830, 1831, 1848, 1832, 1849, 1850, 1833, 1851, 1852,
- 1853, 1834, 1835, 1836, 1837, 1838, 1839, 1856, 1840, 1841,
- 1842, 1843, 1844, 1845, 1854, 1846, 1857, 1855, 1858, 1847,
- 352, 1859, 1860, 1861, 1848, 1862, 1849, 1850, 1863, 1851,
- 1852, 1853, 1864, 1865, 352, 1866, 1867, 1868, 1856, 1869,
-
- 1870, 1871, 1872, 1873, 1874, 1854, 1875, 1857, 1855, 1858,
- 1876, 1877, 1859, 1860, 1861, 1878, 1862, 1879, 1880, 1863,
- 1882, 1883, 1881, 1864, 1865, 352, 1866, 1867, 1868, 1884,
- 1869, 1870, 1871, 1872, 1873, 1874, 1885, 1875, 1886, 1887,
- 1888, 1876, 1877, 1889, 352, 1890, 1878, 1891, 1879, 1880,
- 1892, 1882, 1883, 1881, 1893, 1894, 1895, 1896, 1897, 1898,
- 1884, 1929, 1901, 1902, 1903, 1904, 1905, 1885, 1899, 1886,
- 1887, 1888, 1906, 1907, 1889, 1908, 1890, 1909, 1891, 1911,
- 1912, 1892, 1913, 1914, 1915, 1893, 1894, 1895, 1896, 1897,
- 1898, 1916, 352, 1901, 1902, 1903, 1904, 1905, 1917, 1899,
-
- 1918, 1919, 1920, 1906, 1907, 1921, 1908, 1922, 1909, 1923,
- 1911, 1912, 1924, 1913, 1914, 1915, 1925, 1926, 1927, 1928,
- 1929, 1929, 1916, 1929, 1929, 1929, 1929, 1929, 1929, 1917,
- 1929, 1918, 1919, 1920, 1929, 1929, 1921, 1929, 1922, 1929,
- 1923, 1929, 1929, 1924, 1929, 1929, 1929, 1925, 1926, 1927,
- 1928, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 126, 126, 126, 126, 126, 126, 126, 126, 126, 131,
- 1929, 131, 131, 131, 131, 131, 131, 131, 132, 1929,
- 132, 132, 132, 132, 132, 132, 132, 136, 136, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 249, 249,
-
- 249, 249, 249, 249, 249, 249, 249, 251, 1929, 251,
- 251, 251, 251, 251, 251, 251, 270, 1929, 270, 348,
- 348, 348, 348, 348, 348, 348, 348, 348, 353, 353,
- 353, 353, 353, 353, 353, 353, 353, 357, 357, 357,
- 357, 357, 357, 357, 357, 357, 359, 359, 359, 359,
- 359, 359, 359, 359, 359, 360, 360, 360, 1929, 1929,
- 360, 360, 1929, 360, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 544, 1929, 1929, 544, 544, 1929, 544,
- 572, 572, 572, 1929, 572, 572, 572, 572, 572, 574,
- 574, 574, 574, 1929, 574, 574, 574, 574, 606, 606,
-
- 606, 606, 606, 606, 606, 606, 606, 13, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929
-
+ 41, 42, 43, 44, 45, 46, 47, 47, 47, 48,
+ 14, 14, 14, 14, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 47, 47,
+ 49, 14, 14, 14, 14, 14, 14, 50, 51, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+
+ 52, 14, 14, 14, 14, 14, 14, 14, 53, 14,
+ 54, 55, 56, 14, 14, 14, 57, 14, 14, 58,
+ 59, 14, 14, 60, 61, 62, 63, 64, 65, 14,
+ 66, 14, 14, 14, 67, 14, 14, 52, 14, 53,
+ 14, 54, 55, 56, 14, 14, 14, 57, 14, 14,
+ 58, 59, 14, 14, 60, 61, 62, 63, 64, 65,
+ 14, 66, 14, 14, 14, 14, 51, 14, 14, 51,
+ 14, 15, 50, 68, 15, 14, 17, 14, 14, 17,
+ 19, 14, 14, 14, 20, 21, 22, 23, 23, 14,
+ 14, 14, 14, 69, 70, 71, 72, 73, 74, 75,
+
+ 76, 77, 47, 78, 79, 80, 81, 82, 83, 47,
+ 84, 85, 86, 87, 47, 88, 47, 47, 47, 14,
+ 14, 14, 14, 14, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 47, 78, 79, 80, 81, 82, 83,
+ 47, 84, 85, 86, 87, 47, 88, 47, 47, 47,
+ 49, 51, 14, 14, 51, 89, 90, 50, 91, 90,
+ 92, 93, 89, 94, 95, 89, 89, 89, 89, 96,
+ 97, 89, 98, 98, 89, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 89, 109, 110, 89, 111,
+ 89, 112, 113, 89, 89, 114, 115, 116, 117, 89,
+
+ 118, 89, 89, 89, 119, 89, 89, 89, 120, 102,
+ 103, 104, 105, 106, 107, 108, 89, 109, 110, 89,
+ 111, 89, 112, 113, 89, 89, 114, 115, 116, 117,
+ 89, 118, 89, 89, 89, 89, 121, 89, 122, 123,
+ 125, 1982, 125, 125, 125, 126, 125, 125, 127, 126,
+ 129, 129, 127, 130, 130, 132, 187, 132, 132, 136,
+ 1972, 137, 137, 139, 139, 184, 185, 1475, 217, 255,
+ 256, 257, 186, 140, 1395, 324, 144, 362, 137, 137,
+ 132, 363, 132, 132, 325, 625, 625, 187, 145, 146,
+ 878, 147, 258, 584, 131, 131, 184, 185, 148, 217,
+
+ 255, 256, 257, 186, 140, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 145,
+ 146, 143, 147, 258, 141, 141, 149, 141, 162, 148,
+ 150, 163, 164, 259, 151, 167, 168, 169, 188, 202,
+ 243, 170, 189, 152, 244, 165, 153, 171, 166, 262,
+ 263, 264, 265, 203, 141, 141, 141, 149, 141, 162,
+ 269, 150, 163, 164, 259, 151, 167, 168, 169, 188,
+ 202, 243, 170, 189, 152, 244, 165, 153, 171, 166,
+ 262, 263, 264, 265, 203, 141, 141, 141, 141, 141,
+ 154, 269, 155, 172, 260, 156, 157, 173, 261, 158,
+
+ 177, 174, 159, 270, 178, 160, 161, 175, 179, 271,
+ 176, 181, 276, 273, 273, 182, 582, 180, 182, 183,
+ 624, 154, 363, 155, 172, 260, 156, 157, 173, 261,
+ 158, 177, 174, 159, 270, 178, 160, 161, 175, 179,
+ 271, 176, 181, 276, 273, 273, 182, 274, 180, 182,
+ 183, 190, 197, 191, 289, 192, 198, 266, 189, 193,
+ 199, 294, 194, 267, 146, 195, 275, 218, 196, 287,
+ 288, 219, 200, 148, 268, 220, 201, 132, 274, 132,
+ 132, 221, 190, 197, 191, 289, 192, 198, 266, 189,
+ 193, 199, 294, 194, 267, 146, 195, 275, 218, 196,
+
+ 287, 288, 219, 200, 148, 268, 220, 201, 204, 205,
+ 292, 211, 221, 231, 293, 212, 206, 232, 207, 213,
+ 208, 233, 214, 209, 210, 215, 335, 234, 216, 554,
+ 235, 132, 303, 132, 132, 741, 220, 236, 366, 204,
+ 205, 292, 211, 366, 231, 293, 212, 206, 232, 207,
+ 213, 208, 233, 214, 209, 210, 215, 335, 234, 216,
+ 222, 235, 223, 303, 177, 224, 225, 220, 236, 237,
+ 226, 247, 279, 248, 227, 163, 280, 228, 238, 229,
+ 239, 286, 230, 341, 240, 342, 241, 317, 242, 318,
+ 318, 222, 838, 223, 363, 177, 224, 225, 376, 376,
+
+ 237, 226, 247, 279, 248, 227, 163, 280, 228, 238,
+ 229, 239, 286, 230, 341, 240, 342, 241, 360, 242,
+ 245, 246, 584, 154, 247, 155, 248, 327, 249, 281,
+ 282, 328, 277, 250, 295, 278, 349, 582, 160, 172,
+ 283, 582, 296, 173, 207, 376, 376, 284, 554, 297,
+ 298, 245, 246, 285, 154, 247, 155, 248, 327, 249,
+ 281, 282, 328, 277, 250, 295, 278, 349, 290, 160,
+ 172, 283, 291, 296, 173, 207, 138, 299, 284, 329,
+ 297, 298, 138, 308, 285, 300, 254, 309, 304, 305,
+ 354, 301, 838, 310, 302, 330, 311, 355, 312, 290,
+
+ 306, 319, 319, 291, 138, 307, 138, 138, 299, 254,
+ 329, 320, 331, 138, 308, 332, 300, 339, 309, 304,
+ 305, 354, 301, 313, 310, 302, 330, 311, 355, 312,
+ 333, 306, 340, 346, 584, 138, 307, 138, 321, 336,
+ 318, 318, 320, 331, 334, 343, 332, 337, 339, 347,
+ 322, 252, 369, 348, 313, 344, 338, 357, 350, 370,
+ 345, 333, 351, 340, 346, 352, 358, 624, 353, 363,
+ 336, 132, 359, 132, 132, 334, 343, 624, 337, 872,
+ 347, 322, 360, 369, 348, 377, 344, 338, 357, 350,
+ 370, 345, 371, 351, 378, 371, 352, 358, 132, 353,
+
+ 132, 132, 383, 359, 372, 372, 144, 135, 137, 137,
+ 139, 139, 374, 375, 373, 388, 376, 376, 145, 135,
+ 140, 366, 381, 381, 366, 378, 382, 382, 379, 379,
+ 382, 382, 364, 383, 347, 391, 371, 326, 380, 389,
+ 382, 382, 586, 586, 394, 373, 388, 323, 397, 145,
+ 390, 140, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 391, 398, 143, 380,
+ 389, 141, 141, 384, 141, 394, 392, 385, 395, 397,
+ 399, 390, 393, 405, 386, 406, 400, 402, 403, 404,
+ 387, 407, 396, 409, 410, 408, 411, 316, 398, 414,
+
+ 415, 141, 141, 141, 384, 141, 401, 392, 385, 395,
+ 416, 399, 315, 393, 405, 386, 406, 400, 402, 403,
+ 404, 387, 407, 396, 409, 410, 408, 411, 412, 419,
+ 414, 415, 141, 141, 141, 141, 141, 401, 422, 417,
+ 420, 416, 413, 418, 421, 423, 427, 424, 425, 428,
+ 429, 426, 430, 431, 434, 435, 436, 437, 314, 412,
+ 419, 432, 442, 443, 313, 444, 446, 433, 254, 422,
+ 417, 420, 445, 413, 418, 421, 423, 427, 424, 425,
+ 428, 429, 426, 430, 431, 434, 435, 436, 437, 438,
+ 439, 447, 432, 442, 443, 440, 444, 446, 433, 451,
+
+ 454, 455, 460, 445, 452, 453, 441, 448, 456, 449,
+ 457, 458, 466, 467, 450, 468, 459, 472, 461, 252,
+ 438, 439, 447, 469, 470, 473, 440, 135, 471, 474,
+ 451, 454, 455, 460, 475, 452, 453, 441, 448, 456,
+ 449, 457, 458, 466, 467, 450, 468, 459, 472, 461,
+ 462, 463, 464, 476, 469, 470, 473, 477, 465, 471,
+ 474, 478, 479, 481, 480, 475, 482, 483, 484, 487,
+ 489, 485, 490, 586, 586, 488, 498, 491, 486, 2001,
+ 499, 462, 463, 464, 476, 500, 2001, 501, 477, 465,
+ 502, 506, 478, 479, 481, 480, 507, 482, 483, 484,
+
+ 487, 489, 485, 490, 492, 493, 488, 498, 491, 486,
+ 494, 499, 503, 504, 495, 496, 500, 497, 501, 510,
+ 511, 502, 506, 508, 512, 505, 513, 507, 518, 2001,
+ 515, 522, 516, 523, 524, 492, 493, 514, 517, 525,
+ 526, 494, 527, 503, 504, 495, 496, 509, 497, 528,
+ 510, 511, 519, 529, 508, 512, 505, 513, 530, 518,
+ 520, 515, 522, 516, 523, 524, 531, 532, 514, 517,
+ 525, 526, 521, 527, 533, 534, 535, 536, 509, 537,
+ 528, 538, 541, 519, 529, 542, 539, 543, 544, 530,
+ 547, 520, 548, 549, 550, 551, 552, 531, 532, 389,
+
+ 555, 545, 556, 521, 557, 533, 534, 535, 536, 540,
+ 537, 558, 538, 541, 546, 385, 542, 539, 543, 544,
+ 559, 547, 386, 548, 549, 550, 551, 552, 387, 412,
+ 389, 555, 545, 556, 415, 557, 561, 417, 433, 563,
+ 540, 560, 558, 566, 567, 546, 385, 423, 452, 562,
+ 425, 559, 568, 386, 462, 469, 564, 569, 570, 387,
+ 412, 571, 440, 480, 572, 415, 573, 561, 417, 433,
+ 563, 488, 560, 565, 566, 567, 574, 496, 423, 452,
+ 562, 425, 575, 568, 576, 462, 469, 564, 569, 570,
+ 508, 577, 571, 440, 480, 572, 518, 573, 578, 579,
+
+ 580, 315, 488, 515, 565, 2001, 591, 574, 496, 514,
+ 592, 517, 2001, 575, 2001, 576, 319, 319, 319, 319,
+ 2001, 508, 577, 593, 594, 595, 320, 518, 320, 578,
+ 579, 580, 315, 321, 515, 318, 318, 591, 596, 597,
+ 514, 592, 517, 585, 585, 322, 599, 586, 586, 600,
+ 587, 587, 598, 601, 593, 594, 595, 320, 602, 320,
+ 588, 589, 589, 603, 604, 590, 590, 605, 607, 596,
+ 597, 608, 609, 610, 611, 612, 322, 599, 606, 613,
+ 600, 614, 617, 598, 601, 615, 618, 616, 619, 602,
+ 2001, 588, 620, 621, 603, 604, 626, 629, 605, 607,
+
+ 630, 622, 608, 609, 610, 611, 612, 590, 590, 606,
+ 613, 2001, 614, 617, 631, 2001, 615, 618, 616, 619,
+ 360, 360, 360, 620, 621, 372, 372, 626, 629, 374,
+ 374, 630, 622, 625, 625, 373, 379, 379, 627, 627,
+ 632, 633, 628, 628, 634, 631, 380, 635, 636, 637,
+ 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
+ 648, 649, 650, 653, 654, 2001, 373, 657, 658, 659,
+ 651, 632, 633, 660, 661, 634, 652, 380, 635, 636,
+ 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
+ 647, 648, 649, 650, 653, 654, 655, 662, 657, 658,
+
+ 659, 651, 663, 664, 660, 661, 665, 652, 666, 667,
+ 668, 669, 671, 656, 672, 673, 674, 676, 677, 670,
+ 678, 679, 680, 681, 682, 683, 675, 655, 662, 684,
+ 685, 686, 688, 663, 664, 687, 689, 665, 690, 666,
+ 667, 668, 669, 671, 656, 672, 673, 674, 676, 677,
+ 670, 678, 679, 680, 681, 682, 683, 675, 691, 692,
+ 684, 685, 686, 688, 693, 694, 687, 689, 696, 690,
+ 697, 698, 699, 700, 701, 695, 702, 703, 704, 705,
+ 706, 590, 590, 718, 2001, 721, 625, 625, 722, 691,
+ 692, 733, 2001, 719, 734, 693, 694, 720, 735, 696,
+
+ 2001, 697, 698, 699, 700, 701, 695, 702, 703, 704,
+ 705, 706, 707, 708, 718, 709, 721, 710, 711, 722,
+ 712, 736, 733, 713, 719, 734, 714, 737, 720, 735,
+ 715, 716, 738, 739, 717, 628, 628, 740, 2001, 742,
+ 628, 628, 743, 707, 708, 746, 709, 747, 710, 711,
+ 748, 712, 736, 2001, 713, 744, 749, 714, 737, 745,
+ 752, 715, 716, 738, 739, 717, 723, 724, 740, 725,
+ 742, 726, 727, 743, 728, 750, 746, 729, 747, 753,
+ 754, 748, 756, 751, 730, 731, 744, 749, 732, 758,
+ 745, 752, 759, 757, 761, 762, 763, 723, 724, 760,
+
+ 725, 764, 726, 727, 755, 728, 750, 765, 729, 766,
+ 753, 754, 767, 756, 751, 730, 731, 768, 769, 732,
+ 758, 770, 771, 759, 757, 761, 762, 763, 772, 773,
+ 760, 776, 764, 774, 777, 755, 778, 779, 765, 780,
+ 766, 781, 782, 767, 783, 775, 784, 785, 768, 769,
+ 786, 787, 770, 771, 788, 789, 790, 791, 792, 772,
+ 773, 793, 776, 794, 774, 777, 795, 778, 779, 797,
+ 780, 796, 781, 782, 798, 783, 775, 784, 785, 799,
+ 802, 786, 787, 800, 803, 788, 789, 790, 791, 792,
+ 804, 805, 793, 806, 794, 801, 807, 795, 808, 809,
+
+ 797, 810, 796, 811, 812, 798, 813, 814, 815, 816,
+ 799, 802, 817, 818, 800, 803, 819, 820, 821, 822,
+ 823, 804, 805, 651, 806, 824, 801, 807, 655, 808,
+ 809, 825, 810, 670, 811, 812, 826, 813, 814, 815,
+ 816, 827, 686, 817, 818, 828, 830, 819, 820, 821,
+ 822, 823, 720, 694, 651, 831, 824, 744, 832, 655,
+ 750, 833, 825, 829, 670, 756, 774, 826, 834, 835,
+ 836, 837, 827, 686, 796, 841, 828, 830, 842, 843,
+ 587, 587, 844, 720, 694, 845, 831, 846, 744, 832,
+ 588, 750, 833, 847, 829, 848, 756, 774, 849, 834,
+
+ 835, 836, 837, 839, 839, 796, 841, 840, 840, 842,
+ 843, 850, 851, 844, 852, 853, 845, 854, 846, 855,
+ 856, 588, 857, 858, 847, 859, 848, 860, 861, 849,
+ 862, 863, 864, 865, 866, 867, 868, 2001, 869, 870,
+ 871, 873, 850, 851, 874, 852, 853, 360, 854, 875,
+ 855, 856, 360, 857, 858, 876, 859, 877, 860, 861,
+ 879, 862, 863, 864, 865, 866, 867, 868, 360, 869,
+ 870, 871, 873, 880, 881, 874, 882, 883, 884, 885,
+ 875, 886, 887, 889, 890, 891, 876, 892, 877, 893,
+ 895, 879, 896, 897, 898, 900, 899, 901, 894, 902,
+
+ 903, 888, 904, 905, 880, 881, 906, 882, 883, 884,
+ 885, 907, 886, 887, 889, 890, 891, 908, 892, 909,
+ 893, 895, 910, 896, 897, 898, 900, 899, 901, 894,
+ 902, 903, 888, 904, 905, 911, 912, 906, 913, 914,
+ 915, 916, 907, 917, 918, 919, 920, 921, 908, 922,
+ 909, 923, 924, 910, 925, 926, 927, 928, 929, 930,
+ 931, 932, 933, 934, 935, 936, 911, 912, 939, 913,
+ 914, 915, 916, 2001, 917, 918, 919, 920, 921, 940,
+ 922, 941, 923, 924, 942, 925, 926, 927, 928, 929,
+ 930, 931, 932, 933, 934, 935, 936, 937, 943, 939,
+
+ 944, 945, 946, 948, 938, 949, 950, 951, 952, 947,
+ 940, 953, 941, 954, 955, 942, 956, 960, 2001, 961,
+ 962, 963, 964, 965, 966, 967, 968, 969, 937, 943,
+ 2001, 944, 945, 946, 948, 938, 949, 950, 951, 952,
+ 947, 970, 953, 957, 954, 955, 971, 956, 960, 958,
+ 961, 962, 963, 964, 965, 966, 967, 968, 969, 972,
+ 973, 959, 977, 974, 978, 979, 980, 981, 982, 975,
+ 983, 984, 970, 986, 957, 985, 987, 971, 988, 989,
+ 958, 976, 990, 991, 992, 993, 994, 995, 996, 997,
+ 972, 973, 959, 977, 974, 978, 979, 980, 981, 982,
+
+ 975, 983, 984, 998, 986, 999, 985, 987, 1000, 988,
+ 989, 1001, 976, 990, 991, 992, 993, 994, 995, 996,
+ 997, 1002, 1004, 1005, 1006, 1007, 1003, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 998, 1015, 999, 1016, 1017, 1000,
+ 1018, 1019, 1001, 1020, 1021, 1022, 1023, 1024, 1025, 1026,
+ 1027, 1028, 1002, 1004, 1005, 1006, 1007, 1003, 1008, 1009,
+ 1010, 1011, 1012, 1013, 1014, 1029, 1015, 1030, 1016, 1017,
+ 1035, 1018, 1019, 1036, 1020, 1021, 1022, 1023, 1024, 1025,
+ 1026, 1027, 1028, 1031, 1033, 1037, 1038, 1032, 1039, 1040,
+ 1041, 1042, 1043, 1044, 1034, 1045, 1029, 1046, 1030, 1047,
+
+ 1048, 1035, 1049, 1050, 1036, 1051, 1052, 1053, 1054, 1055,
+ 1056, 1057, 1058, 1059, 1031, 1033, 1037, 1038, 1032, 1039,
+ 1040, 1041, 1042, 1043, 1044, 1034, 1045, 1060, 1046, 1061,
+ 1047, 1048, 1062, 1049, 1050, 1063, 1051, 1052, 1053, 1054,
+ 1055, 1056, 1057, 1058, 1059, 1064, 1065, 1066, 1067, 1068,
+ 1069, 937, 1070, 984, 1071, 1072, 1073, 1074, 1060, 1075,
+ 1061, 840, 840, 1062, 840, 840, 1063, 1076, 1077, 1078,
+ 1079, 1080, 1081, 1082, 1083, 1084, 1064, 1065, 1066, 1067,
+ 1068, 1069, 937, 1070, 984, 1071, 1072, 1073, 1074, 1085,
+ 1075, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1076, 1077,
+
+ 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1093, 1094, 1095,
+ 1096, 1097, 1098, 1099, 1100, 360, 1102, 1103, 1101, 1104,
+ 1085, 1105, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1106,
+ 360, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1093, 1094,
+ 1095, 1096, 1097, 1098, 1099, 1100, 360, 1114, 1103, 1101,
+ 1104, 1115, 1105, 1116, 1118, 1117, 1119, 1120, 1121, 1123,
+ 1106, 1122, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1124,
+ 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1114, 1133,
+ 1134, 1135, 1115, 1136, 1116, 1118, 1117, 1119, 1120, 1121,
+ 1123, 1137, 1122, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
+
+ 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1145,
+ 1133, 1134, 1135, 1146, 1136, 1147, 1154, 1155, 1156, 1159,
+ 1160, 1148, 1137, 1157, 1138, 1139, 1140, 1141, 1142, 1143,
+ 1144, 1149, 1161, 1158, 1150, 1151, 1162, 1163, 1152, 1153,
+ 1145, 1169, 1170, 2001, 1146, 1171, 1147, 1154, 1155, 1156,
+ 1159, 1160, 1148, 1172, 1157, 2001, 1173, 1174, 1175, 1176,
+ 1177, 1178, 1149, 1161, 1158, 1150, 1151, 1162, 1163, 1152,
+ 1153, 1164, 1169, 1170, 1165, 1179, 1171, 1166, 1180, 1181,
+ 1182, 1167, 1183, 1184, 1172, 1185, 1168, 1173, 1174, 1175,
+ 1176, 1177, 1178, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
+
+ 1193, 1194, 1164, 1195, 1196, 1165, 1179, 1197, 1166, 1180,
+ 1181, 1182, 1167, 1183, 1184, 1198, 1185, 1168, 1199, 1200,
+ 1201, 1202, 1203, 1204, 1186, 1187, 1188, 1189, 1190, 1191,
+ 1192, 1193, 1194, 1205, 1195, 1196, 1206, 1207, 1197, 1208,
+ 1209, 1210, 1211, 1212, 1213, 1214, 1198, 1215, 1216, 1199,
+ 1200, 1201, 1202, 1203, 1204, 1217, 1218, 1219, 1220, 1221,
+ 1222, 1223, 1224, 2001, 1205, 1227, 1228, 1206, 1207, 1229,
+ 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1230, 1215, 1216,
+ 1233, 1234, 1235, 1236, 1237, 1225, 1217, 1218, 1219, 1220,
+ 1221, 1222, 1223, 1224, 1226, 1231, 1227, 1228, 1238, 1239,
+
+ 1229, 1240, 1232, 1241, 1244, 1242, 1245, 1246, 1230, 1247,
+ 1248, 1233, 1234, 1235, 1236, 1237, 1225, 1249, 1250, 1251,
+ 1252, 1243, 1253, 1254, 1255, 1226, 1231, 1258, 1259, 1238,
+ 1239, 1262, 1240, 1232, 1241, 1244, 1242, 1245, 1246, 1256,
+ 1247, 1248, 1263, 1264, 1265, 1257, 1260, 1266, 1249, 1250,
+ 1251, 1252, 1243, 1253, 1254, 1255, 1261, 1267, 1258, 1259,
+ 1268, 1269, 1262, 1270, 1271, 1272, 1274, 1275, 1276, 1277,
+ 1256, 1278, 1279, 1263, 1264, 1265, 1257, 1260, 1266, 1280,
+ 1135, 1116, 1273, 1117, 1148, 1158, 2001, 1261, 1267, 1281,
+ 1221, 1268, 1269, 1282, 1270, 1271, 1272, 1274, 1275, 1276,
+
+ 1277, 1283, 1278, 1279, 1284, 1285, 1286, 1287, 1166, 1288,
+ 1280, 1135, 1116, 1273, 1117, 1148, 1158, 1168, 1289, 1290,
+ 1281, 1221, 1291, 1292, 1282, 1293, 1294, 1295, 1296, 1297,
+ 1298, 1299, 1283, 1300, 1301, 1284, 1285, 1286, 1287, 1166,
+ 1288, 1302, 1303, 1304, 1305, 360, 1306, 1308, 1168, 1289,
+ 1290, 1307, 1309, 1291, 1292, 1310, 1293, 1294, 1295, 1296,
+ 1297, 1298, 1299, 1311, 1300, 1301, 1312, 1313, 1314, 1315,
+ 1316, 360, 1302, 1303, 1304, 1305, 1317, 360, 1308, 1318,
+ 1319, 1320, 1307, 1309, 1321, 1322, 1310, 1323, 1324, 1325,
+ 1326, 1327, 1328, 1329, 1311, 1330, 1331, 1312, 1313, 1314,
+
+ 1315, 1316, 1332, 1333, 1334, 1335, 1336, 1317, 1337, 1338,
+ 1318, 1319, 1320, 1339, 1340, 1321, 1322, 1341, 1323, 1324,
+ 1325, 1326, 1327, 1328, 1329, 1342, 1330, 1331, 1343, 1344,
+ 1345, 1346, 1347, 1332, 1333, 1334, 1335, 1336, 1348, 1337,
+ 1338, 1349, 1350, 1351, 1339, 1340, 1352, 1353, 1341, 1354,
+ 1355, 1356, 1357, 1360, 1361, 1362, 1342, 1358, 1363, 1343,
+ 1344, 1345, 1346, 1347, 1364, 1359, 1365, 1366, 1367, 1348,
+ 1368, 1369, 1349, 1350, 1351, 1370, 1371, 1352, 1353, 1372,
+ 1354, 1355, 1356, 1357, 1360, 1361, 1362, 1373, 1358, 1363,
+ 1374, 1375, 1376, 1377, 1378, 1364, 1359, 1365, 1366, 1367,
+
+ 1379, 1368, 1369, 1380, 1381, 1382, 1370, 1371, 1383, 1384,
+ 1372, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1373, 1392,
+ 1393, 1374, 1375, 1376, 1377, 1378, 1394, 1396, 1397, 1398,
+ 1399, 1379, 1400, 1401, 1380, 1381, 1382, 1402, 1403, 1383,
+ 1384, 1404, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1405,
+ 1392, 1393, 1406, 1407, 1408, 1409, 1410, 1394, 1396, 1397,
+ 1398, 1399, 1411, 1400, 1401, 1412, 1413, 1414, 1402, 1403,
+ 1415, 1416, 1404, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
+ 1405, 1424, 1427, 1406, 1407, 1408, 1409, 1410, 1428, 1429,
+ 1430, 1431, 1432, 1411, 1433, 1425, 1412, 1413, 1414, 1434,
+
+ 1435, 1415, 1416, 1436, 1417, 1418, 1419, 1420, 1421, 1422,
+ 1423, 1426, 1424, 1427, 1437, 1438, 1439, 1440, 1441, 1428,
+ 1429, 1430, 1431, 1432, 1442, 1433, 1425, 1443, 1444, 1445,
+ 1434, 1435, 1446, 1447, 1436, 1448, 1449, 1450, 1451, 1452,
+ 1453, 1454, 1426, 1455, 1456, 1437, 1438, 1439, 1440, 1441,
+ 1457, 1458, 1459, 1460, 1461, 1442, 1462, 1463, 1443, 1444,
+ 1445, 1464, 1465, 1446, 1447, 1466, 1448, 1449, 1450, 1451,
+ 1452, 1453, 1454, 1467, 1455, 1456, 1468, 1469, 1470, 1471,
+ 1472, 1457, 1458, 1459, 1460, 1461, 1473, 1462, 1463, 1474,
+ 1476, 1477, 1464, 1465, 1478, 1479, 1466, 1480, 1481, 1482,
+
+ 1483, 1484, 1485, 1486, 1467, 1487, 1488, 1468, 1469, 1470,
+ 1471, 1472, 360, 360, 1489, 1490, 1491, 1473, 1492, 1493,
+ 1474, 1476, 1477, 1494, 1495, 1478, 1479, 1496, 1480, 1481,
+ 1482, 1483, 1484, 1485, 1486, 1497, 1487, 1488, 1498, 1499,
+ 1500, 1501, 1502, 1503, 1504, 1489, 1490, 1491, 1505, 1492,
+ 1493, 1506, 1507, 1508, 1494, 1495, 1509, 1510, 1496, 1511,
+ 1512, 1513, 1514, 1515, 1516, 1517, 1497, 1518, 1519, 1498,
+ 1499, 1500, 1501, 1502, 1503, 1504, 1520, 1521, 1522, 1505,
+ 1523, 1524, 1506, 1507, 1508, 1525, 1526, 1509, 1510, 1527,
+ 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1528, 1518, 1519,
+
+ 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1520, 1521, 1522,
+ 1536, 1523, 1524, 1537, 1538, 1539, 1525, 1526, 1540, 1541,
+ 1527, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1528, 1549,
+ 1550, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1553, 1551,
+ 1559, 1536, 2001, 1560, 1537, 1538, 1539, 1561, 2001, 1540,
+ 1541, 1562, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1552,
+ 1549, 1550, 1554, 1555, 1563, 1564, 1565, 1566, 1567, 1553,
+ 1551, 1559, 1568, 1556, 1560, 1557, 1569, 1570, 1561, 1558,
+ 1571, 1572, 1562, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
+ 1552, 1580, 1581, 1554, 1555, 1563, 1564, 1565, 1566, 1567,
+
+ 1582, 1583, 1584, 1568, 1556, 1587, 1557, 1569, 1570, 1588,
+ 1558, 1571, 1572, 1589, 1573, 1574, 1575, 1576, 1577, 1578,
+ 1579, 1590, 1580, 1581, 1585, 1591, 1586, 1592, 1593, 1594,
+ 1595, 1582, 1583, 1584, 1596, 1597, 1587, 1598, 1599, 1600,
+ 1588, 1601, 1602, 1603, 1589, 1604, 1605, 1606, 1607, 1608,
+ 1554, 1555, 1590, 1609, 1610, 1585, 1591, 1586, 1592, 1593,
+ 1594, 1595, 1611, 1557, 1612, 1596, 1597, 1558, 1598, 1599,
+ 1600, 1613, 1601, 1602, 1603, 1614, 1604, 1605, 1606, 1607,
+ 1608, 1554, 1555, 1615, 1609, 1610, 1616, 1617, 1618, 1619,
+ 1621, 1620, 1622, 1611, 1557, 1612, 1623, 1624, 1558, 1625,
+
+ 1626, 1627, 1613, 1628, 1629, 1630, 1614, 360, 1631, 1632,
+ 1633, 1634, 1635, 1636, 1615, 360, 1637, 1616, 1617, 1618,
+ 1619, 1621, 1620, 1622, 1638, 1639, 1640, 1623, 1624, 1641,
+ 1625, 1626, 1627, 1642, 1628, 1629, 1630, 1643, 1644, 1631,
+ 1632, 1633, 1634, 1635, 1636, 1645, 1646, 1637, 1647, 1648,
+ 1649, 1650, 1651, 1652, 1653, 1638, 1639, 1640, 1654, 1655,
+ 1641, 1656, 1657, 1658, 1642, 1659, 1660, 1661, 1643, 1644,
+ 1662, 1663, 1664, 1665, 1666, 1667, 1645, 1646, 1668, 1647,
+ 1648, 1649, 1650, 1651, 1652, 1653, 1669, 1670, 1671, 1654,
+ 1655, 1672, 1656, 1657, 1658, 1673, 1659, 1660, 1661, 1674,
+
+ 1675, 1662, 1663, 1664, 1665, 1666, 1667, 1676, 1677, 1668,
+ 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1669, 1670, 1671,
+ 1685, 1686, 1672, 1687, 1688, 1689, 1673, 1690, 1691, 1692,
+ 1674, 1675, 1694, 1695, 1697, 1698, 1699, 1693, 1676, 1677,
+ 1700, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1701, 1696,
+ 1702, 1685, 1686, 1703, 1687, 1688, 1689, 1704, 1690, 1691,
+ 1692, 1705, 1706, 1694, 1695, 1697, 1698, 1699, 1693, 1707,
+ 1708, 1700, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1701,
+ 1696, 1702, 1716, 1717, 1703, 1718, 1719, 1720, 1704, 1721,
+ 1722, 1723, 1705, 1706, 1724, 1725, 1726, 1727, 1728, 1729,
+
+ 1707, 1708, 1730, 1709, 1710, 1711, 1712, 1713, 1714, 1715,
+ 1731, 1732, 1733, 1716, 1717, 1734, 1718, 1719, 1720, 1735,
+ 1721, 1722, 1723, 1736, 1739, 1724, 1725, 1726, 1727, 1728,
+ 1729, 1737, 1738, 1730, 1740, 1741, 1742, 1743, 1744, 1745,
+ 1746, 1731, 1732, 1733, 1747, 1748, 1734, 1749, 360, 360,
+ 1735, 1750, 1751, 1752, 1736, 1739, 1753, 1754, 1755, 1756,
+ 1757, 1758, 1737, 1738, 1759, 1740, 1741, 1742, 1743, 1744,
+ 1745, 1746, 1760, 1761, 1762, 1747, 1748, 1763, 1749, 1764,
+ 1765, 1766, 1750, 1751, 1752, 1767, 1768, 1753, 1754, 1755,
+ 1756, 1757, 1758, 1769, 1770, 1759, 1771, 1772, 1773, 1774,
+
+ 1775, 1776, 1777, 1760, 1761, 1762, 1778, 1779, 1763, 1780,
+ 1764, 1765, 1766, 1781, 1782, 1783, 1767, 1768, 1784, 1785,
+ 1786, 1787, 1788, 1789, 1769, 1770, 1790, 1771, 1772, 1773,
+ 1774, 1775, 1776, 1777, 1791, 1792, 1793, 1778, 1779, 1794,
+ 1780, 1795, 1796, 1797, 1781, 1782, 1783, 1798, 1799, 1784,
+ 1785, 1786, 1787, 1788, 1789, 1800, 1801, 1790, 1802, 1803,
+ 1804, 1805, 1806, 1807, 1808, 1791, 1792, 1793, 1809, 1810,
+ 1794, 1811, 1795, 1796, 1797, 1812, 1813, 1814, 1798, 1799,
+ 1815, 1816, 1817, 1818, 1819, 1820, 1800, 1801, 1821, 1802,
+ 1803, 1804, 1805, 1806, 1807, 1808, 1822, 1823, 1824, 1809,
+
+ 1810, 1825, 1811, 1826, 1827, 1829, 1812, 1813, 1814, 1830,
+ 1828, 1815, 1816, 1817, 1818, 1819, 1820, 1831, 1832, 1821,
+ 360, 360, 1833, 1834, 1835, 1836, 1837, 1822, 1823, 1824,
+ 1838, 1839, 1825, 1840, 1826, 1827, 1829, 1841, 1842, 1843,
+ 1830, 1828, 1844, 1845, 1846, 1847, 1848, 1849, 1831, 1832,
+ 1850, 1851, 1852, 1833, 1834, 1835, 1836, 1837, 1853, 1854,
+ 1855, 1838, 1839, 1856, 1840, 1857, 1858, 1859, 1841, 1842,
+ 1843, 1860, 1861, 1844, 1845, 1846, 1847, 1848, 1849, 1862,
+ 1863, 1850, 1851, 1852, 1864, 1865, 1866, 1867, 1868, 1853,
+ 1854, 1855, 1869, 1870, 1856, 1871, 1857, 1858, 1859, 1872,
+
+ 1873, 1874, 1860, 1861, 1875, 1876, 1877, 1878, 1879, 1880,
+ 1862, 1863, 1881, 1884, 1885, 1864, 1865, 1866, 1867, 1868,
+ 2001, 1888, 1889, 1869, 1870, 1882, 1871, 1887, 1890, 1891,
+ 1872, 1873, 1874, 1892, 1893, 1875, 1876, 1877, 1878, 1879,
+ 1880, 1886, 1883, 1881, 1884, 1885, 1894, 360, 1895, 1896,
+ 1897, 360, 1888, 1889, 1898, 1899, 1882, 1900, 1887, 1890,
+ 1891, 1901, 1902, 1903, 1892, 1893, 1904, 1905, 1906, 1907,
+ 1908, 1909, 1886, 1883, 1910, 1911, 1912, 1894, 1913, 1895,
+ 1896, 1897, 1914, 1915, 1916, 1898, 1899, 1917, 1900, 1918,
+ 1919, 1920, 1901, 1902, 1903, 1921, 1922, 1904, 1905, 1906,
+
+ 1907, 1908, 1909, 1923, 1924, 1910, 1911, 1912, 1925, 1913,
+ 1927, 1928, 1929, 1914, 1915, 1916, 1926, 1930, 1917, 360,
+ 1918, 1919, 1920, 1931, 1932, 1933, 1921, 1922, 360, 1934,
+ 1935, 1936, 1937, 1938, 1923, 1924, 1939, 1940, 1941, 1925,
+ 1942, 1927, 1928, 1929, 1943, 1944, 1945, 1926, 1930, 1946,
+ 1947, 1948, 1949, 1950, 1931, 1932, 1933, 1951, 1952, 2001,
+ 1934, 1935, 1936, 1937, 1938, 1955, 1954, 1939, 1940, 1941,
+ 1953, 1942, 1956, 360, 1957, 1943, 1944, 1945, 1958, 1959,
+ 1946, 1947, 1948, 1949, 1950, 1960, 1961, 1962, 1951, 1952,
+ 360, 1963, 1964, 1965, 1966, 1967, 1955, 1954, 1968, 1969,
+
+ 1970, 1953, 1973, 1956, 1971, 1957, 1974, 1975, 1976, 1958,
+ 1959, 1977, 1978, 1979, 1980, 1981, 1960, 1961, 1962, 1983,
+ 1984, 1985, 1963, 1964, 1965, 1966, 1967, 1986, 360, 1968,
+ 1969, 1970, 1987, 1973, 1988, 1971, 1989, 1974, 1975, 1976,
+ 1990, 1991, 1977, 1978, 1979, 1980, 1981, 1992, 1993, 1994,
+ 1983, 1984, 1985, 1995, 1996, 1997, 1998, 1999, 1986, 2000,
+ 2001, 2001, 2001, 1987, 2001, 1988, 2001, 1989, 2001, 2001,
+ 2001, 1990, 1991, 2001, 2001, 2001, 2001, 2001, 1992, 1993,
+ 1994, 2001, 2001, 2001, 1995, 1996, 1997, 1998, 1999, 2001,
+ 2000, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 133,
+ 2001, 133, 133, 133, 133, 133, 133, 133, 134, 2001,
+ 134, 134, 134, 134, 134, 134, 134, 138, 138, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 253, 2001, 253,
+ 253, 253, 253, 253, 253, 253, 272, 2001, 272, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 367, 367, 367, 367,
+ 367, 367, 367, 367, 367, 368, 368, 368, 2001, 2001,
+
+ 368, 368, 2001, 368, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 553, 2001, 2001, 553, 553, 2001, 553,
+ 581, 581, 581, 2001, 581, 581, 581, 581, 581, 583,
+ 583, 583, 583, 2001, 583, 583, 583, 583, 623, 623,
+ 623, 623, 623, 623, 623, 623, 623, 13, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001
} ;
-static yyconst flex_int16_t yy_chk[4493] =
+static yyconst flex_int16_t yy_chk[4634] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1603,7 +1643,7 @@ static yyconst flex_int16_t yy_chk[4493] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
@@ -1612,7 +1652,7 @@ static yyconst flex_int16_t yy_chk[4493] =
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 5, 5,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
@@ -1622,7 +1662,7 @@ static yyconst flex_int16_t yy_chk[4493] =
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 7, 7, 7, 7, 7, 7, 7, 7,
+ 5, 5, 5, 5, 5, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
@@ -1631,465 +1671,480 @@ static yyconst flex_int16_t yy_chk[4493] =
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 9, 573, 9, 9,
- 10, 9, 10, 10, 9, 10, 11, 12, 10, 11,
- 12, 15, 1899, 15, 15, 20, 33, 20, 20, 21,
- 21, 34, 100, 40, 53, 34, 54, 55, 21, 118,
- 100, 1882, 23, 118, 23, 23, 68, 575, 68, 68,
- 354, 573, 354, 23, 24, 1259, 24, 33, 1166, 11,
- 12, 618, 34, 24, 40, 53, 34, 54, 55, 21,
-
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 23, 24, 22, 24, 575, 22,
- 56, 22, 25, 29, 24, 57, 25, 29, 59, 574,
- 25, 29, 572, 60, 32, 32, 61, 29, 62, 25,
- 29, 32, 25, 27, 64, 65, 27, 27, 22, 22,
- 22, 56, 22, 25, 29, 544, 57, 25, 29, 59,
- 27, 25, 29, 27, 60, 32, 32, 61, 29, 62,
- 25, 29, 32, 25, 27, 64, 65, 27, 27, 22,
- 22, 22, 22, 22, 26, 66, 26, 465, 70, 26,
- 26, 27, 359, 26, 27, 37, 26, 76, 81, 26,
-
- 26, 28, 28, 28, 31, 106, 30, 28, 31, 37,
- 30, 357, 31, 28, 30, 26, 66, 26, 45, 70,
- 26, 26, 45, 30, 26, 353, 37, 26, 76, 81,
- 26, 26, 28, 28, 28, 31, 106, 30, 28, 31,
- 37, 30, 58, 31, 28, 30, 58, 366, 366, 45,
- 67, 67, 348, 45, 30, 35, 36, 35, 78, 35,
- 36, 63, 78, 35, 36, 107, 35, 63, 88, 35,
- 88, 41, 35, 58, 315, 41, 36, 58, 63, 41,
- 36, 367, 367, 67, 313, 41, 35, 36, 35, 78,
- 35, 36, 63, 78, 35, 36, 107, 35, 63, 88,
-
- 35, 88, 41, 35, 77, 77, 41, 36, 109, 63,
- 41, 36, 38, 38, 103, 39, 41, 74, 270, 39,
- 38, 74, 38, 39, 38, 74, 39, 38, 38, 39,
- 103, 74, 39, 138, 138, 77, 77, 138, 138, 109,
- 69, 252, 69, 38, 38, 103, 39, 251, 74, 69,
- 39, 38, 74, 38, 39, 38, 74, 39, 38, 38,
- 39, 103, 74, 39, 42, 42, 42, 249, 43, 42,
- 42, 69, 43, 69, 42, 113, 43, 105, 42, 44,
- 69, 42, 43, 42, 115, 43, 42, 75, 44, 80,
- 44, 105, 43, 80, 44, 42, 42, 42, 44, 43,
-
- 42, 42, 139, 43, 75, 42, 113, 43, 105, 42,
- 44, 133, 42, 43, 42, 115, 43, 42, 75, 44,
- 80, 44, 105, 43, 80, 44, 46, 46, 132, 44,
- 46, 71, 46, 71, 46, 75, 73, 73, 72, 46,
- 71, 72, 72, 71, 116, 79, 71, 73, 125, 79,
- 84, 102, 124, 79, 84, 102, 120, 46, 46, 79,
- 119, 46, 71, 46, 71, 46, 101, 73, 73, 72,
- 46, 71, 72, 72, 71, 116, 79, 71, 73, 82,
- 79, 84, 102, 83, 79, 84, 102, 82, 108, 82,
- 79, 83, 85, 85, 82, 82, 104, 83, 86, 104,
-
- 83, 112, 86, 108, 85, 112, 87, 127, 86, 85,
- 82, 86, 368, 368, 83, 87, 99, 87, 82, 108,
- 82, 87, 83, 85, 85, 82, 82, 104, 83, 86,
- 104, 83, 112, 86, 108, 85, 112, 87, 127, 86,
- 85, 90, 86, 90, 90, 128, 87, 91, 87, 91,
- 91, 96, 87, 96, 96, 97, 97, 98, 110, 98,
- 98, 111, 114, 117, 97, 141, 114, 123, 98, 123,
- 123, 111, 117, 110, 129, 95, 128, 129, 117, 130,
- 94, 130, 130, 93, 146, 148, 143, 143, 117, 110,
- 143, 143, 111, 114, 117, 97, 141, 114, 150, 98,
-
- 144, 153, 111, 117, 110, 134, 134, 144, 135, 117,
- 135, 135, 137, 137, 134, 146, 148, 129, 154, 135,
- 155, 137, 373, 373, 374, 374, 92, 142, 142, 150,
- 49, 144, 153, 576, 576, 48, 142, 147, 144, 159,
- 160, 19, 319, 319, 13, 134, 319, 319, 147, 154,
- 135, 155, 137, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 142, 147, 140,
- 159, 160, 140, 145, 140, 149, 156, 145, 151, 147,
- 157, 149, 157, 162, 145, 163, 164, 162, 165, 168,
- 145, 170, 151, 0, 167, 167, 156, 172, 174, 175,
-
- 176, 140, 140, 140, 145, 140, 149, 156, 145, 151,
- 166, 157, 149, 157, 162, 145, 163, 164, 162, 165,
- 168, 145, 170, 151, 166, 167, 167, 156, 172, 174,
- 175, 176, 140, 140, 140, 140, 140, 177, 169, 171,
- 178, 166, 169, 171, 173, 179, 173, 173, 178, 180,
- 173, 181, 182, 184, 178, 166, 0, 185, 186, 187,
- 577, 577, 0, 191, 193, 606, 198, 606, 177, 169,
- 171, 178, 0, 169, 171, 173, 179, 173, 173, 178,
- 180, 173, 181, 182, 184, 178, 183, 183, 185, 186,
- 187, 188, 183, 190, 191, 193, 196, 198, 190, 190,
-
- 199, 202, 195, 183, 195, 195, 203, 188, 204, 188,
- 195, 200, 196, 205, 188, 580, 580, 183, 183, 200,
- 206, 201, 188, 183, 190, 201, 207, 196, 208, 190,
- 190, 199, 202, 195, 183, 195, 195, 203, 188, 204,
- 188, 195, 200, 196, 205, 188, 197, 197, 197, 210,
- 200, 206, 201, 209, 197, 209, 201, 207, 211, 208,
- 212, 213, 214, 215, 213, 216, 581, 581, 214, 218,
- 216, 213, 0, 219, 220, 221, 0, 197, 197, 197,
- 210, 222, 223, 0, 209, 197, 209, 225, 226, 211,
- 228, 212, 213, 214, 215, 213, 216, 217, 217, 214,
-
- 218, 216, 213, 217, 219, 220, 221, 217, 217, 227,
- 217, 229, 222, 223, 224, 224, 230, 233, 225, 226,
- 231, 228, 232, 235, 232, 0, 238, 224, 217, 217,
- 232, 231, 240, 227, 217, 241, 234, 242, 217, 217,
- 227, 217, 229, 243, 234, 224, 224, 230, 233, 244,
- 245, 231, 246, 232, 235, 232, 234, 238, 224, 247,
- 248, 232, 231, 240, 227, 253, 241, 234, 242, 254,
- 255, 256, 257, 259, 243, 234, 258, 260, 261, 262,
- 244, 245, 263, 246, 264, 265, 266, 234, 267, 268,
- 247, 248, 269, 273, 275, 263, 253, 276, 0, 258,
-
- 254, 255, 256, 257, 259, 271, 271, 258, 260, 261,
- 262, 278, 279, 263, 274, 264, 265, 266, 280, 267,
- 268, 274, 281, 269, 273, 275, 263, 274, 276, 277,
- 258, 277, 282, 283, 285, 286, 282, 284, 271, 284,
- 284, 288, 278, 279, 287, 274, 289, 290, 291, 280,
- 287, 292, 274, 281, 293, 294, 296, 297, 274, 298,
- 277, 287, 277, 282, 283, 285, 286, 282, 284, 299,
- 284, 284, 288, 300, 301, 287, 302, 289, 290, 291,
- 303, 287, 292, 300, 304, 293, 294, 296, 297, 305,
- 298, 306, 287, 308, 309, 307, 310, 311, 321, 321,
-
- 299, 308, 321, 321, 300, 301, 307, 302, 316, 316,
- 317, 303, 317, 317, 300, 304, 326, 316, 327, 328,
- 305, 317, 306, 329, 308, 309, 307, 310, 311, 318,
- 318, 331, 308, 320, 320, 330, 330, 307, 318, 333,
- 332, 334, 320, 335, 337, 338, 340, 326, 316, 327,
- 328, 342, 317, 332, 329, 343, 344, 345, 346, 347,
- 346, 0, 331, 369, 349, 350, 330, 330, 0, 318,
- 333, 332, 334, 320, 335, 337, 338, 340, 351, 375,
- 608, 608, 342, 376, 332, 0, 343, 344, 345, 346,
- 347, 346, 349, 350, 369, 349, 350, 364, 364, 351,
-
- 365, 365, 371, 371, 365, 365, 364, 377, 378, 351,
- 375, 371, 372, 372, 376, 379, 372, 372, 380, 381,
- 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
- 392, 393, 394, 395, 0, 398, 399, 364, 377, 378,
- 401, 402, 371, 403, 404, 405, 379, 406, 0, 380,
- 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
- 391, 392, 393, 394, 395, 396, 398, 399, 400, 408,
- 409, 401, 402, 396, 403, 404, 405, 410, 406, 396,
- 411, 412, 413, 414, 415, 400, 416, 417, 418, 419,
- 421, 414, 422, 423, 424, 425, 396, 426, 418, 400,
-
- 408, 409, 427, 428, 396, 429, 431, 432, 410, 433,
- 396, 411, 412, 413, 414, 415, 400, 416, 417, 418,
- 419, 421, 414, 422, 423, 424, 425, 430, 426, 418,
- 434, 430, 435, 427, 428, 436, 429, 431, 432, 437,
- 433, 438, 439, 440, 441, 436, 442, 443, 444, 445,
- 448, 449, 0, 607, 451, 607, 453, 0, 430, 454,
- 0, 434, 430, 435, 452, 456, 436, 457, 452, 458,
- 437, 0, 438, 439, 440, 441, 436, 442, 443, 444,
- 445, 448, 449, 450, 450, 451, 450, 453, 450, 450,
- 454, 450, 459, 460, 450, 452, 456, 450, 457, 452,
-
- 458, 450, 450, 461, 462, 450, 610, 610, 463, 0,
- 466, 611, 611, 467, 450, 450, 469, 450, 470, 450,
- 450, 471, 450, 459, 460, 450, 468, 472, 450, 474,
- 468, 475, 450, 450, 461, 462, 450, 455, 455, 463,
- 455, 466, 455, 455, 467, 455, 473, 469, 455, 470,
- 478, 476, 471, 477, 473, 455, 455, 468, 472, 455,
- 474, 468, 475, 479, 477, 480, 481, 482, 455, 455,
- 479, 455, 483, 455, 455, 476, 455, 473, 484, 455,
- 485, 478, 476, 486, 477, 473, 455, 455, 487, 488,
- 455, 489, 490, 491, 479, 477, 480, 481, 482, 493,
-
- 494, 479, 495, 483, 496, 497, 476, 498, 499, 484,
- 500, 485, 494, 501, 486, 503, 504, 505, 506, 487,
- 488, 507, 489, 490, 491, 508, 509, 510, 511, 512,
- 493, 494, 513, 495, 514, 496, 497, 515, 498, 499,
- 516, 500, 515, 494, 501, 518, 503, 504, 505, 506,
- 517, 521, 507, 524, 525, 526, 508, 509, 510, 511,
- 512, 527, 517, 513, 528, 514, 529, 530, 515, 531,
- 532, 516, 534, 515, 535, 536, 518, 537, 538, 539,
- 540, 517, 521, 541, 524, 525, 526, 542, 546, 547,
- 548, 549, 527, 517, 550, 528, 551, 529, 530, 552,
-
- 531, 532, 553, 534, 554, 535, 536, 555, 537, 538,
- 539, 540, 556, 557, 541, 558, 559, 560, 542, 546,
- 547, 548, 549, 557, 561, 550, 562, 551, 563, 564,
- 552, 565, 566, 553, 567, 554, 568, 569, 555, 570,
- 571, 578, 578, 556, 557, 0, 558, 559, 560, 582,
- 578, 583, 584, 585, 557, 561, 586, 562, 587, 563,
- 564, 588, 565, 566, 589, 567, 590, 568, 569, 591,
- 570, 571, 579, 579, 592, 593, 579, 579, 594, 596,
- 582, 578, 583, 584, 585, 597, 598, 586, 599, 587,
- 600, 601, 588, 602, 603, 589, 0, 590, 604, 605,
-
- 591, 612, 613, 603, 614, 592, 593, 615, 616, 594,
- 596, 604, 617, 619, 620, 621, 597, 598, 622, 599,
- 623, 600, 601, 624, 602, 603, 625, 605, 627, 604,
- 605, 628, 612, 613, 629, 614, 630, 631, 615, 616,
- 632, 633, 634, 617, 619, 620, 621, 635, 637, 622,
- 628, 623, 638, 636, 624, 636, 639, 625, 640, 627,
- 642, 643, 628, 644, 645, 629, 646, 630, 631, 647,
- 648, 632, 633, 634, 649, 650, 652, 653, 635, 637,
- 654, 628, 655, 638, 636, 656, 636, 639, 657, 640,
- 658, 642, 643, 660, 644, 645, 661, 646, 662, 663,
-
- 647, 648, 664, 665, 666, 649, 650, 652, 653, 667,
- 668, 654, 669, 655, 670, 671, 656, 672, 673, 657,
- 674, 658, 676, 678, 660, 677, 679, 661, 680, 662,
- 663, 681, 677, 664, 665, 666, 682, 683, 685, 687,
- 667, 668, 689, 669, 690, 670, 671, 691, 672, 673,
- 692, 674, 693, 676, 678, 694, 677, 679, 686, 680,
- 695, 696, 681, 677, 698, 686, 697, 682, 683, 685,
- 687, 699, 697, 689, 700, 690, 701, 702, 691, 703,
- 704, 692, 705, 693, 697, 706, 694, 707, 708, 686,
- 709, 695, 696, 710, 711, 698, 686, 697, 713, 714,
-
- 715, 0, 699, 697, 716, 700, 717, 701, 702, 719,
- 703, 704, 721, 705, 712, 697, 706, 723, 707, 708,
- 712, 709, 722, 724, 710, 711, 722, 725, 726, 713,
- 714, 715, 712, 727, 728, 716, 729, 717, 730, 731,
- 719, 732, 733, 721, 734, 712, 735, 736, 723, 737,
- 738, 712, 740, 722, 724, 739, 741, 722, 725, 726,
- 739, 742, 743, 712, 727, 728, 744, 729, 745, 730,
- 731, 746, 732, 733, 747, 734, 748, 735, 736, 749,
- 737, 738, 750, 740, 751, 752, 739, 741, 753, 754,
- 755, 739, 742, 743, 756, 757, 758, 744, 759, 745,
-
- 760, 761, 746, 762, 763, 747, 764, 748, 765, 766,
- 749, 771, 769, 750, 767, 751, 752, 772, 767, 753,
- 754, 755, 769, 773, 774, 756, 757, 758, 775, 759,
- 777, 760, 761, 778, 762, 763, 779, 764, 780, 765,
- 766, 781, 771, 769, 782, 767, 783, 785, 772, 767,
- 786, 787, 788, 769, 773, 774, 789, 790, 791, 775,
- 792, 777, 793, 794, 778, 795, 796, 779, 797, 780,
- 799, 800, 781, 801, 802, 782, 803, 783, 785, 805,
- 807, 786, 787, 788, 808, 809, 810, 789, 790, 791,
- 811, 792, 812, 793, 794, 813, 795, 796, 815, 797,
-
- 816, 799, 800, 822, 801, 802, 823, 803, 819, 819,
- 805, 807, 820, 820, 824, 808, 809, 810, 825, 826,
- 827, 811, 828, 812, 829, 830, 813, 831, 832, 815,
- 833, 816, 834, 835, 822, 836, 837, 823, 838, 839,
- 840, 842, 842, 847, 841, 824, 849, 843, 850, 825,
- 826, 827, 852, 828, 853, 829, 830, 855, 831, 832,
- 843, 833, 856, 834, 835, 857, 836, 837, 858, 838,
- 839, 840, 841, 859, 847, 841, 860, 849, 843, 850,
- 862, 864, 863, 852, 863, 853, 865, 866, 855, 867,
- 868, 869, 870, 856, 872, 873, 857, 874, 875, 858,
-
- 878, 880, 881, 881, 859, 883, 884, 860, 885, 886,
- 887, 862, 864, 863, 888, 863, 890, 865, 866, 891,
- 867, 868, 869, 870, 893, 872, 873, 894, 874, 875,
- 897, 878, 880, 881, 881, 898, 883, 884, 900, 885,
- 886, 887, 901, 903, 904, 888, 899, 890, 906, 907,
- 891, 908, 909, 0, 904, 893, 899, 0, 894, 899,
- 899, 897, 0, 899, 899, 912, 898, 914, 915, 900,
- 916, 917, 918, 901, 903, 904, 919, 899, 910, 906,
- 907, 910, 908, 909, 910, 904, 920, 899, 910, 921,
- 899, 899, 922, 910, 899, 899, 912, 923, 914, 915,
-
- 924, 916, 917, 918, 925, 926, 927, 919, 928, 910,
- 929, 930, 910, 931, 932, 910, 933, 920, 934, 910,
- 921, 936, 937, 922, 910, 938, 939, 940, 923, 941,
- 942, 924, 943, 944, 945, 925, 926, 927, 946, 928,
- 947, 929, 930, 948, 931, 932, 950, 933, 952, 934,
- 953, 954, 936, 937, 955, 956, 938, 939, 940, 957,
- 941, 942, 958, 943, 944, 945, 959, 960, 961, 946,
- 962, 947, 963, 964, 948, 965, 966, 950, 967, 952,
- 968, 953, 954, 969, 970, 955, 956, 971, 973, 974,
- 957, 972, 975, 958, 976, 977, 978, 959, 960, 961,
-
- 972, 962, 977, 963, 964, 979, 965, 966, 980, 967,
- 981, 968, 982, 983, 969, 970, 984, 985, 971, 973,
- 974, 989, 972, 975, 990, 976, 977, 978, 988, 991,
- 988, 972, 992, 977, 993, 994, 979, 996, 997, 980,
- 998, 981, 999, 982, 983, 1001, 988, 984, 985, 1002,
- 1003, 1004, 989, 1006, 1007, 990, 1003, 1008, 1009, 988,
- 991, 988, 1012, 992, 1007, 993, 994, 1013, 996, 997,
- 1014, 998, 1015, 999, 1019, 1020, 1001, 988, 1024, 1021,
- 1002, 1003, 1004, 1025, 1006, 1007, 1026, 1003, 1008, 1009,
- 1027, 1028, 1029, 1012, 1031, 1007, 1021, 1033, 1013, 1033,
-
- 1035, 1014, 1036, 1015, 1037, 1019, 1020, 1038, 1039, 1024,
- 1021, 1040, 1041, 1042, 1025, 1043, 1038, 1026, 1044, 1045,
- 1046, 1027, 1028, 1029, 1047, 1031, 1048, 1021, 1033, 1049,
- 1033, 1035, 1050, 1036, 1051, 1037, 1052, 1053, 1038, 1039,
- 1054, 1055, 1040, 1041, 1042, 1057, 1043, 1038, 1058, 1044,
- 1045, 1046, 1059, 1060, 1061, 1047, 1063, 1048, 1062, 1062,
- 1049, 1065, 1064, 1050, 1066, 1051, 1067, 1052, 1053, 1068,
- 1069, 1054, 1055, 1070, 1072, 1075, 1057, 1077, 1078, 1058,
- 1079, 1080, 1063, 1059, 1060, 1061, 1064, 1063, 1082, 1083,
- 1084, 1085, 1065, 1064, 1086, 1066, 1087, 1067, 1089, 1090,
-
- 1068, 1069, 1091, 1092, 1070, 1072, 1075, 1094, 1077, 1078,
- 1096, 1079, 1080, 1098, 1100, 1101, 1102, 1103, 1106, 1082,
- 1083, 1084, 1085, 1107, 1108, 1086, 1109, 1087, 1110, 1089,
- 1090, 1111, 1113, 1091, 1092, 1114, 1115, 1116, 1094, 1117,
- 1118, 1096, 1119, 1120, 1098, 1100, 1101, 1102, 1103, 1106,
- 1121, 1122, 1123, 1124, 1107, 1108, 1125, 1109, 1128, 1110,
- 1129, 1124, 1111, 1113, 1130, 1131, 1114, 1115, 1116, 1132,
- 1117, 1118, 1133, 1119, 1120, 1134, 1135, 1136, 1137, 1138,
- 1139, 1121, 1122, 1123, 1124, 1140, 1141, 1125, 1142, 1128,
- 1143, 1129, 1124, 1144, 1146, 1130, 1131, 1148, 1149, 1150,
-
- 1132, 1151, 1152, 1133, 1153, 1154, 1134, 1135, 1136, 1137,
- 1138, 1139, 1155, 1156, 1157, 1158, 1140, 1141, 1159, 1142,
- 1160, 1143, 1161, 1162, 1144, 1146, 1165, 1167, 1148, 1149,
- 1150, 1168, 1151, 1152, 1169, 1153, 1154, 1170, 1171, 1172,
- 1173, 1174, 1179, 1155, 1156, 1157, 1158, 1180, 1181, 1159,
- 1182, 1160, 1183, 1161, 1162, 1184, 1185, 1165, 1167, 1186,
- 1187, 1188, 1168, 1189, 1190, 1169, 1192, 1194, 1170, 1171,
- 1172, 1173, 1174, 1179, 1195, 1196, 1197, 1198, 1180, 1181,
- 1199, 1182, 1200, 1183, 1201, 1202, 1184, 1185, 1203, 1206,
- 1186, 1187, 1188, 1209, 1189, 1190, 1210, 1192, 1194, 1211,
-
- 1212, 1202, 1213, 1214, 1215, 1195, 1196, 1197, 1198, 1216,
- 1217, 1199, 1218, 1200, 1219, 1201, 1202, 1220, 1221, 1203,
- 1206, 1222, 1225, 1227, 1209, 1228, 1230, 1210, 1231, 1232,
- 1211, 1212, 1202, 1213, 1214, 1215, 1233, 1234, 1235, 1236,
- 1216, 1217, 1238, 1218, 1241, 1219, 1242, 1243, 1220, 1221,
- 1244, 1245, 1222, 1225, 1227, 1246, 1228, 1230, 1247, 1231,
- 1232, 1248, 1249, 1251, 1252, 1253, 1254, 1233, 1234, 1235,
- 1236, 1255, 1257, 1238, 1260, 1241, 1258, 1242, 1243, 1261,
- 1262, 1244, 1245, 1263, 1264, 1265, 1246, 1266, 1267, 1247,
- 1268, 1269, 1248, 1249, 1251, 1252, 1253, 1254, 1257, 1271,
-
- 1258, 1272, 1255, 1257, 1274, 1260, 1275, 1258, 1277, 1279,
- 1261, 1262, 1280, 1281, 1263, 1264, 1265, 1283, 1266, 1267,
- 1285, 1268, 1269, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
- 1271, 1293, 1272, 1294, 1296, 1274, 1297, 1275, 1298, 1277,
- 1279, 1299, 1301, 1280, 1281, 1302, 1303, 1304, 1283, 1305,
- 1306, 1285, 1307, 1308, 1286, 1287, 1288, 1289, 1290, 1291,
- 1292, 1309, 1293, 1311, 1294, 1296, 1312, 1297, 1314, 1298,
- 1315, 1316, 1299, 1301, 1317, 1318, 1302, 1303, 1304, 1319,
- 1305, 1306, 1320, 1307, 1308, 1321, 1323, 1324, 1325, 1326,
- 1327, 1329, 1309, 1330, 1311, 1331, 1332, 1312, 1333, 1314,
-
- 1334, 1315, 1316, 1335, 1337, 1317, 1318, 1338, 1339, 1340,
- 1319, 1341, 1343, 1320, 1343, 1345, 1321, 1323, 1324, 1325,
- 1326, 1327, 1329, 1347, 1330, 1349, 1331, 1332, 1346, 1333,
- 1351, 1334, 1352, 1354, 1335, 1337, 1348, 1348, 1338, 1339,
- 1340, 1356, 1341, 1343, 1357, 1343, 1345, 1348, 1346, 1348,
- 1358, 1359, 1360, 1348, 1347, 1361, 1349, 1362, 1363, 1346,
- 1364, 1351, 1365, 1352, 1354, 1366, 1367, 1348, 1348, 1368,
- 1369, 1370, 1356, 1371, 1372, 1357, 1373, 1374, 1348, 1346,
- 1348, 1358, 1359, 1360, 1348, 1375, 1361, 1376, 1362, 1363,
- 1377, 1364, 1378, 1365, 1378, 1379, 1366, 1367, 1380, 1381,
-
- 1368, 1369, 1370, 1382, 1371, 1372, 1384, 1373, 1374, 1385,
- 1386, 1387, 1388, 1389, 1390, 1391, 1375, 1392, 1376, 1393,
- 1394, 1377, 1395, 1378, 1396, 1378, 1379, 1397, 1398, 1380,
- 1381, 1399, 1401, 1403, 1382, 1405, 1406, 1384, 0, 1408,
- 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1409, 1392, 1410,
- 1393, 1394, 1411, 1395, 1412, 1396, 1400, 1400, 1397, 1398,
- 1413, 1414, 1399, 1401, 1403, 1416, 1405, 1406, 1419, 1400,
- 1408, 1420, 1421, 1400, 1422, 1423, 1417, 1425, 1409, 1426,
- 1410, 1427, 1428, 1411, 1429, 1412, 1430, 1400, 1400, 1416,
- 1431, 1413, 1414, 1417, 1432, 1433, 1416, 1435, 1436, 1419,
-
- 1400, 1437, 1420, 1421, 1400, 1422, 1423, 1417, 1425, 1438,
- 1426, 1439, 1427, 1428, 1440, 1429, 1442, 1430, 1443, 1444,
- 1445, 1431, 1446, 1448, 1449, 1432, 1433, 1450, 1435, 1436,
- 1452, 1453, 1437, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
- 1438, 1461, 1439, 1462, 1463, 1440, 1464, 1442, 1465, 1443,
- 1444, 1445, 1466, 1446, 1448, 1449, 1467, 1468, 1450, 1469,
- 1470, 1452, 1453, 1471, 1454, 1455, 1456, 1457, 1458, 1459,
- 1460, 1472, 1461, 1476, 1462, 1463, 1477, 1464, 1478, 1465,
- 1479, 1480, 1481, 1466, 1482, 1483, 1484, 1467, 1468, 1487,
- 1469, 1470, 1488, 1489, 1471, 1490, 1491, 1492, 1493, 1494,
-
- 1495, 1497, 1472, 1498, 1476, 1500, 1496, 1477, 1501, 1478,
- 1503, 1479, 1480, 1481, 1496, 1482, 1483, 1484, 1504, 1498,
- 1487, 1506, 1507, 1488, 1489, 1508, 1490, 1491, 1492, 1493,
- 1494, 1495, 1497, 1510, 1498, 1511, 1500, 1496, 1512, 1501,
- 1513, 1503, 1515, 1517, 1518, 1496, 1520, 1521, 1522, 1504,
- 1498, 1523, 1506, 1507, 1524, 1525, 1508, 1526, 1527, 1529,
- 1531, 1532, 1533, 1537, 1510, 1538, 1511, 1539, 1540, 1512,
- 1541, 1513, 1543, 1515, 1517, 1518, 1544, 1520, 1521, 1522,
- 1546, 1549, 1523, 1552, 1553, 1524, 1525, 1555, 1526, 1527,
- 1529, 1531, 1532, 1533, 1537, 1556, 1538, 1560, 1539, 1540,
-
- 1558, 1541, 1559, 1543, 1561, 1563, 1565, 1544, 1567, 1569,
- 1570, 1546, 1549, 1571, 1552, 1553, 1573, 1558, 1555, 1559,
- 1574, 1576, 1577, 1578, 1580, 1583, 1556, 1585, 1560, 1588,
- 1589, 1558, 1590, 1559, 1591, 1561, 1563, 1565, 1593, 1567,
- 1569, 1570, 1594, 1595, 1571, 1596, 1597, 1573, 1598, 1599,
- 1600, 1574, 1576, 1577, 1578, 1580, 1583, 1601, 1585, 1602,
- 1588, 1589, 1603, 1590, 1605, 1591, 1606, 1607, 1608, 1593,
- 1609, 1610, 1611, 1594, 1595, 1612, 1596, 1597, 1613, 1598,
- 1599, 1600, 1615, 1616, 1617, 1618, 1619, 1620, 1601, 1621,
- 1602, 1622, 1623, 1603, 1624, 1605, 1625, 1606, 1607, 1608,
-
- 1626, 1609, 1610, 1611, 1627, 1628, 1612, 1629, 1630, 1613,
- 1631, 1632, 1633, 1615, 1616, 1617, 1618, 1619, 1620, 1634,
- 1621, 1635, 1622, 1623, 1636, 1624, 1637, 1625, 1638, 1641,
- 1642, 1626, 1643, 1644, 1645, 1627, 1628, 1646, 1629, 1630,
- 1647, 1631, 1632, 1633, 1651, 1653, 1655, 1657, 1658, 1659,
- 1634, 1660, 1635, 1662, 1664, 1636, 1665, 1637, 1666, 1638,
- 1641, 1642, 1667, 1643, 1644, 1645, 1668, 1669, 1646, 1671,
- 1673, 1647, 1675, 1672, 1676, 1651, 1653, 1655, 1657, 1658,
- 1659, 1679, 1660, 1672, 1662, 1664, 1671, 1665, 1680, 1666,
- 1681, 1684, 1685, 1667, 1687, 1692, 1693, 1668, 1669, 1694,
-
- 1671, 1673, 1695, 1675, 1672, 1676, 1696, 1697, 1700, 1701,
- 1702, 1703, 1679, 1704, 1705, 1706, 1707, 1709, 1710, 1680,
- 1711, 1681, 1684, 1685, 1712, 1687, 1692, 1693, 1713, 1714,
- 1694, 1715, 1716, 1695, 1717, 1719, 1720, 1696, 1697, 1700,
- 1701, 1702, 1703, 1721, 1704, 1705, 1706, 1707, 1709, 1710,
- 1722, 1711, 1723, 1724, 1725, 1712, 1726, 1727, 1728, 1713,
- 1714, 1729, 1715, 1716, 1730, 1717, 1719, 1720, 1731, 1733,
- 1736, 1738, 1742, 1744, 1721, 1745, 1746, 1747, 1749, 1753,
- 1758, 1722, 0, 1723, 1724, 1725, 1761, 1726, 1727, 1728,
- 1758, 1762, 1729, 1759, 1747, 1730, 1763, 1765, 1766, 1731,
-
- 1733, 1736, 1738, 1742, 1744, 1767, 1745, 1746, 1747, 1749,
- 1753, 1758, 1768, 1759, 1770, 1771, 1772, 1761, 1773, 1774,
- 1779, 1780, 1762, 1781, 1759, 1747, 1784, 1763, 1765, 1766,
- 1787, 1788, 1790, 1792, 1793, 1794, 1767, 1795, 1796, 1797,
- 1798, 1799, 1800, 1768, 1802, 1770, 1771, 1772, 1805, 1773,
- 1774, 1779, 1780, 1807, 1781, 1809, 1810, 1784, 1811, 1812,
- 1814, 1787, 1788, 1790, 1792, 1793, 1794, 1818, 1795, 1796,
- 1797, 1798, 1799, 1800, 1816, 1802, 1820, 1817, 1821, 1805,
- 1817, 1823, 1825, 1826, 1807, 1827, 1809, 1810, 1829, 1811,
- 1812, 1814, 1830, 1831, 1816, 1833, 1834, 1836, 1818, 1837,
-
- 1841, 1843, 1844, 1845, 1846, 1816, 1847, 1820, 1817, 1821,
- 1848, 1849, 1823, 1825, 1826, 1850, 1827, 1851, 1853, 1829,
- 1855, 1856, 1854, 1830, 1831, 1854, 1833, 1834, 1836, 1857,
- 1837, 1841, 1843, 1844, 1845, 1846, 1860, 1847, 1861, 1863,
- 1864, 1848, 1849, 1866, 1855, 1870, 1850, 1871, 1851, 1853,
- 1872, 1855, 1856, 1854, 1873, 1875, 1876, 1877, 1878, 1879,
- 1857, 0, 1883, 1885, 1886, 1887, 1888, 1860, 1881, 1861,
- 1863, 1864, 1890, 1893, 1866, 1896, 1870, 1897, 1871, 1902,
- 1903, 1872, 1906, 1907, 1908, 1873, 1875, 1876, 1877, 1878,
- 1879, 1911, 1881, 1883, 1885, 1886, 1887, 1888, 1912, 1881,
-
- 1913, 1914, 1916, 1890, 1893, 1917, 1896, 1918, 1897, 1919,
- 1902, 1903, 1922, 1906, 1907, 1908, 1923, 1924, 1926, 1927,
- 0, 0, 1911, 0, 0, 0, 0, 0, 0, 1912,
- 0, 1913, 1914, 1916, 0, 0, 1917, 0, 1918, 0,
- 1919, 0, 0, 1922, 0, 0, 0, 1923, 1924, 1926,
- 1927, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
- 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1932,
- 0, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1933, 0,
- 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1934, 1934, 1935,
- 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1936, 1936,
-
- 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1937, 0, 1937,
- 1937, 1937, 1937, 1937, 1937, 1937, 1938, 0, 1938, 1939,
- 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1940, 1940,
- 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1941, 1941, 1941,
- 1941, 1941, 1941, 1941, 1941, 1941, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1943, 1943, 1943, 0, 0,
- 1943, 1943, 0, 1943, 1944, 1944, 1944, 1944, 1944, 1944,
- 1944, 1944, 1944, 1945, 0, 0, 1945, 1945, 0, 1945,
- 1946, 1946, 1946, 0, 1946, 1946, 1946, 1946, 1946, 1947,
- 1947, 1947, 1947, 0, 1947, 1947, 1947, 1947, 1948, 1948,
-
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
- 1929, 1929
-
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 9, 1971, 9, 9, 10, 9, 10, 10, 9, 10,
+ 11, 12, 10, 11, 12, 15, 33, 15, 15, 20,
+ 1954, 20, 20, 21, 21, 32, 32, 1308, 40, 53,
+ 54, 55, 32, 21, 1209, 100, 23, 120, 23, 23,
+ 68, 120, 68, 68, 100, 374, 374, 33, 23, 24,
+ 634, 24, 56, 583, 11, 12, 32, 32, 24, 40,
+
+ 53, 54, 55, 32, 21, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,
+ 24, 22, 24, 56, 22, 22, 25, 22, 27, 24,
+ 25, 27, 27, 57, 25, 28, 28, 28, 34, 37,
+ 45, 28, 34, 25, 45, 27, 25, 28, 27, 59,
+ 60, 61, 62, 37, 22, 22, 22, 25, 22, 27,
+ 64, 25, 27, 27, 57, 25, 28, 28, 28, 34,
+ 37, 45, 28, 34, 25, 45, 27, 25, 28, 27,
+ 59, 60, 61, 62, 37, 22, 22, 22, 22, 22,
+ 26, 64, 26, 29, 58, 26, 26, 29, 58, 26,
+
+ 30, 29, 26, 65, 30, 26, 26, 29, 30, 66,
+ 29, 31, 70, 67, 67, 31, 581, 30, 76, 31,
+ 362, 26, 362, 26, 29, 58, 26, 26, 29, 58,
+ 26, 30, 29, 26, 65, 30, 26, 26, 29, 30,
+ 66, 29, 31, 70, 273, 273, 31, 67, 30, 76,
+ 31, 35, 36, 35, 78, 35, 36, 63, 78, 35,
+ 36, 81, 35, 63, 69, 35, 69, 41, 35, 77,
+ 77, 41, 36, 69, 63, 41, 36, 90, 273, 90,
+ 90, 41, 35, 36, 35, 78, 35, 36, 63, 78,
+ 35, 36, 81, 35, 63, 69, 35, 69, 41, 35,
+
+ 77, 77, 41, 36, 69, 63, 41, 36, 38, 38,
+ 80, 39, 41, 43, 80, 39, 38, 43, 38, 39,
+ 38, 43, 39, 38, 38, 39, 106, 43, 39, 553,
+ 43, 91, 84, 91, 91, 474, 84, 43, 367, 38,
+ 38, 80, 39, 365, 43, 80, 39, 38, 43, 38,
+ 39, 38, 43, 39, 38, 38, 39, 106, 43, 39,
+ 42, 43, 42, 84, 75, 42, 42, 84, 43, 44,
+ 42, 88, 72, 88, 42, 72, 72, 42, 44, 42,
+ 44, 75, 42, 109, 44, 110, 44, 96, 44, 96,
+ 96, 42, 582, 42, 361, 75, 42, 42, 375, 375,
+
+ 44, 42, 88, 72, 88, 42, 72, 72, 42, 44,
+ 42, 44, 75, 42, 109, 44, 110, 44, 356, 44,
+ 46, 46, 316, 71, 46, 71, 46, 102, 46, 73,
+ 73, 102, 71, 46, 82, 71, 114, 582, 71, 74,
+ 73, 314, 82, 74, 82, 376, 376, 74, 272, 82,
+ 82, 46, 46, 74, 71, 46, 71, 46, 102, 46,
+ 73, 73, 102, 71, 46, 82, 71, 114, 79, 71,
+ 74, 73, 79, 82, 74, 82, 79, 83, 74, 103,
+ 82, 82, 79, 86, 74, 83, 254, 86, 85, 85,
+ 117, 83, 584, 86, 83, 103, 86, 118, 87, 79,
+
+ 85, 97, 97, 79, 87, 85, 87, 79, 83, 253,
+ 103, 97, 104, 79, 86, 104, 83, 108, 86, 85,
+ 85, 117, 83, 112, 86, 83, 103, 86, 118, 87,
+ 105, 85, 108, 112, 584, 87, 85, 87, 98, 107,
+ 98, 98, 97, 104, 105, 111, 104, 107, 108, 113,
+ 98, 251, 129, 113, 112, 111, 107, 119, 115, 130,
+ 111, 105, 115, 108, 112, 116, 119, 623, 116, 623,
+ 107, 125, 119, 125, 125, 105, 111, 624, 107, 624,
+ 113, 98, 119, 129, 113, 141, 111, 107, 119, 115,
+ 130, 111, 131, 115, 143, 131, 116, 119, 132, 116,
+
+ 132, 132, 146, 119, 136, 136, 137, 135, 137, 137,
+ 139, 139, 140, 140, 136, 148, 140, 140, 137, 134,
+ 139, 127, 145, 145, 126, 143, 145, 145, 144, 144,
+ 381, 381, 122, 146, 121, 150, 131, 101, 144, 149,
+ 382, 382, 585, 585, 152, 136, 148, 99, 155, 137,
+ 149, 139, 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 150, 156, 142, 144,
+ 149, 142, 142, 147, 142, 152, 151, 147, 153, 155,
+ 157, 149, 151, 161, 147, 162, 158, 159, 159, 159,
+ 147, 164, 153, 165, 166, 164, 167, 95, 156, 169,
+
+ 169, 142, 142, 142, 147, 142, 158, 151, 147, 153,
+ 170, 157, 94, 151, 161, 147, 162, 158, 159, 159,
+ 159, 147, 164, 153, 165, 166, 164, 167, 168, 172,
+ 169, 169, 142, 142, 142, 142, 142, 158, 174, 171,
+ 173, 170, 168, 171, 173, 175, 176, 175, 175, 177,
+ 178, 175, 179, 180, 181, 182, 183, 184, 93, 168,
+ 172, 180, 186, 187, 92, 188, 189, 180, 49, 174,
+ 171, 173, 188, 168, 171, 173, 175, 176, 175, 175,
+ 177, 178, 175, 179, 180, 181, 182, 183, 184, 185,
+ 185, 190, 180, 186, 187, 185, 188, 189, 180, 192,
+
+ 193, 195, 198, 188, 192, 192, 185, 190, 197, 190,
+ 197, 197, 200, 201, 190, 202, 197, 204, 198, 48,
+ 185, 185, 190, 202, 203, 205, 185, 19, 203, 206,
+ 192, 193, 195, 198, 207, 192, 192, 185, 190, 197,
+ 190, 197, 197, 200, 201, 190, 202, 197, 204, 198,
+ 199, 199, 199, 208, 202, 203, 205, 209, 199, 203,
+ 206, 210, 211, 212, 211, 207, 213, 214, 215, 216,
+ 217, 215, 218, 586, 586, 216, 220, 218, 215, 13,
+ 221, 199, 199, 199, 208, 222, 0, 223, 209, 199,
+ 224, 226, 210, 211, 212, 211, 227, 213, 214, 215,
+
+ 216, 217, 215, 218, 219, 219, 216, 220, 218, 215,
+ 219, 221, 225, 225, 219, 219, 222, 219, 223, 229,
+ 230, 224, 226, 228, 231, 225, 232, 227, 234, 0,
+ 233, 236, 233, 239, 241, 219, 219, 232, 233, 242,
+ 243, 219, 244, 225, 225, 219, 219, 228, 219, 245,
+ 229, 230, 235, 246, 228, 231, 225, 232, 247, 234,
+ 235, 233, 236, 233, 239, 241, 248, 249, 232, 233,
+ 242, 243, 235, 244, 250, 255, 256, 257, 228, 258,
+ 245, 259, 261, 235, 246, 262, 260, 263, 264, 247,
+ 266, 235, 267, 268, 269, 270, 271, 248, 249, 276,
+
+ 277, 265, 278, 235, 278, 250, 255, 256, 257, 260,
+ 258, 279, 259, 261, 265, 275, 262, 260, 263, 264,
+ 280, 266, 275, 267, 268, 269, 270, 271, 275, 281,
+ 276, 277, 265, 278, 282, 278, 284, 283, 286, 287,
+ 260, 283, 279, 289, 290, 265, 275, 285, 291, 285,
+ 285, 280, 292, 275, 293, 294, 288, 295, 297, 275,
+ 281, 298, 288, 299, 300, 282, 301, 284, 283, 286,
+ 287, 302, 283, 288, 289, 290, 301, 303, 285, 291,
+ 285, 285, 304, 292, 305, 293, 294, 288, 295, 297,
+ 306, 307, 298, 288, 299, 300, 310, 301, 308, 311,
+
+ 312, 327, 302, 309, 288, 0, 328, 301, 303, 308,
+ 329, 309, 0, 304, 0, 305, 317, 317, 319, 319,
+ 0, 306, 307, 330, 331, 331, 317, 310, 319, 308,
+ 311, 312, 327, 318, 309, 318, 318, 328, 332, 333,
+ 308, 329, 309, 320, 320, 318, 334, 320, 320, 335,
+ 321, 321, 333, 336, 330, 331, 331, 317, 337, 319,
+ 321, 322, 322, 338, 339, 322, 322, 341, 342, 332,
+ 333, 343, 344, 346, 348, 349, 318, 334, 341, 350,
+ 335, 351, 353, 333, 336, 352, 354, 352, 355, 337,
+ 0, 321, 357, 358, 338, 339, 377, 383, 341, 342,
+
+ 384, 359, 343, 344, 346, 348, 349, 589, 589, 341,
+ 350, 0, 351, 353, 385, 0, 352, 354, 352, 355,
+ 357, 358, 359, 357, 358, 372, 372, 377, 383, 373,
+ 373, 384, 359, 373, 373, 372, 379, 379, 380, 380,
+ 386, 387, 380, 380, 388, 385, 379, 389, 390, 391,
+ 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
+ 402, 403, 404, 406, 407, 0, 372, 409, 410, 411,
+ 404, 386, 387, 412, 413, 388, 404, 379, 389, 390,
+ 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
+ 401, 402, 403, 404, 406, 407, 408, 414, 409, 410,
+
+ 411, 404, 416, 417, 412, 413, 418, 404, 419, 420,
+ 421, 422, 423, 408, 424, 425, 426, 427, 429, 422,
+ 430, 431, 432, 433, 434, 435, 426, 408, 414, 436,
+ 437, 438, 439, 416, 417, 438, 440, 418, 441, 419,
+ 420, 421, 422, 423, 408, 424, 425, 426, 427, 429,
+ 422, 430, 431, 432, 433, 434, 435, 426, 442, 443,
+ 436, 437, 438, 439, 444, 445, 438, 440, 446, 441,
+ 447, 448, 449, 450, 451, 445, 452, 453, 454, 457,
+ 458, 590, 590, 460, 0, 462, 625, 625, 463, 442,
+ 443, 465, 0, 461, 466, 444, 445, 461, 467, 446,
+
+ 0, 447, 448, 449, 450, 451, 445, 452, 453, 454,
+ 457, 458, 459, 459, 460, 459, 462, 459, 459, 463,
+ 459, 468, 465, 459, 461, 466, 459, 469, 461, 467,
+ 459, 459, 470, 471, 459, 627, 627, 472, 0, 475,
+ 628, 628, 476, 459, 459, 478, 459, 479, 459, 459,
+ 480, 459, 468, 0, 459, 477, 481, 459, 469, 477,
+ 483, 459, 459, 470, 471, 459, 464, 464, 472, 464,
+ 475, 464, 464, 476, 464, 482, 478, 464, 479, 484,
+ 485, 480, 486, 482, 464, 464, 477, 481, 464, 487,
+ 477, 483, 488, 486, 489, 490, 491, 464, 464, 488,
+
+ 464, 492, 464, 464, 485, 464, 482, 493, 464, 494,
+ 484, 485, 495, 486, 482, 464, 464, 496, 497, 464,
+ 487, 498, 499, 488, 486, 489, 490, 491, 500, 501,
+ 488, 503, 492, 502, 504, 485, 505, 506, 493, 507,
+ 494, 508, 509, 495, 511, 502, 512, 513, 496, 497,
+ 514, 515, 498, 499, 516, 517, 518, 519, 520, 500,
+ 501, 521, 503, 522, 502, 504, 523, 505, 506, 524,
+ 507, 523, 508, 509, 524, 511, 502, 512, 513, 525,
+ 527, 514, 515, 526, 530, 516, 517, 518, 519, 520,
+ 533, 534, 521, 535, 522, 526, 536, 523, 537, 538,
+
+ 524, 539, 523, 540, 541, 524, 543, 544, 545, 546,
+ 525, 527, 547, 548, 526, 530, 549, 550, 551, 555,
+ 556, 533, 534, 557, 535, 558, 526, 536, 559, 537,
+ 538, 560, 539, 561, 540, 541, 562, 543, 544, 545,
+ 546, 563, 564, 547, 548, 565, 567, 549, 550, 551,
+ 555, 556, 568, 566, 557, 569, 558, 570, 571, 559,
+ 572, 573, 560, 566, 561, 574, 575, 562, 576, 577,
+ 578, 579, 563, 564, 580, 591, 565, 567, 592, 593,
+ 587, 587, 594, 568, 566, 595, 569, 596, 570, 571,
+ 587, 572, 573, 597, 566, 598, 574, 575, 599, 576,
+
+ 577, 578, 579, 588, 588, 580, 591, 588, 588, 592,
+ 593, 600, 601, 594, 602, 603, 595, 604, 596, 605,
+ 606, 587, 607, 608, 597, 609, 598, 611, 612, 599,
+ 613, 614, 615, 616, 617, 618, 619, 0, 620, 621,
+ 622, 629, 600, 601, 630, 602, 603, 620, 604, 631,
+ 605, 606, 621, 607, 608, 632, 609, 633, 611, 612,
+ 635, 613, 614, 615, 616, 617, 618, 619, 622, 620,
+ 621, 622, 629, 636, 637, 630, 638, 639, 640, 641,
+ 631, 643, 644, 645, 646, 647, 632, 648, 633, 649,
+ 650, 635, 651, 652, 653, 654, 653, 655, 649, 656,
+
+ 657, 644, 659, 660, 636, 637, 661, 638, 639, 640,
+ 641, 662, 643, 644, 645, 646, 647, 663, 648, 664,
+ 649, 650, 665, 651, 652, 653, 654, 653, 655, 649,
+ 656, 657, 644, 659, 660, 666, 667, 661, 669, 670,
+ 671, 672, 662, 673, 674, 675, 677, 678, 663, 679,
+ 664, 680, 681, 665, 682, 683, 684, 685, 686, 687,
+ 688, 689, 690, 691, 693, 694, 666, 667, 696, 669,
+ 670, 671, 672, 0, 673, 674, 675, 677, 678, 697,
+ 679, 698, 680, 681, 699, 682, 683, 684, 685, 686,
+ 687, 688, 689, 690, 691, 693, 694, 695, 700, 696,
+
+ 701, 703, 704, 705, 695, 707, 708, 709, 710, 704,
+ 697, 711, 698, 712, 713, 699, 714, 716, 0, 717,
+ 718, 719, 720, 721, 722, 723, 724, 725, 695, 700,
+ 0, 701, 703, 704, 705, 695, 707, 708, 709, 710,
+ 704, 726, 711, 715, 712, 713, 727, 714, 716, 715,
+ 717, 718, 719, 720, 721, 722, 723, 724, 725, 728,
+ 729, 715, 731, 730, 732, 733, 734, 735, 737, 730,
+ 739, 740, 726, 741, 715, 740, 742, 727, 743, 744,
+ 715, 730, 745, 746, 747, 748, 749, 750, 751, 752,
+ 728, 729, 715, 731, 730, 732, 733, 734, 735, 737,
+
+ 730, 739, 740, 753, 741, 754, 740, 742, 755, 743,
+ 744, 756, 730, 745, 746, 747, 748, 749, 750, 751,
+ 752, 757, 758, 759, 760, 761, 757, 762, 763, 764,
+ 765, 766, 767, 768, 753, 769, 754, 770, 771, 755,
+ 772, 773, 756, 774, 775, 776, 777, 778, 779, 780,
+ 781, 782, 757, 758, 759, 760, 761, 757, 762, 763,
+ 764, 765, 766, 767, 768, 783, 769, 784, 770, 771,
+ 789, 772, 773, 790, 774, 775, 776, 777, 778, 779,
+ 780, 781, 782, 785, 787, 791, 792, 785, 793, 795,
+ 796, 797, 798, 799, 787, 800, 783, 801, 784, 802,
+
+ 803, 789, 805, 806, 790, 807, 808, 809, 810, 811,
+ 812, 813, 814, 815, 785, 787, 791, 792, 785, 793,
+ 795, 796, 797, 798, 799, 787, 800, 816, 801, 817,
+ 802, 803, 819, 805, 806, 820, 807, 808, 809, 810,
+ 811, 812, 813, 814, 815, 821, 822, 823, 825, 827,
+ 828, 829, 830, 831, 832, 833, 835, 836, 816, 842,
+ 817, 839, 839, 819, 840, 840, 820, 843, 844, 845,
+ 846, 847, 848, 849, 850, 851, 821, 822, 823, 825,
+ 827, 828, 829, 830, 831, 832, 833, 835, 836, 852,
+ 842, 853, 854, 855, 856, 857, 858, 859, 843, 844,
+
+ 845, 846, 847, 848, 849, 850, 851, 860, 861, 862,
+ 863, 864, 865, 867, 868, 870, 870, 871, 869, 874,
+ 852, 876, 853, 854, 855, 856, 857, 858, 859, 877,
+ 871, 879, 880, 882, 883, 884, 885, 886, 860, 861,
+ 862, 863, 864, 865, 867, 868, 869, 887, 871, 869,
+ 874, 889, 876, 890, 891, 890, 892, 893, 894, 895,
+ 877, 894, 879, 880, 882, 883, 884, 885, 886, 896,
+ 897, 898, 899, 901, 902, 903, 904, 907, 887, 909,
+ 910, 910, 889, 912, 890, 891, 890, 892, 893, 894,
+ 895, 913, 894, 914, 915, 916, 917, 919, 920, 922,
+
+ 896, 897, 898, 899, 901, 902, 903, 904, 907, 923,
+ 909, 910, 910, 926, 912, 927, 929, 930, 932, 935,
+ 936, 928, 913, 933, 914, 915, 916, 917, 919, 920,
+ 922, 928, 937, 933, 928, 928, 938, 939, 928, 928,
+ 923, 942, 944, 0, 926, 945, 927, 929, 930, 932,
+ 935, 936, 928, 946, 933, 0, 947, 948, 949, 950,
+ 951, 952, 928, 937, 933, 928, 928, 938, 939, 928,
+ 928, 940, 942, 944, 940, 953, 945, 940, 954, 955,
+ 956, 940, 957, 958, 946, 959, 940, 947, 948, 949,
+ 950, 951, 952, 960, 961, 962, 963, 964, 966, 967,
+
+ 968, 969, 940, 970, 971, 940, 953, 972, 940, 954,
+ 955, 956, 940, 957, 958, 973, 959, 940, 974, 975,
+ 976, 977, 978, 980, 960, 961, 962, 963, 964, 966,
+ 967, 968, 969, 982, 970, 971, 983, 984, 972, 985,
+ 986, 987, 988, 989, 990, 991, 973, 992, 993, 974,
+ 975, 976, 977, 978, 980, 994, 995, 996, 997, 998,
+ 999, 1000, 1001, 0, 982, 1003, 1004, 983, 984, 1005,
+ 985, 986, 987, 988, 989, 990, 991, 1006, 992, 993,
+ 1008, 1009, 1010, 1011, 1012, 1002, 994, 995, 996, 997,
+ 998, 999, 1000, 1001, 1002, 1007, 1003, 1004, 1013, 1014,
+
+ 1005, 1015, 1007, 1018, 1019, 1018, 1020, 1021, 1006, 1022,
+ 1023, 1008, 1009, 1010, 1011, 1012, 1002, 1024, 1026, 1027,
+ 1028, 1018, 1029, 1031, 1032, 1002, 1007, 1034, 1036, 1013,
+ 1014, 1038, 1015, 1007, 1018, 1019, 1018, 1020, 1021, 1033,
+ 1022, 1023, 1039, 1042, 1043, 1033, 1037, 1044, 1024, 1026,
+ 1027, 1028, 1018, 1029, 1031, 1032, 1037, 1045, 1034, 1036,
+ 1046, 1047, 1038, 1051, 1052, 1053, 1056, 1057, 1058, 1059,
+ 1033, 1060, 1061, 1039, 1042, 1043, 1033, 1037, 1044, 1063,
+ 1067, 1065, 1053, 1065, 1068, 1069, 0, 1037, 1045, 1071,
+ 1072, 1046, 1047, 1073, 1051, 1052, 1053, 1056, 1057, 1058,
+
+ 1059, 1074, 1060, 1061, 1075, 1076, 1077, 1078, 1070, 1079,
+ 1063, 1067, 1065, 1053, 1065, 1068, 1069, 1070, 1080, 1081,
+ 1071, 1072, 1082, 1083, 1073, 1085, 1086, 1087, 1088, 1089,
+ 1090, 1091, 1074, 1093, 1095, 1075, 1076, 1077, 1078, 1070,
+ 1079, 1096, 1097, 1098, 1100, 1101, 1101, 1103, 1070, 1080,
+ 1081, 1102, 1104, 1082, 1083, 1105, 1085, 1086, 1087, 1088,
+ 1089, 1090, 1091, 1106, 1093, 1095, 1107, 1108, 1109, 1111,
+ 1114, 1103, 1096, 1097, 1098, 1100, 1116, 1102, 1103, 1117,
+ 1118, 1119, 1102, 1104, 1120, 1122, 1105, 1124, 1125, 1126,
+ 1127, 1128, 1129, 1131, 1106, 1132, 1133, 1107, 1108, 1109,
+
+ 1111, 1114, 1134, 1136, 1138, 1140, 1142, 1116, 1143, 1144,
+ 1117, 1118, 1119, 1145, 1148, 1120, 1122, 1149, 1124, 1125,
+ 1126, 1127, 1128, 1129, 1131, 1150, 1132, 1133, 1151, 1152,
+ 1153, 1155, 1156, 1134, 1136, 1138, 1140, 1142, 1157, 1143,
+ 1144, 1158, 1159, 1160, 1145, 1148, 1161, 1162, 1149, 1163,
+ 1164, 1165, 1166, 1168, 1171, 1172, 1150, 1167, 1173, 1151,
+ 1152, 1153, 1155, 1156, 1174, 1167, 1175, 1176, 1177, 1157,
+ 1178, 1179, 1158, 1159, 1160, 1180, 1181, 1161, 1162, 1182,
+ 1163, 1164, 1165, 1166, 1168, 1171, 1172, 1183, 1167, 1173,
+ 1184, 1185, 1186, 1187, 1189, 1174, 1167, 1175, 1176, 1177,
+
+ 1191, 1178, 1179, 1192, 1193, 1194, 1180, 1181, 1195, 1196,
+ 1182, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1183, 1204,
+ 1205, 1184, 1185, 1186, 1187, 1189, 1208, 1210, 1211, 1212,
+ 1213, 1191, 1214, 1215, 1192, 1193, 1194, 1216, 1217, 1195,
+ 1196, 1222, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1223,
+ 1204, 1205, 1224, 1225, 1226, 1227, 1228, 1208, 1210, 1211,
+ 1212, 1213, 1229, 1214, 1215, 1230, 1231, 1232, 1216, 1217,
+ 1233, 1235, 1222, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
+ 1223, 1244, 1246, 1224, 1225, 1226, 1227, 1228, 1249, 1252,
+ 1253, 1254, 1255, 1229, 1256, 1245, 1230, 1231, 1232, 1257,
+
+ 1258, 1233, 1235, 1259, 1237, 1238, 1239, 1240, 1241, 1242,
+ 1243, 1245, 1244, 1246, 1260, 1261, 1262, 1263, 1264, 1249,
+ 1252, 1253, 1254, 1255, 1265, 1256, 1245, 1266, 1267, 1270,
+ 1257, 1258, 1272, 1273, 1259, 1275, 1276, 1277, 1278, 1279,
+ 1280, 1281, 1245, 1283, 1286, 1260, 1261, 1262, 1263, 1264,
+ 1287, 1288, 1289, 1290, 1291, 1265, 1293, 1294, 1266, 1267,
+ 1270, 1295, 1296, 1272, 1273, 1297, 1275, 1276, 1277, 1278,
+ 1279, 1280, 1281, 1298, 1283, 1286, 1300, 1301, 1302, 1303,
+ 1304, 1287, 1288, 1289, 1290, 1291, 1306, 1293, 1294, 1307,
+ 1309, 1310, 1295, 1296, 1311, 1312, 1297, 1313, 1314, 1315,
+
+ 1316, 1317, 1318, 1320, 1298, 1321, 1322, 1300, 1301, 1302,
+ 1303, 1304, 1306, 1307, 1323, 1325, 1326, 1306, 1328, 1330,
+ 1307, 1309, 1310, 1331, 1332, 1311, 1312, 1334, 1313, 1314,
+ 1315, 1316, 1317, 1318, 1320, 1336, 1321, 1322, 1337, 1338,
+ 1339, 1340, 1341, 1342, 1343, 1323, 1325, 1326, 1344, 1328,
+ 1330, 1345, 1347, 1348, 1331, 1332, 1349, 1350, 1334, 1351,
+ 1353, 1354, 1355, 1356, 1357, 1358, 1336, 1359, 1360, 1337,
+ 1338, 1339, 1340, 1341, 1342, 1343, 1361, 1363, 1364, 1344,
+ 1366, 1367, 1345, 1347, 1348, 1368, 1369, 1349, 1350, 1370,
+ 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1371, 1359, 1360,
+
+ 1372, 1373, 1375, 1376, 1377, 1378, 1379, 1361, 1363, 1364,
+ 1381, 1366, 1367, 1382, 1383, 1384, 1368, 1369, 1385, 1386,
+ 1370, 1387, 1389, 1390, 1391, 1392, 1393, 1395, 1371, 1395,
+ 1397, 1372, 1373, 1375, 1376, 1377, 1378, 1379, 1399, 1398,
+ 1401, 1381, 0, 1403, 1382, 1383, 1384, 1404, 0, 1385,
+ 1386, 1406, 1387, 1389, 1390, 1391, 1392, 1393, 1395, 1398,
+ 1395, 1397, 1400, 1400, 1408, 1409, 1410, 1411, 1412, 1399,
+ 1398, 1401, 1413, 1400, 1403, 1400, 1414, 1415, 1404, 1400,
+ 1416, 1417, 1406, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
+ 1398, 1425, 1426, 1400, 1400, 1408, 1409, 1410, 1411, 1412,
+
+ 1427, 1428, 1429, 1413, 1400, 1431, 1400, 1414, 1415, 1432,
+ 1400, 1416, 1417, 1433, 1418, 1419, 1420, 1421, 1422, 1423,
+ 1424, 1434, 1425, 1426, 1430, 1436, 1430, 1437, 1438, 1439,
+ 1440, 1427, 1428, 1429, 1443, 1444, 1431, 1445, 1446, 1447,
+ 1432, 1448, 1449, 1450, 1433, 1451, 1452, 1453, 1455, 1457,
+ 1454, 1454, 1434, 1459, 1460, 1430, 1436, 1430, 1437, 1438,
+ 1439, 1440, 1462, 1454, 1463, 1443, 1444, 1454, 1445, 1446,
+ 1447, 1464, 1448, 1449, 1450, 1466, 1451, 1452, 1453, 1455,
+ 1457, 1454, 1454, 1467, 1459, 1460, 1468, 1469, 1470, 1471,
+ 1474, 1473, 1476, 1462, 1454, 1463, 1477, 1478, 1454, 1479,
+
+ 1480, 1482, 1464, 1483, 1484, 1485, 1466, 1474, 1486, 1487,
+ 1488, 1489, 1490, 1491, 1467, 1473, 1492, 1468, 1469, 1470,
+ 1471, 1474, 1473, 1476, 1494, 1495, 1496, 1477, 1478, 1497,
+ 1479, 1480, 1482, 1498, 1483, 1484, 1485, 1499, 1501, 1486,
+ 1487, 1488, 1489, 1490, 1491, 1502, 1503, 1492, 1504, 1505,
+ 1507, 1508, 1509, 1510, 1512, 1494, 1495, 1496, 1513, 1514,
+ 1497, 1515, 1516, 1517, 1498, 1518, 1519, 1520, 1499, 1501,
+ 1521, 1522, 1523, 1524, 1525, 1526, 1502, 1503, 1527, 1504,
+ 1505, 1507, 1508, 1509, 1510, 1512, 1528, 1529, 1530, 1513,
+ 1514, 1531, 1515, 1516, 1517, 1532, 1518, 1519, 1520, 1536,
+
+ 1537, 1521, 1522, 1523, 1524, 1525, 1526, 1538, 1539, 1527,
+ 1540, 1541, 1542, 1543, 1544, 1547, 1548, 1528, 1529, 1530,
+ 1549, 1550, 1531, 1551, 1552, 1553, 1532, 1554, 1555, 1556,
+ 1536, 1537, 1557, 1558, 1560, 1561, 1563, 1556, 1538, 1539,
+ 1564, 1540, 1541, 1542, 1543, 1544, 1547, 1548, 1566, 1558,
+ 1567, 1549, 1550, 1568, 1551, 1552, 1553, 1570, 1554, 1555,
+ 1556, 1571, 1572, 1557, 1558, 1560, 1561, 1563, 1556, 1573,
+ 1575, 1564, 1577, 1578, 1580, 1581, 1582, 1583, 1584, 1566,
+ 1558, 1567, 1585, 1586, 1568, 1587, 1589, 1591, 1570, 1592,
+ 1593, 1597, 1571, 1572, 1598, 1599, 1600, 1601, 1603, 1604,
+
+ 1573, 1575, 1606, 1577, 1578, 1580, 1581, 1582, 1583, 1584,
+ 1609, 1613, 1614, 1585, 1586, 1615, 1587, 1589, 1591, 1617,
+ 1592, 1593, 1597, 1618, 1622, 1598, 1599, 1600, 1601, 1603,
+ 1604, 1620, 1621, 1606, 1623, 1625, 1627, 1629, 1631, 1632,
+ 1634, 1609, 1613, 1614, 1635, 1637, 1615, 1638, 1620, 1621,
+ 1617, 1640, 1641, 1642, 1618, 1622, 1644, 1647, 1649, 1652,
+ 1653, 1654, 1620, 1621, 1655, 1623, 1625, 1627, 1629, 1631,
+ 1632, 1634, 1656, 1658, 1659, 1635, 1637, 1660, 1638, 1661,
+ 1662, 1663, 1640, 1641, 1642, 1664, 1665, 1644, 1647, 1649,
+ 1652, 1653, 1654, 1666, 1667, 1655, 1668, 1670, 1671, 1672,
+
+ 1673, 1674, 1675, 1656, 1658, 1659, 1676, 1677, 1660, 1678,
+ 1661, 1662, 1663, 1680, 1681, 1682, 1664, 1665, 1683, 1684,
+ 1685, 1686, 1687, 1688, 1666, 1667, 1689, 1668, 1670, 1671,
+ 1672, 1673, 1674, 1675, 1690, 1691, 1692, 1676, 1677, 1693,
+ 1678, 1694, 1695, 1696, 1680, 1681, 1682, 1697, 1698, 1683,
+ 1684, 1685, 1686, 1687, 1688, 1699, 1700, 1689, 1701, 1702,
+ 1703, 1706, 1707, 1708, 1709, 1690, 1691, 1692, 1710, 1711,
+ 1693, 1712, 1694, 1695, 1696, 1716, 1718, 1720, 1697, 1698,
+ 1722, 1723, 1724, 1725, 1727, 1729, 1699, 1700, 1730, 1701,
+ 1702, 1703, 1706, 1707, 1708, 1709, 1731, 1732, 1733, 1710,
+
+ 1711, 1734, 1712, 1735, 1737, 1739, 1716, 1718, 1720, 1741,
+ 1738, 1722, 1723, 1724, 1725, 1727, 1729, 1742, 1746, 1730,
+ 1738, 1737, 1747, 1748, 1751, 1752, 1754, 1731, 1732, 1733,
+ 1756, 1760, 1734, 1761, 1735, 1737, 1739, 1762, 1763, 1764,
+ 1741, 1738, 1765, 1768, 1769, 1770, 1771, 1772, 1742, 1746,
+ 1773, 1774, 1775, 1747, 1748, 1751, 1752, 1754, 1777, 1778,
+ 1779, 1756, 1760, 1780, 1761, 1781, 1782, 1783, 1762, 1763,
+ 1764, 1784, 1785, 1765, 1768, 1769, 1770, 1771, 1772, 1787,
+ 1788, 1773, 1774, 1775, 1789, 1790, 1791, 1792, 1793, 1777,
+ 1778, 1779, 1794, 1795, 1780, 1796, 1781, 1782, 1783, 1797,
+
+ 1798, 1799, 1784, 1785, 1801, 1804, 1806, 1810, 1812, 1813,
+ 1787, 1788, 1814, 1817, 1821, 1789, 1790, 1791, 1792, 1793,
+ 0, 1830, 1831, 1794, 1795, 1815, 1796, 1828, 1832, 1834,
+ 1797, 1798, 1799, 1835, 1836, 1801, 1804, 1806, 1810, 1812,
+ 1813, 1827, 1815, 1814, 1817, 1821, 1837, 1828, 1838, 1840,
+ 1841, 1827, 1830, 1831, 1842, 1843, 1815, 1844, 1828, 1832,
+ 1834, 1849, 1850, 1851, 1835, 1836, 1854, 1857, 1858, 1860,
+ 1862, 1863, 1827, 1815, 1864, 1865, 1866, 1837, 1867, 1838,
+ 1840, 1841, 1868, 1869, 1870, 1842, 1843, 1872, 1844, 1875,
+ 1877, 1879, 1849, 1850, 1851, 1880, 1881, 1854, 1857, 1858,
+
+ 1860, 1862, 1863, 1882, 1884, 1864, 1865, 1866, 1886, 1867,
+ 1888, 1890, 1891, 1868, 1869, 1870, 1887, 1893, 1872, 1887,
+ 1875, 1877, 1879, 1895, 1896, 1897, 1880, 1881, 1886, 1898,
+ 1900, 1901, 1902, 1904, 1882, 1884, 1905, 1907, 1908, 1886,
+ 1912, 1888, 1890, 1891, 1914, 1915, 1916, 1887, 1893, 1917,
+ 1918, 1919, 1920, 1921, 1895, 1896, 1897, 1922, 1924, 0,
+ 1898, 1900, 1901, 1902, 1904, 1927, 1926, 1905, 1907, 1908,
+ 1925, 1912, 1928, 1925, 1932, 1914, 1915, 1916, 1933, 1935,
+ 1917, 1918, 1919, 1920, 1921, 1936, 1938, 1942, 1922, 1924,
+ 1926, 1943, 1944, 1945, 1947, 1948, 1927, 1926, 1949, 1950,
+
+ 1951, 1925, 1955, 1928, 1953, 1932, 1957, 1958, 1959, 1933,
+ 1935, 1960, 1962, 1965, 1968, 1969, 1936, 1938, 1942, 1974,
+ 1975, 1978, 1943, 1944, 1945, 1947, 1948, 1979, 1953, 1949,
+ 1950, 1951, 1980, 1955, 1983, 1953, 1984, 1957, 1958, 1959,
+ 1985, 1986, 1960, 1962, 1965, 1968, 1969, 1988, 1989, 1990,
+ 1974, 1975, 1978, 1991, 1994, 1995, 1996, 1998, 1979, 1999,
+ 0, 0, 0, 1980, 0, 1983, 0, 1984, 0, 0,
+ 0, 1985, 1986, 0, 0, 0, 0, 0, 1988, 1989,
+ 1990, 0, 0, 0, 1991, 1994, 1995, 1996, 1998, 0,
+ 1999, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002,
+
+ 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2004,
+ 0, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2005, 0,
+ 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2006, 2006, 2007,
+ 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2008, 2008,
+ 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 0, 2009,
+ 2009, 2009, 2009, 2009, 2009, 2009, 2010, 0, 2010, 2011,
+ 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2012, 2012,
+ 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2013, 2013, 2013,
+ 2013, 2013, 2013, 2013, 2013, 2013, 2014, 2014, 2014, 2014,
+ 2014, 2014, 2014, 2014, 2014, 2015, 2015, 2015, 0, 0,
+
+ 2015, 2015, 0, 2015, 2016, 2016, 2016, 2016, 2016, 2016,
+ 2016, 2016, 2016, 2017, 0, 0, 2017, 2017, 0, 2017,
+ 2018, 2018, 2018, 0, 2018, 2018, 2018, 2018, 2018, 2019,
+ 2019, 2019, 2019, 0, 2019, 2019, 2019, 2019, 2020, 2020,
+ 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
+ 2001, 2001, 2001
} ;
static yy_state_type yy_last_accepting_state;
@@ -2106,8 +2161,8 @@ int msyy_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *msyytext;
-#line 1 "/home/even/mapserver/git/mapserver/maplexer.l"
-#line 2 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 1 "/vagrant/maplexer.l"
+#line 2 "/vagrant/maplexer.l"
/*
** READ ME FIRST!
**
@@ -2188,7 +2243,7 @@ char path[MS_MAXPATHLEN];
-#line 2192 "/home/even/mapserver/git/mapserver/maplexer.c"
+#line 2247 "/vagrant/maplexer.c"
#define INITIAL 0
#define URL_VARIABLE 1
@@ -2372,7 +2427,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 85 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 85 "/vagrant/maplexer.l"
if (msyystring_buffer == NULL)
msyystring_buffer = (char*) msSmallMalloc(sizeof(char) * msyystring_buffer_size);
@@ -2446,7 +2501,7 @@ YY_DECL
break;
}
-#line 2450 "/home/even/mapserver/git/mapserver/maplexer.c"
+#line 2505 "/vagrant/maplexer.c"
if ( !(yy_init) )
{
@@ -2499,13 +2554,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1930 )
+ if ( yy_current_state >= 2002 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 4408 );
+ while ( yy_base[yy_current_state] != 4548 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -2531,1532 +2586,1592 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 158 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 158 "/vagrant/maplexer.l"
;
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 160 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 160 "/vagrant/maplexer.l"
{ if (msyyreturncomments) return(MS_COMMENT); }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 162 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 162 "/vagrant/maplexer.l"
;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 164 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 164 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_OR); }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 165 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 165 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_AND); }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 166 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 166 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_NOT); }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 167 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 167 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQ); }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 168 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 168 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_NE); }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 169 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 169 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GT); }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 170 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 170 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LT); }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 171 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 171 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GE); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 172 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 172 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LE); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 173 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 173 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_RE); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 175 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 175 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IEQ); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 176 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 176 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IRE); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 178 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 178 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(IN); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 180 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 180 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_AREA); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 181 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 181 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LENGTH); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 182 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 182 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_TOSTRING); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 183 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 183 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_COMMIFY); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 184 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 184 "/vagrant/maplexer.l"
{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_ROUND); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 186 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); }
+#line 185 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_UPPER); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 187 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); }
+#line 186 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LOWER); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 188 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFY); }
+#line 187 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_INITCAP); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 189 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); }
+#line 188 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FIRSTCAP); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 190 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); }
+#line 190 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 191 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); }
+#line 191 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 193 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
+#line 192 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFY); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 194 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
+#line 193 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 195 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_TOUCHES); }
+#line 194 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 196 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_OVERLAPS); }
+#line 195 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 197 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); }
+#line 196 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_JAVASCRIPT); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 198 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); }
+#line 198 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 199 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); }
+#line 199 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 200 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); }
+#line 200 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_TOUCHES); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 201 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); }
+#line 201 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_OVERLAPS); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 203 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); }
+#line 202 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 205 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COLORRANGE); }
+#line 203 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 206 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATARANGE); }
+#line 204 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 207 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RANGEITEM); }
+#line 205 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQUALS); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 209 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ALIGN); }
+#line 206 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 210 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANCHORPOINT); }
+#line 207 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 211 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANGLE); }
+#line 209 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 212 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANTIALIAS); }
+#line 211 "/vagrant/maplexer.l"
+{ msyynumber=MS_TRUE; return(MS_TOKEN_LITERAL_BOOLEAN); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 213 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); }
+#line 212 "/vagrant/maplexer.l"
+{ msyynumber=MS_FALSE; return(MS_TOKEN_LITERAL_BOOLEAN); }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 214 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BANDSITEM); }
+#line 214 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COLORRANGE); }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 215 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BINDVALS); }
+#line 215 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATARANGE); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 216 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
+#line 216 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RANGEITEM); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 217 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BUFFER); }
+#line 218 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ALIGN); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 218 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
+#line 219 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANCHORPOINT); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 219 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASS); }
+#line 220 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANGLE); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 220 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
+#line 221 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANTIALIAS); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 221 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
+#line 222 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 222 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
+#line 223 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BANDSITEM); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 223 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COLOR); }
+#line 224 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BINDVALS); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 224 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONFIG); }
+#line 225 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 225 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
+#line 226 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BUFFER); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 226 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
+#line 227 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 227 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATA); }
+#line 228 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASS); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 228 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
+#line 229 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 229 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEBUG); }
+#line 230 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 230 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DRIVER); }
+#line 231 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 231 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DUMP); }
+#line 232 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COLOR); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 232 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EMPTY); }
+#line 233 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COMPFILTER); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 233 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ENCODING); }
+#line 234 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COMPOSITE); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 234 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(END); }
+#line 235 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COMPOP); }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 235 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ERROR); }
+#line 236 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONFIG); }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 236 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
+#line 237 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 237 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENT); }
+#line 238 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 238 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
+#line 239 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATA); }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 239 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FEATURE); }
+#line 240 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 240 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILLED); }
+#line 241 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DEBUG); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 241 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTER); }
+#line 242 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DRIVER); }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 242 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
+#line 243 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DUMP); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 243 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FOOTER); }
+#line 244 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EMPTY); }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 244 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONT); }
+#line 245 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ENCODING); }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 245 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONTSET); }
+#line 246 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(END); }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 246 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORCE); }
+#line 247 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ERROR); }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 247 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
+#line 248 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 248 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FROM); }
+#line 249 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXTENT); }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 249 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GAP); }
+#line 250 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 250 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
+#line 251 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FEATURE); }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 251 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRID); }
+#line 252 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILLED); }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 252 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
+#line 253 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILTER); }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 253 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
+#line 254 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 254 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GROUP); }
+#line 255 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FOOTER); }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 255 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(HEADER); }
+#line 256 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FONT); }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 256 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGE); }
+#line 257 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FONTSET); }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 257 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
+#line 258 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FORCE); }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 258 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
+#line 259 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 259 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
+#line 260 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FROM); }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 260 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
+#line 261 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GAP); }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 261 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
+#line 262 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 262 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
+#line 263 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRID); }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 263 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
+#line 264 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 264 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ BEGIN(INCLUDE); }
+#line 265 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 265 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INDEX); }
+#line 266 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GROUP); }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 266 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
+#line 267 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(HEADER); }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 267 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
+#line 268 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGE); }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 268 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERVALS); }
+#line 269 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 269 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(JOIN); }
+#line 270 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 270 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
+#line 271 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 271 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
+#line 272 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 272 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
+#line 273 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 273 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABEL); }
+#line 274 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 274 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
+#line 275 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 275 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
+#line 276 "/vagrant/maplexer.l"
+{ BEGIN(INCLUDE); }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 276 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
+#line 277 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INDEX); }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 277 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
+#line 278 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 278 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
+#line 279 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 279 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
+#line 280 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INTERVALS); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 280 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
+#line 281 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(JOIN); }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 281 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
+#line 282 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 282 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LATLON); }
+#line 283 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 283 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LAYER); }
+#line 284 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 284 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEADER); }
+#line 285 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABEL); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 285 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGEND); }
+#line 286 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 286 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
+#line 287 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 287 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINECAP); }
+#line 288 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 288 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
+#line 289 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 289 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
+#line 290 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 290 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LOG); }
+#line 291 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 291 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAP); }
+#line 292 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 292 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKER); }
+#line 293 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 293 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
+#line 294 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LATLON); }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 294 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MASK); }
+#line 295 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LAYER); }
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 295 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
+#line 296 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEADER); }
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 296 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
+#line 297 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEGEND); }
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 297 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
+#line 298 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 298 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
+#line 299 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINECAP); }
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 299 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
+#line 300 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 300 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
+#line 301 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 301 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
+#line 302 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LOG); }
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 302 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
+#line 303 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAP); }
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 303 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
+#line 304 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MARKER); }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 304 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
+#line 305 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 305 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
+#line 306 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MASK); }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 306 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
+#line 307 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 307 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
+#line 308 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 308 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(METADATA); }
+#line 309 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
YY_BREAK
case 141:
YY_RULE_SETUP
-#line 309 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
+#line 310 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 310 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINARCS); }
+#line 311 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 311 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
+#line 312 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 312 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
+#line 313 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 313 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
+#line 314 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 314 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); }
+#line 315 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 315 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
+#line 316 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 316 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
+#line 317 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 317 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
+#line 318 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 318 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
+#line 319 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 319 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
+#line 320 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(METADATA); }
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 320 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
+#line 321 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 321 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
+#line 322 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINARCS); }
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 322 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
+#line 323 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 323 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
+#line 324 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
YY_BREAK
case 156:
YY_RULE_SETUP
-#line 324 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
+#line 325 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 325 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(NAME); }
+#line 326 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); }
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 326 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSET); }
+#line 327 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 327 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
+#line 328 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 328 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OPACITY); }
+#line 329 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 329 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
+#line 330 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 330 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
+#line 331 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 331 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
+#line 332 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
YY_BREAK
case 164:
YY_RULE_SETUP
-#line 332 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
+#line 333 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 333 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
+#line 334 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
YY_BREAK
case 166:
YY_RULE_SETUP
-#line 334 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
+#line 335 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 335 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
+#line 336 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 336 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
+#line 337 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(NAME); }
YY_BREAK
case 169:
YY_RULE_SETUP
-#line 337 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
+#line 338 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OFFSET); }
YY_BREAK
case 170:
YY_RULE_SETUP
-#line 338 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
+#line 339 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
YY_BREAK
case 171:
YY_RULE_SETUP
-#line 339 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
+#line 340 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OPACITY); }
YY_BREAK
case 172:
YY_RULE_SETUP
-#line 340 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PATTERN); }
+#line 341 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
YY_BREAK
case 173:
YY_RULE_SETUP
-#line 341 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POINTS); }
+#line 342 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
YY_BREAK
case 174:
YY_RULE_SETUP
-#line 342 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ITEMS); }
+#line 343 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
YY_BREAK
case 175:
YY_RULE_SETUP
-#line 343 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSITION); }
+#line 344 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
YY_BREAK
case 176:
YY_RULE_SETUP
-#line 344 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
+#line 345 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
YY_BREAK
case 177:
YY_RULE_SETUP
-#line 345 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
+#line 346 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
YY_BREAK
case 178:
YY_RULE_SETUP
-#line 346 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
+#line 347 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
YY_BREAK
case 179:
YY_RULE_SETUP
-#line 347 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
+#line 348 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
YY_BREAK
case 180:
YY_RULE_SETUP
-#line 348 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
+#line 349 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
YY_BREAK
case 181:
YY_RULE_SETUP
-#line 349 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
+#line 350 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 350 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
+#line 351 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
YY_BREAK
case 183:
YY_RULE_SETUP
-#line 351 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REGION); }
+#line 352 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PATTERN); }
YY_BREAK
case 184:
YY_RULE_SETUP
-#line 352 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
+#line 353 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POINTS); }
YY_BREAK
case 185:
YY_RULE_SETUP
-#line 353 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
+#line 354 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ITEMS); }
YY_BREAK
case 186:
YY_RULE_SETUP
-#line 354 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
+#line 355 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POSITION); }
YY_BREAK
case 187:
YY_RULE_SETUP
-#line 355 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
+#line 356 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
YY_BREAK
case 188:
YY_RULE_SETUP
-#line 356 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALE); }
+#line 357 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
YY_BREAK
case 189:
YY_RULE_SETUP
-#line 357 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
+#line 358 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
YY_BREAK
case 190:
YY_RULE_SETUP
-#line 358 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
+#line 359 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
YY_BREAK
case 191:
YY_RULE_SETUP
-#line 359 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
+#line 360 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
YY_BREAK
case 192:
YY_RULE_SETUP
-#line 360 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
+#line 361 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
YY_BREAK
case 193:
YY_RULE_SETUP
-#line 361 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
+#line 362 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
YY_BREAK
case 194:
YY_RULE_SETUP
-#line 362 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
+#line 363 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REGION); }
YY_BREAK
case 195:
YY_RULE_SETUP
-#line 363 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZE); }
+#line 364 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
YY_BREAK
case 196:
YY_RULE_SETUP
-#line 364 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
+#line 365 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
YY_BREAK
case 197:
YY_RULE_SETUP
-#line 365 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STATUS); }
+#line 366 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
YY_BREAK
case 198:
YY_RULE_SETUP
-#line 366 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLE); }
+#line 367 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
YY_BREAK
case 199:
YY_RULE_SETUP
-#line 367 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
+#line 368 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALE); }
YY_BREAK
case 200:
YY_RULE_SETUP
-#line 368 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
+#line 369 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
YY_BREAK
case 201:
YY_RULE_SETUP
-#line 369 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
+#line 370 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
YY_BREAK
case 202:
YY_RULE_SETUP
-#line 370 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
+#line 371 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
YY_BREAK
case 203:
YY_RULE_SETUP
-#line 371 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
+#line 372 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
YY_BREAK
case 204:
YY_RULE_SETUP
-#line 372 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TABLE); }
+#line 373 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
YY_BREAK
case 205:
YY_RULE_SETUP
-#line 373 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
+#line 374 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
YY_BREAK
case 206:
YY_RULE_SETUP
-#line 374 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
+#line 375 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SIZE); }
YY_BREAK
case 207:
YY_RULE_SETUP
-#line 375 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEXT); }
+#line 376 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
YY_BREAK
case 208:
YY_RULE_SETUP
-#line 376 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
+#line 377 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STATUS); }
YY_BREAK
case 209:
YY_RULE_SETUP
-#line 377 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
+#line 378 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STYLE); }
YY_BREAK
case 210:
YY_RULE_SETUP
-#line 378 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILESRS); }
+#line 379 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
YY_BREAK
case 211:
YY_RULE_SETUP
-#line 379 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TITLE); }
+#line 380 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
YY_BREAK
case 212:
YY_RULE_SETUP
-#line 380 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TO); }
+#line 381 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
YY_BREAK
case 213:
YY_RULE_SETUP
-#line 381 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
+#line 382 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
YY_BREAK
case 214:
YY_RULE_SETUP
-#line 382 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
+#line 383 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
YY_BREAK
case 215:
YY_RULE_SETUP
-#line 383 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
+#line 384 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TABLE); }
YY_BREAK
case 216:
YY_RULE_SETUP
-#line 384 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
+#line 385 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
YY_BREAK
case 217:
YY_RULE_SETUP
-#line 385 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
+#line 386 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
YY_BREAK
case 218:
YY_RULE_SETUP
-#line 386 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TYPE); }
+#line 387 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEXT); }
YY_BREAK
case 219:
YY_RULE_SETUP
-#line 387 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(UNITS); }
+#line 388 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
YY_BREAK
case 220:
YY_RULE_SETUP
-#line 388 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
+#line 389 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
YY_BREAK
case 221:
YY_RULE_SETUP
-#line 389 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(VALUES); }
+#line 390 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILESRS); }
YY_BREAK
case 222:
YY_RULE_SETUP
-#line 390 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WEB); }
+#line 391 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TITLE); }
YY_BREAK
case 223:
YY_RULE_SETUP
-#line 391 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WIDTH); }
+#line 392 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TO); }
YY_BREAK
case 224:
YY_RULE_SETUP
-#line 392 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WKT); }
+#line 393 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
YY_BREAK
case 225:
YY_RULE_SETUP
-#line 393 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WRAP); }
+#line 394 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
YY_BREAK
case 226:
YY_RULE_SETUP
-#line 395 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
+#line 395 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
YY_BREAK
case 227:
YY_RULE_SETUP
-#line 396 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
+#line 396 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
YY_BREAK
case 228:
YY_RULE_SETUP
-#line 397 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
+#line 397 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
YY_BREAK
case 229:
YY_RULE_SETUP
-#line 398 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
+#line 398 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TYPE); }
YY_BREAK
case 230:
YY_RULE_SETUP
-#line 399 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
+#line 399 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(UNITS); }
YY_BREAK
case 231:
YY_RULE_SETUP
-#line 400 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
+#line 400 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(UTFDATA); }
YY_BREAK
case 232:
YY_RULE_SETUP
-#line 401 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CC); }
+#line 401 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(UTFITEM); }
YY_BREAK
case 233:
YY_RULE_SETUP
-#line 402 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
+#line 402 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
YY_BREAK
case 234:
YY_RULE_SETUP
-#line 403 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
+#line 403 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(VALUES); }
YY_BREAK
case 235:
YY_RULE_SETUP
-#line 404 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
+#line 404 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WEB); }
YY_BREAK
case 236:
YY_RULE_SETUP
-#line 405 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CL); }
+#line 405 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WIDTH); }
YY_BREAK
case 237:
YY_RULE_SETUP
-#line 406 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CR); }
+#line 406 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WKT); }
YY_BREAK
case 238:
YY_RULE_SETUP
-#line 407 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
+#line 407 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WRAP); }
YY_BREAK
case 239:
YY_RULE_SETUP
-#line 408 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
+#line 409 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
YY_BREAK
case 240:
YY_RULE_SETUP
-#line 409 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
+#line 410 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
YY_BREAK
case 241:
YY_RULE_SETUP
-#line 410 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
+#line 411 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
YY_BREAK
case 242:
YY_RULE_SETUP
-#line 411 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DD); }
+#line 412 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
YY_BREAK
case 243:
YY_RULE_SETUP
-#line 412 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
+#line 413 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
YY_BREAK
case 244:
YY_RULE_SETUP
-#line 413 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
+#line 414 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
YY_BREAK
case 245:
YY_RULE_SETUP
-#line 414 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
+#line 415 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CC); }
YY_BREAK
case 246:
YY_RULE_SETUP
-#line 415 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
+#line 416 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
YY_BREAK
case 247:
YY_RULE_SETUP
-#line 416 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
+#line 417 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
YY_BREAK
case 248:
YY_RULE_SETUP
-#line 417 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
+#line 418 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
YY_BREAK
case 249:
YY_RULE_SETUP
-#line 418 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
+#line 419 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CL); }
YY_BREAK
case 250:
YY_RULE_SETUP
-#line 419 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
+#line 420 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CR); }
YY_BREAK
case 251:
YY_RULE_SETUP
-#line 420 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
+#line 421 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
YY_BREAK
case 252:
YY_RULE_SETUP
-#line 421 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
+#line 422 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
YY_BREAK
case 253:
YY_RULE_SETUP
-#line 422 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
+#line 423 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
YY_BREAK
case 254:
YY_RULE_SETUP
-#line 423 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LC); }
+#line 424 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
YY_BREAK
case 255:
YY_RULE_SETUP
-#line 424 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
+#line 425 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DD); }
YY_BREAK
case 256:
YY_RULE_SETUP
-#line 425 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
+#line 426 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
YY_BREAK
case 257:
YY_RULE_SETUP
-#line 426 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LL); }
+#line 427 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
YY_BREAK
case 258:
YY_RULE_SETUP
-#line 427 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LR); }
+#line 428 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
YY_BREAK
case 259:
YY_RULE_SETUP
-#line 428 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
+#line 429 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
YY_BREAK
case 260:
YY_RULE_SETUP
-#line 429 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
+#line 430 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
YY_BREAK
case 261:
YY_RULE_SETUP
-#line 430 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
+#line 431 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
YY_BREAK
case 262:
YY_RULE_SETUP
-#line 431 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
+#line 432 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
YY_BREAK
case 263:
YY_RULE_SETUP
-#line 432 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
+#line 433 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_KERNELDENSITY); }
YY_BREAK
case 264:
YY_RULE_SETUP
-#line 433 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
+#line 434 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
YY_BREAK
case 265:
YY_RULE_SETUP
-#line 434 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
+#line 435 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
YY_BREAK
case 266:
YY_RULE_SETUP
-#line 435 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
+#line 436 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
YY_BREAK
case 267:
YY_RULE_SETUP
-#line 436 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
+#line 437 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
YY_BREAK
case 268:
YY_RULE_SETUP
-#line 437 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
+#line 438 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LC); }
YY_BREAK
case 269:
YY_RULE_SETUP
-#line 438 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ON); }
+#line 439 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
YY_BREAK
case 270:
YY_RULE_SETUP
-#line 439 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
+#line 440 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
YY_BREAK
case 271:
YY_RULE_SETUP
-#line 440 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
+#line 441 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LL); }
YY_BREAK
case 272:
YY_RULE_SETUP
-#line 441 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
+#line 442 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LR); }
YY_BREAK
case 273:
YY_RULE_SETUP
-#line 442 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
+#line 443 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
YY_BREAK
case 274:
YY_RULE_SETUP
-#line 443 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
+#line 444 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
YY_BREAK
case 275:
YY_RULE_SETUP
-#line 444 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
+#line 445 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
YY_BREAK
case 276:
YY_RULE_SETUP
-#line 445 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
+#line 446 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
YY_BREAK
case 277:
YY_RULE_SETUP
-#line 446 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
+#line 447 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
YY_BREAK
case 278:
YY_RULE_SETUP
-#line 447 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
+#line 448 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
YY_BREAK
case 279:
YY_RULE_SETUP
-#line 448 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
+#line 449 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
YY_BREAK
case 280:
YY_RULE_SETUP
-#line 449 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
+#line 450 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
YY_BREAK
case 281:
YY_RULE_SETUP
-#line 450 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
+#line 451 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
YY_BREAK
case 282:
YY_RULE_SETUP
-#line 451 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
+#line 452 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
YY_BREAK
case 283:
YY_RULE_SETUP
-#line 452 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
+#line 453 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ON); }
YY_BREAK
case 284:
YY_RULE_SETUP
-#line 453 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SDE); }
+#line 454 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
YY_BREAK
case 285:
YY_RULE_SETUP
-#line 454 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
+#line 455 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
YY_BREAK
case 286:
YY_RULE_SETUP
-#line 455 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
+#line 456 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
YY_BREAK
case 287:
YY_RULE_SETUP
-#line 456 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
+#line 457 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
YY_BREAK
case 288:
YY_RULE_SETUP
-#line 457 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
+#line 458 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
YY_BREAK
case 289:
YY_RULE_SETUP
-#line 458 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
+#line 459 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
YY_BREAK
case 290:
YY_RULE_SETUP
-#line 459 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
+#line 460 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
YY_BREAK
case 291:
YY_RULE_SETUP
-#line 460 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
+#line 461 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
YY_BREAK
case 292:
YY_RULE_SETUP
-#line 461 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
+#line 462 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
YY_BREAK
case 293:
YY_RULE_SETUP
-#line 462 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
+#line 463 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
YY_BREAK
case 294:
YY_RULE_SETUP
-#line 463 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
+#line 464 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
YY_BREAK
case 295:
YY_RULE_SETUP
-#line 464 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
+#line 465 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
YY_BREAK
case 296:
YY_RULE_SETUP
-#line 465 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UC); }
+#line 466 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
YY_BREAK
case 297:
YY_RULE_SETUP
-#line 466 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UL); }
+#line 467 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
YY_BREAK
case 298:
YY_RULE_SETUP
-#line 467 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UR); }
+#line 468 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
YY_BREAK
case 299:
YY_RULE_SETUP
-#line 468 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
+#line 469 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
YY_BREAK
case 300:
YY_RULE_SETUP
-#line 469 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+#line 470 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
YY_BREAK
case 301:
YY_RULE_SETUP
-#line 470 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
+#line 471 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
YY_BREAK
case 302:
YY_RULE_SETUP
-#line 471 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
+#line 472 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
YY_BREAK
case 303:
YY_RULE_SETUP
-#line 472 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
+#line 473 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
YY_BREAK
case 304:
YY_RULE_SETUP
-#line 473 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+#line 474 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
YY_BREAK
case 305:
YY_RULE_SETUP
-#line 474 "/home/even/mapserver/git/mapserver/maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_GD_ALPHA); }
+#line 475 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
YY_BREAK
case 306:
YY_RULE_SETUP
-#line 476 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 476 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
+ YY_BREAK
+case 307:
+YY_RULE_SETUP
+#line 477 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
+ YY_BREAK
+case 308:
+YY_RULE_SETUP
+#line 478 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
+ YY_BREAK
+case 309:
+YY_RULE_SETUP
+#line 479 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UC); }
+ YY_BREAK
+case 310:
+YY_RULE_SETUP
+#line 480 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UL); }
+ YY_BREAK
+case 311:
+YY_RULE_SETUP
+#line 481 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UR); }
+ YY_BREAK
+case 312:
+YY_RULE_SETUP
+#line 482 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
+ YY_BREAK
+case 313:
+YY_RULE_SETUP
+#line 483 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+ YY_BREAK
+case 314:
+YY_RULE_SETUP
+#line 484 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
+ YY_BREAK
+case 315:
+YY_RULE_SETUP
+#line 485 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
+ YY_BREAK
+case 316:
+YY_RULE_SETUP
+#line 486 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
+ YY_BREAK
+case 317:
+YY_RULE_SETUP
+#line 487 "/vagrant/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+ YY_BREAK
+case 318:
+YY_RULE_SETUP
+#line 489 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4066,9 +4181,9 @@ YY_RULE_SETUP
return(MS_STRING);
}
YY_BREAK
-case 307:
+case 319:
YY_RULE_SETUP
-#line 484 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 497 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4079,10 +4194,10 @@ YY_RULE_SETUP
return(MS_NUMBER);
}
YY_BREAK
-case 308:
-/* rule 308 can match eol */
+case 320:
+/* rule 320 can match eol */
YY_RULE_SETUP
-#line 494 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 507 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4092,34 +4207,34 @@ YY_RULE_SETUP
return(MS_BINDING);
}
YY_BREAK
-case 309:
+case 321:
YY_RULE_SETUP
-#line 503 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 516 "/vagrant/maplexer.l"
{
/* attribute binding - shape (fixed value) */
return(MS_TOKEN_BINDING_SHAPE);
}
YY_BREAK
-case 310:
+case 322:
YY_RULE_SETUP
-#line 507 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 520 "/vagrant/maplexer.l"
{
/* attribute binding - map cellsize */
return(MS_TOKEN_BINDING_MAP_CELLSIZE);
}
YY_BREAK
-case 311:
+case 323:
YY_RULE_SETUP
-#line 511 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 524 "/vagrant/maplexer.l"
{
/* attribute binding - data cellsize */
return(MS_TOKEN_BINDING_DATA_CELLSIZE);
}
YY_BREAK
-case 312:
-/* rule 312 can match eol */
+case 324:
+/* rule 324 can match eol */
YY_RULE_SETUP
-#line 515 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 528 "/vagrant/maplexer.l"
{
/* attribute binding - numeric (no quotes) */
msyytext++;
@@ -4130,10 +4245,10 @@ YY_RULE_SETUP
return(MS_TOKEN_BINDING_DOUBLE);
}
YY_BREAK
-case 313:
-/* rule 313 can match eol */
+case 325:
+/* rule 325 can match eol */
YY_RULE_SETUP
-#line 524 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 537 "/vagrant/maplexer.l"
{
/* attribute binding - string (single or double quotes) */
msyytext+=2;
@@ -4144,10 +4259,10 @@ YY_RULE_SETUP
return(MS_TOKEN_BINDING_STRING);
}
YY_BREAK
-case 314:
-/* rule 314 can match eol */
+case 326:
+/* rule 326 can match eol */
YY_RULE_SETUP
-#line 533 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 546 "/vagrant/maplexer.l"
{
/* attribute binding - time */
msyytext+=2;
@@ -4158,9 +4273,9 @@ YY_RULE_SETUP
return(MS_TOKEN_BINDING_TIME);
}
YY_BREAK
-case 315:
+case 327:
YY_RULE_SETUP
-#line 543 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 556 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4169,9 +4284,9 @@ YY_RULE_SETUP
return(MS_NUMBER);
}
YY_BREAK
-case 316:
+case 328:
YY_RULE_SETUP
-#line 551 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 564 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4180,10 +4295,10 @@ YY_RULE_SETUP
return(MS_TOKEN_LITERAL_NUMBER);
}
YY_BREAK
-case 317:
-/* rule 317 can match eol */
+case 329:
+/* rule 329 can match eol */
YY_RULE_SETUP
-#line 559 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 572 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4193,10 +4308,10 @@ YY_RULE_SETUP
return(MS_TOKEN_LITERAL_TIME);
}
YY_BREAK
-case 318:
-/* rule 318 can match eol */
+case 330:
+/* rule 330 can match eol */
YY_RULE_SETUP
-#line 568 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 581 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-2] = '\0';
@@ -4206,10 +4321,10 @@ YY_RULE_SETUP
return(MS_IREGEX);
}
YY_BREAK
-case 319:
-/* rule 319 can match eol */
+case 331:
+/* rule 331 can match eol */
YY_RULE_SETUP
-#line 577 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 590 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4219,9 +4334,9 @@ YY_RULE_SETUP
return(MS_REGEX);
}
YY_BREAK
-case 320:
+case 332:
YY_RULE_SETUP
-#line 586 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 599 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4231,9 +4346,9 @@ YY_RULE_SETUP
return(MS_EXPRESSION);
}
YY_BREAK
-case 321:
+case 333:
YY_RULE_SETUP
-#line 595 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 608 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4243,9 +4358,9 @@ YY_RULE_SETUP
return(MS_LIST);
}
YY_BREAK
-case 322:
+case 334:
YY_RULE_SETUP
-#line 604 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 617 "/vagrant/maplexer.l"
{
msyystring_return_state = MS_STRING;
msyystring_begin = msyytext[0];
@@ -4254,9 +4369,9 @@ YY_RULE_SETUP
BEGIN(MSSTRING);
}
YY_BREAK
-case 323:
+case 335:
YY_RULE_SETUP
-#line 612 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 625 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size,
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4287,9 +4402,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 324:
+case 336:
YY_RULE_SETUP
-#line 642 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 655 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size,
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4301,10 +4416,10 @@ YY_RULE_SETUP
*msyystring_buffer_ptr++ = msyytext[0];
}
YY_BREAK
-case 325:
-/* rule 325 can match eol */
+case 337:
+/* rule 337 can match eol */
YY_RULE_SETUP
-#line 653 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 666 "/vagrant/maplexer.l"
{
char *yptr = msyytext;
while ( *yptr ) {
@@ -4315,10 +4430,10 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 326:
-/* rule 326 can match eol */
+case 338:
+/* rule 338 can match eol */
YY_RULE_SETUP
-#line 663 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 676 "/vagrant/maplexer.l"
{
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
@@ -4335,6 +4450,7 @@ YY_RULE_SETUP
msyyin = fopen(msBuildPath(path, msyybasepath, msyytext), "r");
if(!msyyin) {
msSetError(MS_IOERR, "Error opening included file \"%s\".", "msyylex()", msyytext);
+ msyyin = YY_CURRENT_BUFFER->yy_input_file;
return(-1);
}
@@ -4344,9 +4460,9 @@ YY_RULE_SETUP
BEGIN(INITIAL);
}
YY_BREAK
-case 327:
+case 339:
YY_RULE_SETUP
-#line 688 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 702 "/vagrant/maplexer.l"
{
msyystring_return_state = MS_TOKEN_LITERAL_STRING;
msyystring_begin = msyytext[0];
@@ -4355,9 +4471,9 @@ YY_RULE_SETUP
BEGIN(MSSTRING);
}
YY_BREAK
-case 328:
+case 340:
YY_RULE_SETUP
-#line 696 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 710 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4365,14 +4481,14 @@ YY_RULE_SETUP
return(MS_STRING);
}
YY_BREAK
-case 329:
-/* rule 329 can match eol */
+case 341:
+/* rule 341 can match eol */
YY_RULE_SETUP
-#line 703 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 717 "/vagrant/maplexer.l"
{ msyylineno++; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 705 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 719 "/vagrant/maplexer.l"
{
if( --include_stack_ptr < 0 )
return(EOF); /* end of main file */
@@ -4384,17 +4500,17 @@ case YY_STATE_EOF(INITIAL):
}
}
YY_BREAK
-case 330:
-/* rule 330 can match eol */
+case 342:
+/* rule 342 can match eol */
YY_RULE_SETUP
-#line 716 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 730 "/vagrant/maplexer.l"
{
return(0);
}
YY_BREAK
-case 331:
+case 343:
YY_RULE_SETUP
-#line 720 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 734 "/vagrant/maplexer.l"
{
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4402,17 +4518,17 @@ YY_RULE_SETUP
return(0);
}
YY_BREAK
-case 332:
+case 344:
YY_RULE_SETUP
-#line 726 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 740 "/vagrant/maplexer.l"
{ return(msyytext[0]); }
YY_BREAK
-case 333:
+case 345:
YY_RULE_SETUP
-#line 727 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 741 "/vagrant/maplexer.l"
ECHO;
YY_BREAK
-#line 4416 "/home/even/mapserver/git/mapserver/maplexer.c"
+#line 4532 "/vagrant/maplexer.c"
case YY_STATE_EOF(URL_VARIABLE):
case YY_STATE_EOF(URL_STRING):
case YY_STATE_EOF(EXPRESSION_STRING):
@@ -4699,7 +4815,7 @@ static int yy_get_next_buffer (void)
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
{
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 84);
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 85);
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
@@ -4708,7 +4824,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1930 )
+ if ( yy_current_state >= 2002 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4727,7 +4843,7 @@ static int yy_get_next_buffer (void)
register int yy_is_jam;
register char *yy_cp = (yy_c_buf_p);
- register YY_CHAR yy_c = 84;
+ register YY_CHAR yy_c = 85;
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
@@ -4736,11 +4852,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1930 )
+ if ( yy_current_state >= 2002 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1929);
+ yy_is_jam = (yy_current_state == 2001);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5414,7 +5530,7 @@ void msyyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 727 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 741 "/vagrant/maplexer.l"
diff --git a/maplexer.l b/maplexer.l
index 7f7f574..6287453 100644
--- a/maplexer.l
+++ b/maplexer.l
@@ -182,6 +182,10 @@ char path[MS_MAXPATHLEN];
<EXPRESSION_STRING>tostring { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_TOSTRING); }
<EXPRESSION_STRING>commify { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_COMMIFY); }
<EXPRESSION_STRING>round { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_ROUND); }
+<EXPRESSION_STRING>upper { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_UPPER); }
+<EXPRESSION_STRING>lower { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LOWER); }
+<EXPRESSION_STRING>initcap { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_INITCAP); }
+<EXPRESSION_STRING>firstcap { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FIRSTCAP); }
<EXPRESSION_STRING>buffer { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); }
<EXPRESSION_STRING>difference { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); }
@@ -189,6 +193,7 @@ char path[MS_MAXPATHLEN];
<EXPRESSION_STRING>simplifypt { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); }
<EXPRESSION_STRING>generalize { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); }
<EXPRESSION_STRING>smoothsia { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); }
+<EXPRESSION_STRING>javascript { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_JAVASCRIPT); }
<EXPRESSION_STRING>intersects { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
<EXPRESSION_STRING>disjoint { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
@@ -197,11 +202,15 @@ char path[MS_MAXPATHLEN];
<EXPRESSION_STRING>crosses { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); }
<EXPRESSION_STRING>within { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); }
<EXPRESSION_STRING>contains { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); }
+<EXPRESSION_STRING>equals { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQUALS); }
<EXPRESSION_STRING>beyond { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); }
<EXPRESSION_STRING>dwithin { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); }
<EXPRESSION_STRING>fromtext { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); }
+<EXPRESSION_STRING>true { msyynumber=MS_TRUE; return(MS_TOKEN_LITERAL_BOOLEAN); }
+<EXPRESSION_STRING>false { msyynumber=MS_FALSE; return(MS_TOKEN_LITERAL_BOOLEAN); }
+
<INITIAL>colorrange { MS_LEXER_RETURN_TOKEN(COLORRANGE); }
<INITIAL>datarange { MS_LEXER_RETURN_TOKEN(DATARANGE); }
<INITIAL>rangeitem { MS_LEXER_RETURN_TOKEN(RANGEITEM); }
@@ -221,6 +230,9 @@ char path[MS_MAXPATHLEN];
<INITIAL,URL_STRING>classgroup { MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
<INITIAL>cluster { MS_LEXER_RETURN_TOKEN(CLUSTER); }
<INITIAL,URL_STRING>color { MS_LEXER_RETURN_TOKEN(COLOR); }
+<INITIAL>compfilter { MS_LEXER_RETURN_TOKEN(COMPFILTER); }
+<INITIAL>composite { MS_LEXER_RETURN_TOKEN(COMPOSITE); }
+<INITIAL>compop { MS_LEXER_RETURN_TOKEN(COMPOP); }
<INITIAL>config { MS_LEXER_RETURN_TOKEN(CONFIG); }
<INITIAL,URL_STRING>connection { MS_LEXER_RETURN_TOKEN(CONNECTION); }
<INITIAL,URL_STRING>connectiontype { MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
@@ -385,6 +397,8 @@ char path[MS_MAXPATHLEN];
<INITIAL>transform { MS_LEXER_RETURN_TOKEN(TRANSFORM); }
<INITIAL>type { MS_LEXER_RETURN_TOKEN(TYPE); }
<INITIAL,URL_VARIABLE,URL_STRING>units { MS_LEXER_RETURN_TOKEN(UNITS); }
+<INITIAL>utfdata { MS_LEXER_RETURN_TOKEN(UTFDATA); }
+<INITIAL>utfitem { MS_LEXER_RETURN_TOKEN(UTFITEM); }
<INITIAL>validation { MS_LEXER_RETURN_TOKEN(VALIDATION); }
<INITIAL>values { MS_LEXER_RETURN_TOKEN(VALUES); }
<INITIAL,URL_VARIABLE>web { MS_LEXER_RETURN_TOKEN(WEB); }
@@ -416,6 +430,7 @@ char path[MS_MAXPATHLEN];
<INITIAL,URL_STRING>follow { MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
<INITIAL>giant { MS_LEXER_RETURN_TOKEN(MS_GIANT); }
<INITIAL>hatch { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
+<INITIAL>kerneldensity { MS_LEXER_RETURN_TOKEN(MS_KERNELDENSITY); }
<INITIAL>hilite { MS_LEXER_RETURN_TOKEN(MS_HILITE); }
<INITIAL,URL_STRING>inches { MS_LEXER_RETURN_TOKEN(MS_INCHES); }
<INITIAL,URL_STRING>kilometers { MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
@@ -450,7 +465,6 @@ char path[MS_MAXPATHLEN];
<INITIAL>raster { MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
<INITIAL,URL_STRING>right { MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
<INITIAL>round { MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
-<INITIAL>sde { MS_LEXER_RETURN_TOKEN(MS_SDE); }
<INITIAL>selected { MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
<INITIAL>simple { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
<INITIAL>single { MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
@@ -471,9 +485,8 @@ char path[MS_MAXPATHLEN];
<INITIAL>vector { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
<INITIAL>wfs { MS_LEXER_RETURN_TOKEN(MS_WFS); }
<INITIAL>wms { MS_LEXER_RETURN_TOKEN(MS_WMS); }
-<INITIAL>alpha { MS_LEXER_RETURN_TOKEN(MS_GD_ALPHA); }
-<URL_VARIABLE>\[[a-z/\.][a-z0-9/\.\-\=_ ]*\] {
+<URL_VARIABLE>\[[a-z/\.][a-z0-9/:\.\-\=_ ]*\] {
msyytext++;
msyytext[strlen(msyytext)-1] = '\0';
MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext),
@@ -676,6 +689,7 @@ char path[MS_MAXPATHLEN];
msyyin = fopen(msBuildPath(path, msyybasepath, msyytext), "r");
if(!msyyin) {
msSetError(MS_IOERR, "Error opening included file \"%s\".", "msyylex()", msyytext);
+ msyyin = YY_CURRENT_BUFFER->yy_input_file;
return(-1);
}
diff --git a/maplibxml2.c b/maplibxml2.c
index c869431..7a0c97c 100644
--- a/maplibxml2.c
+++ b/maplibxml2.c
@@ -3,7 +3,7 @@
*
* Project: MapServer
* Purpose: libxml2 convenience wrapper functions
- * Author: Tom Kralidis (tomkralidis at hotmail.com)
+ * Author: Tom Kralidis (tomkralidis at gmail.com)
*
******************************************************************************
* Copyright (c) 2007, Tom Kralidis
@@ -57,12 +57,10 @@ void msLibXml2GenerateList(xmlNodePtr psParent, xmlNsPtr psNs, const char *elnam
int n = 0;
int i = 0;
tokens = msStringSplit(values, delim, &n);
- if (tokens && n > 0) {
- for (i=0; i<n; i++) {
- xmlNewChild(psParent, psNs, BAD_CAST elname, BAD_CAST tokens[i]);
- }
- msFreeCharArray(tokens, n);
+ for (i=0; i<n; i++) {
+ xmlNewChild(psParent, psNs, BAD_CAST elname, BAD_CAST tokens[i]);
}
+ msFreeCharArray(tokens, n);
}
/**
@@ -104,10 +102,10 @@ xmlXPathObjectPtr msLibXml2GetXPath(xmlDocPtr doc, xmlXPathContextPtr context, x
*
*/
-const char *msLibXml2GetXPathTree(xmlDocPtr doc, xmlXPathObjectPtr xpath)
+char *msLibXml2GetXPathTree(xmlDocPtr doc, xmlXPathObjectPtr xpath)
{
xmlBufferPtr xbuf;
- const char *result = NULL;
+ char *result = NULL;
xbuf = xmlBufferCreate();
diff --git a/maplibxml2.h b/maplibxml2.h
index 019f0d8..ee58398 100644
--- a/maplibxml2.h
+++ b/maplibxml2.h
@@ -3,7 +3,7 @@
*
* Project: MapServer
* Purpose: libxml2 convenience wrapper functions include file
- * Author: Tom Kralidis (tomkralidis at hotmail.com)
+ * Author: Tom Kralidis (tomkralidis at gmail.com)
*
******************************************************************************
* Copyright (c) 2007, Tom Kralidis
@@ -43,7 +43,7 @@ xmlXPathObjectPtr msLibXml2GetXPath(xmlDocPtr doc, xmlXPathContextPtr context, x
void msLibXml2GenerateList(xmlNodePtr psParent, xmlNsPtr psNs, const char *elname, const char *values, char delim);
-const char *msLibXml2GetXPathTree(xmlDocPtr doc, xmlXPathObjectPtr xpath);
+char *msLibXml2GetXPathTree(xmlDocPtr doc, xmlXPathObjectPtr xpath);
#endif /* defined(USE_LIBXML2) */
diff --git a/mapmssql2008.c b/mapmssql2008.c
index a7cda77..b1b74d2 100644
--- a/mapmssql2008.c
+++ b/mapmssql2008.c
@@ -151,6 +151,7 @@ typedef struct ms_MSSQL2008_layer_info_t {
char *urid_name; /* name of user-specified unique identifier or OID */
char *user_srid; /* zero length = calculate, non-zero means using this value! */
char *index_name; /* hopefully this isn't necessary - but if the optimizer ain't cuttin' it... */
+ char *sort_spec; /* the sort by specification which should be applied to the generated select statement */
msODBCconn * conn; /* Connection to db */
msGeometryParserInfo gpi; /* struct for the geometry parser */
@@ -451,7 +452,7 @@ static char *strstrIgnoreCase(const char *haystack, const char *needle)
return (char *) (match < 0 ? NULL : haystack + match);
}
-static int msMSSQL2008LayerParseData(layerObj *layer, char **geom_column_name, char **geom_column_type, char **table_name, char **urid_name, char **user_srid, char **index_name, int debug);
+static int msMSSQL2008LayerParseData(layerObj *layer, char **geom_column_name, char **geom_column_type, char **table_name, char **urid_name, char **user_srid, char **index_name, char **sort_spec, int debug);
/* Close connection and handles */
static void msMSSQL2008CloseConnection(void *conn_handle)
@@ -626,6 +627,7 @@ int msMSSQL2008LayerOpen(layerObj *layer)
layerinfo->urid_name = NULL;
layerinfo->user_srid = NULL;
layerinfo->index_name = NULL;
+ layerinfo->sort_spec = NULL;
layerinfo->conn = NULL;
layerinfo->conn = (msODBCconn *) msConnPoolRequest(layer);
@@ -688,7 +690,7 @@ int msMSSQL2008LayerOpen(layerObj *layer)
setMSSQL2008LayerInfo(layer, layerinfo);
- if (msMSSQL2008LayerParseData(layer, &layerinfo->geom_column, &layerinfo->geom_column_type, &layerinfo->geom_table, &layerinfo->urid_name, &layerinfo->user_srid, &layerinfo->index_name, layer->debug) != MS_SUCCESS) {
+ if (msMSSQL2008LayerParseData(layer, &layerinfo->geom_column, &layerinfo->geom_column_type, &layerinfo->geom_table, &layerinfo->urid_name, &layerinfo->user_srid, &layerinfo->index_name, &layerinfo->sort_spec, layer->debug) != MS_SUCCESS) {
msSetError( MS_QUERYERR, "Could not parse the layer data", "msMSSQL2008LayerOpen()");
return MS_FAILURE;
}
@@ -902,24 +904,27 @@ static int prepare_database(layerObj *layer, rectObj rect, char **query_string)
}
/* test whether we should omit spatial filtering */
+ /* TODO: once this driver supports expression translation then filter->native_string will need to be considered here */
msMSSQL2008LayerGetExtent(layer, &extent);
- if (rect.minx <= extent.minx && rect.miny <= extent.miny &&
- rect.maxx >= extent.maxx && rect.maxy >= extent.maxy) {
+ if (rect.minx <= extent.minx && rect.miny <= extent.miny && rect.maxx >= extent.maxx && rect.maxy >= extent.maxy) {
/* no spatial filter used */
- if(!layer->filter.string) {
- snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s", columns_wanted, data_source );
+ if(msLayerGetProcessingKey(layer, "NATIVE_FILTER") == NULL) {
+ snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s", columns_wanted, data_source );
} else {
- snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE (%s)", columns_wanted, data_source, layer->filter.string );
+ snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE (%s)", columns_wanted, data_source, msLayerGetProcessingKey(layer, "NATIVE_FILTER"));
}
- }
- else {
- if(!layer->filter.string) {
- snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE %s.STIntersects(%s) = 1 ", columns_wanted, data_source, layerinfo->geom_column, box3d );
+ } else {
+ if(msLayerGetProcessingKey(layer, "NATIVE_FILTER") == NULL) {
+ snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE %s.STIntersects(%s) = 1 ", columns_wanted, data_source, layerinfo->geom_column, box3d );
} else {
- snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE (%s) and %s.STIntersects(%s) = 1 ", columns_wanted, data_source, layer->filter.string, layerinfo->geom_column, box3d );
+ snprintf(query_string_temp, sizeof(query_string_temp), "SELECT %s from %s WHERE (%s) and %s.STIntersects(%s) = 1 ", columns_wanted, data_source, msLayerGetProcessingKey(layer, "NATIVE_FILTER"), layerinfo->geom_column, box3d );
}
}
+ if (layerinfo->sort_spec) {
+ strcat(query_string_temp, layerinfo->sort_spec);
+ }
+
msFree(data_source);
msFree(f_table_name);
msFree(columns_wanted);
@@ -1021,6 +1026,11 @@ int msMSSQL2008LayerClose(layerObj *layer)
layerinfo->index_name = NULL;
}
+ if(layerinfo->sort_spec) {
+ msFree(layerinfo->sort_spec);
+ layerinfo->sort_spec = NULL;
+ }
+
if(layerinfo->sql) {
msFree(layerinfo->sql);
layerinfo->sql = NULL;
@@ -1640,7 +1650,6 @@ int msMSSQL2008LayerGetShapeRandom(layerObj *layer, shapeObj *shape, long *recor
result = force_to_polygons(wkbBuffer, shape);
break;
- case MS_LAYER_ANNOTATION:
case MS_LAYER_QUERY:
case MS_LAYER_CHART:
result = dont_force(wkbBuffer, shape);
@@ -1996,9 +2005,9 @@ int msMSSQL2008LayerRetrievePK(layerObj *layer, char **urid_name, char* table_na
* column name, table name and name of a column to serve as a
* unique record id
*/
-static int msMSSQL2008LayerParseData(layerObj *layer, char **geom_column_name, char **geom_column_type, char **table_name, char **urid_name, char **user_srid, char **index_name, int debug)
+static int msMSSQL2008LayerParseData(layerObj *layer, char **geom_column_name, char **geom_column_type, char **table_name, char **urid_name, char **user_srid, char **index_name, char **sort_spec, int debug)
{
- char *pos_opt, *pos_scn, *tmp, *pos_srid, *pos_urid, *pos_geomtype, *pos_geomtype2, *pos_indexHint, *data;
+ char *pos_opt, *pos_scn, *tmp, *pos_srid, *pos_urid, *pos_geomtype, *pos_geomtype2, *pos_indexHint, *data, *pos_order;
int slength;
data = msStrdup(layer->data);
@@ -2117,6 +2126,13 @@ static int msMSSQL2008LayerParseData(layerObj *layer, char **geom_column_name, c
}
}
+ /* Find the order by */
+ pos_order = strstrIgnoreCase(pos_opt, " order by ");
+
+ if (pos_order) {
+ *sort_spec = msStrdup(pos_order);
+ }
+
if(debug) {
msDebug("msMSSQL2008LayerParseData: unique column = %s, srid='%s', geom_column_name = %s, table_name=%s\n", *urid_name, *user_srid, *geom_column_name, *table_name);
}
@@ -2194,18 +2210,18 @@ int msMSSQL2008LayerGetItems(layerObj *layer)
return MS_FAILURE;
}
-
/* end above's #ifdef USE_MSSQL2008 */
#endif
#ifdef USE_MSSQL2008_PLUGIN
-MS_DLL_EXPORT int
-PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
+MS_DLL_EXPORT int PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
{
assert(layer != NULL);
assert(vtable != NULL);
+ /* vtable->LayerTranslateFilter, use default - need to add this... */
+
vtable->LayerInitItemInfo = msMSSQL2008LayerInitItemInfo;
vtable->LayerFreeItemInfo = msMSSQL2008LayerFreeItemInfo;
vtable->LayerOpen = msMSSQL2008LayerOpen;
diff --git a/mapobject.c b/mapobject.c
index 2d7ee4d..255b47c 100644
--- a/mapobject.c
+++ b/mapobject.c
@@ -137,6 +137,11 @@ void msFreeMap(mapObj *map)
msFreeQuery(&(map->query));
+#ifdef USE_V8_MAPSCRIPT
+ if (map->v8context)
+ msV8FreeContext(map);
+#endif
+
msFree(map);
}
diff --git a/mapogcfilter.c b/mapogcfilter.c
index ad14159..aa6cc94 100644
--- a/mapogcfilter.c
+++ b/mapogcfilter.c
@@ -38,11 +38,11 @@
#include "mapogcfilter.h"
#include "mapserver.h"
#include "mapowscommon.h"
+#include "maptime.h"
+static int FLTHasUniqueTopLevelDuringFilter(FilterEncodingNode *psFilterNode);
-
-
-int FLTIsNumeric(char *pszValue)
+int FLTIsNumeric(const char *pszValue)
{
if (pszValue != NULL && *pszValue != '\0' && !isspace(*pszValue)) {
/*the regex seems to have a problem on windows when mapserver is built using
@@ -66,8 +66,7 @@ int FLTIsNumeric(char *pszValue)
return MS_TRUE;
#else
char * p;
- strtod (pszValue, &p);
- if (*p == '\0') return MS_TRUE;
+ if (strtod(pszValue, &p) != 0 || *p == '\0') return MS_TRUE;
#endif
}
@@ -78,7 +77,7 @@ int FLTIsNumeric(char *pszValue)
** Apply an expression to the layer's filter element.
**
*/
-int FLTApplyExpressionToLayer(layerObj *lp, char *pszExpression)
+int FLTApplyExpressionToLayer(layerObj *lp, const char *pszExpression)
{
char *pszFinalExpression=NULL, *pszBuffer = NULL;
/*char *escapedTextString=NULL;*/
@@ -86,7 +85,7 @@ int FLTApplyExpressionToLayer(layerObj *lp, char *pszExpression)
if (lp && pszExpression) {
if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL ||
- lp->connectiontype == MS_SDE || lp->connectiontype == MS_PLUGIN) {
+ lp->connectiontype == MS_PLUGIN) {
pszFinalExpression = msStrdup("(");
pszFinalExpression = msStringConcatenate(pszFinalExpression, pszExpression);
pszFinalExpression = msStringConcatenate(pszFinalExpression, ")");
@@ -116,7 +115,7 @@ int FLTApplyExpressionToLayer(layerObj *lp, char *pszExpression)
pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
pszBuffer = msStringConcatenate(pszBuffer, ") and ");
} else if (lp->filter.string)
- freeExpression(&lp->filter);
+ msFreeExpression(&lp->filter);
pszBuffer = msStringConcatenate(pszBuffer, pszFinalExpression);
@@ -143,20 +142,17 @@ int FLTApplyExpressionToLayer(layerObj *lp, char *pszExpression)
return MS_FALSE;
}
-char *FLTGetExpressionForValuesRanges(layerObj *lp, char *item, char *value, int forcecharcter)
+char *FLTGetExpressionForValuesRanges(layerObj *lp, const char *item, const char *value, int forcecharcter)
{
- int bIscharacter, bSqlLayer;
+ int bIscharacter, bSqlLayer=MS_FALSE;
char *pszExpression = NULL, *pszEscapedStr=NULL, *pszTmpExpression=NULL;
char **paszElements = NULL, **papszRangeElements=NULL;
int numelements,i,nrangeelements;
+
+ /* TODO: remove the bSqlLayer checks since we want to write MapServer expressions only. */
+
/* double minval, maxval; */
if (lp && item && value) {
- if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL ||
- lp->connectiontype == MS_SDE || lp->connectiontype == MS_PLUGIN)
- bSqlLayer = MS_TRUE;
- else
- bSqlLayer = MS_FALSE;
-
if (strstr(value, "/") == NULL) {
/*value(s)*/
paszElements = msStringSplit (value, ',', &numelements);
@@ -210,8 +206,8 @@ char *FLTGetExpressionForValuesRanges(layerObj *lp, char *item, char *value, in
pszTmpExpression = NULL;
}
pszExpression = msStringConcatenate(pszExpression, ")");
- msFreeCharArray(paszElements, numelements);
}
+ msFreeCharArray(paszElements, numelements);
} else {
/*range(s)*/
paszElements = msStringSplit (value, ',', &numelements);
@@ -286,14 +282,15 @@ char *FLTGetExpressionForValuesRanges(layerObj *lp, char *item, char *value, in
msFree(pszTmpExpression);
pszTmpExpression = NULL;
- msFreeCharArray(papszRangeElements, nrangeelements);
}
+ msFreeCharArray(papszRangeElements, nrangeelements);
}
pszExpression = msStringConcatenate(pszExpression, ")");
- msFreeCharArray(paszElements, numelements);
}
+ msFreeCharArray(paszElements, numelements);
}
}
+ msFree(pszTmpExpression);
return pszExpression;
}
@@ -306,9 +303,10 @@ int FLTogrConvertGeometry(OGRGeometryH hGeometry, shapeObj *psShape,
return msOGRGeometryToShape(hGeometry, psShape, nType);
}
+static
int FLTShapeFromGMLTree(CPLXMLNode *psTree, shapeObj *psShape , char **ppszSRS)
{
- char *pszSRS = NULL;
+ const char *pszSRS = NULL;
if (psTree && psShape) {
CPLXMLNode *psNext = psTree->psNext;
OGRGeometryH hGeometry = NULL;
@@ -329,13 +327,13 @@ int FLTShapeFromGMLTree(CPLXMLNode *psTree, shapeObj *psShape , char **ppszSRS)
FLTogrConvertGeometry(hGeometry, psShape, nType);
OGR_G_DestroyGeometry(hGeometry);
- }
- pszSRS = (char *)CPLGetXMLValue(psTree, "srsName", NULL);
- if (ppszSRS && pszSRS)
- *ppszSRS = msStrdup(pszSRS);
+ pszSRS = CPLGetXMLValue(psTree, "srsName", NULL);
+ if (ppszSRS && pszSRS)
+ *ppszSRS = msStrdup(pszSRS);
- return MS_TRUE;
+ return MS_TRUE;
+ }
}
return MS_FALSE;
@@ -379,97 +377,6 @@ int FLTIsGeosNode(char *pszValue)
return MS_TRUE;
}
-int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj)
-{
- int nStatus = MS_FALSE;
- int nTokens = 0;
- char **tokens = NULL;
- int nEpsgTmp=0;
-
-#ifdef USE_PROJ
- if (pszEpsg && psProj) {
- nTokens = 0;
-
- /* There are several forms an epsg code may be given. In any case the */
- /* epsg code is the last token. */
- /* TODO: To make sure it is an epsg code check the string, too. */
- /* - urn:ogc:def:crs:EPSG:6.5:4326 */
- /* - urn:ogc:def:crs:EPSG::4326 */
- /* - http://www.opengis.net/gml/srs/epsg.xml#4326 */
- /* - epsg:4326 */
- tokens = msStringSplit(pszEpsg,'#', &nTokens);
- if( tokens && nTokens == 1 ) {
- msFreeCharArray(tokens, nTokens);
- tokens = msStringSplit(pszEpsg,':', &nTokens);
- }
-
- if (tokens && nTokens > 1) {
- nEpsgTmp = atoi(tokens[nTokens-1]);
-
- if (nEpsgTmp > 0) {
- char szTmp[32];
- snprintf(szTmp, sizeof(szTmp), "init=epsg:%d",nEpsgTmp);
- msInitProjection(psProj);
- if (msLoadProjectionString(psProj, szTmp) == 0)
- nStatus = MS_TRUE;
- }
- }
-
- if (tokens)
- msFreeCharArray(tokens, nTokens);
- }
-#endif
- return nStatus;
-}
-
-
-
-int FLTGML2Shape_XMLNode(CPLXMLNode *psNode, shapeObj *psShp)
-{
- lineObj line= {0,NULL};
- CPLXMLNode *psCoordinates = NULL;
- char *pszTmpCoord = NULL;
- char **szCoords = NULL;
- int nCoords = 0;
-
-
- if (!psNode || !psShp)
- return MS_FALSE;
-
-
- if( strcasecmp(psNode->pszValue,"PointType") == 0
- || strcasecmp(psNode->pszValue,"Point") == 0) {
- psCoordinates = CPLGetXMLNode(psNode, "coordinates");
-
- if (psCoordinates && psCoordinates->psChild &&
- psCoordinates->psChild->pszValue) {
- pszTmpCoord = psCoordinates->psChild->pszValue;
- szCoords = msStringSplit(pszTmpCoord, ',', &nCoords);
- if (szCoords && nCoords >= 2) {
- line.numpoints = 1;
- line.point = (pointObj *)malloc(sizeof(pointObj));
- line.point[0].x = atof(szCoords[0]);
- line.point[0].y = atof(szCoords[1]);
-#ifdef USE_POINT_Z_M
- line.point[0].m = 0;
-#endif
-
- psShp->type = MS_SHAPE_POINT;
-
- msAddLine(psShp, &line);
- free(line.point);
-
- return MS_TRUE;
- }
- }
- }
-
- return MS_FALSE;
-}
-
-
-
-
/************************************************************************/
/* FLTIsSimpleFilterNoSpatial */
/* */
@@ -477,51 +384,52 @@ int FLTGML2Shape_XMLNode(CPLXMLNode *psNode, shapeObj *psShp)
/************************************************************************/
int FLTIsSimpleFilterNoSpatial(FilterEncodingNode *psNode)
{
- if (FLTIsSimpleFilter(psNode) &&
- FLTNumberOfFilterType(psNode, "BBOX") == 0)
+ if (FLTIsSimpleFilter(psNode) && FLTNumberOfFilterType(psNode, "BBOX") == 0)
return MS_TRUE;
return MS_FALSE;
}
-
-
-
/************************************************************************/
/* FLTApplySimpleSQLFilter() */
/************************************************************************/
-int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex)
+int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex)
{
layerObj *lp = NULL;
char *szExpression = NULL;
rectObj sQueryRect = map->extent;
- char *szEPSG = NULL;
+ const char *szEPSG = NULL;
projectionObj sProjTmp;
char *pszBuffer = NULL;
int bConcatWhere = 0;
int bHasAWhere =0;
char *pszTmp = NULL, *pszTmp2 = NULL;
char *tmpfilename = NULL;
+ const char* pszTimeField = NULL;
+ const char* pszTimeValue = NULL;
lp = (GET_LAYER(map, iLayerIndex));
/* if there is a bbox use it */
szEPSG = FLTGetBBOX(psNode, &sQueryRect);
if(szEPSG && map->projection.numargs > 0) {
- if (FLTParseEpsgString(szEPSG, &sProjTmp)) {
+ msInitProjection(&sProjTmp);
+ /* Use the non EPSG variant since axis swapping is done in FLTDoAxisSwappingIfNecessary */
+ if (msLoadProjectionString(&sProjTmp, szEPSG) == 0) {
msProjectRect(&sProjTmp, &map->projection, &sQueryRect);
- msFreeProjection(&sProjTmp);
}
+ msFreeProjection(&sProjTmp);
+ }
+
+ if( lp->connectiontype == MS_OGR ) {
+ pszTimeValue = FLTGetDuring(psNode, &pszTimeField);
}
/* make sure that the layer can be queried*/
- if (!lp->template)
- lp->template = msStrdup("ttt.html");
+ if (!lp->template) lp->template = msStrdup("ttt.html");
- /* if there is no class, create at least one, so that query by rect
- would work*/
+ /* if there is no class, create at least one, so that query by rect would work */
if (lp->numclasses == 0) {
if (msGrowLayerClasses(lp) == NULL)
return MS_FAILURE;
@@ -531,7 +439,7 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
bConcatWhere = 0;
bHasAWhere = 0;
if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL ||
- lp->connectiontype == MS_SDE || lp->connectiontype == MS_PLUGIN) {
+ lp->connectiontype == MS_PLUGIN) {
szExpression = FLTGetSQLExpression(psNode, lp);
if (szExpression) {
pszTmp = msStrdup("(");
@@ -564,9 +472,7 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
}
-
if (szExpression) {
-
if (bConcatWhere)
pszBuffer = msStringConcatenate(pszBuffer, "WHERE ");
@@ -580,8 +486,7 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
pszBuffer = msStringConcatenate(pszBuffer, lp->filter.string);
pszBuffer = msStringConcatenate(pszBuffer, ") and ");
} else if (lp->filter.string)
- freeExpression(&lp->filter);
-
+ msFreeExpression(&lp->filter);
pszBuffer = msStringConcatenate(pszBuffer, szExpression);
@@ -591,6 +496,9 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
msLoadExpressionString(&lp->filter, pszBuffer);
free(szExpression);
}
+
+ if (pszTimeField && pszTimeValue)
+ msLayerSetTimeFilter(lp, pszTimeValue, pszTimeField);
if (pszBuffer)
free(pszBuffer);
@@ -651,10 +559,6 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
/* return MS_SUCCESS; */
}
-
-
-
-
/************************************************************************/
/* FLTIsSimpleFilter */
/* */
@@ -662,6 +566,8 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
/************************************************************************/
int FLTIsSimpleFilter(FilterEncodingNode *psNode)
{
+ return MS_FALSE;
+
if (FLTValidForBBoxFilter(psNode)) {
if (FLTNumberOfFilterType(psNode, "DWithin") == 0 &&
FLTNumberOfFilterType(psNode, "Intersect") == 0 &&
@@ -680,16 +586,13 @@ int FLTIsSimpleFilter(FilterEncodingNode *psNode)
return FALSE;
}
-
-
/************************************************************************/
/* FLTApplyFilterToLayer */
/* */
/* Use the filter encoding node to create mapserver expressions */
/* and apply it to the layer. */
/************************************************************************/
-int FLTApplyFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex)
+int FLTApplyFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex)
{
layerObj *layer = GET_LAYER(map, iLayerIndex);
@@ -699,7 +602,6 @@ int FLTApplyFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
return rv;
}
return layer->vtable->LayerApplyFilterToLayer(psNode, map, iLayerIndex);
-
}
/************************************************************************/
@@ -707,15 +609,15 @@ int FLTApplyFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
/* */
/* Helper function for layer virtual table architecture */
/************************************************************************/
-int FLTLayerApplyCondSQLFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex)
+int FLTLayerApplyCondSQLFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex)
{
/* ==================================================================== */
/* Check here to see if it is a simple filter and if that is */
/* the case, we are going to use the FILTER element on */
/* the layer. */
/* ==================================================================== */
- if (FLTIsSimpleFilter(psNode)) {
+ layerObj* lp = GET_LAYER(map, iLayerIndex);
+ if (FLTIsSimpleFilter(psNode) && !(lp->connectiontype == MS_OGR && !FLTHasUniqueTopLevelDuringFilter(psNode)) ) {
return FLTApplySimpleSQLFilter(psNode, map, iLayerIndex);
}
@@ -756,10 +658,9 @@ int FLTLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
/* Calling function should use FreeFilterEncodingNode function */
/* to free memeory. */
/************************************************************************/
-FilterEncodingNode *FLTParseFilterEncoding(char *szXMLString)
+FilterEncodingNode *FLTParseFilterEncoding(const char *szXMLString)
{
CPLXMLNode *psRoot = NULL, *psChild=NULL, *psFilter=NULL;
- CPLXMLNode *psFilterStart = NULL;
FilterEncodingNode *psFilterNode = NULL;
if (szXMLString == NULL || strlen(szXMLString) <= 0 ||
@@ -777,44 +678,32 @@ FilterEncodingNode *FLTParseFilterEncoding(char *szXMLString)
/* -------------------------------------------------------------------- */
/* get the root element (Filter). */
/* -------------------------------------------------------------------- */
- psChild = psRoot;
- psFilter = NULL;
-
- while( psChild != NULL ) {
- if (psChild->eType == CXT_Element &&
- EQUAL(psChild->pszValue,"Filter")) {
- psFilter = psChild;
- break;
- } else
- psChild = psChild->psNext;
- }
-
+ psFilter = CPLGetXMLNode(psRoot, "=Filter");
if (!psFilter)
+ {
+ CPLDestroyXMLNode( psRoot );
return NULL;
+ }
psChild = psFilter->psChild;
- psFilterStart = NULL;
while (psChild) {
if (FLTIsSupportedFilterType(psChild)) {
- psFilterStart = psChild;
- psChild = NULL;
+ psFilterNode = FLTCreateFilterEncodingNode();
+ FLTInsertElementInNode(psFilterNode, psChild);
+ break;
} else
psChild = psChild->psNext;
}
- if (psFilterStart && FLTIsSupportedFilterType(psFilterStart)) {
- psFilterNode = FLTCreateFilterEncodingNode();
-
- FLTInsertElementInNode(psFilterNode, psFilterStart);
- }
-
CPLDestroyXMLNode( psRoot );
/* -------------------------------------------------------------------- */
/* validate the node tree to make sure that all the nodes are valid.*/
/* -------------------------------------------------------------------- */
- if (!FLTValidFilterNode(psFilterNode))
+ if (!FLTValidFilterNode(psFilterNode)) {
+ FLTFreeFilterEncodingNode(psFilterNode);
return NULL;
+ }
return psFilterNode;
@@ -849,6 +738,18 @@ int FLTValidFilterNode(FilterEncodingNode *psFilterNode)
return 1;
}
+
+/************************************************************************/
+/* FLTIsGeometryFilterNodeType */
+/************************************************************************/
+
+static int FLTIsGeometryFilterNodeType(int eType)
+{
+ return (eType == FILTER_NODE_TYPE_GEOMETRY_POINT ||
+ eType == FILTER_NODE_TYPE_GEOMETRY_LINE ||
+ eType == FILTER_NODE_TYPE_GEOMETRY_POLYGON);
+}
+
/************************************************************************/
/* FLTFreeFilterEncodingNode */
/* */
@@ -872,15 +773,14 @@ void FLTFreeFilterEncodingNode(FilterEncodingNode *psFilterNode)
if( psFilterNode->pOther ) {
if (psFilterNode->pszValue != NULL &&
strcasecmp(psFilterNode->pszValue, "PropertyIsLike") == 0) {
- if( ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard )
- free( ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard );
- if( ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar )
- free( ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar );
- if( ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar )
- free( ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar );
- } else if (psFilterNode->eType == FILTER_NODE_TYPE_GEOMETRY_POINT ||
- psFilterNode->eType == FILTER_NODE_TYPE_GEOMETRY_LINE ||
- psFilterNode->eType == FILTER_NODE_TYPE_GEOMETRY_POLYGON) {
+ FEPropertyIsLike* propIsLike = (FEPropertyIsLike *)psFilterNode->pOther;
+ if( propIsLike->pszWildCard )
+ free( propIsLike->pszWildCard );
+ if( propIsLike->pszSingleChar )
+ free( propIsLike->pszSingleChar );
+ if( propIsLike->pszEscapeChar )
+ free( propIsLike->pszEscapeChar );
+ } else if (FLTIsGeometryFilterNodeType(psFilterNode->eType)) {
msFreeShape((shapeObj *)(psFilterNode->pOther));
}
/* else */
@@ -924,13 +824,104 @@ FilterEncodingNode *FLTCreateBinaryCompFilterEncodingNode(void)
psFilterNode = FLTCreateFilterEncodingNode();
/* used to store case sensitivity flag. Default is 0 meaning the
- comparing is case snetitive */
+ comparing is case sensititive */
psFilterNode->pOther = (int *)malloc(sizeof(int));
(*(int *)(psFilterNode->pOther)) = 0;
return psFilterNode;
}
+
+/************************************************************************/
+/* FLTFindGeometryNode */
+/* */
+/************************************************************************/
+
+static CPLXMLNode* FLTFindGeometryNode(CPLXMLNode* psXMLNode,
+ int* pbPoint,
+ int* pbLine,
+ int* pbPolygon)
+{
+ CPLXMLNode *psGMLElement = NULL;
+
+ psGMLElement = CPLGetXMLNode(psXMLNode, "Point");
+ if (!psGMLElement)
+ psGMLElement = CPLGetXMLNode(psXMLNode, "PointType");
+ if (psGMLElement)
+ *pbPoint =1;
+ else {
+ psGMLElement= CPLGetXMLNode(psXMLNode, "Polygon");
+ if (psGMLElement)
+ *pbPolygon = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPolygon")))
+ *pbPolygon = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Surface")))
+ *pbPolygon = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiSurface")))
+ *pbPolygon = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Box")))
+ *pbPolygon = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString")))
+ *pbLine = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiLineString")))
+ *pbLine = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Curve")))
+ *pbLine = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiCurve")))
+ *pbLine = 1;
+ else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPoint")))
+ *pbPoint = 1;
+ }
+ return psGMLElement;
+}
+
+/************************************************************************/
+/* FLTGetPropertyName */
+/************************************************************************/
+static const char* FLTGetPropertyName(CPLXMLNode* psXMLNode)
+{
+ const char* pszPropertyName;
+
+ pszPropertyName = CPLGetXMLValue(psXMLNode, "PropertyName", NULL);
+ if( pszPropertyName == NULL ) /* FE 2.0 ? */
+ pszPropertyName = CPLGetXMLValue(psXMLNode, "ValueReference", NULL);
+ return pszPropertyName;
+}
+
+/************************************************************************/
+/* FLTGetFirstChildNode */
+/************************************************************************/
+static CPLXMLNode* FLTGetFirstChildNode(CPLXMLNode* psXMLNode)
+{
+ if( psXMLNode == NULL )
+ return NULL;
+ psXMLNode = psXMLNode->psChild;
+ while( psXMLNode != NULL )
+ {
+ if( psXMLNode->eType == CXT_Element )
+ return psXMLNode;
+ psXMLNode = psXMLNode->psNext;
+ }
+ return NULL;
+}
+
+/************************************************************************/
+/* FLTGetNextSibblingNode */
+/************************************************************************/
+static CPLXMLNode* FLTGetNextSibblingNode(CPLXMLNode* psXMLNode)
+{
+ if( psXMLNode == NULL )
+ return NULL;
+ psXMLNode = psXMLNode->psNext;
+ while( psXMLNode != NULL )
+ {
+ if( psXMLNode->eType == CXT_Element )
+ return psXMLNode;
+ psXMLNode = psXMLNode->psNext;
+ }
+ return NULL;
+}
+
/************************************************************************/
/* FLTInsertElementInNode */
/* */
@@ -946,9 +937,8 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
CPLXMLNode *psCurXMLNode = NULL;
CPLXMLNode *psTmpNode = NULL;
CPLXMLNode *psFeatureIdNode = NULL;
- char *pszFeatureId=NULL, *pszFeatureIdList=NULL;
- char **tokens = NULL;
- int nTokens = 0;
+ const char *pszFeatureId=NULL;
+ char *pszFeatureIdList=NULL;
if (psFilterNode && psXMLNode && psXMLNode->pszValue) {
psFilterNode->pszValue = msStrdup(psXMLNode->pszValue);
@@ -975,55 +965,52 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
psFilterNode->eType = FILTER_NODE_TYPE_LOGICAL;
if (strcasecmp(psFilterNode->pszValue, "AND") == 0 ||
strcasecmp(psFilterNode->pszValue, "OR") == 0) {
- if (psXMLNode->psChild && psXMLNode->psChild->psNext) {
+ CPLXMLNode* psFirstNode = FLTGetFirstChildNode(psXMLNode);
+ CPLXMLNode* psSecondNode = FLTGetNextSibblingNode(psFirstNode);
+ if (psFirstNode && psSecondNode) {
/*2 operators */
- if (psXMLNode->psChild->psNext->psNext == NULL) {
+ CPLXMLNode* psNextNode = FLTGetNextSibblingNode(psSecondNode);
+ if (psNextNode == NULL) {
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- FLTInsertElementInNode(psFilterNode->psLeftNode,
- psXMLNode->psChild);
+ FLTInsertElementInNode(psFilterNode->psLeftNode, psFirstNode);
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
- FLTInsertElementInNode(psFilterNode->psRightNode,
- psXMLNode->psChild->psNext);
+ FLTInsertElementInNode(psFilterNode->psRightNode, psSecondNode);
} else {
- psCurXMLNode = psXMLNode->psChild;
+ psCurXMLNode = psFirstNode;
psCurFilNode = psFilterNode;
while(psCurXMLNode) {
- if (psCurXMLNode->psNext && psCurXMLNode->psNext->psNext) {
- psCurFilNode->psLeftNode =
- FLTCreateFilterEncodingNode();
- FLTInsertElementInNode(psCurFilNode->psLeftNode,
- psCurXMLNode);
- psCurFilNode->psRightNode =
- FLTCreateFilterEncodingNode();
- psCurFilNode->psRightNode->eType =
- FILTER_NODE_TYPE_LOGICAL;
- psCurFilNode->psRightNode->pszValue =
- msStrdup(psFilterNode->pszValue);
+ psNextNode = FLTGetNextSibblingNode(psCurXMLNode);
+ if (FLTGetNextSibblingNode(psNextNode)) {
+ psCurFilNode->psLeftNode = FLTCreateFilterEncodingNode();
+ FLTInsertElementInNode(psCurFilNode->psLeftNode, psCurXMLNode);
+ psCurFilNode->psRightNode = FLTCreateFilterEncodingNode();
+ psCurFilNode->psRightNode->eType = FILTER_NODE_TYPE_LOGICAL;
+ psCurFilNode->psRightNode->pszValue = msStrdup(psFilterNode->pszValue);
psCurFilNode = psCurFilNode->psRightNode;
- psCurXMLNode = psCurXMLNode->psNext;
- } else if (psCurXMLNode->psNext) { /*last 2 operators*/
- psCurFilNode->psLeftNode =
- FLTCreateFilterEncodingNode();
- FLTInsertElementInNode(psCurFilNode->psLeftNode,
- psCurXMLNode);
-
- psCurFilNode->psRightNode =
- FLTCreateFilterEncodingNode();
- FLTInsertElementInNode(psCurFilNode->psRightNode,
- psCurXMLNode->psNext);
- psCurXMLNode = psCurXMLNode->psNext->psNext;
-
+ psCurXMLNode = psNextNode;
+ } else { /*last 2 operators*/
+ psCurFilNode->psLeftNode = FLTCreateFilterEncodingNode();
+ FLTInsertElementInNode(psCurFilNode->psLeftNode, psCurXMLNode);
+
+ psCurFilNode->psRightNode = FLTCreateFilterEncodingNode();
+ FLTInsertElementInNode(psCurFilNode->psRightNode, psNextNode);
+ break;
}
}
}
}
+ else
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
} else if (strcasecmp(psFilterNode->pszValue, "NOT") == 0) {
- if (psXMLNode->psChild) {
+ CPLXMLNode* psFirstNode = FLTGetFirstChildNode(psXMLNode);
+ if (psFirstNode) {
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
FLTInsertElementInNode(psFilterNode->psLeftNode,
- psXMLNode->psChild);
+ psFirstNode);
}
+ else
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
} else
psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
}/* end if is logical */
@@ -1093,13 +1080,13 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
if (strcasecmp(psXMLNode->pszValue, "BBOX") == 0) {
char *pszSRS = NULL;
- CPLXMLNode *psPropertyName = NULL;
+ const char* pszPropertyName = NULL;
CPLXMLNode *psBox = NULL, *psEnvelope=NULL;
rectObj sBox;
int bCoordinatesValid = 0;
- psPropertyName = CPLGetXMLNode(psXMLNode, "PropertyName");
+ pszPropertyName = FLTGetPropertyName(psXMLNode);
psBox = CPLGetXMLNode(psXMLNode, "Box");
if (!psBox)
psBox = CPLGetXMLNode(psXMLNode, "BoxType");
@@ -1110,34 +1097,33 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
else if ((psEnvelope = CPLGetXMLNode(psXMLNode, "Envelope")))
bCoordinatesValid = FLTParseGMLEnvelope(psEnvelope, &sBox, &pszSRS);
- if (psPropertyName == NULL || !bCoordinatesValid)
- psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ if (bCoordinatesValid) {
+ /*set the srs if available*/
+ if (pszSRS)
+ psFilterNode->pszSRS = pszSRS;
- if (psPropertyName && bCoordinatesValid) {
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- /* not really using the property name anywhere ?? */
- /* Is is always Geometry ? */
- if (psPropertyName->psChild &&
- psPropertyName->psChild->pszValue) {
- psFilterNode->psLeftNode->eType =
- FILTER_NODE_TYPE_PROPERTYNAME;
- psFilterNode->psLeftNode->pszValue =
- msStrdup(psPropertyName->psChild->pszValue);
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
+ /* PropertyName is optional since FE 1.1.0, in which case */
+ /* the BBOX must apply to all geometry fields. As we support */
+ /* currently only one geometry field, this doesn't make much */
+ /* difference to further processing. */
+ if( pszPropertyName != NULL ) {
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
}
- /* srs and coordinates */
+ /* coordinates */
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_BBOX;
- /* srs might be empty */
- if (pszSRS)
- psFilterNode->psRightNode->pszValue = pszSRS;
-
psFilterNode->psRightNode->pOther =
(rectObj *)msSmallMalloc(sizeof(rectObj));
((rectObj *)psFilterNode->psRightNode->pOther)->minx = sBox.minx;
((rectObj *)psFilterNode->psRightNode->pOther)->miny = sBox.miny;
((rectObj *)psFilterNode->psRightNode->pOther)->maxx = sBox.maxx;
((rectObj *)psFilterNode->psRightNode->pOther)->maxy = sBox.maxy;
+ } else {
+ msFree(pszSRS);
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
}
} else if (strcasecmp(psXMLNode->pszValue, "DWithin") == 0 ||
strcasecmp(psXMLNode->pszValue, "Beyond") == 0)
@@ -1145,53 +1131,35 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
{
shapeObj *psShape = NULL;
int bPoint = 0, bLine = 0, bPolygon = 0;
- char *pszUnits = NULL;
+ const char *pszUnits = NULL;
+ const char* pszDistance = NULL;
+ const char* pszPropertyName;
char *pszSRS = NULL;
-
CPLXMLNode *psGMLElement = NULL, *psDistance=NULL;
+ pszPropertyName = FLTGetPropertyName(psXMLNode);
- psGMLElement = CPLGetXMLNode(psXMLNode, "Point");
- if (!psGMLElement)
- psGMLElement = CPLGetXMLNode(psXMLNode, "PointType");
- if (psGMLElement)
- bPoint =1;
- else {
- psGMLElement= CPLGetXMLNode(psXMLNode, "Polygon");
- if (psGMLElement)
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPolygon")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiSurface")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Box")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString")))
- bLine = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPoint")))
- bPoint = 1;
- }
+ psGMLElement = FLTFindGeometryNode(psXMLNode, &bPoint, &bLine, &bPolygon);
psDistance = CPLGetXMLNode(psXMLNode, "Distance");
- if (psGMLElement && psDistance && psDistance->psChild &&
- psDistance->psChild->psNext && psDistance->psChild->psNext->pszValue) {
- pszUnits = (char *)CPLGetXMLValue(psDistance, "units", NULL);
+ if( psDistance != NULL )
+ pszDistance = CPLGetXMLValue(psDistance, NULL, NULL );
+ if (pszPropertyName != NULL && psGMLElement && psDistance != NULL ) {
+ pszUnits = CPLGetXMLValue(psDistance, "units", NULL);
+ if( pszUnits == NULL ) /* FE 2.0 */
+ pszUnits = CPLGetXMLValue(psDistance, "uom", NULL);
psShape = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
msInitShape(psShape);
if (FLTShapeFromGMLTree(psGMLElement, psShape, &pszSRS))
- /* if (FLTGML2Shape_XMLNode(psPoint, psShape)) */
{
/*set the srs if available*/
if (pszSRS)
psFilterNode->pszSRS = pszSRS;
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- /* not really using the property name anywhere ?? Is is always */
- /* Geometry ? */
-
psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
- psFilterNode->psLeftNode->pszValue = msStrdup("Geometry");
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
if (bPoint)
@@ -1202,13 +1170,18 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_GEOMETRY_POLYGON;
psFilterNode->psRightNode->pOther = (shapeObj *)psShape;
/*the value will be distance;units*/
- psFilterNode->psRightNode->pszValue =
- msStrdup(psDistance->psChild->psNext->pszValue);
+ psFilterNode->psRightNode->pszValue = msStrdup(pszDistance);
if (pszUnits) {
psFilterNode->psRightNode->pszValue= msStringConcatenate(psFilterNode->psRightNode->pszValue, ";");
psFilterNode->psRightNode->pszValue= msStringConcatenate(psFilterNode->psRightNode->pszValue, pszUnits);
}
}
+ else
+ {
+ free(psShape);
+ msFree(pszSRS);
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ }
} else
psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
} else if (strcasecmp(psXMLNode->pszValue, "Intersect") == 0 ||
@@ -1223,56 +1196,43 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
shapeObj *psShape = NULL;
int bLine = 0, bPolygon = 0, bPoint=0;
char *pszSRS = NULL;
-
+ const char* pszPropertyName;
CPLXMLNode *psGMLElement = NULL;
+ pszPropertyName = FLTGetPropertyName(psXMLNode);
+
+ psGMLElement = FLTFindGeometryNode(psXMLNode, &bPoint, &bLine, &bPolygon);
- psGMLElement = CPLGetXMLNode(psXMLNode, "Polygon");
- if (psGMLElement)
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPolygon")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiSurface")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Box")))
- bPolygon = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString")))
- bLine = 1;
- else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPoint")))
- bPoint = 1;
- else if ((psGMLElement = CPLGetXMLNode(psXMLNode, "Point")))
- bPoint = 1;
- else if ((psGMLElement = CPLGetXMLNode(psXMLNode, "PointType")))
- bPoint = 1;
-
- if (psGMLElement) {
+ if (pszPropertyName != NULL && psGMLElement) {
psShape = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
msInitShape(psShape);
if (FLTShapeFromGMLTree(psGMLElement, psShape, &pszSRS))
- /* if (FLTGML2Shape_XMLNode(psPoint, psShape)) */
{
/*set the srs if available*/
if (pszSRS)
psFilterNode->pszSRS = pszSRS;
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- /* not really using the property name anywhere ?? Is is always */
- /* Geometry ? */
-
psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
- psFilterNode->psLeftNode->pszValue = msStrdup("Geometry");
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
if (bPoint)
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_GEOMETRY_POINT;
- if (bLine)
+ else if (bLine)
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_GEOMETRY_LINE;
else if (bPolygon)
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_GEOMETRY_POLYGON;
psFilterNode->psRightNode->pOther = (shapeObj *)psShape;
}
+ else
+ {
+ free(psShape);
+ msFree(pszSRS);
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ }
} else
psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
}
@@ -1297,36 +1257,29 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
/* </Filter> */
/* -------------------------------------------------------------------- */
if (FLTIsBinaryComparisonFilterType(psXMLNode->pszValue)) {
- psTmpNode = CPLSearchXMLNode(psXMLNode, "PropertyName");
- if (psTmpNode && psTmpNode->psChild &&
- psTmpNode->psChild->pszValue &&
- strlen(psTmpNode->psChild->pszValue) > 0) {
+ const char* pszPropertyName = FLTGetPropertyName(psXMLNode);
+ if (pszPropertyName != NULL ) {
+
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
- psFilterNode->psLeftNode->pszValue =
- msStrdup(psTmpNode->psChild->pszValue);
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
psTmpNode = CPLSearchXMLNode(psXMLNode, "Literal");
if (psTmpNode) {
+ const char* pszLiteral = CPLGetXMLValue(psTmpNode, NULL, NULL);
+
psFilterNode->psRightNode = FLTCreateBinaryCompFilterEncodingNode();
psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_LITERAL;
- if (psTmpNode &&
- psTmpNode->psChild &&
- psTmpNode->psChild->pszValue &&
- strlen(psTmpNode->psChild->pszValue) > 0) {
+ if (pszLiteral != NULL) {
+ const char* pszMatchCase;
- psFilterNode->psRightNode->pszValue =
- msStrdup(psTmpNode->psChild->pszValue);
+ psFilterNode->psRightNode->pszValue = msStrdup(pszLiteral);
+
+ pszMatchCase = CPLGetXMLValue(psXMLNode, "matchCase", NULL);
/*check if the matchCase attribute is set*/
- if (psXMLNode->psChild &&
- psXMLNode->psChild->eType == CXT_Attribute &&
- psXMLNode->psChild->pszValue &&
- strcasecmp(psXMLNode->psChild->pszValue, "matchCase") == 0 &&
- psXMLNode->psChild->psChild &&
- psXMLNode->psChild->psChild->pszValue &&
- strcasecmp( psXMLNode->psChild->psChild->pszValue, "false") == 0) {
+ if( pszMatchCase != NULL && strcasecmp( pszMatchCase, "false") == 0) {
(*(int *)psFilterNode->psRightNode->pOther) = 1;
}
@@ -1361,56 +1314,43 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
/* </PropertyIsBetween> */
/* -------------------------------------------------------------------- */
else if (strcasecmp(psXMLNode->pszValue, "PropertyIsBetween") == 0) {
- CPLXMLNode *psUpperNode = NULL, *psLowerNode = NULL;
- if (psXMLNode->psChild &&
- strcasecmp(psXMLNode->psChild->pszValue,
- "PropertyName") == 0 &&
- psXMLNode->psChild->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->pszValue,
- "LowerBoundary") == 0 &&
- psXMLNode->psChild->psNext->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->psNext->pszValue,
- "UpperBoundary") == 0) {
+ const char* pszPropertyName = FLTGetPropertyName(psXMLNode);
+ CPLXMLNode* psLowerBoundary = CPLGetXMLNode(psXMLNode, "LowerBoundary");
+ CPLXMLNode* psUpperBoundary = CPLGetXMLNode(psXMLNode, "UpperBoundary");
+ const char* pszLowerNode = NULL;
+ const char* pszUpperNode = NULL;
+ if( psLowerBoundary != NULL )
+ {
+ /* check if the <Literal> is there */
+ if (CPLGetXMLNode(psLowerBoundary, "Literal") != NULL)
+ pszLowerNode = CPLGetXMLValue(psLowerBoundary, "Literal", NULL);
+ else
+ pszLowerNode = CPLGetXMLValue(psLowerBoundary, NULL, NULL);
+ }
+ if( psUpperBoundary != NULL )
+ {
+ if (CPLGetXMLNode(psUpperBoundary, "Literal") != NULL)
+ pszUpperNode = CPLGetXMLValue(psUpperBoundary, "Literal", NULL);
+ else
+ pszUpperNode = CPLGetXMLValue(psUpperBoundary, NULL, NULL);
+ }
+ if (pszPropertyName != NULL && pszLowerNode != NULL && pszUpperNode != NULL) {
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- if (psXMLNode->psChild->psChild &&
- psXMLNode->psChild->psChild->pszValue) {
- psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
- psFilterNode->psLeftNode->pszValue =
- msStrdup(psXMLNode->psChild->psChild->pszValue);
- }
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
- if (psXMLNode->psChild->psNext->psChild &&
- psXMLNode->psChild->psNext->psNext->psChild &&
- psXMLNode->psChild->psNext->psChild->pszValue &&
- psXMLNode->psChild->psNext->psNext->psChild->pszValue) {
- /* check if the <Literals> is there */
- psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_BOUNDARY;
- if (psXMLNode->psChild->psNext->psChild->psChild)
- psLowerNode = psXMLNode->psChild->psNext->psChild->psChild;
- else
- psLowerNode = psXMLNode->psChild->psNext->psChild;
-
- if (psXMLNode->psChild->psNext->psNext->psChild->psChild)
- psUpperNode = psXMLNode->psChild->psNext->psNext->psChild->psChild;
- else
- psUpperNode = psXMLNode->psChild->psNext->psNext->psChild;
+ psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_BOUNDARY;
- nStrLength =
- strlen(psLowerNode->pszValue);
- nStrLength +=
- strlen(psUpperNode->pszValue);
+ /* adding a ; between bounary values */
+ nStrLength = strlen(pszLowerNode) + strlen(pszUpperNode) + 2;
- nStrLength += 2; /* adding a ; between bounary values */
- psFilterNode->psRightNode->pszValue =
+ psFilterNode->psRightNode->pszValue =
(char *)malloc(sizeof(char)*(nStrLength));
- strcpy( psFilterNode->psRightNode->pszValue,
- psLowerNode->pszValue);
- strlcat(psFilterNode->psRightNode->pszValue, ";", nStrLength);
- strlcat(psFilterNode->psRightNode->pszValue,
- psUpperNode->pszValue, nStrLength);
- }
+ strcpy( psFilterNode->psRightNode->pszValue, pszLowerNode);
+ strlcat(psFilterNode->psRightNode->pszValue, ";", nStrLength);
+ strlcat(psFilterNode->psRightNode->pszValue, pszUpperNode, nStrLength);
} else
@@ -1428,102 +1368,68 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
/* </Filter> */
/* -------------------------------------------------------------------- */
else if (strcasecmp(psXMLNode->pszValue, "PropertyIsLike") == 0) {
- if (CPLSearchXMLNode(psXMLNode, "Literal") &&
- CPLSearchXMLNode(psXMLNode, "PropertyName") &&
- CPLGetXMLValue(psXMLNode, "wildCard", "") &&
- CPLGetXMLValue(psXMLNode, "singleChar", "") &&
- (CPLGetXMLValue(psXMLNode, "escape", "") ||
- CPLGetXMLValue(psXMLNode, "escapeChar", "")))
- /*
- psXMLNode->psChild &&
- strcasecmp(psXMLNode->psChild->pszValue, "wildCard") == 0 &&
- psXMLNode->psChild->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->pszValue, "singleChar") == 0 &&
- psXMLNode->psChild->psNext->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->psNext->pszValue, "escape") == 0 &&
- psXMLNode->psChild->psNext->psNext->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->psNext->psNext->pszValue, "PropertyName") == 0 &&
- psXMLNode->psChild->psNext->psNext->psNext->psNext &&
- strcasecmp(psXMLNode->psChild->psNext->psNext->psNext->psNext->pszValue, "Literal") == 0)
- */
+ const char* pszPropertyName = FLTGetPropertyName(psXMLNode);
+ const char* pszLiteral = CPLGetXMLValue(psXMLNode, "Literal", NULL);
+ const char* pszWildCard = CPLGetXMLValue(psXMLNode, "wildCard", NULL);
+ const char* pszSingleChar = CPLGetXMLValue(psXMLNode, "singleChar", NULL);
+ const char* pszEscapeChar = CPLGetXMLValue(psXMLNode, "escape", NULL);
+ if( pszEscapeChar == NULL )
+ pszEscapeChar = CPLGetXMLValue(psXMLNode, "escapeChar", NULL);
+ if (pszPropertyName != NULL && pszLiteral != NULL &&
+ pszWildCard != NULL && pszSingleChar != NULL && pszEscapeChar != NULL)
{
- /* -------------------------------------------------------------------- */
- /* Get the wildCard, the singleChar and the escapeChar used. */
- /* -------------------------------------------------------------------- */
- psFilterNode->pOther = (FEPropertyIsLike *)malloc(sizeof(FEPropertyIsLike));
- /*default is case sensitive*/
- ((FEPropertyIsLike *)psFilterNode->pOther)->bCaseInsensitive = 0;
-
- pszTmp = (char *)CPLGetXMLValue(psXMLNode, "wildCard", "");
- if (pszTmp)
- ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard =
- msStrdup(pszTmp);
- pszTmp = (char *)CPLGetXMLValue(psXMLNode, "singleChar", "");
- if (pszTmp)
- ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar =
- msStrdup(pszTmp);
- pszTmp = (char *)CPLGetXMLValue(psXMLNode, "escape", "");
- if (pszTmp && strlen(pszTmp)>0)
- ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar =
- msStrdup(pszTmp);
- else {
- pszTmp = (char *)CPLGetXMLValue(psXMLNode, "escapeChar", "");
- if (pszTmp)
- ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar =
- msStrdup(pszTmp);
- }
- pszTmp = (char *)CPLGetXMLValue(psXMLNode, "matchCase", "");
- if (pszTmp && strlen(pszTmp) > 0 &&
- strcasecmp(pszTmp, "false") == 0) {
- ((FEPropertyIsLike *)psFilterNode->pOther)->bCaseInsensitive =1;
+ FEPropertyIsLike* propIsLike;
+
+ propIsLike = (FEPropertyIsLike *)malloc(sizeof(FEPropertyIsLike));
+
+ psFilterNode->pOther = propIsLike;
+ propIsLike->bCaseInsensitive = 0;
+ propIsLike->pszWildCard = msStrdup(pszWildCard);
+ propIsLike->pszSingleChar = msStrdup(pszSingleChar);
+ propIsLike->pszEscapeChar = msStrdup(pszEscapeChar);
+
+ pszTmp = (char *)CPLGetXMLValue(psXMLNode, "matchCase", NULL);
+ if (pszTmp && strcasecmp(pszTmp, "false") == 0) {
+ propIsLike->bCaseInsensitive =1;
}
/* -------------------------------------------------------------------- */
/* Create left and right node for the attribute and the value. */
/* -------------------------------------------------------------------- */
psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
- psTmpNode = CPLSearchXMLNode(psXMLNode, "PropertyName");
- if (psTmpNode && psTmpNode->psChild &&
- psTmpNode->psChild->pszValue &&
- strlen(psTmpNode->psChild->pszValue) > 0)
-
- {
- /*
- if (psXMLNode->psChild->psNext->psNext->psNext->psChild &&
- psXMLNode->psChild->psNext->psNext->psNext->psChild->pszValue)
- {
- psFilterNode->psLeftNode->pszValue =
- msStrdup(psXMLNode->psChild->psNext->psNext->psNext->psChild->pszValue);
- */
- psFilterNode->psLeftNode->pszValue =
- msStrdup(psTmpNode->psChild->pszValue);
- psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
-
- }
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
+ psFilterNode->psRightNode->pszValue = msStrdup(pszLiteral);
- psTmpNode = CPLSearchXMLNode(psXMLNode, "Literal");
- if (psTmpNode && psTmpNode->psChild &&
- psTmpNode->psChild->pszValue &&
- strlen(psTmpNode->psChild->pszValue) > 0) {
- /*
- if (psXMLNode->psChild->psNext->psNext->psNext->psNext->psChild &&
- psXMLNode->psChild->psNext->psNext->psNext->psNext->psChild->pszValue)
- {
+ psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_LITERAL;
+ } else
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
- psFilterNode->psRightNode->pszValue =
- msStrdup(psXMLNode->psChild->psNext->psNext->psNext->psNext->psChild->pszValue);
- */
- psFilterNode->psRightNode->pszValue =
- msStrdup(psTmpNode->psChild->pszValue);
+ }
- psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_LITERAL;
- }
- } else
+ else if (strcasecmp(psXMLNode->pszValue, "PropertyIsNull") == 0) {
+ const char* pszPropertyName = FLTGetPropertyName(psXMLNode);
+ if( pszPropertyName != NULL )
+ {
+ psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
+ } else
psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ }
+ else if (strcasecmp(psXMLNode->pszValue, "PropertyIsNil") == 0) {
+ const char* pszPropertyName = FLTGetPropertyName(psXMLNode);
+ if( pszPropertyName != NULL )
+ {
+ psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
+ } else
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
}
}
/* -------------------------------------------------------------------- */
@@ -1542,44 +1448,105 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
/* Note that for FES1.1.0 the featureid has been depricated in */
/* favor of GmlObjectId */
/* <GmlObjectId gml:id="TREESA_1M.1234"/> */
+ /* */
+ /* And in FES 2.0, in favor of <fes:ResourceId rid="foo.1234"/> */
/* -------------------------------------------------------------------- */
else if (FLTIsFeatureIdFilterType(psXMLNode->pszValue)) {
psFilterNode->eType = FILTER_NODE_TYPE_FEATUREID;
- pszFeatureId = (char *)CPLGetXMLValue(psXMLNode, "fid", NULL);
+ pszFeatureId = CPLGetXMLValue(psXMLNode, "fid", NULL);
/*for FE 1.1.0 GmlObjectId */
if (pszFeatureId == NULL)
- pszFeatureId = (char *)CPLGetXMLValue(psXMLNode, "id", NULL);
+ pszFeatureId = CPLGetXMLValue(psXMLNode, "id", NULL);
+ /*for FE 2.0 ResourceId */
+ if (pszFeatureId == NULL)
+ pszFeatureId = CPLGetXMLValue(psXMLNode, "rid", NULL);
pszFeatureIdList = NULL;
psFeatureIdNode = psXMLNode;
while (psFeatureIdNode) {
- pszFeatureId = (char *)CPLGetXMLValue(psFeatureIdNode, "fid", NULL);
+ pszFeatureId = CPLGetXMLValue(psFeatureIdNode, "fid", NULL);
if (!pszFeatureId)
- pszFeatureId = (char *)CPLGetXMLValue(psFeatureIdNode, "id", NULL);
+ pszFeatureId = CPLGetXMLValue(psFeatureIdNode, "id", NULL);
+ if (!pszFeatureId)
+ pszFeatureId = CPLGetXMLValue(psFeatureIdNode, "rid", NULL);
if (pszFeatureId) {
if (pszFeatureIdList)
pszFeatureIdList = msStringConcatenate(pszFeatureIdList, ",");
- /*typname could be part of the value : INWATERA_1M.1234*/
- tokens = msStringSplit(pszFeatureId,'.', &nTokens);
- if (tokens && nTokens == 2)
- pszFeatureIdList = msStringConcatenate(pszFeatureIdList, tokens[1]);
- else
- pszFeatureIdList = msStringConcatenate(pszFeatureIdList, pszFeatureId);
-
- if (tokens)
- msFreeCharArray(tokens, nTokens);
+ pszFeatureIdList = msStringConcatenate(pszFeatureIdList, pszFeatureId);
}
psFeatureIdNode = psFeatureIdNode->psNext;
}
if (pszFeatureIdList) {
+ msFree(psFilterNode->pszValue);
psFilterNode->pszValue = msStrdup(pszFeatureIdList);
msFree(pszFeatureIdList);
} else
psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
}
+
+ /* -------------------------------------------------------------------- */
+ /* Temporal Filter. */
+ /*
+ <fes:During>
+ <fes:ValueReference>gml:TimeInstant</fes:ValueReference>
+ <gml:TimePeriod gml:id="TP1">
+ <gml:begin>
+ <gml:TimeInstant gml:id="TI1">
+ <gml:timePosition>2005-05-17T00:00:00Z</gml:timePosition>
+ </gml:TimeInstant>
+ </gml:begin>
+ <gml:end>
+ <gml:TimeInstant gml:id="TI2">
+ <gml:timePosition>2005-05-23T00:00:00Z</gml:timePosition>
+ </gml:TimeInstant>
+ </gml:end>
+ </gml:TimePeriod>
+ </fes:During>
+ */
+ /* -------------------------------------------------------------------- */
+ else if (FLTIsTemporalFilterType(psXMLNode->pszValue)) {
+ psFilterNode->eType = FILTER_NODE_TYPE_TEMPORAL;
+
+ if (strcasecmp(psXMLNode->pszValue, "During") == 0) {
+ const char* pszPropertyName = NULL;
+ const char* pszBeginTime;
+ const char* pszEndTime;
+
+ pszPropertyName = FLTGetPropertyName(psXMLNode);
+ pszBeginTime = CPLGetXMLValue(psXMLNode, "TimePeriod.begin.TimeInstant.timePosition", NULL);
+ if( pszBeginTime == NULL )
+ pszBeginTime = CPLGetXMLValue(psXMLNode, "TimePeriod.beginPosition", NULL);
+ pszEndTime = CPLGetXMLValue(psXMLNode, "TimePeriod.end.TimeInstant.timePosition", NULL);
+ if( pszEndTime == NULL )
+ pszEndTime = CPLGetXMLValue(psXMLNode, "TimePeriod.endPosition", NULL);
+
+ if (pszPropertyName && pszBeginTime && pszEndTime &&
+ strchr(pszBeginTime, '\'') == NULL && strchr(pszBeginTime, '\\') == NULL &&
+ strchr(pszEndTime, '\'') == NULL && strchr(pszEndTime, '\\') == NULL &&
+ msTimeGetResolution(pszBeginTime) >= 0 &&
+ msTimeGetResolution(pszEndTime) >= 0) {
+
+ psFilterNode->psLeftNode = FLTCreateFilterEncodingNode();
+ psFilterNode->psLeftNode->eType = FILTER_NODE_TYPE_PROPERTYNAME;
+ psFilterNode->psLeftNode->pszValue = msStrdup(pszPropertyName);
+
+ psFilterNode->psRightNode = FLTCreateFilterEncodingNode();
+ psFilterNode->psRightNode->eType = FILTER_NODE_TYPE_TIME_PERIOD;
+ psFilterNode->psRightNode->pszValue = msSmallMalloc( strlen(pszBeginTime) + strlen(pszEndTime) + 2 );
+ sprintf(psFilterNode->psRightNode->pszValue, "%s/%s", pszBeginTime, pszEndTime);
+ }
+ else
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ } else {
+ psFilterNode->eType = FILTER_NODE_TYPE_UNDEFINED;
+ }
+
+ }/* end of is temporal */
+
+
}
}
@@ -1591,7 +1558,7 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
/* return TRUE if the value of the node is of logical filter */
/* encoding type. */
/************************************************************************/
-int FLTIsLogicalFilterType(char *pszValue)
+int FLTIsLogicalFilterType(const char *pszValue)
{
if (pszValue) {
if (strcasecmp(pszValue, "AND") == 0 ||
@@ -1608,7 +1575,7 @@ int FLTIsLogicalFilterType(char *pszValue)
/* */
/* Binary comparison filter type. */
/************************************************************************/
-int FLTIsBinaryComparisonFilterType(char *pszValue)
+int FLTIsBinaryComparisonFilterType(const char *pszValue)
{
if (pszValue) {
if (strcasecmp(pszValue, "PropertyIsEqualTo") == 0 ||
@@ -1629,12 +1596,14 @@ int FLTIsBinaryComparisonFilterType(char *pszValue)
/* return TRUE if the value of the node is of comparison filter */
/* encoding type. */
/************************************************************************/
-int FLTIsComparisonFilterType(char *pszValue)
+int FLTIsComparisonFilterType(const char *pszValue)
{
if (pszValue) {
if (FLTIsBinaryComparisonFilterType(pszValue) ||
strcasecmp(pszValue, "PropertyIsLike") == 0 ||
- strcasecmp(pszValue, "PropertyIsBetween") == 0)
+ strcasecmp(pszValue, "PropertyIsBetween") == 0 ||
+ strcasecmp(pszValue, "PropertyIsNull") == 0 ||
+ strcasecmp(pszValue, "PropertyIsNil") == 0)
return MS_TRUE;
}
@@ -1647,10 +1616,11 @@ int FLTIsComparisonFilterType(char *pszValue)
/* return TRUE if the value of the node is of featureid filter */
/* encoding type. */
/************************************************************************/
-int FLTIsFeatureIdFilterType(char *pszValue)
+int FLTIsFeatureIdFilterType(const char *pszValue)
{
if (pszValue && (strcasecmp(pszValue, "FeatureId") == 0 ||
- strcasecmp(pszValue, "GmlObjectId") == 0))
+ strcasecmp(pszValue, "GmlObjectId") == 0 ||
+ strcasecmp(pszValue, "ResourceId") == 0))
return MS_TRUE;
@@ -1663,7 +1633,7 @@ int FLTIsFeatureIdFilterType(char *pszValue)
/* return TRUE if the value of the node is of spatial filter */
/* encoding type. */
/************************************************************************/
-int FLTIsSpatialFilterType(char *pszValue)
+int FLTIsSpatialFilterType(const char *pszValue)
{
if (pszValue) {
if ( strcasecmp(pszValue, "BBOX") == 0 ||
@@ -1685,6 +1655,22 @@ int FLTIsSpatialFilterType(char *pszValue)
}
/************************************************************************/
+/* int FLTIsTemportalFilterType(char *pszValue) */
+/* */
+/* return TRUE if the value of the node is of temporal filter */
+/* encoding type. */
+/************************************************************************/
+int FLTIsTemporalFilterType(const char *pszValue)
+{
+ if (pszValue) {
+ if ( strcasecmp(pszValue, "During") == 0 )
+ return MS_TRUE;
+ }
+
+ return MS_FALSE;
+}
+
+/************************************************************************/
/* int FLTIsSupportedFilterType(CPLXMLNode *psXMLNode) */
/* */
/* Verfify if the value of the node is one of the supported */
@@ -1696,7 +1682,8 @@ int FLTIsSupportedFilterType(CPLXMLNode *psXMLNode)
if (FLTIsLogicalFilterType(psXMLNode->pszValue) ||
FLTIsSpatialFilterType(psXMLNode->pszValue) ||
FLTIsComparisonFilterType(psXMLNode->pszValue) ||
- FLTIsFeatureIdFilterType(psXMLNode->pszValue))
+ FLTIsFeatureIdFilterType(psXMLNode->pszValue) ||
+ FLTIsTemporalFilterType(psXMLNode->pszValue))
return MS_TRUE;
}
@@ -1787,14 +1774,40 @@ int FLTValidForBBoxFilter(FilterEncodingNode *psFilterNode)
return 1;
if (strcasecmp(psFilterNode->pszValue, "AND") == 0) {
- if (strcasecmp(psFilterNode->psLeftNode->pszValue, "BBOX") ==0 ||
- strcasecmp(psFilterNode->psRightNode->pszValue, "BBOX") ==0)
- return 1;
+ return FLTValidForBBoxFilter(psFilterNode->psLeftNode) &&
+ FLTValidForBBoxFilter(psFilterNode->psRightNode);
+ }
+
+ return 0;
+}
+
+static int FLTHasUniqueTopLevelDuringFilter(FilterEncodingNode *psFilterNode)
+{
+ int nCount = 0;
+
+ if (!psFilterNode || !psFilterNode->pszValue)
+ return 1;
+
+ nCount = FLTNumberOfFilterType(psFilterNode, "During");
+
+ if (nCount > 1)
+ return 0;
+ else if (nCount == 0)
+ return 1;
+
+ /* nCount ==1 */
+ if (strcasecmp(psFilterNode->pszValue, "During") == 0)
+ return 1;
+
+ if (strcasecmp(psFilterNode->pszValue, "AND") == 0) {
+ return FLTHasUniqueTopLevelDuringFilter(psFilterNode->psLeftNode) &&
+ FLTHasUniqueTopLevelDuringFilter(psFilterNode->psRightNode);
}
return 0;
}
+
int FLTIsLineFilter(FilterEncodingNode *psFilterNode)
{
if (!psFilterNode || !psFilterNode->pszValue)
@@ -1842,13 +1855,6 @@ int FLTIsBBoxFilter(FilterEncodingNode *psFilterNode)
if (strcasecmp(psFilterNode->pszValue, "BBOX") == 0)
return 1;
- /* if (strcasecmp(psFilterNode->pszValue, "AND") == 0)
- {
- if (strcasecmp(psFilterNode->psLeftNode->pszValue, "BBOX") ==0 ||
- strcasecmp(psFilterNode->psRightNode->pszValue, "BBOX") ==0)
- return 1;
- }
- */
return 0;
}
@@ -1865,9 +1871,7 @@ shapeObj *FLTGetShape(FilterEncodingNode *psFilterNode, double *pdfDistance,
if (psNode->eType == FILTER_NODE_TYPE_SPATIAL && psNode->psRightNode)
psNode = psNode->psRightNode;
- if (psNode->eType == FILTER_NODE_TYPE_GEOMETRY_POINT ||
- psNode->eType == FILTER_NODE_TYPE_GEOMETRY_LINE ||
- psNode->eType == FILTER_NODE_TYPE_GEOMETRY_POLYGON) {
+ if (FLTIsGeometryFilterNodeType(psNode->eType)) {
if (psNode->pszValue && pdfDistance) {
/*
@@ -1915,11 +1919,10 @@ shapeObj *FLTGetShape(FilterEncodingNode *psFilterNode, double *pdfDistance,
else if (strcasecmp(szUnit,"px") == 0)
*pnUnit = MS_PIXELS;
- msFreeCharArray(tokens, nTokens);
}
}
- }
-
+ }
+ msFreeCharArray(tokens, nTokens);
}
return (shapeObj *)psNode->pOther;
@@ -1935,21 +1938,22 @@ shapeObj *FLTGetShape(FilterEncodingNode *psFilterNode, double *pdfDistance,
/* first bbox node found. The retrun value is the epsg code of */
/* the bbox. */
/************************************************************************/
-char *FLTGetBBOX(FilterEncodingNode *psFilterNode, rectObj *psRect)
+const char *FLTGetBBOX(FilterEncodingNode *psFilterNode, rectObj *psRect)
{
- char *pszReturn = NULL;
+ const char *pszReturn = NULL;
if (!psFilterNode || !psRect)
return NULL;
if (psFilterNode->pszValue && strcasecmp(psFilterNode->pszValue, "BBOX") == 0) {
if (psFilterNode->psRightNode && psFilterNode->psRightNode->pOther) {
- psRect->minx = ((rectObj *)psFilterNode->psRightNode->pOther)->minx;
- psRect->miny = ((rectObj *)psFilterNode->psRightNode->pOther)->miny;
- psRect->maxx = ((rectObj *)psFilterNode->psRightNode->pOther)->maxx;
- psRect->maxy = ((rectObj *)psFilterNode->psRightNode->pOther)->maxy;
+ rectObj* pRect= (rectObj *)psFilterNode->psRightNode->pOther;
+ psRect->minx = pRect->minx;
+ psRect->miny = pRect->miny;
+ psRect->maxx = pRect->maxx;
+ psRect->maxy = pRect->maxy;
- return psFilterNode->psRightNode->pszValue;
+ return psFilterNode->pszSRS;
}
} else {
@@ -1963,6 +1967,27 @@ char *FLTGetBBOX(FilterEncodingNode *psFilterNode, rectObj *psRect)
return pszReturn;
}
+const char* FLTGetDuring(FilterEncodingNode *psFilterNode, const char** ppszTimeField)
+{
+ const char *pszReturn = NULL;
+
+ if (!psFilterNode || !ppszTimeField)
+ return NULL;
+
+ if (psFilterNode->pszValue && strcasecmp(psFilterNode->pszValue, "During") == 0) {
+ *ppszTimeField = psFilterNode->psLeftNode->pszValue;
+ return psFilterNode->psRightNode->pszValue;
+ } else {
+ pszReturn = FLTGetDuring(psFilterNode->psLeftNode, ppszTimeField);
+ if (pszReturn)
+ return pszReturn;
+ else
+ return FLTGetDuring(psFilterNode->psRightNode, ppszTimeField);
+ }
+
+ return pszReturn;
+}
+
/************************************************************************/
/* GetMapserverExpression */
/* */
@@ -1975,7 +2000,6 @@ char *FLTGetMapserverExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
char szTmp[256];
char **tokens = NULL;
int nTokens = 0, i=0,bString=0;
- char *pszTmp;
if (!psFilterNode)
return NULL;
@@ -2009,15 +2033,18 @@ char *FLTGetMapserverExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
tokens = msStringSplit(psFilterNode->pszValue,',', &nTokens);
if (tokens && nTokens > 0) {
for (i=0; i<nTokens; i++) {
+ const char* pszId = tokens[i];
+ const char* pszDot = strchr(pszId, '.');
+ if( pszDot )
+ pszId = pszDot + 1;
if (i == 0) {
- pszTmp = tokens[0];
- if(FLTIsNumeric(pszTmp) == MS_FALSE)
+ if(FLTIsNumeric(pszId) == MS_FALSE)
bString = 1;
}
if (bString)
- snprintf(szTmp, sizeof(szTmp), "('[%s]' = '%s')" , pszAttribute, tokens[i]);
+ snprintf(szTmp, sizeof(szTmp), "('[%s]' = '%s')" , pszAttribute, pszId);
else
- snprintf(szTmp, sizeof(szTmp), "([%s] = %s)" , pszAttribute, tokens[i]);
+ snprintf(szTmp, sizeof(szTmp), "([%s] = %s)" , pszAttribute, pszId);
if (pszExpression != NULL)
pszExpression = msStringConcatenate(pszExpression, " OR ");
@@ -2101,15 +2128,25 @@ char *FLTGetSQLExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
if (tokens && nTokens > 0) {
for (i=0; i<nTokens; i++) {
char *pszEscapedStr = NULL;
- if (strlen(tokens[i]) <= 0)
+ const char* pszId = tokens[i];
+ const char* pszDot = strchr(pszId, '.');
+ if( pszDot )
+ pszId = pszDot + 1;
+
+ if (strlen(pszId) <= 0)
continue;
- if (FLTIsNumeric((tokens[i])) == MS_FALSE)
+ if (FLTIsNumeric(pszId) == MS_FALSE)
bString = 1;
- pszEscapedStr = msLayerEscapeSQLParam(lp, tokens[i]);
+ pszEscapedStr = msLayerEscapeSQLParam(lp, pszId);
if (bString)
- snprintf(szTmp, sizeof(szTmp), "(%s = '%s')" , pszAttribute, pszEscapedStr);
+ {
+ if( lp->connectiontype == MS_OGR || lp->connectiontype == MS_POSTGIS )
+ snprintf(szTmp, sizeof(szTmp), "(CAST(%s AS CHARACTER(255)) = '%s')" , pszAttribute, pszEscapedStr);
+ else
+ snprintf(szTmp, sizeof(szTmp), "(%s = '%s')" , pszAttribute, pszEscapedStr);
+ }
else
snprintf(szTmp, sizeof(szTmp), "(%s = %s)" , pszAttribute, pszEscapedStr);
@@ -2139,6 +2176,9 @@ char *FLTGetSQLExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
#endif
}
+ else if ( lp->connectiontype != MS_OGR &&
+ psFilterNode->eType == FILTER_NODE_TYPE_TEMPORAL )
+ pszExpression = FLTGetTimeExpression(psFilterNode, lp);
return pszExpression;
}
@@ -2202,6 +2242,25 @@ char *FLTGetLogicalComparisonSQLExpresssion(FilterEncodingNode *psFilterNode,
sprintf(pszBuffer, "%s", pszTmp);
}
+ /* ==================================================================== */
+ /* special case for temporal filter node (OGR layer only) */
+ /* ==================================================================== */
+ else if (lp->connectiontype == MS_OGR &&
+ psFilterNode->psLeftNode && psFilterNode->psRightNode &&
+ (psFilterNode->psLeftNode->eType == FILTER_NODE_TYPE_TEMPORAL ||
+ psFilterNode->psRightNode->eType == FILTER_NODE_TYPE_TEMPORAL) ) {
+ if (psFilterNode->psLeftNode->eType != FILTER_NODE_TYPE_TEMPORAL)
+ pszTmp = FLTGetSQLExpression(psFilterNode->psLeftNode, lp);
+ else
+ pszTmp = FLTGetSQLExpression(psFilterNode->psRightNode, lp);
+
+ if (!pszTmp)
+ return NULL;
+
+ pszBuffer = (char *)malloc(sizeof(char) * (strlen(pszTmp) + 1));
+ sprintf(pszBuffer, "%s", pszTmp);
+ }
+
/* -------------------------------------------------------------------- */
/* OR and AND */
/* -------------------------------------------------------------------- */
@@ -2224,8 +2283,10 @@ char *FLTGetLogicalComparisonSQLExpresssion(FilterEncodingNode *psFilterNode,
nTmp = strlen(pszBuffer);
pszTmp = FLTGetSQLExpression(psFilterNode->psRightNode, lp);
- if (!pszTmp)
+ if (!pszTmp) {
+ free(pszBuffer);
return NULL;
+ }
pszBuffer = (char *)realloc(pszBuffer,
sizeof(char) * (strlen(pszTmp) + nTmp +3));
@@ -2333,8 +2394,10 @@ char *FLTGetLogicalComparisonExpresssion(FilterEncodingNode *psFilterNode, layer
free(pszTmp);
pszTmp = FLTGetNodeExpression(psFilterNode->psRightNode, lp);
- if (!pszTmp)
+ if (!pszTmp) {
+ msFree(pszBuffer);
return NULL;
+ }
nTmp = strlen(pszBuffer);
pszBuffer = (char *)realloc(pszBuffer,
@@ -2615,8 +2678,10 @@ char *FLTGetIsBetweenComparisonSQLExpresssion(FilterEncodingNode *psFilterNode,
/* Get the bounds value which are stored like boundmin;boundmax */
/* -------------------------------------------------------------------- */
aszBounds = msStringSplit(psFilterNode->psRightNode->pszValue, ';', &nBounds);
- if (nBounds != 2)
+ if (nBounds != 2) {
+ msFreeCharArray(aszBounds, nBounds);
return NULL;
+ }
/* -------------------------------------------------------------------- */
/* check if the value is a numeric value or alphanumeric. If it */
/* is alphanumeric, add quotes around attribute and values. */
@@ -2682,6 +2747,7 @@ char *FLTGetIsBetweenComparisonSQLExpresssion(FilterEncodingNode *psFilterNode,
/*closing paranthesis*/
strlcat(szBuffer, ")", bufferSize);
+ msFreeCharArray(aszBounds, nBounds);
return msStrdup(szBuffer);
}
@@ -2804,22 +2870,24 @@ char *FLTGetIsLikeComparisonExpression(FilterEncodingNode *psFilterNode)
char szTmp[256];
char *pszValue = NULL;
- char *pszWild = NULL;
- char *pszSingle = NULL;
- char *pszEscape = NULL;
+ const char *pszWild = NULL;
+ const char *pszSingle = NULL;
+ const char *pszEscape = NULL;
int bCaseInsensitive = 0;
int nLength=0, i=0, iTmp=0;
+ FEPropertyIsLike* propIsLike;
if (!psFilterNode || !psFilterNode->pOther || !psFilterNode->psLeftNode ||
!psFilterNode->psRightNode || !psFilterNode->psRightNode->pszValue)
return NULL;
- pszWild = ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard;
- pszSingle = ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar;
- pszEscape = ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar;
- bCaseInsensitive = ((FEPropertyIsLike *)psFilterNode->pOther)->bCaseInsensitive;
+ propIsLike = (FEPropertyIsLike *)psFilterNode->pOther;
+ pszWild = propIsLike->pszWildCard;
+ pszSingle = propIsLike->pszSingleChar;
+ pszEscape = propIsLike->pszEscapeChar;
+ bCaseInsensitive = propIsLike->bCaseInsensitive;
if (!pszWild || strlen(pszWild) == 0 ||
!pszSingle || strlen(pszSingle) == 0 ||
@@ -2904,24 +2972,26 @@ char *FLTGetIsLikeComparisonSQLExpression(FilterEncodingNode *psFilterNode,
char szBuffer[1024];
char *pszValue = NULL;
- char *pszWild = NULL;
- char *pszSingle = NULL;
- char *pszEscape = NULL;
+ const char *pszWild = NULL;
+ const char *pszSingle = NULL;
+ const char *pszEscape = NULL;
char szTmp[4];
int nLength=0, i=0, j=0;
int bCaseInsensitive = 0;
char *pszEscapedStr = NULL;
+ FEPropertyIsLike* propIsLike;
if (!psFilterNode || !psFilterNode->pOther || !psFilterNode->psLeftNode ||
!psFilterNode->psRightNode || !psFilterNode->psRightNode->pszValue)
return NULL;
- pszWild = ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard;
- pszSingle = ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar;
- pszEscape = ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar;
- bCaseInsensitive = ((FEPropertyIsLike *)psFilterNode->pOther)->bCaseInsensitive;
+ propIsLike = (FEPropertyIsLike *)psFilterNode->pOther;
+ pszWild = propIsLike->pszWildCard;
+ pszSingle = propIsLike->pszSingleChar;
+ pszEscape = propIsLike->pszEscapeChar;
+ bCaseInsensitive = propIsLike->bCaseInsensitive;
if (!pszWild || strlen(pszWild) == 0 ||
!pszSingle || strlen(pszSingle) == 0 ||
@@ -2998,7 +3068,10 @@ char *FLTGetIsLikeComparisonSQLExpression(FilterEncodingNode *psFilterNode,
strlcat(szBuffer, "'", bufferSize);
if (lp->connectiontype != MS_OGR) {
- strlcat(szBuffer, " escape '", bufferSize);
+ if (lp->connectiontype == MS_POSTGIS && pszEscape[0] == '\\')
+ strlcat(szBuffer, " escape E'", bufferSize);
+ else
+ strlcat(szBuffer, " escape '", bufferSize);
szTmp[0] = pszEscape[0];
if (pszEscape[0] == '\\') {
szTmp[1] = '\\';
@@ -3055,24 +3128,14 @@ int FLTHasSpatialFilter(FilterEncodingNode *psNode)
/* */
/* Utility function to create a filter node of FeatureId type. */
/************************************************************************/
-FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(char *pszString)
+FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(const char *pszString)
{
FilterEncodingNode *psFilterNode = NULL;
- char **tokens = NULL;
- int nTokens = 0;
if (pszString) {
psFilterNode = FLTCreateFilterEncodingNode();
psFilterNode->eType = FILTER_NODE_TYPE_FEATUREID;
- /*split if tyname is included in the string*/
- tokens = msStringSplit(pszString,'.', &nTokens);
- if (tokens && nTokens == 2)
- psFilterNode->pszValue = msStrdup(tokens[1]);
- else
- psFilterNode->pszValue = msStrdup(pszString);
-
- if (tokens)
- msFreeCharArray(tokens, nTokens);
+ psFilterNode->pszValue = msStrdup(pszString);
return psFilterNode;
}
return NULL;
@@ -3087,12 +3150,11 @@ FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(char *pszString)
int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS)
{
int bCoordinatesValid = 0;
- CPLXMLNode *psCoordinates = NULL, *psCoordChild=NULL;
+ CPLXMLNode *psCoordinates = NULL;
CPLXMLNode *psCoord1 = NULL, *psCoord2 = NULL;
- CPLXMLNode *psX = NULL, *psY = NULL;
char **papszCoords=NULL, **papszMin=NULL, **papszMax = NULL;
int nCoords = 0, nCoordsMin = 0, nCoordsMax = 0;
- char *pszTmpCoord = NULL;
+ const char *pszTmpCoord = NULL;
const char *pszSRS = NULL;
const char *pszTS = NULL;
const char *pszCS = NULL;
@@ -3104,31 +3166,20 @@ int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS)
*ppszSRS = msStrdup(pszSRS);
psCoordinates = CPLGetXMLNode(psBox, "coordinates");
- if (!psCoordinates)
- return 0;
pszTS = CPLGetXMLValue(psCoordinates, "ts", NULL);
+ if( pszTS == NULL )
+ pszTS = " ";
pszCS = CPLGetXMLValue(psCoordinates, "cs", NULL);
+ if( pszCS == NULL )
+ pszCS = ",";
+ pszTmpCoord = CPLGetXMLValue(psCoordinates, NULL, NULL);
- psCoordChild = psCoordinates->psChild;
- while (psCoordinates && psCoordChild && psCoordChild->eType != CXT_Text) {
- psCoordChild = psCoordChild->psNext;
- }
- if (psCoordChild && psCoordChild->pszValue) {
- pszTmpCoord = psCoordChild->pszValue;
- if (pszTS)
- papszCoords = msStringSplit(pszTmpCoord, pszTS[0], &nCoords);
- else
- papszCoords = msStringSplit(pszTmpCoord, ' ', &nCoords);
+ if (pszTmpCoord) {
+ papszCoords = msStringSplit(pszTmpCoord, pszTS[0], &nCoords);
if (papszCoords && nCoords == 2) {
- if (pszCS)
- papszMin = msStringSplit(papszCoords[0], pszCS[0], &nCoordsMin);
- else
- papszMin = msStringSplit(papszCoords[0], ',', &nCoordsMin);
+ papszMin = msStringSplit(papszCoords[0], pszCS[0], &nCoordsMin);
if (papszMin && nCoordsMin == 2) {
- if (pszCS)
- papszMax = msStringSplit(papszCoords[1], pszCS[0], &nCoordsMax);
- else
- papszMax = msStringSplit(papszCoords[1], ',', &nCoordsMax);
+ papszMax = msStringSplit(papszCoords[1], pszCS[0], &nCoordsMax);
}
if (papszMax && nCoordsMax == 2) {
bCoordinatesValid =1;
@@ -3145,23 +3196,19 @@ int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS)
msFreeCharArray(papszCoords, nCoords);
} else {
psCoord1 = CPLGetXMLNode(psBox, "coord");
- if (psCoord1 && psCoord1->psNext &&
- psCoord1->psNext->pszValue &&
- strcmp(psCoord1->psNext->pszValue, "coord") ==0) {
- psCoord2 = psCoord1->psNext;
- psX = CPLGetXMLNode(psCoord1, "X");
- psY = CPLGetXMLNode(psCoord1, "Y");
- if (psX && psY && psX->psChild && psY->psChild &&
- psX->psChild->pszValue && psY->psChild->pszValue) {
- minx = atof(psX->psChild->pszValue);
- miny = atof(psY->psChild->pszValue);
-
- psX = CPLGetXMLNode(psCoord2, "X");
- psY = CPLGetXMLNode(psCoord2, "Y");
- if (psX && psY && psX->psChild && psY->psChild &&
- psX->psChild->pszValue && psY->psChild->pszValue) {
- maxx = atof(psX->psChild->pszValue);
- maxy = atof(psY->psChild->pszValue);
+ psCoord2 = FLTGetNextSibblingNode(psCoord1);
+ if (psCoord1 && psCoord2 && strcmp(psCoord2->pszValue, "coord") == 0) {
+ const char* pszX = CPLGetXMLValue(psCoord1, "X", NULL);
+ const char* pszY = CPLGetXMLValue(psCoord1, "Y", NULL);
+ if (pszX && pszY) {
+ minx = atof(pszX);
+ miny = atof(pszY);
+
+ pszX = CPLGetXMLValue(psCoord2, "X", NULL);
+ pszY = CPLGetXMLValue(psCoord2, "Y", NULL);
+ if (pszX && pszY) {
+ maxx = atof(pszX);
+ maxy = atof(pszY);
bCoordinatesValid = 1;
}
}
@@ -3183,13 +3230,12 @@ int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS)
/************************************************************************/
/* FLTParseGMLEnvelope */
/* */
-/* Utility function to parse a gml:Enevelop (used for SOS and FE1.1)*/
+/* Utility function to parse a gml:Envelope (used for SOS and FE1.1)*/
/************************************************************************/
int FLTParseGMLEnvelope(CPLXMLNode *psRoot, rectObj *psBbox, char **ppszSRS)
{
- CPLXMLNode *psChild=NULL;
CPLXMLNode *psUpperCorner=NULL, *psLowerCorner=NULL;
- char *pszLowerCorner=NULL, *pszUpperCorner=NULL;
+ const char *pszLowerCorner=NULL, *pszUpperCorner=NULL;
int bValid = 0;
char **tokens;
int n;
@@ -3198,42 +3244,16 @@ int FLTParseGMLEnvelope(CPLXMLNode *psRoot, rectObj *psBbox, char **ppszSRS)
EQUAL(psRoot->pszValue,"Envelope")) {
/*Get the srs if available*/
if (ppszSRS) {
- psChild = psRoot->psChild;
- while (psChild != NULL) {
- if (psChild->eType == CXT_Attribute && psChild->pszValue &&
- EQUAL(psChild->pszValue, "srsName") && psChild->psChild &&
- psChild->psChild->pszValue) {
- *ppszSRS = msStrdup(psChild->psChild->pszValue);
- break;
- }
- psChild = psChild->psNext;
- }
+ const char* pszSRS = CPLGetXMLValue(psRoot, "srsName", NULL);
+ if( pszSRS != NULL )
+ *ppszSRS = msStrdup(pszSRS);
}
psLowerCorner = CPLSearchXMLNode(psRoot, "lowerCorner");
psUpperCorner = CPLSearchXMLNode(psRoot, "upperCorner");
- if (psLowerCorner && psUpperCorner && EQUAL(psLowerCorner->pszValue,"lowerCorner") &&
- EQUAL(psUpperCorner->pszValue,"upperCorner")) {
- /*get the values*/
- psChild = psLowerCorner->psChild;
- while (psChild != NULL) {
- if (psChild->eType != CXT_Text)
- psChild = psChild->psNext;
- else
- break;
- }
- if (psChild && psChild->eType == CXT_Text)
- pszLowerCorner = psChild->pszValue;
-
- psChild = psUpperCorner->psChild;
- while (psChild != NULL) {
- if (psChild->eType != CXT_Text)
- psChild = psChild->psNext;
- else
- break;
- }
- if (psChild && psChild->eType == CXT_Text)
- pszUpperCorner = psChild->pszValue;
+ if (psLowerCorner && psUpperCorner) {
+ pszLowerCorner = CPLGetXMLValue(psLowerCorner, NULL, NULL);
+ pszUpperCorner = CPLGetXMLValue(psUpperCorner, NULL, NULL);
if (pszLowerCorner && pszUpperCorner) {
tokens = msStringSplit(pszLowerCorner, ' ', &n);
@@ -3247,28 +3267,89 @@ int FLTParseGMLEnvelope(CPLXMLNode *psRoot, rectObj *psBbox, char **ppszSRS)
if (tokens && n >= 2) {
psBbox->maxx = atof(tokens[0]);
psBbox->maxy = atof(tokens[1]);
- msFreeCharArray(tokens, n);
-
bValid = 1;
}
}
+ msFreeCharArray(tokens, n);
}
}
}
- if (bValid && ppszSRS && *ppszSRS) {
+
+ return bValid;
+}
+
+/************************************************************************/
+/* FLTNeedSRSSwapping */
+/************************************************************************/
+
+static int FLTNeedSRSSwapping( const char* pszSRS )
+{
+ int bNeedSwapping = MS_FALSE;
projectionObj sProjTmp;
msInitProjection(&sProjTmp);
- if (msLoadProjectionStringEPSG(&sProjTmp, *ppszSRS) == 0) {
- msAxisNormalizePoints( &sProjTmp, 1, &psBbox->minx, &psBbox->miny);
- msAxisNormalizePoints( &sProjTmp, 1, &psBbox->maxx, &psBbox->maxy);
+ if (msLoadProjectionStringEPSG(&sProjTmp, pszSRS) == 0) {
+ bNeedSwapping = msIsAxisInvertedProj(&sProjTmp);
+ }
+ msFreeProjection(&sProjTmp);
+ return bNeedSwapping;
+}
+
+/************************************************************************/
+/* FLTDoAxisSwappingIfNecessary */
+/* */
+/* Explore all geometries and BBOX to do axis swapping when the */
+/* SRS requires it. If no explicit SRS is attached to the geometry */
+/* the bDefaultSRSNeedsAxisSwapping is taken into account. The */
+/* caller will have to determine its value from a more general */
+/* context. */
+/************************************************************************/
+void FLTDoAxisSwappingIfNecessary(FilterEncodingNode *psFilterNode,
+ int bDefaultSRSNeedsAxisSwapping)
+{
+ if( psFilterNode == NULL )
+ return;
+
+ if( psFilterNode->eType == FILTER_NODE_TYPE_SPATIAL &&
+ psFilterNode->psRightNode->eType == FILTER_NODE_TYPE_BBOX )
+ {
+ rectObj* rect = (rectObj *)psFilterNode->psRightNode->pOther;
+ const char* pszSRS = psFilterNode->pszSRS;
+ if( (pszSRS != NULL && FLTNeedSRSSwapping(pszSRS)) ||
+ (pszSRS == NULL && bDefaultSRSNeedsAxisSwapping) )
+ {
+ double tmp;
+
+ tmp = rect->minx;
+ rect->minx = rect->miny;
+ rect->miny = tmp;
+
+ tmp = rect->maxx;
+ rect->maxx = rect->maxy;
+ rect->maxy = tmp;
+ }
+ }
+ else if( psFilterNode->eType == FILTER_NODE_TYPE_SPATIAL &&
+ FLTIsGeometryFilterNodeType(psFilterNode->psRightNode->eType) )
+ {
+ shapeObj* shape = (shapeObj *)(psFilterNode->psRightNode->pOther);
+ const char* pszSRS = psFilterNode->pszSRS;
+ if( (pszSRS != NULL && FLTNeedSRSSwapping(pszSRS)) ||
+ (pszSRS == NULL && bDefaultSRSNeedsAxisSwapping) )
+ {
+ msAxisSwapShape(shape);
+ }
+ }
+ else
+ {
+ FLTDoAxisSwappingIfNecessary(psFilterNode->psLeftNode, bDefaultSRSNeedsAxisSwapping);
+ FLTDoAxisSwappingIfNecessary(psFilterNode->psRightNode, bDefaultSRSNeedsAxisSwapping);
}
- }
- return bValid;
}
static void FLTReplacePropertyName(FilterEncodingNode *psFilterNode,
- const char *pszOldName, char *pszNewName)
+ const char *pszOldName,
+ const char *pszNewName)
{
if (psFilterNode && pszOldName && pszNewName) {
if (psFilterNode->eType == FILTER_NODE_TYPE_PROPERTYNAME) {
@@ -3288,12 +3369,31 @@ static void FLTReplacePropertyName(FilterEncodingNode *psFilterNode,
}
+static int FLTIsGMLDefaultProperty(const char* pszName)
+{
+ return (strcmp(pszName, "gml:name") == 0 ||
+ strcmp(pszName, "gml:description") == 0 ||
+ strcmp(pszName, "gml:descriptionReference") == 0 ||
+ strcmp(pszName, "gml:identifier") == 0 ||
+ strcmp(pszName, "gml:boundedBy") == 0 ||
+ strcmp(pszName, "@gml:id") == 0);
+}
+
static void FLTStripNameSpacesFromPropertyName(FilterEncodingNode *psFilterNode)
{
char **tokens=NULL;
int n=0;
if (psFilterNode) {
+
+ if (psFilterNode->eType == FILTER_NODE_TYPE_COMPARISON &&
+ psFilterNode->psLeftNode != NULL &&
+ psFilterNode->psLeftNode->eType == FILTER_NODE_TYPE_PROPERTYNAME &&
+ FLTIsGMLDefaultProperty(psFilterNode->psLeftNode->pszValue) )
+ {
+ return;
+ }
+
if (psFilterNode->eType == FILTER_NODE_TYPE_PROPERTYNAME) {
if (psFilterNode->pszValue &&
strstr(psFilterNode->pszValue, ":")) {
@@ -3302,8 +3402,7 @@ static void FLTStripNameSpacesFromPropertyName(FilterEncodingNode *psFilterNode)
msFree(psFilterNode->pszValue);
psFilterNode->pszValue = msStrdup(tokens[1]);
}
- if (tokens && n>0)
- msFreeCharArray(tokens, n);
+ msFreeCharArray(tokens, n);
}
}
if (psFilterNode->psLeftNode)
@@ -3314,13 +3413,57 @@ static void FLTStripNameSpacesFromPropertyName(FilterEncodingNode *psFilterNode)
}
+static void FLTRemoveGroupName(FilterEncodingNode *psFilterNode,
+ gmlGroupListObj* groupList)
+{
+ int i;
+
+ if (psFilterNode) {
+
+ if (psFilterNode->eType == FILTER_NODE_TYPE_PROPERTYNAME) {
+ if( psFilterNode->pszValue != NULL )
+ {
+ const char* pszPropertyName = psFilterNode->pszValue;
+ const char* pszSlash = strchr(pszPropertyName, '/');
+ if( pszSlash != NULL ) {
+ const char* pszColon = strchr(pszPropertyName, ':');
+ if( pszColon != NULL && pszColon < pszSlash )
+ pszPropertyName = pszColon + 1;
+ for(i=0;i<groupList->numgroups;i++) {
+ const char* pszGroupName = groupList->groups[i].name;
+ size_t nGroupNameLen = strlen(pszGroupName);
+ if(strncasecmp(pszPropertyName, pszGroupName, nGroupNameLen) == 0 &&
+ pszPropertyName[nGroupNameLen] == '/') {
+ char* pszTmp;
+ pszPropertyName = pszPropertyName + nGroupNameLen + 1;
+ pszColon = strchr(pszPropertyName, ':');
+ if( pszColon != NULL )
+ pszPropertyName = pszColon + 1;
+ pszTmp = msStrdup(pszPropertyName);
+ msFree(psFilterNode->pszValue);
+ psFilterNode->pszValue = pszTmp;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (psFilterNode->psLeftNode)
+ FLTRemoveGroupName(psFilterNode->psLeftNode, groupList);
+ if (psFilterNode->psRightNode)
+ FLTRemoveGroupName(psFilterNode->psRightNode, groupList);
+ }
+
+}
+
/************************************************************************/
-/* FLTPreParseFilterForAlias */
+/* FLTPreParseFilterForAliasAndGroup */
/* */
-/* Utility function to replace aliased' attributes with their */
-/* real name. */
+/* Utility function to replace aliased' and grouped attributes */
+/* with their internal name. */
/************************************************************************/
-void FLTPreParseFilterForAlias(FilterEncodingNode *psFilterNode,
+void FLTPreParseFilterForAliasAndGroup(FilterEncodingNode *psFilterNode,
mapObj *map, int i, const char *namespaces)
{
layerObj *lp=NULL;
@@ -3331,12 +3474,19 @@ void FLTPreParseFilterForAlias(FilterEncodingNode *psFilterNode,
#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR) || defined (USE_WCS_SVR) || defined(USE_SOS_SVR)
if (psFilterNode && map && i>=0 && i<map->numlayers) {
- /*strip name speces befor hand*/
+ /*strip name spaces before hand*/
FLTStripNameSpacesFromPropertyName(psFilterNode);
lp = GET_LAYER(map, i);
layerWasOpened = msLayerIsOpen(lp);
if (msLayerOpen(lp) == MS_SUCCESS && msLayerGetItems(lp) == MS_SUCCESS) {
+
+ /* Remove group names from property names if using groupname/itemname syntax */
+ gmlGroupListObj* groupList = msGMLGetGroups(lp, namespaces);
+ if( groupList && groupList->numgroups > 0 )
+ FLTRemoveGroupName(psFilterNode, groupList);
+ msGMLFreeGroups(groupList);
+
for(i=0; i<lp->numitems; i++) {
if (!lp->items[i] || strlen(lp->items[i]) <= 0)
continue;
@@ -3358,6 +3508,258 @@ void FLTPreParseFilterForAlias(FilterEncodingNode *psFilterNode,
#endif
}
+/************************************************************************/
+/* FLTCheckFeatureIdFilters */
+/* */
+/* Check that FeatureId filters match features in the active */
+/* layer. */
+/************************************************************************/
+int FLTCheckFeatureIdFilters(FilterEncodingNode *psFilterNode,
+ mapObj *map, int i)
+{
+ int status = MS_SUCCESS;
+
+ if (psFilterNode->eType == FILTER_NODE_TYPE_FEATUREID)
+ {
+ char** tokens;
+ int nTokens = 0;
+ layerObj* lp;
+ int j;
+
+ lp = GET_LAYER(map, i);
+ tokens = msStringSplit(psFilterNode->pszValue,',', &nTokens);
+ for (j=0; j<nTokens; j++) {
+ const char* pszId = tokens[j];
+ const char* pszDot = strchr(pszId, '.');
+ if( pszDot )
+ {
+ if( pszDot - pszId != strlen(lp->name) ||
+ strncasecmp(pszId, lp->name, strlen(lp->name)) != 0 )
+ {
+ msSetError(MS_MISCERR, "Feature id %s not consistant with feature type name %s.",
+ "FLTPreParseFilterForAlias()", pszId, lp->name);
+ status = MS_FAILURE;
+ break;
+ }
+ }
+ }
+ msFreeCharArray(tokens, nTokens);
+ }
+
+ if (psFilterNode->psLeftNode)
+ {
+ status = FLTCheckFeatureIdFilters(psFilterNode->psLeftNode, map, i);
+ if( status == MS_SUCCESS )
+ {
+ if (psFilterNode->psRightNode)
+ status = FLTCheckFeatureIdFilters(psFilterNode->psRightNode, map, i);
+ }
+ }
+ return status;
+}
+
+/************************************************************************/
+/* FLTCheckInvalidOperand */
+/* */
+/* Check that the operand of a comparison operator is valid */
+/* Currently only detects use of boundedBy in a binary comparison */
+/************************************************************************/
+int FLTCheckInvalidOperand(FilterEncodingNode *psFilterNode)
+{
+ int status = MS_SUCCESS;
+
+ if (psFilterNode->eType == FILTER_NODE_TYPE_COMPARISON &&
+ psFilterNode->psLeftNode != NULL &&
+ psFilterNode->psLeftNode->eType == FILTER_NODE_TYPE_PROPERTYNAME)
+ {
+ if( strcmp(psFilterNode->psLeftNode->pszValue, "gml:boundedBy") == 0 &&
+ strcmp(psFilterNode->pszValue, "PropertyIsNull") != 0 &&
+ strcmp(psFilterNode->pszValue, "PropertyIsNil") != 0 )
+ {
+ msSetError(MS_MISCERR, "Operand '%s' is invalid in comparison.",
+ "FLTCheckInvalidOperand()", psFilterNode->psLeftNode->pszValue);
+ return MS_FAILURE;
+ }
+ }
+ if (psFilterNode->psLeftNode)
+ {
+ status = FLTCheckInvalidOperand(psFilterNode->psLeftNode);
+ if( status == MS_SUCCESS )
+ {
+ if (psFilterNode->psRightNode)
+ status = FLTCheckInvalidOperand(psFilterNode->psRightNode);
+ }
+ }
+ return status;
+}
+
+/************************************************************************/
+/* FLTCheckInvalidProperty */
+/* */
+/* Check that property names are known */
+/************************************************************************/
+int FLTCheckInvalidProperty(FilterEncodingNode *psFilterNode,
+ mapObj *map, int i)
+{
+ int status = MS_SUCCESS;
+
+ if (psFilterNode->eType == FILTER_NODE_TYPE_COMPARISON &&
+ psFilterNode->psLeftNode != NULL &&
+ psFilterNode->psLeftNode->eType == FILTER_NODE_TYPE_PROPERTYNAME)
+ {
+ layerObj* lp;
+ int layerWasOpened;
+ int bFound = MS_FALSE;
+
+ if ((strcmp(psFilterNode->pszValue, "PropertyIsNull") == 0 ||
+ strcmp(psFilterNode->pszValue, "PropertyIsNil") == 0) &&
+ FLTIsGMLDefaultProperty(psFilterNode->psLeftNode->pszValue) )
+ {
+ return MS_SUCCESS;
+ }
+
+ lp = GET_LAYER(map, i);
+ layerWasOpened = msLayerIsOpen(lp);
+ if ((layerWasOpened || msLayerOpen(lp) == MS_SUCCESS)
+ && msLayerGetItems(lp) == MS_SUCCESS) {
+ int i;
+ gmlItemListObj* items = msGMLGetItems(lp, "G");
+ for(i=0; i<items->numitems; i++) {
+ if (!items->items[i].name || strlen(items->items[i].name) <= 0 ||
+ !items->items[i].visible)
+ continue;
+ if (strcasecmp(items->items[i].name, psFilterNode->psLeftNode->pszValue) == 0) {
+ bFound = MS_TRUE;
+ break;
+ }
+ }
+ msGMLFreeItems(items);
+ }
+
+ if (!layerWasOpened) /* do not close the layer if it has been opened somewhere else (paging?) */
+ msLayerClose(lp);
+
+ if( !bFound )
+ {
+ msSetError(MS_MISCERR, "Property '%s' is unknown.",
+ "FLTCheckInvalidProperty()", psFilterNode->psLeftNode->pszValue);
+ return MS_FAILURE;
+ }
+ }
+
+ if (psFilterNode->psLeftNode)
+ {
+ status = FLTCheckInvalidProperty(psFilterNode->psLeftNode, map, i);
+ if( status == MS_SUCCESS )
+ {
+ if (psFilterNode->psRightNode)
+ status = FLTCheckInvalidProperty(psFilterNode->psRightNode, map, i);
+ }
+ }
+ return status;
+}
+
+/************************************************************************/
+/* FLTSimplify */
+/* */
+/* Simplify the expression by removing parts that evaluate to */
+/* constants. */
+/* The passed psFilterNode is potentially consumed by the function */
+/* and replaced by the returned value. */
+/* If the function returns NULL, *pnEvaluation = MS_FALSE means */
+/* that the filter evaluates to FALSE, or MS_TRUE that it */
+/* evaluates to TRUE */
+/************************************************************************/
+FilterEncodingNode* FLTSimplify(FilterEncodingNode *psFilterNode,
+ int* pnEvaluation)
+{
+ *pnEvaluation = -1;
+
+ /* There are no nullable or nillable property in WFS currently */
+ /* except gml:name or gml:description that are null */
+ if( psFilterNode->eType == FILTER_NODE_TYPE_COMPARISON &&
+ (strcmp(psFilterNode->pszValue, "PropertyIsNull") == 0 ||
+ strcmp(psFilterNode->pszValue, "PropertyIsNil") == 0 ) &&
+ psFilterNode->psLeftNode != NULL &&
+ psFilterNode->psLeftNode->eType == FILTER_NODE_TYPE_PROPERTYNAME )
+ {
+ if( strcmp(psFilterNode->pszValue, "PropertyIsNull") == 0 &&
+ FLTIsGMLDefaultProperty(psFilterNode->psLeftNode->pszValue) &&
+ strcmp(psFilterNode->psLeftNode->pszValue, "@gml:id") != 0 &&
+ strcmp(psFilterNode->psLeftNode->pszValue, "gml:boundedBy") != 0)
+ *pnEvaluation = MS_TRUE;
+ else
+ *pnEvaluation = MS_FALSE;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return NULL;
+ }
+
+ if( psFilterNode->eType == FILTER_NODE_TYPE_LOGICAL &&
+ strcasecmp(psFilterNode->pszValue, "NOT") == 0 &&
+ psFilterNode->psLeftNode != NULL )
+ {
+ int nEvaluation;
+ psFilterNode->psLeftNode = FLTSimplify(psFilterNode->psLeftNode,
+ &nEvaluation);
+ if( psFilterNode->psLeftNode == NULL )
+ {
+ *pnEvaluation = 1 - nEvaluation;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return NULL;
+ }
+ }
+
+ if( psFilterNode->eType == FILTER_NODE_TYPE_LOGICAL &&
+ (strcasecmp(psFilterNode->pszValue, "AND") == 0 ||
+ strcasecmp(psFilterNode->pszValue, "OR") == 0) &&
+ psFilterNode->psLeftNode != NULL &&
+ psFilterNode->psRightNode != NULL )
+ {
+ FilterEncodingNode* psOtherNode;
+ int nEvaluation;
+ int nExpectedValForFastExit;
+ psFilterNode->psLeftNode = FLTSimplify(psFilterNode->psLeftNode,
+ &nEvaluation);
+
+ if( strcasecmp(psFilterNode->pszValue, "AND") == 0 )
+ nExpectedValForFastExit = MS_FALSE;
+ else
+ nExpectedValForFastExit = MS_TRUE;
+
+ if( psFilterNode->psLeftNode == NULL )
+ {
+ if( nEvaluation == nExpectedValForFastExit )
+ {
+ *pnEvaluation = nEvaluation;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return NULL;
+ }
+ psOtherNode = psFilterNode->psRightNode;
+ psFilterNode->psRightNode = NULL;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return FLTSimplify(psOtherNode, pnEvaluation);
+ }
+
+ psFilterNode->psRightNode = FLTSimplify(psFilterNode->psRightNode,
+ &nEvaluation);
+ if( psFilterNode->psRightNode == NULL )
+ {
+ if( nEvaluation == nExpectedValForFastExit )
+ {
+ *pnEvaluation = nEvaluation;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return NULL;
+ }
+ psOtherNode = psFilterNode->psLeftNode;
+ psFilterNode->psLeftNode = NULL;
+ FLTFreeFilterEncodingNode(psFilterNode);
+ return FLTSimplify(psOtherNode, pnEvaluation);
+ }
+ }
+
+ return psFilterNode;
+}
+
#ifdef USE_LIBXML2
diff --git a/mapogcfilter.h b/mapogcfilter.h
index d516823..7d7828d 100644
--- a/mapogcfilter.h
+++ b/mapogcfilter.h
@@ -32,9 +32,9 @@
#include "mapserver.h"
/*dont need ogr for these functikons*/
-MS_DLL_EXPORT int FLTIsNumeric(char *pszValue);
-MS_DLL_EXPORT int FLTApplyExpressionToLayer(layerObj *lp, char *pszExpression);
-MS_DLL_EXPORT char *FLTGetExpressionForValuesRanges(layerObj *lp, char *item, char *value, int forcecharcter);
+MS_DLL_EXPORT int FLTIsNumeric(const char *pszValue);
+MS_DLL_EXPORT int FLTApplyExpressionToLayer(layerObj *lp, const char *pszExpression);
+MS_DLL_EXPORT char *FLTGetExpressionForValuesRanges(layerObj *lp, const char *item, const char *value, int forcecharcter);
#ifdef USE_OGR
@@ -58,7 +58,7 @@ typedef struct {
/* -------------------------------------------------------------------- */
/* prototypes. */
/* -------------------------------------------------------------------- */
-MS_DLL_EXPORT FilterEncodingNode *FLTParseFilterEncoding(char *szXMLString);
+MS_DLL_EXPORT FilterEncodingNode *FLTParseFilterEncoding(const char *szXMLString);
MS_DLL_EXPORT FilterEncodingNode *FLTCreateFilterEncodingNode(void);
MS_DLL_EXPORT int FLTApplyFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
int iLayerIndex);
@@ -86,16 +86,18 @@ MS_DLL_EXPORT int FLTIsOnlyPropertyIsLike(FilterEncodingNode *psFilterNode);
MS_DLL_EXPORT void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
CPLXMLNode *psXMLNode);
-MS_DLL_EXPORT int FLTIsLogicalFilterType(char *pszValue);
-MS_DLL_EXPORT int FLTIsBinaryComparisonFilterType(char *pszValue);
-MS_DLL_EXPORT int FLTIsComparisonFilterType(char *pszValue);
-MS_DLL_EXPORT int FLTIsFeatureIdFilterType(char *pszValue);
-MS_DLL_EXPORT int FLTIsSpatialFilterType(char *pszValue);
+MS_DLL_EXPORT int FLTIsLogicalFilterType(const char *pszValue);
+MS_DLL_EXPORT int FLTIsBinaryComparisonFilterType(const char *pszValue);
+MS_DLL_EXPORT int FLTIsComparisonFilterType(const char *pszValue);
+MS_DLL_EXPORT int FLTIsFeatureIdFilterType(const char *pszValue);
+MS_DLL_EXPORT int FLTIsSpatialFilterType(const char *pszValue);
+MS_DLL_EXPORT int FLTIsTemporalFilterType(const char *pszValue);
MS_DLL_EXPORT int FLTIsSupportedFilterType(CPLXMLNode *psXMLNode);
MS_DLL_EXPORT char *FLTGetMapserverExpression(FilterEncodingNode *psFilterNode, layerObj *lp);
MS_DLL_EXPORT char *FLTGetNodeExpression(FilterEncodingNode *psFilterNode, layerObj *lp);
-MS_DLL_EXPORT char *FLTGetBBOX(FilterEncodingNode *psFilterNode, rectObj *psRect);
+MS_DLL_EXPORT const char *FLTGetBBOX(FilterEncodingNode *psFilterNode, rectObj *psRect);
+const char* FLTGetDuring(FilterEncodingNode *psFilterNode, const char** ppszTimeField);
MS_DLL_EXPORT shapeObj *FLTGetShape(FilterEncodingNode *psFilterNode, double *pdfDistance,
int *pnUnit);
@@ -120,25 +122,32 @@ MS_DLL_EXPORT char *FLTGetLogicalComparisonSQLExpresssion(FilterEncodingNode *ps
layerObj *lp);
MS_DLL_EXPORT int FLTIsSimpleFilter(FilterEncodingNode *psFilterNode);
-MS_DLL_EXPORT FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(char *pszString);
+MS_DLL_EXPORT FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(const char *pszString);
-MS_DLL_EXPORT int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj);
MS_DLL_EXPORT int FLTParseGMLEnvelope(CPLXMLNode *psRoot, rectObj *psBbox, char **ppszSRS);
MS_DLL_EXPORT int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS);
/*common-expressions*/
MS_DLL_EXPORT char *FLTGetBinaryComparisonCommonExpression(FilterEncodingNode *psFilterNode, layerObj *lp);
MS_DLL_EXPORT char *FLTGetCommonExpression(FilterEncodingNode *psFilterNode, layerObj *lp);
-MS_DLL_EXPORT int FLTApplyFilterToLayerCommonExpression(mapObj *map, int iLayerIndex, char *pszExpression);
-
+char* FLTGetTimeExpression(FilterEncodingNode *psFilterNode, layerObj *lp);
+MS_DLL_EXPORT int FLTApplyFilterToLayerCommonExpression(mapObj *map, int iLayerIndex, const char *pszExpression);
#ifdef USE_LIBXML2
MS_DLL_EXPORT xmlNodePtr FLTGetCapabilities(xmlNsPtr psNsParent, xmlNsPtr psNsOgc, int bTemporal);
#endif
-
-void FLTPreParseFilterForAlias(FilterEncodingNode *psFilterNode,
- mapObj *map, int i, const char *namespaces);
+void FLTDoAxisSwappingIfNecessary(FilterEncodingNode *psFilterNode, int bDefaultSRSNeedsAxisSwapping);
+
+void FLTPreParseFilterForAliasAndGroup(FilterEncodingNode *psFilterNode,
+ mapObj *map, int i, const char *namespaces);
+int FLTCheckFeatureIdFilters(FilterEncodingNode *psFilterNode,
+ mapObj *map, int i);
+int FLTCheckInvalidOperand(FilterEncodingNode *psFilterNode);
+int FLTCheckInvalidProperty(FilterEncodingNode *psFilterNode,
+ mapObj *map, int i);
+FilterEncodingNode* FLTSimplify(FilterEncodingNode *psFilterNode,
+ int* pnEvaluation);
#endif
diff --git a/mapogcfiltercommon.c b/mapogcfiltercommon.c
index 7d00d74..11f9ff7 100644
--- a/mapogcfiltercommon.c
+++ b/mapogcfiltercommon.c
@@ -34,8 +34,6 @@
#include "mapserver.h"
#include "mapowscommon.h"
-
-
#ifdef USE_OGR
char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
@@ -45,10 +43,11 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
char szTmp[256];
char *pszValue = NULL;
- char *pszWild = NULL;
- char *pszSingle = NULL;
- char *pszEscape = NULL;
+ const char *pszWild = NULL;
+ const char *pszSingle = NULL;
+ const char *pszEscape = NULL;
int bCaseInsensitive = 0;
+ FEPropertyIsLike* propIsLike;
int nLength=0, i=0, iTmp=0;
@@ -57,10 +56,11 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
!psFilterNode->psRightNode || !psFilterNode->psRightNode->pszValue)
return NULL;
- pszWild = ((FEPropertyIsLike *)psFilterNode->pOther)->pszWildCard;
- pszSingle = ((FEPropertyIsLike *)psFilterNode->pOther)->pszSingleChar;
- pszEscape = ((FEPropertyIsLike *)psFilterNode->pOther)->pszEscapeChar;
- bCaseInsensitive = ((FEPropertyIsLike *)psFilterNode->pOther)->bCaseInsensitive;
+ propIsLike = (FEPropertyIsLike *)psFilterNode->pOther;
+ pszWild = propIsLike->pszWildCard;
+ pszSingle = propIsLike->pszSingleChar;
+ pszEscape = propIsLike->pszEscapeChar;
+ bCaseInsensitive = propIsLike->bCaseInsensitive;
if (!pszWild || strlen(pszWild) == 0 ||
!pszSingle || strlen(pszSingle) == 0 ||
@@ -116,7 +116,6 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
szTmp[iTmp] = '\\';
iTmp++;
szTmp[iTmp] = '\0';
-
} else if (pszValue[i] == pszWild[0]) {
/* strcat(szBuffer, "[0-9,a-z,A-Z,\\s]*"); */
/* iBuffer+=17; */
@@ -133,9 +132,7 @@ char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
return msStrdup(szBuffer);
}
-
-char *FLTGetIsBetweenComparisonCommonExpresssion(FilterEncodingNode *psFilterNode,
- layerObj *lp)
+char *FLTGetIsBetweenComparisonCommonExpresssion(FilterEncodingNode *psFilterNode, layerObj *lp)
{
const size_t bufferSize = 1024;
char szBuffer[1024];
@@ -156,8 +153,7 @@ char *FLTGetIsBetweenComparisonCommonExpresssion(FilterEncodingNode *psFilterNod
/* -------------------------------------------------------------------- */
aszBounds = msStringSplit(psFilterNode->psRightNode->pszValue, ';', &nBounds);
if (nBounds != 2) {
- if (aszBounds)
- msFreeCharArray(aszBounds, nBounds);
+ msFreeCharArray(aszBounds, nBounds);
return NULL;
}
/* -------------------------------------------------------------------- */
@@ -252,8 +248,7 @@ char *FLTGetIsBetweenComparisonCommonExpresssion(FilterEncodingNode *psFilterNod
sprintf(szBuffer, "%s", ")");
pszExpression = msStringConcatenate(pszExpression, szBuffer);
- if (aszBounds)
- msFreeCharArray(aszBounds, nBounds);
+ msFreeCharArray(aszBounds, nBounds);
return pszExpression;
}
@@ -389,8 +384,10 @@ char *FLTGetLogicalComparisonCommonExpression(FilterEncodingNode *psFilterNode,
pszTmp = FLTGetCommonExpression(psFilterNode->psRightNode, lp);
- if (!pszTmp)
+ if (!pszTmp) {
+ msFree(pszExpression);
return NULL;
+ }
pszExpression = msStringConcatenate(pszExpression, pszTmp);
msFree(pszTmp);
@@ -428,15 +425,15 @@ char *FLTGetSpatialComparisonCommonExpression(FilterEncodingNode *psNode, layerO
char *pszExpression = NULL;
shapeObj *psQueryShape = NULL;
double dfDistance = -1;
- int nUnit = -1;
+ int nUnit = -1, nLayerUnit = -1;
char *pszWktText = NULL;
char szBuffer[256];
char *pszTmp=NULL;
projectionObj sProjTmp;
- char *pszEPSG= NULL;
rectObj sQueryRect;
- shapeObj *psTmpShape=NULL, *psBufferShape=NULL;
+ shapeObj *psTmpShape=NULL;
int bBBoxQuery = 0;
+ int bAlreadyReprojected = 0;
if (psNode == NULL || lp == NULL)
return NULL;
@@ -444,107 +441,145 @@ char *FLTGetSpatialComparisonCommonExpression(FilterEncodingNode *psNode, layerO
if (psNode->eType != FILTER_NODE_TYPE_SPATIAL)
return NULL;
- /* get the shape*/
- /*BBOX case: replace it with NOT DISJOINT.*/
+ /* get the shape */
if(FLTIsBBoxFilter(psNode)) {
- pszEPSG = FLTGetBBOX(psNode, &sQueryRect);
- /*this should be removed and bbox should parse and strore the srs properly,
- using now legacy code*/
- if (pszEPSG)
- psNode->pszSRS = msStrdup(pszEPSG);
-
- psTmpShape = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
- msInitShape(psTmpShape);
- msRectToPolygon(sQueryRect, psTmpShape);
- bBBoxQuery = 1;
+ char szPolygon[512];
+ FLTGetBBOX(psNode, &sQueryRect);
+
+ snprintf(szPolygon, sizeof(szPolygon),
+ "POLYGON((%.18f %.18f,%.18f %.18f,%.18f %.18f,%.18f %.18f,%.18f %.18f))",
+ sQueryRect.minx, sQueryRect.miny,
+ sQueryRect.minx, sQueryRect.maxy,
+ sQueryRect.maxx, sQueryRect.maxy,
+ sQueryRect.maxx, sQueryRect.miny,
+ sQueryRect.minx, sQueryRect.miny);
+
+ psTmpShape = msShapeFromWKT(szPolygon);
+
+ /* This is a horrible hack to deal with world-extent requests and */
+ /* reprojection. msProjectRect() detects if reprojection from longlat to */
+ /* projected SRS, and in that case it transforms the bbox to -1e-15,-1e-15,1e15,1e15 */
+ /* to ensure that all features are returned */
+ /* Make wfs_200_cite_filter_bbox_world.xml and wfs_200_cite_postgis_bbox_world.xml pass */
+ if( fabs(sQueryRect.minx - -180.0) < 1e-5 &&
+ fabs(sQueryRect.miny - -90.0) < 1e-5 &&
+ fabs(sQueryRect.maxx - 180.0) < 1e-5 &&
+ fabs(sQueryRect.maxy - 90.0) < 1e-5 )
+ {
+ if(lp->projection.numargs > 0) {
+ if (psNode->pszSRS)
+ msInitProjection(&sProjTmp);
+ if (psNode->pszSRS) {
+ /* Use the non EPSG variant since axis swapping is done in FLTDoAxisSwappingIfNecessary */
+ if (msLoadProjectionString(&sProjTmp, psNode->pszSRS) == 0) {
+ msProjectRect(&sProjTmp, &lp->projection, &sQueryRect);
+ }
+ } else if (lp->map->projection.numargs > 0)
+ msProjectRect(&lp->map->projection, &lp->projection, &sQueryRect);
+ if (psNode->pszSRS)
+ msFreeProjection(&sProjTmp);
+ }
+ if( sQueryRect.minx <= -1e14 )
+ {
+ msFreeShape(psTmpShape);
+ msFree(psTmpShape);
+ psTmpShape = (shapeObj*) msSmallMalloc(sizeof(shapeObj));
+ msInitShape(psTmpShape);
+ msRectToPolygon(sQueryRect, psTmpShape);
+ bAlreadyReprojected = 1;
+ }
+ }
+ bBBoxQuery = 1;
} else {
- /*other geos type operations*/
+ /* other geos type operations */
- /*project shape to layer projection. If the proj is not part of the filter query,
- assume that the cooredinates are in the map projection*/
+ /* project shape to layer projection. If the proj is not part of the filter query,
+ assume that the cooredinates are in the map projection */
psQueryShape = FLTGetShape(psNode, &dfDistance, &nUnit);
- if ((strcasecmp(psNode->pszValue, "DWithin") == 0 ||
- strcasecmp(psNode->pszValue, "Beyond") == 0 ) &&
- dfDistance > 0) {
- if (nUnit >=0 && nUnit != lp->map->units)
- dfDistance *= msInchesPerUnit(nUnit,0)/msInchesPerUnit(lp->map->units,0);
+ if ((strcasecmp(psNode->pszValue, "DWithin") == 0 || strcasecmp(psNode->pszValue, "Beyond") == 0 ) && dfDistance > 0) {
+ nLayerUnit = lp->units;
+ if(nLayerUnit == -1) nLayerUnit = GetMapserverUnitUsingProj(&lp->projection);
+ if(nLayerUnit == -1) nLayerUnit = lp->map->units;
+ if(nLayerUnit == -1) nLayerUnit = GetMapserverUnitUsingProj(&lp->map->projection);
- psBufferShape = msGEOSBuffer(psQueryShape, dfDistance);
+ if (nUnit >= 0 && nUnit != nLayerUnit)
+ dfDistance *= msInchesPerUnit(nUnit,0)/msInchesPerUnit(nLayerUnit,0); /* target is layer units */
}
- if (psBufferShape)
- psTmpShape = psBufferShape;
- else
- psTmpShape = psQueryShape;
+
+ psTmpShape = psQueryShape;
}
if (psTmpShape) {
- if( lp->projection.numargs > 0) {
+
+ /*
+ ** target is layer projection
+ */
+ if(!bAlreadyReprojected && lp->projection.numargs > 0) {
if (psNode->pszSRS)
msInitProjection(&sProjTmp);
- if (psNode->pszSRS && FLTParseEpsgString(psNode->pszSRS, &sProjTmp)) {
- msProjectShape(&sProjTmp, &lp->projection, psTmpShape);
+ if (psNode->pszSRS) {
+ /* Use the non EPSG variant since axis swapping is done in FLTDoAxisSwappingIfNecessary */
+ if (msLoadProjectionString(&sProjTmp, psNode->pszSRS) == 0) {
+ msProjectShape(&sProjTmp, &lp->projection, psTmpShape);
+ }
} else if (lp->map->projection.numargs > 0)
msProjectShape(&lp->map->projection, &lp->projection, psTmpShape);
if (psNode->pszSRS)
msFreeProjection(&sProjTmp);
}
- /* ==================================================================== */
- /* use within for bbox. Not Disjoint does not work. */
- /* ==================================================================== */
- if (bBBoxQuery)
- sprintf(szBuffer, "%s", " ([shape] ");
- /* sprintf(szBuffer, "%s", " (NOT ([shape] "); */
- else
- sprintf(szBuffer, "%s", " ([shape] ");
-
- pszExpression = msStringConcatenate(pszExpression, szBuffer);
-
+ /* function name */
if (bBBoxQuery) {
- sprintf(szBuffer, " %s ", "intersects");
+ sprintf(szBuffer, "%s", "intersects");
} else {
if (strncasecmp(psNode->pszValue, "intersect", 9) == 0)
- sprintf(szBuffer, " %s ", "intersects");
- else if (strncasecmp(psNode->pszValue, "equals", 6) == 0)
- sprintf(szBuffer, " %s ", "eq");
+ sprintf(szBuffer, "%s", "intersects");
else {
pszTmp = msStrdup(psNode->pszValue);
msStringToLower(pszTmp);
- sprintf(szBuffer, " %s ", pszTmp);
+ sprintf(szBuffer, "%s", pszTmp);
msFree(pszTmp);
}
}
+ pszExpression = msStringConcatenate(pszExpression, szBuffer);
+ pszExpression = msStringConcatenate(pszExpression, "(");
+ /* geometry binding */
+ sprintf(szBuffer, "%s", "[shape]");
pszExpression = msStringConcatenate(pszExpression, szBuffer);
+ pszExpression = msStringConcatenate(pszExpression, ",");
+ /* filter geometry */
pszWktText = msGEOSShapeToWKT(psTmpShape);
- sprintf(szBuffer, "%s", " fromText('");
+ sprintf(szBuffer, "%s", "fromText('");
pszExpression = msStringConcatenate(pszExpression, szBuffer);
pszExpression = msStringConcatenate(pszExpression, pszWktText);
sprintf(szBuffer, "%s", "')");
pszExpression = msStringConcatenate(pszExpression, szBuffer);
msGEOSFreeWKT(pszWktText);
+
+ /* (optional) beyond/dwithin distance, always 0.0 since we apply the distance as a buffer earlier */
+ if ((strcasecmp(psNode->pszValue, "DWithin") == 0 || strcasecmp(psNode->pszValue, "Beyond") == 0)) {
+ // pszExpression = msStringConcatenate(pszExpression, ",0.0");
+ sprintf(szBuffer, ",%g", dfDistance);
+ pszExpression = msStringConcatenate(pszExpression, szBuffer);
+ }
+
+ /* terminate the function */
+ pszExpression = msStringConcatenate(pszExpression, ") = TRUE");
}
- if (psBufferShape) {
- msFreeShape(psBufferShape);
- msFree(psBufferShape);
- }
+
+ /*
+ ** Cleanup
+ */
if(bBBoxQuery) {
msFreeShape(psTmpShape);
msFree(psTmpShape);
}
-
- sprintf(szBuffer, "%s", ")");
- pszExpression = msStringConcatenate(pszExpression, szBuffer);
-
- if (0) { /* bBBoxQuery */
- sprintf(szBuffer, "%s", ")");
- pszExpression = msStringConcatenate(pszExpression, szBuffer);
- }
return pszExpression;
}
@@ -565,21 +600,25 @@ char *FLTGetFeatureIdCommonExpression(FilterEncodingNode *psFilterNode, layerObj
for (i=0; i<nTokens; i++) {
char *pszTmp = NULL;
int bufferSize = 0;
+ const char* pszId = tokens[i];
+ const char* pszDot = strchr(pszId, '.');
+ if( pszDot )
+ pszId = pszDot + 1;
if (i == 0) {
- if(FLTIsNumeric(tokens[0]) == MS_FALSE)
+ if(FLTIsNumeric(pszId) == MS_FALSE)
bString = 1;
}
if (bString) {
- bufferSize = 11+strlen(tokens[i])+strlen(pszAttribute)+1;
+ bufferSize = 11+strlen(pszId)+strlen(pszAttribute)+1;
pszTmp = (char *)msSmallMalloc(bufferSize);
- snprintf(pszTmp, bufferSize, "(\"[%s]\" ==\"%s\")" , pszAttribute, tokens[i]);
+ snprintf(pszTmp, bufferSize, "(\"[%s]\" ==\"%s\")" , pszAttribute, pszId);
} else {
- bufferSize = 8+strlen(tokens[i])+strlen(pszAttribute)+1;
+ bufferSize = 8+strlen(pszId)+strlen(pszAttribute)+1;
pszTmp = (char *)msSmallMalloc(bufferSize);
- snprintf(pszTmp, bufferSize, "([%s] == %s)" , pszAttribute, tokens[i]);
+ snprintf(pszTmp, bufferSize, "([%s] == %s)" , pszAttribute, pszId);
}
if (pszExpression != NULL)
@@ -602,6 +641,35 @@ char *FLTGetFeatureIdCommonExpression(FilterEncodingNode *psFilterNode, layerObj
return pszExpression;
}
+char* FLTGetTimeExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
+{
+ char* pszExpression = NULL;
+ const char* pszTimeField;
+ const char* pszTimeValue;
+
+ if (psFilterNode == NULL || lp == NULL)
+ return NULL;
+
+ if (psFilterNode->eType != FILTER_NODE_TYPE_TEMPORAL)
+ return NULL;
+
+ pszTimeValue = FLTGetDuring(psFilterNode, &pszTimeField);
+ if( pszTimeField && pszTimeValue )
+ {
+ expressionObj old_filter;
+ msInitExpression(&old_filter);
+ msCopyExpression(&old_filter, &lp->filter); /* save existing filter */
+ msFreeExpression(&lp->filter);
+ if( msLayerSetTimeFilter(lp, pszTimeValue, pszTimeField) == MS_TRUE ) {
+ pszExpression = msStrdup(lp->filter.string);
+ }
+ msCopyExpression(&lp->filter, &old_filter); /* restore old filter */
+ msFreeExpression(&old_filter);
+ }
+ return pszExpression;
+}
+
+
char *FLTGetCommonExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
{
char *pszExpression = NULL;
@@ -613,41 +681,48 @@ char *FLTGetCommonExpression(FilterEncodingNode *psFilterNode, layerObj *lp)
if ( psFilterNode->psLeftNode && psFilterNode->psRightNode) {
if (FLTIsBinaryComparisonFilterType(psFilterNode->pszValue))
pszExpression = FLTGetBinaryComparisonCommonExpression(psFilterNode, lp);
-
else if (strcasecmp(psFilterNode->pszValue, "PropertyIsLike") == 0)
pszExpression = FLTGetIsLikeComparisonCommonExpression(psFilterNode);
-
else if (strcasecmp(psFilterNode->pszValue, "PropertyIsBetween") == 0)
pszExpression = FLTGetIsBetweenComparisonCommonExpresssion(psFilterNode, lp);
}
- } else if (psFilterNode->eType == FILTER_NODE_TYPE_LOGICAL)
+ } else if (psFilterNode->eType == FILTER_NODE_TYPE_LOGICAL) {
pszExpression = FLTGetLogicalComparisonCommonExpression(psFilterNode, lp);
-
- else if (psFilterNode->eType == FILTER_NODE_TYPE_SPATIAL)
+ } else if (psFilterNode->eType == FILTER_NODE_TYPE_SPATIAL) {
pszExpression = FLTGetSpatialComparisonCommonExpression(psFilterNode, lp);
-
- else if (psFilterNode->eType == FILTER_NODE_TYPE_FEATUREID)
+ } else if (psFilterNode->eType == FILTER_NODE_TYPE_FEATUREID) {
pszExpression = FLTGetFeatureIdCommonExpression(psFilterNode, lp);
+ } else if (psFilterNode->eType == FILTER_NODE_TYPE_TEMPORAL) {
+ pszExpression = FLTGetTimeExpression(psFilterNode, lp);
+ }
return pszExpression;
}
-
-int FLTApplyFilterToLayerCommonExpression(mapObj *map, int iLayerIndex, char *pszExpression)
+int FLTApplyFilterToLayerCommonExpression(mapObj *map, int iLayerIndex, const char *pszExpression)
{
int retval;
+ int save_startindex;
+ int save_maxfeatures;
+ int save_only_cache_result_count;
+ save_startindex = map->query.startindex;
+ save_maxfeatures = map->query.maxfeatures;
+ save_only_cache_result_count = map->query.only_cache_result_count;
msInitQuery(&(map->query));
+ map->query.startindex = save_startindex;
+ map->query.maxfeatures = save_maxfeatures;
+ map->query.only_cache_result_count = save_only_cache_result_count;
map->query.type = MS_QUERY_BY_FILTER;
+ map->query.mode = MS_QUERY_MULTIPLE;
- map->query.filter = (expressionObj *) msSmallMalloc(sizeof(expressionObj));
- initExpression( map->query.filter);
- map->query.filter->string = msStrdup(pszExpression);
- map->query.filter->type = 2000;
+ msInitExpression(&map->query.filter);
+ map->query.filter.string = msStrdup(pszExpression);
+ map->query.filter.type = MS_EXPRESSION; /* a logical expression */
map->query.layer = iLayerIndex;
- /*TODO: if there is a bbox in the node, get it and set the map extent*/
+ /* TODO: if there is a bbox in the node, get it and set the map extent (projected to map->projection */
map->query.rect = map->extent;
retval = msQueryByFilter(map);
diff --git a/mapogcsld.c b/mapogcsld.c
index 9f019e2..af0cb76 100644
--- a/mapogcsld.c
+++ b/mapogcsld.c
@@ -34,8 +34,6 @@
#include "cpl_string.h"
#endif
-
-
#define SLD_LINE_SYMBOL_NAME "sld_line_symbol"
#define SLD_LINE_SYMBOL_DASH_NAME "sld_line_symbol_dash"
#define SLD_MARK_SYMBOL_SQUARE "sld_mark_symbol_square"
@@ -92,11 +90,15 @@ int msSLDApplySLDURL(mapObj *map, char *szURL, int iLayer,
int nBufsize=0;
fseek(fp, 0, SEEK_END);
nBufsize = ftell(fp);
- rewind(fp);
- pszSLDbuf = (char*)malloc((nBufsize+1)*sizeof(char));
- fread(pszSLDbuf, 1, nBufsize, fp);
+ if(nBufsize > 0) {
+ rewind(fp);
+ pszSLDbuf = (char*)malloc((nBufsize+1)*sizeof(char));
+ fread(pszSLDbuf, 1, nBufsize, fp);
+ pszSLDbuf[nBufsize] = '\0';
+ } else {
+ msSetError(MS_WMSERR, "Could not open SLD %s as it appears empty", "msSLDApplySLDURL", szURL);
+ }
fclose(fp);
- pszSLDbuf[nBufsize] = '\0';
unlink(pszSLDTmpFile);
}
} else {
@@ -135,8 +137,7 @@ int msSLDApplySLDURL(mapObj *map, char *szURL, int iLayer,
/* they have the same name, copy the classes asscoaited with */
/* the SLD layers onto the map layers. */
/************************************************************************/
-int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
- char *pszStyleLayerName, char **ppszLayerNames)
+int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer, char *pszStyleLayerName, char **ppszLayerNames)
{
#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR) || defined (USE_WCS_SVR) || defined(USE_SOS_SVR)
@@ -160,7 +161,6 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
layerObj *lp = NULL;
char *pszSqlExpression=NULL;
FilterEncodingNode *psExpressionNode =NULL;
- int bFailedExpression=0;
pasLayers = msSLDParseSLD(map, psSLDXML, &nLayers);
/* -------------------------------------------------------------------- */
@@ -202,9 +202,6 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
}
}
}
- }
-
- if (pasLayers && nLayers > 0) {
for (i=0; i<map->numlayers; i++) {
if (iLayer >=0 && iLayer< map->numlayers) {
i = iLayer;
@@ -231,7 +228,8 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
pszSLDNotSupported = msOWSLookupMetadata(&(GET_LAYER(map, i)->metadata), "M", "SLD_NOT_SUPPORTED");
if (pszSLDNotSupported) {
msSetError(MS_WMSERR, "Layer %s does not support SLD", "msSLDApplySLD", pasLayers[j].name);
- return MS_FAILURE;
+ nsStatus = MS_FAILURE;
+ goto sld_cleanup;
}
#endif
@@ -264,7 +262,6 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
msCopyClass(GET_LAYER(map, i)->class[iClass],
pasLayers[j].class[k], NULL);
GET_LAYER(map, i)->class[iClass]->layer = GET_LAYER(map, i);
- GET_LAYER(map, i)->class[iClass]->type = GET_LAYER(map, i)->type;
GET_LAYER(map, i)->numclasses++;
/*aliases may have been used as part of the sld text symbolizer for
@@ -326,8 +323,8 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
/* opacity for sld raster */
if (GET_LAYER(map, i)->type == MS_LAYER_RASTER &&
- pasLayers[j].opacity != -1)
- GET_LAYER(map, i)->opacity = pasLayers[j].opacity;
+ pasLayers[i].compositer && pasLayers[j].compositer->opacity != 100)
+ msSetLayerOpacity(GET_LAYER(map, i), pasLayers[j].compositer->opacity);
/* mark as auto-generate SLD */
if (GET_LAYER(map, i)->connectiontype == MS_WMS)
@@ -343,7 +340,6 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
(GET_LAYER(map, i)->type == MS_LAYER_POINT ||
GET_LAYER(map, i)->type == MS_LAYER_LINE ||
GET_LAYER(map, i)->type == MS_LAYER_POLYGON ||
- GET_LAYER(map, i)->type == MS_LAYER_ANNOTATION ||
GET_LAYER(map, i)->type == MS_LAYER_TILEINDEX)) {
FilterEncodingNode *psNode = NULL;
@@ -392,56 +388,43 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
pasLayers[j].layerinfo=NULL;
- if( nStatus != MS_SUCCESS )
- return nStatus;
+ if( nStatus != MS_SUCCESS ) {
+ goto sld_cleanup;
+ }
} else {
/*in some cases it would make sense to concatenate all the class
expressions and use it to set the filter on the layer. This
could increase performace. Will do it for db types layers #2840*/
lp = GET_LAYER(map, i);
- if (lp->filter.string == NULL ||
- (lp->filter.string && lp->filter.type == MS_EXPRESSION)) {
- if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL ||
- lp->connectiontype == MS_SDE || lp->connectiontype == MS_PLUGIN) {
+ if (lp->filter.string == NULL || (lp->filter.string && lp->filter.type == MS_STRING && !lp->filteritem)) {
+ if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL || lp->connectiontype == MS_PLUGIN) {
if (lp->numclasses > 0) {
- /*check first that all classes have an expression type. That is
+ /* check first that all classes have an expression type. That is
the only way we can concatenate them and set the filter
- expression*/
+ expression */
for (k=0; k<lp->numclasses; k++) {
if (lp->class[k]->expression.type != MS_EXPRESSION)
break;
}
if (k == lp->numclasses) {
- bFailedExpression = 0;
for (k=0; k<lp->numclasses; k++) {
if (pszBuffer == NULL)
- snprintf(szTmp, sizeof(szTmp), "%s", "((");
+ snprintf(szTmp, sizeof(szTmp), "%s", "(("); /* we a building a string expression, explicitly set type below */
else
snprintf(szTmp, sizeof(szTmp), "%s", " OR ");
- pszBuffer =msStringConcatenate(pszBuffer, szTmp);
- psExpressionNode = BuildExpressionTree(lp->class[k]->expression.string,NULL);
- if (psExpressionNode) {
- pszSqlExpression = FLTGetSQLExpression(psExpressionNode,lp);
- if (pszSqlExpression) {
- pszBuffer =
- msStringConcatenate(pszBuffer, pszSqlExpression);
- msFree(pszSqlExpression);
- } else {
- bFailedExpression =1;
- break;
- }
- FLTFreeFilterEncodingNode(psExpressionNode);
- } else {
- bFailedExpression =1;
- break;
- }
- }
- if (!bFailedExpression) {
- snprintf(szTmp, sizeof(szTmp), "%s", "))");
- pszBuffer =msStringConcatenate(pszBuffer, szTmp);
- msLoadExpressionString(&lp->filter, pszBuffer);
+ pszBuffer = msStringConcatenate(pszBuffer, szTmp);
+ pszBuffer = msStringConcatenate(pszBuffer, lp->class[k]->expression.string);
}
+
+ snprintf(szTmp, sizeof(szTmp), "%s", "))");
+ pszBuffer =msStringConcatenate(pszBuffer, szTmp);
+
+ msFreeExpression(&lp->filter);
+ msInitExpression(&lp->filter);
+ lp->filter.string = msStrdup(pszBuffer);
+ lp->filter.type = MS_EXPRESSION;
+
msFree(pszBuffer);
pszBuffer = NULL;
}
@@ -474,10 +457,15 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
*ppszLayerNames = pszTmp;
}
- for (i=0; i<nLayers; i++)
- freeLayer(&pasLayers[i]);
- msFree(pasLayers);
}
+
+ nStatus = MS_SUCCESS;
+
+sld_cleanup:
+ for (i=0; i<nLayers; i++)
+ freeLayer(&pasLayers[i]);
+ msFree(pasLayers);
+
if(map->debug == MS_DEBUGLEVEL_VVV) {
tmpfilename = msTmpFile(map, map->mappath, NULL, "_sld.map");
if (tmpfilename == NULL) {
@@ -489,7 +477,7 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
msFree(tmpfilename);
}
}
- return MS_SUCCESS;
+ return nStatus;
#else
@@ -784,8 +772,7 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
/* NOTE : Spatial Filter is not supported. */
/* -------------------------------------------------------------------- */
psFilter = CPLGetXMLNode(psRule, "Filter");
- if (psFilter && psFilter->psChild &&
- psFilter->psChild->pszValue) {
+ if (psFilter && psFilter->psChild && psFilter->psChild->pszValue) {
CPLXMLNode *psTmpNextNode = NULL;
/* clone the tree and set the next node to null */
/* so we only have the Filter node */
@@ -839,7 +826,7 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
msInsertHashTable(&psLayer->metadata, key,
msLookupHashTable(&psCurrentLayer->metadata, key));
}
- FLTPreParseFilterForAlias(psNode, psLayer->map, j, "G");
+ FLTPreParseFilterForAliasAndGroup(psNode, psLayer->map, j, "G");
}
pszExpression = FLTGetCommonExpression(psNode, psLayer);
@@ -850,9 +837,13 @@ int msSLDParseNamedLayer(CPLXMLNode *psRoot, layerObj *psLayer)
nNewClasses =
nClassAfterFilter - nClassBeforeFilter;
for (i=0; i<nNewClasses; i++) {
- msLoadExpressionString(&psLayer->
+ expressionObj* exp = &(psLayer->
class[psLayer->numclasses-1-i]->
- expression, pszExpression);
+ expression);
+ msFreeExpression(exp);
+ msInitExpression(exp);
+ exp->string = msStrdup(pszExpression);
+ exp->type = MS_EXPRESSION;
}
msFree(pszExpression);
pszExpression = NULL;
@@ -1027,7 +1018,7 @@ int msSLDParseRule(CPLXMLNode *psRoot, layerObj *psLayer)
continue;
}
if (nSymbolizer == 0)
- psLayer->type = MS_LAYER_ANNOTATION;
+ psLayer->type = MS_LAYER_POINT;
msSLDParseTextSymbolizer(psTextSymbolizer, psLayer, bSymbolizer);
psTextSymbolizer = psTextSymbolizer->psNext;
}
@@ -1207,6 +1198,7 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle,
int nDash = 0, i;
char **aszValues = NULL;
int nMaxDash;
+ if(pszDashValue) free(pszDashValue); /* free previous if multiple stroke-dasharray attributes were found */
pszDashValue =
msStrdup(psCssParam->psChild->psNext->pszValue);
aszValues = msStringSplit(pszDashValue, ' ', &nDash);
@@ -1219,10 +1211,9 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle,
for (i=0; i<nMaxDash; i++)
psStyle->pattern[i] = atof(aszValues[i]);
- msFreeCharArray(aszValues, nDash);
psStyle->linecap = MS_CJC_BUTT;
}
-
+ msFreeCharArray(aszValues, nDash);
}
} else if (strcasecmp(psStrkName, "stroke-opacity") == 0) {
if(psCssParam->psChild && psCssParam->psChild->psNext &&
@@ -1247,10 +1238,10 @@ int msSLDParseStroke(CPLXMLNode *psStroke, styleObj *psStyle,
/* then again the fill parameter can be used inside both elements. */
psGraphicFill = CPLGetXMLNode(psStroke, "GraphicFill");
if (psGraphicFill)
- msSLDParseGraphicFillOrStroke(psGraphicFill, pszDashValue, psStyle, map, 0);
+ msSLDParseGraphicFillOrStroke(psGraphicFill, pszDashValue, psStyle, map);
psGraphicFill = CPLGetXMLNode(psStroke, "GraphicStroke");
if (psGraphicFill)
- msSLDParseGraphicFillOrStroke(psGraphicFill, pszDashValue, psStyle, map, 0);
+ msSLDParseGraphicFillOrStroke(psGraphicFill, pszDashValue, psStyle, map);
if (pszDashValue)
free(pszDashValue);
@@ -1486,10 +1477,10 @@ int msSLDParsePolygonFill(CPLXMLNode *psFill, styleObj *psStyle,
/* then again the fill parameter can be used inside both elements. */
psGraphicFill = CPLGetXMLNode(psFill, "GraphicFill");
if (psGraphicFill)
- msSLDParseGraphicFillOrStroke(psGraphicFill, NULL, psStyle, map, 0);
+ msSLDParseGraphicFillOrStroke(psGraphicFill, NULL, psStyle, map);
psGraphicFill = CPLGetXMLNode(psFill, "GraphicStroke");
if (psGraphicFill)
- msSLDParseGraphicFillOrStroke(psGraphicFill, NULL, psStyle, map, 0);
+ msSLDParseGraphicFillOrStroke(psGraphicFill, NULL, psStyle, map);
return MS_SUCCESS;
@@ -1504,10 +1495,9 @@ int msSLDParsePolygonFill(CPLXMLNode *psFill, styleObj *psStyle,
/************************************************************************/
int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot,
char *pszDashValue,
- styleObj *psStyle, mapObj *map,
- int bPointLayer)
+ styleObj *psStyle, mapObj *map)
{
- CPLXMLNode *psCssParam, *psGraphic, *psExternalGraphic, *psMark, *psSize;
+ CPLXMLNode *psCssParam, *psGraphic, *psExternalGraphic, *psMark, *psSize, *psGap, *psInitialGap;
CPLXMLNode *psWellKnownName, *psStroke, *psFill;
CPLXMLNode *psDisplacement=NULL, *psDisplacementX=NULL, *psDisplacementY=NULL;
CPLXMLNode *psOpacity=NULL, *psRotation=NULL;
@@ -1518,8 +1508,6 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot,
CPLXMLNode *psPropertyName=NULL;
char szTmp[256];
- bPointLayer=0;
-
if (!psRoot || !psStyle || !map)
return MS_FAILURE;
/* ==================================================================== */
@@ -1732,6 +1720,14 @@ int msSLDParseGraphicFillOrStroke(CPLXMLNode *psRoot,
}
msFree(pszSymbolName);
}
+ psGap = CPLGetXMLNode(psRoot, "Gap");
+ if (psGap && psGap->psChild && psGap->psChild->pszValue) {
+ psStyle->gap = atof(psGap->psChild->pszValue);
+ }
+ psInitialGap = CPLGetXMLNode(psRoot, "InitialGap");
+ if (psInitialGap && psInitialGap->psChild && psInitialGap->psChild->pszValue) {
+ psStyle->initialgap = atof(psInitialGap->psChild->pszValue);
+ }
return MS_SUCCESS;
}
@@ -2059,7 +2055,7 @@ int msSLDParsePointSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer,
msSLDParseGraphicFillOrStroke(psRoot, NULL,
psLayer->class[nClassId]->styles[iStyle],
- psLayer->map, 1);
+ psLayer->map);
return MS_SUCCESS;
}
@@ -2075,9 +2071,6 @@ int msSLDParsePointSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer,
int msSLDParseExternalGraphic(CPLXMLNode *psExternalGraphic,
styleObj *psStyle, mapObj *map)
{
- /* needed for libcurl function msHTTPGetFile in maphttp.c */
-#if defined(USE_CURL)
-
char *pszFormat = NULL;
CPLXMLNode *psURL=NULL, *psFormat=NULL, *psTmp=NULL;
char *pszURL=NULL;
@@ -2089,12 +2082,13 @@ int msSLDParseExternalGraphic(CPLXMLNode *psExternalGraphic,
if (psFormat && psFormat->psChild && psFormat->psChild->pszValue)
pszFormat = psFormat->psChild->pszValue;
- /* supports GIF and PNG */
+ /* supports GIF and PNG and SVG */
if (pszFormat &&
(strcasecmp(pszFormat, "GIF") == 0 ||
strcasecmp(pszFormat, "image/gif") == 0 ||
strcasecmp(pszFormat, "PNG") == 0 ||
- strcasecmp(pszFormat, "image/png") == 0)) {
+ strcasecmp(pszFormat, "image/png") == 0 ||
+ strcasecmp(pszFormat, "image/svg+xml") == 0)) {
/* <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.vendor.com/geosym/2267.svg"/> */
psURL = CPLGetXMLNode(psExternalGraphic, "OnlineResource");
@@ -2108,6 +2102,14 @@ int msSLDParseExternalGraphic(CPLXMLNode *psExternalGraphic,
if (psTmp && psTmp->psChild) {
pszURL = (char*)psTmp->psChild->pszValue;
+ /* validate the ExternalGraphic parameter */
+ if(msValidateParameter(pszURL, msLookupHashTable(&(map->web.validation), "sld_external_graphic"),
+ NULL, NULL, NULL) != MS_SUCCESS) {
+ msSetError(MS_WEBERR, "SLD ExternalGraphic OnlineResource value fails to validate against sld_external_graphic VALIDATION", "mapserv()");
+ return MS_FAILURE;
+ }
+
+
/*external symbols using http will be automaticallly downloaded. The file should be
saved in a temporary directory (msAddImageSymbol) #2305*/
psStyle->symbol = msGetSymbolIndex(&map->symbolset,
@@ -2129,9 +2131,6 @@ int msSLDParseExternalGraphic(CPLXMLNode *psExternalGraphic,
}
return MS_SUCCESS;
-#else
- return MS_FAILURE;
-#endif
}
@@ -2370,14 +2369,6 @@ int msSLDParseRasterSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer)
if (!psRoot || !psLayer)
return MS_FAILURE;
- /* ==================================================================== */
- /* The default opacity value is 0 : we set it here to -1 */
- /* so that when testing the values in msSLDApplySLD (to be */
- /* applied on the layer), we can assume that a value of 0 comes */
- /* from the sld. */
- /* ==================================================================== */
- psLayer->opacity = -1;
-
psOpacity = CPLGetXMLNode(psRoot, "Opacity");
if (psOpacity) {
if (psOpacity->psChild && psOpacity->psChild->pszValue)
@@ -2385,7 +2376,7 @@ int msSLDParseRasterSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer)
/* values in sld goes from 0.0 (for transparent) to 1.0 (for full opacity); */
if (dfOpacity >=0.0 && dfOpacity <=1.0)
- psLayer->opacity = (int)(dfOpacity * 100);
+ msSetLayerOpacity(psLayer,(int)(dfOpacity * 100));
else {
msSetError(MS_WMSERR, "Invalid opacity value. Values should be between 0.0 and 1.0", "msSLDParseRasterSymbolizer()");
return MS_FAILURE;
@@ -2556,7 +2547,7 @@ int msSLDParseRasterSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer)
psNode = psNode->psNext;
}
- if (nValues == nThresholds+1) {
+ if (nThresholds > 0 && nValues == nThresholds+1) {
/*free existing classes*/
for(i=0; i<psLayer->numclasses; i++) {
if (psLayer->class[i] != NULL) {
@@ -2760,6 +2751,22 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer,
psCssParam = psCssParam->psNext;
}
}
+
+ /* -------------------------------------------------------------------- */
+ /* parse the label placement. */
+ /* -------------------------------------------------------------------- */
+ psLabelPlacement = CPLGetXMLNode(psRoot, "LabelPlacement");
+ if (psLabelPlacement) {
+ psPointPlacement = CPLGetXMLNode(psLabelPlacement,
+ "PointPlacement");
+ psLinePlacement = CPLGetXMLNode(psLabelPlacement,
+ "LinePlacement");
+ if (psPointPlacement)
+ ParseTextPointPlacement(psPointPlacement, psClass);
+ if (psLinePlacement)
+ ParseTextLinePlacement(psLinePlacement, psClass);
+ }
+
/* -------------------------------------------------------------------- */
/* build the font name using the font font-family, font-style */
/* and font-weight. The name building uses a - between these */
@@ -2781,28 +2788,9 @@ int msSLDParseTextParams(CPLXMLNode *psRoot, layerObj *psLayer,
if ((msLookupHashTable(&(psLayer->map->fontset.fonts), szFontName) !=NULL)) {
bFontSet = 1;
psLabelObj->font = msStrdup(szFontName);
- psLabelObj->type = MS_TRUETYPE;
- psLabelObj->size = dfFontSize;
}
}
- if (!bFontSet) {
- psLabelObj->type = MS_BITMAP;
- psLabelObj->size = MS_MEDIUM;
- }
- /* -------------------------------------------------------------------- */
- /* parse the label placement. */
- /* -------------------------------------------------------------------- */
- psLabelPlacement = CPLGetXMLNode(psRoot, "LabelPlacement");
- if (psLabelPlacement) {
- psPointPlacement = CPLGetXMLNode(psLabelPlacement,
- "PointPlacement");
- psLinePlacement = CPLGetXMLNode(psLabelPlacement,
- "LinePlacement");
- if (psPointPlacement)
- ParseTextPointPlacement(psPointPlacement, psClass);
- if (psLinePlacement)
- ParseTextLinePlacement(psLinePlacement, psClass);
- }
+ psLabelObj->size = dfFontSize;
/* -------------------------------------------------------------------- */
/* parse the halo parameter. */
@@ -3536,6 +3524,15 @@ char *msSLDGenerateLineSLD(styleObj *psStyle, layerObj *psLayer, int nVersion)
pszSLD = msStringConcatenate(pszSLD, pszGraphicSLD);
+ if(nVersion >= OWS_1_1_0) {
+ if(psStyle->gap > 0) {
+ snprintf(szTmp, sizeof(szTmp), "<%sGap>%.2f</%sGap>\n", sNameSpace,psStyle->gap,sNameSpace);
+ }
+ if(psStyle->initialgap > 0) {
+ snprintf(szTmp, sizeof(szTmp), "<%sInitialGap>%.2f</%sInitialGap>\n", sNameSpace,psStyle->initialgap,sNameSpace);
+ }
+ }
+
snprintf(szTmp, sizeof(szTmp), "</%sGraphicStroke>\n", sNameSpace);
pszSLD = msStringConcatenate(pszSLD, szTmp);
@@ -3604,6 +3601,7 @@ char *msSLDGenerateLineSLD(styleObj *psStyle, layerObj *psLayer, int nVersion)
"<%s name=\"stroke-dasharray\">%s</%s>\n",
sCssParam, pszDashArray, sCssParam);
pszSLD = msStringConcatenate(pszSLD, szTmp);
+ msFree(pszDashArray);
}
snprintf(szTmp, sizeof(szTmp), "</%sStroke>\n", sNameSpace);
@@ -3835,7 +3833,7 @@ char *msSLDGenerateTextSLD(classObj *psClass, layerObj *psLayer, int nVersion)
snprintf(szTmp, sizeof(szTmp), "<%sTextSymbolizer>\n", sNameSpace);
pszSLD = msStringConcatenate(pszSLD, szTmp);
- snprintf(szTmp, sizeof(szTmp), "<%sLabel>%s</%sLabel>\n", sNameSpace,
+ snprintf(szTmp, sizeof(szTmp), "<%sLabel><ogc:PropertyName>%s</ogc:PropertyName></%sLabel>\n", sNameSpace,
psLayer->labelitem, sNameSpace);
pszSLD = msStringConcatenate(pszSLD, szTmp);
@@ -3846,7 +3844,7 @@ char *msSLDGenerateTextSLD(classObj *psClass, layerObj *psLayer, int nVersion)
/* font-weight (bold, normal). These 3 elements are separated */
/* with -. */
/* -------------------------------------------------------------------- */
- if (psLabelObj->type == MS_TRUETYPE && psLabelObj->font) {
+ if (psLabelObj->font) {
aszFontsParts = msStringSplit(psLabelObj->font, '-', &nFontParts);
if (nFontParts > 0) {
snprintf(szTmp, sizeof(szTmp), "<%sFont>\n", sNameSpace);
@@ -3875,15 +3873,14 @@ char *msSLDGenerateTextSLD(classObj *psClass, layerObj *psLayer, int nVersion)
/* size */
if (psLabelObj->size > 0) {
snprintf(szTmp, sizeof(szTmp),
- "<%s name=\"font-size\">%.2f</%s>\n",
+ "<%s name=\"font-size\">%d</%s>\n",
sCssParam, psLabelObj->size, sCssParam);
pszSLD = msStringConcatenate(pszSLD, szTmp);
}
snprintf(szTmp, sizeof(szTmp), "</%sFont>\n", sNameSpace);
pszSLD = msStringConcatenate(pszSLD, szTmp);
-
- msFreeCharArray(aszFontsParts, nFontParts);
}
+ msFreeCharArray(aszFontsParts, nFontParts);
}
@@ -4037,8 +4034,7 @@ char *msSLDGenerateSLDLayer(layerObj *psLayer, int nVersion)
(psLayer->status == MS_ON || psLayer->status == MS_DEFAULT) &&
(psLayer->type == MS_LAYER_POINT ||
psLayer->type == MS_LAYER_LINE ||
- psLayer->type == MS_LAYER_POLYGON ||
- psLayer->type == MS_LAYER_ANNOTATION)) {
+ psLayer->type == MS_LAYER_POLYGON )) {
snprintf(szTmp, sizeof(szTmp), "%s\n", "<NamedLayer>");
pszFinalSLD = msStringConcatenate(pszFinalSLD, szTmp);
@@ -4200,16 +4196,6 @@ char *msSLDGenerateSLDLayer(layerObj *psLayer, int nVersion)
}
}
- } else if (psLayer->type == MS_LAYER_ANNOTATION) {
- for (j=0; j<psLayer->class[i]->numstyles; j++) {
- psStyle = psLayer->class[i]->styles[j];
- pszSLD = msSLDGeneratePointSLD(psStyle, psLayer, nVersion);
- if (pszSLD) {
- pszFinalSLD = msStringConcatenate(pszFinalSLD, pszSLD);
- free(pszSLD);
- }
- }
-
}
/* label if it exists */
pszSLD = msSLDGenerateTextSLD(psLayer->class[i], psLayer, nVersion);
@@ -4410,8 +4396,10 @@ char *msSLDGetLeftExpressionOfOperator(char *pszExpression)
}
pszReturn[iReturn] = '\0';
}
- } else
+ } else {
+ msFree(pszReturn);
return NULL;
+ }
return pszReturn;
}
@@ -4551,7 +4539,6 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
if (nTokens > 1) {
pszAttributeName = msStrdup(aszValues[0]);
pszAttributeValue = msStrdup(aszValues[1]);
- msFreeCharArray(aszValues, nTokens);
} else {
nLength = strlen(pszExpression);
pszAttributeName = (char *)malloc(sizeof(char)*(nLength+1));
@@ -4572,9 +4559,8 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
}
pszAttributeName[iValue] = '\0';
}
-
-
}
+ msFreeCharArray(aszValues, nTokens);
} else if (bOneCharCompare == 0) {
nLength = strlen(pszExpression);
pszAttributeName = (char *)malloc(sizeof(char)*(nLength+1));
@@ -4608,8 +4594,10 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
/* inside [] */
/* -------------------------------------------------------------------- */
if (bReturnName) {
- if (!pszAttributeName)
+ if (!pszAttributeName) {
+ msFree(pszAttributeValue);
return NULL;
+ }
nLength = strlen(pszAttributeName);
pszFinalAttributeName = (char *)malloc(sizeof(char)*(nLength+1));
@@ -4631,13 +4619,18 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
pszFinalAttributeName[iAtt] = '\0';
}
+ msFree(pszAttributeName);
+ msFree(pszAttributeValue);
return pszFinalAttributeName;
} else {
- if (!pszAttributeValue)
+ if (!pszAttributeValue) {
+ msFree(pszAttributeName);
return NULL;
+ }
nLength = strlen(pszAttributeValue);
pszFinalAttributeValue = (char *)malloc(sizeof(char)*(nLength+1));
+ pszFinalAttributeValue[0] = '\0';
bStartCopy= 0;
iAtt = 0;
for (i=0; i<nLength; i++) {
@@ -4668,8 +4661,7 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
}
/*trim for regular expressions*/
- if (pszFinalAttributeValue && strlen(pszFinalAttributeValue) > 2 &&
- strcasecmp(pszComparionValue, "PropertyIsLike") == 0) {
+ if (strlen(pszFinalAttributeValue) > 2 && strcasecmp(pszComparionValue, "PropertyIsLike") == 0) {
int len = strlen(pszFinalAttributeValue);
msStringTrimBlanks(pszFinalAttributeValue);
if (pszFinalAttributeValue[0] == '/' &&
@@ -4688,6 +4680,8 @@ char *msSLDGetAttributeNameOrValue(char *pszExpression,
pszFinalAttributeValue = msReplaceSubstring(pszFinalAttributeValue, ".*", "*");
}
}
+ msFree(pszAttributeName);
+ msFree(pszAttributeValue);
return pszFinalAttributeValue;
}
}
@@ -4853,8 +4847,10 @@ FilterEncodingNode *BuildExpressionTree(char *pszExpression,
}
return psNode;
- } else
+ } else {
+ msFree(pszFinalExpression);
return NULL;
+ }
}
char *msSLDBuildFilterEncoding(FilterEncodingNode *psNode)
@@ -5014,10 +5010,12 @@ char *msSLDParseExpression(char *pszExpression)
if (strlen(szFinalAtt) > 0 && strlen(szFinalValue) >0) {
snprintf(szBuffer, sizeof(szBuffer), "<ogc:Filter><ogc:PropertyIsEqualTo><ogc:PropertyName>%s</ogc:PropertyName><ogc:Literal>%s</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>",
szFinalAtt, szFinalValue);
+ msFree(pszFilter); /*FIXME: we are possibly discarding a previously set pszFilter */
pszFilter = msStrdup(szBuffer);
}
}
}
+ msFreeCharArray(aszElements, nElements);
return pszFilter;
}
@@ -5082,8 +5080,6 @@ char *msSLDConvertRegexExpToOgcIsLike(char *pszRegex)
return msStrdup(szBuffer);
}
-
-
/************************************************************************/
/* msSLDGetFilter */
/* */
@@ -5110,8 +5106,7 @@ char *msSLDGetFilter(classObj *psClass, const char *pszWfsFilter)
pszFilter = msStrdup(szBuffer);
}
} else if (psClass->expression.type == MS_EXPRESSION) {
- pszFilter = msSLDParseLogicalExpression(psClass->expression.string,
- pszWfsFilter);
+ pszFilter = msSLDParseLogicalExpression(psClass->expression.string, pszWfsFilter);
} else if (psClass->expression.type == MS_REGEX) {
if (psClass->layer && psClass->layer->classitem && psClass->expression.string) {
pszOgcFilter = msSLDConvertRegexExpToOgcIsLike(psClass->expression.string);
diff --git a/mapogcsld.h b/mapogcsld.h
index a6a5f4b..f70f813 100644
--- a/mapogcsld.h
+++ b/mapogcsld.h
@@ -63,7 +63,7 @@ int msSLDParseRasterSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer);
int msSLDParseGraphicFillOrStroke(CPLXMLNode *psGraphicFill,
char *pszDashValue,
- styleObj *psStyle, mapObj *map, int bPointLayer);
+ styleObj *psStyle, mapObj *map);
int msSLDParseExternalGraphic(CPLXMLNode *psExternalGraphic, styleObj *psStyle,
mapObj *map);
diff --git a/mapogcsos.c b/mapogcsos.c
index 43a321a..df09261 100644
--- a/mapogcsos.c
+++ b/mapogcsos.c
@@ -31,9 +31,6 @@
#include "mapserver.h"
-
-
-
#if defined(USE_SOS_SVR) && defined(USE_LIBXML2)
#include "maperror.h"
@@ -80,9 +77,7 @@ static int msSOSException(mapObj *map, char *locator, char *exceptionCode)
{
int size = 0;
char *errorString = NULL;
- char *errorMessage = NULL;
char *schemasLocation = NULL;
- const char *encoding;
xmlDocPtr psDoc = NULL;
xmlNodePtr psRootNode = NULL;
@@ -91,32 +86,26 @@ static int msSOSException(mapObj *map, char *locator, char *exceptionCode)
psNsOws = xmlNewNs(NULL, BAD_CAST "http://www.opengis.net/ows/1.1", BAD_CAST "ows");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "SO", "encoding");
errorString = msGetErrorString("\n");
- errorMessage = msEncodeHTMLEntities(errorString);
schemasLocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
psDoc = xmlNewDoc(BAD_CAST "1.0");
- psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_1_0, schemasLocation, pszSOSVersion, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorMessage);
+ psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_1_0, schemasLocation, pszSOSVersion, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorString);
xmlDocSetRootElement(psDoc, psRootNode);
xmlNewNs(psRootNode, BAD_CAST "http://www.opengis.net/ows/1.1", BAD_CAST "ows");
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
msIO_printf("%s", buffer);
/*free buffer and the document */
free(errorString);
- free(errorMessage);
free(schemasLocation);
xmlFree(buffer);
xmlFreeDoc(psDoc);
@@ -426,12 +415,14 @@ void msSOSAddGeometryNode(xmlNsPtr psNsGml, xmlNsPtr psNsMs, xmlNodePtr psParen
pszTmp = NULL;
for(j=0; j<psShape->line[i].numpoints; j++) {
- pszTmp = msStringConcatenate(pszTmp,
- msDoubleToString(psShape->line[i].point[j].x, MS_TRUE));
+ char *doubleTmp = msDoubleToString(psShape->line[i].point[j].x, MS_TRUE);
+ pszTmp = msStringConcatenate(pszTmp, doubleTmp);
pszTmp = msStringConcatenate(pszTmp, ",");
- pszTmp = msStringConcatenate(pszTmp,
- msDoubleToString(psShape->line[i].point[j].y, MS_TRUE));
- pszTmp = msStringConcatenate(pszTmp, " ");
+ free(doubleTmp);
+ doubleTmp = msDoubleToString(psShape->line[i].point[j].y, MS_TRUE);
+ pszTmp = msStringConcatenate(pszTmp, doubleTmp);
+ pszTmp = msStringConcatenate(pszTmp, ",");
+ free(doubleTmp);
}
psNode = xmlNewChild(psNode, NULL, BAD_CAST "coordinates", BAD_CAST pszTmp);
xmlSetNs(psNode,xmlNewNs(psNode, BAD_CAST "http://www.opengis.net/gml", BAD_CAST "gml"));
@@ -486,15 +477,15 @@ void msSOSAddGeometryNode(xmlNsPtr psNsGml, xmlNsPtr psNsMs, xmlNodePtr psParen
pszTmp = NULL;
for(j=0; j<psShape->line[i].numpoints; j++) {
-
- pszTmp =
- msStringConcatenate(pszTmp,
- msDoubleToString(psShape->line[i].point[j].x, MS_TRUE));
+ char *doubleTmp;
+ doubleTmp = msDoubleToString(psShape->line[i].point[j].x, MS_TRUE);
+ pszTmp = msStringConcatenate(pszTmp, doubleTmp);
pszTmp = msStringConcatenate(pszTmp, ",");
- pszTmp =
- msStringConcatenate(pszTmp,
- msDoubleToString(psShape->line[i].point[j].y, MS_TRUE));
+ free(doubleTmp);
+ doubleTmp = msDoubleToString(psShape->line[i].point[j].y, MS_TRUE);
+ pszTmp = msStringConcatenate(pszTmp, doubleTmp);
pszTmp = msStringConcatenate(pszTmp, " ");
+ free(doubleTmp);
}
psNode = xmlNewChild(psNode, NULL, BAD_CAST "coordinates", BAD_CAST pszTmp);
xmlSetNs(psNode,xmlNewNs(psNode,
@@ -851,9 +842,8 @@ void msSOSAddMemberNode(xmlNsPtr psNsGml, xmlNsPtr psNsOm, xmlNsPtr psNsSwe, xml
if (lp->index != lpfirst->index)
msLayerClose(lpfirst);
}
+ msFreeShape(&sShape);
}
-
- msFreeShape(&sShape);
}
/************************************************************************/
@@ -1109,7 +1099,6 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
char *xsi_schemaLocation = NULL;
char *script_url=NULL;
const char *updatesequence=NULL;
- const char *encoding;
int i,j,k;
layerObj *lp = NULL, *lpTmp = NULL;
@@ -1185,7 +1174,6 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
/* updateSequence */
updatesequence = msOWSLookupMetadata(&(map->web.metadata), "SO", "updatesequence");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "SO", "encoding");
if (sosparams->pszUpdateSequence != NULL) {
i = msOWSNegotiateUpdateSequence(sosparams->pszUpdateSequence, updatesequence);
@@ -1247,10 +1235,10 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
xmlAddChild(psRootNode, xmlNewComment(BAD_CAST msGetVersion()));
/*service identification*/
- xmlAddChild(psRootNode, msOWSCommonServiceIdentification(psNsOws, map, "SOS", pszSOSVersion, "SO"));
+ xmlAddChild(psRootNode, msOWSCommonServiceIdentification(psNsOws, map, "SOS", pszSOSVersion, "SO", NULL));
/*service provider*/
- xmlAddChild(psRootNode, msOWSCommonServiceProvider(psNsOws, psNsXLink, map, "SO"));
+ xmlAddChild(psRootNode, msOWSCommonServiceProvider(psNsOws, psNsXLink, map, "SO", NULL));
/*operation metadata */
@@ -1605,10 +1593,7 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
if ( msIO_needBinaryStdout() == MS_FAILURE )
return MS_FAILURE;
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
/*TODO* : check the encoding validity. Internally libxml2 uses UTF-8
@@ -1624,7 +1609,7 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
msIO_contextWrite(context, buffer, size);
xmlFree(buffer);
@@ -1718,7 +1703,6 @@ int msSOSGetObservation(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *req
xmlNodePtr psObservationNode = NULL, psResultNode=NULL;
const char *pszProcedure = NULL;
const char *pszBlockSep=NULL;
- const char *encoding;
char *pszResult=NULL;
int nDiffrentProc = 0;
SOSProcedureNode *paDiffrentProc = NULL;
@@ -1731,7 +1715,6 @@ int msSOSGetObservation(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *req
/* establish local namespace */
pszTmp = msOWSLookupMetadata(&(map->web.metadata), "SFO", "namespace_uri");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "SO", "encoding");
if(pszTmp) user_namespace_uri = pszTmp;
@@ -1933,13 +1916,13 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()",
pszBuffer = NULL;
if (&lp->filter) {
if (lp->filter.string && strlen(lp->filter.string) > 0)
- freeExpression(&lp->filter);
+ msFreeExpression(&lp->filter);
}
/*The filter should reflect the underlying db*/
/*for ogr add a where clause */
bSpatialDB = 0;
- if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL || lp->connectiontype == MS_SDE || lp->connectiontype == MS_OGR)
+ if (lp->connectiontype == MS_POSTGIS || lp->connectiontype == MS_ORACLESPATIAL || lp->connectiontype == MS_OGR)
bSpatialDB = 1;
@@ -1980,7 +1963,7 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()",
if (!bSpatialDB || lp->connectiontype != MS_OGR)
pszBuffer = msStringConcatenate(pszBuffer, ")");
- loadExpressionString(&lp->filter, pszBuffer);
+ msLoadExpressionString(&lp->filter, pszBuffer);
if (pszBuffer)
msFree(pszBuffer);
}
@@ -2185,7 +2168,7 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()",
lp = GET_LAYER(map, i);
if (lp->status == MS_ON) {
/* preparse parser so that alias for fields can be used */
- FLTPreParseFilterForAlias(psFilterNode, map, i, "S");
+ FLTPreParseFilterForAliasAndGroup(psFilterNode, map, i, "S");
/* validate that the property names used are valid
(there is a corresponding layer attribute) */
if (msLayerOpen(lp) == MS_SUCCESS && msLayerGetItems(lp) == MS_SUCCESS) {
@@ -2458,14 +2441,11 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()",
}
/* output results */
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
msIO_contextWrite(context, buffer, size);
free(schemalocation);
free(xsi_schemaLocation);
@@ -2711,8 +2691,11 @@ int msSOSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request)
int returnvalue = MS_DONE;
sosParamsObj *paramsObj = (sosParamsObj *)calloc(1, sizeof(sosParamsObj));
- if (msSOSParseRequest(map, req, paramsObj) == MS_FAILURE)
+ if (msSOSParseRequest(map, req, paramsObj) == MS_FAILURE) {
+ msSOSFreeParamsObj(paramsObj);
+ free(paramsObj);
return MS_FAILURE;
+ }
/* SERVICE must be specified and be SOS */
if (paramsObj->pszService && strcasecmp(paramsObj->pszService, "SOS") == 0) { /* this is an SOS request */
@@ -2782,8 +2765,11 @@ int msSOSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request)
paramsObj = NULL;
return msSOSException(map, "request", "InvalidParameterValue");
}
- } else
+ } else {
+ msSOSFreeParamsObj(paramsObj);
+ free(paramsObj);
return MS_DONE; /* Not an SOS request */
+ }
#else
msSetError(MS_SOSERR, "SOS support is not available.", "msSOSDispatch()");
return(MS_FAILURE);
@@ -3014,7 +3000,7 @@ int msSOSParseRequest(mapObj *map, cgiRequestObj *request, sosParamsObj *sospara
psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"/sos:GetObservation/sos:result/child::*");
if (psXPathTmp) {
- sosparams->pszResult = msStrdup(msLibXml2GetXPathTree(doc, psXPathTmp));
+ sosparams->pszResult = msLibXml2GetXPathTree(doc, psXPathTmp);
pszTmp = msStringConcatenate(pszTmp, "<ogc:Filter>");
pszTmp = msStringConcatenate(pszTmp, sosparams->pszResult);
pszTmp = msStringConcatenate(pszTmp, "</ogc:Filter>");
diff --git a/mapogr.cpp b/mapogr.cpp
index 7f51961..1f21b29 100644
--- a/mapogr.cpp
+++ b/mapogr.cpp
@@ -40,8 +40,6 @@
# include "ogr_srs_api.h"
#endif
-
-
#define ACQUIRE_OGR_LOCK msAcquireLock( TLOCK_OGR )
#define RELEASE_OGR_LOCK msReleaseLock( TLOCK_OGR )
@@ -51,6 +49,7 @@
typedef struct ms_ogr_file_info_t {
char *pszFname;
+ char *pszLayerDef;
int nLayerIndex;
OGRDataSourceH hDS;
OGRLayerH hLayer;
@@ -83,6 +82,9 @@ static void msOGRCloseConnection( void *conn_handle );
* does not include this new point.
**********************************************************************/
static void ogrPointsAddPoint(lineObj *line, double dX, double dY,
+#ifdef USE_POINT_Z_M
+ double dZ,
+#endif
int lineindex, rectObj *bounds)
{
/* Keep track of shape bounds */
@@ -99,7 +101,7 @@ static void ogrPointsAddPoint(lineObj *line, double dX, double dY,
line->point[line->numpoints].x = dX;
line->point[line->numpoints].y = dY;
#ifdef USE_POINT_Z_M
- line->point[line->numpoints].z = 0.0;
+ line->point[line->numpoints].z = dZ;
line->point[line->numpoints].m = 0.0;
#endif
line->numpoints++;
@@ -207,16 +209,25 @@ static int ogrGeomPoints(OGRGeometryH hGeom, shapeObj *outshp)
* ------------------------------------------------------------------ */
if( eGType == wkbPoint ) {
ogrPointsAddPoint(line, OGR_G_GetX(hGeom, 0), OGR_G_GetY(hGeom, 0),
+#ifdef USE_POINT_Z_M
+ OGR_G_GetZ(hGeom, 0),
+#endif
outshp->numlines-1, &(outshp->bounds));
} else if( eGType == wkbLineString
|| eGType == wkbLinearRing ) {
for(i=0; i<numpoints; i++)
ogrPointsAddPoint(line, OGR_G_GetX(hGeom, i), OGR_G_GetY(hGeom, i),
+#ifdef USE_POINT_Z_M
+ OGR_G_GetZ(hGeom, i),
+#endif
outshp->numlines-1, &(outshp->bounds));
} else if( eGType == wkbMultiPoint ) {
for(i=0; i<numpoints; i++) {
OGRGeometryH hPoint = OGR_G_GetGeometryRef( hGeom, i );
ogrPointsAddPoint(line, OGR_G_GetX(hPoint, 0), OGR_G_GetY(hPoint, 0),
+#ifdef USE_POINT_Z_M
+ OGR_G_GetZ(hPoint, 0),
+#endif
outshp->numlines-1, &(outshp->bounds));
}
}
@@ -291,8 +302,12 @@ static int ogrGeomLine(OGRGeometryH hGeom, shapeObj *outshp,
OGR_G_GetPoints(hGeom,
&(line.point[0].x), sizeof(pointObj),
&(line.point[0].y), sizeof(pointObj),
+#ifdef USE_POINT_Z_M
+ &(line.point[0].z), sizeof(pointObj));
+#else
NULL, 0);
#endif
+#endif
for(j=0; j<numpoints; j++) {
#if GDAL_VERSION_NUM < 1900
@@ -322,6 +337,9 @@ static int ogrGeomLine(OGRGeometryH hGeom, shapeObj *outshp,
line.point[line.numpoints-1].y != line.point[0].y ) ) {
line.point[line.numpoints].x = line.point[0].x;
line.point[line.numpoints].y = line.point[0].y;
+#ifdef USE_POINT_Z_M
+ line.point[line.numpoints].z = line.point[0].z;
+#endif
line.numpoints++;
}
@@ -337,6 +355,27 @@ static int ogrGeomLine(OGRGeometryH hGeom, shapeObj *outshp,
return(0);
}
+/**********************************************************************
+ * ogrGetLinearGeometry()
+ *
+ * Fetch geometry from OGR feature. If using GDAL 2.0 or later, the geometry
+ * might be of curve type, so linearize it.
+ **********************************************************************/
+static OGRGeometryH ogrGetLinearGeometry(OGRFeatureH hFeature)
+{
+#if GDAL_VERSION_MAJOR >= 2
+ /* Convert in place and reassign to the feature */
+ OGRGeometryH hGeom = OGR_F_StealGeometry(hFeature);
+ if( hGeom != NULL )
+ {
+ hGeom = OGR_G_ForceTo(hGeom, OGR_GT_GetLinear(OGR_G_GetGeometryType(hGeom)), NULL);
+ OGR_F_SetGeometryDirectly(hFeature, hGeom);
+ }
+ return hGeom;
+#else
+ return OGR_F_GetGeometryRef( hFeature );
+#endif
+}
/**********************************************************************
* ogrConvertGeometry()
@@ -390,9 +429,8 @@ static int ogrConvertGeometry(OGRGeometryH hGeom, shapeObj *outshp,
outshp->type = MS_SHAPE_NULL; // Incompatible type for this layer
break;
/* ------------------------------------------------------------------
- * MS_ANNOTATION layer - return real feature type
+ * Chart or Query layers - return real feature type
* ------------------------------------------------------------------ */
- case MS_LAYER_ANNOTATION:
case MS_LAYER_CHART:
case MS_LAYER_QUERY:
switch( OGR_G_GetGeometryType( hGeom ) ) {
@@ -573,7 +611,8 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
}
/* Setting up the size units according to msOGRLayerGetAutoStyle*/
if (hStylePart && layer->map)
- OGR_ST_SetUnit(hStylePart, OGRSTUPixel, layer->map->cellsize*72.0*39.37);
+ OGR_ST_SetUnit(hStylePart, OGRSTUPixel,
+ layer->map->cellsize*layer->map->resolution/layer->map->defresolution*72.0*39.37);
}
}
int bDefault;
@@ -1197,14 +1236,13 @@ msOGRFileOpen(layerObj *layer, const char *connection )
return NULL;
}
- CPLFree( pszLayerDef );
-
/* ------------------------------------------------------------------
* OK... open succeded... alloc and fill msOGRFileInfo inside layer obj
* ------------------------------------------------------------------ */
msOGRFileInfo *psInfo =(msOGRFileInfo*)CPLCalloc(1,sizeof(msOGRFileInfo));
psInfo->pszFname = CPLStrdup(OGR_DS_GetName( hDS ));
+ psInfo->pszLayerDef = pszLayerDef;
psInfo->nLayerIndex = nLayerIndex;
psInfo->hDS = hDS;
psInfo->hLayer = hLayer;
@@ -1248,6 +1286,7 @@ static int msOGRFileClose(layerObj *layer, msOGRFileInfo *psInfo )
psInfo->pszFname, psInfo->nLayerIndex);
CPLFree(psInfo->pszFname);
+ CPLFree(psInfo->pszLayerDef);
ACQUIRE_OGR_LOCK;
if (psInfo->hLastFeature)
@@ -1261,7 +1300,6 @@ static int msOGRFileClose(layerObj *layer, msOGRFileInfo *psInfo )
// Make sure we aren't holding the lock when the callback may need it.
RELEASE_OGR_LOCK;
msConnPoolRelease( layer, psInfo->hDS );
- ACQUIRE_OGR_LOCK;
// Free current tile if there is one.
if( psInfo->poCurTile != NULL )
@@ -1269,11 +1307,184 @@ static int msOGRFileClose(layerObj *layer, msOGRFileInfo *psInfo )
CPLFree(psInfo);
- RELEASE_OGR_LOCK;
-
return MS_SUCCESS;
}
+/************************************************************************/
+/* msOGREscapeSQLParam */
+/************************************************************************/
+static char *msOGREscapeSQLParam(layerObj *layer, const char *pszString)
+{
+#ifdef USE_OGR
+ char* pszEscapedStr =NULL;
+ if(layer && pszString && strlen(pszString) > 0) {
+ char* pszEscapedOGRStr = CPLEscapeString(pszString, strlen(pszString),
+ CPLES_SQL );
+ pszEscapedStr = msStrdup(pszEscapedOGRStr);
+ CPLFree(pszEscapedOGRStr);
+ }
+ return pszEscapedStr;
+#else
+ /* ------------------------------------------------------------------
+ * OGR Support not included...
+ * ------------------------------------------------------------------ */
+
+ msSetError(MS_MISCERR, "OGR support is not available.",
+ "msOGREscapeSQLParam()");
+ return NULL;
+
+#endif /* USE_OGR */
+}
+
+/**********************************************************************
+ * msOGRTranslateMsExpressionToOGRSQL()
+ *
+ * Tries to translate a mapserver expression to OGR SQL, and also
+ * try to extract spatial filter
+ **********************************************************************/
+static char* msOGRTranslateMsExpressionToOGRSQL(layerObj* layer,
+ expressionObj* psFilter,
+ rectObj* psRect)
+{
+ char* msSQLExpression = NULL;
+ rectObj sBBOX;
+ int sBBOXValid = MS_FALSE;
+ tokenListNodeObjPtr node = NULL;
+ char *stresc = NULL;
+ char *snippet = NULL;
+ const char* strtmpl = NULL;
+ int bIsIntersectRectangle = MS_FALSE;
+
+ node = psFilter->tokens;
+ while (node != NULL) {
+
+ switch(node->token) {
+
+ /* literal tokens */
+
+ case MS_TOKEN_LITERAL_NUMBER:
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + 16);
+ sprintf(snippet, "%lf", node->tokenval.dblval);
+ msSQLExpression = msStringConcatenate(msSQLExpression, snippet);
+ msFree(snippet);
+ break;
+ case MS_TOKEN_LITERAL_STRING:
+ stresc = msOGREscapeSQLParam(layer, node->tokenval.strval);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, "'%s'", stresc);
+ msSQLExpression = msStringConcatenate(msSQLExpression, snippet);
+ msFree(snippet);
+ msFree(stresc);
+ break;
+
+ case MS_TOKEN_BINDING_DOUBLE:
+ case MS_TOKEN_BINDING_INTEGER:
+ case MS_TOKEN_BINDING_STRING:
+ if(node->token == MS_TOKEN_BINDING_STRING || node->next->token == MS_TOKEN_COMPARISON_RE || node->next->token == MS_TOKEN_COMPARISON_IRE)
+ strtmpl = "CAST(%s AS CHARACTER)"; /* explicit cast necessary for certain operators */
+ else
+ strtmpl = "%s";
+ stresc = msLayerEscapePropertyName(layer, node->tokenval.bindval.item);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, strtmpl, stresc);
+ msSQLExpression = msStringConcatenate(msSQLExpression, snippet);
+ msFree(snippet);
+ msFree(stresc);
+ break;
+
+ /* spatial comparison tokens */
+ case MS_TOKEN_COMPARISON_INTERSECTS:
+ {
+ shapeObj* shape;
+ if(node->next->token != '(') goto cleanup;
+ if(node->next->next->token != MS_TOKEN_BINDING_SHAPE) goto cleanup;
+ if(node->next->next->next->token != ',' ) goto cleanup;
+ if(node->next->next->next->next->token != MS_TOKEN_LITERAL_SHAPE ) goto cleanup;
+ if(node->next->next->next->next->next->token != ')' ) goto cleanup;
+ if(node->next->next->next->next->next->next->token != MS_TOKEN_COMPARISON_EQ ) goto cleanup;
+ if(node->next->next->next->next->next->next->next->token != MS_TOKEN_LITERAL_BOOLEAN ) goto cleanup;
+ if(node->next->next->next->next->next->next->next->tokenval.dblval != MS_TRUE) goto cleanup;
+
+ shape = node->next->next->next->next->tokenval.shpval;
+ memcpy(&sBBOX, &(shape->bounds), sizeof(rectObj));
+ sBBOXValid = TRUE;
+
+ if( shape->type == MS_SHAPE_POLYGON &&
+ shape->numlines == 1 &&
+ shape->line[0].numpoints == 5 )
+ {
+ if( shape->line[0].point[0].x == shape->line[0].point[1].x &&
+ shape->line[0].point[0].y == shape->line[0].point[3].y &&
+ shape->line[0].point[2].x == shape->line[0].point[3].x &&
+ shape->line[0].point[1].y == shape->line[0].point[2].y &&
+ shape->line[0].point[0].x == shape->line[0].point[4].x &&
+ shape->line[0].point[0].y == shape->line[0].point[4].y )
+ {
+ bIsIntersectRectangle = MS_TRUE;
+ }
+ }
+
+ node = node->next->next->next->next->next->next->next;
+ if( node && node->next && node->next->token == MS_TOKEN_LOGICAL_AND )
+ node = node->next;
+
+ break;
+ }
+
+ case MS_TOKEN_COMPARISON_EQ:
+ case MS_TOKEN_COMPARISON_NE:
+ case MS_TOKEN_COMPARISON_GT:
+ case MS_TOKEN_COMPARISON_GE:
+ case MS_TOKEN_COMPARISON_LT:
+ case MS_TOKEN_COMPARISON_LE:
+ case MS_TOKEN_LOGICAL_AND:
+ case MS_TOKEN_LOGICAL_NOT:
+ case MS_TOKEN_LOGICAL_OR:
+ case '(':
+ case ')':
+ if( node->token == MS_TOKEN_LOGICAL_AND && node->next &&
+ node->next->token == MS_TOKEN_COMPARISON_INTERSECTS )
+ node = node->next;
+ else
+ msSQLExpression = msStringConcatenate(msSQLExpression, msExpressionTokenToString(node->token));
+ break;
+
+ default:
+ goto cleanup;
+ break;
+ }
+
+ node = node->next;
+ }
+
+ if( !sBBOXValid || bIsIntersectRectangle )
+ {
+ /* We can translate completely the filter as a OGR expression, */
+ /* so no need for msEvalExpression() to do more work */
+
+ if (layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("msOGRTranslateMsExpressionToOGRSQL: filter can be evaluated completely on OGR side\n");
+
+ msFree( layer->filter.native_string );
+ layer->filter.native_string = msStrdup(msSQLExpression);
+ }
+
+ if( sBBOXValid )
+ {
+ psRect->minx = MS_MAX(psRect->minx, sBBOX.minx);
+ psRect->miny = MS_MAX(psRect->miny, sBBOX.miny);
+ psRect->maxx = MS_MIN(psRect->maxx, sBBOX.maxx);
+ psRect->maxy = MS_MAX(psRect->maxy, sBBOX.maxy);
+ }
+
+ return msSQLExpression;
+
+cleanup:
+ msFree(msSQLExpression);
+ return NULL;
+}
+
+
/**********************************************************************
* msOGRFileWhichShapes()
*
@@ -1282,14 +1493,106 @@ static int msOGRFileClose(layerObj *layer, msOGRFileInfo *psInfo )
* Returns MS_SUCCESS/MS_FAILURE, or MS_DONE if no shape matching the
* layer's FILTER overlaps the selected region.
**********************************************************************/
-static int msOGRFileWhichShapes(layerObj *layer, rectObj rect,
- msOGRFileInfo *psInfo )
+static int msOGRFileWhichShapes(layerObj *layer, rectObj rect, msOGRFileInfo *psInfo)
{
if (psInfo == NULL || psInfo->hLayer == NULL) {
- msSetError(MS_MISCERR, "Assertion failed: OGR layer not opened!!!",
- "msOGRFileWhichShapes()");
+ msSetError(MS_MISCERR, "Assertion failed: OGR layer not opened!!!", "msOGRFileWhichShapes()");
return(MS_FAILURE);
}
+
+ char *pszOGRFilter = NULL;
+
+ /*
+ ** Build the OGR filter from two potential sources:
+ ** 1) the NATIVE_FILTER processing option
+ ** 2) a translated MapServer layer->filter (stored in layer->native_string)
+ */
+ if(msLayerGetProcessingKey(layer, "NATIVE_FILTER") != NULL) {
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, "(");
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, msLayerGetProcessingKey(layer, "NATIVE_FILTER"));
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, ")");
+ if(layer->filter.native_string) {
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, "AND (");
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, layer->filter.native_string);
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, ")");
+ }
+ } else if(layer->filter.native_string) {
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, "(");
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, layer->filter.native_string);
+ pszOGRFilter = msStringConcatenate(pszOGRFilter, ")");
+ }
+
+ /* apply sortBy */
+ if( layer->sortBy.nProperties > 0 ) {
+ char* strOrderBy;
+ char* pszLayerDef = NULL;
+
+ strOrderBy = msLayerBuildSQLOrderBy(layer);
+
+ if( psInfo->nLayerIndex == -1 ) {
+ pszLayerDef = msStrdup(psInfo->pszLayerDef);
+ if( strcasestr(psInfo->pszLayerDef, " ORDER BY ") == NULL )
+ pszLayerDef = msStringConcatenate(pszLayerDef, " ORDER BY ");
+ else
+ pszLayerDef = msStringConcatenate(pszLayerDef, ", ");
+ } else {
+ const char* pszGeometryColumn;
+ int i;
+ pszLayerDef = msStringConcatenate(pszLayerDef, "SELECT ");
+ for(i = 0; i < layer->numitems; i++) {
+ if( i > 0 )
+ pszLayerDef = msStringConcatenate(pszLayerDef, ", ");
+ pszLayerDef = msStringConcatenate(pszLayerDef, "\"");
+ pszLayerDef = msStringConcatenate(pszLayerDef, layer->items[i]);
+ pszLayerDef = msStringConcatenate(pszLayerDef, "\"");
+ }
+
+ pszLayerDef = msStringConcatenate(pszLayerDef, ", ");
+ pszGeometryColumn = OGR_L_GetGeometryColumn(psInfo->hLayer);
+ if( pszGeometryColumn != NULL && pszGeometryColumn[0] != '\0' ) {
+ pszLayerDef = msStringConcatenate(pszLayerDef, "\"");
+ pszLayerDef = msStringConcatenate(pszLayerDef, pszGeometryColumn);
+ pszLayerDef = msStringConcatenate(pszLayerDef, "\"");
+ } else {
+ /* Add ", *" so that we still have an hope to get the geometry */
+ pszLayerDef = msStringConcatenate(pszLayerDef, "*");
+ }
+ pszLayerDef = msStringConcatenate(pszLayerDef, " FROM \"");
+ pszLayerDef = msStringConcatenate(pszLayerDef, OGR_FD_GetName(OGR_L_GetLayerDefn(psInfo->hLayer)));
+ pszLayerDef = msStringConcatenate(pszLayerDef, "\"");
+ if( pszOGRFilter != NULL ) {
+ pszLayerDef = msStringConcatenate(pszLayerDef, " WHERE ");
+ pszLayerDef = msStringConcatenate(pszLayerDef, pszOGRFilter);
+ msFree(pszOGRFilter);
+ pszOGRFilter = NULL;
+ }
+ pszLayerDef = msStringConcatenate(pszLayerDef, " ORDER BY ");
+ }
+
+ pszLayerDef = msStringConcatenate(pszLayerDef, strOrderBy);
+ msFree(strOrderBy);
+ strOrderBy = NULL;
+
+ if( layer->debug )
+ msDebug("msOGRFileWhichShapes: SQL = %s.\n", pszLayerDef);
+
+ /* If nLayerIndex == -1 then the layer is an SQL result ... free it */
+ if( psInfo->nLayerIndex == -1 )
+ OGR_DS_ReleaseResultSet( psInfo->hDS, psInfo->hLayer );
+ psInfo->nLayerIndex = -1;
+
+ ACQUIRE_OGR_LOCK;
+ psInfo->hLayer = OGR_DS_ExecuteSQL( psInfo->hDS, pszLayerDef, NULL, NULL );
+ RELEASE_OGR_LOCK;
+ if( psInfo->hLayer == NULL ) {
+ msSetError(MS_OGRERR, "ExecuteSQL(%s) failed.\n%s", "msOGRFileWhichShapes()", pszLayerDef, CPLGetLastErrorMsg());
+ msFree(pszLayerDef);
+ msFree(pszOGRFilter);
+ return MS_FAILURE;
+ }
+ msFree(pszLayerDef);
+ } /* end sort-by */
+
/* ------------------------------------------------------------------
* Set Spatial filter... this may result in no features being returned
@@ -1301,68 +1604,57 @@ static int msOGRFileWhichShapes(layerObj *layer, rectObj rect,
* ------------------------------------------------------------------ */
ACQUIRE_OGR_LOCK;
- if (rect.minx == rect.maxx && rect.miny == rect.maxy)
- {
- OGRGeometryH hSpatialFilterPoint = OGR_G_CreateGeometry( wkbPoint );
+ if (rect.minx == rect.maxx && rect.miny == rect.maxy) {
+ OGRGeometryH hSpatialFilterPoint = OGR_G_CreateGeometry( wkbPoint );
- OGR_G_SetPoint_2D( hSpatialFilterPoint, 0, rect.minx, rect.miny );
-
- OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterPoint );
-
- OGR_G_DestroyGeometry( hSpatialFilterPoint );
- }
- else if (rect.minx == rect.maxx || rect.miny == rect.maxy)
- {
- OGRGeometryH hSpatialFilterLine = OGR_G_CreateGeometry( wkbLineString );
+ OGR_G_SetPoint_2D( hSpatialFilterPoint, 0, rect.minx, rect.miny );
+ OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterPoint );
+ OGR_G_DestroyGeometry( hSpatialFilterPoint );
+ } else if (rect.minx == rect.maxx || rect.miny == rect.maxy) {
+ OGRGeometryH hSpatialFilterLine = OGR_G_CreateGeometry( wkbLineString );
- OGR_G_AddPoint_2D( hSpatialFilterLine, rect.minx, rect.miny );
- OGR_G_AddPoint_2D( hSpatialFilterLine, rect.maxx, rect.maxy );
-
- OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterLine );
-
- OGR_G_DestroyGeometry( hSpatialFilterLine );
- }
- else
- {
- OGRGeometryH hSpatialFilterPolygon = OGR_G_CreateGeometry( wkbPolygon );
- OGRGeometryH hRing = OGR_G_CreateGeometry( wkbLinearRing );
-
- OGR_G_AddPoint_2D( hRing, rect.minx, rect.miny);
- OGR_G_AddPoint_2D( hRing, rect.maxx, rect.miny);
- OGR_G_AddPoint_2D( hRing, rect.maxx, rect.maxy);
- OGR_G_AddPoint_2D( hRing, rect.minx, rect.maxy);
- OGR_G_AddPoint_2D( hRing, rect.minx, rect.miny);
-
- OGR_G_AddGeometryDirectly( hSpatialFilterPolygon, hRing );
-
- OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterPolygon );
+ OGR_G_AddPoint_2D( hSpatialFilterLine, rect.minx, rect.miny );
+ OGR_G_AddPoint_2D( hSpatialFilterLine, rect.maxx, rect.maxy );
+ OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterLine );
+ OGR_G_DestroyGeometry( hSpatialFilterLine );
+ } else {
+ OGRGeometryH hSpatialFilterPolygon = OGR_G_CreateGeometry( wkbPolygon );
+ OGRGeometryH hRing = OGR_G_CreateGeometry( wkbLinearRing );
- OGR_G_DestroyGeometry( hSpatialFilterPolygon );
+ OGR_G_AddPoint_2D( hRing, rect.minx, rect.miny);
+ OGR_G_AddPoint_2D( hRing, rect.maxx, rect.miny);
+ OGR_G_AddPoint_2D( hRing, rect.maxx, rect.maxy);
+ OGR_G_AddPoint_2D( hRing, rect.minx, rect.maxy);
+ OGR_G_AddPoint_2D( hRing, rect.minx, rect.miny);
+ OGR_G_AddGeometryDirectly( hSpatialFilterPolygon, hRing );
+ OGR_L_SetSpatialFilter( psInfo->hLayer, hSpatialFilterPolygon );
+ OGR_G_DestroyGeometry( hSpatialFilterPolygon );
}
psInfo->rect = rect;
if (layer->debug >= MS_DEBUGLEVEL_VVV)
- msDebug("msOGRFileWhichShapes: Setting spatial filter to %f %f %f %f\n",
- rect.minx, rect.miny, rect.maxx, rect.maxy );
+ msDebug("msOGRFileWhichShapes: Setting spatial filter to %f %f %f %f\n", rect.minx, rect.miny, rect.maxx, rect.maxy );
/* ------------------------------------------------------------------
* Apply an attribute filter if we have one prefixed with a WHERE
* keyword in the filter string. Otherwise, ensure the attribute
* filter is clear.
* ------------------------------------------------------------------ */
- if( layer->filter.string && EQUALN(layer->filter.string,"WHERE ",6) ) {
+
+ if( pszOGRFilter != NULL ) {
+
+ if (layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("msOGRFileWhichShapes: Setting attribute filter to %s\n", pszOGRFilter );
+
CPLErrorReset();
- if( OGR_L_SetAttributeFilter( psInfo->hLayer, layer->filter.string+6 )
- != OGRERR_NONE ) {
- msSetError(MS_OGRERR,
- "SetAttributeFilter(%s) failed on layer %s.\n%s",
- "msOGRFileWhichShapes()",
- layer->filter.string+6, layer->name?layer->name:"(null)",
- CPLGetLastErrorMsg() );
+ if( OGR_L_SetAttributeFilter( psInfo->hLayer, pszOGRFilter ) != OGRERR_NONE ) {
+ msSetError(MS_OGRERR, "SetAttributeFilter(%s) failed on layer %s.\n%s", "msOGRFileWhichShapes()", layer->filter.string+6, layer->name?layer->name:"(null)", CPLGetLastErrorMsg() );
RELEASE_OGR_LOCK;
+ msFree(pszOGRFilter);
return MS_FAILURE;
}
+ msFree(pszOGRFilter);
} else
OGR_L_SetAttributeFilter( psInfo->hLayer, NULL );
@@ -1586,29 +1878,24 @@ msOGRFileNextShape(layerObj *layer, shapeObj *shape,
}
}
- // Check the expression unless it is a WHERE clause already
- // handled by OGR.
- if( (layer->filter.string && EQUALN(layer->filter.string,"WHERE ",6))
- || msEvalExpression(layer, shape, &(layer->filter), layer->filteritemindex) == MS_TRUE ) {
- // Feature matched filter expression... process geometry
- // shape->type will be set if geom is compatible with layer type
- if (ogrConvertGeometry(OGR_F_GetGeometryRef( hFeature ), shape,
- layer->type) == MS_SUCCESS) {
- if (shape->type != MS_SHAPE_NULL)
- break; // Shape is ready to be returned!
+ // Feature matched filter expression... process geometry
+ // shape->type will be set if geom is compatible with layer type
+ if (ogrConvertGeometry(ogrGetLinearGeometry( hFeature ), shape,
+ layer->type) == MS_SUCCESS) {
+ if (shape->type != MS_SHAPE_NULL)
+ break; // Shape is ready to be returned!
- if (layer->debug >= MS_DEBUGLEVEL_VVV)
- msDebug("msOGRFileNextShape: Rejecting feature (shapeid = %ld, tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
- OGR_F_GetFID( hFeature ), psInfo->nTileId,
- OGR_F_GetGeometryRef( hFeature )==NULL ? wkbFlatten(wkbUnknown):wkbFlatten( OGR_G_GetGeometryType( OGR_F_GetGeometryRef( hFeature ) ) ),
- layer->type);
+ if (layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("msOGRFileNextShape: Rejecting feature (shapeid = %ld, tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
+ OGR_F_GetFID( hFeature ), psInfo->nTileId,
+ OGR_F_GetGeometryRef( hFeature )==NULL ? wkbFlatten(wkbUnknown):wkbFlatten( OGR_G_GetGeometryType( OGR_F_GetGeometryRef( hFeature ) ) ),
+ layer->type);
- } else {
- msFreeShape(shape);
- OGR_F_Destroy( hFeature );
- RELEASE_OGR_LOCK;
- return MS_FAILURE; // Error message already produced.
- }
+ } else {
+ msFreeShape(shape);
+ OGR_F_Destroy( hFeature );
+ RELEASE_OGR_LOCK;
+ return MS_FAILURE; // Error message already produced.
}
// Feature rejected... free shape to clear attributes values.
@@ -1674,7 +1961,7 @@ msOGRFileGetShape(layerObj *layer, shapeObj *shape, long record,
/* Support reading shape by offset within the current */
/* resultset. */
/* -------------------------------------------------------------------- */
- else if( !record_is_fid ) {
+ else {
ACQUIRE_OGR_LOCK;
if( record <= psInfo->last_record_index_read
|| psInfo->last_record_index_read == -1 ) {
@@ -1700,7 +1987,7 @@ msOGRFileGetShape(layerObj *layer, shapeObj *shape, long record,
* Handle shape geometry...
* ------------------------------------------------------------------ */
// shape->type will be set if geom is compatible with layer type
- if (ogrConvertGeometry(OGR_F_GetGeometryRef( hFeature ), shape,
+ if (ogrConvertGeometry(ogrGetLinearGeometry( hFeature ), shape,
layer->type) != MS_SUCCESS) {
RELEASE_OGR_LOCK;
return MS_FAILURE; // Error message already produced.
@@ -2333,9 +2620,7 @@ int msOGRLayerNextShape(layerObj *layer, shapeObj *shape)
if( status != MS_SUCCESS )
return status;
} while( status == MS_SUCCESS );
-
- return status;
-
+ return status; //make compiler happy. this is never reached however
#else
/* ------------------------------------------------------------------
* OGR Support not included...
@@ -2497,6 +2782,55 @@ static int msOGRGetSymbolId(symbolSetObj *symbolset, const char *pszSymbolId,
}
#endif
+#ifdef USE_OGR
+
+static int msOGRUpdateStyleParseLabel(mapObj *map, layerObj *layer, classObj *c,
+ OGRStyleToolH hLabelStyle);
+static int msOGRUpdateStyleParsePen(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hPenStyle, int bIsBrush, int* pbPriority);
+static int msOGRUpdateStyleParseBrush(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hBrushStyle, int* pbIsBrush, int* pbPriority);
+static int msOGRUpdateStyleParseSymbol(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hSymbolStyle, int* pbPriority);
+
+static int msOGRUpdateStyleCheckPenBrushOnly(OGRStyleMgrH hStyleMgr)
+{
+ int numParts = OGR_SM_GetPartCount(hStyleMgr, NULL);
+ int countPen = 0, countBrush = 0;
+ int bIsNull;
+
+ for(int i=0; i<numParts; i++) {
+ OGRSTClassId eStylePartType;
+ OGRStyleToolH hStylePart = OGR_SM_GetPart(hStyleMgr, i, NULL);
+ if (!hStylePart)
+ continue;
+
+ eStylePartType = OGR_ST_GetType(hStylePart);
+ if (eStylePartType == OGRSTCPen) {
+ countPen ++;
+ OGR_ST_GetParamNum(hStylePart, OGRSTPenPriority, &bIsNull);
+ if( !bIsNull ) {
+ OGR_ST_Destroy(hStylePart);
+ return MS_FALSE;
+ }
+ }
+ else if (eStylePartType == OGRSTCBrush) {
+ countBrush ++;
+ OGR_ST_GetParamNum(hStylePart, OGRSTBrushPriority, &bIsNull);
+ if( !bIsNull ) {
+ OGR_ST_Destroy(hStylePart);
+ return MS_FALSE;
+ }
+ }
+ else if (eStylePartType == OGRSTCSymbol) {
+ OGR_ST_Destroy(hStylePart);
+ return MS_FALSE;
+ }
+ OGR_ST_Destroy(hStylePart);
+ }
+ return (countPen == 1 && countBrush == 1);
+}
+
/**********************************************************************
* msOGRUpdateStyle()
*
@@ -2505,25 +2839,48 @@ static int msOGRGetSymbolId(symbolSetObj *symbolset, const char *pszSymbolId,
* msOGRUpdateStyleFromString
**********************************************************************/
-#ifdef USE_OGR
+typedef struct
+{
+ int nPriority; /* the explicit priority as specified by the 'l' option of PEN, BRUSH and SYMBOL tools */
+ int nApparitionIndex; /* the index of the tool as parsed from the OGR feature style string */
+} StyleSortStruct;
+
+static int msOGRUpdateStyleSortFct(const void* pA, const void* pB)
+{
+ StyleSortStruct* sssa = (StyleSortStruct*)pA;
+ StyleSortStruct* sssb = (StyleSortStruct*)pB;
+ if( sssa->nPriority < sssb->nPriority )
+ return -1;
+ else if( sssa->nPriority > sssb->nPriority )
+ return 1;
+ else if( sssa->nApparitionIndex < sssb->nApparitionIndex )
+ return -1;
+ else
+ return 1;
+}
+
static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer, classObj *c)
{
- GBool bIsNull, bIsBrush=MS_FALSE;
- int r=0,g=0,b=0,t=0;
- double dfTmp;
- int try_addimage_if_notfound = MS_FALSE;
+ GBool bIsBrush=MS_FALSE;
int numParts = OGR_SM_GetPartCount(hStyleMgr, NULL);
+ int nPriority;
+ int bIsPenBrushOnly = msOGRUpdateStyleCheckPenBrushOnly(hStyleMgr);
+ StyleSortStruct* pasSortStruct = (StyleSortStruct*) msSmallMalloc(sizeof(StyleSortStruct) * numParts);
+ int iSortStruct = 0;
+ int iBaseStyleIndex = c->numstyles;
+ int i;
/* ------------------------------------------------------------------
* Handle each part
* ------------------------------------------------------------------ */
- for(int i=0; i<numParts; i++) {
+ for(i=0; i<numParts; i++) {
OGRSTClassId eStylePartType;
OGRStyleToolH hStylePart = OGR_SM_GetPart(hStyleMgr, i, NULL);
if (!hStylePart)
continue;
eStylePartType = OGR_ST_GetType(hStylePart);
+ nPriority = INT_MIN;
// We want all size values returned in pixels.
//
@@ -2535,10 +2892,104 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
// as long as use the same assumptions everywhere)
// That gives scale = cellsize*72*39.37
- OGR_ST_SetUnit(hStylePart, OGRSTUPixel, map->cellsize*72.0*39.37);
+ OGR_ST_SetUnit(hStylePart, OGRSTUPixel,
+ map->cellsize*map->resolution/map->defresolution*72.0*39.37);
if (eStylePartType == OGRSTCLabel) {
- OGRStyleToolH hLabelStyle = hStylePart;
+ int ret = msOGRUpdateStyleParseLabel(map, layer, c, hStylePart);
+ if( ret != MS_SUCCESS ) {
+ OGR_ST_Destroy(hStylePart);
+ msFree(pasSortStruct);
+ return ret;
+ }
+ } else if (eStylePartType == OGRSTCPen) {
+ styleObj* s;
+ int nIndex;
+ if( bIsPenBrushOnly ) {
+ /* Historic behaviour when there is a PEN and BRUSH only */
+ if (bIsBrush || layer->type == MS_LAYER_POLYGON)
+ // This is a multipart symbology, so pen defn goes in the
+ // overlaysymbol params
+ nIndex = 1;
+ else
+ nIndex = 0;
+ }
+ else
+ nIndex = c->numstyles;
+
+ if (msMaybeAllocateClassStyle(c, nIndex)) {
+ OGR_ST_Destroy(hStylePart);
+ msFree(pasSortStruct);
+ return(MS_FAILURE);
+ }
+ s = c->styles[nIndex];
+
+ msOGRUpdateStyleParsePen(map, layer, s, hStylePart, bIsBrush, &nPriority);
+
+ } else if (eStylePartType == OGRSTCBrush) {
+ styleObj* s;
+ int nIndex = ( bIsPenBrushOnly ) ? 0 : c->numstyles;
+ /* We need 1 style */
+ if (msMaybeAllocateClassStyle(c, nIndex)) {
+ OGR_ST_Destroy(hStylePart);
+ msFree(pasSortStruct);
+ return(MS_FAILURE);
+ }
+ s = c->styles[nIndex];
+
+ msOGRUpdateStyleParseBrush(map, layer, s, hStylePart, &bIsBrush, &nPriority);
+
+ } else if (eStylePartType == OGRSTCSymbol) {
+ styleObj* s;
+ /* We need 1 style */
+ int nIndex = c->numstyles;
+ if (msMaybeAllocateClassStyle(c, nIndex)) {
+ OGR_ST_Destroy(hStylePart);
+ msFree(pasSortStruct);
+ return(MS_FAILURE);
+ }
+ s = c->styles[nIndex];
+
+ msOGRUpdateStyleParseSymbol(map, layer, s, hStylePart, &nPriority);
+ }
+
+ /* Memorize the explicit priority and apparition order of the parsed tool/style */
+ if( !bIsPenBrushOnly &&
+ (eStylePartType == OGRSTCPen || eStylePartType == OGRSTCBrush ||
+ eStylePartType == OGRSTCSymbol) ) {
+ pasSortStruct[iSortStruct].nPriority = nPriority;
+ pasSortStruct[iSortStruct].nApparitionIndex = iSortStruct;
+ iSortStruct++;
+ }
+
+ OGR_ST_Destroy(hStylePart);
+
+ }
+
+ if( iSortStruct > 1 && !bIsPenBrushOnly ) {
+ /* Compute style order based on their explicit priority and apparition order */
+ qsort(pasSortStruct, iSortStruct, sizeof(StyleSortStruct), msOGRUpdateStyleSortFct);
+
+ /* Now reorder styles in c->styles */
+ styleObj** ppsStyleTmp = (styleObj**)msSmallMalloc( iSortStruct * sizeof(styleObj*) );
+ memcpy( ppsStyleTmp, c->styles + iBaseStyleIndex, iSortStruct * sizeof(styleObj*) );
+ for( i = 0; i < iSortStruct; i++)
+ {
+ c->styles[iBaseStyleIndex + i] = ppsStyleTmp[pasSortStruct[i].nApparitionIndex];
+ }
+ msFree(ppsStyleTmp);
+ }
+
+ msFree(pasSortStruct);
+
+ return MS_SUCCESS;
+}
+
+static int msOGRUpdateStyleParseLabel(mapObj *map, layerObj *layer, classObj *c,
+ OGRStyleToolH hLabelStyle)
+{
+ GBool bIsNull;
+ int r=0,g=0,b=0,t=0;
// Enclose the text string inside quotes to make sure it is seen
// as a string by the parser inside loadExpression(). (bug185)
@@ -2546,7 +2997,6 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
const char *labelTextString = OGR_ST_GetParamStr(hLabelStyle,
OGRSTLabelTextString,
&bIsNull);
- msLoadExpressionString(&(c->text),(char*)labelTextString);
if (c->numlabels == 0) {
/* allocate a new label object */
@@ -2555,6 +3005,9 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
c->numlabels++;
initLabel(c->labels[0]);
}
+ msFreeExpression(&c->labels[0]->text);
+ c->labels[0]->text.type = MS_STRING;
+ c->labels[0]->text.string = msStrdup(labelTextString);
c->labels[0]->angle = OGR_ST_GetParamDbl(hLabelStyle,
OGRSTLabelAngle, &bIsNull);
@@ -2660,18 +3113,15 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
if (pszFontNameEscaped != NULL && !bIsNull && pszFontNameEscaped[0] != '\0') {
if (msLookupHashTable(&(map->fontset.fonts), (char*)pszName) != NULL) {
- c->labels[0]->type = MS_TRUETYPE;
c->labels[0]->font = msStrdup(pszName);
if (layer->debug >= MS_DEBUGLEVEL_VVV)
msDebug("** Using '%s' TTF font **\n", pszName);
} else if ( (strcmp(pszFontNameEscaped,pszName) != 0) &&
msLookupHashTable(&(map->fontset.fonts), (char*)pszFontNameEscaped) != NULL) {
- c->labels[0]->type = MS_TRUETYPE;
c->labels[0]->font = msStrdup(pszFontNameEscaped);
if (layer->debug >= MS_DEBUGLEVEL_VVV)
msDebug("** Using '%s' TTF font **\n", pszFontNameEscaped);
} else if (msLookupHashTable(&(map->fontset.fonts),"default") != NULL) {
- c->labels[0]->type = MS_TRUETYPE;
c->labels[0]->font = msStrdup("default");
if (layer->debug >= MS_DEBUGLEVEL_VVV)
msDebug("** Using 'default' TTF font **\n");
@@ -2682,26 +3132,38 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
msFree(pszFontNameEscaped);
if (!bFont) {
- c->labels[0]->type = MS_BITMAP;
c->labels[0]->size = MS_MEDIUM;
- if (layer->debug >= MS_DEBUGLEVEL_VVV)
- msDebug("** Using 'medium' BITMAP font **\n");
}
- } else if (eStylePartType == OGRSTCPen) {
- OGRStyleToolH hPenStyle = hStylePart;
- const char *pszPenName = OGR_ST_GetParamStr(hPenStyle,
- OGRSTPenId,
- &bIsNull);
- if (bIsNull) pszPenName = NULL;
+ return MS_SUCCESS;
+}
+
+static int msOGRUpdateStyleParsePen(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hPenStyle, int bIsBrush,
+ int* pbPriority)
+{
+ GBool bIsNull;
+ int r=0,g=0,b=0,t=0;
+
+ const char *pszPenName, *pszPattern, *pszCap, *pszJoin;
colorObj oPenColor;
int nPenSymbol = 0;
int nPenSize = 1;
t =-1;
+ double pattern[MS_MAXPATTERNLENGTH];
+ int patternlength = 0;
+ int linecap = MS_CJC_DEFAULT_CAPS;
+ int linejoin = MS_CJC_DEFAULT_JOINS;
+ double offsetx = 0.0;
+ double offsety = 0.0;
// Make sure pen is always initialized
MS_INIT_COLOR(oPenColor, -1, -1, -1,255);
+ pszPenName = OGR_ST_GetParamStr(hPenStyle,
+ OGRSTPenId,
+ &bIsNull);
+ if (bIsNull) pszPenName = NULL;
// Check for Pen Pattern "ogr-pen-1": the invisible pen
// If that's what we have then set pen color to -1
if (pszPenName && strstr(pszPenName, "ogr-pen-1") != NULL) {
@@ -2727,64 +3189,135 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
pszPenName, NULL, MS_FALSE);
}
}
+
if (layer->debug >= MS_DEBUGLEVEL_VVV)
msDebug("** PEN COLOR = %d %d %d **\n", oPenColor.red,oPenColor.green,oPenColor.blue);
+
+ pszPattern = OGR_ST_GetParamStr(hPenStyle, OGRSTPenPattern, &bIsNull);
+ if (bIsNull) pszPattern = NULL;
+ if( pszPattern != NULL )
+ {
+ char** papszTokens = CSLTokenizeStringComplex(pszPattern, " ", FALSE, FALSE);
+ int nTokenCount = CSLCount(papszTokens);
+ int bValidFormat = TRUE;
+ if( nTokenCount >= 2 && nTokenCount <= MS_MAXPATTERNLENGTH)
+ {
+ for(int i=0;i<nTokenCount;i++)
+ {
+ if( strlen(papszTokens[i]) > 2 &&
+ strcmp(papszTokens[i] + strlen(papszTokens[i]) - 2, "px") == 0 )
+ {
+ pattern[patternlength++] = CPLAtof(papszTokens[i]);
+ }
+ else
+ {
+ bValidFormat = FALSE;
+ patternlength = 0;
+ break;
+ }
+ }
+ }
+ else
+ bValidFormat = FALSE;
+ if( !bValidFormat && layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("Invalid/unhandled pen pattern format = %s\n", pszPattern);
+ CSLDestroy(papszTokens);
+ }
+
+ pszCap = OGR_ST_GetParamStr(hPenStyle, OGRSTPenCap, &bIsNull);
+ if (bIsNull) pszCap = NULL;
+ if( pszCap != NULL )
+ {
+ /* Note: the default in OGR Feature style is BUTT, but the MapServer */
+ /* default is ROUND. Currently use MapServer default. */
+ if( strcmp(pszCap, "b") == 0 ) /* BUTT */
+ linecap = MS_CJC_BUTT;
+ else if( strcmp(pszCap, "r") == 0 ) /* ROUND */
+ linecap = MS_CJC_ROUND;
+ else if( strcmp(pszCap, "p") == 0 ) /* PROJECTING */
+ linecap = MS_CJC_SQUARE;
+ else if( layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("Invalid/unhandled pen cap = %s\n", pszCap);
+ }
+
+ pszJoin = OGR_ST_GetParamStr(hPenStyle, OGRSTPenJoin, &bIsNull);
+ if (bIsNull) pszJoin = NULL;
+ if( pszJoin != NULL )
+ {
+ /* Note: the default in OGR Feature style is MITER, but the MapServer */
+ /* default is NONE. Currently use MapServer default. */
+ if( strcmp(pszJoin, "m") == 0 ) /* MITTER */
+ linejoin = MS_CJC_MITER;
+ else if( strcmp(pszJoin, "r") == 0 ) /* ROUND */
+ linejoin = MS_CJC_ROUND;
+ else if( strcmp(pszJoin, "b") == 0 ) /* BEVEL */
+ linejoin = MS_CJC_BEVEL;
+ else if( layer->debug >= MS_DEBUGLEVEL_VVV)
+ msDebug("Invalid/unhandled pen join = %s\n", pszJoin);
+ }
+
+ offsetx = OGR_ST_GetParamDbl(hPenStyle, OGRSTPenPerOffset, &bIsNull);
+ if( bIsNull ) offsetx = 0;
+ if( offsetx != 0.0 )
+ {
+ /* OGR feature style and MapServer conventions related to offset */
+ /* sign are the same : negative values for left of line, positive for */
+ /* right of line */
+ offsety = MS_STYLE_SINGLE_SIDED_OFFSET;
+ }
+
if (bIsBrush || layer->type == MS_LAYER_POLYGON) {
// This is a multipart symbology, so pen defn goes in the
// overlaysymbol params
- if (msMaybeAllocateClassStyle(c, 1)) {
- OGR_ST_Destroy(hStylePart);
- return(MS_FAILURE);
- }
-
- c->styles[1]->outlinecolor = oPenColor;
- c->styles[1]->size = nPenSize;
- c->styles[1]->symbol = nPenSymbol;
- c->styles[1]->width = nPenSize;
+ s->outlinecolor = oPenColor;
} else {
// Single part symbology
- if (msMaybeAllocateClassStyle(c, 0)) {
- OGR_ST_Destroy(hStylePart);
- return(MS_FAILURE);
- }
-
- if(layer->type == MS_LAYER_POLYGON)
- c->styles[0]->outlinecolor = c->styles[0]->color =
- oPenColor;
- else
- c->styles[0]->color = oPenColor;
- c->styles[0]->symbol = nPenSymbol;
- c->styles[0]->size = nPenSize;
- c->styles[0]->width = nPenSize;
+ s->color = oPenColor;
}
- } else if (eStylePartType == OGRSTCBrush) {
- OGRStyleToolH hBrushStyle = hStylePart;
+ s->symbol = nPenSymbol;
+ s->size = nPenSize;
+ s->width = nPenSize;
+ s->linecap = linecap;
+ s->linejoin = linejoin;
+ s->offsetx = offsetx;
+ s->offsety = offsety;
+ s->patternlength = patternlength;
+ if( patternlength > 0 )
+ memcpy(s->pattern, pattern, sizeof(double) * patternlength);
+
+ int nPriority = OGR_ST_GetParamNum(hPenStyle, OGRSTPenPriority, &bIsNull);
+ if( !bIsNull )
+ *pbPriority = nPriority;
+
+ return MS_SUCCESS;
+}
+
+static int msOGRUpdateStyleParseBrush(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hBrushStyle, int* pbIsBrush,
+ int* pbPriority)
+{
+ GBool bIsNull;
+ int r=0,g=0,b=0,t=0;
const char *pszBrushName = OGR_ST_GetParamStr(hBrushStyle,
OGRSTBrushId,
&bIsNull);
if (bIsNull) pszBrushName = NULL;
- /* We need 1 style */
- if (msMaybeAllocateClassStyle(c, 0)) {
- OGR_ST_Destroy(hStylePart);
- return(MS_FAILURE);
- }
-
// Check for Brush Pattern "ogr-brush-1": the invisible fill
// If that's what we have then set fill color to -1
if (pszBrushName && strstr(pszBrushName, "ogr-brush-1") != NULL) {
- MS_INIT_COLOR(c->styles[0]->color, -1, -1, -1, 255);
+ MS_INIT_COLOR(s->color, -1, -1, -1, 255);
} else {
- bIsBrush = TRUE;
+ *pbIsBrush = TRUE;
const char *pszColor = OGR_ST_GetParamStr(hBrushStyle,
OGRSTBrushFColor,
&bIsNull);
if (!bIsNull && OGR_ST_GetRGBFromString(hBrushStyle,
pszColor,
&r, &g, &b, &t)) {
- MS_INIT_COLOR(c->styles[0]->color, r, g, b, t);
+ MS_INIT_COLOR(s->color, r, g, b, t);
if (layer->debug >= MS_DEBUGLEVEL_VVV)
msDebug("** BRUSH COLOR = %d %d %d **\n", r,g,b);
@@ -2795,7 +3328,7 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
if (!bIsNull && OGR_ST_GetRGBFromString(hBrushStyle,
pszColor,
&r, &g, &b, &t)) {
- MS_INIT_COLOR(c->styles[0]->backgroundcolor, r, g, b, t);
+ MS_INIT_COLOR(s->backgroundcolor, r, g, b, t);
}
// Symbol name mapping:
@@ -2806,25 +3339,52 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
const char *pszName = OGR_ST_GetParamStr(hBrushStyle,
OGRSTBrushId,
&bIsNull);
- c->styles[0]->symbol = msOGRGetSymbolId(&(map->symbolset),
+ s->symbol = msOGRGetSymbolId(&(map->symbolset),
pszName, NULL, MS_FALSE);
- }
- } else if (eStylePartType == OGRSTCSymbol) {
- OGRStyleToolH hSymbolStyle = hStylePart;
- /* We need 1 style */
- if (msMaybeAllocateClassStyle(c, 0)) {
- OGR_ST_Destroy(hStylePart);
- return(MS_FAILURE);
+ double angle = OGR_ST_GetParamDbl(hBrushStyle, OGRSTBrushAngle, &bIsNull);
+ if( !bIsNull )
+ s->angle = angle;
+
+ double size = OGR_ST_GetParamDbl(hBrushStyle, OGRSTBrushSize, &bIsNull);
+ if( !bIsNull )
+ s->size = size;
+
+ double spacingx = OGR_ST_GetParamDbl(hBrushStyle, OGRSTBrushDx, &bIsNull);
+ if( !bIsNull )
+ {
+ double spacingy = OGR_ST_GetParamDbl(hBrushStyle, OGRSTBrushDy, &bIsNull);
+ if( !bIsNull )
+ {
+ if( spacingx == spacingy )
+ s->gap = spacingx;
+ else if( layer->debug >= MS_DEBUGLEVEL_VVV )
+ msDebug("Ignoring brush dx and dy since they don't have the same value\n");
+ }
+ }
}
+ int nPriority = OGR_ST_GetParamNum(hBrushStyle, OGRSTBrushPriority, &bIsNull);
+ if( !bIsNull )
+ *pbPriority = nPriority;
+
+ return MS_SUCCESS;
+}
+
+static int msOGRUpdateStyleParseSymbol(mapObj *map, layerObj *layer, styleObj *s,
+ OGRStyleToolH hSymbolStyle,
+ int* pbPriority)
+{
+ GBool bIsNull;
+ int r=0,g=0,b=0,t=0;
+
const char *pszColor = OGR_ST_GetParamStr(hSymbolStyle,
OGRSTSymbolColor,
&bIsNull);
if (!bIsNull && OGR_ST_GetRGBFromString(hSymbolStyle,
pszColor,
&r, &g, &b, &t)) {
- MS_INIT_COLOR(c->styles[0]->color, r, g, b, t);
+ MS_INIT_COLOR(s->color, r, g, b, t);
}
#if GDAL_VERSION_NUM >= 1600
@@ -2834,15 +3394,15 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
if (!bIsNull && OGR_ST_GetRGBFromString(hSymbolStyle,
pszColor,
&r, &g, &b, &t)) {
- MS_INIT_COLOR(c->styles[0]->outlinecolor, r, g, b, t);
+ MS_INIT_COLOR(s->outlinecolor, r, g, b, t);
}
#endif /* GDAL_VERSION_NUM >= 1600 */
- c->styles[0]->angle = OGR_ST_GetParamNum(hSymbolStyle,
+ s->angle = OGR_ST_GetParamNum(hSymbolStyle,
OGRSTSymbolAngle,
&bIsNull);
- dfTmp = OGR_ST_GetParamNum(hSymbolStyle, OGRSTSymbolSize, &bIsNull);
+ double dfTmp = OGR_ST_GetParamNum(hSymbolStyle, OGRSTSymbolSize, &bIsNull);
if (!bIsNull)
- c->styles[0]->size = dfTmp;
+ s->size = dfTmp;
// Symbol name mapping:
// First look for the native symbol name, then the ogr-...
@@ -2854,22 +3414,23 @@ static int msOGRUpdateStyle(OGRStyleMgrH hStyleMgr, mapObj *map, layerObj *layer
if (bIsNull)
pszName = NULL;
- try_addimage_if_notfound = MS_FALSE;
+ int try_addimage_if_notfound = MS_FALSE;
#ifdef USE_CURL
if (pszName && strncasecmp(pszName, "http", 4) == 0)
try_addimage_if_notfound =MS_TRUE;
#endif
- if (!c->styles[0]->symbolname)
- c->styles[0]->symbol = msOGRGetSymbolId(&(map->symbolset),
+ if (!s->symbolname)
+ s->symbol = msOGRGetSymbolId(&(map->symbolset),
pszName,
"default-marker", try_addimage_if_notfound);
- }
- OGR_ST_Destroy(hStylePart);
+ int nPriority = OGR_ST_GetParamNum(hSymbolStyle, OGRSTSymbolPriority, &bIsNull);
+ if( !bIsNull )
+ *pbPriority = nPriority;
- }
- return MS_SUCCESS;
+ return MS_SUCCESS;
}
+
#endif /* USE_OGR */
@@ -3025,33 +3586,6 @@ void msOGRCleanup( void )
/************************************************************************/
/* msOGREscapeSQLParam */
/************************************************************************/
-char *msOGREscapeSQLParam(layerObj *layer, const char *pszString)
-{
-#ifdef USE_OGR
- char* pszEscapedStr =NULL;
- if(layer && pszString && strlen(pszString) > 0) {
- char* pszEscapedOGRStr = CPLEscapeString(pszString, strlen(pszString),
- CPLES_SQL );
- pszEscapedStr = msStrdup(pszEscapedOGRStr);
- CPLFree(pszEscapedOGRStr);
- }
- return pszEscapedStr;
-#else
- /* ------------------------------------------------------------------
- * OGR Support not included...
- * ------------------------------------------------------------------ */
-
- msSetError(MS_MISCERR, "OGR support is not available.",
- "msOGREscapeSQLParam()");
- return NULL;
-
-#endif /* USE_OGR */
-}
-
-
-/************************************************************************/
-/* msOGREscapeSQLParam */
-/************************************************************************/
char *msOGREscapePropertyName(layerObj *layer, const char *pszString)
{
#ifdef USE_OGR
@@ -3078,15 +3612,23 @@ char *msOGREscapePropertyName(layerObj *layer, const char *pszString)
#endif /* USE_OGR */
}
+
+static int msOGRLayerSupportsCommonFilters(layerObj *layer)
+{
+ return MS_FALSE;
+}
+
/************************************************************************/
/* msOGRLayerInitializeVirtualTable() */
/************************************************************************/
-int
-msOGRLayerInitializeVirtualTable(layerObj *layer)
+int msOGRLayerInitializeVirtualTable(layerObj *layer)
{
assert(layer != NULL);
assert(layer->vtable != NULL);
+ /* layer->vtable->LayerTranslateFilter, use default */
+
+ layer->vtable->LayerSupportsCommonFilters = msOGRLayerSupportsCommonFilters;
layer->vtable->LayerInitItemInfo = msOGRLayerInitItemInfo;
layer->vtable->LayerFreeItemInfo = msOGRLayerFreeItemInfo;
layer->vtable->LayerOpen = msOGRLayerOpenVT;
diff --git a/mapogroutput.c b/mapogroutput.c
index a0949d9..3fac96f 100644
--- a/mapogroutput.c
+++ b/mapogroutput.c
@@ -87,6 +87,21 @@ int msInitDefaultOGROutputFormat( outputFormatObj *format )
}
/************************************************************************/
+/* msCSLConcatenate() */
+/************************************************************************/
+
+static char** msCSLConcatenate( char** papszResult, char** papszToBeAdded )
+{
+ char** papszIter = papszToBeAdded;
+ while( papszIter && *papszIter )
+ {
+ papszResult = CSLAddString(papszResult, *papszIter);
+ papszIter ++;
+ }
+ return papszResult;
+}
+
+/************************************************************************/
/* msOGRRecursiveFileList() */
/* */
/* Collect a list of all files under the named directory, */
@@ -139,7 +154,7 @@ char **msOGRRecursiveFileList( const char *path )
} else if( VSI_ISDIR( sStatBuf.st_mode ) ) {
char **subfiles = msOGRRecursiveFileList( full_filename );
- result_list = CSLMerge( result_list, subfiles );
+ result_list = msCSLConcatenate( result_list, subfiles );
CSLDestroy( subfiles );
}
@@ -227,7 +242,8 @@ static void msOGRSetPoints( OGRGeometryH hGeom, lineObj *line, int bWant2DOutput
/************************************************************************/
static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
- shapeObj *shape, gmlItemListObj *item_list )
+ shapeObj *shape, gmlItemListObj *item_list,
+ int nFirstOGRFieldIndex )
{
OGRGeometryH hGeom = NULL;
@@ -256,40 +272,70 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
"msOGRWriteShape()");
return MS_FAILURE;
}
+
+ if( shape->numlines == 1 && shape->line[0].numpoints > 1 )
+ {
+ hGeom = OGR_G_CreateGeometry( wkbMultiPoint );
+ for( j = 0; j < shape->line[0].numpoints; j++ ) {
+ OGRGeometryH hPoint = OGR_G_CreateGeometry( wkbPoint );
+ if( bWant2DOutput ) {
+ OGR_G_SetPoint_2D( hPoint, 0,
+ shape->line[0].point[j].x,
+ shape->line[0].point[j].y );
+ }
+ else {
+ OGR_G_SetPoint( hPoint, 0,
+ shape->line[0].point[j].x,
+ shape->line[0].point[j].y,
+#ifdef USE_POINT_Z_M
+ shape->line[0].point[j].z
+#else
+ 0.0
+#endif
+ );
+ }
- if( shape->numlines > 1 )
- hMP = OGR_G_CreateGeometry( wkbMultiPoint );
-
- for( j = 0; j < shape->numlines; j++ ) {
- if( shape->line[j].numpoints != 1 ) {
- msSetError(MS_MISCERR,
- "Failed on odd point geometry.",
- "msOGRWriteShape()");
- return MS_FAILURE;
+ OGR_G_AddGeometryDirectly( hGeom, hPoint );
}
+ }
+ else
+ {
+ if( shape->numlines > 1 )
+ hMP = OGR_G_CreateGeometry( wkbMultiPoint );
+
+ for( j = 0; j < shape->numlines; j++ ) {
+ if( shape->line[j].numpoints != 1 ) {
+ msSetError(MS_MISCERR,
+ "Failed on odd point geometry.",
+ "msOGRWriteShape()");
+ return MS_FAILURE;
+ }
- hGeom = OGR_G_CreateGeometry( wkbPoint );
- if( bWant2DOutput ) {
- OGR_G_SetPoint_2D( hGeom, 0,
- shape->line[j].point[0].x,
- shape->line[j].point[0].y );
- }
- else {
- OGR_G_SetPoint( hGeom, 0,
- shape->line[j].point[0].x,
- shape->line[j].point[0].y,
+ hGeom = OGR_G_CreateGeometry( wkbPoint );
+ if( bWant2DOutput ) {
+ OGR_G_SetPoint_2D( hGeom, 0,
+ shape->line[j].point[0].x,
+ shape->line[j].point[0].y );
+ }
+ else {
+ OGR_G_SetPoint( hGeom, 0,
+ shape->line[j].point[0].x,
+ shape->line[j].point[0].y,
#ifdef USE_POINT_Z_M
- shape->line[j].point[0].z
+ shape->line[j].point[0].z
#else
- 0.0
+ 0.0
#endif
- );
- }
+ );
+ }
- if( hMP != NULL ) {
- OGR_G_AddGeometryDirectly( hMP, hGeom );
- hGeom = hMP;
+ if( hMP != NULL ) {
+ OGR_G_AddGeometryDirectly( hMP, hGeom );
+ }
}
+
+ if( hMP != NULL )
+ hGeom = hMP;
}
}
@@ -435,7 +481,7 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
/* -------------------------------------------------------------------- */
/* Set attributes. */
/* -------------------------------------------------------------------- */
- out_field = 0;
+ out_field = nFirstOGRFieldIndex;
for( i = 0; i < item_list->numitems; i++ ) {
gmlItemObj *item = item_list->items + i;
@@ -478,6 +524,129 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
return MS_FAILURE;
}
+/************************************************************************/
+/* msOGRStdoutWriteFunction() */
+/************************************************************************/
+
+/* Used by /vsistdout/ */
+static size_t msOGRStdoutWriteFunction(const void* ptr, size_t size, size_t nmemb, FILE* stream)
+{
+ msIOContext *ioctx = (msIOContext*) stream;
+ return msIO_contextWrite(ioctx, ptr, size * nmemb ) / size;
+}
+
+/************************************************************************/
+/* msOGROutputGetAdditonalFiles() */
+/* */
+/* Collect additional files specified in */
+/* wfs/ows_additional_files_in_output of WEB.METADATA and LAYER.METADATA */
+/************************************************************************/
+
+/* Result to be freed with CSLDestroy() */
+static char** msOGROutputGetAdditonalFiles( mapObj *map )
+{
+ int i;
+ hashTableObj* hSetAdditionalFiles;
+ char** papszFiles = NULL;
+
+ hSetAdditionalFiles = msCreateHashTable();
+
+ for( i = -1; i < map->numlayers; i++ )
+ {
+ const char* value;
+ if( i < 0 )
+ {
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "additional_files_in_output");
+ }
+ else
+ {
+ layerObj *layer = GET_LAYER(map, i);
+ if( !layer->resultcache || layer->resultcache->numresults == 0 )
+ continue;
+ value = msOWSLookupMetadata(&(layer->metadata), "FO", "additional_files_in_output");
+ }
+
+ if( value != NULL )
+ {
+ char** papszList = CSLTokenizeString2( value, ",", CSLT_HONOURSTRINGS );
+ char** papszListIter = papszList;
+ while( papszListIter && *papszListIter )
+ {
+ const char* file = *papszListIter;
+ VSIStatBufL sStat;
+
+ if( strncmp(file, "http://", strlen("http://")) == 0 ||
+ strncmp(file, "https://", strlen("https://")) == 0 )
+ {
+ /* Remote file ? We will use /vsicurl_streaming/ to read it */
+ if( msLookupHashTable(hSetAdditionalFiles, file) == NULL )
+ {
+ msInsertHashTable(hSetAdditionalFiles, file, "YES");
+ papszFiles = CSLAddString(papszFiles, CPLSPrintf("/vsicurl_streaming/%s", file));
+ }
+ }
+ else
+ {
+ int nLen = (int)strlen(file);
+ char filename[MS_MAXPATHLEN];
+
+ if( CPLIsFilenameRelative(file) )
+ {
+ if( !map->shapepath )
+ msTryBuildPath(filename, map->mappath, file);
+ else
+ msTryBuildPath3(filename, map->mappath, map->shapepath, file);
+ }
+ else
+ strlcpy(filename, file, MS_MAXPATHLEN);
+
+ if( nLen > 2 && (
+ strcmp(file + nLen - 1, "/") == 0 ||
+ strcmp(file + nLen - 2, "/*") == 0 ) )
+ {
+ *strrchr(filename, '/') = '\0';
+ }
+ else if( nLen > 2 && (
+ strcmp(file + nLen - 1, "\\") == 0 ||
+ strcmp(file + nLen - 2, "\\*") == 0 ) )
+ {
+ *strrchr(filename, '\\') = '\0';
+ }
+
+ if( msLookupHashTable(hSetAdditionalFiles, filename) == NULL )
+ {
+ msInsertHashTable(hSetAdditionalFiles, filename, "YES");
+ if( VSIStatL( filename, &sStat ) == 0 )
+ {
+ if( VSI_ISDIR( sStat.st_mode ) )
+ {
+ char** papszDirContent = msOGRRecursiveFileList(filename);
+ papszFiles = msCSLConcatenate(papszFiles, papszDirContent);
+ CSLDestroy(papszDirContent);
+ }
+ else
+ {
+ papszFiles = CSLAddString(papszFiles, filename);
+ }
+ }
+ else
+ {
+ msDebug("File %s does not exist.\n", filename);
+ }
+ }
+ }
+
+ papszListIter ++;
+ }
+ CSLDestroy(papszList);
+ }
+ }
+
+ msFreeHashTable(hSetAdditionalFiles);
+
+ return papszFiles;
+}
+
#endif /* def USE_OGR */
/************************************************************************/
@@ -536,6 +705,20 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
/* Determine the output datasource name to use. */
/* ==================================================================== */
storage = msGetOutputFormatOption( format, "STORAGE", "filesystem" );
+ if( EQUAL(storage,"stream") && !msIO_isStdContext() ) {
+#if defined(GDAL_COMPUTE_VERSION)
+#if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,0,0)
+ msIOContext *ioctx = msIO_getHandler (stdout);
+ if( ioctx != NULL )
+ VSIStdoutSetRedirection( msOGRStdoutWriteFunction, (FILE*)ioctx );
+ else
+#endif
+#endif
+ /* bug #4858, streaming output won't work if standard output has been
+ * redirected, we switch to memory output in this case
+ */
+ storage = "memory";
+ }
/* -------------------------------------------------------------------- */
/* Where are we putting stuff? */
@@ -579,7 +762,16 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
/* -------------------------------------------------------------------- */
/* Setup the full datasource name. */
/* -------------------------------------------------------------------- */
- fo_filename = msGetOutputFormatOption( format, "FILENAME", "result.dat" );
+#if !defined(CPL_ZIP_API_OFFERED)
+ form = msGetOutputFormatOption( format, "FORM", "multipart" );
+#else
+ form = msGetOutputFormatOption( format, "FORM", "zip" );
+#endif
+
+ if( EQUAL(form,"zip") )
+ fo_filename = msGetOutputFormatOption( format, "FILENAME", "result.zip" );
+ else
+ fo_filename = msGetOutputFormatOption( format, "FILENAME", "result.dat" );
/* Validate that the filename does not contain any directory */
/* information, which might lead to removal of unwanted files. (#4086) */
@@ -593,7 +785,43 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
}
if( !EQUAL(storage,"stream") )
+ {
msBuildPath( datasource_name, request_dir, fo_filename );
+
+ if( EQUAL(form,"zip") )
+ {
+ /* if generating a zip file, remove the zip extension for the internal */
+ /* filename */
+ if( EQUAL(CPLGetExtension(datasource_name), "zip") ) {
+ *strrchr(datasource_name, '.') = '\0';
+ }
+
+ /* and add .dat extension if user didn't provide another extension */
+ if( EQUAL(CPLGetExtension(datasource_name), "") ) {
+ strcat(datasource_name, ".dat");
+ }
+ else if( EQUAL(CPLGetExtension(datasource_name), "shp") )
+ {
+ int nNonEmptyLayers = 0;
+ for( iLayer = 0; iLayer < map->numlayers; iLayer++ ) {
+ layerObj *layer = GET_LAYER(map, iLayer);
+ if( !layer->resultcache || layer->resultcache->numresults == 0 )
+ continue;
+ nNonEmptyLayers ++;
+ }
+ /* The shapefile driver will be somehow confused if trying to create */
+ /* a datasource named foo.shp when there are several layers in it */
+ /* It would create the first layer as datasource_name.shp and the next ones */
+ /* with layer_name.shp */
+ /* so remove the shp extension in that case, so that all layers are */
+ /* exported with their names */
+ if( nNonEmptyLayers > 1 )
+ {
+ *strrchr(datasource_name, '.') = '\0';
+ }
+ }
+ }
+ }
else
strcpy( datasource_name, "/vsistdout/" );
@@ -641,6 +869,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
const char *value;
char *pszWKT;
int reproject = MS_FALSE;
+ int nFirstOGRFieldIndex = -1;
if( !layer->resultcache || layer->resultcache->numresults == 0 )
continue;
@@ -792,6 +1021,11 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
msOGRCleanupDS( datasource_name );
return MS_FAILURE;
}
+
+ /* The index of the first field we create is not necessarily 0 */
+ if( nFirstOGRFieldIndex < 0 )
+ nFirstOGRFieldIndex = OGR_FD_GetFieldCount(
+ OGR_L_GetLayerDefn( hOGRLayer ) ) - 1;
}
/* -------------------------------------------------------------------- */
@@ -804,6 +1038,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
if(status != MS_SUCCESS) {
OGR_DS_Destroy( hDS );
msOGRCleanupDS( datasource_name );
+ msGMLFreeItems(item_list);
return status;
}
}
@@ -825,6 +1060,8 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
if(status != MS_SUCCESS) {
OGR_DS_Destroy( hDS );
msOGRCleanupDS( datasource_name );
+ msGMLFreeItems(item_list);
+ msFreeShape(&resultshape);
return status;
}
@@ -839,8 +1076,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
|| layer->labelitem)
&& layer->class[resultshape.classindex]->numlabels > 0
&& layer->class[resultshape.classindex]->labels[0]->size != -1 ) {
- msShapeGetAnnotation(layer, &resultshape); /* TODO RFC77: check return value */
- resultshape.text = msStrdup(layer->class[resultshape.classindex]->labels[0]->annotext);
+ resultshape.text = msShapeGetLabelAnnotation(layer,&resultshape,layer->class[resultshape.classindex]->labels[0]);
}
/*
@@ -869,11 +1105,13 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
if( status == MS_SUCCESS )
status = msOGRWriteShape( layer, hOGRLayer, &resultshape,
- item_list );
+ item_list, nFirstOGRFieldIndex );
if(status != MS_SUCCESS) {
OGR_DS_Destroy( hDS );
msOGRCleanupDS( datasource_name );
+ msGMLFreeItems(item_list);
+ msFreeShape(&resultshape);
return status;
}
}
@@ -890,18 +1128,13 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
/* -------------------------------------------------------------------- */
/* Get list of resulting files. */
/* -------------------------------------------------------------------- */
-#if !defined(CPL_ZIP_API_OFFERED)
- form = msGetOutputFormatOption( format, "FORM", "multipart" );
-#else
- form = msGetOutputFormatOption( format, "FORM", "zip" );
-#endif
if( EQUAL(form,"simple") ) {
file_list = CSLAddString( NULL, datasource_name );
} else {
char datasource_path[MS_MAXPATHLEN];
- strcpy( datasource_path, CPLGetPath( datasource_name ) );
+ strncpy( datasource_path, CPLGetPath( datasource_name ), MS_MAXPATHLEN-1 );
file_list = msOGRRecursiveFileList( datasource_path );
}
@@ -920,8 +1153,11 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
char buffer[1024];
int bytes_read;
FILE *fp;
+ const char *jsonp;
+ jsonp = msGetOutputFormatOption( format, "JSONP", NULL );
if( sendheaders ) {
+ if( !jsonp )
msIO_setHeader("Content-Disposition","attachment; filename=%s",
CPLGetFilename( file_list[0] ) );
if( format->mimetype )
@@ -940,20 +1176,29 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
return MS_FAILURE;
}
+ if( jsonp != NULL ) msIO_fprintf( stdout, "%s(", jsonp );
+
while( (bytes_read = VSIFReadL( buffer, 1, sizeof(buffer), fp )) > 0 )
msIO_fwrite( buffer, 1, bytes_read, stdout );
VSIFCloseL( fp );
+
+ if (jsonp != NULL) msIO_fprintf( stdout, ");\n" );
}
/* -------------------------------------------------------------------- */
/* Handle the case of a multi-part result. */
/* -------------------------------------------------------------------- */
else if( EQUAL(form,"multipart") ) {
+ char **papszAdditionalFiles;
static const char *boundary = "xxOGRBoundaryxx";
msIO_setHeader("Content-Type","multipart/mixed; boundary=%s",boundary);
msIO_sendHeaders();
msIO_fprintf(stdout,"--%s\r\n",boundary );
+ papszAdditionalFiles = msOGROutputGetAdditonalFiles(map);
+ file_list = msCSLConcatenate(file_list, papszAdditionalFiles);
+ CSLDestroy(papszAdditionalFiles);
+
for( i = 0; file_list != NULL && file_list[i] != NULL; i++ ) {
FILE *fp;
int bytes_read;
@@ -1003,9 +1248,14 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
void *hZip;
int bytes_read;
char buffer[1024];
+ char **papszAdditionalFiles;
hZip = CPLCreateZip( zip_filename, NULL );
+ papszAdditionalFiles = msOGROutputGetAdditonalFiles(map);
+ file_list = msCSLConcatenate(file_list, papszAdditionalFiles);
+ CSLDestroy(papszAdditionalFiles);
+
for( i = 0; file_list != NULL && file_list[i] != NULL; i++ ) {
CPLCreateFileInZip( hZip, CPLGetFilename(file_list[i]), NULL );
@@ -1031,7 +1281,12 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
CPLCloseZip( hZip );
if( sendheaders ) {
- msIO_setHeader("Content-Disposition","attachment; filename=%s",fo_filename);
+ const char* zip_filename = fo_filename;
+ /* Make sure the filename is ended by .zip */
+ if( !EQUAL(CPLGetExtension(zip_filename), "zip") &&
+ !EQUAL(CPLGetExtension(zip_filename), "kmz") )
+ zip_filename = CPLFormFilename(NULL, fo_filename, "zip");
+ msIO_setHeader("Content-Disposition","attachment; filename=%s",zip_filename);
msIO_setHeader("Content-Type","application/zip");
msIO_sendHeaders();
}
diff --git a/maporaclespatial.c b/maporaclespatial.c
index c2aaeeb..8da07ba 100644
--- a/maporaclespatial.c
+++ b/maporaclespatial.c
@@ -37,6 +37,7 @@
*****************************************************************************/
#include "mapserver.h"
+#include "maptime.h"
#include <assert.h>
@@ -108,6 +109,9 @@ typedef
item_text item_text_array_query[QUERY_SIZE];
typedef
+ub2 query_dtype[ARRAY_SIZE];
+
+typedef
struct {
/*Oracle handlers (global to connection)*/
OCIEnv *envhp;
@@ -143,6 +147,7 @@ struct {
int uniqueidindex; /*allows to keep whic attribute id index is used as unique id*/
+
} msOracleSpatialStatement;
typedef
@@ -164,6 +169,10 @@ struct {
} msOracleSpatialLayerInfo;
+static OCIType *ordinates_tdo = NULL;
+static OCIArray *ordinates;
+
+
@@ -171,7 +180,7 @@ struct {
static int TRY( msOracleSpatialHandler *hand, sword status );
static int ERROR( char *routine, msOracleSpatialHandler *hand, msOracleSpatialDataHandler *dthand );
static void msSplitLogin( char *connection, mapObj *map, char **username, char **password, char **dblink );
-static int msSplitData( char *data, char **geometry_column_name, char **table_name, char **unique, char **srid, int *function, int * version);
+static int msSplitData( char *data, char **geometry_column_name, char **table_name, char **unique, char **srid, char **indexfield, int *function, int * version);
static void msOCICloseConnection( void *layerinfo );
static msOracleSpatialHandler *msOCISetHandlers( char *username, char *password, char *dblink );
static int msOCISetDataHandlers( msOracleSpatialHandler *hand, msOracleSpatialDataHandler *dthand );
@@ -187,8 +196,8 @@ static int msOCIConvertCircle( pointObj *pt );
static void osFilteritem(layerObj *layer, int function, char *query_str, size_t size, int mode);
static void osAggrGetExtent(layerObj *layer, char *query_str, size_t size, char *geom_column_name, char *table_name);
static void osConvexHullGetExtent(layerObj *layer, char *query_str, size_t size, char *geom_column_name, char *table_name);
-static void osGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *srid, rectObj rect);
-static void osNoGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *srid, rectObj rect);
+static void osGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *index_column_name, char *srid, rectObj rect);
+static void osNoGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *index_column_name, char *srid, rectObj rect);
static double osCalculateArcRadius(pointObj *pnt);
static void osCalculateArc(pointObj *pnt, int data3d, int data4d, double area, double radius, double npoints, int side, lineObj arcline, shapeObj *shape);
static void osGenerateArc(shapeObj *shape, lineObj arcline, lineObj points, int i, int n, int data3d, int data4d);
@@ -279,8 +288,9 @@ static int ERROR( char *routine, msOracleSpatialHandler *hand, msOracleSpatialDa
{
if (hand->last_oci_status == MS_FAILURE) {
/* there was an error */
- msSetError( MS_ORACLESPATIALERR, "%s", routine, (char *)hand->last_oci_error);
-
+ msSetError( MS_ORACLESPATIALERR, "OracleSpatial server returned an error, check logs for more details", routine );
+ msDebug("OracleSpatial server returned an error in funtion (%s): %s.\n", routine, (char*)hand->last_oci_error );
+
/* reset error flag */
hand->last_oci_status = MS_SUCCESS;
@@ -333,12 +343,13 @@ static void msSplitLogin( char *connection, mapObj *map, char **username, char *
}
/* break layer->data into geometry_column_name, table_name and srid */
-static int msSplitData( char *data, char **geometry_column_name, char **table_name, char **unique, char **srid, int *function, int *version )
+static int msSplitData( char *data, char **geometry_column_name, char **table_name, char **unique, char **srid, char **indexfield, int *function, int *version )
{
char *tok_from = "from";
char *tok_using = "using";
char *tok_unique = "unique";
char *tok_srid = "srid";
+ char *tok_indexfield="indexfield";
char *tok_version = "version";
char data_version[4] = "";
char tok_function[11] = "";
@@ -355,6 +366,8 @@ static int msSplitData( char *data, char **geometry_column_name, char **table_na
*geometry_column_name = (char*)malloc(buffer_size);
*unique = (char*)malloc(buffer_size);
*srid = (char*)malloc(buffer_size);
+ *indexfield=(char*)malloc(buffer_size);
+
/* clearup */
**geometry_column_name = **table_name = 0;
@@ -395,6 +408,8 @@ static int msSplitData( char *data, char **geometry_column_name, char **table_na
strlcpy( *unique, "", buffer_size);
strlcpy( *srid, "NULL", buffer_size);
+ strlcpy( *indexfield, "", buffer_size);
+
*function = -1;
*version = -1;
@@ -443,6 +458,25 @@ static int msSplitData( char *data, char **geometry_column_name, char **table_na
return 0;
}
+ /* parsing 'indexfield' */
+ for( ; *src && isspace( *src ); src++ ); /* skip blanks */
+ for( ; *src && *tok_indexfield && tolower(*src)==*tok_indexfield; src++, tok_indexfield++ );
+
+ if (*tok_indexfield == '\0') {
+ for( ; *src && isspace( *src ); src++ ); /* skip blanks */
+ if (*src == '\0')
+ return 0;
+ for( tgt=*indexfield; *src; src++, tgt++ )
+ if (isspace( *src ))
+ break;
+ else
+ *tgt = *src;
+ *tgt = 0;
+
+ if (*tok_indexfield != '\0')
+ return 0;
+ }
+
/*parsing function/version */
for( ; *src && isspace( *src ); src++ );
if (*src != '\0') {
@@ -520,7 +554,8 @@ static int msSplitData( char *data, char **geometry_column_name, char **table_na
static int msOCIOpenStatement( msOracleSpatialHandler *hand, msOracleSpatialStatement *sthand)
{
int success = 0;
-
+ char * cmd = "";
+
/* allocate stmthp */
success = TRY( hand, OCIHandleAlloc( (dvoid *)hand->envhp, (dvoid **)&sthand->stmthp, (ub4)OCI_HTYPE_STMT, (size_t)0, (dvoid **)0 ) );
@@ -531,6 +566,25 @@ static int msOCIOpenStatement( msOracleSpatialHandler *hand, msOracleSpatialStat
sthand->items = NULL;
sthand->items_query = NULL;
+ /* setting environment values to enable time parsing */
+
+ cmd = "alter session set NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'";
+ success = TRY(hand, OCIStmtPrepare( sthand->stmthp, hand->errhp, (const OraText*)cmd, (ub4) strlen(cmd), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
+ success = TRY(hand, OCIStmtExecute( hand->svchp, sthand->stmthp, hand->errhp, (ub4)ARRAY_SIZE, (ub4)0, (OCISnapshot *)NULL, (OCISnapshot *)NULL, (ub4)OCI_DEFAULT ) );
+
+ cmd = "alter session set NLS_TIMESTAMP_TZ_FORMAT='yyyy-mm-dd hh24:mi:ss'";
+ success = TRY(hand, OCIStmtPrepare( sthand->stmthp, hand->errhp, (const OraText*)cmd, (ub4) strlen(cmd), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
+ success = TRY(hand, OCIStmtExecute( hand->svchp, sthand->stmthp, hand->errhp, (ub4)ARRAY_SIZE, (ub4)0, (OCISnapshot *)NULL, (OCISnapshot *)NULL, (ub4)OCI_DEFAULT ) );
+
+ cmd = "alter session set NLS_TIMESTAMP_FORMAT = 'yyyy-mm-dd hh24:mi:ss'";
+ success = TRY(hand, OCIStmtPrepare( sthand->stmthp, hand->errhp, (const OraText*)cmd, (ub4) strlen(cmd), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
+ success = TRY(hand, OCIStmtExecute( hand->svchp, sthand->stmthp, hand->errhp, (ub4)ARRAY_SIZE, (ub4)0, (OCISnapshot *)NULL, (OCISnapshot *)NULL, (ub4)OCI_DEFAULT ) );
+
+ cmd = "alter session set time_zone = 'GMT'";
+ success = TRY(hand, OCIStmtPrepare( sthand->stmthp, hand->errhp, (const OraText*)cmd, (ub4) strlen(cmd), (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT));
+ success = TRY(hand, OCIStmtExecute( hand->svchp, sthand->stmthp, hand->errhp, (ub4)ARRAY_SIZE, (ub4)0, (OCISnapshot *)NULL, (OCISnapshot *)NULL, (ub4)OCI_DEFAULT ) );
+
+
/* fprintf(stderr, "Creating statement handle at %p\n", sthand->stmthp); */
return success;
@@ -611,11 +665,14 @@ static msOracleSpatialHandler *msOCISetHandlers( char *username, char *password,
OCILogon( hand->envhp, hand->errhp, &hand->svchp, (text *)username, strlen(username), (text *)password, strlen(password), (text *)dblink, strlen(dblink) ) );
if ( !success ) {
+ msDebug( "Cannot create OCI Handlers. "
+ "Connection failure."
+ "Error: %s."
+ "msOracleSpatialLayerOpen()\n", hand->last_oci_error);
msSetError( MS_ORACLESPATIALERR,
"Cannot create OCI Handlers. "
- "Connection failure. Check the connection string. "
- "Error: %s.",
- "msOracleSpatialLayerOpen()", hand->last_oci_error);
+ "Connection failure. Check your logs and the connection string. ",
+ "msOracleSpatialLayerOpen()");
msOCICloseHandlers(hand);
return NULL;
@@ -657,8 +714,9 @@ static void msOCIClearLayerInfo( msOracleSpatialLayerInfo *layerinfo )
}
/*function that creates the correct sql for geoditical srid for version 9i*/
-static void osGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *srid, rectObj rect)
+static void osGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *index_column_name, char *srid, rectObj rect)
{
+ char *filter_field=index_column_name[0]=='\0' ? geom_column_name : index_column_name;
switch (function) {
case FUNCTION_FILTER: {
snprintf( query_str + strlen(query_str), size-strlen(query_str),
@@ -667,7 +725,7 @@ static void osGeodeticData(int function, int version, char *query_str, size_t si
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates ), :srid),"
"'querytype=window') = 'TRUE'",
- geom_column_name);
+ filter_field);
break;
}
case FUNCTION_RELATE: {
@@ -677,7 +735,7 @@ static void osGeodeticData(int function, int version, char *query_str, size_t si
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates ), :srid),"
"'mask=anyinteract querytype=window') = 'TRUE'",
- geom_column_name);
+ filter_field);
break;
}
case FUNCTION_GEOMRELATE: {
@@ -687,7 +745,7 @@ static void osGeodeticData(int function, int version, char *query_str, size_t si
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates), :srid),"
"%f) = 'TRUE' AND %s IS NOT NULL",
- geom_column_name, TOLERANCE, geom_column_name );
+ index_column_name, TOLERANCE, geom_column_name );
break;
}
case FUNCTION_NONE: {
@@ -700,15 +758,16 @@ static void osGeodeticData(int function, int version, char *query_str, size_t si
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates), :srid),"
"'querytype=window') = 'TRUE'",
- geom_column_name );
+ filter_field );
}
}
}
/*function that generate the correct sql for no geoditic srid's*/
-static void osNoGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *srid, rectObj rect)
+static void osNoGeodeticData(int function, int version, char *query_str, size_t size, char *geom_column_name, char *index_column_name, char *srid, rectObj rect)
{
- switch (function) {
+ char *filter_field= index_column_name[0]=='\0' ? geom_column_name : index_column_name;
+ switch (function) {
case FUNCTION_FILTER: {
snprintf( query_str + strlen(query_str), size-strlen(query_str),
"SDO_FILTER( %s, MDSYS.SDO_GEOMETRY("
@@ -717,7 +776,7 @@ static void osNoGeodeticData(int function, int version, char *query_str, size_t
/* "MDSYS.SDO_ORDINATE_ARRAY(%.9g,%.9g,%.9g,%.9g)" */
":ordinates"
" ),'querytype=window') = 'TRUE'",
- geom_column_name);
+ filter_field);
break;
}
case FUNCTION_RELATE: {
@@ -727,7 +786,7 @@ static void osNoGeodeticData(int function, int version, char *query_str, size_t
"2003, :srid, NULL,"
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates)) = 'TRUE'",
- geom_column_name);
+ filter_field);
} else {
snprintf( query_str + strlen(query_str), size-strlen(query_str),
"SDO_RELATE( %s, MDSYS.SDO_GEOMETRY("
@@ -746,7 +805,7 @@ static void osNoGeodeticData(int function, int version, char *query_str, size_t
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates),"
"%f) = 'TRUE' AND %s IS NOT NULL",
- geom_column_name, TOLERANCE, geom_column_name );
+ index_column_name, TOLERANCE, geom_column_name );
break;
}
case FUNCTION_NONE: {
@@ -759,7 +818,7 @@ static void osNoGeodeticData(int function, int version, char *query_str, size_t
"MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),"
":ordinates),"
"'querytype=window') = 'TRUE'",
- geom_column_name);
+ filter_field);
}
}
}
@@ -953,7 +1012,8 @@ static int msOCIConvertCircle( pointObj *pt )
/*function that creates the correct sql for filter and filteritem*/
static void osFilteritem(layerObj *layer, int function, char *query_str, size_t size, int mode)
{
- if (layer->filter.string != NULL) {
+ char *native_filter;
+ if (layer->filter.native_string != NULL) {
if (mode == 1)
strlcat( query_str, " WHERE ", size);
else
@@ -964,8 +1024,8 @@ static void osFilteritem(layerObj *layer, int function, char *query_str, size_t
/* snprintf (query_str + strlen(query_str), " %s = ", layer->filteritem); */
}
- snprintf (query_str + strlen(query_str), size-strlen(query_str), " %s ", layer->filter.string);
- /* snprintf(buffer, n, "gfdg %s %s %s", layer->filter.string, (layer->filteritem != NULL ? layer->filteritem : ""), ); */
+ snprintf (query_str + strlen(query_str), size-strlen(query_str), " %s ", layer->filter.native_string);
+ /* snprintf(buffer, n, "gfdg %s %s %s", layer->filter.native_string, (layer->filteritem != NULL ? layer->filteritem : ""), ); */
if (function != FUNCTION_NONE)
snprintf (query_str + strlen(query_str), size-strlen(query_str), " AND ");
@@ -973,6 +1033,24 @@ static void osFilteritem(layerObj *layer, int function, char *query_str, size_t
if (function != FUNCTION_NONE)
strlcat( query_str, " WHERE ", size);
}
+
+ /* Handle a native filter set as a PROCESSING option (#5001). */
+ if ( msLayerGetProcessingKey(layer, "NATIVE_FILTER") != NULL ) {
+ if ((function == FUNCTION_NONE)&&(layer->filter.native_string == NULL)) {
+ strlcat( query_str, " WHERE ", size);
+ }
+ if ((function == FUNCTION_NONE)&&(layer->filter.native_string != NULL)) {
+ strlcat( query_str, " AND ", size);
+ }
+ native_filter = msLayerGetProcessingKey(layer, "NATIVE_FILTER");
+ snprintf(query_str + strlen(query_str) , size-strlen(query_str), " %s ", native_filter);
+ if (function != FUNCTION_NONE) {
+ strlcat( query_str, " AND ", size);
+ }
+
+ }
+
+
}
static void osAggrGetExtent(layerObj *layer, char *query_str, size_t size, char *geom_column_name, char *table_name)
@@ -1625,8 +1703,11 @@ static int osGetOrdinates(msOracleSpatialDataHandler *dthand, msOracleSpatialHan
} /* end of gtype big-if */
} /* end of not-null-object if */
- if (compound_type)
+ if (compound_type){
+ if(gtype == 2003)
+ shape->type = MS_SHAPE_POLYGON;
msFreeShape(&newshape);
+ }
return MS_SUCCESS;
}
@@ -1646,19 +1727,19 @@ int msOracleSpatialLayerOpen( layerObj *layer )
msOracleSpatialStatement *sthand = NULL, *sthand2 = NULL;
msOracleSpatialHandler *hand = NULL;
- if (layer->debug)
+ if (layer->debug >=2)
msDebug("msOracleSpatialLayerOpen called with: %s (Layer pointer %p)\n",layer->data, layer);
if (layer->layerinfo != NULL) /* Skip if layer is already open */
return MS_SUCCESS;
if (layer->data == NULL) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be:"
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be:"
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'."
- "If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE.",
- "msOracleSpatialLayerOpen()");
+ "If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE.\n");
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. More info in server logs", "msOracleSpatialLayerOpen()");
return MS_FAILURE;
}
@@ -1700,7 +1781,7 @@ int msOracleSpatialLayerOpen( layerObj *layer )
return MS_FAILURE;
}
- if ( layer->debug )
+ if ( layer->debug >=2)
msDebug("msOracleSpatialLayerOpen. Shared connection not available. Creating one.\n");
msConnPoolRegister( layer, hand, msOCICloseConnection );
@@ -1716,7 +1797,7 @@ int msOracleSpatialLayerOpen( layerObj *layer )
"Connection failure.",
"msOracleSpatialLayerOpen()");
- if (layer->debug)
+ if (layer->debug>=2)
msDebug("msOracleSpatialLayerOpen. Cannot create OCI LayerInfo. Connection failure.\n");
msOCICloseDataHandlers ( dthand );
@@ -1751,8 +1832,8 @@ int msOracleSpatialLayerClose( layerObj *layer )
msOracleSpatialLayerInfo *layerinfo = (msOracleSpatialLayerInfo *)layer->layerinfo;
/*int lIntSuccessFree = 0;*/
- if (layer->debug)
- msDebug("msOracleSpatialLayerClose was called. Layer: %p, Layer name: %s. Layer connection: %s\n", layer, layer->name, layer->connection);
+ if (layer->debug>=2)
+ msDebug("msOracleSpatialLayerClose was called. Layer: %p, Layer name: %s\n", layer, layer->name);
if (layerinfo != NULL) {
@@ -1776,7 +1857,7 @@ int msOracleSpatialLayerClose( layerObj *layer )
}
/* Release Datahandlers */
- if (layer->debug)
+ if (layer->debug>=4)
msDebug("msOracleSpatialLayerClose. Cleaning layerinfo handlers.\n");
msOCICloseDataHandlers( layerinfo->oradatahandlers );
layerinfo->oradatahandlers = NULL;
@@ -1787,7 +1868,7 @@ int msOracleSpatialLayerClose( layerObj *layer )
OCICacheFree (layerinfo->orahandlers->envhp, layerinfo->orahandlers->errhp, layerinfo->orahandlers->svchp);
/* Release Mapserver Pool */
- if (layer->debug)
+ if (layer->debug>=4)
msDebug("msOracleSpatialLayerClose. Release the Oracle Pool.\n");
msConnPoolRelease( layer, layerinfo->orahandlers );
@@ -1812,14 +1893,12 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
char query_str2[256];
char *tmp_str=NULL, *tmp1_str=NULL;
char *table_name;
- char *geom_column_name = NULL, *unique = NULL, *srid = NULL;
+ char *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield=NULL;
OCIDefine *adtp = NULL;
OCIDefine **items = NULL;
OCINumber oci_number;
OCIBind *bnd1p = NULL, *bnd2p = NULL;
- OCIType *ordinates_tdo = NULL;
- OCIArray *ordinates = NULL;
-
+
int existunique = MS_FALSE;
int rownumisuniquekey = MS_FALSE;
int numitemsinselect = 0;
@@ -1830,7 +1909,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
msOracleSpatialHandler *hand = NULL;
msOracleSpatialStatement *sthand = NULL;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerWhichShapes was called.\n");
if (layerinfo == NULL) {
@@ -1850,18 +1929,21 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
/* parse geom_column_name and table_name */
- if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &function, &version)) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be:"
+ if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version)) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be:"
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'."
"If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE."
- "Your data statement: %s",
- "msOracleSpatialLayerWhichShapes()", layer->data );
+ "Your data statement: (%s)"
+ "in msOracleSpatialLayerWhichShapes()\n", layer->data );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. More info in server logs",
+ "msOracleSpatialLayerWhichShapes()" );
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -1891,10 +1973,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
if (strcmp(srid,"NULL") == 0)
strcpy(srid,"-1");
-
snprintf( query_str, sizeof(query_str), "SELECT ");
-
-
numitemsinselect = layer->numitems;
/* allocate enough space for items */
if (layer->numitems >= 0) {
@@ -1916,6 +1995,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if(indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -1926,6 +2006,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if(indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -1934,7 +2015,8 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
/* define SQL query */
for( i=0; i < layer->numitems; ++i ) {
- snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), "%s, ", layer->items[i] );
+
+ snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), "%s, ", layer->items[i] );
}
/*we add the uniqueid if it was not part of the current item list*/
@@ -1950,21 +2032,26 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
osFilteritem(layer, function, query_str, sizeof(query_str), 1);
if (layerinfo->paging && layer->maxfeatures > 0 && layer->startindex < 0) {
- if (function == FUNCTION_NONE && layer->filter.string == NULL)
+ if (function == FUNCTION_NONE && layer->filter.native_string == NULL)
snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), "%s"," WHERE ");
- else if (function == FUNCTION_NONE && layer->filter.string != NULL)
+ else if (function == FUNCTION_NONE && layer->filter.native_string != NULL)
snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), "%s"," AND ");
snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), " ROWNUM<=%d ", layer->maxfeatures);
if (function != FUNCTION_NONE)
snprintf (query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), " AND ");
-
}
if ((((atol(srid) >= 8192) && (atol(srid) <= 8330)) || (atol(srid) == 2) || (atol(srid) == 5242888) || (atol(srid) == 2000001)) && (version == VERSION_9i))
- osGeodeticData(function, version, query_str, sizeof(query_str), geom_column_name, srid, rect);
+ osGeodeticData(function, version, query_str, sizeof(query_str), geom_column_name, indexfield, srid, rect);
else
- osNoGeodeticData(function, version, query_str, sizeof(query_str), geom_column_name, srid, rect);
+ osNoGeodeticData(function, version, query_str, sizeof(query_str), geom_column_name, indexfield, srid, rect);
+ if( layer->sortBy.nProperties > 0 ) {
+ msDebug("Layer sorting is requested\n");
+ tmp1_str = msLayerBuildSQLOrderBy(layer);
+ snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), " ORDER BY %s ", tmp1_str );
+ msFree(tmp1_str);
+ }
/*assuming startindex starts at 1*/
if (layerinfo->paging && layer->startindex > 0) {
@@ -1976,6 +2063,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
on layers loaded using ogr in a 11g database*/
if (function == FUNCTION_NONE || function == FUNCTION_RELATE || function == FUNCTION_GEOMRELATE)
tmp1_str = msStrdup( "order by rowid");
+ /* Populate strOrderBy, if necessary */
else
tmp1_str = msStrdup("");
@@ -2001,13 +2089,13 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
/* prepare */
success = TRY( hand, OCIStmtPrepare( sthand->stmthp, hand->errhp, (text *)query_str, (ub4)strlen(query_str), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT) );
- if (layer->debug)
+ if (layer->debug>=4)
msDebug("msOracleSpatialLayerWhichShapes getting ordinate definition.\n");
/* get the object definition of the ordinate array */
ordinates_tdo = get_tdo(SDO_ORDINATE_ARRAY, hand, dthand );
- if (layer->debug)
+ if (layer->debug>=4)
msDebug("msOracleSpatialLayerWhichShapes converting to OCIColl.\n");
/* initialized the collection array */
@@ -2024,7 +2112,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
&&TRY ( hand, OCICollAppend(hand->envhp, hand->errhp,(dvoid *) &oci_number,(dvoid *)0, (OCIColl *)ordinates));
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerWhichShapes bind by name and object.\n");
/* do the actual binding */
@@ -2058,13 +2146,18 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
}
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerWhichShapes name and object now bound.\n");
if (success && layer->numitems >= 0) {
- for( i=0; i < numitemsinselect && success; ++i )
+ for( i=0; i < numitemsinselect && success; ++i ){
+ if (i< numitemsinselect -1) {
+ //msDebug("Defining by POS, for %s\n", layer->items[i]);
+ //msDebug("datatype retrieved is %i\n", layer->iteminfo);
+ }
success = TRY( hand, OCIDefineByPos( sthand->stmthp, &items[i], hand->errhp, (ub4)i+1, (dvoid *)sthand->items[i], (sb4)TEXT_SIZE, SQLT_STR, (dvoid *)0, (ub2 *)0, (ub2 *)0, (ub4)OCI_DEFAULT ) );
+ }
}
@@ -2090,17 +2183,20 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
}
if (!success) {
- msSetError( MS_ORACLESPATIALERR,
- "Error: %s . "
+ msDebug( "Error: %s . "
"Query statement: %s . "
- "Check your data statement.",
- "msOracleSpatialLayerWhichShapes()", hand->last_oci_error, query_str );
+ "Check your data statement."
+ "msOracleSpatialLayerWhichShapes()\n", hand->last_oci_error, query_str );
+ msSetError( MS_ORACLESPATIALERR,
+ "Check your data statement and server logs",
+ "msOracleSpatialLayerWhichShapes()");
/* clean items */
free(items);
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2114,6 +2210,7 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_SUCCESS;
@@ -2252,7 +2349,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (resultindex >= sthand->rows_count) {
if (layer->debug >= 5)
- msDebug("msOracleSpatialLayerGetShape problem with cursor. Trying to fetch record = %d of %d, falling back to GetShape\n", resultindex, sthand->rows_count);
+ msDebug("msOracleSpatialLayerGetShape problem with cursor. Trying to fetch record = %d of %d, falling back to GetShape\n", resultindex, sthand->rows_count);
msSetError( MS_ORACLESPATIALERR, "msOracleSpatialLayerGetShape record out of range","msOracleSpatialLayerGetShape()" );
return MS_FAILURE;
@@ -2332,7 +2429,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
return (MS_SUCCESS);
} else { /* no resultindex, fetch the shape from the DB */
char *table_name;
- char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL;
+ char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield = NULL;
int function = 0;
int version = 0;
sb2 *nullind = NULL;
@@ -2340,7 +2437,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
OCIDefine *adtp = NULL;
OCIDefine **items = NULL;
- if (layer->debug)
+ if (layer->debug>=4)
msDebug("msOracleSpatialLayerGetShape was called. Using the record = %ld.\n", shapeindex);
dthand = (msOracleSpatialDataHandler *)layerinfo->oradatahandlers;
@@ -2377,14 +2474,15 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
}
table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
- if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &function, &version )) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be: "
+ if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version )) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be: "
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'. "
"If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE. "
- "Your data statement: %s",
- "msOracleSpatialLayerGetShape()", layer->data );
+ "Your data statement: (%s) msOracleSpatialLayerGetShape()\n", layer->data );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. Check server logs. ",
+ "msOracleSpatialLayerGetShape()");
/* clean nullind */
free(nullind);
@@ -2395,6 +2493,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2417,6 +2516,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2424,12 +2524,12 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
snprintf( query_str, sizeof(query_str), "SELECT");
/*Define the query*/
- for( i = 0; i < layer->numitems; ++i )
+ for( i = 0; i < layer->numitems; ++i )
snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), " %s,", layer->items[i] );
snprintf( query_str + strlen(query_str), sizeof(query_str)-strlen(query_str), " %s FROM %s WHERE %s = %ld", geom_column_name, table_name, unique, shapeindex);
- /*if (layer->filter.string != NULL)
+ /*if (layer->filter.native_string != NULL)
sprintf( query_str + strlen(query_str), " AND %s", (layer->filter.string));*/
osFilteritem(layer, FUNCTION_NONE, query_str, sizeof(query_str), 2);
@@ -2450,7 +2550,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
"Error: %s . "
"Query statement: %s . "
"Check your data statement.",
- "msOracleSpatialLayerGetShape()", hand->last_oci_error, query_str );
+ "msOracleSpatialLayerGetShape()\n", hand->last_oci_error, query_str );
/* clean nullind */
free(nullind);
@@ -2461,6 +2561,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2475,11 +2576,12 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
}
if(!success) {
- msSetError( MS_ORACLESPATIALERR,
- "Error: %s . "
+ msDebug( "Error: %s . "
"Query statement: %s ."
- "Check your data statement.",
- "msOracleSpatialLayerGetShape()", hand->last_oci_error, query_str );
+ "Check your data statement."
+ "in msOracleSpatialLayerGetShape()\n", hand->last_oci_error, query_str );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error in Query statement. Check your server logs","msOracleSpatialLayerGetShape()");
/* clean nullind */
free(nullind);
@@ -2490,6 +2592,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2508,6 +2611,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return (MS_DONE);
@@ -2531,6 +2635,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2553,6 +2658,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2584,6 +2690,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2600,6 +2707,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return (MS_SUCCESS);
@@ -2611,7 +2719,7 @@ int msOracleSpatialLayerInitItemInfo( layerObj *layer )
int i;
int *itemindexes ;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerInitItemInfo was called.\n");
if (layer->numitems == 0)
@@ -2626,9 +2734,12 @@ int msOracleSpatialLayerInitItemInfo( layerObj *layer )
}
itemindexes = (int*)layer->iteminfo;
+
+
- for(i=0; i < layer->numitems; i++)
+ for(i=0; i < layer->numitems; i++){
itemindexes[i] = i; /*last one is always the geometry one - the rest are non-geom*/
+ }
return MS_SUCCESS;
}
@@ -2639,7 +2750,7 @@ int msOracleSpatialLayerInitItemInfo( layerObj *layer )
int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *projection )
{
char *table_name;
- char *query_str, *geom_column_name = NULL, *unique = NULL, *srid = NULL;
+ char *query_str, *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield=NULL;
int success;
int function = 0;
int version = 0;
@@ -2653,7 +2764,7 @@ int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *proje
msOracleSpatialHandler *hand = NULL;
msOracleSpatialStatement *sthand = NULL;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerGetAutoProjection was called.\n");
if (layerinfo == NULL) {
@@ -2666,18 +2777,22 @@ int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *proje
}
table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
- if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &function, &version )) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be: "
+ if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version )) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be: "
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'. "
"If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE. "
- "Your data statement: %s",
- "msOracleSpatialLayerGetAutoProjection()", layer->data );
+ "Your data statement: (%s) "
+ "in msOracleSpatialLayerGetAutoProjection()\n", layer->data );
+
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable",
+ "msOracleSpatialLayerGetAutoProjection()");
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -2686,7 +2801,7 @@ int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *proje
query_str = "SELECT wktext FROM mdsys.all_sdo_geom_metadata m, mdsys.cs_srs c WHERE c.srid = m.srid and m.owner||'.'||m.table_name = :table_name and m.column_name = :geo_col_name "
"UNION SELECT wktext from mdsys.user_sdo_geom_metadata m, mdsys.cs_srs c WHERE c.srid = m.srid and m.table_name = :table_name and m.column_name = :geo_col_name";
- if (layer->debug)
+ if (layer->debug>=2)
msDebug("msOracleSpatialLayerGetAutoProjection. Using this Sql to retrieve the projection: %s.\n", query_str);
/*Prepare the handlers to the query*/
@@ -2698,15 +2813,19 @@ int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *proje
&& TRY( hand, OCIAttrGet( (dvoid *)sthand->stmthp, (ub4)OCI_HTYPE_STMT, (dvoid *)&sthand->rows_fetched, (ub4 *)0, (ub4)OCI_ATTR_ROWS_FETCHED, hand->errhp ) );
if(!success) {
- msSetError( MS_ORACLESPATIALERR,
- "Error: %s . "
+ msDebug( "Error: %s . "
"Query statement: %s . "
- "Check your data statement.",
- "msOracleSpatialLayerGetAutoProjection()", hand->last_oci_error, query_str );
+ "Check your data statement."
+ "in msOracleSpatialLayerGetAutoProjection()\n", hand->last_oci_error, query_str );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error "
+ "Check your data statement and server logs",
+ "msOracleSpatialLayerGetAutoProjection()" );
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -2727,6 +2846,7 @@ int msOracleSpatialLayerGetAutoProjection( layerObj *layer, projectionObj *proje
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_SUCCESS;
}
@@ -2849,7 +2969,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
int existgeom;
int count_item, flk_len, success, i;
char *table_name;
- char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL;
+ char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield=NULL;
OCIParam *pard = (OCIParam *) 0;
msOracleSpatialLayerInfo *layerinfo = (msOracleSpatialLayerInfo *) layer->layerinfo;
@@ -2859,7 +2979,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
int get_field_details = 0;
const char *value;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerGetItems was called.\n");
if (layerinfo == NULL) {
@@ -2877,18 +2997,21 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
get_field_details = 1;
table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
- if (!msSplitData(layer->data, &geom_column_name, &table_name, &unique, &srid, &function, &version)) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be: "
+ if (!msSplitData(layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version)) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be: "
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'. "
"If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE. "
- "Your data statement: %s",
- "msOracleSpatialLayerGetItems()", layer->data );
+ "Your data statement: (%s)"
+ "in msOracleSpatialLayerGetItems()\n", layer->data );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. Check server logs. ",
+ "msOracleSpatialLayerGetItems()");
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -2900,13 +3023,12 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
&& TRY( hand, OCIAttrGet( (dvoid *)sthand->stmthp, (ub4)OCI_HTYPE_STMT, (dvoid *)&layer->numitems, (ub4 *)0, OCI_ATTR_PARAM_COUNT, hand->errhp) );
-
-
if (!success) {
msSetError( MS_QUERYERR, "Cannot retrieve column list", "msOracleSpatialLayerGetItems()" );
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -2920,6 +3042,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -2933,6 +3056,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -2953,9 +3077,8 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
&& TRY( hand, OCIParamGet ((dvoid*) sthand->stmthp, (ub4)OCI_HTYPE_STMT,hand->errhp,(dvoid*)&pard, (ub4)i+1))
&& TRY( hand, OCIAttrGet ((dvoid *) pard,(ub4) OCI_DTYPE_PARAM,(dvoid*)&rzt,(ub4 *)&flk_len, (ub4) OCI_ATTR_NAME, hand->errhp ));
- /* if (layer->debug)
+ /* if (layer->debug)
msDebug("msOracleSpatialLayerGetItems checking type. Column = %s Type = %d\n", rzt, rzttype); */
-
flk = (char *)malloc(sizeof(char*) * flk_len+1);
if (flk == NULL) {
msSetError( MS_ORACLESPATIALERR, "No memory avaliable to allocate the items", "msOracleSpatialLayerGetItems()" );
@@ -2965,6 +3088,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
free(table_name);
return MS_FAILURE;
} else {
+ //layer->iteminfo->dtype[i]= 1;
strlcpy(flk, rzt, flk_len+1);
}
@@ -2984,12 +3108,12 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
strcpy(layer->items[count_item], flk);
count_item++;
- if( get_field_details )
+ if( get_field_details )
msOracleSpatialGetFieldDefn( layer, hand,
layer->items[count_item-1],
- pard );
+ pard );
}
- } else
+ } else
existgeom = 1;
strcpy( rzt, "" );
@@ -3004,6 +3128,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -3011,6 +3136,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return msOracleSpatialLayerInitItemInfo( layer );
}
@@ -3018,7 +3144,7 @@ int msOracleSpatialLayerGetItems( layerObj *layer )
int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
{
char *table_name;
- char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL;
+ char query_str[6000], *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield=NULL;
int success, i;
int function = 0;
int version = 0;
@@ -3035,7 +3161,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
msOracleSpatialHandler *hand = NULL;
msOracleSpatialStatement *sthand = NULL;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerGetExtent was called.\n");
if (layerinfo == NULL) {
@@ -3063,28 +3189,31 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
}
table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
- if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &function, &version )) {
- msSetError( MS_ORACLESPATIALERR,
- "Error parsing OracleSpatial DATA variable. Must be: "
+ if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version )) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be: "
"'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
"'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'. "
"If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE. "
- "Your data statement: %s",
- "msOracleSpatialLayerGetExtent()", layer->data );
+ "Your data statement: (%s) "
+ "in msOracleSpatialLayerGetExtent()\n", layer->data );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. Check server logs. ",
+ "msOracleSpatialLayerGetExtent()");
/* clean items */
free(items);
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
- if (version == VERSION_10g)
+ //if (version == VERSION_10g)
osAggrGetExtent(layer, query_str, sizeof(query_str), geom_column_name, table_name);
- else {
+ /*else {
if (((atol(srid) < 8192) || (atol(srid) > 8330)) && (atol(srid) != 2) && (atol(srid) != 5242888) && (atol(srid) != 2000001)) {
if (version == VERSION_9i)
osAggrGetExtent(layer, query_str, sizeof(query_str), geom_column_name, table_name);
@@ -3092,9 +3221,9 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
osConvexHullGetExtent(layer, query_str, sizeof(query_str), geom_column_name, table_name);
} else
osConvexHullGetExtent(layer, query_str, sizeof(query_str), geom_column_name, table_name);
- }
+ } */
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerGetExtent. Using this Sql to retrieve the extent: %s.\n", query_str);
/*Prepare the handlers to the query*/
@@ -3106,11 +3235,14 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
}
if(!success) {
- msSetError( MS_ORACLESPATIALERR,
- "Error: %s . "
+ msDebug( "Error: %s . "
"Query statement: %s . "
- "Check your data statement.",
- "msOracleSpatialLayerGetExtent()", hand->last_oci_error, query_str );
+ "Check your data statement."
+ "in msOracleSpatialLayerGetExtent()\n", hand->last_oci_error, query_str );
+
+ msSetError( MS_ORACLESPATIALERR,
+ "Check your data statement and server logs",
+ "msOracleSpatialLayerGetExtent()" );
/* clean items */
free(items);
@@ -3118,6 +3250,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -3132,11 +3265,13 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
}
if(!success) {
- msSetError( MS_ORACLESPATIALERR,
- "Error: %s . "
+ msDebug( "Error: %s . "
"Query statement: %s ."
- "Check your data statement.",
- "msOracleSpatialLayerGetExtent()", hand->last_oci_error, query_str );
+ "Check your data statement."
+ "in msOracleSpatialLayerGetExtent()\n", hand->last_oci_error, query_str );
+ msSetError( MS_ORACLESPATIALERR,
+ "Check your data statement and server logs",
+ "msOracleSpatialLayerGetExtent()" );
/* clean items */
free(items);
@@ -3144,6 +3279,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -3182,6 +3318,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
}
@@ -3200,6 +3337,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -3224,6 +3362,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return MS_FAILURE;
@@ -3249,6 +3388,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
if (geom_column_name) free(geom_column_name);
if (srid) free(srid);
if (unique) free(unique);
+ if (indexfield) free(indexfield);
free(table_name);
return(MS_SUCCESS);
@@ -3256,7 +3396,7 @@ int msOracleSpatialLayerGetExtent(layerObj *layer, rectObj *extent)
void msOracleSpatialLayerFreeItemInfo( layerObj *layer )
{
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerFreeItemInfo was called.\n");
if (layer->iteminfo)
@@ -3272,12 +3412,46 @@ int msOracleSpatialLayerGetAutoStyle( mapObj *map, layerObj *layer, classObj *c,
return MS_FAILURE;
}
+/************************************************************************/
+/* msOracleSpatialEscapePropertyName */
+/* */
+/* Return the property name in a properly escaped and quoted form. */
+/************************************************************************/
+char *msOracleSpatialEscapePropertyName(layerObj *layer, const char* pszString)
+{
+ char* pszEscapedStr=NULL;
+ int i, j = 0;
+
+ if (layer && pszString && strlen(pszString) > 0) {
+ int nLength = strlen(pszString);
+
+ pszEscapedStr = (char*) msSmallMalloc( 1 + 2 * nLength + 1 + 1);
+ //pszEscapedStr[j++] = '';
+
+ for (i=0; i<nLength; i++) {
+ char c = pszString[i];
+ if (c == '"') {
+ pszEscapedStr[j++] = '"';
+ pszEscapedStr[j++] ='"';
+ } else if (c == '\\') {
+ pszEscapedStr[j++] = '\\';
+ pszEscapedStr[j++] = '\\';
+ } else
+ pszEscapedStr[j++] = c;
+ }
+ //pszEscapedStr[j++] = '';
+ pszEscapedStr[j++] = 0;
+
+ }
+ return pszEscapedStr;
+}
+
int msOracleSpatialGetPaging(layerObj *layer)
{
msOracleSpatialLayerInfo *layerinfo = NULL;
- if (layer->debug)
- msDebug("msOracleSpatialLayerGetPaging was called.\n");
+ //if (layer->debug)
+ // msDebug("msOracleSpatialLayerGetPaging was called.\n");
if(!msOracleSpatialLayerIsOpen(layer))
return MS_TRUE;
@@ -3292,7 +3466,7 @@ void msOracleSpatialEnablePaging(layerObj *layer, int value)
{
msOracleSpatialLayerInfo *layerinfo = NULL;
- if (layer->debug)
+ if (layer->debug>=3)
msDebug("msOracleSpatialLayerEnablePaging was called.\n");
if(!msOracleSpatialLayerIsOpen(layer))
@@ -3306,6 +3480,371 @@ void msOracleSpatialEnablePaging(layerObj *layer, int value)
return;
}
+int msOracleSpatialLayerTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem)
+{
+ char *native_string = NULL;
+
+ int nodeCount = 0;
+
+ int function = 0, version = 0, dwithin = 0, regexp_like = 0, case_ins = 0;
+ char *table_name;
+ char *geom_column_name = NULL, *unique = NULL, *srid = NULL, *indexfield=NULL;
+ char *snippet = NULL;
+ char *strtmpl = NULL;
+ double dfDistance = -1;
+
+ table_name = (char *) malloc(sizeof(char) * TABLE_NAME_SIZE);
+ if (!msSplitData( layer->data, &geom_column_name, &table_name, &unique, &srid, &indexfield, &function, &version )) {
+ msDebug( "Error parsing OracleSpatial DATA variable. Must be: "
+ "'geometry_column FROM table_name [USING UNIQUE <column> SRID srid# FUNCTION]' or "
+ "'geometry_column FROM (SELECT stmt) [USING UNIQUE <column> SRID srid# FUNCTION]'. "
+ "If want to set the FUNCTION statement you can use: FILTER, RELATE, GEOMRELATE or NONE. "
+ "Your data statement: (%s)"
+ "in msOracleSpatialLayerGetExtent()\n", layer->data );
+ msSetError( MS_ORACLESPATIALERR,
+ "Error parsing OracleSpatial DATA variable. Check server logs. ",
+ "msOracleSpatialLayerGetExtent()");
+ /* clean items */
+
+ if (geom_column_name) free(geom_column_name);
+ if (srid) free(srid);
+ if (unique) free(unique);
+ if (indexfield) free(indexfield);
+ free(table_name);
+
+ return MS_FAILURE;
+ }
+
+ //msDebug("filter.string was set: %s\n",filter->string);
+ if(!filter->string) return MS_SUCCESS;
+
+ /* for backwards compatibility we continue to allow SQL snippets as a string */
+
+ if(filter->type == MS_STRING && filter->string && filteritem) { /* item/value pair */
+ if(filter->flags & MS_EXP_INSENSITIVE) {
+ native_string = msStringConcatenate(native_string, "upper(");
+ native_string = msStringConcatenate(native_string, filteritem);
+ native_string = msStringConcatenate(native_string, ") = upper(");
+ } else {
+ native_string = msStringConcatenate(native_string, filteritem);
+ native_string = msStringConcatenate(native_string, " = ");
+ }
+
+ strtmpl = "'%s'"; /* don't have a type for the righthand literal so assume it's a string and we quote */
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(filter->string));
+ sprintf(snippet, strtmpl, filter->string); // TODO: escape filter->string (msPostGISEscapeSQLParam)
+ native_string = msStringConcatenate(native_string, snippet);
+ free(snippet);
+
+ if(filter->flags & MS_EXP_INSENSITIVE) native_string = msStringConcatenate(native_string, ")");
+
+ if (layer->debug>=2) msDebug("msOracleSpatialLayerTranslateFilter: **item/value combo: %s\n", native_string);
+ } else if(filter->type == MS_REGEX && filter->string && filteritem) { /* item/regex pair */
+ native_string = msStringConcatenate(native_string, "REGEXP_LIKE (");
+ native_string = msStrdup(filteritem);
+ native_string = msStringConcatenate(native_string, ", ");
+ strtmpl = "'%s'";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(filter->string));
+ sprintf(snippet, strtmpl, filter->string); // TODO: escape filter->string (msPostGISEscapeSQLParam)
+ native_string = msStringConcatenate(native_string, snippet);
+
+ if(filter->flags & MS_EXP_INSENSITIVE) {
+ native_string = msStringConcatenate(native_string, ",i ");
+ }
+ native_string = msStringConcatenate(native_string, " )");
+ free(snippet);
+ } else if(filter->type == MS_EXPRESSION) {
+
+ tokenListNodeObjPtr node = NULL;
+ //tokenListNodeObjPtr nextNode = NULL;
+
+ if (layer->debug>2)
+ msDebug("msOracleSpatialLayerTranslateFilter. String: %s \n", filter->string);
+ if (layer->debug>2 && !filter->tokens)
+ msDebug("msOracleSpatialLayerTranslateFilter. No tokens to process\n");
+
+ if(!filter->tokens) return MS_SUCCESS; /* nothing to work from */
+
+ if (layer->debug>2)
+ msDebug("msOracleSpatialLayerTranslateFilter. There are tokens to process \n");
+
+ /* try to convert tokens */
+ node = filter->tokens;
+ while (node != NULL) {
+ //msDebug("token count :%i, token is %i\n", nodeCount, node->token);
+ switch(node->token) {
+ case '(':
+ // if (buffer == MS_FALSE)
+ native_string = msStringConcatenate(native_string, "( ");
+ break;
+ case ')':
+ if (regexp_like == MS_TRUE) {
+ if (case_ins == MS_TRUE) {
+ native_string = msStringConcatenate(native_string, ",'i' ");
+ case_ins = MS_FALSE;
+ }
+ regexp_like = MS_FALSE;
+ native_string = msStringConcatenate(native_string, " )");
+ msDebug("closing RE comparison\n");
+ }
+ native_string = msStringConcatenate(native_string, " )");
+ break;
+ case MS_TOKEN_LITERAL_NUMBER:
+ strtmpl = "%lf";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + 16);
+ sprintf(snippet, strtmpl, node->tokenval.dblval); // TODO: escape strval
+ if (dwithin == MS_TRUE) {
+ dfDistance = node->tokenval.dblval;
+ if (layer->units == MS_DD){
+ dfDistance *= msInchesPerUnit(MS_DD,0)/msInchesPerUnit(MS_METERS,0);
+ //msDebug("Converted Distance value is %lf\n", dfDistance);
+ }
+ sprintf(snippet, strtmpl, dfDistance);
+ native_string = msStringConcatenate(native_string, "'distance=");
+ native_string = msStringConcatenate(native_string, snippet);
+ native_string = msStringConcatenate(native_string, "'");
+ } else {
+ native_string = msStringConcatenate(native_string, snippet);
+ }
+ free(snippet);
+
+ break;
+ case MS_TOKEN_LITERAL_STRING:
+ strtmpl = "%s";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(node->tokenval.strval));
+ sprintf(snippet, strtmpl, node->tokenval.strval); // TODO: escape strval
+ snippet = msReplaceSubstring(snippet,"'","''");
+ native_string = msStringConcatenate(native_string, "'");
+ native_string = msStringConcatenate(native_string, snippet);
+ native_string = msStringConcatenate(native_string, "'");
+ msFree(snippet);
+ break;
+ case MS_TOKEN_LITERAL_BOOLEAN:
+ if(node->tokenval.dblval == MS_TRUE)
+ native_string = msStringConcatenate(native_string, "'TRUE'");
+ else
+ native_string = msStringConcatenate(native_string, "'FALSE'");
+ break;
+ case MS_TOKEN_LITERAL_TIME:
+ {
+ int resolution = msTimeGetResolution(node->tokensrc);
+ snippet = (char *) msSmallMalloc(128);
+ switch(resolution) {
+ case TIME_RESOLUTION_YEAR:
+ strtmpl = "to_date('%d-01','YYYY-MM')";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900));
+ break;
+ case TIME_RESOLUTION_MONTH:
+ strtmpl = "to_date('%d-%02d','YYYY-MM')";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900), (node->tokenval.tmval.tm_mon+1));
+ break;
+ case TIME_RESOLUTION_DAY:
+ strtmpl = "to_date('%d-%02d-%02d','YYYY-MM-DD') ";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900), (node->tokenval.tmval.tm_mon+1), node->tokenval.tmval.tm_mday);
+ break;
+ case TIME_RESOLUTION_HOUR:
+ strtmpl = "to_timestamp('%d-%02d-%02d %02d','YYYY-MM-DD hh24')";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900), (node->tokenval.tmval.tm_mon+1), node->tokenval.tmval.tm_mday, node->tokenval.tmval.tm_hour);
+ break;
+ case TIME_RESOLUTION_MINUTE:
+ strtmpl = "to_timestamp('%d-%02d-%02d %02d:%02d','YYYY-MM-DD hh24:mi')";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900), (node->tokenval.tmval.tm_mon+1), node->tokenval.tmval.tm_mday, node->tokenval.tmval.tm_hour, node->tokenval.tmval.tm_min);
+ break;
+ case TIME_RESOLUTION_SECOND:
+ strtmpl = "to_timestamp('%d-%02d-%02d %02d:%02d:%02d','YYYY-MM-DD hh24:mi:ss')";
+ sprintf(snippet, strtmpl, (node->tokenval.tmval.tm_year+1900), (node->tokenval.tmval.tm_mon+1), node->tokenval.tmval.tm_mday, node->tokenval.tmval.tm_hour, node->tokenval.tmval.tm_min, node->tokenval.tmval.tm_sec);
+ break;
+ }
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ break;
+ }
+ case MS_TOKEN_LITERAL_SHAPE:
+ native_string = msStringConcatenate(native_string, " SDO_GEOMETRY('");
+ native_string = msStringConcatenate(native_string, msShapeToWKT(node->tokenval.shpval));
+ native_string = msStringConcatenate(native_string, "'");
+ if(srid && strcmp(srid, "") != 0) {
+ native_string = msStringConcatenate(native_string, ", ");
+ native_string = msStringConcatenate(native_string, srid);
+ }
+ native_string = msStringConcatenate(native_string, ") ");
+ //msDebug("------> srid node value: %s", node->tokenval.shpval);
+ break;
+ case MS_TOKEN_BINDING_DOUBLE:
+ native_string = msStringConcatenate(native_string, node->tokenval.bindval.item);
+ break;
+ case MS_TOKEN_BINDING_INTEGER:
+ native_string = msStringConcatenate(native_string, node->tokenval.bindval.item);
+ break;
+ case MS_TOKEN_BINDING_STRING:
+ if (node->next->token == MS_TOKEN_COMPARISON_RE || node->next->token == MS_TOKEN_COMPARISON_IRE
+ || node->next->token == MS_TOKEN_COMPARISON_IEQ ) {
+ native_string = msStringConcatenate(native_string, "REGEXP_LIKE( ");
+ }
+ strtmpl = "%s";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(node->tokenval.strval));
+ sprintf(snippet, strtmpl, node->tokenval.strval); // TODO: escape strval (msPostGISEscapeSQLParam)
+ native_string = msStringConcatenate(native_string, snippet);
+ free(snippet);
+ break;
+ case MS_TOKEN_BINDING_TIME:
+ native_string = msStringConcatenate(native_string, node->tokenval.bindval.item);
+ break;
+ case MS_TOKEN_BINDING_SHAPE:
+ native_string = msStringConcatenate(native_string, geom_column_name);
+ break;
+ case MS_TOKEN_BINDING_MAP_CELLSIZE:
+ strtmpl = "%lf";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + 16);
+ sprintf(snippet, strtmpl, layer->map->cellsize);
+ native_string = msStringConcatenate(native_string, snippet);
+ free(snippet);
+ break;
+ case MS_TOKEN_LOGICAL_AND:
+ native_string = msStringConcatenate(native_string, " AND ");
+ break;
+ case MS_TOKEN_LOGICAL_OR:
+ native_string = msStringConcatenate(native_string, " OR ");
+ break;
+ case MS_TOKEN_LOGICAL_NOT:
+ native_string = msStringConcatenate(native_string, " NOT ");
+ break;
+ case MS_TOKEN_COMPARISON_EQ:
+ native_string = msStringConcatenate(native_string, " = ");
+ break;
+ case MS_TOKEN_COMPARISON_NE:
+ native_string = msStringConcatenate(native_string, " != ");
+ break;
+ case MS_TOKEN_COMPARISON_GT:
+ native_string = msStringConcatenate(native_string, " > ");
+ break;
+ case MS_TOKEN_COMPARISON_GE:
+ native_string = msStringConcatenate(native_string, " >= ");
+ break;
+ case MS_TOKEN_COMPARISON_LT:
+ native_string = msStringConcatenate(native_string, " < ");
+ break;
+ case MS_TOKEN_COMPARISON_LE:
+ native_string = msStringConcatenate(native_string, " <= ");
+ break;
+ case MS_TOKEN_COMPARISON_IEQ:
+ // this is for case insensitve equals check
+ msDebug("got a IEQ comparison\n");
+ regexp_like = MS_TRUE;
+ case_ins = MS_TRUE;
+ native_string = msStringConcatenate(native_string, ", ");
+ break;
+ case MS_TOKEN_COMPARISON_RE:
+ // the regex formats that MS uses as Oracle users are different so just return and eval the regex's in MS
+ //return MS_SUCCESS;
+ msDebug("got a RE comparison\n");
+ regexp_like = MS_TRUE;
+ native_string = msStringConcatenate(native_string, ", ");
+ break;
+ case MS_TOKEN_COMPARISON_IRE:
+ // the regex formats that MS uses as Oracle users are different so just return and eval the regex's in MS
+ regexp_like = MS_TRUE;
+ case_ins = MS_TRUE;
+ native_string = msStringConcatenate(native_string, ", ");
+ break;
+ case MS_TOKEN_COMPARISON_IN:
+ native_string = msStringConcatenate(native_string, " IN ");
+ break;
+ case MS_TOKEN_COMPARISON_LIKE:
+ native_string = msStringConcatenate(native_string, " LIKE ");
+ break;
+ case MS_TOKEN_COMPARISON_INTERSECTS:
+ native_string = msStringConcatenate(native_string, " ST_INTERSECTS ");
+ break;
+ case MS_TOKEN_COMPARISON_DISJOINT:
+ native_string = msStringConcatenate(native_string, " NOT ST_INTERSECTS ");
+ break;
+ case MS_TOKEN_COMPARISON_TOUCHES:
+ native_string = msStringConcatenate(native_string, " ST_TOUCH ");
+ break;
+ case MS_TOKEN_COMPARISON_OVERLAPS:
+ native_string = msStringConcatenate(native_string, " ST_OVERLAPS ");
+ break;
+ case MS_TOKEN_COMPARISON_CROSSES:
+ native_string = msStringConcatenate(native_string, " SDO_OVERLAPBDYDISJOINT ");
+ break;
+ case MS_TOKEN_COMPARISON_WITHIN:
+ native_string = msStringConcatenate(native_string, " ST_INSIDE ");
+ break;
+ case MS_TOKEN_COMPARISON_CONTAINS:
+ native_string = msStringConcatenate(native_string, " SDO_CONTAINS ");
+ break;
+ case MS_TOKEN_COMPARISON_EQUALS:
+ native_string = msStringConcatenate(native_string, " SDO_EQUAL ");
+ break;
+ case MS_TOKEN_COMPARISON_BEYOND:
+ //support for the wfs case
+ dwithin = MS_TRUE;
+ native_string = msStringConcatenate(native_string, "NOT SDO_WITHIN_DISTANCE ");
+ break;
+ case MS_TOKEN_COMPARISON_DWITHIN:
+ dwithin = MS_TRUE;
+ native_string = msStringConcatenate(native_string, "SDO_WITHIN_DISTANCE ");
+ break;
+ case MS_TOKEN_FUNCTION_LENGTH:
+ break;
+ case MS_TOKEN_FUNCTION_TOSTRING:
+ break;
+ case MS_TOKEN_FUNCTION_COMMIFY:
+ break;
+ case MS_TOKEN_FUNCTION_AREA:
+ native_string = msStringConcatenate(native_string, "SDO_GEOM.SDO_AREA ");
+ break;
+ case MS_TOKEN_FUNCTION_ROUND:
+ native_string = msStringConcatenate(native_string, "ROUND ");
+ break;
+ case MS_TOKEN_FUNCTION_FROMTEXT:
+ native_string = msStringConcatenate(native_string, "SDO_GEOMETRY ");
+ break;
+ case MS_TOKEN_FUNCTION_BUFFER:
+ // native_string = msStringConcatenate(native_string, " SDO_BUFFER ");
+ //buffer = MS_TRUE;
+ break;
+ case MS_TOKEN_FUNCTION_DIFFERENCE:
+ native_string = msStringConcatenate(native_string, "ST_DIFFERENCE ");
+ break;
+ case MS_TOKEN_FUNCTION_SIMPLIFY:
+ native_string = msStringConcatenate(native_string, "SDO_UTIL.SIMPLIFY ");
+ break;
+ case MS_TOKEN_FUNCTION_SIMPLIFYPT:
+ break;
+ case MS_TOKEN_FUNCTION_GENERALIZE:
+ native_string = msStringConcatenate(native_string, "SDO_UTIL.SIMPLIFY ");
+ break;
+ case ',':
+ native_string = msStringConcatenate(native_string, ",");
+ break;
+ case '~':
+ break;
+ default:
+ fprintf(stderr, "Translation to native SQL failed.\n");
+ msFree(native_string);
+ if (layer->debug) {
+ msDebug("Token not caught, exiting: Token is %i\n", node->token);
+ }
+
+ return MS_SUCCESS; /* not an error */
+ }
+ nodeCount++;
+ node = node->next;
+
+ //fprintf(stderr, "native filter: %s\n", native_string);
+ }
+
+ filter->native_string = msStrdup(native_string);
+ if (layer->debug>=4)
+ msDebug("total filter tokens are %i\n,", nodeCount);
+ msFree(native_string);
+ }
+ return MS_SUCCESS;
+}
+
+
#else
/* OracleSpatial "not-supported" procedures */
@@ -3386,6 +3925,17 @@ int msOracleSpatialGetPaging(layerObj *layer)
return MS_FAILURE;
}
+int msOracleSpatialLayerTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem)
+{
+ msSetError( MS_ORACLESPATIALERR, "OracleSpatial is not supported", "msLayerTranslateFilter()" );
+ return MS_FAILURE;
+}
+
+char *msOracleSpatialEscapePropertyName(layerObj *layer, const char* pszString)
+{
+ msSetError( MS_ORACLESPATIALERR, "OracleSpatial is not supported", "msLayerEscapePropertyName()" );
+ return msStrdup(pszString);
+}
#endif
#if defined USE_ORACLE_PLUGIN
@@ -3395,6 +3945,8 @@ PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
assert(layer != NULL);
assert(vtable != NULL);
+ layer->vtable->LayerTranslateFilter = msOracleSpatialLayerTranslateFilter;
+
vtable->LayerInitItemInfo = msOracleSpatialLayerInitItemInfo;
vtable->LayerFreeItemInfo = msOracleSpatialLayerFreeItemInfo;
@@ -3410,7 +3962,9 @@ PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
/* layer->vtable->LayerApplyFilterToLayer, use default */
vtable->LayerCloseConnection = msOracleSpatialLayerClose;
vtable->LayerApplyFilterToLayer = msLayerApplyCondSQLFilterToLayer;
- vtable->LayerSetTimeFilter = msLayerMakePlainTimeFilter;
+ vtable->LayerSetTimeFilter = msLayerMakeBackticsTimeFilter;
+ //vtable->LayerSetTimeFilter = msOracleSpatialLayerSetTimeFilter;
+ vtable->LayerEscapePropertyName = msOracleSpatialEscapePropertyName;
/* layer->vtable->LayerGetNumFeatures, use default */
/* layer->vtable->LayerGetAutoProjection = msOracleSpatialLayerGetAutoProjection; Disabled until tested */
vtable->LayerEnablePaging = msOracleSpatialEnablePaging;
@@ -3426,6 +3980,9 @@ int msOracleSpatialLayerInitializeVirtualTable(layerObj *layer)
assert(layer != NULL);
assert(layer->vtable != NULL);
+ layer->vtable->LayerTranslateFilter = msOracleSpatialLayerTranslateFilter;
+
+
layer->vtable->LayerInitItemInfo = msOracleSpatialLayerInitItemInfo;
layer->vtable->LayerFreeItemInfo = msOracleSpatialLayerFreeItemInfo;
layer->vtable->LayerOpen = msOracleSpatialLayerOpen;
@@ -3439,7 +3996,9 @@ int msOracleSpatialLayerInitializeVirtualTable(layerObj *layer)
/* layer->vtable->LayerGetAutoStyle, use default */
layer->vtable->LayerCloseConnection = msOracleSpatialLayerClose;
layer->vtable->LayerApplyFilterToLayer = msLayerApplyCondSQLFilterToLayer;
- layer->vtable->LayerSetTimeFilter = msLayerMakePlainTimeFilter;
+ layer->vtable->LayerSetTimeFilter = msLayerMakeBackticsTimeFilter;
+ //layer->vtable->LayerSetTimeFilter = msOracleSpatialLayerSetTimeFilter;
+ layer->vtable->LayerEscapePropertyName = msOracleSpatialEscapePropertyName;
/* layer->vtable->LayerCreateItems, use default */
/* layer->vtable->LayerGetNumFeatures, use default */
/* layer->vtable->LayerGetAutoProjection = msOracleSpatialLayerGetAutoProjection; Disabled until tested */
diff --git a/mapoutput.c b/mapoutput.c
index a1d6878..36297f1 100644
--- a/mapoutput.c
+++ b/mapoutput.c
@@ -99,9 +99,6 @@ struct defaultOutputFormatEntry {
struct defaultOutputFormatEntry defaultoutputformats[] = {
{"png","AGG/PNG","image/png"},
{"jpeg","AGG/JPEG","image/jpeg"},
-#ifdef USE_GD
- {"gif","GD/GIF","image/gif"},
-#endif
{"png8","AGG/PNG8","image/png; mode=8bit"},
{"png24","AGG/PNG","image/png; mode=24bit"},
#ifdef USE_CAIRO
@@ -116,6 +113,7 @@ struct defaultOutputFormatEntry defaultoutputformats[] = {
{"kml","KML","application/vnd.google-earth.kml+xml"},
{"kmz","KMZ","application/vnd.google-earth.kmz"},
#endif
+ {"json","UTFGrid","application/json"},
{NULL,NULL,NULL}
};
@@ -160,38 +158,22 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
const char *name )
{
- outputFormatObj *format = NULL;
- if( strcasecmp(driver,"GD/PC256") == 0 ) {
- return msCreateDefaultOutputFormat( map, "GD/PNG", "gdpng" );
- }
- if( strcasecmp(driver,"GD/GIF") == 0 ) {
- if(!name) name="gif";
-#ifdef USE_GD_GIF
- format = msAllocOutputFormat( map, name, driver );
- format->mimetype = msStrdup("image/gif");
- format->imagemode = MS_IMAGEMODE_PC256;
- format->extension = msStrdup("gif");
- format->renderer = MS_RENDER_WITH_GD;
-#else
+ outputFormatObj *format = NULL;
+ if( strncasecmp(driver,"GD/",3) == 0 ) {
return msCreateDefaultOutputFormat( map, "AGG/PNG8", name );
-#endif
}
- if( strcasecmp(driver,"GD/PNG") == 0 ) {
- if(!name) name="gdpng";
-#ifdef USE_GD_PNG
+ if( strcasecmp(driver,"UTFGRID") == 0 ) {
+ if(!name) name="utfgrid";
format = msAllocOutputFormat( map, name, driver );
- format->mimetype = msStrdup("image/png");
- format->imagemode = MS_IMAGEMODE_PC256;
- format->extension = msStrdup("png");
- format->renderer = MS_RENDER_WITH_GD;
-#else
- return msCreateDefaultOutputFormat( map, "AGG/PNG8", name );
-#endif /* USE_GD_PNG */
+ format->mimetype = msStrdup("application/json");
+ format->imagemode = MS_IMAGEMODE_RGB;
+ format->extension = msStrdup("json");
+ format->renderer = MS_RENDER_WITH_UTFGRID;
}
- if( strcasecmp(driver,"AGG/PNG") == 0 ) {
+ else if( strcasecmp(driver,"AGG/PNG") == 0 ) {
if(!name) name="png24";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/png");
@@ -200,7 +182,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->renderer = MS_RENDER_WITH_AGG;
}
- if( strcasecmp(driver,"AGG/PNG8") == 0 ) {
+ else if( strcasecmp(driver,"AGG/PNG8") == 0 ) {
if(!name) name="png8";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/png; mode=8bit");
@@ -211,7 +193,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
msSetOutputFormatOption( format, "QUANTIZE_COLORS", "256");
}
- if( strcasecmp(driver,"AGG/JPEG") == 0 ) {
+ else if( strcasecmp(driver,"AGG/JPEG") == 0 ) {
if(!name) name="jpeg";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/jpeg");
@@ -221,7 +203,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
}
#if defined(USE_CAIRO)
- if( strcasecmp(driver,"CAIRO/PNG") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/PNG") == 0 ) {
if(!name) name="cairopng";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/png; mode=24bit");
@@ -229,7 +211,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->extension = msStrdup("png");
format->renderer = MS_RENDER_WITH_CAIRO_RASTER;
}
- if( strcasecmp(driver,"CAIRO/JPEG") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/JPEG") == 0 ) {
if(!name) name="cairojpeg";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/jpeg");
@@ -237,7 +219,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->extension = msStrdup("jpg");
format->renderer = MS_RENDER_WITH_CAIRO_RASTER;
}
- if( strcasecmp(driver,"CAIRO/PDF") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/PDF") == 0 ) {
if(!name) name="pdf";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("application/x-pdf");
@@ -245,7 +227,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->extension = msStrdup("pdf");
format->renderer = MS_RENDER_WITH_CAIRO_PDF;
}
- if( strcasecmp(driver,"CAIRO/SVG") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/SVG") == 0 ) {
if(!name) name="svg";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/svg+xml");
@@ -254,7 +236,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->renderer = MS_RENDER_WITH_CAIRO_SVG;
}
#ifdef _WIN32
- if( strcasecmp(driver,"CAIRO/WINGDI") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/WINGDI") == 0 ) {
if(!name) name="cairowinGDI";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("");
@@ -262,7 +244,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->extension = msStrdup("");
format->renderer = MS_RENDER_WITH_CAIRO_RASTER;
}
- if( strcasecmp(driver,"CAIRO/WINGDIPRINT") == 0 ) {
+ else if( strcasecmp(driver,"CAIRO/WINGDIPRINT") == 0 ) {
if(!name) name="cairowinGDIPrint";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("");
@@ -274,7 +256,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
#endif
#if defined(USE_OGL)
- if( strcasecmp(driver,"OGL/PNG") == 0 ) {
+ else if( strcasecmp(driver,"OGL/PNG") == 0 ) {
if(!name) name="oglpng24";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("image/png; mode=24bit");
@@ -285,7 +267,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
#endif
#if defined(USE_KML)
- if( strcasecmp(driver,"KML") == 0 ) {
+ else if( strcasecmp(driver,"KML") == 0 ) {
if(!name) name="kml";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("application/vnd.google-earth.kml+xml");
@@ -294,7 +276,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->renderer = MS_RENDER_WITH_KML;
msSetOutputFormatOption( format, "ATTACHMENT", "mapserver.kml");
}
- if( strcasecmp(driver,"KMZ") == 0 ) {
+ else if( strcasecmp(driver,"KMZ") == 0 ) {
if(!name) name="kmz";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = strdup("application/vnd.google-earth.kmz");
@@ -308,7 +290,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
#ifdef USE_GDAL
- if( strncasecmp(driver,"gdal/",5) == 0 ) {
+ else if( strncasecmp(driver,"gdal/",5) == 0 ) {
if(!name) name=driver+5;
format = msAllocOutputFormat( map, name, driver );
if( msInitDefaultGDALOutputFormat( format ) == MS_FAILURE ) {
@@ -323,7 +305,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
}
#endif
#ifdef USE_OGR
- if( strncasecmp(driver,"ogr/",4) == 0 ) {
+ else if( strncasecmp(driver,"ogr/",4) == 0 ) {
if(!name) name=driver+4;
format = msAllocOutputFormat( map, name, driver );
if( msInitDefaultOGROutputFormat( format ) == MS_FAILURE ) {
@@ -337,7 +319,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
}
}
#endif
- if( strcasecmp(driver,"imagemap") == 0 ) {
+ else if( strcasecmp(driver,"imagemap") == 0 ) {
if(!name) name="imagemap";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("text/html; driver=imagemap");
@@ -346,7 +328,7 @@ outputFormatObj *msCreateDefaultOutputFormat( mapObj *map,
format->renderer = MS_RENDER_WITH_IMAGEMAP;
}
- if( strcasecmp(driver,"template") == 0 ) {
+ else if( strcasecmp(driver,"template") == 0 ) {
if(!name) name="template";
format = msAllocOutputFormat( map, name, driver );
format->mimetype = msStrdup("text/html");
@@ -473,18 +455,17 @@ int msAppendOutputFormat(mapObj *map, outputFormatObj *format)
/* -------------------------------------------------------------------- */
/* Attach to map. */
/* -------------------------------------------------------------------- */
- if (map != NULL) {
- map->numoutputformats++;
- if (map->outputformatlist == NULL)
- map->outputformatlist = (outputFormatObj **) malloc(sizeof(void*));
- else
- map->outputformatlist = (outputFormatObj **)
- realloc(map->outputformatlist,
- sizeof(void*) * map->numoutputformats );
+ assert(map);
+ map->numoutputformats++;
+ if (map->outputformatlist == NULL)
+ map->outputformatlist = (outputFormatObj **) malloc(sizeof(void*));
+ else
+ map->outputformatlist = (outputFormatObj **)
+ realloc(map->outputformatlist,
+ sizeof(void*) * map->numoutputformats );
- map->outputformatlist[map->numoutputformats-1] = format;
- MS_REFCNT_INCR(format);
- }
+ map->outputformatlist[map->numoutputformats-1] = format;
+ MS_REFCNT_INCR(format);
return map->numoutputformats;
}
@@ -855,7 +836,6 @@ void msGetOutputFormatMimeListImg( mapObj *map, char **mime_list, int max_mime )
mime_list[mime_count++] = format->mimetype;
}
}
- msFreeCharArray(tokens, numtokens);
} else
for( i = 0; i < map->numoutputformats && mime_count < max_mime; i++ ) {
int j;
@@ -870,16 +850,14 @@ void msGetOutputFormatMimeListImg( mapObj *map, char **mime_list, int max_mime )
}
if( j == mime_count && map->outputformatlist[i]->driver &&
- (
-#ifdef USE_GD
- strncasecmp(map->outputformatlist[i]->driver, "GD/", 3)==0 ||
-#endif
- strncasecmp(map->outputformatlist[i]->driver, "AGG/", 4)==0))
+ strncasecmp(map->outputformatlist[i]->driver, "AGG/", 4)==0)
mime_list[mime_count++] = map->outputformatlist[i]->mimetype;
}
if( mime_count < max_mime )
mime_list[mime_count] = NULL;
+ if(tokens)
+ msFreeCharArray(tokens, numtokens);
}
/************************************************************************/
@@ -905,7 +883,6 @@ void msGetOutputFormatMimeListWMS( mapObj *map, char **mime_list, int max_mime )
mime_list[mime_count++] = format->mimetype;
}
}
- msFreeCharArray(tokens, numtokens);
} else {
for( i = 0; i < map->numoutputformats && mime_count < max_mime; i++ ) {
int j;
@@ -921,9 +898,6 @@ void msGetOutputFormatMimeListWMS( mapObj *map, char **mime_list, int max_mime )
if( j == mime_count && map->outputformatlist[i]->driver &&
(
-#ifdef USE_GD
- strncasecmp(map->outputformatlist[i]->driver, "GD/", 3)==0 ||
-#endif
strncasecmp(map->outputformatlist[i]->driver, "GDAL/", 5)==0 ||
strncasecmp(map->outputformatlist[i]->driver, "AGG/", 4)==0 ||
strcasecmp(map->outputformatlist[i]->driver, "CAIRO/SVG")==0 ||
@@ -935,6 +909,8 @@ void msGetOutputFormatMimeListWMS( mapObj *map, char **mime_list, int max_mime )
}
if( mime_count < max_mime )
mime_list[mime_count] = NULL;
+ if(tokens)
+ msFreeCharArray(tokens, numtokens);
}
@@ -1020,18 +996,6 @@ int msOutputFormatValidate( outputFormatObj *format, int issue_error )
if( format->renderer != MS_RENDER_WITH_RAWDATA ) /* see bug 724 */
format->renderer = MS_RENDER_WITH_RAWDATA;
}
-#ifdef USE_GD
- if(format->renderer == MS_RENDER_WITH_GD && format->imagemode != MS_IMAGEMODE_PC256) {
- if( issue_error )
- msSetError( MS_MISCERR,
- "OUTPUTFORMAT %s has IMAGEMODE RGB/RGBA, which is not supported for GD drivers.",
- "msOutputFormatValidate()", format->name );
- else
- msDebug( "OUTPUTFORMAT %s has IMAGEMODE RGB/RGBA, which is not supported for GD drivers.",
- format->name );
- format->renderer = MS_RENDER_WITH_AGG;
- }
-#endif
return result;
}
@@ -1053,10 +1017,8 @@ int msInitializeRendererVTable(outputFormatObj *format)
switch(format->renderer) {
case MS_RENDER_WITH_AGG:
return msPopulateRendererVTableAGG(format->vtable);
-#ifdef USE_GD
- case MS_RENDER_WITH_GD:
- return msPopulateRendererVTableGD(format->vtable);
-#endif
+ case MS_RENDER_WITH_UTFGRID:
+ return msPopulateRendererVTableUTFGrid(format->vtable);
#ifdef USE_CAIRO
case MS_RENDER_WITH_CAIRO_RASTER:
return msPopulateRendererVTableCairoRaster(format->vtable);
diff --git a/mapows.c b/mapows.c
index cdacbb3..f1ce641 100644
--- a/mapows.c
+++ b/mapows.c
@@ -37,6 +37,7 @@
#include "cpl_minixml.h"
#include "cpl_error.h"
#endif
+#include "mapowscommon.h"
#include <ctype.h> /* isalnum() */
#include <stdarg.h>
@@ -100,12 +101,15 @@ static int msOWSPreParseRequest(cgiRequestObj *request,
int i;
/* parse KVP parameters service, version and request */
for (i = 0; i < request->NumParams; ++i) {
- if (EQUAL(request->ParamNames[i], "SERVICE")) {
+ if (ows_request->service == NULL &&
+ EQUAL(request->ParamNames[i], "SERVICE")) {
ows_request->service = msStrdup(request->ParamValues[i]);
- } else if (EQUAL(request->ParamNames[i], "VERSION")
- || EQUAL(request->ParamNames[i], "WMTVER")) { /* for WMS */
+ } else if (ows_request->version == NULL &&
+ (EQUAL(request->ParamNames[i], "VERSION")
+ || EQUAL(request->ParamNames[i], "WMTVER"))) { /* for WMS */
ows_request->version = msStrdup(request->ParamValues[i]);
- } else if (EQUAL(request->ParamNames[i], "REQUEST")) {
+ } else if (ows_request->request == NULL &&
+ EQUAL(request->ParamNames[i], "REQUEST")) {
ows_request->request = msStrdup(request->ParamValues[i]);
}
@@ -230,6 +234,14 @@ int msOWSDispatch(mapObj *map, cgiRequestObj *request, int ows_mode)
}
if (ows_request.service == NULL) {
+
+#ifdef USE_WFS_SVR
+ if( msOWSLookupMetadata(&(map->web.metadata), "FO", "cite_wfs2") != NULL ) {
+ status = msWFSException(map, "service", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, NULL );
+ }
+ else
+#endif
+
/* exit if service is not set */
if(force_ows_mode) {
msSetError( MS_MISCERR,
@@ -846,21 +858,19 @@ const char *msOWSLookupMetadataWithLanguage(hashTableObj *metadata,
const char *namespaces, const char *name, const char* validated_language)
{
const char *value = NULL;
- char *name2 = NULL;
- size_t bufferSize = 0;
if ( name && validated_language ) {
- bufferSize = strlen(name)+strlen(validated_language)+2;
- name2 = (char *) msSmallMalloc( bufferSize );
+ size_t bufferSize = strlen(name)+strlen(validated_language)+2;
+ char *name2 = (char *) msSmallMalloc( bufferSize );
snprintf(name2, bufferSize, "%s.%s", name, validated_language);
value = msOWSLookupMetadata(metadata, namespaces, name2);
+ free(name2);
}
- if (value == NULL) {
+ if ( name && !value ) {
value = msOWSLookupMetadata(metadata, namespaces, name);
}
- msFree( name2 );
return value;
}
@@ -1016,7 +1026,7 @@ int msOWSMakeAllLayersUnique(mapObj *map)
**
*/
-int msOWSNegotiateVersion(int requested_version, int supported_versions[], int num_supported_versions)
+int msOWSNegotiateVersion(int requested_version, const int supported_versions[], int num_supported_versions)
{
int i;
@@ -1157,6 +1167,26 @@ const char *msOWSGetSchemasLocation(mapObj *map)
return schemas_location;
}
+/* msOWSGetInspireSchemasLocation()
+**
+** schemas location is the root of the web tree where all Inspire-related
+** schemas can be found on this server. These URLs must exist in order
+** to validate xml.
+**
+** Use value of "inspire_schemas_location" metadata
+*/
+const char *msOWSGetInspireSchemasLocation(mapObj *map)
+{
+ const char *schemas_location;
+
+ schemas_location = msLookupHashTable(&(map->web.metadata),
+ "inspire_schemas_location");
+ if (schemas_location == NULL)
+ schemas_location = "http://inspire.ec.europa.eu/schemas";
+
+ return schemas_location;
+}
+
/* msOWSGetLanguage()
**
** returns the language via MAP/WEB/METADATA/ows_language
@@ -1252,16 +1282,19 @@ char *msOWSGetLanguageFromList(mapObj *map, const char *namespaces, const char *
** Returns a status code; MS_NOERR if all ok, action_if_not_found otherwise
*/
int msOWSPrintInspireCommonExtendedCapabilities(FILE *stream, mapObj *map, const char *namespaces,
- int action_if_not_found, const char *tag_name,
- const char *validated_language, const int service)
+ int action_if_not_found, const char *tag_name, const char* tag_ns,
+ const char *validated_language, const OWSServiceType service)
{
int metadataStatus = 0;
int languageStatus = 0;
- msIO_fprintf(stream, " <%s>\n", tag_name);
+ if( tag_ns )
+ msIO_fprintf(stream, " <%s %s>\n", tag_name, tag_ns);
+ else
+ msIO_fprintf(stream, " <%s>\n", tag_name);
- metadataStatus = msOWSPrintInspireCommonMetadata(stream, map, namespaces, action_if_not_found);
+ metadataStatus = msOWSPrintInspireCommonMetadata(stream, map, namespaces, action_if_not_found, service);
languageStatus = msOWSPrintInspireCommonLanguages(stream, map, namespaces, action_if_not_found, validated_language);
msIO_fprintf(stream, " </%s>\n", tag_name);
@@ -1276,7 +1309,7 @@ int msOWSPrintInspireCommonExtendedCapabilities(FILE *stream, mapObj *map, const
** Returns a status code; MS_NOERR if all OK, action_if_not_found otherwise
*/
int msOWSPrintInspireCommonMetadata(FILE *stream, mapObj *map, const char *namespaces,
- int action_if_not_found)
+ int action_if_not_found, const OWSServiceType service)
{
int status = MS_NOERR;
@@ -1303,7 +1336,7 @@ int msOWSPrintInspireCommonMetadata(FILE *stream, mapObj *map, const char *names
}
}
} else if (strcasecmp("embed",inspire_capabilities) == 0) {
- msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_resourcelocator", OWS_NOERR, " <inspire_common:ResourceLocator>\n <inspire_common:URL>%s</inspire_common:URL>\n </inspire_common:ResourceLocator>\n", NULL);
+ msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_resourcelocator", OWS_WARN, " <inspire_common:ResourceLocator>\n <inspire_common:URL>%s</inspire_common:URL>\n </inspire_common:ResourceLocator>\n", NULL);
msIO_fprintf(stream," <inspire_common:ResourceType>service</inspire_common:ResourceType>\n");
msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_temporal_reference", OWS_WARN, " <inspire_common:TemporalReference>\n <inspire_common:DateOfLastRevision>%s</inspire_common:DateOfLastRevision>\n </inspire_common:TemporalReference>\n", "");
msIO_fprintf(stream, " <inspire_common:Conformity>\n");
@@ -1318,8 +1351,11 @@ int msOWSPrintInspireCommonMetadata(FILE *stream, mapObj *map, const char *names
msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_mpoc_email", OWS_WARN, " <inspire_common:EmailAddress>%s</inspire_common:EmailAddress>\n", "");
msIO_fprintf(stream, " </inspire_common:MetadataPointOfContact>\n");
msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_metadatadate", OWS_WARN, " <inspire_common:MetadataDate>%s</inspire_common:MetadataDate>\n", "");
- msIO_fprintf(stream," <inspire_common:SpatialDataServiceType>view</inspire_common:SpatialDataServiceType>\n");
- msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_keyword", OWS_WARN, " <inspire_common:MandatoryKeyword xsi:type='inspire_common:classificationOfSpatialDataService'>\n <inspire_common:KeywordValue>%s</inspire_common:KeywordValue>\n </inspire_common:MandatoryKeyword>\n", "");
+ if( service == OWS_WFS )
+ msIO_fprintf(stream," <inspire_common:SpatialDataServiceType>download</inspire_common:SpatialDataServiceType>\n");
+ else
+ msIO_fprintf(stream," <inspire_common:SpatialDataServiceType>view</inspire_common:SpatialDataServiceType>\n");
+ msOWSPrintEncodeMetadata(stream, &(map->web.metadata), namespaces, "inspire_keyword", OWS_WARN, " <inspire_common:MandatoryKeyword>\n <inspire_common:KeywordValue>%s</inspire_common:KeywordValue>\n </inspire_common:MandatoryKeyword>\n", "");
} else {
status = action_if_not_found;
if (OWS_WARN == action_if_not_found) {
@@ -1644,7 +1680,7 @@ int msOWSPrintURLType(FILE *stream, hashTableObj *metadata,
value = msOWSLookupMetadata(metadata, namespaces, metadata_name);
if(value != NULL) {
encoded = msEncodeHTMLEntities(value);
- buffer_size_tmp = strlen(type_format)+strlen(encoded);
+ buffer_size_tmp = strlen(type_format)+strlen(encoded)+1;
type = (char*)malloc(buffer_size_tmp);
snprintf(type, buffer_size_tmp, type_format, encoded);
msFree(encoded);
@@ -1657,7 +1693,7 @@ int msOWSPrintURLType(FILE *stream, hashTableObj *metadata,
value = msOWSLookupMetadata(metadata, namespaces, metadata_name);
if(value != NULL) {
encoded = msEncodeHTMLEntities(value);
- buffer_size_tmp = strlen(width_format)+strlen(encoded);
+ buffer_size_tmp = strlen(width_format)+strlen(encoded)+1;
width = (char*)malloc(buffer_size_tmp);
snprintf(width, buffer_size_tmp, width_format, encoded);
msFree(encoded);
@@ -1670,7 +1706,7 @@ int msOWSPrintURLType(FILE *stream, hashTableObj *metadata,
value = msOWSLookupMetadata(metadata, namespaces, metadata_name);
if(value != NULL) {
encoded = msEncodeHTMLEntities(value);
- buffer_size_tmp = strlen(height_format)+strlen(encoded);
+ buffer_size_tmp = strlen(height_format)+strlen(encoded)+1;
height = (char*)malloc(buffer_size_tmp);
snprintf(height, buffer_size_tmp, height_format, encoded);
msFree(encoded);
@@ -1683,7 +1719,7 @@ int msOWSPrintURLType(FILE *stream, hashTableObj *metadata,
value = msOWSLookupMetadata(metadata, namespaces, metadata_name);
if(value != NULL) {
encoded = msEncodeHTMLEntities(value);
- buffer_size_tmp = strlen(urlfrmt_format)+strlen(encoded);
+ buffer_size_tmp = strlen(urlfrmt_format)+strlen(encoded)+1;
urlfrmt = (char*)malloc(buffer_size_tmp);
snprintf(urlfrmt, buffer_size_tmp, urlfrmt_format, encoded);
msFree(encoded);
@@ -1696,7 +1732,7 @@ int msOWSPrintURLType(FILE *stream, hashTableObj *metadata,
value = msOWSLookupMetadata(metadata, namespaces, metadata_name);
if(value != NULL) {
encoded = msEncodeHTMLEntities(value);
- buffer_size_tmp = strlen(href_format)+strlen(encoded);
+ buffer_size_tmp = strlen(href_format)+strlen(encoded)+1;
href = (char*)malloc(buffer_size_tmp);
snprintf(href, buffer_size_tmp, href_format, encoded);
msFree(encoded);
@@ -1868,8 +1904,8 @@ int msOWSPrintMetadataList(FILE *stream, hashTableObj *metadata,
msIO_fprintf(stream, itemFormat, keywords[kw]);
}
if(endTag) msIO_fprintf(stream, "%s", endTag);
- msFreeCharArray(keywords, numkeywords);
}
+ msFreeCharArray(keywords, numkeywords);
return MS_TRUE;
}
return MS_FALSE;
@@ -1919,8 +1955,8 @@ int msOWSPrintEncodeMetadataList(FILE *stream, hashTableObj *metadata,
msFree(encoded);
}
if(endTag) msIO_fprintf(stream, "%s", endTag);
- msFreeCharArray(keywords, numkeywords);
}
+ msFreeCharArray(keywords, numkeywords);
return MS_TRUE;
}
return MS_FALSE;
@@ -1961,8 +1997,8 @@ int msOWSPrintEncodeParamList(FILE *stream, const char *name,
msFree(encoded);
}
if(endTag) msIO_fprintf(stream, "%s", endTag);
- msFreeCharArray(items, numitems);
}
+ msFreeCharArray(items, numitems);
return status;
}
@@ -2023,7 +2059,7 @@ void msOWSPrintEX_GeographicBoundingBox(FILE *stream, const char *tabspace,
*/
void msOWSPrintLatLonBoundingBox(FILE *stream, const char *tabspace,
rectObj *extent, projectionObj *srcproj,
- projectionObj *wfsproj, int nService)
+ projectionObj *wfsproj, OWSServiceType nService)
{
const char *pszTag = "LatLonBoundingBox"; /* The default for WMS */
rectObj ext;
@@ -2091,24 +2127,24 @@ void msOWSPrintBoundingBox(FILE *stream, const char *tabspace,
for( i = 0; i < num_epsgs; i++) {
value = epsgs[i];
- memcpy(&ext, extent, sizeof(rectObj));
-
- /* reproject the extents for each SRS's bounding box */
- msInitProjection(&proj);
- if (msLoadProjectionStringEPSG(&proj, (char *)value) == 0) {
- if (msProjectionsDiffer(srcproj, &proj) == MS_TRUE) {
- msProjectRect(srcproj, &proj, &ext);
- }
- /*for wms 1.3.0 we need to make sure that we present the BBOX with
- a reversed axes for some espg codes*/
- if (wms_version >= OWS_1_3_0 && value && strncasecmp(value, "EPSG:", 5) == 0) {
- msAxisNormalizePoints( &proj, 1, &(ext.minx), &(ext.miny) );
- msAxisNormalizePoints( &proj, 1, &(ext.maxx), &(ext.maxy) );
+ if( value && *value) {
+ memcpy(&ext, extent, sizeof(rectObj));
+
+ /* reproject the extents for each SRS's bounding box */
+ msInitProjection(&proj);
+ if (msLoadProjectionStringEPSG(&proj, (char *)value) == 0) {
+ if (msProjectionsDiffer(srcproj, &proj) == MS_TRUE) {
+ msProjectRect(srcproj, &proj, &ext);
+ }
+ /*for wms 1.3.0 we need to make sure that we present the BBOX with
+ a reversed axes for some espg codes*/
+ if (wms_version >= OWS_1_3_0 && value && strncasecmp(value, "EPSG:", 5) == 0) {
+ msAxisNormalizePoints( &proj, 1, &(ext.minx), &(ext.miny) );
+ msAxisNormalizePoints( &proj, 1, &(ext.maxx), &(ext.maxy) );
+ }
}
- }
- msFreeProjection( &proj );
+ msFreeProjection( &proj );
- if( value != NULL ) {
encoded = msEncodeHTMLEntities(value);
if (wms_version >= OWS_1_3_0)
msIO_fprintf(stream, "%s<BoundingBox CRS=\"%s\"\n"
@@ -2315,6 +2351,11 @@ void msOWSProcessException(layerObj *lp, const char *pszFname,
fseek(fp, 0, SEEK_END);
nBufSize = ftell(fp);
+ if(nBufSize < 0) {
+ msSetError(MS_IOERR, NULL, "msOWSProcessException()");
+ fclose(fp);
+ return;
+ }
rewind(fp);
pszBuf = (char*)malloc((nBufSize+1)*sizeof(char));
if (pszBuf == NULL) {
@@ -2770,10 +2811,11 @@ outputFormatObj* msOwsIsOutputFormatValid(mapObj *map, const char *format,
if (mimetype && strcasecmp(mimetype, format) == 0)
break;
}
- msFreeCharArray(tokens, n);
if (i < n)
psFormat = msSelectOutputFormat( map, format);
}
+ if(tokens)
+ msFreeCharArray(tokens, n);
}
return psFormat;
diff --git a/mapows.h b/mapows.h
index d7799fb..4d7f41f 100644
--- a/mapows.h
+++ b/mapows.h
@@ -51,16 +51,24 @@ typedef struct {
char *pszService;
char *pszTypeName;
char *pszFilter;
+ char *pszFilterLanguage;
char *pszGeometryName;
int nMaxFeatures;
char *pszBbox; /* only used with a Get Request */
- char *pszOutputFormat; /* only used with DescibeFeatureType */
+ char *pszOutputFormat;
char *pszFeatureId;
char *pszSrs;
char *pszResultType;
char *pszPropertyName;
int nStartIndex;
char *pszAcceptVersions;
+ char *pszSections;
+ char *pszSortBy; /* Not implemented yet */
+ char *pszLanguage; /* Inspire extension */
+ char *pszValueReference; /* For GetValueReference */
+ char *pszStoredQueryId; /* For DescribeStoredQueries */
+ int countGetFeatureById; /* Number of urn:ogc:def:query:OGC-WFS::GetFeatureById GetFeature requests */
+ int bHasPostStoredQuery; /* TRUE if a XML GetFeature StoredQuery is present */
} wfsParamsObj;
/*
@@ -156,11 +164,12 @@ MS_DLL_EXPORT const char *msOWSGetVersionString(int nVersion, char *pszBuffer);
#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR) || defined (USE_WCS_SVR) || defined(USE_SOS_SVR) || defined(USE_WMS_LYR) || defined(USE_WFS_LYR)
MS_DLL_EXPORT int msOWSMakeAllLayersUnique(mapObj *map);
-MS_DLL_EXPORT int msOWSNegotiateVersion(int requested_version, int supported_versions[], int num_supported_versions);
+MS_DLL_EXPORT int msOWSNegotiateVersion(int requested_version, const int supported_versions[], int num_supported_versions);
MS_DLL_EXPORT char *msOWSTerminateOnlineResource(const char *src_url);
MS_DLL_EXPORT char *msOWSGetOnlineResource(mapObj *map, const char *namespaces, const char *metadata_name, cgiRequestObj *req);
MS_DLL_EXPORT char *msOWSGetOnlineResource2(mapObj *map, const char *namespaces, const char *metadata_name, cgiRequestObj *req, const char *validated_language);
MS_DLL_EXPORT const char *msOWSGetSchemasLocation(mapObj *map);
+MS_DLL_EXPORT const char *msOWSGetInspireSchemasLocation(mapObj *map);
MS_DLL_EXPORT const char *msOWSGetLanguage(mapObj *map, const char *context);
MS_DLL_EXPORT char **msOWSGetLanguageList(mapObj *map, const char *namespaces, int *numitems);
MS_DLL_EXPORT char *msOWSGetLanguageFromList(mapObj *map, const char *namespaces, const char *requested_language);
@@ -172,14 +181,17 @@ MS_DLL_EXPORT char *msOWSGetLanguageFromList(mapObj *map, const char *namespaces
/* OWS_WMS and OWS_WFS used for functions that differ in behavior between */
/* WMS and WFS services (e.g. msOWSPrintLatLonBoundingBox()) */
-#define OWS_WMS 1
-#define OWS_WFS 2
+typedef enum
+{
+ OWS_WMS = 1,
+ OWS_WFS = 2
+} OWSServiceType;
MS_DLL_EXPORT int msOWSPrintInspireCommonExtendedCapabilities(FILE *stream, mapObj *map, const char *namespaces,
- const int action_if_not_found, const char *tag_name,
- const char *validated_language, const int service);
+ const int action_if_not_found, const char *tag_name, const char* tag_ns,
+ const char *validated_language, const OWSServiceType service);
int msOWSPrintInspireCommonMetadata(FILE *stream, mapObj *map, const char *namespaces,
- int action_if_not_found);
+ int action_if_not_found, const OWSServiceType service);
int msOWSPrintInspireCommonLanguages(FILE *stream, mapObj *map, const char *namespaces,
int action_if_not_found, const char *validated_language);
@@ -249,7 +261,7 @@ int msOWSPrintEncodeParamList(FILE *stream, const char *name,
void msOWSProjectToWGS84(projectionObj *srcproj, rectObj *ext);
void msOWSPrintLatLonBoundingBox(FILE *stream, const char *tabspace,
rectObj *extent, projectionObj *srcproj,
- projectionObj *wfsproj, int nService);
+ projectionObj *wfsproj, OWSServiceType nService);
void msOWSPrintEX_GeographicBoundingBox(FILE *stream, const char *tabspace,
rectObj *extent, projectionObj *srcproj);
@@ -293,8 +305,13 @@ outputFormatObj *msOwsIsOutputFormatValid(mapObj *map, const char *format, hashT
/*====================================================================
* mapgml.c
*====================================================================*/
-#define OWS_GML2 0 /* Supported GML formats */
-#define OWS_GML3 1
+
+typedef enum
+{
+ OWS_GML2, /* 2.1.2 */
+ OWS_GML3, /* 3.1.1 */
+ OWS_GML32 /* 3.2.1 */
+} OWSGMLVersion;
#define OWS_WFS_FEATURE_COLLECTION_NAME "msFeatureCollection"
#define OWS_GML_DEFAULT_GEOMETRY_NAME "msGeometry"
@@ -315,6 +332,8 @@ typedef struct {
int visible; /* should this item be output, default is MS_FALSE */
int width; /* field width, zero if unknown */
int precision; /* field precision (decimal places), zero if unknown or N/A */
+ int outputByDefault; /* whether this should be output in a GetFeature without PropertyName. MS_TRUE by default, unless gml_default_items is specified and the item name is not in it */
+ int minOccurs; /* 0 by default. Can be set to 1 by specifying item name in gml_mandatory_items */
} gmlItemObj;
typedef struct {
@@ -370,12 +389,12 @@ typedef struct {
#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR)
-MS_DLL_EXPORT int msItemInGroups(char *name, gmlGroupListObj *groupList);
+MS_DLL_EXPORT int msItemInGroups(const char *name, gmlGroupListObj *groupList);
MS_DLL_EXPORT gmlItemListObj *msGMLGetItems(layerObj *layer, const char *metadata_namespaces);
MS_DLL_EXPORT void msGMLFreeItems(gmlItemListObj *itemList);
MS_DLL_EXPORT gmlConstantListObj *msGMLGetConstants(layerObj *layer, const char *metadata_namespaces);
MS_DLL_EXPORT void msGMLFreeConstants(gmlConstantListObj *constantList);
-MS_DLL_EXPORT gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_namespaces);
+MS_DLL_EXPORT gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_namespaces, int bWithDefaultGeom);
MS_DLL_EXPORT void msGMLFreeGeometries(gmlGeometryListObj *geometryList);
MS_DLL_EXPORT gmlGroupListObj *msGMLGetGroups(layerObj *layer, const char *metadata_namespaces);
MS_DLL_EXPORT void msGMLFreeGroups(gmlGroupListObj *groupList);
@@ -388,7 +407,13 @@ MS_DLL_EXPORT int msGMLWriteQuery(mapObj *map, char *filename, const char *names
#ifdef USE_WFS_SVR
-MS_DLL_EXPORT int msGMLWriteWFSQuery(mapObj *map, FILE *stream, char *wfs_namespace, int outputformat);
+
+void msGMLWriteWFSBounds(mapObj *map, FILE *stream, const char *tab,
+ OWSGMLVersion outputformat, int nWFSVersion, int bUseURN);
+
+MS_DLL_EXPORT int msGMLWriteWFSQuery(mapObj *map, FILE *stream, const char *wfs_namespace,
+ OWSGMLVersion outputformat, int nWFSVersion, int bUseURN,
+ int bGetPropertyValueRequest);
#endif
@@ -430,15 +455,12 @@ int msWMSLayerExecuteRequest(mapObj *map, int nOWSLayers, int nClickX, int nClic
* mapwfs.c
*====================================================================*/
-/* Supported DescribeFeature formats */
-#define OWS_DEFAULT_SCHEMA 0 /* basically a GML 2.1 schema */
-#define OWS_SFE_SCHEMA 1 /* GML for simple feature exchange (formerly GML3L0) */
-
MS_DLL_EXPORT int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj,
owsRequestObj *ows_request, int force_wfs_mode);
int msWFSParseRequest(mapObj *map, cgiRequestObj *, owsRequestObj *ows_request,
wfsParamsObj *, int force_wfs_mode);
wfsParamsObj *msWFSCreateParamsObj(void);
+int msWFSHandleUpdateSequence(mapObj *map, wfsParamsObj *wfsparams, const char* pszFunction);
void msWFSFreeParamsObj(wfsParamsObj *wfsparams);
int msWFSIsLayerSupported(layerObj *lp);
int msWFSException(mapObj *map, const char *locator, const char *code,
@@ -451,7 +473,26 @@ int msWFSException11(mapObj *map, const char *locator,
const char *exceptionCode, const char *version);
int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *wfsparams,
cgiRequestObj *req, owsRequestObj *ows_request);
-char *msWFSGetOutputFormatList(mapObj *map, layerObj *layer,const char*version);
+#ifdef USE_LIBXML2
+#include<libxml/tree.h>
+xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws,
+ int nWFSVersion, const char* validate_language);
+#endif
+char *msWFSGetOutputFormatList(mapObj *map, layerObj *layer, int nWFSVersion);
+
+int msWFSException20(mapObj *map, const char *locator,
+ const char *exceptionCode);
+int msWFSGetCapabilities20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request);
+int msWFSListStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request);
+int msWFSDescribeStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request);
+char* msWFSGetResolvedStoredQuery20(mapObj *map,
+ wfsParamsObj *wfsparams,
+ const char* id,
+ hashTableObj* hashTable);
+
#endif
/*====================================================================
diff --git a/mapowscommon.c b/mapowscommon.c
index 652c8f5..0c86c87 100644
--- a/mapowscommon.c
+++ b/mapowscommon.c
@@ -7,7 +7,7 @@
* 1.0.0 (OGC Document 05-008c1)
* 1.1.0 (OGC document 06-121r3)
*
- * Author: Tom Kralidis (tomkralidis at hotmail.com)
+ * Author: Tom Kralidis (tomkralidis at gmail.com)
*
******************************************************************************
* Copyright (c) 2006, Tom Kralidis
@@ -56,13 +56,17 @@
*
* @param map mapObj used to fetch WEB/METADATA
* @param servicetype the OWS type
- * @param version the version of the OWS
+ * @param supported_versions the supported version(s) of the OWS
*
* @return psRootNode xmlNodePtr of XML construct
*
*/
-xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const char *servicetype, const char *version, const char *namespaces)
+xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map,
+ const char *servicetype,
+ const char *supported_versions,
+ const char *namespaces,
+ const char *validated_language)
{
const char *value = NULL;
@@ -77,7 +81,7 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
/* add child elements */
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "title");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "title", validated_language);
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "Title", BAD_CAST value);
@@ -85,7 +89,7 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
xmlAddSibling(psNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_title\" missing for ows:Title"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "abstract");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "abstract", validated_language);
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "Abstract", BAD_CAST value);
@@ -93,7 +97,7 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
xmlAddSibling(psNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_abstract\" was missing for ows:Abstract"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "keywordlist");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "keywordlist", validated_language);
if (value) {
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "Keywords", NULL);
@@ -108,9 +112,9 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
xmlNewProp(psNode, BAD_CAST "codeSpace", BAD_CAST MS_OWSCOMMON_OGC_CODESPACE);
- psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "ServiceTypeVersion", BAD_CAST version);
+ msLibXml2GenerateList(psRootNode, psNsOws, "ServiceTypeVersion", supported_versions, ',');
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "fees");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "fees", validated_language);
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "Fees", BAD_CAST value);
@@ -118,7 +122,7 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
xmlAddSibling(psNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_fees\" was missing for ows:Fees"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "accessconstraints");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "accessconstraints", validated_language);
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "AccessConstraints", BAD_CAST value);
@@ -145,7 +149,8 @@ xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const
*/
xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
- mapObj *map, const char *namespaces)
+ mapObj *map, const char *namespaces,
+ const char *validated_language)
{
const char *value = NULL;
@@ -162,7 +167,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
/* add child elements */
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactorganization");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactorganization", validated_language);
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "ProviderName", BAD_CAST value);
@@ -174,7 +179,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlNewNsProp(psNode, psNsXLink, BAD_CAST "type", BAD_CAST "simple");
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "service_onlineresource");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "service_onlineresource", validated_language);
xmlNewNsProp(psNode, psNsXLink, BAD_CAST "href", BAD_CAST value);
@@ -184,7 +189,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
psNode = xmlNewChild(psRootNode, psNsOws, BAD_CAST "ServiceContact", NULL);
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactperson");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactperson", validated_language);
psSubNode = xmlNewChild(psNode, psNsOws, BAD_CAST "IndividualName", BAD_CAST value);
@@ -192,7 +197,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_contactperson\" was missing for ows:IndividualName"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactposition");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactposition", validated_language);
psSubNode = xmlNewChild(psNode, psNsOws, BAD_CAST "PositionName", BAD_CAST value);
@@ -204,7 +209,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
psSubSubNode = xmlNewChild(psSubNode, psNsOws, BAD_CAST "Phone", NULL);
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactvoicetelephone");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactvoicetelephone", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "Voice", BAD_CAST value);
@@ -212,7 +217,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_contactvoicetelephone\" was missing for ows:Voice"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactfacsimiletelephone");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactfacsimiletelephone", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "Facsimile", BAD_CAST value);
@@ -222,7 +227,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
psSubSubNode = xmlNewChild(psSubNode, psNsOws, BAD_CAST "Address", NULL);
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "address");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "address", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "DeliveryPoint", BAD_CAST value);
@@ -230,7 +235,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_address\" was missing for ows:DeliveryPoint"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "city");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "city", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "City", BAD_CAST value);
@@ -238,7 +243,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_city\" was missing for ows:City"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "stateorprovince");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "stateorprovince", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "AdministrativeArea", BAD_CAST value);
@@ -246,7 +251,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_stateorprovince\" was missing for ows:AdministrativeArea"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "postcode");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "postcode", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "PostalCode", BAD_CAST value);
@@ -254,7 +259,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_postcode\" was missing for ows:PostalCode"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "country");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "country", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "Country", BAD_CAST value);
@@ -262,7 +267,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_country\" was missing for ows:Country"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactelectronicmailaddress");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactelectronicmailaddress", validated_language);
psSubSubSubNode = xmlNewChild(psSubSubNode, psNsOws, BAD_CAST "ElectronicMailAddress", BAD_CAST value);
@@ -274,7 +279,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlNewNsProp(psSubSubNode, psNsXLink, BAD_CAST "type", BAD_CAST "simple");
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "service_onlineresource");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "service_onlineresource", validated_language);
xmlNewNsProp(psSubSubNode, psNsXLink, BAD_CAST "href", BAD_CAST value);
@@ -282,7 +287,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_service_onlineresource\" was missing for ows:OnlineResource/@xlink:href"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "hoursofservice");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "hoursofservice", validated_language);
psSubSubNode = xmlNewChild(psSubNode, psNsOws, BAD_CAST "HoursOfService", BAD_CAST value);
@@ -290,7 +295,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_hoursofservice\" was missing for ows:HoursOfService"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "contactinstructions");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "contactinstructions", validated_language);
psSubSubNode = xmlNewChild(psSubNode, psNsOws, BAD_CAST "ContactInstructions", BAD_CAST value);
@@ -298,7 +303,7 @@ xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psNsXLink,
xmlAddSibling(psSubSubNode, xmlNewComment(BAD_CAST "WARNING: Optional metadata \"ows_contactinstructions\" was missing for ows:ContactInstructions"));
}
- value = msOWSLookupMetadata(&(map->web.metadata), namespaces, "role");
+ value = msOWSLookupMetadataWithLanguage(&(map->web.metadata), namespaces, "role", validated_language);
psSubNode = xmlNewChild(psNode, psNsOws, BAD_CAST "Role", BAD_CAST value);
@@ -484,7 +489,9 @@ xmlNodePtr msOWSCommonExceptionReport(xmlNsPtr psNsOws, int ows_version, const c
}
if (ExceptionText != NULL) {
- xmlNewChild(psMainNode, NULL, BAD_CAST "ExceptionText", BAD_CAST ExceptionText);
+ char* errorMessage = msEncodeHTMLEntities(ExceptionText);
+ xmlNewChild(psMainNode, NULL, BAD_CAST "ExceptionText", BAD_CAST errorMessage);
+ msFree(errorMessage);
}
free(xsi_schemaLocation);
@@ -615,21 +622,6 @@ int _validateNamespace(xmlNsPtr psNsOws)
return MS_FAILURE;
}
-xmlNodePtr msOWSCommonxmlNewChildEncoded( xmlNodePtr psParent, xmlNsPtr psNs, const char* name,
- const char *content, const char *encoding)
-{
- char *encoded = NULL;
- xmlNodePtr psNode;
-
- if (encoding && content) {
- encoded = msGetEncodedString(content, encoding);
- psNode = xmlNewChild(psParent, psNs, BAD_CAST name, BAD_CAST encoded);
- msFree(encoded);
- return psNode;
- } else
- return xmlNewChild(psParent, psNs, BAD_CAST name, BAD_CAST content);
-}
-
/*
* Valid an xml string against an XML schema
* Inpired from: http://xml.developpez.com/sources/?page=validation#validate_XSD_CppCLI_2
@@ -650,11 +642,65 @@ int msOWSSchemaValidation(const char* xml_schema, const char* xml)
schema = NULL;
ret = -1;
- /* Open XML Schema File */
- ctxt = xmlSchemaNewParserCtxt(xml_schema);
- /*
- else ctxt = xmlSchemaNewMemParserCtxt(xml_schema);
- */
+ /* To valide WFS 2.0 requests, we might need to explicitely import */
+ /* GML and FES 2.0 */
+ if( strlen(xml_schema) > strlen(MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION) &&
+ strcmp(xml_schema + strlen(xml_schema) -
+ strlen(MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION), MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION) == 0 )
+ {
+ char szInMemSchema[2048];
+ char szBaseLocation[256];
+
+ strncpy(szBaseLocation, xml_schema, strlen(xml_schema) - strlen(MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION));
+ szBaseLocation[strlen(xml_schema) - strlen(MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION)] = '\0';
+
+ strcpy(szInMemSchema, "<schema elementFormDefault=\"qualified\" version=\"1.0.0\" "
+ "xmlns=\"http://www.w3.org/2001/XMLSchema\">\n");
+
+ sprintf(szInMemSchema + strlen(szInMemSchema),
+ "<import namespace=\"%s\" schemaLocation=\"%s\" />\n",
+ MS_OWSCOMMON_WFS_20_NAMESPACE_URI, xml_schema);
+
+ if( strstr(xml, MS_OWSCOMMON_FES_20_NAMESPACE_URI) != NULL )
+ {
+ sprintf(szInMemSchema + strlen(szInMemSchema),
+ "<import namespace=\"%s\" schemaLocation=\"%s%s\" />\n",
+ MS_OWSCOMMON_FES_20_NAMESPACE_URI, szBaseLocation, MS_OWSCOMMON_FES_20_SCHEMA_LOCATION);
+ }
+
+ if( strstr(xml, MS_OWSCOMMON_GML_32_NAMESPACE_URI) != NULL )
+ {
+ sprintf(szInMemSchema + strlen(szInMemSchema),
+ "<import namespace=\"%s\" schemaLocation=\"%s%s\" />\n",
+ MS_OWSCOMMON_GML_32_NAMESPACE_URI, szBaseLocation, MS_OWSCOMMON_GML_321_SCHEMA_LOCATION);
+ }
+ else if( strstr(xml, MS_OWSCOMMON_GML_NAMESPACE_URI) != NULL )
+ {
+ if( strstr(xml, MS_OWSCOMMON_GML_212_SCHEMA_LOCATION) != NULL )
+ {
+ sprintf(szInMemSchema + strlen(szInMemSchema),
+ "<import namespace=\"%s\" schemaLocation=\"%s%s\" />\n",
+ MS_OWSCOMMON_GML_NAMESPACE_URI, szBaseLocation, MS_OWSCOMMON_GML_212_SCHEMA_LOCATION);
+ }
+ else if( strstr(xml, MS_OWSCOMMON_GML_311_SCHEMA_LOCATION) != NULL )
+ {
+ sprintf(szInMemSchema + strlen(szInMemSchema),
+ "<import namespace=\"%s\" schemaLocation=\"%s%s\" />\n",
+ MS_OWSCOMMON_GML_NAMESPACE_URI, szBaseLocation, MS_OWSCOMMON_GML_311_SCHEMA_LOCATION);
+ }
+ }
+
+ strcat(szInMemSchema, "</schema>\n");
+ /*fprintf(stderr, "%s\n", szInMemSchema);*/
+
+ ctxt = xmlSchemaNewMemParserCtxt(szInMemSchema, strlen(szInMemSchema));
+ }
+ else
+ {
+ /* Open XML Schema File */
+ ctxt = xmlSchemaNewParserCtxt(xml_schema);
+ }
+
/*
xmlSchemaSetParserErrors(ctxt,
(xmlSchemaValidityErrorFunc) libxml2_callback,
@@ -710,7 +756,7 @@ int msOWSSchemaValidation(const char* xml_schema, const char* xml)
*
*/
-int msOWSCommonNegotiateVersion(int requested_version, int supported_versions[], int num_supported_versions)
+int msOWSCommonNegotiateVersion(int requested_version, const int supported_versions[], int num_supported_versions)
{
int i;
diff --git a/mapowscommon.h b/mapowscommon.h
index 6d1ba1b..cb05d56 100644
--- a/mapowscommon.h
+++ b/mapowscommon.h
@@ -3,7 +3,7 @@
*
* Project: MapServer
* Purpose: OGC OWS Common Implementation include file
- * Author: Tom Kralidis (tomkralidis at hotmail.com)
+ * Author: Tom Kralidis (tomkralidis at gmail.com)
*
******************************************************************************
* Copyright (c) 2006, Tom Kralidis
@@ -35,6 +35,8 @@
#include<libxml/parser.h>
#include<libxml/tree.h>
+#endif
+
/* W3C namespaces */
#define MS_OWSCOMMON_W3C_XLINK_NAMESPACE_URI "http://www.w3.org/1999/xlink"
@@ -79,9 +81,32 @@
/* GML namespaces */
-#define MS_OWSCOMMON_GML_32_NAMESPACE_URI "http://www.opengis.net/gml/3.2"
+#define MS_OWSCOMMON_GML_NAMESPACE_URI "http://www.opengis.net/gml"
#define MS_OWSCOMMON_GML_NAMESPACE_PREFIX "gml"
+#define MS_OWSCOMMON_GML_32_NAMESPACE_URI "http://www.opengis.net/gml/3.2"
+
+#define MS_OWSCOMMON_GML_212_SCHEMA_LOCATION "/gml/2.1.2/feature.xsd"
+#define MS_OWSCOMMON_GML_311_SCHEMA_LOCATION "/gml/3.1.1/base/gml.xsd"
+#define MS_OWSCOMMON_GML_321_SCHEMA_LOCATION "/gml/3.2.1/gml.xsd"
+
+/* WFS namespaces */
+
+#define MS_OWSCOMMON_WFS_NAMESPACE_PREFIX "wfs"
+#define MS_OWSCOMMON_WFS_NAMESPACE_URI "http://www.opengis.net/wfs"
+#define MS_OWSCOMMON_WFS_20_NAMESPACE_URI "http://www.opengis.net/wfs/2.0"
+
+#define MS_OWSCOMMON_WFS_10_SCHEMA_LOCATION "/wfs/1.0.0/WFS-basic.xsd"
+#define MS_OWSCOMMON_WFS_11_SCHEMA_LOCATION "/wfs/1.1.0/wfs.xsd"
+#define MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION "/wfs/2.0/wfs.xsd"
+
+/* FES namespaces */
+
+#define MS_OWSCOMMON_FES_20_NAMESPACE_PREFIX "fes"
+#define MS_OWSCOMMON_FES_20_NAMESPACE_URI "http://www.opengis.net/fes/2.0"
+
+#define MS_OWSCOMMON_FES_20_SCHEMA_LOCATION "/filter/2.0/filterAll.xsd"
+
/* GMLCov namespaces */
#define MS_OWSCOMMON_GMLCOV_10_NAMESPACE_URI "http://www.opengis.net/gmlcov/1.0"
@@ -91,12 +116,55 @@
#define MS_OWSCOMMON_SWE_20_NAMESPACE_URI "http://www.opengis.net/swe/2.0"
#define MS_OWSCOMMON_SWE_NAMESPACE_PREFIX "swe"
+/* Inspire namespaces */
+
+#define MS_INSPIRE_COMMON_NAMESPACE_URI "http://inspire.ec.europa.eu/schemas/common/1.0"
+#define MS_INSPIRE_COMMON_NAMESPACE_PREFIX "inspire_common"
+#define MS_INSPIRE_COMMON_SCHEMA_LOCATION "/common/1.0/common.xsd"
+
+#define MS_INSPIRE_VS_NAMESPACE_URI "http://inspire.ec.europa.eu/schemas/inspire_vs/1.0"
+#define MS_INSPIRE_VS_NAMESPACE_PREFIX "inspire_vs"
+#define MS_INSPIRE_VS_SCHEMA_LOCATION "/inspire_vs/1.0/inspire_vs.xsd"
+
+#define MS_INSPIRE_DLS_NAMESPACE_URI "http://inspire.ec.europa.eu/schemas/inspire_dls/1.0"
+#define MS_INSPIRE_DLS_NAMESPACE_PREFIX "inspire_dls"
+#define MS_INSPIRE_DLS_SCHEMA_LOCATION "/inspire_dls/1.0/inspire_dls.xsd"
+
+
+/* MapServer namespaces */
+#define MS_DEFAULT_NAMESPACE_PREFIX "ms"
+#define MS_DEFAULT_NAMESPACE_URI "http://mapserver.gis.umn.edu/mapserver"
+
+
+/* OWS errors */
+
+/* OWS 1.1.0 Table 25 */
+#define MS_OWS_ERROR_OPERATION_NOT_SUPPORTED "OperationNotSupported"
+#define MS_OWS_ERROR_MISSING_PARAMETER_VALUE "MissingParameterValue"
+#define MS_OWS_ERROR_INVALID_PARAMETER_VALUE "InvalidParameterValue"
+#define MS_OWS_ERROR_VERSION_NEGOTIATION_FAILED "VersionNegotiationFailed"
+#define MS_OWS_ERROR_INVALID_UPDATE_SEQUENCE "InvalidUpdateSequence"
+#define MS_OWS_ERROR_OPTION_NOT_SUPPORTED "OptionNotSupported"
+#define MS_OWS_ERROR_NO_APPLICABLE_CODE "NoApplicableCode"
+
+#define MS_WFS_ERROR_OPERATION_PROCESSING_FAILED "OperationProcessingFailed"
+
+#ifdef USE_LIBXML2
+
/* function prototypes */
-xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map, const char *servicetype, const char *version, const char *namespaces);
+xmlNodePtr msOWSCommonServiceIdentification(xmlNsPtr psNsOws, mapObj *map,
+ const char *servicetype,
+ const char *version,
+ const char *namespaces,
+ const char *validated_language);
-xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws, xmlNsPtr psXLinkNs, mapObj *map, const char *namespaces);
+xmlNodePtr msOWSCommonServiceProvider(xmlNsPtr psNsOws,
+ xmlNsPtr psXLinkNs,
+ mapObj *map,
+ const char *namespaces,
+ const char *validated_language);
xmlNodePtr msOWSCommonOperationsMetadata(xmlNsPtr psNsOws);
@@ -116,13 +184,10 @@ xmlNodePtr msOWSCommonWGS84BoundingBox(xmlNsPtr psNsOws, int dimensions, double
int _validateNamespace(xmlNsPtr psNsOws);
-xmlNodePtr msOWSCommonxmlNewChildEncoded( xmlNodePtr psParent, xmlNsPtr psNs, const char* name,
- const char *content, const char *encoding);
-
int msOWSSchemaValidation(const char* xml_schema, const char* xml);
#endif /* defined(USE_LIBXML2) */
-int msOWSCommonNegotiateVersion(int requested_version, int supported_versions[], int num_supported_versions);
+int msOWSCommonNegotiateVersion(int requested_version, const int supported_versions[], int num_supported_versions);
#endif /* MAPOWSCOMMON_H */
diff --git a/mapparser.c b/mapparser.c
index eb13b0c..fc88ad5 100644
--- a/mapparser.c
+++ b/mapparser.c
@@ -1,23 +1,24 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -28,7 +29,7 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
@@ -46,7 +47,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.3"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -54,21 +55,116 @@
/* Pure parsers. */
#define YYPURE 1
-/* Push parsers. */
-#define YYPUSH 0
-
-/* Pull parsers. */
-#define YYPULL 1
-
/* Using locations. */
#define YYLSP_NEEDED 0
-/* Copy the first part of user declarations. */
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ BOOLEAN = 258,
+ NUMBER = 259,
+ STRING = 260,
+ TIME = 261,
+ SHAPE = 262,
+ OR = 263,
+ AND = 264,
+ NOT = 265,
+ IRE = 266,
+ IEQ = 267,
+ IN = 268,
+ GE = 269,
+ LE = 270,
+ GT = 271,
+ LT = 272,
+ NE = 273,
+ EQ = 274,
+ RE = 275,
+ DWITHIN = 276,
+ BEYOND = 277,
+ EQUALS = 278,
+ CONTAINS = 279,
+ WITHIN = 280,
+ CROSSES = 281,
+ OVERLAPS = 282,
+ TOUCHES = 283,
+ DISJOINT = 284,
+ INTERSECTS = 285,
+ ROUND = 286,
+ COMMIFY = 287,
+ LENGTH = 288,
+ AREA = 289,
+ FIRSTCAP = 290,
+ INITCAP = 291,
+ LOWER = 292,
+ UPPER = 293,
+ TOSTRING = 294,
+ JAVASCRIPT = 295,
+ SMOOTHSIA = 296,
+ GENERALIZE = 297,
+ SIMPLIFYPT = 298,
+ SIMPLIFY = 299,
+ DIFFERENCE = 300,
+ YYBUFFER = 301,
+ NEG = 302
+ };
+#endif
+/* Tokens. */
+#define BOOLEAN 258
+#define NUMBER 259
+#define STRING 260
+#define TIME 261
+#define SHAPE 262
+#define OR 263
+#define AND 264
+#define NOT 265
+#define IRE 266
+#define IEQ 267
+#define IN 268
+#define GE 269
+#define LE 270
+#define GT 271
+#define LT 272
+#define NE 273
+#define EQ 274
+#define RE 275
+#define DWITHIN 276
+#define BEYOND 277
+#define EQUALS 278
+#define CONTAINS 279
+#define WITHIN 280
+#define CROSSES 281
+#define OVERLAPS 282
+#define TOUCHES 283
+#define DISJOINT 284
+#define INTERSECTS 285
+#define ROUND 286
+#define COMMIFY 287
+#define LENGTH 288
+#define AREA 289
+#define FIRSTCAP 290
+#define INITCAP 291
+#define LOWER 292
+#define UPPER 293
+#define TOSTRING 294
+#define JAVASCRIPT 295
+#define SMOOTHSIA 296
+#define GENERALIZE 297
+#define SIMPLIFYPT 298
+#define SIMPLIFY 299
+#define DIFFERENCE 300
+#define YYBUFFER 301
+#define NEG 302
+
+
+
-/* Line 189 of yacc.c */
-#line 5 "/home/even/mapserver/git/mapserver/mapparser.y"
+/* Copy the first part of user declarations. */
+#line 5 "/Users/sdlime/mapserver/mapserver/mapparser.y"
/* C declarations */
#include <stdio.h>
@@ -87,9 +183,6 @@ int yylex(YYSTYPE *, parseObj *); /* prototype functions, defined after the gram
int yyerror(parseObj *, const char *);
-/* Line 189 of yacc.c */
-#line 92 "/home/even/mapserver/git/mapserver/mapparser.c"
-
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -108,85 +201,31 @@ int yyerror(parseObj *, const char *);
# define YYTOKEN_TABLE 0
#endif
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- NUMBER = 258,
- STRING = 259,
- TIME = 260,
- SHAPE = 261,
- OR = 262,
- AND = 263,
- NOT = 264,
- IRE = 265,
- IEQ = 266,
- IN = 267,
- GE = 268,
- LE = 269,
- GT = 270,
- LT = 271,
- NE = 272,
- EQ = 273,
- RE = 274,
- DWITHIN = 275,
- BEYOND = 276,
- CONTAINS = 277,
- WITHIN = 278,
- CROSSES = 279,
- OVERLAPS = 280,
- TOUCHES = 281,
- DISJOINT = 282,
- INTERSECTS = 283,
- ROUND = 284,
- COMMIFY = 285,
- LENGTH = 286,
- AREA = 287,
- TOSTRING = 288,
- SMOOTHSIA = 289,
- GENERALIZE = 290,
- SIMPLIFYPT = 291,
- SIMPLIFY = 292,
- DIFFERENCE = 293,
- YYBUFFER = 294,
- NEG = 295
- };
-#endif
-
-
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
+#line 30 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
-
-/* Line 214 of yacc.c */
-#line 30 "/home/even/mapserver/git/mapserver/mapparser.y"
-
double dblval;
int intval;
char *strval;
struct tm tmval;
shapeObj *shpval;
-
-
-
-/* Line 214 of yacc.c */
-#line 178 "/home/even/mapserver/git/mapserver/mapparser.c"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 193 of yacc.c. */
+#line 216 "/Users/sdlime/mapserver/mapserver/mapparser.c"
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
+
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 190 "/home/even/mapserver/git/mapserver/mapparser.c"
+/* Line 216 of yacc.c. */
+#line 229 "/Users/sdlime/mapserver/mapserver/mapparser.c"
#ifdef short
# undef short
@@ -236,7 +275,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -261,14 +300,14 @@ typedef short int yytype_int16;
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
-YYID (int yyi)
+YYID (int i)
#else
static int
-YYID (yyi)
- int yyi;
+YYID (i)
+ int i;
#endif
{
- return yyi;
+ return i;
}
#endif
@@ -349,9 +388,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss_alloc;
- YYSTYPE yyvs_alloc;
-};
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -385,12 +424,12 @@ union yyalloc
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
@@ -399,22 +438,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 47
+#define YYFINAL 78
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 415
+#define YYLAST 510
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 50
+#define YYNTOKENS 57
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 7
/* YYNRULES -- Number of rules. */
-#define YYNRULES 82
+#define YYNRULES 97
/* YYNRULES -- Number of states. */
-#define YYNSTATES 201
+#define YYNSTATES 287
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 295
+#define YYMAXUTOK 302
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -425,13 +464,13 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 44, 2, 2,
- 47, 48, 42, 40, 49, 41, 2, 43, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 51, 2, 2,
+ 54, 55, 49, 47, 56, 48, 2, 50, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 46, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 53, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -451,7 +490,8 @@ static const yytype_uint8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 45
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 52
};
#if YYDEBUG
@@ -459,69 +499,81 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
- 0, 0, 3, 4, 6, 8, 10, 12, 16, 20,
- 24, 28, 32, 36, 40, 44, 47, 50, 54, 58,
- 62, 66, 70, 74, 78, 82, 86, 90, 94, 98,
- 102, 106, 110, 114, 118, 122, 126, 130, 134, 138,
- 142, 146, 150, 154, 158, 162, 166, 170, 174, 178,
- 182, 186, 190, 194, 196, 200, 204, 208, 212, 216,
- 220, 223, 227, 232, 237, 244, 246, 250, 257, 264,
- 271, 278, 285, 290, 297, 306, 317, 319, 323, 327,
- 334, 339, 341
+ 0, 0, 3, 4, 6, 8, 10, 12, 14, 18,
+ 22, 26, 30, 34, 38, 42, 46, 50, 54, 57,
+ 60, 64, 68, 72, 76, 80, 84, 88, 92, 96,
+ 100, 104, 108, 112, 116, 120, 124, 128, 132, 136,
+ 140, 144, 148, 152, 156, 160, 164, 171, 178, 182,
+ 189, 193, 200, 204, 211, 215, 222, 226, 233, 237,
+ 244, 248, 257, 266, 268, 272, 276, 280, 284, 288,
+ 292, 295, 299, 304, 309, 316, 318, 322, 329, 336,
+ 343, 350, 357, 362, 369, 378, 389, 396, 398, 402,
+ 406, 413, 418, 423, 428, 433, 438, 440
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 51, 0, -1, -1, 52, -1, 53, -1, 55, -1,
- 54, -1, 52, 7, 52, -1, 52, 8, 52, -1,
- 52, 7, 53, -1, 52, 8, 53, -1, 53, 7,
- 52, -1, 53, 8, 52, -1, 53, 7, 53, -1,
- 53, 8, 53, -1, 9, 52, -1, 9, 53, -1,
- 55, 19, 55, -1, 55, 10, 55, -1, 53, 18,
- 53, -1, 53, 17, 53, -1, 53, 15, 53, -1,
- 53, 16, 53, -1, 53, 13, 53, -1, 53, 14,
- 53, -1, 47, 52, 48, -1, 55, 18, 55, -1,
- 55, 17, 55, -1, 55, 15, 55, -1, 55, 16,
- 55, -1, 55, 13, 55, -1, 55, 14, 55, -1,
- 56, 18, 56, -1, 56, 17, 56, -1, 56, 15,
- 56, -1, 56, 16, 56, -1, 56, 13, 56, -1,
- 56, 14, 56, -1, 55, 12, 55, -1, 53, 12,
- 55, -1, 53, 11, 53, -1, 55, 11, 55, -1,
- 56, 11, 56, -1, 54, 18, 54, -1, 54, 28,
- 54, -1, 54, 27, 54, -1, 54, 26, 54, -1,
- 54, 25, 54, -1, 54, 24, 54, -1, 54, 23,
- 54, -1, 54, 22, 54, -1, 54, 20, 54, -1,
- 54, 21, 54, -1, 3, -1, 47, 53, 48, -1,
- 53, 40, 53, -1, 53, 41, 53, -1, 53, 42,
- 53, -1, 53, 44, 53, -1, 53, 43, 53, -1,
- 41, 53, -1, 53, 46, 53, -1, 31, 47, 55,
- 48, -1, 32, 47, 54, 48, -1, 29, 47, 53,
- 49, 53, 48, -1, 6, -1, 47, 54, 48, -1,
- 39, 47, 54, 49, 53, 48, -1, 38, 47, 54,
- 49, 54, 48, -1, 37, 47, 54, 49, 53, 48,
- -1, 36, 47, 54, 49, 53, 48, -1, 35, 47,
- 54, 49, 53, 48, -1, 34, 47, 54, 48, -1,
- 34, 47, 54, 49, 53, 48, -1, 34, 47, 54,
- 49, 53, 49, 53, 48, -1, 34, 47, 54, 49,
- 53, 49, 53, 49, 55, 48, -1, 4, -1, 47,
- 55, 48, -1, 55, 40, 55, -1, 33, 47, 53,
- 49, 55, 48, -1, 30, 47, 55, 48, -1, 5,
- -1, 47, 56, 48, -1
+ 58, 0, -1, -1, 59, -1, 60, -1, 62, -1,
+ 61, -1, 3, -1, 54, 59, 55, -1, 59, 19,
+ 59, -1, 59, 8, 59, -1, 59, 9, 59, -1,
+ 59, 8, 60, -1, 59, 9, 60, -1, 60, 8,
+ 59, -1, 60, 9, 59, -1, 60, 8, 60, -1,
+ 60, 9, 60, -1, 10, 59, -1, 10, 60, -1,
+ 62, 20, 62, -1, 62, 11, 62, -1, 60, 19,
+ 60, -1, 60, 18, 60, -1, 60, 16, 60, -1,
+ 60, 17, 60, -1, 60, 14, 60, -1, 60, 15,
+ 60, -1, 62, 19, 62, -1, 62, 18, 62, -1,
+ 62, 16, 62, -1, 62, 17, 62, -1, 62, 14,
+ 62, -1, 62, 15, 62, -1, 63, 19, 63, -1,
+ 63, 18, 63, -1, 63, 16, 63, -1, 63, 17,
+ 63, -1, 63, 14, 63, -1, 63, 15, 63, -1,
+ 62, 13, 62, -1, 60, 13, 62, -1, 60, 12,
+ 60, -1, 62, 12, 62, -1, 63, 12, 63, -1,
+ 61, 19, 61, -1, 23, 54, 61, 56, 61, 55,
+ -1, 30, 54, 61, 56, 61, 55, -1, 61, 30,
+ 61, -1, 29, 54, 61, 56, 61, 55, -1, 61,
+ 29, 61, -1, 28, 54, 61, 56, 61, 55, -1,
+ 61, 28, 61, -1, 27, 54, 61, 56, 61, 55,
+ -1, 61, 27, 61, -1, 26, 54, 61, 56, 61,
+ 55, -1, 61, 26, 61, -1, 25, 54, 61, 56,
+ 61, 55, -1, 61, 25, 61, -1, 24, 54, 61,
+ 56, 61, 55, -1, 61, 24, 61, -1, 21, 54,
+ 61, 56, 61, 56, 60, 55, -1, 22, 54, 61,
+ 56, 61, 56, 60, 55, -1, 4, -1, 54, 60,
+ 55, -1, 60, 47, 60, -1, 60, 48, 60, -1,
+ 60, 49, 60, -1, 60, 51, 60, -1, 60, 50,
+ 60, -1, 48, 60, -1, 60, 53, 60, -1, 33,
+ 54, 62, 55, -1, 34, 54, 61, 55, -1, 31,
+ 54, 60, 56, 60, 55, -1, 7, -1, 54, 61,
+ 55, -1, 46, 54, 61, 56, 60, 55, -1, 45,
+ 54, 61, 56, 61, 55, -1, 44, 54, 61, 56,
+ 60, 55, -1, 43, 54, 61, 56, 60, 55, -1,
+ 42, 54, 61, 56, 60, 55, -1, 41, 54, 61,
+ 55, -1, 41, 54, 61, 56, 60, 55, -1, 41,
+ 54, 61, 56, 60, 56, 60, 55, -1, 41, 54,
+ 61, 56, 60, 56, 60, 56, 62, 55, -1, 40,
+ 54, 61, 56, 62, 55, -1, 5, -1, 54, 62,
+ 55, -1, 62, 47, 62, -1, 39, 54, 60, 56,
+ 62, 55, -1, 32, 54, 62, 55, -1, 38, 54,
+ 62, 55, -1, 37, 54, 62, 55, -1, 36, 54,
+ 62, 55, -1, 35, 54, 62, 55, -1, 6, -1,
+ 54, 63, 55, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 65, 65, 66, 79, 93, 106, 117, 125, 134,
- 142, 151, 159, 168, 176, 185, 186, 187, 202, 217,
- 223, 229, 235, 241, 247, 253, 254, 262, 270, 279,
- 287, 295, 303, 309, 315, 321, 327, 333, 339, 360,
- 381, 387, 395, 402, 413, 424, 435, 446, 457, 468,
- 479, 490, 500, 512, 513, 514, 515, 516, 517, 518,
- 525, 526, 527, 528, 536, 539, 540, 541, 551, 561,
- 571, 581, 591, 601, 611, 621, 634, 635, 636, 640,
- 644, 650, 651
+ 0, 68, 68, 69, 82, 96, 109, 119, 120, 121,
+ 125, 133, 142, 150, 159, 167, 176, 184, 193, 194,
+ 195, 215, 235, 241, 247, 253, 259, 265, 271, 279,
+ 287, 295, 303, 311, 319, 325, 331, 337, 343, 349,
+ 355, 376, 396, 402, 410, 416, 427, 438, 449, 460,
+ 471, 482, 493, 504, 515, 526, 537, 548, 559, 570,
+ 581, 592, 602, 614, 615, 616, 617, 618, 619, 620,
+ 627, 628, 629, 630, 638, 641, 642, 643, 653, 663,
+ 673, 683, 693, 703, 713, 723, 734, 752, 753, 754,
+ 758, 762, 766, 770, 774, 778, 784, 785
};
#endif
@@ -530,11 +582,12 @@ static const yytype_uint16 yyrline[] =
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "NUMBER", "STRING", "TIME", "SHAPE",
- "OR", "AND", "NOT", "IRE", "IEQ", "IN", "GE", "LE", "GT", "LT", "NE",
- "EQ", "RE", "DWITHIN", "BEYOND", "CONTAINS", "WITHIN", "CROSSES",
- "OVERLAPS", "TOUCHES", "DISJOINT", "INTERSECTS", "ROUND", "COMMIFY",
- "LENGTH", "AREA", "TOSTRING", "SMOOTHSIA", "GENERALIZE", "SIMPLIFYPT",
+ "$end", "error", "$undefined", "BOOLEAN", "NUMBER", "STRING", "TIME",
+ "SHAPE", "OR", "AND", "NOT", "IRE", "IEQ", "IN", "GE", "LE", "GT", "LT",
+ "NE", "EQ", "RE", "DWITHIN", "BEYOND", "EQUALS", "CONTAINS", "WITHIN",
+ "CROSSES", "OVERLAPS", "TOUCHES", "DISJOINT", "INTERSECTS", "ROUND",
+ "COMMIFY", "LENGTH", "AREA", "FIRSTCAP", "INITCAP", "LOWER", "UPPER",
+ "TOSTRING", "JAVASCRIPT", "SMOOTHSIA", "GENERALIZE", "SIMPLIFYPT",
"SIMPLIFY", "DIFFERENCE", "YYBUFFER", "'+'", "'-'", "'*'", "'/'", "'%'",
"NEG", "'^'", "'('", "')'", "','", "$accept", "input", "logical_exp",
"math_exp", "shape_exp", "string_exp", "time_exp", 0
@@ -550,36 +603,39 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 43, 45, 42, 47, 37, 295, 94, 40, 41, 44
+ 295, 296, 297, 298, 299, 300, 301, 43, 45, 42,
+ 47, 37, 302, 94, 40, 41, 44
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 50, 51, 51, 51, 51, 51, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 55, 55, 55, 55,
- 55, 56, 56
+ 0, 57, 58, 58, 58, 58, 58, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 63, 63
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
- 0, 2, 0, 1, 1, 1, 1, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 0, 2, 0, 1, 1, 1, 1, 1, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 6, 6, 3, 6,
+ 3, 6, 3, 6, 3, 6, 3, 6, 3, 6,
+ 3, 8, 8, 1, 3, 3, 3, 3, 3, 3,
2, 3, 4, 4, 6, 1, 3, 6, 6, 6,
- 6, 6, 4, 6, 8, 10, 1, 3, 3, 6,
- 4, 1, 3
+ 6, 6, 4, 6, 8, 10, 6, 1, 3, 3,
+ 6, 4, 4, 4, 4, 4, 1, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -587,67 +643,83 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 53, 76, 81, 65, 0, 0, 0, 0, 0,
+ 2, 7, 63, 87, 96, 75, 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, 3, 4, 6, 5,
+ 0, 18, 19, 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,
- 3, 4, 6, 5, 0, 15, 16, 0, 0, 0,
+ 0, 0, 70, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 60, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 54,
- 66, 77, 82, 7, 9, 8, 10, 11, 13, 12,
- 14, 40, 39, 23, 24, 21, 22, 20, 19, 55,
- 56, 57, 59, 58, 61, 43, 51, 52, 50, 49,
- 48, 47, 46, 45, 44, 18, 41, 38, 30, 31,
- 28, 29, 27, 26, 17, 78, 0, 42, 36, 37,
- 34, 35, 33, 32, 0, 0, 80, 62, 0, 63,
- 0, 72, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 64, 79, 73,
- 0, 71, 70, 69, 68, 67, 0, 74, 0, 0,
- 75
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8, 64, 76, 88, 97, 10, 12,
+ 11, 13, 9, 0, 14, 16, 15, 17, 42, 41,
+ 26, 27, 24, 25, 23, 22, 65, 66, 67, 69,
+ 68, 71, 45, 60, 58, 56, 54, 52, 50, 48,
+ 21, 43, 40, 32, 33, 30, 31, 29, 28, 20,
+ 89, 0, 44, 38, 39, 36, 37, 35, 34, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 91, 72, 73, 95, 94, 93, 92, 0,
+ 0, 82, 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,
+ 46, 59, 57, 55, 53, 51, 49, 47, 74, 90,
+ 86, 83, 0, 81, 80, 79, 78, 77, 0, 0,
+ 0, 61, 62, 84, 0, 0, 85
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 19, 20, 21, 27, 28, 24
+ -1, 35, 36, 37, 43, 44, 40
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -46
+#define YYPACT_NINF -50
static const yytype_int16 yypact[] =
{
- 85, -46, -46, -46, -46, 85, -45, -30, -24, -21,
- -8, 26, 40, 46, 78, 80, 81, 13, 85, 21,
- -3, 205, 293, 272, 253, -46, 263, 293, 272, 13,
- -1, -1, 167, 13, 167, 167, 167, 167, 167, 167,
- 13, 2, 27, 145, 274, 225, 120, -46, 85, 85,
- 85, 85, 13, -1, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -4, -4, -4,
- -4, -4, -4, -4, 304, -1, -26, -20, 167, 82,
- 314, -11, 90, 101, 102, 105, 106, -33, -46, -46,
- -46, -46, -46, 121, 216, -46, 263, 121, 216, -46,
- 263, 369, 124, 369, 369, 369, 369, 369, 369, 61,
- 61, 2, 2, 2, 2, -46, -46, -46, -46, -46,
- -46, -46, -46, -46, -46, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, -46, -4, -46, -46, -46,
- -46, -46, -46, -46, 13, -7, -46, -46, 128, -46,
- -1, -46, 13, 13, 13, 13, 167, 13, 129, 324,
- 126, 283, 333, 342, 351, 130, 360, -46, -46, -46,
- 13, -46, -46, -46, -46, -46, 294, -46, -1, 127,
- -46
+ 310, -50, -50, -50, -50, -50, 310, -32, -30, -17,
+ -15, -14, -11, -10, 10, 12, 14, 15, 16, 72,
+ 79, 95, 96, 98, 99, 100, 112, 113, 122, 123,
+ 129, 134, 135, -1, 310, 27, -4, 238, 399, 372,
+ 491, 35, 246, 399, 372, 178, 178, 178, 178, 178,
+ 178, 178, 178, 178, 178, -1, 13, 13, 178, 13,
+ 13, 13, 13, -1, 178, 178, 178, 178, 178, 178,
+ 178, -1, 2, 17, 156, 386, 362, 219, -50, 310,
+ 310, 310, 310, 310, -1, 13, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 178, 178,
+ 178, 178, 178, 178, 178, 178, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 4, 4, 4,
+ 4, 4, 4, 4, 178, 143, 144, 145, 152, 154,
+ 159, 169, 170, 171, 183, 81, 13, -39, -38, 80,
+ -36, -34, -27, -24, 274, 188, -49, 192, 193, 212,
+ 220, 223, 383, -50, -50, -50, -50, -50, -7, 353,
+ 35, 246, -50, 238, -7, 353, 35, 246, 33, 108,
+ 33, 33, 33, 33, 33, 33, 163, 163, 2, 2,
+ 2, 2, -50, -50, -50, -50, -50, -50, -50, -50,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ -50, 4, -50, -50, -50, -50, -50, -50, -50, 226,
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+ -1, -9, -50, -50, -50, -50, -50, -50, -50, 13,
+ 13, -50, -1, -1, -1, -1, 178, -1, 227, 234,
+ 236, 228, 243, 245, 247, 263, 264, 271, 273, 395,
+ 18, 70, 131, 404, 413, 422, 302, 431, -1, -1,
+ -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
+ -50, -50, -1, -50, -50, -50, -50, -50, 440, 449,
+ 222, -50, -50, -50, 13, 101, -50
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -46, -46, 1, 7, 74, 0, 9
+ -50, -50, -5, 8, 93, 0, 1
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -655,123 +727,151 @@ static const yytype_int8 yypgoto[] =
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
-static const yytype_uint8 yytable[] =
+static const yytype_uint16 yytable[] =
{
- 23, 3, 29, 2, 48, 49, 25, 60, 61, 62,
- 63, 64, 26, 65, 86, 109, 1, 30, 45, 42,
- 86, 47, 166, 31, 41, 43, 32, 46, 167, 7,
- 96, 97, 10, 86, 48, 49, 94, 171, 172, 33,
- 100, 111, 6, 156, 8, 9, 95, 107, 65, 113,
- 115, 117, 119, 122, 17, 114, 116, 118, 120, 121,
- 40, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 34, 22, 108, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 35, 1, 2,
- 3, 4, 44, 36, 5, 165, 157, 158, 159, 160,
- 161, 162, 163, 62, 63, 64, 99, 65, 101, 102,
- 103, 104, 105, 106, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 37, 17, 38, 39, 49,
- 169, 87, 18, 88, 89, 90, 91, 92, 93, 173,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 174, 175, 50, 51, 176, 177, 52, 53, 54, 55,
- 56, 57, 58, 59, 86, 178, 86, 86, 112, 0,
- 180, 179, 168, 4, 188, 200, 110, 112, 194, 181,
- 182, 183, 184, 0, 186, 60, 61, 62, 63, 64,
- 0, 65, 0, 109, 0, 0, 0, 196, 199, 0,
- 0, 11, 12, 13, 14, 15, 16, 0, 0, 0,
- 0, 0, 50, 51, 98, 0, 52, 53, 54, 55,
- 56, 57, 58, 59, 51, 0, 0, 52, 53, 54,
- 55, 56, 57, 58, 59, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 60, 61, 62, 63, 64,
- 185, 65, 0, 0, 0, 0, 60, 61, 62, 63,
- 64, 0, 65, 0, 87, 86, 88, 89, 90, 91,
- 92, 93, 0, 111, 52, 53, 54, 55, 56, 57,
- 58, 59, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 66, 0, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 60, 61, 62, 63, 64, 0, 65,
- 0, 66, 86, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 110, 60, 61, 62, 63, 64, 0, 65,
- 0, 189, 190, 0, 60, 61, 62, 63, 64, 0,
- 65, 0, 197, 198, 60, 61, 62, 63, 64, 0,
- 65, 0, 0, 164, 60, 61, 62, 63, 64, 0,
- 65, 0, 0, 170, 60, 61, 62, 63, 64, 0,
- 65, 0, 187, 60, 61, 62, 63, 64, 0, 65,
- 0, 191, 60, 61, 62, 63, 64, 0, 65, 0,
- 192, 60, 61, 62, 63, 64, 0, 65, 0, 193,
- 60, 61, 62, 63, 64, 0, 65, 0, 195, 60,
- 61, 62, 63, 64, 0, 65
+ 39, 41, 80, 2, 79, 80, 231, 232, 116, 116,
+ 4, 116, 81, 116, 42, 81, 222, 223, 3, 225,
+ 116, 226, 45, 116, 46, 79, 80, 78, 227, 73,
+ 17, 228, 19, 20, 76, 77, 81, 47, 116, 48,
+ 49, 72, 74, 50, 51, 18, 156, 33, 21, 22,
+ 23, 24, 25, 71, 81, 97, 137, 138, 201, 140,
+ 141, 142, 143, 135, 52, 116, 53, 136, 54, 55,
+ 56, 144, 153, 269, 158, 160, 162, 164, 166, 152,
+ 92, 93, 94, 95, 96, 169, 97, 159, 161, 163,
+ 165, 167, 168, 38, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 116, 202, 203,
+ 204, 205, 206, 207, 208, 270, 57, 75, 92, 93,
+ 94, 95, 96, 58, 97, 224, 221, 220, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 116, 59,
+ 60, 139, 61, 62, 63, 116, 286, 145, 146, 147,
+ 148, 149, 150, 151, 82, 83, 64, 65, 84, 85,
+ 86, 87, 88, 89, 90, 91, 66, 67, 92, 93,
+ 94, 95, 96, 68, 97, 5, 271, 272, 69, 70,
+ 0, 182, 183, 184, 185, 186, 187, 188, 189, 210,
+ 211, 212, 238, 92, 93, 94, 95, 96, 213, 97,
+ 214, 154, 94, 95, 96, 215, 97, 209, 26, 27,
+ 28, 29, 30, 31, 32, 216, 217, 218, 249, 250,
+ 251, 117, 124, 118, 119, 120, 121, 122, 123, 219,
+ 252, 253, 254, 255, 230, 257, 82, 83, 233, 234,
+ 84, 85, 86, 87, 88, 89, 90, 91, 84, 85,
+ 86, 87, 88, 89, 90, 91, 278, 279, 235, 92,
+ 93, 94, 95, 96, 157, 97, 236, 283, 284, 237,
+ 280, 155, 157, 260, 285, 92, 93, 94, 95, 96,
+ 258, 97, 259, 92, 93, 94, 95, 96, 261, 97,
+ 262, 0, 263, 239, 240, 241, 242, 243, 244, 245,
+ 246, 247, 248, 1, 2, 3, 4, 5, 264, 265,
+ 6, 92, 93, 94, 95, 96, 266, 97, 267, 256,
+ 229, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 276, 33, 0,
+ 0, 0, 83, 0, 34, 84, 85, 86, 87, 88,
+ 89, 90, 91, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 0, 0, 0, 0, 0, 0, 0,
+ 92, 93, 94, 95, 96, 98, 97, 0, 0, 116,
+ 99, 100, 101, 102, 103, 104, 105, 156, 98, 116,
+ 0, 0, 0, 99, 100, 101, 102, 103, 104, 105,
+ 92, 93, 94, 95, 96, 0, 97, 0, 154, 0,
+ 0, 155, 92, 93, 94, 95, 96, 0, 97, 0,
+ 268, 92, 93, 94, 95, 96, 0, 97, 0, 273,
+ 92, 93, 94, 95, 96, 0, 97, 0, 274, 92,
+ 93, 94, 95, 96, 0, 97, 0, 275, 92, 93,
+ 94, 95, 96, 0, 97, 0, 277, 92, 93, 94,
+ 95, 96, 0, 97, 0, 281, 92, 93, 94, 95,
+ 96, 0, 97, 117, 282, 118, 119, 120, 121, 122,
+ 123
};
static const yytype_int16 yycheck[] =
{
- 0, 5, 47, 4, 7, 8, 5, 40, 41, 42,
- 43, 44, 5, 46, 40, 48, 3, 47, 18, 18,
- 40, 0, 48, 47, 17, 18, 47, 18, 48, 30,
- 30, 31, 33, 40, 7, 8, 29, 48, 49, 47,
- 33, 48, 29, 47, 31, 32, 47, 40, 46, 48,
- 49, 50, 51, 53, 41, 48, 49, 50, 51, 52,
- 47, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 47, 0, 48, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 47, 3, 4,
- 5, 6, 18, 47, 9, 95, 87, 88, 89, 90,
- 91, 92, 93, 42, 43, 44, 32, 46, 34, 35,
- 36, 37, 38, 39, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 47, 41, 47, 47, 8,
- 48, 11, 47, 13, 14, 15, 16, 17, 18, 49,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 49, 49, 7, 8, 49, 49, 11, 12, 13, 14,
- 15, 16, 17, 18, 40, 156, 40, 40, 48, -1,
- 170, 164, 98, 6, 48, 48, 48, 48, 48, 172,
- 173, 174, 175, -1, 177, 40, 41, 42, 43, 44,
- -1, 46, -1, 48, -1, -1, -1, 190, 198, -1,
- -1, 34, 35, 36, 37, 38, 39, -1, -1, -1,
- -1, -1, 7, 8, 47, -1, 11, 12, 13, 14,
- 15, 16, 17, 18, 8, -1, -1, 11, 12, 13,
- 14, 15, 16, 17, 18, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 40, 41, 42, 43, 44,
- 176, 46, -1, -1, -1, -1, 40, 41, 42, 43,
- 44, -1, 46, -1, 11, 40, 13, 14, 15, 16,
- 17, 18, -1, 48, 11, 12, 13, 14, 15, 16,
- 17, 18, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 18, -1, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 40, 41, 42, 43, 44, -1, 46,
- -1, 18, 40, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 48, 40, 41, 42, 43, 44, -1, 46,
- -1, 48, 49, -1, 40, 41, 42, 43, 44, -1,
- 46, -1, 48, 49, 40, 41, 42, 43, 44, -1,
- 46, -1, -1, 49, 40, 41, 42, 43, 44, -1,
- 46, -1, -1, 49, 40, 41, 42, 43, 44, -1,
- 46, -1, 48, 40, 41, 42, 43, 44, -1, 46,
- -1, 48, 40, 41, 42, 43, 44, -1, 46, -1,
- 48, 40, 41, 42, 43, 44, -1, 46, -1, 48,
- 40, 41, 42, 43, 44, -1, 46, -1, 48, 40,
- 41, 42, 43, 44, -1, 46
+ 0, 6, 9, 4, 8, 9, 55, 56, 47, 47,
+ 6, 47, 19, 47, 6, 19, 55, 55, 5, 55,
+ 47, 55, 54, 47, 54, 8, 9, 0, 55, 34,
+ 31, 55, 33, 34, 34, 34, 19, 54, 47, 54,
+ 54, 33, 34, 54, 54, 32, 55, 48, 35, 36,
+ 37, 38, 39, 54, 19, 53, 56, 57, 54, 59,
+ 60, 61, 62, 55, 54, 47, 54, 54, 54, 54,
+ 54, 63, 55, 55, 79, 80, 81, 82, 83, 71,
+ 47, 48, 49, 50, 51, 85, 53, 79, 80, 81,
+ 82, 83, 84, 0, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 47, 117, 118,
+ 119, 120, 121, 122, 123, 55, 54, 34, 47, 48,
+ 49, 50, 51, 54, 53, 55, 136, 56, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 47, 54,
+ 54, 58, 54, 54, 54, 47, 55, 64, 65, 66,
+ 67, 68, 69, 70, 8, 9, 54, 54, 12, 13,
+ 14, 15, 16, 17, 18, 19, 54, 54, 47, 48,
+ 49, 50, 51, 54, 53, 7, 55, 56, 54, 54,
+ -1, 98, 99, 100, 101, 102, 103, 104, 105, 56,
+ 56, 56, 201, 47, 48, 49, 50, 51, 56, 53,
+ 56, 55, 49, 50, 51, 56, 53, 124, 40, 41,
+ 42, 43, 44, 45, 46, 56, 56, 56, 220, 229,
+ 230, 12, 54, 14, 15, 16, 17, 18, 19, 56,
+ 232, 233, 234, 235, 56, 237, 8, 9, 56, 56,
+ 12, 13, 14, 15, 16, 17, 18, 19, 12, 13,
+ 14, 15, 16, 17, 18, 19, 258, 259, 56, 47,
+ 48, 49, 50, 51, 55, 53, 56, 55, 56, 56,
+ 272, 55, 55, 55, 284, 47, 48, 49, 50, 51,
+ 56, 53, 56, 47, 48, 49, 50, 51, 55, 53,
+ 55, -1, 55, 210, 211, 212, 213, 214, 215, 216,
+ 217, 218, 219, 3, 4, 5, 6, 7, 55, 55,
+ 10, 47, 48, 49, 50, 51, 55, 53, 55, 236,
+ 56, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 55, 48, -1,
+ -1, -1, 9, -1, 54, 12, 13, 14, 15, 16,
+ 17, 18, 19, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, -1, -1, -1, -1, -1, -1, -1,
+ 47, 48, 49, 50, 51, 19, 53, -1, -1, 47,
+ 24, 25, 26, 27, 28, 29, 30, 55, 19, 47,
+ -1, -1, -1, 24, 25, 26, 27, 28, 29, 30,
+ 47, 48, 49, 50, 51, -1, 53, -1, 55, -1,
+ -1, 55, 47, 48, 49, 50, 51, -1, 53, -1,
+ 55, 47, 48, 49, 50, 51, -1, 53, -1, 55,
+ 47, 48, 49, 50, 51, -1, 53, -1, 55, 47,
+ 48, 49, 50, 51, -1, 53, -1, 55, 47, 48,
+ 49, 50, 51, -1, 53, -1, 55, 47, 48, 49,
+ 50, 51, -1, 53, -1, 55, 47, 48, 49, 50,
+ 51, -1, 53, 12, 55, 14, 15, 16, 17, 18,
+ 19
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 4, 5, 6, 9, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 41, 47, 51,
- 52, 53, 54, 55, 56, 52, 53, 54, 55, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 53, 52, 53, 54, 55, 56, 0, 7, 8,
- 7, 8, 11, 12, 13, 14, 15, 16, 17, 18,
- 40, 41, 42, 43, 44, 46, 18, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 40, 11, 13, 14,
- 15, 16, 17, 18, 53, 47, 55, 55, 47, 54,
- 53, 54, 54, 54, 54, 54, 54, 53, 48, 48,
- 48, 48, 48, 52, 53, 52, 53, 52, 53, 52,
- 53, 53, 55, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 47, 56, 56, 56,
- 56, 56, 56, 56, 49, 55, 48, 48, 54, 48,
- 49, 48, 49, 49, 49, 49, 49, 49, 56, 53,
- 55, 53, 53, 53, 53, 54, 53, 48, 48, 48,
- 49, 48, 48, 48, 48, 48, 53, 48, 49, 55,
- 48
+ 0, 3, 4, 5, 6, 7, 10, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 48, 54, 58, 59, 60, 61, 62,
+ 63, 59, 60, 61, 62, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 54, 60, 59, 60, 61, 62, 63, 0, 8,
+ 9, 19, 8, 9, 12, 13, 14, 15, 16, 17,
+ 18, 19, 47, 48, 49, 50, 51, 53, 19, 24,
+ 25, 26, 27, 28, 29, 30, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 47, 12, 14, 15,
+ 16, 17, 18, 19, 54, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 60, 54, 62, 62, 61,
+ 62, 62, 62, 62, 60, 61, 61, 61, 61, 61,
+ 61, 61, 60, 55, 55, 55, 55, 55, 59, 60,
+ 59, 60, 59, 60, 59, 60, 59, 60, 60, 62,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 61, 61, 61, 61, 61, 61, 61, 61,
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 54, 63, 63, 63, 63, 63, 63, 63, 61,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 62, 55, 55, 55, 55, 55, 55, 55, 56,
+ 56, 55, 56, 56, 56, 56, 56, 56, 63, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 60,
+ 62, 62, 60, 60, 60, 60, 61, 60, 56, 56,
+ 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 56, 55, 55, 55, 55, 55, 60, 60,
+ 60, 55, 55, 55, 56, 62, 55
};
#define yyerrok (yyerrstatus = 0)
@@ -845,7 +945,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -959,20 +1059,17 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, p)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
-yy_stack_print (yybottom, yytop)
- yytype_int16 *yybottom;
- yytype_int16 *yytop;
+yy_stack_print (bottom, top)
+ yytype_int16 *bottom;
+ yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (; yybottom <= yytop; yybottom++)
- {
- int yybot = *yybottom;
- YYFPRINTF (stderr, " %d", yybot);
- }
+ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
@@ -1007,11 +1104,11 @@ yy_reduce_print (yyvsp, yyrule, p)
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
, p);
- YYFPRINTF (stderr, "\n");
+ fprintf (stderr, "\n");
}
}
@@ -1293,8 +1390,10 @@ yydestruct (yymsg, yytype, yyvaluep, p)
break;
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
+
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
@@ -1313,9 +1412,10 @@ int yyparse ();
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1339,46 +1439,22 @@ yyparse (p)
#endif
#endif
{
-/* The lookahead symbol. */
+ /* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
- /* Number of syntax errors so far. */
- int yynerrs;
-
- int yystate;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- `yyss': related to states.
- `yyvs': related to semantic values.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
-
- YYSIZE_T yystacksize;
+/* Number of syntax errors so far. */
+int yynerrs;
+ int yystate;
int yyn;
int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
@@ -1386,28 +1462,51 @@ YYSTYPE yylval;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yytoken = 0;
- yyss = yyssa;
- yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
+ yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
+
yyssp = yyss;
yyvsp = yyvs;
@@ -1437,6 +1536,7 @@ YYSTYPE yylval;
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
+
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
@@ -1444,6 +1544,7 @@ YYSTYPE yylval;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
+
&yystacksize);
yyss = yyss1;
@@ -1466,8 +1567,9 @@ YYSTYPE yylval;
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
@@ -1478,6 +1580,7 @@ YYSTYPE yylval;
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
+
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
@@ -1487,9 +1590,6 @@ YYSTYPE yylval;
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- if (yystate == YYFINAL)
- YYACCEPT;
-
goto yybackup;
/*-----------.
@@ -1498,16 +1598,16 @@ YYSTYPE yylval;
yybackup:
/* Do appropriate processing given the current state. Read a
- lookahead token if we need one and don't already have one. */
+ look-ahead token if we need one and don't already have one. */
- /* First try to decide what to do without reference to lookahead token. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1539,16 +1639,20 @@ yybackup:
goto yyreduce;
}
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
- /* Shift the lookahead token. */
+ /* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the shifted token. */
- yychar = YYEMPTY;
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
@@ -1588,67 +1692,59 @@ yyreduce:
switch (yyn)
{
case 3:
-
-/* Line 1455 of yacc.c */
-#line 66 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 69 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- p->result.intval = (yyvsp[(1) - (1)].intval);
- break;
- case(MS_PARSE_TYPE_STRING):
- if((yyvsp[(1) - (1)].intval))
- p->result.strval = strdup("true");
- else
- p->result.strval = strdup("false");
- break;
- }
- ;}
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ p->result.intval = (yyvsp[(1) - (1)].intval);
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ if((yyvsp[(1) - (1)].intval))
+ p->result.strval = strdup("true");
+ else
+ p->result.strval = strdup("false");
+ break;
+ }
+ }
break;
case 4:
-
-/* Line 1455 of yacc.c */
-#line 79 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 82 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- if((yyvsp[(1) - (1)].dblval) != 0)
- p->result.intval = MS_TRUE;
- else
- p->result.intval = MS_FALSE;
- break;
- case(MS_PARSE_TYPE_STRING):
- p->result.strval = (char *)malloc(64); /* large enough for a double */
- snprintf(p->result.strval, 64, "%g", (yyvsp[(1) - (1)].dblval));
- break;
- }
- ;}
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ if((yyvsp[(1) - (1)].dblval) != 0)
+ p->result.intval = MS_TRUE;
+ else
+ p->result.intval = MS_FALSE;
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ p->result.strval = (char *)malloc(64); /* large enough for a double */
+ snprintf(p->result.strval, 64, "%g", (yyvsp[(1) - (1)].dblval));
+ break;
+ }
+ }
break;
case 5:
-
-/* Line 1455 of yacc.c */
-#line 93 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 96 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- if((yyvsp[(1) - (1)].strval)) /* string is not NULL */
- p->result.intval = MS_TRUE;
- else
- p->result.intval = MS_FALSE;
- break;
- case(MS_PARSE_TYPE_STRING):
- p->result.strval = (yyvsp[(1) - (1)].strval); // strdup($1);
- break;
- }
- ;}
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ if((yyvsp[(1) - (1)].strval)) /* string is not NULL */
+ p->result.intval = MS_TRUE;
+ else
+ p->result.intval = MS_FALSE;
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ p->result.strval = (yyvsp[(1) - (1)].strval); // strdup($1);
+ break;
+ }
+ }
break;
case 6:
-
-/* Line 1455 of yacc.c */
-#line 106 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 109 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
switch(p->type) {
case(MS_PARSE_TYPE_SHAPE):
@@ -1656,967 +1752,1010 @@ yyreduce:
p->result.shpval->scratch = MS_FALSE;
break;
}
- ;}
- break;
-
- case 7:
-
-/* Line 1455 of yacc.c */
-#line 117 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else if((yyvsp[(3) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ }
break;
case 8:
-
-/* Line 1455 of yacc.c */
-#line 125 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
- if((yyvsp[(3) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- } else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 120 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.intval) = (yyvsp[(2) - (3)].intval); }
break;
case 9:
-
-/* Line 1455 of yacc.c */
-#line 134 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 121 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else if((yyvsp[(3) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ (yyval.intval) = MS_FALSE;
+ if((yyvsp[(1) - (3)].intval) == (yyvsp[(3) - (3)].intval)) (yyval.intval) = MS_TRUE;
+ }
break;
case 10:
-
-/* Line 1455 of yacc.c */
-#line 142 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
- if((yyvsp[(3) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- } else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 125 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else if((yyvsp[(3) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 11:
-
-/* Line 1455 of yacc.c */
-#line 151 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 133 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else if((yyvsp[(3) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
+ if((yyvsp[(3) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ } else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 12:
-
-/* Line 1455 of yacc.c */
-#line 159 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) != 0) {
- if((yyvsp[(3) - (3)].intval) == MS_TRUE)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- } else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 142 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else if((yyvsp[(3) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 13:
-
-/* Line 1455 of yacc.c */
-#line 168 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 150 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else if((yyvsp[(3) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
+ if((yyvsp[(3) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ } else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 14:
-
-/* Line 1455 of yacc.c */
-#line 176 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) != 0) {
- if((yyvsp[(3) - (3)].dblval) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- } else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 159 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else if((yyvsp[(3) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 15:
-
-/* Line 1455 of yacc.c */
-#line 185 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.intval) = !(yyvsp[(2) - (2)].intval); ;}
+#line 167 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) != 0) {
+ if((yyvsp[(3) - (3)].intval) == MS_TRUE)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ } else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 16:
-
-/* Line 1455 of yacc.c */
-#line 186 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.intval) = !(yyvsp[(2) - (2)].dblval); ;}
+#line 176 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else if((yyvsp[(3) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 17:
-
-/* Line 1455 of yacc.c */
-#line 187 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 184 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- ms_regex_t re;
-
- if(ms_regcomp(&re, (yyvsp[(3) - (3)].strval), MS_REG_EXTENDED|MS_REG_NOSUB) != 0)
- (yyval.intval) = MS_FALSE;
-
- if(ms_regexec(&re, (yyvsp[(1) - (3)].strval), 0, NULL, 0) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
-
- ms_regfree(&re);
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+ if((yyvsp[(1) - (3)].dblval) != 0) {
+ if((yyvsp[(3) - (3)].dblval) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ } else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 18:
-
-/* Line 1455 of yacc.c */
-#line 202 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- ms_regex_t re;
-
- if(ms_regcomp(&re, (yyvsp[(3) - (3)].strval), MS_REG_EXTENDED|MS_REG_NOSUB|MS_REG_ICASE) != 0)
- (yyval.intval) = MS_FALSE;
-
- if(ms_regexec(&re, (yyvsp[(1) - (3)].strval), 0, NULL, 0) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
-
- ms_regfree(&re);
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+#line 193 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.intval) = !(yyvsp[(2) - (2)].intval); }
break;
case 19:
-
-/* Line 1455 of yacc.c */
-#line 217 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 194 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.intval) = !(yyvsp[(2) - (2)].dblval); }
break;
case 20:
-
-/* Line 1455 of yacc.c */
-#line 223 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 195 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].dblval) != (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ ms_regex_t re;
+
+ if(MS_STRING_IS_NULL_OR_EMPTY((yyvsp[(1) - (3)].strval)) == MS_TRUE) {
+ (yyval.intval) = MS_FALSE;
+ } else {
+ if(ms_regcomp(&re, (yyvsp[(3) - (3)].strval), MS_REG_EXTENDED|MS_REG_NOSUB) != 0) {
+ (yyval.intval) = MS_FALSE;
+ } else {
+ if(ms_regexec(&re, (yyvsp[(1) - (3)].strval), 0, NULL, 0) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ ms_regfree(&re);
+ }
+ }
+
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 21:
+#line 215 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ ms_regex_t re;
+
+ if(MS_STRING_IS_NULL_OR_EMPTY((yyvsp[(1) - (3)].strval)) == MS_TRUE) {
+ (yyval.intval) = MS_FALSE;
+ } else {
+ if(ms_regcomp(&re, (yyvsp[(3) - (3)].strval), MS_REG_EXTENDED|MS_REG_NOSUB|MS_REG_ICASE) != 0) {
+ (yyval.intval) = MS_FALSE;
+ } else {
+ if(ms_regexec(&re, (yyvsp[(1) - (3)].strval), 0, NULL, 0) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ ms_regfree(&re);
+ }
+ }
-/* Line 1455 of yacc.c */
-#line 229 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) > (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 22:
-
-/* Line 1455 of yacc.c */
-#line 235 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 235 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].dblval) < (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 23:
-
-/* Line 1455 of yacc.c */
-#line 241 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) >= (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 241 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) != (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 24:
-
-/* Line 1455 of yacc.c */
-#line 247 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(1) - (3)].dblval) <= (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 247 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) > (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 25:
-
-/* Line 1455 of yacc.c */
-#line 253 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.intval) = (yyvsp[(2) - (3)].intval); ;}
+#line 253 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if((yyvsp[(1) - (3)].dblval) < (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 26:
-
-/* Line 1455 of yacc.c */
-#line 254 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 259 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+ if((yyvsp[(1) - (3)].dblval) >= (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 27:
-
-/* Line 1455 of yacc.c */
-#line 262 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 265 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+ if((yyvsp[(1) - (3)].dblval) <= (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 28:
-
-/* Line 1455 of yacc.c */
-#line 270 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) > 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- /* printf("Not freeing: %s >= %s\n",$1, $3); */
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+#line 271 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 29:
-
-/* Line 1455 of yacc.c */
-#line 279 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) < 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+#line 279 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 30:
-
-/* Line 1455 of yacc.c */
-#line 287 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) >= 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+#line 287 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) > 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 31:
-
-/* Line 1455 of yacc.c */
-#line 295 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) <= 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+#line 295 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) < 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 32:
-
-/* Line 1455 of yacc.c */
-#line 303 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 303 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) >= 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 33:
-
-/* Line 1455 of yacc.c */
-#line 309 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) != 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 311 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) <= 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 34:
-
-/* Line 1455 of yacc.c */
-#line 315 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 319 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) > 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 35:
-
-/* Line 1455 of yacc.c */
-#line 321 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 325 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) < 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) != 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 36:
-
-/* Line 1455 of yacc.c */
-#line 327 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 331 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) >= 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) > 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 37:
-
-/* Line 1455 of yacc.c */
-#line 333 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 337 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) <= 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) < 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 38:
-
-/* Line 1455 of yacc.c */
-#line 339 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 343 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- char *delim,*bufferp;
-
- (yyval.intval) = MS_FALSE;
- bufferp=(yyvsp[(3) - (3)].strval);
-
- while((delim=strchr(bufferp,',')) != NULL) {
- *delim='\0';
- if(strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) {
- (yyval.intval) = MS_TRUE;
- break;
- }
- *delim=',';
- bufferp=delim+1;
- }
-
- if((yyval.intval)==MS_FALSE && strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) // test for last (or only) item
- (yyval.intval) = MS_TRUE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) >= 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 39:
+#line 349 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) <= 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 360 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 40:
+#line 355 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- char *delim,*bufferp;
+ char *delim, *bufferp;
- (yyval.intval) = MS_FALSE;
- bufferp=(yyvsp[(3) - (3)].strval);
+ (yyval.intval) = MS_FALSE;
+ bufferp=(yyvsp[(3) - (3)].strval);
- while((delim=strchr(bufferp,',')) != NULL) {
- *delim='\0';
- if((yyvsp[(1) - (3)].dblval) == atof(bufferp)) {
- (yyval.intval) = MS_TRUE;
- break;
- }
- *delim=',';
- bufferp=delim+1;
- }
+ while((delim=strchr(bufferp,',')) != NULL) {
+ *delim='\0';
+ if(strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) {
+ (yyval.intval) = MS_TRUE;
+ break;
+ }
+ *delim=',';
+ bufferp=delim+1;
+ }
- if((yyvsp[(1) - (3)].dblval) == atof(bufferp)) // is this test necessary?
- (yyval.intval) = MS_TRUE;
-
- free((yyvsp[(3) - (3)].strval));
- ;}
+ if((yyval.intval) == MS_FALSE && strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) // test for last (or only) item
+ (yyval.intval) = MS_TRUE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
- case 40:
-
-/* Line 1455 of yacc.c */
-#line 381 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 41:
+#line 376 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
- break;
+ char *delim,*bufferp;
- case 41:
+ (yyval.intval) = MS_FALSE;
+ bufferp=(yyvsp[(3) - (3)].strval);
-/* Line 1455 of yacc.c */
-#line 387 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if(strcasecmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- free((yyvsp[(1) - (3)].strval));
- free((yyvsp[(3) - (3)].strval));
- ;}
+ while((delim=strchr(bufferp,',')) != NULL) {
+ *delim='\0';
+ if((yyvsp[(1) - (3)].dblval) == atof(bufferp)) {
+ (yyval.intval) = MS_TRUE;
+ break;
+ }
+ *delim=',';
+ bufferp=delim+1;
+ }
+
+ if((yyvsp[(1) - (3)].dblval) == atof(bufferp)) // is this test necessary?
+ (yyval.intval) = MS_TRUE;
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 42:
-
-/* Line 1455 of yacc.c */
-#line 395 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 396 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 43:
-
-/* Line 1455 of yacc.c */
-#line 402 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSEquals((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Equals (EQ or ==) operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 402 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ if(strcasecmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ free((yyvsp[(1) - (3)].strval));
+ free((yyvsp[(3) - (3)].strval));
+ }
break;
case 44:
-
-/* Line 1455 of yacc.c */
-#line 413 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 410 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- int rval;
- rval = msGEOSIntersects((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Intersects operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+ if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 45:
-
-/* Line 1455 of yacc.c */
-#line 424 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSDisjoint((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Disjoint operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 416 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSEquals((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Equals (EQ or ==) operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 46:
-
-/* Line 1455 of yacc.c */
-#line 435 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSTouches((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Touches operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 427 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSEquals((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Equals function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 47:
-
-/* Line 1455 of yacc.c */
-#line 446 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSOverlaps((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Overlaps operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 438 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSIntersects((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Intersects function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 48:
-
-/* Line 1455 of yacc.c */
-#line 457 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSCrosses((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Crosses operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 449 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSIntersects((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Intersects operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 49:
-
-/* Line 1455 of yacc.c */
-#line 468 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSWithin((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Within operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 460 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSDisjoint((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Disjoint function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 50:
-
-/* Line 1455 of yacc.c */
-#line 479 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- int rval;
- rval = msGEOSContains((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(rval == -1) {
- yyerror(p, "Contains operator failed.");
- return(-1);
- } else
- (yyval.intval) = rval;
- ;}
+#line 471 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSDisjoint((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Disjoint operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 51:
-
-/* Line 1455 of yacc.c */
-#line 490 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- double d;
- d = msGEOSDistance((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(d == 0.0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+#line 482 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSTouches((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Touches function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 52:
+#line 493 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSTouches((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Touches operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 500 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 53:
+#line 504 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- double d;
- d = msGEOSDistance((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
- if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
- if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
- if(d > 0.0)
- (yyval.intval) = MS_TRUE;
- else
- (yyval.intval) = MS_FALSE;
- ;}
+ int rval;
+ rval = msGEOSOverlaps((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Overlaps function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 54:
-
-/* Line 1455 of yacc.c */
-#line 513 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (yyvsp[(2) - (3)].dblval); ;}
+#line 515 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSOverlaps((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Overlaps operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 55:
-
-/* Line 1455 of yacc.c */
-#line 514 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) + (yyvsp[(3) - (3)].dblval); ;}
+#line 526 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSCrosses((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Crosses function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 56:
-
-/* Line 1455 of yacc.c */
-#line 515 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) - (yyvsp[(3) - (3)].dblval); ;}
+#line 537 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSCrosses((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Crosses operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 57:
-
-/* Line 1455 of yacc.c */
-#line 516 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) * (yyvsp[(3) - (3)].dblval); ;}
+#line 548 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSWithin((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Within function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 58:
-
-/* Line 1455 of yacc.c */
-#line 517 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (int)(yyvsp[(1) - (3)].dblval) % (int)(yyvsp[(3) - (3)].dblval); ;}
+#line 559 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSWithin((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Within operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 59:
-
-/* Line 1455 of yacc.c */
-#line 518 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(3) - (3)].dblval) == 0.0) {
- yyerror(p, "Division by zero.");
- return(-1);
- } else
- (yyval.dblval) = (yyvsp[(1) - (3)].dblval) / (yyvsp[(3) - (3)].dblval);
- ;}
+#line 570 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSContains((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if((yyvsp[(3) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (6)].shpval));
+ if((yyvsp[(5) - (6)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (6)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Contains function failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 60:
-
-/* Line 1455 of yacc.c */
-#line 525 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (yyvsp[(2) - (2)].dblval); ;}
+#line 581 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ int rval;
+ rval = msGEOSContains((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
+ if((yyvsp[(1) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(1) - (3)].shpval));
+ if((yyvsp[(3) - (3)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (3)].shpval));
+ if(rval == -1) {
+ yyerror(p, "Contains operator failed.");
+ return(-1);
+ } else
+ (yyval.intval) = rval;
+ }
break;
case 61:
-
-/* Line 1455 of yacc.c */
-#line 526 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = pow((yyvsp[(1) - (3)].dblval), (yyvsp[(3) - (3)].dblval)); ;}
+#line 592 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ double d;
+ d = msGEOSDistance((yyvsp[(3) - (8)].shpval), (yyvsp[(5) - (8)].shpval));
+ if((yyvsp[(3) - (8)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (8)].shpval));
+ if((yyvsp[(5) - (8)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (8)].shpval));
+ if(d <= (yyvsp[(7) - (8)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 62:
-
-/* Line 1455 of yacc.c */
-#line 527 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = strlen((yyvsp[(3) - (4)].strval)); ;}
- break;
-
- case 63:
-
-/* Line 1455 of yacc.c */
-#line 528 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- if((yyvsp[(3) - (4)].shpval)->type != MS_SHAPE_POLYGON) {
- yyerror(p, "Area can only be computed for polygon shapes.");
- return(-1);
- }
- (yyval.dblval) = msGetPolygonArea((yyvsp[(3) - (4)].shpval));
- if((yyvsp[(3) - (4)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (4)].shpval));
- ;}
+#line 602 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ double d;
+ d = msGEOSDistance((yyvsp[(3) - (8)].shpval), (yyvsp[(5) - (8)].shpval));
+ if((yyvsp[(3) - (8)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (8)].shpval));
+ if((yyvsp[(5) - (8)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(5) - (8)].shpval));
+ if(d > (yyvsp[(7) - (8)].dblval))
+ (yyval.intval) = MS_TRUE;
+ else
+ (yyval.intval) = MS_FALSE;
+ }
break;
case 64:
+#line 615 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (yyvsp[(2) - (3)].dblval); }
+ break;
-/* Line 1455 of yacc.c */
-#line 536 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.dblval) = (MS_NINT((yyvsp[(3) - (6)].dblval)/(yyvsp[(5) - (6)].dblval)))*(yyvsp[(5) - (6)].dblval); ;}
+ case 65:
+#line 616 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) + (yyvsp[(3) - (3)].dblval); }
break;
case 66:
-
-/* Line 1455 of yacc.c */
-#line 540 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.shpval) = (yyvsp[(2) - (3)].shpval); ;}
+#line 617 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) - (yyvsp[(3) - (3)].dblval); }
break;
case 67:
-
-/* Line 1455 of yacc.c */
-#line 541 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- shapeObj *s;
- s = msGEOSBuffer((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
- if(!s) {
- yyerror(p, "Executing buffer failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+#line 618 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) * (yyvsp[(3) - (3)].dblval); }
break;
case 68:
-
-/* Line 1455 of yacc.c */
-#line 551 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- shapeObj *s;
- s = msGEOSDifference((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
- if(!s) {
- yyerror(p, "Executing difference failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+#line 619 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (int)(yyvsp[(1) - (3)].dblval) % (int)(yyvsp[(3) - (3)].dblval); }
break;
case 69:
-
-/* Line 1455 of yacc.c */
-#line 561 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 620 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msGEOSSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
- if(!s) {
- yyerror(p, "Executing simplify failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ if((yyvsp[(3) - (3)].dblval) == 0.0) {
+ yyerror(p, "Division by zero.");
+ return(-1);
+ } else
+ (yyval.dblval) = (yyvsp[(1) - (3)].dblval) / (yyvsp[(3) - (3)].dblval);
+ }
break;
case 70:
-
-/* Line 1455 of yacc.c */
-#line 571 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- shapeObj *s;
- s = msGEOSTopologyPreservingSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
- if(!s) {
- yyerror(p, "Executing simplifypt failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+#line 627 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (yyvsp[(2) - (2)].dblval); }
break;
case 71:
+#line 628 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = pow((yyvsp[(1) - (3)].dblval), (yyvsp[(3) - (3)].dblval)); }
+ break;
+
+ case 72:
+#line 629 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = strlen((yyvsp[(3) - (4)].strval)); }
+ break;
-/* Line 1455 of yacc.c */
-#line 581 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 73:
+#line 630 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msGeneralize((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
- if(!s) {
- yyerror(p, "Executing generalize failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ if((yyvsp[(3) - (4)].shpval)->type != MS_SHAPE_POLYGON) {
+ yyerror(p, "Area can only be computed for polygon shapes.");
+ return(-1);
+ }
+ (yyval.dblval) = msGetPolygonArea((yyvsp[(3) - (4)].shpval));
+ if((yyvsp[(3) - (4)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (4)].shpval));
+ }
break;
- case 72:
+ case 74:
+#line 638 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.dblval) = (MS_NINT((yyvsp[(3) - (6)].dblval)/(yyvsp[(5) - (6)].dblval)))*(yyvsp[(5) - (6)].dblval); }
+ break;
+
+ case 76:
+#line 642 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.shpval) = (yyvsp[(2) - (3)].shpval); }
+ break;
-/* Line 1455 of yacc.c */
-#line 591 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 77:
+#line 643 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msSmoothShapeSIA((yyvsp[(3) - (4)].shpval), 3, 1, NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ shapeObj *s;
+ s = msGEOSBuffer((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+ if(!s) {
+ yyerror(p, "Executing buffer failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
break;
- case 73:
+ case 78:
+#line 653 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ shapeObj *s;
+ s = msGEOSDifference((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
+ if(!s) {
+ yyerror(p, "Executing difference failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 601 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 79:
+#line 663 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msSmoothShapeSIA((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval), 1, NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ shapeObj *s;
+ s = msGEOSSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+ if(!s) {
+ yyerror(p, "Executing simplify failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
break;
- case 74:
+ case 80:
+#line 673 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ shapeObj *s;
+ s = msGEOSTopologyPreservingSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+ if(!s) {
+ yyerror(p, "Executing simplifypt failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 611 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 81:
+#line 683 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msSmoothShapeSIA((yyvsp[(3) - (8)].shpval), (yyvsp[(5) - (8)].dblval), (yyvsp[(7) - (8)].dblval), NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ shapeObj *s;
+ s = msGeneralize((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+ if(!s) {
+ yyerror(p, "Executing generalize failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
break;
- case 75:
+ case 82:
+#line 693 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ shapeObj *s;
+ s = msSmoothShapeSIA((yyvsp[(3) - (4)].shpval), 3, 1, NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 621 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 83:
+#line 703 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- shapeObj *s;
- s = msSmoothShapeSIA((yyvsp[(3) - (10)].shpval), (yyvsp[(5) - (10)].dblval), (yyvsp[(7) - (10)].dblval), (yyvsp[(9) - (10)].strval));
- free((yyvsp[(9) - (10)].strval));
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- (yyval.shpval) = s;
- ;}
+ shapeObj *s;
+ s = msSmoothShapeSIA((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval), 1, NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
break;
- case 77:
+ case 84:
+#line 713 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ shapeObj *s;
+ s = msSmoothShapeSIA((yyvsp[(3) - (8)].shpval), (yyvsp[(5) - (8)].dblval), (yyvsp[(7) - (8)].dblval), NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 635 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.strval) = (yyvsp[(2) - (3)].strval); ;}
+ case 85:
+#line 723 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ shapeObj *s;
+ s = msSmoothShapeSIA((yyvsp[(3) - (10)].shpval), (yyvsp[(5) - (10)].dblval), (yyvsp[(7) - (10)].dblval), (yyvsp[(9) - (10)].strval));
+ free((yyvsp[(9) - (10)].strval));
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+ }
break;
- case 78:
+ case 86:
+#line 734 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+#ifdef USE_V8_MAPSCRIPT
+ shapeObj *s;
+ s = msV8TransformShape((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].strval));
+ free((yyvsp[(5) - (6)].strval));
+ if(!s) {
+ yyerror(p, "Executing javascript failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ (yyval.shpval) = s;
+#else
+ yyerror(p, "Javascript support not compiled in");
+ return(-1);
+#endif
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 636 "/home/even/mapserver/git/mapserver/mapparser.y"
- {
- (yyval.strval) = (char *)malloc(strlen((yyvsp[(1) - (3)].strval)) + strlen((yyvsp[(3) - (3)].strval)) + 1);
- sprintf((yyval.strval), "%s%s", (yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)); free((yyvsp[(1) - (3)].strval)); free((yyvsp[(3) - (3)].strval));
- ;}
+ case 88:
+#line 753 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.strval) = (yyvsp[(2) - (3)].strval); }
break;
- case 79:
+ case 89:
+#line 754 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ (yyval.strval) = (char *)malloc(strlen((yyvsp[(1) - (3)].strval)) + strlen((yyvsp[(3) - (3)].strval)) + 1);
+ sprintf((yyval.strval), "%s%s", (yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)); free((yyvsp[(1) - (3)].strval)); free((yyvsp[(3) - (3)].strval));
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 640 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 90:
+#line 758 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- (yyval.strval) = (char *) malloc(strlen((yyvsp[(5) - (6)].strval)) + 64); /* Plenty big? Should use snprintf below... */
- sprintf((yyval.strval), (yyvsp[(5) - (6)].strval), (yyvsp[(3) - (6)].dblval));
- ;}
+ (yyval.strval) = (char *) malloc(strlen((yyvsp[(5) - (6)].strval)) + 64); /* Plenty big? Should use snprintf below... */
+ sprintf((yyval.strval), (yyvsp[(5) - (6)].strval), (yyvsp[(3) - (6)].dblval));
+ }
break;
- case 80:
+ case 91:
+#line 762 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ (yyvsp[(3) - (4)].strval) = msCommifyString((yyvsp[(3) - (4)].strval));
+ (yyval.strval) = (yyvsp[(3) - (4)].strval);
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 644 "/home/even/mapserver/git/mapserver/mapparser.y"
+ case 92:
+#line 766 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
- (yyvsp[(3) - (4)].strval) = msCommifyString((yyvsp[(3) - (4)].strval));
- (yyval.strval) = (yyvsp[(3) - (4)].strval);
- ;}
+ msStringToUpper((yyvsp[(3) - (4)].strval));
+ (yyval.strval) = (yyvsp[(3) - (4)].strval);
+ }
break;
- case 82:
+ case 93:
+#line 770 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ msStringToLower((yyvsp[(3) - (4)].strval));
+ (yyval.strval) = (yyvsp[(3) - (4)].strval);
+ }
+ break;
-/* Line 1455 of yacc.c */
-#line 651 "/home/even/mapserver/git/mapserver/mapparser.y"
- { (yyval.tmval) = (yyvsp[(2) - (3)].tmval); ;}
+ case 94:
+#line 774 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ msStringInitCap((yyvsp[(3) - (4)].strval));
+ (yyval.strval) = (yyvsp[(3) - (4)].strval);
+ }
break;
+ case 95:
+#line 778 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ {
+ msStringFirstCap((yyvsp[(3) - (4)].strval));
+ (yyval.strval) = (yyvsp[(3) - (4)].strval);
+ }
+ break;
+ case 97:
+#line 785 "/Users/sdlime/mapserver/mapserver/mapparser.y"
+ { (yyval.tmval) = (yyvsp[(2) - (3)].tmval); }
+ break;
-/* Line 1455 of yacc.c */
-#line 2620 "/home/even/mapserver/git/mapserver/mapparser.c"
+
+/* Line 1267 of yacc.c. */
+#line 2759 "/Users/sdlime/mapserver/mapserver/mapparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2627,6 +2766,7 @@ yyreduce:
*++yyvsp = yyval;
+
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
@@ -2691,7 +2831,7 @@ yyerrlab:
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
+ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
@@ -2708,7 +2848,7 @@ yyerrlab:
}
}
- /* Else will try to reuse lookahead token after shifting the error
+ /* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
@@ -2765,6 +2905,9 @@ yyerrlab1:
YY_STACK_PRINT (yyss, yyssp);
}
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
*++yyvsp = yylval;
@@ -2789,7 +2932,7 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
@@ -2800,7 +2943,7 @@ yyexhaustedlab:
#endif
yyreturn:
- if (yychar != YYEMPTY)
+ if (yychar != YYEOF && yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval, p);
/* Do not reclaim the symbols of the rule which action triggered
@@ -2826,9 +2969,7 @@ yyreturn:
}
-
-/* Line 1675 of yacc.c */
-#line 654 "/home/even/mapserver/git/mapserver/mapparser.y"
+#line 788 "/Users/sdlime/mapserver/mapserver/mapparser.y"
/*
@@ -2838,15 +2979,19 @@ yyreturn:
int yylex(YYSTYPE *lvalp, parseObj *p)
{
int token;
-
+
if(p->expr->curtoken == NULL) return(0); /* done */
// fprintf(stderr, "in yylex() - curtoken=%d...\n", p->expr->curtoken->token);
token = p->expr->curtoken->token; /* may override */
switch(p->expr->curtoken->token) {
+ case MS_TOKEN_LITERAL_BOOLEAN:
+ token = BOOLEAN;
+ (*lvalp).intval = p->expr->curtoken->tokenval.dblval;
+ break;
case MS_TOKEN_LITERAL_NUMBER:
- token = NUMBER;
+ token = NUMBER;
(*lvalp).dblval = p->expr->curtoken->tokenval.dblval;
break;
case MS_TOKEN_LITERAL_SHAPE:
@@ -2881,6 +3026,7 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_COMPARISON_CROSSES: token = CROSSES; break;
case MS_TOKEN_COMPARISON_WITHIN: token = WITHIN; break;
case MS_TOKEN_COMPARISON_CONTAINS: token = CONTAINS; break;
+ case MS_TOKEN_COMPARISON_EQUALS: token = EQUALS; break;
case MS_TOKEN_COMPARISON_BEYOND: token = BEYOND; break;
case MS_TOKEN_COMPARISON_DWITHIN: token = DWITHIN; break;
@@ -2923,6 +3069,10 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_FUNCTION_LENGTH: token = LENGTH; break;
case MS_TOKEN_FUNCTION_TOSTRING: token = TOSTRING; break;
case MS_TOKEN_FUNCTION_COMMIFY: token = COMMIFY; break;
+ case MS_TOKEN_FUNCTION_UPPER: token = UPPER; break;
+ case MS_TOKEN_FUNCTION_LOWER: token = LOWER; break;
+ case MS_TOKEN_FUNCTION_INITCAP: token = INITCAP; break;
+ case MS_TOKEN_FUNCTION_FIRSTCAP: token = FIRSTCAP; break;
case MS_TOKEN_FUNCTION_ROUND: token = ROUND; break;
case MS_TOKEN_FUNCTION_BUFFER: token = YYBUFFER; break;
@@ -2930,7 +3080,8 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_FUNCTION_SIMPLIFY: token = SIMPLIFY; break;
case MS_TOKEN_FUNCTION_SIMPLIFYPT: token = SIMPLIFYPT; break;
case MS_TOKEN_FUNCTION_GENERALIZE: token = GENERALIZE; break;
- case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;
+ case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;
+ case MS_TOKEN_FUNCTION_JAVASCRIPT: token = JAVASCRIPT; break;
default:
break;
diff --git a/mapparser.h b/mapparser.h
index 6dcc770..0dbfec8 100644
--- a/mapparser.h
+++ b/mapparser.h
@@ -1,23 +1,24 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -28,83 +29,130 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
- NUMBER = 258,
- STRING = 259,
- TIME = 260,
- SHAPE = 261,
- OR = 262,
- AND = 263,
- NOT = 264,
- IRE = 265,
- IEQ = 266,
- IN = 267,
- GE = 268,
- LE = 269,
- GT = 270,
- LT = 271,
- NE = 272,
- EQ = 273,
- RE = 274,
- DWITHIN = 275,
- BEYOND = 276,
- CONTAINS = 277,
- WITHIN = 278,
- CROSSES = 279,
- OVERLAPS = 280,
- TOUCHES = 281,
- DISJOINT = 282,
- INTERSECTS = 283,
- ROUND = 284,
- COMMIFY = 285,
- LENGTH = 286,
- AREA = 287,
- TOSTRING = 288,
- SMOOTHSIA = 289,
- GENERALIZE = 290,
- SIMPLIFYPT = 291,
- SIMPLIFY = 292,
- DIFFERENCE = 293,
- YYBUFFER = 294,
- NEG = 295
+ BOOLEAN = 258,
+ NUMBER = 259,
+ STRING = 260,
+ TIME = 261,
+ SHAPE = 262,
+ OR = 263,
+ AND = 264,
+ NOT = 265,
+ IRE = 266,
+ IEQ = 267,
+ IN = 268,
+ GE = 269,
+ LE = 270,
+ GT = 271,
+ LT = 272,
+ NE = 273,
+ EQ = 274,
+ RE = 275,
+ DWITHIN = 276,
+ BEYOND = 277,
+ EQUALS = 278,
+ CONTAINS = 279,
+ WITHIN = 280,
+ CROSSES = 281,
+ OVERLAPS = 282,
+ TOUCHES = 283,
+ DISJOINT = 284,
+ INTERSECTS = 285,
+ ROUND = 286,
+ COMMIFY = 287,
+ LENGTH = 288,
+ AREA = 289,
+ FIRSTCAP = 290,
+ INITCAP = 291,
+ LOWER = 292,
+ UPPER = 293,
+ TOSTRING = 294,
+ JAVASCRIPT = 295,
+ SMOOTHSIA = 296,
+ GENERALIZE = 297,
+ SIMPLIFYPT = 298,
+ SIMPLIFY = 299,
+ DIFFERENCE = 300,
+ YYBUFFER = 301,
+ NEG = 302
};
#endif
+/* Tokens. */
+#define BOOLEAN 258
+#define NUMBER 259
+#define STRING 260
+#define TIME 261
+#define SHAPE 262
+#define OR 263
+#define AND 264
+#define NOT 265
+#define IRE 266
+#define IEQ 267
+#define IN 268
+#define GE 269
+#define LE 270
+#define GT 271
+#define LT 272
+#define NE 273
+#define EQ 274
+#define RE 275
+#define DWITHIN 276
+#define BEYOND 277
+#define EQUALS 278
+#define CONTAINS 279
+#define WITHIN 280
+#define CROSSES 281
+#define OVERLAPS 282
+#define TOUCHES 283
+#define DISJOINT 284
+#define INTERSECTS 285
+#define ROUND 286
+#define COMMIFY 287
+#define LENGTH 288
+#define AREA 289
+#define FIRSTCAP 290
+#define INITCAP 291
+#define LOWER 292
+#define UPPER 293
+#define TOSTRING 294
+#define JAVASCRIPT 295
+#define SMOOTHSIA 296
+#define GENERALIZE 297
+#define SIMPLIFYPT 298
+#define SIMPLIFY 299
+#define DIFFERENCE 300
+#define YYBUFFER 301
+#define NEG 302
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
+#line 30 "/Users/sdlime/mapserver/mapserver/mapparser.y"
{
-
-/* Line 1676 of yacc.c */
-#line 30 "/home/even/mapserver/git/mapserver/mapparser.y"
-
double dblval;
int intval;
char *strval;
struct tm tmval;
shapeObj *shpval;
-
-
-
-/* Line 1676 of yacc.c */
-#line 102 "/home/even/mapserver/git/mapserver/mapparser.h"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1529 of yacc.c. */
+#line 151 "/Users/sdlime/mapserver/mapserver/mapparser.h"
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
-
diff --git a/mapparser.y b/mapparser.y
index ea9b5f0..879252e 100644
--- a/mapparser.y
+++ b/mapparser.y
@@ -35,18 +35,21 @@ int yyerror(parseObj *, const char *);
shapeObj *shpval;
}
+%token <intval> BOOLEAN
%token <dblval> NUMBER
%token <strval> STRING
%token <tmval> TIME
%token <shpval> SHAPE
+
%left OR
%left AND
%left NOT
%left RE EQ NE LT GT LE GE IN IEQ IRE
-%left INTERSECTS DISJOINT TOUCHES OVERLAPS CROSSES WITHIN CONTAINS BEYOND DWITHIN
+%left INTERSECTS DISJOINT TOUCHES OVERLAPS CROSSES WITHIN CONTAINS EQUALS BEYOND DWITHIN
%left AREA LENGTH COMMIFY ROUND
+%left UPPER LOWER INITCAP FIRSTCAP
%left TOSTRING
-%left YYBUFFER DIFFERENCE SIMPLIFY SIMPLIFYPT GENERALIZE SMOOTHSIA
+%left YYBUFFER DIFFERENCE SIMPLIFY SIMPLIFYPT GENERALIZE SMOOTHSIA JAVASCRIPT
%left '+' '-'
%left '*' '/' '%'
%left NEG
@@ -64,45 +67,45 @@ int yyerror(parseObj *, const char *);
input: /* empty string */
| logical_exp {
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- p->result.intval = $1;
- break;
- case(MS_PARSE_TYPE_STRING):
- if($1)
- p->result.strval = strdup("true");
- else
- p->result.strval = strdup("false");
- break;
- }
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ p->result.intval = $1;
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ if($1)
+ p->result.strval = strdup("true");
+ else
+ p->result.strval = strdup("false");
+ break;
}
+ }
| math_exp {
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- if($1 != 0)
- p->result.intval = MS_TRUE;
- else
- p->result.intval = MS_FALSE;
- break;
- case(MS_PARSE_TYPE_STRING):
- p->result.strval = (char *)malloc(64); /* large enough for a double */
- snprintf(p->result.strval, 64, "%g", $1);
- break;
- }
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ if($1 != 0)
+ p->result.intval = MS_TRUE;
+ else
+ p->result.intval = MS_FALSE;
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ p->result.strval = (char *)malloc(64); /* large enough for a double */
+ snprintf(p->result.strval, 64, "%g", $1);
+ break;
}
+ }
| string_exp {
- switch(p->type) {
- case(MS_PARSE_TYPE_BOOLEAN):
- if($1) /* string is not NULL */
- p->result.intval = MS_TRUE;
- else
- p->result.intval = MS_FALSE;
- break;
- case(MS_PARSE_TYPE_STRING):
- p->result.strval = $1; // strdup($1);
- break;
- }
+ switch(p->type) {
+ case(MS_PARSE_TYPE_BOOLEAN):
+ if($1) /* string is not NULL */
+ p->result.intval = MS_TRUE;
+ else
+ p->result.intval = MS_FALSE;
+ break;
+ case(MS_PARSE_TYPE_STRING):
+ p->result.strval = $1; // strdup($1);
+ break;
}
+ }
| shape_exp {
switch(p->type) {
case(MS_PARSE_TYPE_SHAPE):
@@ -113,400 +116,499 @@ input: /* empty string */
}
;
-logical_exp:
- logical_exp OR logical_exp {
- if($1 == MS_TRUE)
- $$ = MS_TRUE;
- else if($3 == MS_TRUE)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | logical_exp AND logical_exp {
- if($1 == MS_TRUE) {
- if($3 == MS_TRUE)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- } else
- $$ = MS_FALSE;
- }
- | logical_exp OR math_exp {
- if($1 == MS_TRUE)
- $$ = MS_TRUE;
- else if($3 != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | logical_exp AND math_exp {
- if($1 == MS_TRUE) {
- if($3 != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- } else
- $$ = MS_FALSE;
- }
- | math_exp OR logical_exp {
- if($1 != 0)
- $$ = MS_TRUE;
- else if($3 == MS_TRUE)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp AND logical_exp {
- if($1 != 0) {
- if($3 == MS_TRUE)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- } else
- $$ = MS_FALSE;
- }
- | math_exp OR math_exp {
- if($1 != 0)
- $$ = MS_TRUE;
- else if($3 != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp AND math_exp {
- if($1 != 0) {
- if($3 != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- } else
- $$ = MS_FALSE;
- }
- | NOT logical_exp { $$ = !$2; }
- | NOT math_exp { $$ = !$2; }
- | string_exp RE string_exp {
- ms_regex_t re;
-
- if(ms_regcomp(&re, $3, MS_REG_EXTENDED|MS_REG_NOSUB) != 0)
- $$ = MS_FALSE;
-
- if(ms_regexec(&re, $1, 0, NULL, 0) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
-
- ms_regfree(&re);
- free($1);
- free($3);
- }
- | string_exp IRE string_exp {
- ms_regex_t re;
-
- if(ms_regcomp(&re, $3, MS_REG_EXTENDED|MS_REG_NOSUB|MS_REG_ICASE) != 0)
- $$ = MS_FALSE;
-
- if(ms_regexec(&re, $1, 0, NULL, 0) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
-
- ms_regfree(&re);
- free($1);
- free($3);
- }
- | math_exp EQ math_exp {
- if($1 == $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp NE math_exp {
- if($1 != $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp GT math_exp {
- if($1 > $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp LT math_exp {
- if($1 < $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp GE math_exp {
- if($1 >= $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | math_exp LE math_exp {
- if($1 <= $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | '(' logical_exp ')' { $$ = $2; }
- | string_exp EQ string_exp {
- if(strcmp($1, $3) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | string_exp NE string_exp {
- if(strcmp($1, $3) != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | string_exp GT string_exp {
- if(strcmp($1, $3) > 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- /* printf("Not freeing: %s >= %s\n",$1, $3); */
- free($1);
- free($3);
- }
- | string_exp LT string_exp {
- if(strcmp($1, $3) < 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | string_exp GE string_exp {
- if(strcmp($1, $3) >= 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | string_exp LE string_exp {
- if(strcmp($1, $3) <= 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | time_exp EQ time_exp {
- if(msTimeCompare(&($1), &($3)) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | time_exp NE time_exp {
- if(msTimeCompare(&($1), &($3)) != 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | time_exp GT time_exp {
- if(msTimeCompare(&($1), &($3)) > 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | time_exp LT time_exp {
- if(msTimeCompare(&($1), &($3)) < 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | time_exp GE time_exp {
- if(msTimeCompare(&($1), &($3)) >= 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | time_exp LE time_exp {
- if(msTimeCompare(&($1), &($3)) <= 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | string_exp IN string_exp {
- char *delim,*bufferp;
-
- $$ = MS_FALSE;
- bufferp=$3;
-
- while((delim=strchr(bufferp,',')) != NULL) {
- *delim='\0';
- if(strcmp($1,bufferp) == 0) {
- $$ = MS_TRUE;
- break;
- }
- *delim=',';
- bufferp=delim+1;
- }
-
- if($$==MS_FALSE && strcmp($1,bufferp) == 0) // test for last (or only) item
- $$ = MS_TRUE;
- free($1);
- free($3);
- }
- | math_exp IN string_exp {
- char *delim,*bufferp;
-
- $$ = MS_FALSE;
- bufferp=$3;
-
- while((delim=strchr(bufferp,',')) != NULL) {
- *delim='\0';
- if($1 == atof(bufferp)) {
- $$ = MS_TRUE;
- break;
- }
- *delim=',';
- bufferp=delim+1;
- }
-
- if($1 == atof(bufferp)) // is this test necessary?
- $$ = MS_TRUE;
-
- free($3);
- }
- | math_exp IEQ math_exp {
- if($1 == $3)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | string_exp IEQ string_exp {
- if(strcasecmp($1, $3) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- free($1);
- free($3);
- }
- | time_exp IEQ time_exp {
- if(msTimeCompare(&($1), &($3)) == 0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
+logical_exp: BOOLEAN
+ | '(' logical_exp ')' { $$ = $2; }
+ | logical_exp EQ logical_exp {
+ $$ = MS_FALSE;
+ if($1 == $3) $$ = MS_TRUE;
+ }
+ | logical_exp OR logical_exp {
+ if($1 == MS_TRUE)
+ $$ = MS_TRUE;
+ else if($3 == MS_TRUE)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | logical_exp AND logical_exp {
+ if($1 == MS_TRUE) {
+ if($3 == MS_TRUE)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ } else
+ $$ = MS_FALSE;
+ }
+ | logical_exp OR math_exp {
+ if($1 == MS_TRUE)
+ $$ = MS_TRUE;
+ else if($3 != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | logical_exp AND math_exp {
+ if($1 == MS_TRUE) {
+ if($3 != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ } else
+ $$ = MS_FALSE;
+ }
+ | math_exp OR logical_exp {
+ if($1 != 0)
+ $$ = MS_TRUE;
+ else if($3 == MS_TRUE)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp AND logical_exp {
+ if($1 != 0) {
+ if($3 == MS_TRUE)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ } else
+ $$ = MS_FALSE;
+ }
+ | math_exp OR math_exp {
+ if($1 != 0)
+ $$ = MS_TRUE;
+ else if($3 != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp AND math_exp {
+ if($1 != 0) {
+ if($3 != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ } else
+ $$ = MS_FALSE;
+ }
+ | NOT logical_exp { $$ = !$2; }
+ | NOT math_exp { $$ = !$2; }
+ | string_exp RE string_exp {
+ ms_regex_t re;
+
+ if(MS_STRING_IS_NULL_OR_EMPTY($1) == MS_TRUE) {
+ $$ = MS_FALSE;
+ } else {
+ if(ms_regcomp(&re, $3, MS_REG_EXTENDED|MS_REG_NOSUB) != 0) {
+ $$ = MS_FALSE;
+ } else {
+ if(ms_regexec(&re, $1, 0, NULL, 0) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ ms_regfree(&re);
+ }
+ }
- | shape_exp EQ shape_exp {
- int rval;
- rval = msGEOSEquals($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Equals (EQ or ==) operator failed.");
- return(-1);
- } else
- $$ = rval;
+ free($1);
+ free($3);
+ }
+ | string_exp IRE string_exp {
+ ms_regex_t re;
+
+ if(MS_STRING_IS_NULL_OR_EMPTY($1) == MS_TRUE) {
+ $$ = MS_FALSE;
+ } else {
+ if(ms_regcomp(&re, $3, MS_REG_EXTENDED|MS_REG_NOSUB|MS_REG_ICASE) != 0) {
+ $$ = MS_FALSE;
+ } else {
+ if(ms_regexec(&re, $1, 0, NULL, 0) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ ms_regfree(&re);
+ }
}
- | shape_exp INTERSECTS shape_exp {
- int rval;
- rval = msGEOSIntersects($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Intersects operator failed.");
- return(-1);
- } else
- $$ = rval;
+
+ free($1);
+ free($3);
+ }
+ | math_exp EQ math_exp {
+ if($1 == $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp NE math_exp {
+ if($1 != $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp GT math_exp {
+ if($1 > $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp LT math_exp {
+ if($1 < $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp GE math_exp {
+ if($1 >= $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | math_exp LE math_exp {
+ if($1 <= $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | string_exp EQ string_exp {
+ if(strcmp($1, $3) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | string_exp NE string_exp {
+ if(strcmp($1, $3) != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | string_exp GT string_exp {
+ if(strcmp($1, $3) > 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | string_exp LT string_exp {
+ if(strcmp($1, $3) < 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | string_exp GE string_exp {
+ if(strcmp($1, $3) >= 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | string_exp LE string_exp {
+ if(strcmp($1, $3) <= 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | time_exp EQ time_exp {
+ if(msTimeCompare(&($1), &($3)) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | time_exp NE time_exp {
+ if(msTimeCompare(&($1), &($3)) != 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | time_exp GT time_exp {
+ if(msTimeCompare(&($1), &($3)) > 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | time_exp LT time_exp {
+ if(msTimeCompare(&($1), &($3)) < 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | time_exp GE time_exp {
+ if(msTimeCompare(&($1), &($3)) >= 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | time_exp LE time_exp {
+ if(msTimeCompare(&($1), &($3)) <= 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | string_exp IN string_exp {
+ char *delim, *bufferp;
+
+ $$ = MS_FALSE;
+ bufferp=$3;
+
+ while((delim=strchr(bufferp,',')) != NULL) {
+ *delim='\0';
+ if(strcmp($1,bufferp) == 0) {
+ $$ = MS_TRUE;
+ break;
+ }
+ *delim=',';
+ bufferp=delim+1;
}
- | shape_exp DISJOINT shape_exp {
- int rval;
- rval = msGEOSDisjoint($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Disjoint operator failed.");
- return(-1);
- } else
- $$ = rval;
+
+ if($$ == MS_FALSE && strcmp($1,bufferp) == 0) // test for last (or only) item
+ $$ = MS_TRUE;
+ free($1);
+ free($3);
+ }
+ | math_exp IN string_exp {
+ char *delim,*bufferp;
+
+ $$ = MS_FALSE;
+ bufferp=$3;
+
+ while((delim=strchr(bufferp,',')) != NULL) {
+ *delim='\0';
+ if($1 == atof(bufferp)) {
+ $$ = MS_TRUE;
+ break;
+ }
+ *delim=',';
+ bufferp=delim+1;
}
+
+ if($1 == atof(bufferp)) // is this test necessary?
+ $$ = MS_TRUE;
+ free($3);
+ }
+ | math_exp IEQ math_exp {
+ if($1 == $3)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | string_exp IEQ string_exp {
+ if(strcasecmp($1, $3) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ free($1);
+ free($3);
+ }
+ | time_exp IEQ time_exp {
+ if(msTimeCompare(&($1), &($3)) == 0)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | shape_exp EQ shape_exp {
+ int rval;
+ rval = msGEOSEquals($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Equals (EQ or ==) operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | EQUALS '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSEquals($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Equals function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | INTERSECTS '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSIntersects($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Intersects function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | shape_exp INTERSECTS shape_exp {
+ int rval;
+ rval = msGEOSIntersects($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Intersects operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | DISJOINT '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSDisjoint($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Disjoint function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | shape_exp DISJOINT shape_exp {
+ int rval;
+ rval = msGEOSDisjoint($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Disjoint operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | TOUCHES '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSTouches($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Touches function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
| shape_exp TOUCHES shape_exp {
- int rval;
- rval = msGEOSTouches($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Touches operator failed.");
- return(-1);
- } else
- $$ = rval;
- }
+ int rval;
+ rval = msGEOSTouches($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Touches operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | OVERLAPS '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSOverlaps($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Overlaps function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
| shape_exp OVERLAPS shape_exp {
- int rval;
- rval = msGEOSOverlaps($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Overlaps operator failed.");
- return(-1);
- } else
- $$ = rval;
- }
+ int rval;
+ rval = msGEOSOverlaps($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Overlaps operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | CROSSES '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSCrosses($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Crosses function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
| shape_exp CROSSES shape_exp {
- int rval;
- rval = msGEOSCrosses($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Crosses operator failed.");
- return(-1);
- } else
- $$ = rval;
- }
+ int rval;
+ rval = msGEOSCrosses($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Crosses operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | WITHIN '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSWithin($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Within function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
| shape_exp WITHIN shape_exp {
- int rval;
- rval = msGEOSWithin($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Within operator failed.");
- return(-1);
- } else
- $$ = rval;
- }
+ int rval;
+ rval = msGEOSWithin($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Within operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | CONTAINS '(' shape_exp ',' shape_exp ')' {
+ int rval;
+ rval = msGEOSContains($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(rval == -1) {
+ yyerror(p, "Contains function failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
| shape_exp CONTAINS shape_exp {
- int rval;
- rval = msGEOSContains($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(rval == -1) {
- yyerror(p, "Contains operator failed.");
- return(-1);
- } else
- $$ = rval;
- }
- | shape_exp DWITHIN shape_exp {
- double d;
- d = msGEOSDistance($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(d == 0.0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
- | shape_exp BEYOND shape_exp {
- double d;
- d = msGEOSDistance($1, $3);
- if($1->scratch == MS_TRUE) msFreeShape($1);
- if($3->scratch == MS_TRUE) msFreeShape($3);
- if(d > 0.0)
- $$ = MS_TRUE;
- else
- $$ = MS_FALSE;
- }
+ int rval;
+ rval = msGEOSContains($1, $3);
+ if($1->scratch == MS_TRUE) msFreeShape($1);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if(rval == -1) {
+ yyerror(p, "Contains operator failed.");
+ return(-1);
+ } else
+ $$ = rval;
+ }
+ | DWITHIN '(' shape_exp ',' shape_exp ',' math_exp ')' {
+ double d;
+ d = msGEOSDistance($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(d <= $7)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
+ | BEYOND '(' shape_exp ',' shape_exp ',' math_exp ')' {
+ double d;
+ d = msGEOSDistance($3, $5);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($5->scratch == MS_TRUE) msFreeShape($5);
+ if(d > $7)
+ $$ = MS_TRUE;
+ else
+ $$ = MS_FALSE;
+ }
;
math_exp: NUMBER
@@ -516,135 +618,167 @@ math_exp: NUMBER
| math_exp '*' math_exp { $$ = $1 * $3; }
| math_exp '%' math_exp { $$ = (int)$1 % (int)$3; }
| math_exp '/' math_exp {
- if($3 == 0.0) {
- yyerror(p, "Division by zero.");
- return(-1);
- } else
- $$ = $1 / $3;
- }
+ if($3 == 0.0) {
+ yyerror(p, "Division by zero.");
+ return(-1);
+ } else
+ $$ = $1 / $3;
+ }
| '-' math_exp %prec NEG { $$ = $2; }
| math_exp '^' math_exp { $$ = pow($1, $3); }
| LENGTH '(' string_exp ')' { $$ = strlen($3); }
| AREA '(' shape_exp ')' {
- if($3->type != MS_SHAPE_POLYGON) {
- yyerror(p, "Area can only be computed for polygon shapes.");
- return(-1);
- }
- $$ = msGetPolygonArea($3);
- if($3->scratch == MS_TRUE) msFreeShape($3);
+ if($3->type != MS_SHAPE_POLYGON) {
+ yyerror(p, "Area can only be computed for polygon shapes.");
+ return(-1);
}
+ $$ = msGetPolygonArea($3);
+ if($3->scratch == MS_TRUE) msFreeShape($3);
+ }
| ROUND '(' math_exp ',' math_exp ')' { $$ = (MS_NINT($3/$5))*$5; }
;
shape_exp: SHAPE
| '(' shape_exp ')' { $$ = $2; }
| YYBUFFER '(' shape_exp ',' math_exp ')' {
- shapeObj *s;
- s = msGEOSBuffer($3, $5);
- if(!s) {
- yyerror(p, "Executing buffer failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msGEOSBuffer($3, $5);
+ if(!s) {
+ yyerror(p, "Executing buffer failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| DIFFERENCE '(' shape_exp ',' shape_exp ')' {
- shapeObj *s;
- s = msGEOSDifference($3, $5);
- if(!s) {
- yyerror(p, "Executing difference failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msGEOSDifference($3, $5);
+ if(!s) {
+ yyerror(p, "Executing difference failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SIMPLIFY '(' shape_exp ',' math_exp ')' {
- shapeObj *s;
- s = msGEOSSimplify($3, $5);
- if(!s) {
- yyerror(p, "Executing simplify failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msGEOSSimplify($3, $5);
+ if(!s) {
+ yyerror(p, "Executing simplify failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SIMPLIFYPT '(' shape_exp ',' math_exp ')' {
- shapeObj *s;
- s = msGEOSTopologyPreservingSimplify($3, $5);
- if(!s) {
- yyerror(p, "Executing simplifypt failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msGEOSTopologyPreservingSimplify($3, $5);
+ if(!s) {
+ yyerror(p, "Executing simplifypt failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| GENERALIZE '(' shape_exp ',' math_exp ')' {
- shapeObj *s;
- s = msGeneralize($3, $5);
- if(!s) {
- yyerror(p, "Executing generalize failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msGeneralize($3, $5);
+ if(!s) {
+ yyerror(p, "Executing generalize failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SMOOTHSIA '(' shape_exp ')' {
- shapeObj *s;
- s = msSmoothShapeSIA($3, 3, 1, NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msSmoothShapeSIA($3, 3, 1, NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SMOOTHSIA '(' shape_exp ',' math_exp ')' {
- shapeObj *s;
- s = msSmoothShapeSIA($3, $5, 1, NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msSmoothShapeSIA($3, $5, 1, NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SMOOTHSIA '(' shape_exp ',' math_exp ',' math_exp ')' {
- shapeObj *s;
- s = msSmoothShapeSIA($3, $5, $7, NULL);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msSmoothShapeSIA($3, $5, $7, NULL);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
| SMOOTHSIA '(' shape_exp ',' math_exp ',' math_exp ',' string_exp ')' {
- shapeObj *s;
- s = msSmoothShapeSIA($3, $5, $7, $9);
- free($9);
- if(!s) {
- yyerror(p, "Executing smoothsia failed.");
- return(-1);
- }
- s->scratch = MS_TRUE;
- $$ = s;
+ shapeObj *s;
+ s = msSmoothShapeSIA($3, $5, $7, $9);
+ free($9);
+ if(!s) {
+ yyerror(p, "Executing smoothsia failed.");
+ return(-1);
+ }
+ s->scratch = MS_TRUE;
+ $$ = s;
+ }
+ | JAVASCRIPT '(' shape_exp ',' string_exp ')' {
+#ifdef USE_V8_MAPSCRIPT
+ shapeObj *s;
+ s = msV8TransformShape($3, $5);
+ free($5);
+ if(!s) {
+ yyerror(p, "Executing javascript failed.");
+ return(-1);
}
+ s->scratch = MS_TRUE;
+ $$ = s;
+#else
+ yyerror(p, "Javascript support not compiled in");
+ return(-1);
+#endif
+ }
;
string_exp: STRING
| '(' string_exp ')' { $$ = $2; }
| string_exp '+' string_exp {
- $$ = (char *)malloc(strlen($1) + strlen($3) + 1);
- sprintf($$, "%s%s", $1, $3); free($1); free($3);
- }
+ $$ = (char *)malloc(strlen($1) + strlen($3) + 1);
+ sprintf($$, "%s%s", $1, $3); free($1); free($3);
+ }
| TOSTRING '(' math_exp ',' string_exp ')' {
- $$ = (char *) malloc(strlen($5) + 64); /* Plenty big? Should use snprintf below... */
- sprintf($$, $5, $3);
- }
+ $$ = (char *) malloc(strlen($5) + 64); /* Plenty big? Should use snprintf below... */
+ sprintf($$, $5, $3);
+ }
| COMMIFY '(' string_exp ')' {
- $3 = msCommifyString($3);
- $$ = $3;
- }
+ $3 = msCommifyString($3);
+ $$ = $3;
+ }
+ | UPPER '(' string_exp ')' {
+ msStringToUpper($3);
+ $$ = $3;
+ }
+ | LOWER '(' string_exp ')' {
+ msStringToLower($3);
+ $$ = $3;
+ }
+ | INITCAP '(' string_exp ')' {
+ msStringInitCap($3);
+ $$ = $3;
+ }
+ | FIRSTCAP '(' string_exp ')' {
+ msStringFirstCap($3);
+ $$ = $3;
+ }
;
time_exp: TIME
@@ -660,15 +794,19 @@ time_exp: TIME
int yylex(YYSTYPE *lvalp, parseObj *p)
{
int token;
-
+
if(p->expr->curtoken == NULL) return(0); /* done */
// fprintf(stderr, "in yylex() - curtoken=%d...\n", p->expr->curtoken->token);
token = p->expr->curtoken->token; /* may override */
switch(p->expr->curtoken->token) {
+ case MS_TOKEN_LITERAL_BOOLEAN:
+ token = BOOLEAN;
+ (*lvalp).intval = p->expr->curtoken->tokenval.dblval;
+ break;
case MS_TOKEN_LITERAL_NUMBER:
- token = NUMBER;
+ token = NUMBER;
(*lvalp).dblval = p->expr->curtoken->tokenval.dblval;
break;
case MS_TOKEN_LITERAL_SHAPE:
@@ -703,6 +841,7 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_COMPARISON_CROSSES: token = CROSSES; break;
case MS_TOKEN_COMPARISON_WITHIN: token = WITHIN; break;
case MS_TOKEN_COMPARISON_CONTAINS: token = CONTAINS; break;
+ case MS_TOKEN_COMPARISON_EQUALS: token = EQUALS; break;
case MS_TOKEN_COMPARISON_BEYOND: token = BEYOND; break;
case MS_TOKEN_COMPARISON_DWITHIN: token = DWITHIN; break;
@@ -745,6 +884,10 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_FUNCTION_LENGTH: token = LENGTH; break;
case MS_TOKEN_FUNCTION_TOSTRING: token = TOSTRING; break;
case MS_TOKEN_FUNCTION_COMMIFY: token = COMMIFY; break;
+ case MS_TOKEN_FUNCTION_UPPER: token = UPPER; break;
+ case MS_TOKEN_FUNCTION_LOWER: token = LOWER; break;
+ case MS_TOKEN_FUNCTION_INITCAP: token = INITCAP; break;
+ case MS_TOKEN_FUNCTION_FIRSTCAP: token = FIRSTCAP; break;
case MS_TOKEN_FUNCTION_ROUND: token = ROUND; break;
case MS_TOKEN_FUNCTION_BUFFER: token = YYBUFFER; break;
@@ -752,7 +895,8 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
case MS_TOKEN_FUNCTION_SIMPLIFY: token = SIMPLIFY; break;
case MS_TOKEN_FUNCTION_SIMPLIFYPT: token = SIMPLIFYPT; break;
case MS_TOKEN_FUNCTION_GENERALIZE: token = GENERALIZE; break;
- case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;
+ case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;
+ case MS_TOKEN_FUNCTION_JAVASCRIPT: token = JAVASCRIPT; break;
default:
break;
diff --git a/mappool.c b/mappool.c
index cfb7912..ac2cd29 100644
--- a/mappool.c
+++ b/mappool.c
@@ -76,7 +76,7 @@ Updating a Driver
-----------------
The following are the steps to ensure a particular format/database supports
-connection pooling (ie. mapsde.c, mappostgis.c, maporacle.c, mapogr.cpp, etc)
+connection pooling (ie. mappostgis.c, maporacle.c, mapogr.cpp, etc)
We will use POSTGIS names for convenience.
1) in msPOSTGISLayerOpen() call msConnPoolRequest(layer) in order to get
diff --git a/mappostgis.c b/mappostgis.c
index bfee929..9e5d9aa 100644
--- a/mappostgis.c
+++ b/mappostgis.c
@@ -74,6 +74,12 @@
#define SEGMENT_ANGLE 10.0
#define SEGMENT_MINPOINTS 10
+#define WKBZOFFSET_NONISO 0x80000000
+#define WKBMOFFSET_NONISO 0x40000000
+
+#define HAS_Z 0x1
+#define HAS_M 0x2
+
#ifdef USE_POSTGIS
@@ -106,7 +112,11 @@ msPostGISLayerInfo *msPostGISCreateLayerInfo(void)
layerinfo->rownum = 0;
layerinfo->version = 0;
layerinfo->paging = MS_TRUE;
+#ifdef USE_POINT_Z_M
+ layerinfo->force2d = MS_FALSE;
+#else
layerinfo->force2d = MS_TRUE;
+#endif
return layerinfo;
}
@@ -195,10 +205,45 @@ pointArrayAddPoint(pointArrayObj *d, const pointObj *p)
** Pass an input type number through the PostGIS version
** type map array to handle the pre-2.0 incorrect WKB types
*/
+
static int
-wkbTypeMap(wkbObj *w, int type)
+wkbTypeMap(wkbObj *w, int type, int* pnZMFlag)
{
- if ( type < WKB_TYPE_COUNT )
+ *pnZMFlag = 0;
+ /* PostGIS >= 2 : ISO SQL/MM style Z types ? */
+ if( type >= 1000 && type < 2000 )
+ {
+ type -= 1000;
+ *pnZMFlag = HAS_Z;
+ }
+ /* PostGIS >= 2 : ISO SQL/MM style M types ? */
+ else if( type >= 2000 && type < 3000 )
+ {
+ type -= 2000;
+ *pnZMFlag = HAS_M;
+ }
+ /* PostGIS >= 2 : ISO SQL/MM style ZM types ? */
+ else if( type >= 3000 && type < 4000 )
+ {
+ type -= 3000;
+ *pnZMFlag = HAS_Z | HAS_M;
+ }
+ /* PostGIS 1.X EWKB : Extended WKB Z or ZM ? */
+ else if( (type & WKBZOFFSET_NONISO) != 0 )
+ {
+ if( (type & WKBMOFFSET_NONISO) != 0 )
+ *pnZMFlag = HAS_Z | HAS_M;
+ else
+ *pnZMFlag = HAS_Z;
+ type &= 0x00FFFFFF;
+ }
+ /* PostGIS 1.X EWKB: Extended WKB M ? */
+ else if( (type & WKBMOFFSET_NONISO) != 0 )
+ {
+ *pnZMFlag = HAS_M;
+ type &= 0x00FFFFFF;
+ }
+ if ( type >= 0 && type < WKB_TYPE_COUNT )
return w->typemap[type];
else
return 0;
@@ -209,11 +254,11 @@ wkbTypeMap(wkbObj *w, int type)
** advancing the read pointer.
*/
static int
-wkbType(wkbObj *w)
+wkbType(wkbObj *w, int* pnZMFlag)
{
int t;
memcpy(&t, (w->ptr + 1), sizeof(int));
- return wkbTypeMap(w,t);
+ return wkbTypeMap(w,t, pnZMFlag);
}
/*
@@ -221,11 +266,11 @@ wkbType(wkbObj *w)
** collection without advancing the read pointer.
*/
static int
-wkbCollectionSubType(wkbObj *w)
+wkbCollectionSubType(wkbObj *w, int* pnZMFlag)
{
int t;
memcpy(&t, (w->ptr + 1 + 4 + 4 + 1), sizeof(int));
- return wkbTypeMap(w,t);
+ return wkbTypeMap(w,t, pnZMFlag);
}
/*
@@ -271,12 +316,31 @@ wkbReadDouble(wkbObj *w)
** We assume the endianess of the WKB is the same as this machine.
*/
static inline void
-wkbReadPointP(wkbObj *w, pointObj *p)
+wkbReadPointP(wkbObj *w, pointObj *p, int nZMFlag)
{
memcpy(&(p->x), w->ptr, sizeof(double));
w->ptr += sizeof(double);
memcpy(&(p->y), w->ptr, sizeof(double));
w->ptr += sizeof(double);
+ if( nZMFlag & HAS_Z )
+ {
+#ifdef USE_POINT_Z_M
+ memcpy(&(p->z), w->ptr, sizeof(double));
+ if( !(nZMFlag & HAS_M) )
+ p->m = 0.0;
+#endif
+ w->ptr += sizeof(double);
+ }
+ if( nZMFlag & HAS_M )
+ {
+#ifdef USE_POINT_Z_M
+ if( !(nZMFlag & HAS_Z) )
+ p->z = 0.0;
+ memcpy(&(p->m), w->ptr, sizeof(double));
+#endif
+ w->ptr += sizeof(double);
+ }
+
}
/*
@@ -284,10 +348,10 @@ wkbReadPointP(wkbObj *w, pointObj *p)
** We assume the endianess of the WKB is the same as this machine.
*/
static inline pointObj
-wkbReadPoint(wkbObj *w)
+wkbReadPoint(wkbObj *w, int nZMFlag)
{
pointObj p;
- wkbReadPointP(w, &p);
+ wkbReadPointP(w, &p, nZMFlag);
return p;
}
@@ -299,7 +363,7 @@ wkbReadPoint(wkbObj *w)
** form.
*/
static void
-wkbReadLine(wkbObj *w, lineObj *line)
+wkbReadLine(wkbObj *w, lineObj *line, int nZMFlag)
{
int i;
pointObj p;
@@ -308,7 +372,7 @@ wkbReadLine(wkbObj *w, lineObj *line)
line->numpoints = npoints;
line->point = msSmallMalloc(npoints * sizeof(pointObj));
for ( i = 0; i < npoints; i++ ) {
- wkbReadPointP(w, &p);
+ wkbReadPointP(w, &p, nZMFlag);
line->point[i] = p;
}
}
@@ -321,22 +385,25 @@ static void
wkbSkipGeometry(wkbObj *w)
{
int type, npoints, nrings, ngeoms, i;
+ int nZMFlag;
+ int nCoordDim;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
+ nCoordDim = 2 + (((nZMFlag & HAS_Z) != 0) ? 1 : 0) + (((nZMFlag & HAS_M) != 0) ? 1 : 0);
switch(type) {
case WKB_POINT:
- w->ptr += 2 * sizeof(double);
+ w->ptr += nCoordDim * sizeof(double);
break;
case WKB_CIRCULARSTRING:
case WKB_LINESTRING:
npoints = wkbReadInt(w);
- w->ptr += npoints * 2 * sizeof(double);
+ w->ptr += npoints * nCoordDim * sizeof(double);
break;
case WKB_POLYGON:
nrings = wkbReadInt(w);
for ( i = 0; i < nrings; i++ ) {
npoints = wkbReadInt(w);
- w->ptr += npoints * 2 * sizeof(double);
+ w->ptr += npoints * nCoordDim * sizeof(double);
}
break;
case WKB_MULTIPOINT:
@@ -362,16 +429,17 @@ wkbConvPointToShape(wkbObj *w, shapeObj *shape)
{
int type;
lineObj line;
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w),&nZMFlag);
if( type != WKB_POINT ) return MS_FAILURE;
if( ! (shape->type == MS_SHAPE_POINT) ) return MS_FAILURE;
line.numpoints = 1;
line.point = msSmallMalloc(sizeof(pointObj));
- line.point[0] = wkbReadPoint(w);
+ line.point[0] = wkbReadPoint(w, nZMFlag);
msAddLineDirectly(shape, &line);
return MS_SUCCESS;
}
@@ -384,13 +452,14 @@ wkbConvLineStringToShape(wkbObj *w, shapeObj *shape)
{
int type;
lineObj line;
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
if( type != WKB_LINESTRING ) return MS_FAILURE;
- wkbReadLine(w,&line);
+ wkbReadLine(w,&line, nZMFlag);
msAddLineDirectly(shape, &line);
return MS_SUCCESS;
@@ -405,9 +474,10 @@ wkbConvPolygonToShape(wkbObj *w, shapeObj *shape)
int type;
int i, nrings;
lineObj line;
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
if( type != WKB_POLYGON ) return MS_FAILURE;
@@ -416,7 +486,7 @@ wkbConvPolygonToShape(wkbObj *w, shapeObj *shape)
/* Add each ring to the shape */
for( i = 0; i < nrings; i++ ) {
- wkbReadLine(w,&line);
+ wkbReadLine(w,&line, nZMFlag);
msAddLineDirectly(shape, &line);
}
@@ -434,9 +504,10 @@ wkbConvCurvePolygonToShape(wkbObj *w, shapeObj *shape)
int type, i, ncomponents;
int failures = 0;
int was_poly = ( shape->type == MS_SHAPE_POLYGON );
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
ncomponents = wkbReadInt(w);
if( type != WKB_CURVEPOLYGON ) return MS_FAILURE;
@@ -469,15 +540,16 @@ static int
wkbConvCircularStringToShape(wkbObj *w, shapeObj *shape)
{
int type;
+ int nZMFlag;
lineObj line = {0, NULL};
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
if( type != WKB_CIRCULARSTRING ) return MS_FAILURE;
/* Stroke the string into a point array */
- if ( arcStrokeCircularString(w, SEGMENT_ANGLE, &line) == MS_FAILURE ) {
+ if ( arcStrokeCircularString(w, SEGMENT_ANGLE, &line, nZMFlag) == MS_FAILURE ) {
if(line.point) free(line.point);
return MS_FAILURE;
}
@@ -503,11 +575,12 @@ wkbConvCompoundCurveToShape(wkbObj *w, shapeObj *shape)
{
int npoints = 0;
int type, ncomponents, i, j;
- lineObj *line;
+ lineObj line;
shapeObj shapebuf;
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- type = wkbTypeMap(w,wkbReadInt(w));
+ type = wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
/* Init our shape buffer */
msInitShape(&shapebuf);
@@ -533,10 +606,8 @@ wkbConvCompoundCurveToShape(wkbObj *w, shapeObj *shape)
if ( npoints == 0 )
return MS_FAILURE;
- /* Allocate space for the new line */
- line = msSmallMalloc(sizeof(lineObj));
- line->numpoints = npoints;
- line->point = msSmallMalloc(sizeof(pointObj) * npoints);
+ line.numpoints = npoints;
+ line.point = msSmallMalloc(sizeof(pointObj) * npoints);
/* Copy in the points */
npoints = 0;
@@ -544,19 +615,19 @@ wkbConvCompoundCurveToShape(wkbObj *w, shapeObj *shape)
for ( j = 0; j < shapebuf.line[i].numpoints; j++ ) {
/* Don't add a start point that duplicates an endpoint */
if( j == 0 && i > 0 &&
- memcmp(&(line->point[npoints - 1]),&(shapebuf.line[i].point[j]),sizeof(pointObj)) == 0 ) {
+ memcmp(&(line.point[npoints - 1]),&(shapebuf.line[i].point[j]),sizeof(pointObj)) == 0 ) {
continue;
}
- line->point[npoints++] = shapebuf.line[i].point[j];
+ line.point[npoints++] = shapebuf.line[i].point[j];
}
}
- line->numpoints = npoints;
+ line.numpoints = npoints;
/* Clean up */
msFreeShape(&shapebuf);
/* Fill in the lineObj */
- msAddLineDirectly(shape, line);
+ msAddLineDirectly(shape, &line);
return MS_SUCCESS;
}
@@ -573,9 +644,10 @@ wkbConvCollectionToShape(wkbObj *w, shapeObj *shape)
{
int i, ncomponents;
int failures = 0;
+ int nZMFlag;
/*endian = */wkbReadChar(w);
- /*type = */wkbTypeMap(w,wkbReadInt(w));
+ /*type = */wkbTypeMap(w,wkbReadInt(w), &nZMFlag);
ncomponents = wkbReadInt(w);
/*
@@ -588,7 +660,7 @@ wkbConvCollectionToShape(wkbObj *w, shapeObj *shape)
failures++;
}
}
- if ( failures == ncomponents )
+ if ( failures == ncomponents || ncomponents == 0)
return MS_FAILURE;
else
return MS_SUCCESS;
@@ -604,7 +676,8 @@ wkbConvCollectionToShape(wkbObj *w, shapeObj *shape)
int
wkbConvGeometryToShape(wkbObj *w, shapeObj *shape)
{
- int wkbtype = wkbType(w); /* Peak at the type number */
+ int nZMFlag;
+ int wkbtype = wkbType(w, &nZMFlag); /* Peak at the type number */
switch(wkbtype) {
/* Recurse into anonymous collections */
@@ -886,7 +959,7 @@ arcStrokeCircle(const pointObj *p1, const pointObj *p2, const pointObj *p3,
** argument.
*/
int
-arcStrokeCircularString(wkbObj *w, double segment_angle, lineObj *line)
+arcStrokeCircularString(wkbObj *w, double segment_angle, lineObj *line, int nZMFlag)
{
pointObj p1, p2, p3;
int npoints, nedges;
@@ -905,13 +978,13 @@ arcStrokeCircularString(wkbObj *w, double segment_angle, lineObj *line)
/* Make a large guess at how much space we'll need */
pa = pointArrayNew(nedges * 180 / segment_angle);
- wkbReadPointP(w,&p3);
+ wkbReadPointP(w,&p3,nZMFlag);
/* Fill out the point array with stroked arcs */
while( edge < nedges ) {
p1 = p3;
- wkbReadPointP(w,&p2);
- wkbReadPointP(w,&p3);
+ wkbReadPointP(w,&p2,nZMFlag);
+ wkbReadPointP(w,&p3,nZMFlag);
if ( arcStrokeCircle(&p1, &p2, &p3, segment_angle, edge ? 0 : 1, pa) == MS_FAILURE ) {
pointArrayFree(pa);
return MS_FAILURE;
@@ -942,13 +1015,14 @@ static int
msPostGISFindBestType(wkbObj *w, shapeObj *shape)
{
int wkbtype;
+ int nZMFlag;
/* What kind of geometry is this? */
- wkbtype = wkbType(w);
+ wkbtype = wkbType(w, &nZMFlag);
/* Generic collection, we need to look a little deeper. */
if ( wkbtype == WKB_GEOMETRYCOLLECTION )
- wkbtype = wkbCollectionSubType(w);
+ wkbtype = wkbCollectionSubType(w, &nZMFlag);
switch ( wkbtype ) {
case WKB_POLYGON:
@@ -1055,7 +1129,8 @@ msPostGISRetrieveVersion(PGconn *pgconn)
pgresult = PQexecParams(pgconn, sql,0, NULL, NULL, NULL, NULL, 0);
if ( !pgresult || PQresultStatus(pgresult) != PGRES_TUPLES_OK) {
- msSetError(MS_QUERYERR, "Error executing SQL: %s", "msPostGISRetrieveVersion()", sql);
+ msDebug("Error executing SQL: (%s) in msPostGISRetrieveVersion()", sql);
+ msSetError(MS_QUERYERR, "Error executing SQL. check server logs.", "msPostGISRetrieveVersion()");
return MS_FAILURE;
}
@@ -1109,9 +1184,6 @@ msPostGISRetrievePK(layerObj *layer)
msPostGISLayerInfo *layerinfo = 0;
int length;
int pgVersion;
- char *pos_sep;
- char *schema = NULL;
- char *table = NULL;
if (layer->debug) {
msDebug("msPostGISRetrievePK called.\n");
@@ -1119,21 +1191,6 @@ msPostGISRetrievePK(layerObj *layer)
layerinfo = (msPostGISLayerInfo *) layer->layerinfo;
- /* Attempt to separate fromsource into schema.table */
- pos_sep = strstr(layerinfo->fromsource, ".");
- if (pos_sep) {
- length = strlen(layerinfo->fromsource) - strlen(pos_sep) + 1;
- schema = (char*)msSmallMalloc(length);
- strlcpy(schema, layerinfo->fromsource, length);
-
- length = strlen(pos_sep);
- table = (char*)msSmallMalloc(length);
- strlcpy(table, pos_sep + 1, length);
-
- if (layer->debug) {
- msDebug("msPostGISRetrievePK(): Found schema %s, table %s.\n", schema, table);
- }
- }
if (layerinfo->pgconn == NULL) {
msSetError(MS_QUERYERR, "Layer does not have a postgis connection.", "msPostGISRetrievePK()");
@@ -1160,9 +1217,27 @@ msPostGISRetrievePK(layerObj *layer)
** multicolumn primary keys.
*/
static char *v72sql = "select b.attname from pg_class as a, pg_attribute as b, (select oid from pg_class where relname = '%s') as c, pg_index as d where d.indexrelid = a.oid and d.indrelid = c.oid and d.indisprimary and b.attrelid = a.oid and a.relnatts = 1";
- sql = msSmallMalloc(strlen(layerinfo->fromsource) + strlen(v72sql));
+ sql = msSmallMalloc(strlen(layerinfo->fromsource) + strlen(v72sql) + 1);
sprintf(sql, v72sql, layerinfo->fromsource);
} else {
+ /* Attempt to separate fromsource into schema.table */
+ char *pos_sep;
+ char *schema = NULL;
+ char *table = NULL;
+ pos_sep = strstr(layerinfo->fromsource, ".");
+ if (pos_sep) {
+ length = strlen(layerinfo->fromsource) - strlen(pos_sep) + 1;
+ schema = (char*)msSmallMalloc(length);
+ strlcpy(schema, layerinfo->fromsource, length);
+
+ length = strlen(pos_sep) + 1;
+ table = (char*)msSmallMalloc(length);
+ strlcpy(table, pos_sep + 1, length);
+
+ if (layer->debug) {
+ msDebug("msPostGISRetrievePK(): Found schema %s, table %s.\n", schema, table);
+ }
+ }
/*
** PostgreSQL v7.3 and later treat primary keys as constraints.
** We only support single column primary keys, so multicolumn
@@ -1170,15 +1245,15 @@ msPostGISRetrievePK(layerObj *layer)
*/
if (schema && table) {
static char *v73sql = "select attname from pg_attribute, pg_constraint, pg_class, pg_namespace where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = '%s' and pg_class.relnamespace = pg_namespace.oid and pg_namespace.nspname = '%s' and pg_constraint.conkey[2] is null";
- sql = msSmallMalloc(strlen(schema) + strlen(table) + strlen(v73sql));
+ sql = msSmallMalloc(strlen(schema) + strlen(table) + strlen(v73sql) + 1);
sprintf(sql, v73sql, table, schema);
- free(table);
- free(schema);
} else {
static char *v73sql = "select attname from pg_attribute, pg_constraint, pg_class where pg_constraint.conrelid = pg_class.oid and pg_class.oid = pg_attribute.attrelid and pg_constraint.contype = 'p' and pg_constraint.conkey[1] = pg_attribute.attnum and pg_class.relname = '%s' and pg_table_is_visible(pg_class.oid) and pg_constraint.conkey[2] is null";
- sql = msSmallMalloc(strlen(layerinfo->fromsource) + strlen(v73sql));
+ sql = msSmallMalloc(strlen(layerinfo->fromsource) + strlen(v73sql) + 1);
sprintf(sql, v73sql, layerinfo->fromsource);
}
+ free(table);
+ free(schema);
}
if (layer->debug > 1) {
@@ -1654,9 +1729,9 @@ char *msPostGISBuildSQLItems(layerObj *layer)
*/
char *force2d = "";
#if TRANSFER_ENCODING == 64
- static char *strGeomTemplate = "encode(ST_AsBinary(%s(\"%s\"),'%s'),'base64') as geom,\"%s\"";
+ const char *strGeomTemplate = "encode(ST_AsBinary(%s(\"%s\"),'%s'),'base64') as geom,\"%s\"";
#else
- static char *strGeomTemplate = "encode(ST_AsBinary(%s(\"%s\"),'%s'),'hex') as geom,\"%s\"";
+ const char *strGeomTemplate = "encode(ST_AsBinary(%s(\"%s\"),'%s'),'hex') as geom,\"%s\"";
#endif
if( layerinfo->force2d ) {
if( layerinfo->version >= 20100 )
@@ -1664,7 +1739,16 @@ char *msPostGISBuildSQLItems(layerObj *layer)
else
force2d = "ST_Force_2D";
}
- strGeom = (char*)msSmallMalloc(strlen(strGeomTemplate) + strlen(force2d) + strlen(strEndian) + strlen(layerinfo->geomcolumn) + strlen(layerinfo->uid));
+ else if( layerinfo->version < 20000 )
+ {
+ /* Use AsEWKB() to get 3D */
+#if TRANSFER_ENCODING == 64
+ strGeomTemplate = "encode(AsEWKB(%s(\"%s\"),'%s'),'base64') as geom,\"%s\"";
+#else
+ strGeomTemplate = "encode(AsEWKB(%s(\"%s\"),'%s'),'hex') as geom,\"%s\"";
+#endif
+ }
+ strGeom = (char*)msSmallMalloc(strlen(strGeomTemplate) + strlen(force2d) + strlen(strEndian) + strlen(layerinfo->geomcolumn) + strlen(layerinfo->uid) + 1);
sprintf(strGeom, strGeomTemplate, force2d, layerinfo->geomcolumn, strEndian, layerinfo->uid);
}
@@ -1701,6 +1785,44 @@ char *msPostGISBuildSQLItems(layerObj *layer)
return strItems;
}
+
+/*
+** msPostGISFindTableName()
+**
+** Returns malloc'ed char* that must be freed by caller.
+*/
+char *msPostGISFindTableName(char* fromsource)
+{
+ char *f_table_name = NULL;
+ char *pos = strstr(fromsource, " ");
+
+ if ( ! pos ) {
+ /* target table is one word */
+ f_table_name = msStrdup(fromsource);
+ } else {
+ /* target table is hiding in sub-select clause */
+ pos = strcasestr(fromsource, " from ");
+ if ( pos ) {
+ char *pos_paren;
+ char *pos_space;
+ pos += 6; /* should be start of table name */
+ pos_paren = strstr(pos, ")"); /* first ) after table name */
+ pos_space = strstr(pos, " "); /* first space after table name */
+ if ( pos_space < pos_paren ) {
+ /* found space first */
+ f_table_name = (char*)msSmallMalloc(pos_space - pos + 1);
+ strlcpy(f_table_name, pos, pos_space - pos+1);
+ } else {
+ /* found ) first */
+ f_table_name = (char*)msSmallMalloc(pos_paren - pos + 1);
+ strlcpy(f_table_name, pos, pos_paren - pos+1);
+ }
+ }
+ }
+ return f_table_name;
+}
+
+
/*
** msPostGISBuildSQLSRID()
**
@@ -1733,45 +1855,18 @@ char *msPostGISBuildSQLSRID(layerObj *layer)
** or "(select ... from thetable where ...)".
*/
else {
- char *f_table_name;
+ char *f_table_name = msPostGISFindTableName(layerinfo->fromsource);
char *strSRIDTemplate = "find_srid('','%s','%s')";
- char *pos = strstr(layerinfo->fromsource, " ");
if( layer->debug > 1 ) {
msDebug("msPostGISBuildSQLSRID: Building find_srid line.\n");
}
- if ( ! pos ) {
- /* target table is one word */
- f_table_name = msStrdup(layerinfo->fromsource);
- if( layer->debug > 1 ) {
- msDebug("msPostGISBuildSQLSRID: Found table (%s)\n", f_table_name);
- }
- } else {
- /* target table is hiding in sub-select clause */
- pos = strcasestr(layerinfo->fromsource, " from ");
- if ( pos ) {
- char *pos_paren;
- char *pos_space;
- pos += 6; /* should be start of table name */
- pos_paren = strstr(pos, ")"); /* first ) after table name */
- pos_space = strstr(pos, " "); /* first space after table name */
- if ( pos_space < pos_paren ) {
- /* found space first */
- f_table_name = (char*)msSmallMalloc(pos_space - pos + 1);
- strlcpy(f_table_name, pos, pos_space - pos+1);
- } else {
- /* found ) first */
- f_table_name = (char*)msSmallMalloc(pos_paren - pos + 1);
- strlcpy(f_table_name, pos, pos_paren - pos+1);
- }
- } else {
- /* should not happen */
- return NULL;
- }
- }
- strSRID = msSmallMalloc(strlen(strSRIDTemplate) + strlen(f_table_name) + strlen(layerinfo->geomcolumn));
+ if (!f_table_name)
+ return NULL; /* should not happen */
+
+ strSRID = msSmallMalloc(strlen(strSRIDTemplate) + strlen(f_table_name) + strlen(layerinfo->geomcolumn) + 1);
sprintf(strSRID, strSRIDTemplate, f_table_name, layerinfo->geomcolumn);
- if ( f_table_name ) free(f_table_name);
+ free(f_table_name);
}
return strSRID;
}
@@ -1875,14 +1970,16 @@ char *msPostGISBuildSQLFrom(layerObj *layer, rectObj *rect)
char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
{
char *strRect = 0;
- char *strFilter = 0;
+ char *strFilter1=0, *strFilter2=0;
char *strUid = 0;
char *strWhere = 0;
+ char *strOrderBy = 0;
char *strLimit = 0;
char *strOffset = 0;
size_t strRectLength = 0;
- size_t strFilterLength = 0;
+ size_t strFilterLength1=0, strFilterLength2=0;
size_t strUidLength = 0;
+ size_t strOrderByLength = 0;
size_t strLimitLength = 0;
size_t strOffsetLength = 0;
size_t bufferSize = 0;
@@ -1928,6 +2025,8 @@ char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
/* We see to set the SRID on the box, but to what SRID? */
strSRID = msPostGISBuildSQLSRID(layer);
if ( ! strSRID ) {
+ free( strLimit );
+ free( strOffset );
return NULL;
}
@@ -1936,22 +2035,33 @@ char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
strBoxLength = strlen(strBox);
} else {
msSetError(MS_MISCERR, "Unable to build box SQL.", "msPostGISBuildSQLWhere()");
+ free( strLimit );
+ free( strOffset );
return NULL;
}
- strRect = (char*)msSmallMalloc(strlen(strRectTemplate) + strBoxLength + strlen(layerinfo->geomcolumn));
+ strRect = (char*)msSmallMalloc(strlen(strRectTemplate) + strBoxLength + strlen(layerinfo->geomcolumn) +1 );
sprintf(strRect, strRectTemplate, layerinfo->geomcolumn, strBox);
strRectLength = strlen(strRect);
- if (strBox) free(strBox);
- if (strSRID) free(strSRID);
+ free(strBox);
+ free(strSRID);
+ }
+
+ /* Handle a translated filter (RFC91). */
+ if ( layer->filter.native_string ) {
+ static char *strFilterTemplate = "(%s)";
+ strFilter1 = (char *) msSmallMalloc(strlen(strFilterTemplate) + strlen(layer->filter.native_string)+1);
+ sprintf(strFilter1, strFilterTemplate, layer->filter.native_string);
+ strFilterLength1 = strlen(strFilter1);
}
- /* Populate strFilter, if necessary. */
- if ( layer->filter.string ) {
+ /* Handle a native filter set as a PROCESSING option (#5001). */
+ if( msLayerGetProcessingKey(layer, "NATIVE_FILTER") != NULL ) {
static char *strFilterTemplate = "(%s)";
- strFilter = (char*)msSmallMalloc(strlen(strFilterTemplate) + strlen(layer->filter.string));
- sprintf(strFilter, strFilterTemplate, layer->filter.string);
- strFilterLength = strlen(strFilter);
+ char *native_filter = msLayerGetProcessingKey(layer, "NATIVE_FILTER");
+ strFilter2 = (char *) msSmallMalloc(strlen(strFilterTemplate) + strlen(native_filter)+1);
+ sprintf(strFilter2, strFilterTemplate, native_filter);
+ strFilterLength2 = strlen(strFilter2);
}
/* Populate strUid, if necessary. */
@@ -1962,8 +2072,17 @@ char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
strUidLength = strlen(strUid);
}
- bufferSize = strRectLength + 5 + strFilterLength + 5 + strUidLength
- + strLimitLength + strOffsetLength;
+ /* Populate strOrderBy, if necessary */
+ if( layer->sortBy.nProperties > 0 ) {
+ char* pszTmp = msLayerBuildSQLOrderBy(layer);
+ strOrderBy = msStringConcatenate(strOrderBy, " ORDER BY ");
+ strOrderBy = msStringConcatenate(strOrderBy, pszTmp);
+ msFree(pszTmp);
+ strOrderByLength = strlen(strOrderBy);
+ }
+
+ bufferSize = strRectLength + 5 + (strFilterLength1 + 5) + (strFilterLength2 + 5) + strUidLength
+ + strLimitLength + strOffsetLength + strOrderByLength + 1;
strWhere = (char*)msSmallMalloc(bufferSize);
*strWhere = '\0';
if ( strRect ) {
@@ -1971,12 +2090,20 @@ char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
insert_and++;
free(strRect);
}
- if ( strFilter ) {
+ if ( strFilter1 ) {
if ( insert_and ) {
strlcat(strWhere, " and ", bufferSize);
}
- strlcat(strWhere, strFilter, bufferSize);
- free(strFilter);
+ strlcat(strWhere, strFilter1, bufferSize);
+ free(strFilter1);
+ insert_and++;
+ }
+ if ( strFilter2 ) {
+ if ( insert_and ) {
+ strlcat(strWhere, " and ", bufferSize);
+ }
+ strlcat(strWhere, strFilter2, bufferSize);
+ free(strFilter2);
insert_and++;
}
if ( strUid ) {
@@ -1987,6 +2114,12 @@ char *msPostGISBuildSQLWhere(layerObj *layer, rectObj *rect, long *uid)
free(strUid);
insert_and++;
}
+
+ if ( strOrderBy ) {
+ strlcat(strWhere, strOrderBy, bufferSize);
+ free(strOrderBy);
+ }
+
if ( strLimit ) {
strlcat(strWhere, strLimit, bufferSize);
free(strLimit);
@@ -2052,14 +2185,14 @@ char *msPostGISBuildSQL(layerObj *layer, rectObj *rect, long *uid)
strSQLTemplate = strlen(strWhere) ? strSQLTemplate0 : strSQLTemplate1;
- strSQL = msSmallMalloc(strlen(strSQLTemplate) + strlen(strFrom) + strlen(strItems) + strlen(strWhere));
+ strSQL = msSmallMalloc(strlen(strSQLTemplate) + strlen(strFrom) + strlen(strItems) + strlen(strWhere) + 1);
sprintf(strSQL, strSQLTemplate, strItems, strFrom, strWhere);
- if (strItems) free(strItems);
- if (strFrom) free(strFrom);
- if (strWhere) free(strWhere);
- return strSQL;
+ free(strItems);
+ free(strFrom);
+ free(strWhere);
+ return strSQL;
}
#define wkbstaticsize 4096
@@ -2115,7 +2248,23 @@ int msPostGISReadShape(layerObj *layer, shapeObj *shape)
if( layerinfo->version >= 20000 ) /* PostGIS 2.0+ */
w.typemap = wkb_postgis20;
else
+ {
w.typemap = wkb_postgis15;
+ if( layerinfo->force2d == MS_FALSE )
+ {
+ /* Is there SRID ? Skip it */
+ if( w.size >= 9 && (w.ptr[4] & 0x20) != 0 )
+ {
+ w.ptr[5] = w.ptr[1];
+ w.ptr[6] = w.ptr[2];
+ w.ptr[7] = w.ptr[3];
+ w.ptr[8] = w.ptr[4] & ~(0x20);
+ w.ptr[4] = 1;
+ w.ptr += 4;
+ w.size -= 4;
+ }
+ }
+ }
switch (layer->type) {
@@ -2134,7 +2283,6 @@ int msPostGISReadShape(layerObj *layer, shapeObj *shape)
result = wkbConvGeometryToShape(&w, shape);
break;
- case MS_LAYER_ANNOTATION:
case MS_LAYER_QUERY:
case MS_LAYER_CHART:
result = msPostGISFindBestType(&w, shape);
@@ -2204,6 +2352,8 @@ int msPostGISReadShape(layerObj *layer, shapeObj *shape)
shape->numvalues = layer->numitems;
msComputeBounds(shape);
+ } else {
+ shape->type = MS_SHAPE_NULL;
}
if( layer->debug > 2 ) {
@@ -2273,6 +2423,7 @@ int msPostGISLayerOpen(layerObj *layer)
if (!layer->connection) {
msSetError(MS_MISCERR, "Missing CONNECTION keyword.", "msPostGISLayerOpen()");
+ free(layerinfo);
return MS_FAILURE;
}
@@ -2281,6 +2432,7 @@ int msPostGISLayerOpen(layerObj *layer)
*/
conn_decrypted = msDecryptStringTokens(layer->map, layer->connection);
if (conn_decrypted == NULL) {
+ free(layerinfo);
return MS_FAILURE; /* An error should already have been produced */
}
layerinfo->pgconn = PQconnectdb(conn_decrypted);
@@ -2305,8 +2457,10 @@ int msPostGISLayerOpen(layerObj *layer)
}
}
- msSetError(MS_QUERYERR, "Database connection failed (%s) with connect string '%s'\nIs the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port?", "msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn), maskeddata);
+ msDebug( "Database connection failed (%s) with connect string '%s'\nIs the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port? in msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn), maskeddata);
+ msSetError(MS_QUERYERR, "Database connection failed. Check server logs for more details.Is the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port?", "msPostGISLayerOpen()");
+ if(layerinfo->pgconn) PQfinish(layerinfo->pgconn);
free(maskeddata);
free(layerinfo);
return MS_FAILURE;
@@ -2324,7 +2478,12 @@ int msPostGISLayerOpen(layerObj *layer)
PQreset(layerinfo->pgconn);
if( PQstatus(layerinfo->pgconn) != CONNECTION_OK ) {
/* Nope, time to bail out. */
- msSetError(MS_QUERYERR, "PostgreSQL database connection gone bad (%s)", "msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn));
+ msSetError(MS_QUERYERR, "PostgreSQL database connection. Check server logs for more details", "msPostGISLayerOpen()");
+ msDebug( "PostgreSQL database connection gone bad (%s) in msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn));
+ free(layerinfo);
+ /* FIXME: we should also release the connection from the pool in this case, but it is stale...
+ * for the time being we do not release it so it can never be used again. If this happens multiple
+ * times there will be a leak... */
return MS_FAILURE;
}
@@ -2333,7 +2492,11 @@ int msPostGISLayerOpen(layerObj *layer)
/* Get the PostGIS version number from the database */
layerinfo->version = msPostGISRetrieveVersion(layerinfo->pgconn);
- if( layerinfo->version == MS_FAILURE ) return MS_FAILURE;
+ if( layerinfo->version == MS_FAILURE ) {
+ msConnPoolRelease(layer, layerinfo->pgconn);
+ free(layerinfo);
+ return MS_FAILURE;
+ }
if (layer->debug)
msDebug("msPostGISLayerOpen: Got PostGIS version %d.\n", layerinfo->version);
@@ -2341,6 +2504,9 @@ int msPostGISLayerOpen(layerObj *layer)
if(force2d_processing && !strcasecmp(force2d_processing,"no")) {
layerinfo->force2d = MS_FALSE;
}
+ else if(force2d_processing && !strcasecmp(force2d_processing,"yes")) {
+ layerinfo->force2d = MS_TRUE;
+ }
if (layer->debug)
msDebug("msPostGISLayerOpen: Forcing 2D geometries: %s.\n", (layerinfo->force2d)?"yes":"no");
@@ -2531,6 +2697,8 @@ int msPostGISLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
msDebug("msPostGISLayerWhichShapes query: %s\n", strSQL);
}
+ // fprintf(stderr, "SQL: %s\n", strSQL);
+
if(num_bind_values > 0) {
pgresult = PQexecParams(layerinfo->pgconn, strSQL, num_bind_values, NULL, (const char**)layer_bind_values, NULL, NULL, 1);
} else {
@@ -2547,10 +2715,8 @@ int msPostGISLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
/* Something went wrong. */
if (!pgresult || PQresultStatus(pgresult) != PGRES_TUPLES_OK) {
- if ( layer->debug ) {
- msDebug("msPostGISLayerWhichShapes(): Error (%s) executing query: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL);
- }
- msSetError(MS_QUERYERR, "Error executing query: %s ", "msPostGISLayerWhichShapes()", PQerrorMessage(layerinfo->pgconn));
+ msDebug("msPostGISLayerWhichShapes(): Error (%s) executing query: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL);
+ msSetError(MS_QUERYERR, "Error executing query. Check server logs","msPostGISLayerWhichShapes()");
free(strSQL);
if (pgresult) {
PQclear(pgresult);
@@ -2728,10 +2894,8 @@ int msPostGISLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
/* Something went wrong. */
if ( (!pgresult) || (PQresultStatus(pgresult) != PGRES_TUPLES_OK) ) {
- if ( layer->debug ) {
- msDebug("msPostGISLayerGetShape(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL );
- }
- msSetError(MS_QUERYERR, "Error executing SQL: %s", "msPostGISLayerGetShape()", PQerrorMessage(layerinfo->pgconn));
+ msDebug("msPostGISLayerGetShape(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL );
+ msSetError(MS_QUERYERR, "Error executing SQL. Check server logs.","msPostGISLayerGetShape()");
if (pgresult) {
PQclear(pgresult);
@@ -2954,10 +3118,8 @@ int msPostGISLayerGetItems(layerObj *layer)
pgresult = PQexecParams(layerinfo->pgconn, sql,0, NULL, NULL, NULL, NULL, 0);
if ( (!pgresult) || (PQresultStatus(pgresult) != PGRES_TUPLES_OK) ) {
- if ( layer->debug ) {
- msDebug("msPostGISLayerGetItems(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), sql);
- }
- msSetError(MS_QUERYERR, "Error executing SQL: %s", "msPostGISLayerGetItems()", PQerrorMessage(layerinfo->pgconn));
+ msDebug("msPostGISLayerGetItems(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), sql);
+ msSetError(MS_QUERYERR, "Error executing SQL. Check server logs","msPostGISLayerGetItems()");
if (pgresult) {
PQclear(pgresult);
}
@@ -3011,6 +3173,100 @@ int msPostGISLayerGetItems(layerObj *layer)
}
/*
+** msPostGISLayerGetExtent()
+**
+** Registered vtable->LayerGetExtent function. Query the database for
+** the extent of the requested layer.
+*/
+int msPostGISLayerGetExtent(layerObj *layer, rectObj *extent)
+{
+#ifdef USE_POSTGIS
+ msPostGISLayerInfo *layerinfo = NULL;
+ char *strSQL = NULL;
+ char *f_table_name;
+ static char *sqlExtentTemplate = "SELECT ST_Extent(%s) FROM %s";
+ size_t buffer_len;
+ PGresult *pgresult = NULL;
+
+ if (layer->debug) {
+ msDebug("msPostGISLayerGetExtent called.\n");
+ }
+
+ assert( layer->layerinfo != NULL);
+
+ layerinfo = (msPostGISLayerInfo *)layer->layerinfo;
+
+ if ( msPostGISParseData(layer) != MS_SUCCESS) {
+ return MS_FAILURE;
+ }
+
+ /* if we have !BOX! substitution then we use just the table name */
+ if ( strstr(layerinfo->fromsource, BOXTOKEN) )
+ f_table_name = msPostGISFindTableName(layerinfo->fromsource);
+ else
+ f_table_name = msStrdup(layerinfo->fromsource);
+
+ if ( !f_table_name ) {
+ msSetError(MS_MISCERR, "Failed to get table name.", "msPostGISLayerGetExtent()");
+ return MS_FAILURE;
+ }
+
+ buffer_len = strlen(layerinfo->geomcolumn) + strlen(f_table_name) + strlen(sqlExtentTemplate);
+ strSQL = (char*)msSmallMalloc(buffer_len+1); /* add space for terminating NULL */
+ snprintf(strSQL, buffer_len, sqlExtentTemplate, layerinfo->geomcolumn, f_table_name);
+ msFree(f_table_name);
+
+ if (layer->debug) {
+ msDebug("msPostGISLayerGetExtent executing SQL: %s\n", strSQL);
+ }
+
+ /* executing the query */
+ pgresult = PQexecParams(layerinfo->pgconn, strSQL,0, NULL, NULL, NULL, NULL, 0);
+
+ msFree(strSQL);
+
+ if ( (!pgresult) || (PQresultStatus(pgresult) != PGRES_TUPLES_OK) ) {
+ msDebug("Error executing SQL: (%s) in msPostGISLayerGetExtent()", PQerrorMessage(layerinfo->pgconn));
+ msSetError(MS_MISCERR, "Error executing SQL. Check server logs.","msPostGISLayerGetExtent()");
+ if (pgresult)
+ PQclear(pgresult);
+
+ return MS_FAILURE;
+ }
+
+ /* process results */
+ if (PQntuples(pgresult) < 1) {
+ msSetError(MS_MISCERR, "msPostGISLayerGetExtent: No results found.",
+ "msPostGISLayerGetExtent()");
+ PQclear(pgresult);
+ return MS_FAILURE;
+ }
+
+ if (PQgetisnull(pgresult, 0, 0)) {
+ msSetError(MS_MISCERR, "msPostGISLayerGetExtent: Null result returned.",
+ "msPostGISLayerGetExtent()");
+ PQclear(pgresult);
+ return MS_FAILURE;
+ }
+
+ if (sscanf(PQgetvalue(pgresult, 0, 0), "BOX(%lf %lf,%lf %lf)",
+ &extent->minx, &extent->miny, &extent->maxx, &extent->maxy) != 4) {
+ msSetError(MS_MISCERR, "Failed to process result data.", "msPostGISLayerGetExtent()");
+ PQclear(pgresult);
+ return MS_FAILURE;
+ }
+
+ /* cleanup */
+ PQclear(pgresult);
+
+ return MS_SUCCESS;
+#else
+ msSetError( MS_MISCERR, "PostGIS support is not available.", "msPostGISLayerGetExtent()");
+ return MS_FAILURE;
+#endif
+}
+
+/*
* make sure that the timestring is complete and acceptable
* to the date_trunc function :
* - if the resolution is year (2004) or month (2004-01),
@@ -3025,7 +3281,7 @@ int postgresTimeStampForTimeString(const char *timestring, char *dest, size_t de
int bNoDate = (*timestring == 'T');
if (timeresolution < 0)
return MS_FALSE;
-
+
switch(timeresolution) {
case TIME_RESOLUTION_YEAR:
if (timestring[nlength-1] != '-') {
@@ -3083,7 +3339,6 @@ int postgresTimeStampForTimeString(const char *timestring, char *dest, size_t de
}
-
/*
* create a postgresql where clause for the given timestring, taking into account
* the resolution (e.g. second, day, month...) of the given timestring
@@ -3099,13 +3354,13 @@ int postgresTimeStampForTimeString(const char *timestring, char *dest, size_t de
* timecol < date_trunc(timestring,resolution) + interval '1 resolution'
* )
*/
-int createPostgresTimeCompareSimple(const char *timecol, const char *timestring, char *dest, size_t destsize)
+int createPostgresTimeCompareEquals(const char *timestring, char *dest, size_t destsize)
{
int timeresolution = msTimeGetResolution(timestring);
char timeStamp[100];
char *interval;
- if (timeresolution < 0)
- return MS_FALSE;
+ if (timeresolution < 0) return MS_FALSE;
+
postgresTimeStampForTimeString(timestring,timeStamp,100);
switch(timeresolution) {
@@ -3130,8 +3385,43 @@ int createPostgresTimeCompareSimple(const char *timecol, const char *timestring,
default:
return MS_FAILURE;
}
- snprintf(dest, destsize,"(%s >= date_trunc('%s',%s) and %s < date_trunc('%s',%s) + interval '1 %s')",
- timecol, interval, timeStamp, timecol, interval, timeStamp, interval);
+ snprintf(dest, destsize, " between date_trunc('%s',%s) and date_trunc('%s',%s) + interval '1 %s' - interval '1 second'", interval, timeStamp, interval, timeStamp, interval);
+ return MS_SUCCESS;
+}
+
+int createPostgresTimeCompareGreaterThan(const char *timestring, char *dest, size_t destsize)
+{
+ int timeresolution = msTimeGetResolution(timestring);
+ char timestamp[100];
+ char *interval;
+ if (timeresolution < 0) return MS_FALSE;
+
+ postgresTimeStampForTimeString(timestring,timestamp,100);
+
+ switch(timeresolution) {
+ case TIME_RESOLUTION_YEAR:
+ interval = "year";
+ break;
+ case TIME_RESOLUTION_MONTH:
+ interval = "month";
+ break;
+ case TIME_RESOLUTION_DAY:
+ interval = "day";
+ break;
+ case TIME_RESOLUTION_HOUR:
+ interval = "hour";
+ break;
+ case TIME_RESOLUTION_MINUTE:
+ interval = "minute";
+ break;
+ case TIME_RESOLUTION_SECOND:
+ interval = "second";
+ break;
+ default:
+ return MS_FAILURE;
+ }
+
+ snprintf(dest, destsize,"date_trunc('%s',%s)", interval, timestamp);
return MS_SUCCESS;
}
@@ -3152,144 +3442,41 @@ int createPostgresTimeCompareSimple(const char *timecol, const char *timestring,
* timecol < date_trunc(maxtimestring,maxresolution) + interval '1 maxresolution'
* )
*/
-int createPostgresTimeCompareRange(const char *timecol, const char *mintime, const char *maxtime,
- char *dest, size_t destsize)
-{
- int mintimeresolution = msTimeGetResolution(mintime);
- int maxtimeresolution = msTimeGetResolution(maxtime);
- char minTimeStamp[100];
- char maxTimeStamp[100];
- char *minTimeInterval,*maxTimeInterval;
- if (mintimeresolution < 0 || maxtimeresolution < 0)
- return MS_FALSE;
- postgresTimeStampForTimeString(mintime,minTimeStamp,100);
- postgresTimeStampForTimeString(maxtime,maxTimeStamp,100);
+int createPostgresTimeCompareLessThan(const char *timestring, char *dest, size_t destsize)
+{
+ int timeresolution = msTimeGetResolution(timestring);
+ char timestamp[100];
+ char *interval;
+ if (timeresolution < 0)return MS_FALSE;
- switch(maxtimeresolution) {
- case TIME_RESOLUTION_YEAR:
- maxTimeInterval = "year";
- break;
- case TIME_RESOLUTION_MONTH:
- maxTimeInterval = "month";
- break;
- case TIME_RESOLUTION_DAY:
- maxTimeInterval = "day";
- break;
- case TIME_RESOLUTION_HOUR:
- maxTimeInterval = "hour";
- break;
- case TIME_RESOLUTION_MINUTE:
- maxTimeInterval = "minute";
- break;
- case TIME_RESOLUTION_SECOND:
- maxTimeInterval = "second";
- break;
- default:
- return MS_FAILURE;
- }
- switch(mintimeresolution) {
+ postgresTimeStampForTimeString(timestring,timestamp,100);
+
+ switch(timeresolution) {
case TIME_RESOLUTION_YEAR:
- minTimeInterval = "year";
+ interval = "year";
break;
case TIME_RESOLUTION_MONTH:
- minTimeInterval = "month";
+ interval = "month";
break;
case TIME_RESOLUTION_DAY:
- minTimeInterval = "day";
+ interval = "day";
break;
case TIME_RESOLUTION_HOUR:
- minTimeInterval = "hour";
+ interval = "hour";
break;
case TIME_RESOLUTION_MINUTE:
- minTimeInterval = "minute";
+ interval = "minute";
break;
case TIME_RESOLUTION_SECOND:
- minTimeInterval = "second";
+ interval = "second";
break;
default:
return MS_FAILURE;
}
- snprintf(dest, destsize,"(%s >= date_trunc('%s',%s) and %s < date_trunc('%s',%s) + interval '1 %s')",
- timecol, minTimeInterval, minTimeStamp,
- timecol, maxTimeInterval, maxTimeStamp, maxTimeInterval);
+ snprintf(dest, destsize,"(date_trunc('%s',%s) + interval '1 %s' - interval '1 second')", interval, timestamp, interval);
return MS_SUCCESS;
}
-int msPostGISLayerSetTimeFilter(layerObj *lp, const char *timestring, const char *timefield)
-{
- char **atimes, **aranges = NULL;
- int numtimes=0,i=0,numranges=0;
- size_t buffer_size = 512;
- char buffer[512], bufferTmp[512];
-
- buffer[0] = '\0';
- bufferTmp[0] = '\0';
-
- if (!lp || !timestring || !timefield)
- return MS_FALSE;
-
- if( strchr(timestring,'\'') || strchr(timestring, '\\') ) {
- msSetError(MS_MISCERR, "Invalid time filter.", "msPostGISLayerSetTimeFilter()");
- return MS_FALSE;
- }
-
- /* discrete time */
- if (strstr(timestring, ",") == NULL &&
- strstr(timestring, "/") == NULL) { /* discrete time */
- createPostgresTimeCompareSimple(timefield, timestring, buffer, buffer_size);
- } else {
-
- /* multiple times, or ranges */
- atimes = msStringSplit (timestring, ',', &numtimes);
- if (atimes == NULL || numtimes < 1)
- return MS_FALSE;
-
- strlcat(buffer, "(", buffer_size);
- for(i=0; i<numtimes; i++) {
- if(i!=0) {
- strlcat(buffer, " OR ", buffer_size);
- }
- strlcat(buffer, "(", buffer_size);
- aranges = msStringSplit(atimes[i], '/', &numranges);
- if(!aranges) return MS_FALSE;
- if(numranges == 1) {
- /* we don't have range, just a simple time */
- createPostgresTimeCompareSimple(timefield, atimes[i], bufferTmp, buffer_size);
- strlcat(buffer, bufferTmp, buffer_size);
- } else if(numranges == 2) {
- /* we have a range */
- createPostgresTimeCompareRange(timefield, aranges[0], aranges[1], bufferTmp, buffer_size);
- strlcat(buffer, bufferTmp, buffer_size);
- } else {
- return MS_FALSE;
- }
- msFreeCharArray(aranges, numranges);
- strlcat(buffer, ")", buffer_size);
- }
- strlcat(buffer, ")", buffer_size);
- msFreeCharArray(atimes, numtimes);
- }
- if(!*buffer) {
- return MS_FALSE;
- }
- if(lp->filteritem) free(lp->filteritem);
- lp->filteritem = msStrdup(timefield);
- if (&lp->filter) {
- /* if the filter is set and it's a string type, concatenate it with
- the time. If not just free it */
- if (lp->filter.type == MS_EXPRESSION) {
- snprintf(bufferTmp, buffer_size, "(%s) and %s", lp->filter.string, buffer);
- loadExpressionString(&lp->filter, bufferTmp);
- } else {
- freeExpression(&lp->filter);
- loadExpressionString(&lp->filter, buffer);
- }
- }
-
-
- return MS_TRUE;
-}
-
char *msPostGISEscapeSQLParam(layerObj *layer, const char *pszString)
{
#ifdef USE_POSTGIS
@@ -3371,11 +3558,266 @@ int msPostGISGetPaging(layerObj *layer)
#endif
}
+/*
+** Look ahead to find the next node of a specific type.
+*/
+tokenListNodeObjPtr findNextTokenByType(tokenListNodeObjPtr node, int type) {
+ while (node != NULL) {
+ if(node->token == type) return node;
+ node = node->next; /* keep looking */
+ }
+
+ return NULL; /* not found */
+}
+
+/*
+** msPostGISLayerTranslateFilter()
+**
+** Registered vtable->LayerTranslateFilter function.
+*/
+int msPostGISLayerTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem)
+{
+#ifdef USE_POSTGIS
+ tokenListNodeObjPtr node = NULL;
+
+ int resolution; /* date/time resolution */
+ int noDate;
+
+ char *snippet = NULL;
+ char *native_string = NULL;
+ char *strtmpl = NULL;
+ char *stresc = NULL;
+
+ int comparisonToken = -1;
+ int bindingToken = -1;
+
+ msPostGISLayerInfo *layerinfo = layer->layerinfo;
+
+ if(!filter->string) return MS_SUCCESS; /* not an error, just nothing to do */
+
+ // fprintf(stderr, "input: %s, %s, %d\n", filter->string, filteritem, filter->type);
+
+ /*
+ ** FILTERs use MapServer syntax *only* (#5001).
+ */
+ if(filter->type == MS_STRING && filter->string && filteritem) { /* item/value pair - add escaping */
+
+ stresc = msLayerEscapePropertyName(layer, filteritem);
+ if(filter->flags & MS_EXP_INSENSITIVE) {
+ native_string = msStringConcatenate(native_string, "upper(");
+ native_string = msStringConcatenate(native_string, stresc);
+ native_string = msStringConcatenate(native_string, "::text) = upper(");
+ } else {
+ native_string = msStringConcatenate(native_string, stresc);
+ native_string = msStringConcatenate(native_string, "::text = ");
+ }
+ msFree(stresc);
+
+ strtmpl = "'%s'"; /* don't have a type for the righthand literal so assume it's a string and we quote */
+ stresc = msPostGISEscapeSQLParam(layer, filter->string);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, strtmpl, stresc);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ msFree(stresc);
+
+ if(filter->flags & MS_EXP_INSENSITIVE) native_string = msStringConcatenate(native_string, ")");
+ } else if(filter->type == MS_REGEX && filter->string && filteritem) { /* item/regex pair - add escaping */
+
+ stresc = msLayerEscapePropertyName(layer, filteritem);
+ native_string = msStringConcatenate(native_string, stresc);
+ if(filter->flags & MS_EXP_INSENSITIVE) {
+ native_string = msStringConcatenate(native_string, "::text ~* ");
+ } else {
+ native_string = msStringConcatenate(native_string, "::text ~ ");
+ }
+ msFree(stresc);
+
+ strtmpl = "'%s'";
+ stresc = msPostGISEscapeSQLParam(layer, filter->string);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, strtmpl, stresc);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ msFree(stresc);
+ } else if(filter->type == MS_EXPRESSION) {
+ if(msPostGISParseData(layer) != MS_SUCCESS) return MS_FAILURE;
+
+ if(layer->debug >= 2) msDebug("msPostGISLayerTranslateFilter. String: %s.\n", filter->string);
+ if(!filter->tokens) return MS_SUCCESS;
+ if(layer->debug >= 2) msDebug("msPostGISLayerTranslateFilter. There are tokens to process... \n");
+
+ node = filter->tokens;
+ while (node != NULL) {
+
+ /*
+ ** Do any token caching/tracking here, easier to have it in one place.
+ */
+ if(node->token == MS_TOKEN_BINDING_TIME) {
+ bindingToken = node->token;
+ } else if(node->token == MS_TOKEN_COMPARISON_EQ || node->token == MS_TOKEN_COMPARISON_NE ||
+ node->token == MS_TOKEN_COMPARISON_GT || node->token == MS_TOKEN_COMPARISON_GE ||
+ node->token == MS_TOKEN_COMPARISON_LT || node->token == MS_TOKEN_COMPARISON_LE) {
+ comparisonToken = node->token;
+ }
+
+ switch(node->token) {
+
+ /* literal tokens */
+ case MS_TOKEN_LITERAL_BOOLEAN:
+ if(node->tokenval.dblval == MS_TRUE)
+ native_string = msStringConcatenate(native_string, "TRUE");
+ else
+ native_string = msStringConcatenate(native_string, "FALSE");
+ break;
+ case MS_TOKEN_LITERAL_NUMBER:
+ strtmpl = "%lf";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + 16);
+ sprintf(snippet, strtmpl, node->tokenval.dblval);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ break;
+ case MS_TOKEN_LITERAL_STRING:
+ strtmpl = "'%s'";
+ stresc = msPostGISEscapeSQLParam(layer, node->tokenval.strval);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, strtmpl, stresc);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ msFree(stresc);
+ break;
+ case MS_TOKEN_LITERAL_TIME: {
+ snippet = (char *) msSmallMalloc(512);
+
+ if(comparisonToken == MS_TOKEN_COMPARISON_EQ) { // TODO: support !=
+ createPostgresTimeCompareEquals(node->tokensrc, snippet, 512);
+ } else if(comparisonToken == MS_TOKEN_COMPARISON_GT || comparisonToken == MS_TOKEN_COMPARISON_GE) {
+ createPostgresTimeCompareGreaterThan(node->tokensrc, snippet, 512);
+ } else if(comparisonToken == MS_TOKEN_COMPARISON_LT || comparisonToken == MS_TOKEN_COMPARISON_LE) {
+ createPostgresTimeCompareLessThan(node->tokensrc, snippet, 512);
+ } else {
+ goto cleanup;
+ }
+
+ comparisonToken = -1; bindingToken = -1; /* reset */
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ break;
+ }
+ case MS_TOKEN_LITERAL_SHAPE:
+ {
+ char* wkt = msShapeToWKT(node->tokenval.shpval);
+ native_string = msStringConcatenate(native_string, "ST_GeomFromText('");
+ native_string = msStringConcatenate(native_string, wkt);
+ msFree(wkt);
+ native_string = msStringConcatenate(native_string, "'");
+ if(layerinfo->srid && strcmp(layerinfo->srid, "") != 0) {
+ native_string = msStringConcatenate(native_string, ",");
+ native_string = msStringConcatenate(native_string, layerinfo->srid);
+ }
+ native_string = msStringConcatenate(native_string, ")");
+ break;
+ }
+
+ /* data binding tokens */
+ case MS_TOKEN_BINDING_TIME:
+ case MS_TOKEN_BINDING_DOUBLE:
+ case MS_TOKEN_BINDING_INTEGER:
+ case MS_TOKEN_BINDING_STRING:
+ if(node->token == MS_TOKEN_BINDING_STRING || node->next->token == MS_TOKEN_COMPARISON_RE || node->next->token == MS_TOKEN_COMPARISON_IRE)
+ strtmpl = "%s::text"; /* explicit cast necessary for certain operators */
+ else
+ strtmpl = "%s";
+ stresc = msLayerEscapePropertyName(layer, node->tokenval.bindval.item);
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + strlen(stresc));
+ sprintf(snippet, strtmpl, stresc);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ msFree(stresc);
+ break;
+ case MS_TOKEN_BINDING_SHAPE:
+ native_string = msStringConcatenate(native_string, layerinfo->geomcolumn);
+ break;
+ case MS_TOKEN_BINDING_MAP_CELLSIZE:
+ strtmpl = "%lf";
+ snippet = (char *) msSmallMalloc(strlen(strtmpl) + 16);
+ sprintf(snippet, strtmpl, layer->map->cellsize);
+ native_string = msStringConcatenate(native_string, snippet);
+ msFree(snippet);
+ break;
+
+ /* spatial comparison tokens */
+ case MS_TOKEN_COMPARISON_INTERSECTS:
+ case MS_TOKEN_COMPARISON_DISJOINT:
+ case MS_TOKEN_COMPARISON_TOUCHES:
+ case MS_TOKEN_COMPARISON_OVERLAPS:
+ case MS_TOKEN_COMPARISON_CROSSES:
+ case MS_TOKEN_COMPARISON_WITHIN:
+ case MS_TOKEN_COMPARISON_CONTAINS:
+ case MS_TOKEN_COMPARISON_EQUALS:
+ case MS_TOKEN_COMPARISON_DWITHIN:
+ if(node->next->token != '(') goto cleanup;
+ native_string = msStringConcatenate(native_string, "st_");
+ native_string = msStringConcatenate(native_string, msExpressionTokenToString(node->token));
+ break;
+
+ /* functions */
+ case MS_TOKEN_FUNCTION_LENGTH:
+ case MS_TOKEN_FUNCTION_AREA:
+ case MS_TOKEN_FUNCTION_BUFFER:
+ case MS_TOKEN_FUNCTION_DIFFERENCE:
+ native_string = msStringConcatenate(native_string, "st_");
+ native_string = msStringConcatenate(native_string, msExpressionTokenToString(node->token));
+ break;
+
+ /* unsupported tokens */
+ case MS_TOKEN_COMPARISON_IEQ:
+ case MS_TOKEN_COMPARISON_BEYOND:
+ case MS_TOKEN_FUNCTION_TOSTRING:
+ case MS_TOKEN_FUNCTION_ROUND:
+ case MS_TOKEN_FUNCTION_SIMPLIFY:
+ case MS_TOKEN_FUNCTION_SIMPLIFYPT:
+ case MS_TOKEN_FUNCTION_GENERALIZE:
+ goto cleanup;
+ break;
+
+ default:
+ /* by default accept the general token to string conversion */
+
+ if(bindingToken == MS_TOKEN_BINDING_TIME && (node->token == MS_TOKEN_COMPARISON_EQ || node->token == MS_TOKEN_COMPARISON_NE)) break; /* skip, handled elsewhere */
+
+ native_string = msStringConcatenate(native_string, msExpressionTokenToString(node->token));
+ break;
+ }
+
+ node = node->next;
+ }
+ }
+
+ filter->native_string = msStrdup(native_string);
+ msFree(native_string);
+
+ // fprintf(stderr, "output: %s\n", filter->native_string);
+
+ return MS_SUCCESS;
+
+cleanup:
+ msSetError(MS_MISCERR, "Translation to native SQL failed.", "msPostGISLayerTranslateFilter()");
+ msFree(native_string);
+ return MS_FAILURE;
+#else
+ msSetError(MS_MISCERR, "PostGIS support is not available.", "msPostGISLayerTranslateFilter()");
+ return MS_FAILURE;
+#endif
+}
+
int msPostGISLayerInitializeVirtualTable(layerObj *layer)
{
assert(layer != NULL);
assert(layer->vtable != NULL);
+ layer->vtable->LayerTranslateFilter = msPostGISLayerTranslateFilter;
+
layer->vtable->LayerInitItemInfo = msPostGISLayerInitItemInfo;
layer->vtable->LayerFreeItemInfo = msPostGISLayerFreeItemInfo;
layer->vtable->LayerOpen = msPostGISLayerOpen;
@@ -3385,11 +3827,12 @@ int msPostGISLayerInitializeVirtualTable(layerObj *layer)
layer->vtable->LayerGetShape = msPostGISLayerGetShape;
layer->vtable->LayerClose = msPostGISLayerClose;
layer->vtable->LayerGetItems = msPostGISLayerGetItems;
- /* layer->vtable->LayerGetExtent = msPostGISLayerGetExtent; */
+ layer->vtable->LayerGetExtent = msPostGISLayerGetExtent;
layer->vtable->LayerApplyFilterToLayer = msLayerApplyCondSQLFilterToLayer;
/* layer->vtable->LayerGetAutoStyle, not supported for this layer */
/* layer->vtable->LayerCloseConnection = msPostGISLayerClose; */
- layer->vtable->LayerSetTimeFilter = msPostGISLayerSetTimeFilter;
+ // layer->vtable->LayerSetTimeFilter = msPostGISLayerSetTimeFilter;
+ layer->vtable->LayerSetTimeFilter = msLayerMakeBackticsTimeFilter;
/* layer->vtable->LayerCreateItems, use default */
/* layer->vtable->LayerGetNumFeatures, use default */
diff --git a/mappostgis.h b/mappostgis.h
index 6ecd56a..ae9ad5e 100644
--- a/mappostgis.h
+++ b/mappostgis.h
@@ -163,7 +163,7 @@ void msPostGISFreeLayerInfo(layerObj *layer);
msPostGISLayerInfo *msPostGISCreateLayerInfo(void);
char *msPostGISBuildSQL(layerObj *layer, rectObj *rect, long *uid);
int msPostGISParseData(layerObj *layer);
-int arcStrokeCircularString(wkbObj *w, double segment_angle, lineObj *line);
+int arcStrokeCircularString(wkbObj *w, double segment_angle, lineObj *line, int pnZMFlag);
int wkbConvGeometryToShape(wkbObj *w, shapeObj *shape);
pointArrayObj* pointArrayNew(int maxpoints);
void pointArrayFree(pointArrayObj *d);
diff --git a/mappostgresql.c b/mappostgresql.c
index da3fcca..69b8492 100644
--- a/mappostgresql.c
+++ b/mappostgresql.c
@@ -76,7 +76,7 @@ int msPOSTGRESQLJoinConnect(layerObj *layer, joinObj *join)
{
char *maskeddata, *temp, *sql, *column;
char *conn_decrypted;
- int i, count, test;
+ int i, test;
PGresult *query_result;
msPOSTGRESQLJoinInfo *joininfo;
@@ -128,11 +128,10 @@ int msPOSTGRESQLJoinConnect(layerObj *layer, joinObj *join)
maskeddata = (char *)malloc(strlen(layer->connection) + 1);
strcpy(maskeddata, join->connection);
temp = strstr(maskeddata, "password=");
- if(!temp) {
+ if(temp) {
temp = (char *)(temp + 9);
- count = (int)(strstr(temp, " ") - temp);
- for(i = 0; i < count; i++) {
- strlcpy(temp, "*", (int)1);
+ while (*temp != '\0' && *temp != ' ') {
+ *temp = '*';
temp++;
}
}
diff --git a/mapprimitive.c b/mapprimitive.c
index 9a02589..6212d30 100644
--- a/mapprimitive.c
+++ b/mapprimitive.c
@@ -31,7 +31,7 @@
#include "mapprimitive.h"
#include <assert.h>
#include <locale.h>
-
+#include "fontcache.h"
typedef enum {CLIP_LEFT, CLIP_MIDDLE, CLIP_RIGHT} CLIP_STATE;
@@ -1299,7 +1299,9 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
double len, max_len=0;
double minx, maxx, maxy, miny;
+#ifdef notdef
int method = 2;
+#endif
msComputeBounds(p);
minx = p->bounds.minx;
@@ -1313,6 +1315,7 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
cp.x = (maxx+minx)/2.0;
cp.y = (maxy+miny)/2.0;
+#ifdef notdef
switch (method) {
case 0: /* MBR */
lp->x = cp.x;
@@ -1325,6 +1328,9 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
if(getPolygonCenterOfGravity(p, lp) != MS_SUCCESS) return(MS_FAILURE);
break;
}
+#else
+ if(getPolygonCenterOfGravity(p, lp) != MS_SUCCESS) return(MS_FAILURE);
+#endif
if(msIntersectPointPolygon(lp, p) == MS_TRUE) {
double dist, min_dist=-1;
@@ -1385,8 +1391,10 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
}
}
- if(min == max)
+ if(min == max) {
+ msFree(intersect);
return (MS_FAILURE);
+ }
else
y = (max + min)/2.0;
@@ -1459,8 +1467,10 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
}
}
- if(min == max)
+ if(min == max) {
+ msFree(intersect);
return (MS_FAILURE);
+ }
else
x = (max + min)/2.0;
@@ -1521,47 +1531,48 @@ int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension)
/* Compute all the lineString/segment lengths and determine the longest lineString of a multiLineString
* shape: in paramater, the multiLineString to compute.
- * segment_lengths: out parameter, the segment lengths of all lineString.
- * line_lengths: out parameter, the lineString lengths of the multiLineString.
- * max_line_index: out parameter, the index of the longest lineString of the multiLineString.
- * max_line_length: out parameter, the length of the longest lineString of the multiLineString.
- * total_length: out parameter, the total length of the MultiLineString
- * segment_index: out parameter, the index of the longest lineString of the multiLineString.
+ * struct polyline_lengths pll: out parameter, all line and segment lengths
*/
-void msPolylineComputeLineSegments(shapeObj *shape, double ***segment_lengths, double **line_lengths, int *max_line_index, double *max_line_length, int *segment_index, double *total_length)
+void msPolylineComputeLineSegments(shapeObj *shape, struct polyline_lengths *pll)
{
- int i, j, temp_segment_index;
- double segment_length, max_segment_length;
+ int i, j;
+ double max_line_length=0, max_segment_length=0, segment_length;
- (*segment_lengths) = (double **) msSmallMalloc(sizeof(double *) * shape->numlines);
- (*line_lengths) = (double *) msSmallMalloc(sizeof(double) * shape->numlines);
+ pll->ll = msSmallMalloc(shape->numlines * sizeof(struct line_lengths));
+ pll->total_length = 0;
+
- temp_segment_index = *segment_index = *max_line_index = 0;
- *total_length = 0;
- *max_line_length = 0;
for(i=0; i<shape->numlines; i++) {
-
- (*segment_lengths)[i] = (double*) msSmallMalloc(sizeof(double) * shape->line[i].numpoints);
-
- (*line_lengths)[i] = 0;
- max_segment_length = 0;
+ struct line_lengths *ll = &pll->ll[i];
+ double max_subline_segment_length = 0;
+
+ if(shape->line[i].numpoints > 1) {
+ ll->segment_lengths = (double*) msSmallMalloc(sizeof(double) * (shape->line[i].numpoints - 1));
+ } else {
+ ll->segment_lengths = NULL;
+ }
+ ll->total_length = 0;
+
for(j=1; j<shape->line[i].numpoints; j++) {
segment_length = sqrt((((shape->line[i].point[j].x-shape->line[i].point[j-1].x)*(shape->line[i].point[j].x-shape->line[i].point[j-1].x)) + ((shape->line[i].point[j].y-shape->line[i].point[j-1].y)*(shape->line[i].point[j].y-shape->line[i].point[j-1].y))));
- (*line_lengths)[i] += segment_length;
- (*segment_lengths)[i][j-1] = segment_length;
+ ll->total_length += segment_length;
+ ll->segment_lengths[j-1] = segment_length;
+ if(segment_length > max_subline_segment_length) {
+ max_subline_segment_length = segment_length;
+ ll->longest_segment_index = j;
+ }
if(segment_length > max_segment_length) {
max_segment_length = segment_length;
- temp_segment_index = j;
+ pll->longest_segment_line_index = i;
+ pll->longest_segment_point_index = j;
}
}
+ pll->total_length += ll->total_length;
- *total_length += (*line_lengths)[i];
-
- if((*line_lengths)[i] > *max_line_length) {
- *max_line_length = (*line_lengths)[i];
- *max_line_index = i;
- *segment_index = temp_segment_index;
+ if(ll->total_length > max_line_length) {
+ max_line_length = ll->total_length;
+ pll->longest_line_index = i;
}
}
}
@@ -1570,86 +1581,78 @@ void msPolylineComputeLineSegments(shapeObj *shape, double ***segment_lengths, d
** If no repeatdistance, find center of longest segment in polyline p. The polyline must have been converted
** to image coordinates before calling this function.
*/
-pointObj** msPolylineLabelPoint(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, int *numpoints, int anglemode)
+int msPolylineLabelPoint(mapObj *map, shapeObj *p, textSymbolObj *ts, labelObj *label, struct label_auto_result *lar, double resolutionfactor)
{
- return msPolylineLabelPointExtended(p, min_length, repeat_distance, angles, lengths, numpoints, NULL, 0, anglemode);
-}
+ struct polyline_lengths pll;
+ int i, ret = MS_SUCCESS;
+ double minfeaturesize = -1;
+ assert(ts->annotext);
-pointObj** msPolylineLabelPointExtended(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, int *numpoints, int *regularLines, int numlines, int anglemode)
-{
- double total_length, max_line_length;
- int i,j, max_line_index, segment_index, labelpoints_index, labelpoints_size;
- double** segment_lengths;
- double* line_lengths;
- pointObj** labelpoints;
-
- labelpoints_index = 0;
- labelpoints_size = p->numlines; /* minimal array size */
- *numpoints = 0;
- labelpoints = (pointObj **) msSmallMalloc(sizeof(pointObj *) * labelpoints_size);
- (*angles) = (double **) msSmallMalloc(sizeof(double *) * labelpoints_size);
- (*lengths) = (double **) msSmallMalloc(sizeof(double *) * labelpoints_size);
+ if(label && ts) {
+ if(label->autominfeaturesize) {
+ if(!ts->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts)))
+ return MS_FAILURE;
+ }
+ minfeaturesize = ts->textpath->bounds.bbox.maxx;
+ } else if(label->minfeaturesize) {
+ minfeaturesize = label->minfeaturesize * resolutionfactor;
+ }
+ }
- msPolylineComputeLineSegments(p, &segment_lengths, &line_lengths, &max_line_index, &max_line_length, &segment_index, &total_length);
+ /* compute line lengths, in order to:
+ - extract the longest line if we're not repeating
+ - check that each line is longer than the text length if using minfeaturesize auto
+ - check that each line is long enough if using minfeaturesize
+ */
+ msPolylineComputeLineSegments(p, &pll);
- if (repeat_distance > 0) {
- for(i=0; i<p->numlines; i++)
- if (numlines > 0) {
- for (j=0; j<numlines; j++)
- if (regularLines[j] == i) {
- msPolylineLabelPointLineString(p, min_length, repeat_distance, angles, lengths, segment_lengths, i, line_lengths[i], total_length, segment_index, &labelpoints_index, &labelpoints_size, &labelpoints, anglemode);
- break;
- }
- } else {
- msPolylineLabelPointLineString(p, min_length, repeat_distance, angles, lengths, segment_lengths, i, line_lengths[i], total_length, segment_index, &labelpoints_index, &labelpoints_size, &labelpoints, anglemode);
+ if(label && label->repeatdistance > 0) {
+ for(i=0; i<p->numlines; i++) {
+ if(pll.ll[i].total_length > minfeaturesize) {
+ ret = msLineLabelPoint(map,&p->line[i], ts, &pll.ll[i],lar, label, resolutionfactor);
}
- } else
- msPolylineLabelPointLineString(p, min_length, repeat_distance, angles, lengths, segment_lengths, max_line_index, max_line_length, total_length, segment_index, &labelpoints_index, &labelpoints_size, &labelpoints, anglemode);
-
- *numpoints = labelpoints_index;
+ }
+ } else {
+ i = pll.longest_line_index;
+ if(pll.ll[i].total_length > minfeaturesize) {
+ ret = msLineLabelPoint(map,&p->line[i], ts, &pll.ll[i],lar, label, resolutionfactor);
+ }
+ }
/* freeing memory: allocated by msPolylineComputeLineSegments */
- if ( segment_lengths ) {
- for ( i = 0; i < p->numlines; i++ )
- free(segment_lengths[i]);
- free(segment_lengths);
+ for ( i = 0; i < p->numlines; i++ ) {
+ free(pll.ll[i].segment_lengths);
}
-
- free(line_lengths);
-
- return labelpoints;
+ free(pll.ll);
+
+ return ret;
}
-void msPolylineLabelPointLineString(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, double** segment_lengths,
- int line_index, double line_length, double total_length, int segment_index, int* labelpoints_index, int* labelpoints_size, pointObj ***labelpoints, int anglemode)
+int msLineLabelPoint(mapObj *map, lineObj *p, textSymbolObj *ts, struct line_lengths *ll, struct label_auto_result *lar, labelObj *label, double resolutionfactor)
{
- int i, j, k, l, n, index, point_repeat;
- double t, tmp_length, theta, fwd_length, point_distance;
+ int j, l, n, point_repeat;
+ double t, theta, fwd_length, point_distance;
double center_point_position, left_point_position, right_point_position, point_position;
+ double repeat_distance = -1;
+ if(label) {
+ repeat_distance = label->repeatdistance * resolutionfactor;
+ }
- tmp_length = total_length;
- if (repeat_distance > 0)
- tmp_length = line_length;
-
- if((min_length != -1) && (tmp_length < min_length)) /* too short to label */
- return;
-
- i = line_index;
-
- if(p->line[i].numpoints < 2)
- return;
+ if(UNLIKELY(p->numpoints < 2))
+ return MS_FAILURE;
point_distance = 0;
point_repeat = 1;
- left_point_position = right_point_position = center_point_position = line_length / 2.0;
+ left_point_position = right_point_position = center_point_position = ll->total_length / 2.0;
if (repeat_distance > 0) {
- point_repeat = line_length / repeat_distance;
+ point_repeat = ll->total_length / repeat_distance;
if (point_repeat > 1) {
if (point_repeat % 2 == 0)
point_repeat -= 1;
- point_distance = (line_length / point_repeat); /* buffer allowed per point */
+ point_distance = (ll->total_length / point_repeat); /* buffer allowed per point */
/* initial point position */
left_point_position -= ((point_repeat-1)/2 * point_distance);
@@ -1670,55 +1673,47 @@ void msPolylineLabelPointLineString(shapeObj *p, int min_length, int repeat_dist
}
do {
- if (*labelpoints_index == *labelpoints_size) {
- *labelpoints_size *= 2;
- (*labelpoints) = (pointObj **) msSmallRealloc(*labelpoints,sizeof(pointObj *) * (*labelpoints_size));
- (*angles) = (double **) msSmallRealloc(*angles,sizeof(double *) * (*labelpoints_size));
- (*lengths) = (double **) msSmallRealloc(*lengths,sizeof(double *) * (*labelpoints_size));
- }
-
- index = (*labelpoints_index)++;
- (*labelpoints)[index] = (pointObj *) msSmallMalloc(sizeof(pointObj));
- (*angles)[index] = (double *) msSmallMalloc(sizeof(double));
- (*lengths)[index] = (double *) msSmallMalloc(sizeof(double));
-
- if (repeat_distance > 0)
- *(*lengths)[index] = line_length;
- else
- *(*lengths)[index] = total_length;
+ lar->angles = msSmallRealloc(lar->angles, (lar->num_label_points+1)*sizeof(double));
+ lar->label_points = msSmallRealloc(lar->label_points, (lar->num_label_points+1)*sizeof(pointObj));
/* if there is only 1 label to place... put it in the middle of the current segment (as old behavior) */
- if ( ((anglemode == MS_AUTO) || (anglemode == MS_AUTO2)) &&
- (point_repeat == 1) ) {
- j = segment_index;
- (*labelpoints)[index]->x = (p->line[i].point[j].x + p->line[i].point[j-1].x)/2.0;
- (*labelpoints)[index]->y = (p->line[i].point[j].y + p->line[i].point[j-1].y)/2.0;
+ if ( point_repeat == 1 ) {
+ j = ll->longest_segment_index;
+ lar->label_points[lar->num_label_points].x = (p->point[j-1].x + p->point[j].x)/2.0;
+ lar->label_points[lar->num_label_points].y = (p->point[j-1].y + p->point[j].y)/2.0;
} else {
j=0;
fwd_length = 0;
while (fwd_length < point_position) {
- fwd_length += segment_lengths[i][j++];
+ fwd_length += ll->segment_lengths[j++];
}
+ assert(j>0);
- k = j-1;
-
- t = 1 - (fwd_length - point_position) / segment_lengths[i][j-1];
- (*labelpoints)[index]->x = t * (p->line[i].point[k+1].x - p->line[i].point[k].x) + p->line[i].point[k].x;
- (*labelpoints)[index]->y = t * (p->line[i].point[k+1].y - p->line[i].point[k].y) + p->line[i].point[k].y;
+ t = 1 - (fwd_length - point_position) / ll->segment_lengths[j-1];
+ lar->label_points[lar->num_label_points].x = t * (p->point[j].x - p->point[j-1].x) + p->point[j-1].x;
+ lar->label_points[lar->num_label_points].y = t * (p->point[j].y - p->point[j-1].y) + p->point[j-1].y;
}
- if(anglemode != MS_NONE) {
- theta = atan2(p->line[i].point[j].x - p->line[i].point[j-1].x, p->line[i].point[j].y - p->line[i].point[j-1].y);
- if(anglemode == MS_AUTO2) {
- *(*angles)[index] = (MS_RAD_TO_DEG*theta) - 90;
- } else { /* AUTO, FOLLOW */
- if(p->line[i].point[j-1].x < p->line[i].point[j].x) { /* i.e. to the left */
- *(*angles)[index] = (MS_RAD_TO_DEG*theta) - 90;
- } else {
- *(*angles)[index] = (MS_RAD_TO_DEG*theta) + 90;
+ if(label && ts) {
+ if(label->anglemode != MS_NONE) {
+ theta = atan2(p->point[j].x - p->point[j-1].x, p->point[j].y - p->point[j-1].y);
+ if(label->anglemode == MS_AUTO2) {
+ theta -= MS_PI2;
+ } else { /* AUTO, FOLLOW */
+ if(p->point[j-1].x < p->point[j].x) { /* i.e. to the left */
+ theta -= MS_PI2;
+ } else {
+ theta += MS_PI2;
+ }
}
+ lar->angles[lar->num_label_points] = theta;
+ } else {
+ lar->angles[lar->num_label_points] = MS_DEG_TO_RAD * ts->label->angle;
}
+ } else {
+ lar->angles[lar->num_label_points] = 0;
}
+ lar->num_label_points++;
point_position = left_point_position;
n++;
@@ -1728,32 +1723,20 @@ void msPolylineLabelPointLineString(shapeObj *p, int min_length, int repeat_dist
left_point_position += point_distance;
}
- return;
+ return MS_SUCCESS;
}
+
/* Calculate the labelpath for each line if repeatdistance is enabled, else the labelpath of the longest line segment */
-labelPathObj** msPolylineLabelPath(mapObj *map, imageObj *img,shapeObj *p, int min_length, fontSetObj *fontset, char *string, labelObj *label, double scalefactor, int *numpaths,
- int** regular_lines, int* num_regular_lines)
+int msPolylineLabelPath(mapObj *map, imageObj *image, shapeObj *p, textSymbolObj *ts, labelObj *label, struct label_follow_result *lfr)
{
- double max_line_length, total_length;
- double **segment_lengths, *line_lengths;
- int i, segment_index, max_line_index, labelpaths_index, labelpaths_size, regular_lines_index, regular_lines_size;
- labelPathObj** labelpaths;
-
- labelpaths_index = 0;
- labelpaths_size = p->numlines; /* minimal array size */
- regular_lines_index = 0;
- regular_lines_size = 1;
- *numpaths = 0;
- segment_index = max_line_index = 0;
- total_length = max_line_length = 0.0;
-
-
- if(!string) return NULL;
-
- labelpaths = (labelPathObj **) msSmallMalloc(sizeof(labelPathObj *) * labelpaths_size);
- (*regular_lines) = (int *) msSmallMalloc(sizeof(int) * regular_lines_size);
+ struct polyline_lengths pll;
+ int i,ret = MS_SUCCESS;
+ double minfeaturesize = -1;
+ assert(ts->annotext);
+ lfr->num_follow_labels = lfr->lar.num_label_points = 0;
+ /* we first offset the line if we want an offsetted label */
if(label->offsetx != 0 && IS_PERPENDICULAR_OFFSET(label->offsety)) {
double offset;
if(label->offsetx > 0) {
@@ -1773,134 +1756,117 @@ labelPathObj** msPolylineLabelPath(mapObj *map, imageObj *img,shapeObj *p, int m
}
}
p = msOffsetPolyline(p,offset, MS_STYLE_SINGLE_SIDED_OFFSET);
- if(!p) return NULL;
+ if(!p) return MS_FAILURE;
}
- msPolylineComputeLineSegments(p, &segment_lengths, &line_lengths, &max_line_index, &max_line_length, &segment_index, &total_length);
+ /* compute line lengths, in order to:
+ - extract the longest line if we're not repeating
+ - check that each line is longer than the text length if using minfeaturesize auto
+ - check that each line is long enough if using minfeaturesize
+ */
+ msPolylineComputeLineSegments(p, &pll);
+
+ if(label->autominfeaturesize) {
+ if(!ts->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts))) {
+ return MS_FAILURE;
+ }
+ }
+ minfeaturesize = ts->textpath->bounds.bbox.maxx;
+ } else if(label->minfeaturesize) {
+ minfeaturesize = label->minfeaturesize * image->resolutionfactor;
+ }
- if(label->repeatdistance > 0)
+ if(label->repeatdistance > 0) {
for(i=0; i<p->numlines; i++) {
- msPolylineLabelPathLineString(map,img, p,min_length, fontset, string, label, scalefactor, i, segment_lengths, line_lengths[i], total_length,
- &labelpaths_index, &labelpaths_size, &labelpaths, regular_lines, ®ular_lines_index, ®ular_lines_size);
+ if(pll.ll[i].total_length > minfeaturesize) {
+ ret = msLineLabelPath(map,image,&p->line[i], ts, &pll.ll[i],lfr, label);
+ }
}
- else
- msPolylineLabelPathLineString(map, img, p,min_length, fontset, string, label, scalefactor, max_line_index, segment_lengths, line_lengths[max_line_index], total_length,
- &labelpaths_index, &labelpaths_size, &labelpaths, regular_lines, ®ular_lines_index, ®ular_lines_size);
+ } else {
+ i = pll.longest_line_index;
+ if(pll.ll[i].total_length > minfeaturesize) {
+ ret = msLineLabelPath(map,image,&p->line[i], ts, &pll.ll[i],lfr, label);
+ }
+ }
/* freeing memory: allocated by msPolylineComputeLineSegments */
- if ( segment_lengths ) {
- for ( i = 0; i < p->numlines; i++ )
- free(segment_lengths[i]);
- free(segment_lengths);
+ for ( i = 0; i < p->numlines; i++ ) {
+ free(pll.ll[i].segment_lengths);
}
-
- free(line_lengths);
-
- /* set the number of paths in the array */
- *numpaths = labelpaths_index;
- *num_regular_lines = regular_lines_index;
+ free(pll.ll);
+
if(IS_PERPENDICULAR_OFFSET(label->offsety) && label->offsetx != 0) {
msFreeShape(p);
msFree(p);
}
- return labelpaths;
+ return ret;
}
/*
* Calculate a series of label points for each character in the label for a
- * given polyline. The resultant series of points is stored in *labelpath,
+ * given line. The resultant series of points is stored in *labelpath,
* which is added to the labelpaths array. Note that the points and bounds
* are allocated in this function. The polyline must be converted to image
* coordinates before calling this function.
*/
-void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int min_length, fontSetObj *fontset, char *string, labelObj *label, double scalefactor, int line_index,
- double** segment_lengths, double line_length, double total_length, int* labelpaths_index, int* labelpaths_size, labelPathObj*** labelpaths,
- int** regular_lines, int *regular_lines_index, int* regular_lines_size)
+int msLineLabelPath(mapObj *map, imageObj *img, lineObj *p, textSymbolObj *ts, struct line_lengths *ll, struct label_follow_result *lfr, labelObj *label)
{
double distance_along_segment;
+ double repeat_distance = label->repeatdistance * ts->resolutionfactor;
double segment_length, fwd_line_length, rev_line_length, text_length, text_start_length, label_buffer, text_end_length;
double right_label_position, left_label_position, center_label_position;
- int numchars;
- int i,j,k,l,n, inc, final_j, label_repeat;
+ int j,k,l,n, inc, final_j, label_repeat;
double direction;
rectObj bbox;
- lineObj bounds;
- double *offsets;
- double size, t, tmp_length;
+ lineObj *bounds;
+ double t;
double cx, cy; /* centre of a character, x & y values. */
double theta;
double dx, dy, w, cos_t, sin_t;
- labelPathObj *labelpath = NULL;
-
- /* Line smoothing kernel */
- double kernel[] = {0.1,0.2,2,0.2,0.1}; /* {1.5, 2, 15, 2, 1.5}; */
- double kernel_normal = 2.6; /* Must be sum of kernel elements */
- int kernel_size = 5;
-
- double letterspacing = 1.05;
+ const double letterspacing = 1.00;
/* As per RFC 60, if label->maxoverlapangle == 0 then fall back on pre-6.0 behavior
which was to use maxoverlapangle = 0.4*MS_PI ( 40% of 180 degrees ) */
double maxoverlapangle = 0.4 * MS_PI;
- offsets = NULL;
-
- tmp_length = total_length;
- if (label->repeatdistance > 0)
- tmp_length = line_length;
-
- numchars = msGetNumGlyphs(string);
-
- /* skip the label and use the normal algorithm if it has fewer than 2 characters */
- if(numchars < 2)
- goto ANGLEFOLLOW_FAILURE;
-
- i = line_index;
-
- if (((min_length != -1) && (tmp_length < min_length))) { /* too short */
- goto FAILURE;
+ if(p->numpoints < 2) { /* degenerate */
+ return MS_FAILURE;
}
-
- if(p->line[i].numpoints < 2) { /* degenerate */
- goto FAILURE;
- }
-
- if(p->line[i].numpoints == 2) /* use the regular angled text algorithm */
+ if(p->numpoints == 2) /* use the regular angled text algorithm */
goto ANGLEFOLLOW_FAILURE;
-
- size = label->size*scalefactor;
- size = MS_MAX(size, label->minsize*img->resolutionfactor);
- size = MS_MIN(size, label->maxsize*img->resolutionfactor);
-
- /* determine the total length of the text */
- if (msGetLabelSize(map,label,string,size,&bbox,&offsets) != MS_SUCCESS) {
- goto FAILURE;
+
+ if(!ts->textpath) {
+ if(UNLIKELY(MS_FAILURE == msComputeTextPath(map,ts))) {
+ return MS_FAILURE;
+ }
}
+
+ /* skip the label and use the normal algorithm if it has fewer than 2 characters */
+ if(ts->textpath->numglyphs < 2)
+ goto ANGLEFOLLOW_FAILURE;
- scalefactor = size / label->size;
-
- text_length = letterspacing * (bbox.maxx - bbox.minx);
+ text_length = letterspacing * ts->textpath->bounds.bbox.maxx;
/*
** if the text length is way longer than the line, skip adding the
** label if it isn't forced (long extrapolated labels tend to be ugly)
*/
- if ( text_length > 1.5 * line_length && label->force == MS_FALSE ) {
- goto FAILURE;
+ if ( text_length > 1.5 * ll->total_length && ts->label->force == MS_FALSE ) {
+ return MS_SUCCESS;
}
/* We compute the number of labels we can repeat in the line */
text_end_length = 0;
- left_label_position = right_label_position = center_label_position = (line_length - text_length) / 2.0;
- label_repeat = (line_length / (text_length + label->repeatdistance));
- label_buffer = (line_length / label_repeat); /* buffer allowed per label */
- if (label->repeatdistance > 0 && label_repeat > 1) {
+ left_label_position = right_label_position = center_label_position = (ll->total_length - text_length) / 2.0;
+ label_repeat = (ll->total_length / (text_length + repeat_distance));
+ label_buffer = (ll->total_length / label_repeat);
+ if (repeat_distance > 0 && label_repeat > 1) {
if (label_repeat % 2 == 0) {
label_repeat -= 1;
- label_buffer = (line_length / label_repeat);
}
/* text_start_length = (label_buffer / 2) - (text_length / 2); */
@@ -1911,12 +1877,12 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
label_repeat = (label_repeat-1)/2+1;
} else {
label_repeat = 1;
- center_label_position = (line_length - text_length) / 2.0;
+ center_label_position = (ll->total_length - text_length) / 2.0;
}
-
- if(label->maxoverlapangle >=0)
+
+ if(label->maxoverlapangle > 0)
maxoverlapangle = label->maxoverlapangle * MS_DEG_TO_RAD; /* radian */
-
+
for (l=0; l < label_repeat; l++) {
if (l == label_repeat-1) { /* last label to place is always the center label */
text_start_length = center_label_position;
@@ -1927,12 +1893,15 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
}
do {
- /* allocate the labelpath */
- labelpath = (labelPathObj *) msSmallMalloc(sizeof(labelPathObj));
- labelpath->path.numpoints = numchars;
- labelpath->path.point = (pointObj *) msSmallCalloc(labelpath->path.numpoints, sizeof(pointObj));
- labelpath->angles = (double *) msSmallMalloc(sizeof(double) * (labelpath->path.numpoints));
- msInitShape(&(labelpath->bounds));
+ textPathObj *tp = msSmallCalloc(1,sizeof(textPathObj));
+ /* copy the textPath, we will be overriding the copy's positions and angles */
+ msCopyTextPath(tp,ts->textpath);
+ tp->bounds.poly = msSmallMalloc(sizeof(lineObj));
+ for(k=0;k<tp->numglyphs;k++) {
+ tp->glyphs[k].pnt.x = 0;
+ tp->glyphs[k].pnt.y = 0;
+ }
+ bounds = tp->bounds.poly;
/*
@@ -1940,8 +1909,8 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
** the UL corners of each bbox will be tied together and the LL corners
** will be tied together.
*/
- bounds.numpoints = 2*numchars + 1;
- bounds.point = (pointObj *) msSmallMalloc(sizeof(pointObj) * bounds.numpoints);
+ bounds->numpoints = 2*tp->numglyphs + 1;
+ bounds->point = (pointObj *) msSmallMalloc(sizeof(pointObj) * bounds->numpoints);
/* the points start at (line_length - text_length) / 2 in order to be centred */
/* text_start_length = (line_length - text_length) / 2.0; */
@@ -1949,24 +1918,24 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
/* the text is longer than the line: extrapolate the first and last segments */
if(text_start_length < 0.0) {
j = 0;
- final_j = p->line[i].numpoints - 1;
+ final_j = p->numpoints - 1;
fwd_line_length = rev_line_length = 0;
} else {
/* proceed until we've traversed text_start_length in distance */
fwd_line_length = 0;
j = 0;
while ( fwd_line_length < text_start_length )
- fwd_line_length += segment_lengths[i][j++];
+ fwd_line_length += ll->segment_lengths[j++];
j--;
/* determine the last segment */
rev_line_length = 0;
- final_j = p->line[i].numpoints - 1;
+ final_j = p->numpoints - 1;
- text_end_length = line_length - (text_start_length + text_length);
+ text_end_length = ll->total_length - (text_start_length + text_length);
while(rev_line_length < text_end_length) {
- rev_line_length += segment_lengths[i][final_j - 1];
+ rev_line_length += ll->segment_lengths[final_j - 1];
final_j--;
}
final_j++;
@@ -1977,18 +1946,13 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
/* determine if the line is mostly left to right or right to left,
see bug 1620 discussion by Steve Woodbridge */
- direction = 0;
- k = j;
- while (k < final_j) {
- direction += p->line[i].point[k+1].x - p->line[i].point[k].x;
- k++;
- }
+ direction = p->point[final_j].x - p->point[j].x;
if(direction > 0) {
inc = 1; /* j is already correct */
/* length of the segment containing the starting point */
- segment_length = segment_lengths[i][j];
+ segment_length = ll->segment_lengths[j];
/* determine how far along the segment we need to go */
if(text_start_length < 0.0)
@@ -2000,7 +1964,7 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
inc = -1;
/* length of the segment containing the starting point */
- segment_length = segment_lengths[i][j-1];
+ segment_length = ll->segment_lengths[j-1];
if(text_start_length < 0.0)
t = text_start_length / segment_length;
else
@@ -2012,66 +1976,38 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
theta = 0;
k = 0;
w = 0;
- while ( k < labelpath->path.numpoints ) {
- int m;
+ while ( k < tp->numglyphs ) {
double x,y;
- x = t * (p->line[i].point[j+inc].x - p->line[i].point[j].x) + p->line[i].point[j].x;
- y = t * (p->line[i].point[j+inc].y - p->line[i].point[j].y) + p->line[i].point[j].y;
-
- /*
- ** This used to be a series of if-then-else's, but that fails for short (length < 4)
- ** labels. There may be small speed-ups possible here. (bug 1921)
- **
- ** average this label point with its neighbors according to the smoothing kernel
- */
- if ( k == 0) {
- labelpath->path.point[k].x += (kernel[0] + kernel[1]) * x;
- labelpath->path.point[k].y += (kernel[0] + kernel[1]) * y;
- }
- if ( k == 1) {
- labelpath->path.point[k].x += kernel[0] * x;
- labelpath->path.point[k].y += kernel[0] * y;
- }
- if ( k == labelpath->path.numpoints - 2) {
- labelpath->path.point[k].x += kernel[4] * x;
- labelpath->path.point[k].y += kernel[4] * y;
- }
- if ( k == labelpath->path.numpoints - 1) {
- labelpath->path.point[k].x += (kernel[3] + kernel[4]) * x;
- labelpath->path.point[k].y += (kernel[3] + kernel[4]) * y;
- }
+ x = t * (p->point[j+inc].x - p->point[j].x) + p->point[j].x;
+ y = t * (p->point[j+inc].y - p->point[j].y) + p->point[j].y;
+ tp->glyphs[k].pnt.x = x;
+ tp->glyphs[k].pnt.y = y;
- for(m = 0; m < kernel_size; m++) {
- if(m + k - 2 < 0 || m + k - 2 > labelpath->path.numpoints - 1)
- continue;
- labelpath->path.point[k+m-2].x += kernel[m]*x;
- labelpath->path.point[k+m-2].y += kernel[m]*y;
- }
- w = letterspacing*offsets[k];
+ w = letterspacing*tp->glyphs[k].glyph->metrics.advance;
/* add the character's width to the distance along the line */
distance_along_segment += w;
/* if we still have segments left and we've past the current segment, move to the next one */
- if(inc == 1 && j < p->line[i].numpoints - 2) {
+ if(inc == 1 && j < p->numpoints - 2) {
- while ( j < p->line[i].numpoints - 2 && distance_along_segment > segment_lengths[i][j] ) {
- distance_along_segment -= segment_lengths[i][j];
+ while ( j < p->numpoints - 2 && distance_along_segment > ll->segment_lengths[j] ) {
+ distance_along_segment -= ll->segment_lengths[j];
j += inc; /* move to next segment */
}
- segment_length = segment_lengths[i][j];
+ segment_length = ll->segment_lengths[j];
} else if( inc == -1 && j > 1 ) {
- while ( j > 1 && distance_along_segment > segment_lengths[i][j-1] ) {
- distance_along_segment -= segment_lengths[i][j-1];
+ while ( j > 1 && distance_along_segment > ll->segment_lengths[j-1] ) {
+ distance_along_segment -= ll->segment_lengths[j-1];
j += inc; /* move to next segment */
}
- segment_length = segment_lengths[i][j-1];
+ segment_length = ll->segment_lengths[j-1];
}
/* Recalculate interpolation parameter */
@@ -2081,41 +2017,52 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
}
/* pre-calc the character's centre y value. Used for rotation adjustment. */
- cy = -size / 2.0;
-
- labelpath->path.point[0].x /= kernel_normal;
- labelpath->path.point[0].y /= kernel_normal;
+ cy = -ts->textpath->glyph_size / 2.0;
+#ifdef USE_KERNEL
+ tp->glyphs[0].pnt.x /= kernel_normal;
+ tp->glyphs[0].pnt.y /= kernel_normal;
+#endif
/* Average the points and calculate each angle */
- for (k = 1; k <= labelpath->path.numpoints; k++) {
+ for (k = 1; k <= tp->numglyphs; k++) {
double anglediff;
- if ( k < labelpath->path.numpoints ) {
- labelpath->path.point[k].x /= kernel_normal;
- labelpath->path.point[k].y /= kernel_normal;
- dx = labelpath->path.point[k].x - labelpath->path.point[k-1].x;
- dy = labelpath->path.point[k].y - labelpath->path.point[k-1].y;
+ if ( k < tp->numglyphs ) {
+#ifdef USE_KERNEL
+ tp->glyphs[k].pnt.x /= kernel_normal;
+ tp->glyphs[k].pnt.y /= kernel_normal;
+#endif
+ dx = tp->glyphs[k].pnt.x - tp->glyphs[k-1].pnt.x;
+ dy = tp->glyphs[k].pnt.y - tp->glyphs[k-1].pnt.y;
} else {
/* Handle the last character */
- dx = t * (p->line[i].point[j+inc].x - p->line[i].point[j].x) + p->line[i].point[j].x - labelpath->path.point[k-1].x;
- dy = t * (p->line[i].point[j+inc].y - p->line[i].point[j].y) + p->line[i].point[j].y - labelpath->path.point[k-1].y;
+ dx = t * (p->point[j+inc].x - p->point[j].x) + p->point[j].x - tp->glyphs[k-1].pnt.x;
+ dy = t * (p->point[j+inc].y - p->point[j].y) + p->point[j].y - tp->glyphs[k-1].pnt.y;
}
- theta = -atan2(dy,dx);
+ if(dx || dy || k==1) {
+ theta = -atan2(dy,dx);
- if ( maxoverlapangle > 0 && k > 1) {
- /* If the difference between the last char angle and the current one
+ if (maxoverlapangle > 0 && k > 1) {
+ /* If the difference between the last char angle and the current one
is greater than the MAXOVERLAPANGLE value (set at 80% of 180deg by default)
, bail the label */
- anglediff = fabs(theta - labelpath->angles[k-2]);
- anglediff = MS_MIN(anglediff, MS_2PI - anglediff);
- if(anglediff > maxoverlapangle ) {
- goto LABEL_FAILURE;
+ anglediff = fabs(theta - tp->glyphs[k-2].rot);
+ anglediff = MS_MIN(anglediff, MS_2PI - anglediff);
+ if(anglediff > maxoverlapangle ) {
+ goto LABEL_FAILURE;
+ }
}
+ } else {
+ /*
+ * handle the 0-advance case, as the complex text shaping may have placed multiple
+ * glyphs at the same position
+ */
+ theta = tp->glyphs[k-2].rot;
}
/* msDebug("s: %c (x,y): (%0.2f,%0.2f) t: %0.2f\n", string[k-1], labelpath->path.point[k-1].x, labelpath->path.point[k-1].y, theta); */
- labelpath->angles[k-1] = theta;
+ tp->glyphs[k-1].rot = theta;
/* Move the previous point so that when the character is rotated and
@@ -2123,85 +2070,84 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
cos_t = cos(theta);
sin_t = sin(theta);
- w = letterspacing*offsets[k-1];
+ w = letterspacing*tp->glyphs[k-1].glyph->metrics.advance;
cx = 0; /* Center the character vertically only */
dx = - (cx * cos_t + cy * sin_t);
dy = - (cy * cos_t - cx * sin_t);
- labelpath->path.point[k-1].x += dx;
- labelpath->path.point[k-1].y += dy;
+ tp->glyphs[k-1].pnt.x += dx;
+ tp->glyphs[k-1].pnt.y += dy;
/* Calculate the bounds */
bbox.minx = 0;
bbox.maxx = w;
bbox.maxy = 0;
- bbox.miny = -size;
+ bbox.miny = -ts->textpath->glyph_size;
/* Add the label buffer to the bounds */
- bbox.maxx += label->buffer;
- bbox.maxy += label->buffer;
- bbox.minx -= label->buffer;
- bbox.miny -= label->buffer;
+ bbox.maxx += ts->label->buffer * ts->resolutionfactor;
+ bbox.maxy += ts->label->buffer * ts->resolutionfactor;
+ bbox.minx -= ts->label->buffer * ts->resolutionfactor;
+ bbox.miny -= ts->label->buffer * ts->resolutionfactor;
- if ( k < labelpath->path.numpoints ) {
+ if ( k < tp->numglyphs ) {
/* Transform the bbox too. We take the UL and LL corners and rotate
then translate them. */
- bounds.point[k-1].x = (bbox.minx * cos_t + bbox.maxy * sin_t) + labelpath->path.point[k-1].x;
- bounds.point[k-1].y = (bbox.maxy * cos_t - bbox.minx * sin_t) + labelpath->path.point[k-1].y;
+ bounds->point[k-1].x = (bbox.minx * cos_t + bbox.maxy * sin_t) + tp->glyphs[k-1].pnt.x;
+ bounds->point[k-1].y = (bbox.maxy * cos_t - bbox.minx * sin_t) + tp->glyphs[k-1].pnt.y;
/* Start at end and work towards the half way point */
- bounds.point[bounds.numpoints - k - 1].x = (bbox.minx * cos_t + bbox.miny * sin_t) + labelpath->path.point[k-1].x;
- bounds.point[bounds.numpoints - k - 1].y = (bbox.miny * cos_t - bbox.minx * sin_t) + labelpath->path.point[k-1].y;
+ bounds->point[bounds->numpoints - k - 1].x = (bbox.minx * cos_t + bbox.miny * sin_t) + tp->glyphs[k-1].pnt.x;
+ bounds->point[bounds->numpoints - k - 1].y = (bbox.miny * cos_t - bbox.minx * sin_t) + tp->glyphs[k-1].pnt.y;
} else {
/* This is the last character in the string so we take the UR and LR
corners of the bbox */
- bounds.point[k-1].x = (bbox.maxx * cos_t + bbox.maxy * sin_t) + labelpath->path.point[k-1].x;
- bounds.point[k-1].y = (bbox.maxy * cos_t - bbox.maxx * sin_t) + labelpath->path.point[k-1].y;
+ bounds->point[k-1].x = (bbox.maxx * cos_t + bbox.maxy * sin_t) + tp->glyphs[k-1].pnt.x;
+ bounds->point[k-1].y = (bbox.maxy * cos_t - bbox.maxx * sin_t) + tp->glyphs[k-1].pnt.y;
- bounds.point[bounds.numpoints - k - 1].x = (bbox.maxx * cos_t + bbox.miny * sin_t) + labelpath->path.point[k-1].x;
- bounds.point[bounds.numpoints - k - 1].y = (bbox.miny * cos_t - bbox.maxx * sin_t) + labelpath->path.point[k-1].y;
+ bounds->point[bounds->numpoints - k - 1].x = (bbox.maxx * cos_t + bbox.miny * sin_t) + tp->glyphs[k-1].pnt.x;
+ bounds->point[bounds->numpoints - k - 1].y = (bbox.miny * cos_t - bbox.maxx * sin_t) + tp->glyphs[k-1].pnt.y;
}
}
/* Close the bounds */
- bounds.point[bounds.numpoints - 1].x = bounds.point[0].x;
- bounds.point[bounds.numpoints - 1].y = bounds.point[0].y;
-
- /* Convert the bounds to a shape and store them in the labelpath */
- if ( msAddLineDirectly(&(labelpath->bounds), &bounds) == MS_FAILURE ) {
- goto LABEL_FAILURE;
- }
+ bounds->point[bounds->numpoints - 1].x = bounds->point[0].x;
+ bounds->point[bounds->numpoints - 1].y = bounds->point[0].y;
- msComputeBounds(&(labelpath->bounds));
+ /* compute the bounds */
+ fastComputeBounds(bounds,&tp->bounds.bbox);
goto LABEL_END;
LABEL_FAILURE:
- if (bounds.point)
- free(bounds.point);
- bounds.point = NULL;
- bounds.numpoints = 0;
-
- if ( labelpath ) {
- msFreeLabelPathObj(labelpath);
- labelpath = NULL;
- }
+
+ freeTextPath(tp);
+ free(tp);
+ goto NEXT_REPEAT;
LABEL_END:
- if (labelpath) {
- if (*labelpaths_index == *labelpaths_size) {
- *labelpaths_size *= 2;
- (*labelpaths) = (labelPathObj **) msSmallRealloc(*labelpaths,sizeof(labelPathObj *) * (*labelpaths_size));
- }
- (*labelpaths)[(*labelpaths_index)++] = labelpath;
+ {
+ textPathObj *tmptp;
+ textSymbolObj *tsnew;
+ lfr->num_follow_labels++;
+ lfr->follow_labels = msSmallRealloc(lfr->follow_labels,lfr->num_follow_labels * sizeof(textSymbolObj*));
+ tmptp = ts->textpath;
+ ts->textpath = NULL;
+ lfr->follow_labels[lfr->num_follow_labels - 1] = msSmallMalloc(sizeof(textSymbolObj));
+ tsnew = lfr->follow_labels[lfr->num_follow_labels - 1];
+ initTextSymbol(tsnew);
+ msCopyTextSymbol(tsnew,ts);
+ ts->textpath = tmptp;
+ tsnew->textpath = tp;
+ tsnew->textpath->absolute = 1;
}
-
+NEXT_REPEAT:
text_start_length = left_label_position;
n++;
} while (n<2);
@@ -2213,20 +2159,11 @@ LABEL_END:
goto END; /* normal exit */
-ANGLEFOLLOW_FAILURE: /* Angle follow failure: add the line index in the arrays */
- if (*regular_lines_index == *regular_lines_size) {
- *regular_lines_size *= 2;
- (*regular_lines) = (int*) msSmallRealloc(*regular_lines,sizeof(int) * (*regular_lines_size));
- }
- (*regular_lines)[(*regular_lines_index)++] = line_index;
-
-FAILURE: /* Global failure */
+ANGLEFOLLOW_FAILURE: /* Angle follow failure: compute angle auto labels */
+ return msLineLabelPoint(map,p,ts,ll,&lfr->lar,label, img->resolutionfactor);
END:
- if ( offsets )
- free(offsets);
-
- return;
+ return MS_SUCCESS;
}
/* ===========================================================================
diff --git a/mapproject.c b/mapproject.c
index 8d2a5f7..49ebf31 100644
--- a/mapproject.c
+++ b/mapproject.c
@@ -115,7 +115,7 @@ int msProjectPoint(projectionObj *in, projectionObj *out, pointObj *point)
#endif
if( error || point->x == HUGE_VAL || point->y == HUGE_VAL ) {
- msSetError(MS_PROJERR,"proj says: %s","msProjectPoint()",pj_strerrno(error));
+// msSetError(MS_PROJERR,"proj says: %s","msProjectPoint()",pj_strerrno(error));
return MS_FAILURE;
}
@@ -133,7 +133,7 @@ int msProjectPoint(projectionObj *in, projectionObj *out, pointObj *point)
/* -------------------------------------------------------------------- */
else {
/* nothing to do if the other coordinate system is also lat/long */
- if( in == NULL && out != NULL && pj_is_latlong(out->proj) )
+ if( in == NULL && (out == NULL || pj_is_latlong(out->proj) ))
return MS_SUCCESS;
if( out == NULL && in != NULL && pj_is_latlong(in->proj) )
return MS_SUCCESS;
@@ -254,10 +254,18 @@ static int msProjectSegment( projectionObj *in, projectionObj *out,
testPoint = midPoint;
- if( msProjectPoint( in, out, &testPoint ) == MS_FAILURE )
+ if( msProjectPoint( in, out, &testPoint ) == MS_FAILURE ) {
+ if (midPoint.x == subEnd.x && midPoint.y == subEnd.y)
+ return MS_FAILURE; /* break infinite loop */
+
subEnd = midPoint;
- else
+ }
+ else {
+ if (midPoint.x == subStart.x && midPoint.y == subStart.y)
+ return MS_FAILURE; /* break infinite loop */
+
subStart = midPoint;
+ }
}
/* -------------------------------------------------------------------- */
@@ -292,7 +300,7 @@ msProjectShapeLine(projectionObj *in, projectionObj *out,
{
int i;
- pointObj lastPoint, thisPoint, wrkPoint, firstPoint;
+ pointObj lastPoint, thisPoint, wrkPoint;
lineObj *line = shape->line + line_index;
lineObj *line_out = line;
int valid_flag = 0; /* 1=true, -1=false, 0=unknown */
@@ -304,10 +312,10 @@ msProjectShapeLine(projectionObj *in, projectionObj *out,
#define MAXEXTENT 20037508.34
#define M_PIby360 .0087266462599716479
#define MAXEXTENTby180 111319.4907777777777777777
- if(in->wellknownprojection == wkp_lonlat && out->wellknownprojection == wkp_gmerc) {
- for( i = line->numpoints-1; i >= 0; i-- ) {
#define p_x line->point[i].x
#define p_y line->point[i].y
+ if(in->wellknownprojection == wkp_lonlat && out->wellknownprojection == wkp_gmerc) {
+ for( i = line->numpoints-1; i >= 0; i-- ) {
p_x *= MAXEXTENTby180;
p_y = log(tan((90 + p_y) * M_PIby360)) * MS_RAD_TO_DEG;
p_y *= MAXEXTENTby180;
@@ -315,11 +323,24 @@ msProjectShapeLine(projectionObj *in, projectionObj *out,
if (p_x < -MAXEXTENT) p_x = -MAXEXTENT;
if (p_y > MAXEXTENT) p_y = MAXEXTENT;
if (p_y < -MAXEXTENT) p_y = -MAXEXTENT;
-#undef p_x
-#undef p_y
}
return MS_SUCCESS;
}
+ if(in->wellknownprojection == wkp_gmerc && out->wellknownprojection == wkp_lonlat) {
+ for( i = line->numpoints-1; i >= 0; i-- ) {
+ if (p_x > MAXEXTENT) p_x = MAXEXTENT;
+ else if (p_x < -MAXEXTENT) p_x = -MAXEXTENT;
+ if (p_y > MAXEXTENT) p_y = MAXEXTENT;
+ else if (p_y < -MAXEXTENT) p_y = -MAXEXTENT;
+ p_x = (p_x / MAXEXTENT) * 180;
+ p_y = (p_y / MAXEXTENT) * 180;
+ p_y = MS_RAD_TO_DEG * (2 * atan(exp(p_y * MS_DEG_TO_RAD)) - MS_PI2);
+ }
+ msComputeBounds( shape ); /* fixes bug 1586 */
+ return MS_SUCCESS;
+ }
+#undef p_x
+#undef p_y
#endif
@@ -329,9 +350,6 @@ msProjectShapeLine(projectionObj *in, projectionObj *out,
line->numpoints = 0;
- if( numpoints_in > 0 )
- firstPoint = line->point[0];
-
memset( &lastPoint, 0, sizeof(lastPoint) );
/* -------------------------------------------------------------------- */
@@ -351,13 +369,13 @@ msProjectShapeLine(projectionObj *in, projectionObj *out,
pointObj pt1Geo;
if( line_out->numpoints > 0 )
- pt1Geo = line_out->point[0];
+ pt1Geo = line_out->point[line_out->numpoints-1];
else
pt1Geo = wrkPoint; /* this is a cop out */
dist = wrkPoint.x - pt1Geo.x;
if( fabs(dist) > 180.0
- && msTestNeedWrap( thisPoint, firstPoint,
+ && msTestNeedWrap( thisPoint, lastPoint,
pt1Geo, in, out ) ) {
if( dist > 0.0 )
wrkPoint.x -= 360.0;
@@ -491,25 +509,40 @@ int msProjectShape(projectionObj *in, projectionObj *out, shapeObj *shape)
#ifdef USE_PROJ_FASTPATHS
int j;
+#define p_x shape->line[i].point[j].x
+#define p_y shape->line[i].point[j].y
if(in->wellknownprojection == wkp_lonlat && out->wellknownprojection == wkp_gmerc) {
for( i = shape->numlines-1; i >= 0; i-- ) {
for( j = shape->line[i].numpoints-1; j >= 0; j-- ) {
-#define p_x shape->line[i].point[j].x
-#define p_y shape->line[i].point[j].y
p_x *= MAXEXTENTby180;
p_y = log(tan((90 + p_y) * M_PIby360)) * MS_RAD_TO_DEG;
p_y *= MAXEXTENTby180;
if (p_x > MAXEXTENT) p_x = MAXEXTENT;
- if (p_x < -MAXEXTENT) p_x = -MAXEXTENT;
+ else if (p_x < -MAXEXTENT) p_x = -MAXEXTENT;
if (p_y > MAXEXTENT) p_y = MAXEXTENT;
- if (p_y < -MAXEXTENT) p_y = -MAXEXTENT;
-#undef p_x
-#undef p_y
+ else if (p_y < -MAXEXTENT) p_y = -MAXEXTENT;
+ }
+ }
+ msComputeBounds( shape ); /* fixes bug 1586 */
+ return MS_SUCCESS;
+ }
+ if(in->wellknownprojection == wkp_gmerc && out->wellknownprojection == wkp_lonlat) {
+ for( i = shape->numlines-1; i >= 0; i-- ) {
+ for( j = shape->line[i].numpoints-1; j >= 0; j-- ) {
+ if (p_x > MAXEXTENT) p_x = MAXEXTENT;
+ else if (p_x < -MAXEXTENT) p_x = -MAXEXTENT;
+ if (p_y > MAXEXTENT) p_y = MAXEXTENT;
+ else if (p_y < -MAXEXTENT) p_y = -MAXEXTENT;
+ p_x = (p_x / MAXEXTENT) * 180;
+ p_y = (p_y / MAXEXTENT) * 180;
+ p_y = MS_RAD_TO_DEG * (2 * atan(exp(p_y * MS_DEG_TO_RAD)) - MS_PI2);
}
}
msComputeBounds( shape ); /* fixes bug 1586 */
return MS_SUCCESS;
}
+#undef p_x
+#undef p_y
#endif
@@ -777,6 +810,16 @@ msProjectRectAsPolygon(projectionObj *in, projectionObj *out,
double dx, dy;
+ /* If projecting from longlat to projected */
+ if( out && !pj_is_latlong(out->proj) && in && pj_is_latlong(in->proj) &&
+ fabs(rect->minx - -180.0) < 1e-5 && fabs(rect->miny - -90.0) < 1e-5 &&
+ fabs(rect->maxx - 180.0) < 1e-5 && fabs(rect->maxy - 90.0) < 1e-5) {
+ rect->minx = -1e15;
+ rect->miny = -1e15;
+ rect->maxx = 1e15;
+ rect->maxy = 1e15;
+ return MS_SUCCESS;
+ }
/* -------------------------------------------------------------------- */
/* Build polygon as steps around the source rectangle. */
@@ -836,6 +879,14 @@ msProjectRectAsPolygon(projectionObj *in, projectionObj *out,
msAddLineDirectly( &polygonObj, &ring );
+#ifdef notdef
+ FILE *wkt = fopen("/tmp/www-before.wkt","w");
+ char *tmp = msShapeToWKT(&polygonObj);
+ fprintf(wkt,"%s\n", tmp);
+ free(tmp);
+ fclose(wkt);
+#endif
+
/* -------------------------------------------------------------------- */
/* Attempt to reproject. */
/* -------------------------------------------------------------------- */
@@ -847,6 +898,14 @@ msProjectRectAsPolygon(projectionObj *in, projectionObj *out,
return msProjectRectGrid( in, out, rect );
}
+#ifdef notdef
+ wkt = fopen("/tmp/www-after.wkt","w");
+ tmp = msShapeToWKT(&polygonObj);
+ fprintf(wkt,"%s\n", tmp);
+ free(tmp);
+ fclose(wkt);
+#endif
+
/* -------------------------------------------------------------------- */
/* Collect bounds. */
/* -------------------------------------------------------------------- */
@@ -892,10 +951,104 @@ int msProjectRect(projectionObj *in, projectionObj *out, rectObj *rect)
#ifdef notdef
return msProjectRectTraditionalEdge( in, out, rect );
#else
- return msProjectRectAsPolygon( in, out, rect );
+ char *over = "+over";
+ int ret;
+ projectionObj in_over,out_over,*inp,*outp;
+ /*
+ * Issue #4892: When projecting a rectangle we do not want proj to wrap resulting
+ * coordinates around the dateline, as in practice a requested bounding box of
+ * -22.000.000, -YYY, 22.000.000, YYY should be projected as
+ * -190,-YYY,190,YYY rather than 170,-YYY,-170,YYY as would happen when wrapping (and
+ * vice-versa when projecting from lonlat to metric).
+ * To enforce this, we clone the input projections and add the "+over" proj
+ * parameter in order to disable dateline wrapping.
+ */
+ if(out) {
+ msInitProjection(&out_over);
+ msCopyProjectionExtended(&out_over,out,&over,1);
+ outp = &out_over;
+ } else {
+ outp = out;
+ }
+ if(in) {
+ msInitProjection(&in_over);
+ msCopyProjectionExtended(&in_over,in,&over,1);
+ inp = &in_over;
+ } else {
+ inp = in;
+ }
+ ret = msProjectRectAsPolygon(inp,outp, rect );
+ if(in)
+ msFreeProjection(&in_over);
+ if(out)
+ msFreeProjection(&out_over);
+ return ret;
#endif
}
+#ifdef USE_PROJ
+static int msProjectSortString(const void* firstelt, const void* secondelt)
+{
+ char* firststr = *(char**)firstelt;
+ char* secondstr = *(char**)secondelt;
+ return strcmp(firststr, secondstr);
+}
+
+/************************************************************************/
+/* msGetProjectNormalized() */
+/************************************************************************/
+
+static projectionObj* msGetProjectNormalized( const projectionObj* p )
+{
+ int i;
+ char* pszNewProj4Def;
+ projectionObj* pnew;
+
+ pnew = (projectionObj*)msSmallMalloc(sizeof(projectionObj));
+ msInitProjection(pnew);
+ msCopyProjection(pnew, (projectionObj*)p);
+
+ if(p->proj == NULL )
+ return pnew;
+
+ /* Normalize definition so that msProjectDiffers() works better */
+ pszNewProj4Def = pj_get_def( p->proj, 0 );
+ msFreeCharArray(pnew->args, pnew->numargs);
+ pnew->args = msStringSplit(pszNewProj4Def,'+', &pnew->numargs);
+ for(i = 0; i < pnew->numargs; i++)
+ {
+ /* Remove trailing space */
+ if( strlen(pnew->args[i]) > 0 && pnew->args[i][strlen(pnew->args[i])-1] == ' ' )
+ pnew->args[i][strlen(pnew->args[i])-1] = '\0';
+ /* Remove spurious no_defs or init= */
+ if( strcmp(pnew->args[i], "no_defs") == 0 ||
+ strncmp(pnew->args[i], "init=", 5) == 0 )
+ {
+ if( i < pnew->numargs - 1 )
+ {
+ msFree(pnew->args[i]);
+ memmove(pnew->args + i, pnew->args + i + 1,
+ sizeof(char*) * (pnew->numargs - 1 -i ));
+ }
+ pnew->numargs --;
+ i --;
+ continue;
+ }
+ }
+ /* Sort the strings so they can be compared */
+ qsort(pnew->args, pnew->numargs, sizeof(char*), msProjectSortString);
+ /*{
+ fprintf(stderr, "'%s' =\n", pszNewProj4Def);
+ for(i = 0; i < p->numargs; i++)
+ fprintf(stderr, "'%s' ", p->args[i]);
+ fprintf(stderr, "\n");
+ }*/
+ pj_dalloc(pszNewProj4Def);
+
+ return pnew;
+}
+#endif /* USE_PROJ */
+
/************************************************************************/
/* msProjectionsDiffer() */
/************************************************************************/
@@ -911,7 +1064,7 @@ int msProjectRect(projectionObj *in, projectionObj *out, rectObj *rect)
** has no arguments, since reprojection won't work anyways.
*/
-int msProjectionsDiffer( projectionObj *proj1, projectionObj *proj2 )
+static int msProjectionsDifferInternal( projectionObj *proj1, projectionObj *proj2 )
{
int i;
@@ -935,6 +1088,31 @@ int msProjectionsDiffer( projectionObj *proj1, projectionObj *proj2 )
return MS_FALSE;
}
+int msProjectionsDiffer( projectionObj *proj1, projectionObj *proj2 )
+{
+#ifdef USE_PROJ
+ int ret;
+
+ ret = msProjectionsDifferInternal(proj1, proj2);
+ if( ret )
+ {
+ projectionObj* p1normalized;
+ projectionObj* p2normalized;
+
+ p1normalized = msGetProjectNormalized( proj1 );
+ p2normalized = msGetProjectNormalized( proj2 );
+ ret = msProjectionsDifferInternal(p1normalized, p2normalized);
+ msFreeProjection(p1normalized);
+ msFree(p1normalized);
+ msFreeProjection(p2normalized);
+ msFree(p2normalized);
+ }
+ return ret;
+#else
+ return msProjectionsDifferInternal(proj1, proj2);
+#endif
+}
+
/************************************************************************/
/* msTestNeedWrap() */
/************************************************************************/
@@ -1068,6 +1246,18 @@ static const char *msProjFinder( const char *filename)
#endif /* def USE_PROJ */
/************************************************************************/
+/* msProjLibInitFromEnv() */
+/************************************************************************/
+void msProjLibInitFromEnv()
+{
+ const char *val;
+
+ if( (val=getenv( "PROJ_LIB" )) != NULL ) {
+ msSetPROJ_LIB(val, NULL);
+ }
+}
+
+/************************************************************************/
/* msSetPROJ_LIB() */
/************************************************************************/
void msSetPROJ_LIB( const char *proj_lib, const char *pszRelToPath )
@@ -1173,15 +1363,12 @@ char *msGetProjectionString(projectionObj *proj)
}
/************************************************************************/
-/* msAxisNormalizePoints() */
+/* msIsAxisInvertedProj() */
/* */
-/* Convert the passed points to "easting, northing" axis */
-/* orientation if they are not already. */
+/* Return MS_TRUE is the proj object has epgsaxis=ne */
/************************************************************************/
-void msAxisNormalizePoints( projectionObj *proj, int count,
- double *x, double *y )
-
+int msIsAxisInvertedProj( projectionObj *proj )
{
int i;
const char *axis = NULL;
@@ -1194,16 +1381,34 @@ void msAxisNormalizePoints( projectionObj *proj, int count,
}
if( axis == NULL )
- return;
+ return MS_FALSE;
if( strcasecmp(axis,"en") == 0 )
- return;
+ return MS_FALSE;
if( strcasecmp(axis,"ne") != 0 ) {
- msDebug( "msAxisNormalizePoints(): odd +epsgaxis= value: '%s'.",
+ msDebug( "msIsAxisInvertedProj(): odd +epsgaxis= value: '%s'.",
axis );
- return;
+ return MS_FALSE;
}
+
+ return MS_TRUE;
+}
+
+/************************************************************************/
+/* msAxisNormalizePoints() */
+/* */
+/* Convert the passed points to "easting, northing" axis */
+/* orientation if they are not already. */
+/************************************************************************/
+
+void msAxisNormalizePoints( projectionObj *proj, int count,
+ double *x, double *y )
+
+{
+ int i;
+ if( !msIsAxisInvertedProj(proj ) )
+ return;
/* Switch axes */
for( i = 0; i < count; i++ ) {
@@ -1215,6 +1420,39 @@ void msAxisNormalizePoints( projectionObj *proj, int count,
}
}
+
+
+/************************************************************************/
+/* msAxisSwapShape */
+/* */
+/* Utility function to swap x and y coordiatesn Use for now for */
+/* WFS 1.1.x */
+/************************************************************************/
+void msAxisSwapShape(shapeObj *shape)
+{
+ double tmp;
+ int i,j;
+
+ if (shape) {
+ for(i=0; i<shape->numlines; i++) {
+ for( j=0; j<shape->line[i].numpoints; j++ ) {
+ tmp = shape->line[i].point[j].x;
+ shape->line[i].point[j].x = shape->line[i].point[j].y;
+ shape->line[i].point[j].y = tmp;
+ }
+ }
+
+ /*swap bounds*/
+ tmp = shape->bounds.minx;
+ shape->bounds.minx = shape->bounds.miny;
+ shape->bounds.miny = tmp;
+
+ tmp = shape->bounds.maxx;
+ shape->bounds.maxx = shape->bounds.maxy;
+ shape->bounds.maxy = tmp;
+ }
+}
+
/************************************************************************/
/* msAxisDenormalizePoints() */
/* */
diff --git a/mapproject.h b/mapproject.h
index 716b8f2..4204cc4 100644
--- a/mapproject.h
+++ b/mapproject.h
@@ -91,12 +91,15 @@ extern "C" {
MS_DLL_EXPORT int msLoadProjectionString(projectionObj *p, const char *value);
MS_DLL_EXPORT int msLoadProjectionStringEPSG(projectionObj *p, const char *value);
MS_DLL_EXPORT char *msGetProjectionString(projectionObj *proj);
+ int msIsAxisInvertedProj( projectionObj *proj );
+ void msAxisSwapShape(shapeObj *shape);
MS_DLL_EXPORT void msAxisNormalizePoints( projectionObj *proj, int count,
double *x, double *y );
MS_DLL_EXPORT void msAxisDenormalizePoints( projectionObj *proj, int count,
double *x, double *y );
MS_DLL_EXPORT void msSetPROJ_LIB( const char *, const char * );
+ MS_DLL_EXPORT void msProjLibInitFromEnv();
/* Provides compatiblity with PROJ.4 4.4.2 */
#ifndef PJ_VERSION
diff --git a/mapquantization.c b/mapquantization.c
index de923af..996b4a3 100644
--- a/mapquantization.c
+++ b/mapquantization.c
@@ -150,7 +150,7 @@ int msQuantizeRasterBuffer(rasterBufferObj *rb,
*palette_scaling_maxval = 255;
- apixels=(rgbaPixel**)msSmallMalloc(rb->height*sizeof(rgbaPixel**));
+ apixels=(rgbaPixel**)msSmallMalloc(rb->height*sizeof(rgbaPixel*));
for(row=0; row<rb->height; row++) {
apixels[row]=(rgbaPixel*)(&(rb->data.rgba.pixels[row * rb->data.rgba.row_step]));
@@ -498,14 +498,18 @@ mediancut( acolorhist_vector achv, int colors, int sum, unsigned char maxval, in
a += PAM_GETA( achv[indx + i].acolor ) * achv[indx + i].value;
sum += achv[indx + i].value;
}
- r = r / sum;
- if ( r > maxval ) r = maxval; /* avoid math errors */
- g = g / sum;
- if ( g > maxval ) g = maxval;
- b = b / sum;
- if ( b > maxval ) b = maxval;
- a = a / sum;
- if ( a > maxval ) a = maxval;
+ if(sum>0) {
+ r = r / sum;
+ if ( r > maxval ) r = maxval; /* avoid math errors */
+ g = g / sum;
+ if ( g > maxval ) g = maxval;
+ b = b / sum;
+ if ( b > maxval ) b = maxval;
+ a = a / sum;
+ if ( a > maxval ) a = maxval;
+ } else {
+ r = g = b = a = maxval;
+ }
/* GRR 20001228: added casts to quiet warnings; 255 DEPENDENCY */
PAM_ASSIGN( acolormap[bi].acolor, (unsigned char)r, (unsigned char)g, (unsigned char)b, (unsigned char)a );
#endif /*REP_AVERAGE_PIXELS*/
diff --git a/mapquery.c b/mapquery.c
index 9693ed6..5ebe478 100644
--- a/mapquery.c
+++ b/mapquery.c
@@ -2,7 +2,7 @@
* $Id$
*
* Project: MapServer
- * Purpose: layer query support.
+ * Purpose: Layer query support.
* Author: Steve Lime and the MapServer team.
*
******************************************************************************
@@ -29,10 +29,7 @@
#include "mapserver.h"
-
-
-int msInitQuery(queryObj *query)
-{
+int msInitQuery(queryObj *query) {
if(!query) return MS_FAILURE;
msFreeQuery(query); /* clean up anything previously allocated */
@@ -44,7 +41,7 @@ int msInitQuery(queryObj *query)
query->point.x = query->point.y = -1;
query->buffer = 0.0;
- query->maxresults = 0;
+ query->maxresults = 0; /* only used by msQueryByPoint() apparently */
query->rect.minx = query->rect.miny = query->rect.maxx = query->rect.maxy = -1;
query->shape = NULL;
@@ -54,9 +51,10 @@ int msInitQuery(queryObj *query)
query->maxfeatures = -1;
query->startindex = -1;
+ query->only_cache_result_count = 0;
- query->item = query->str = NULL;
- query->filter = NULL;
+ query->filteritem = NULL;
+ msInitExpression(&query->filter);
return MS_SUCCESS;
}
@@ -68,12 +66,8 @@ void msFreeQuery(queryObj *query)
free(query->shape);
}
- if(query->item) free(query->item);
- if(query->str) free(query->str);
- if(query->filter) {
- freeExpression(query->filter);
- free(query->filter);
- }
+ if(query->filteritem) free(query->filteritem);
+ msFreeExpression(&query->filter);
}
/*
@@ -96,9 +90,6 @@ int msExecuteQuery(mapObj *map)
case MS_QUERY_BY_RECT:
status = msQueryByRect(map);
break;
- case MS_QUERY_BY_ATTRIBUTE:
- status = msQueryByAttributes(map);
- break;
case MS_QUERY_BY_FILTER:
status = msQueryByFilter(map);
break;
@@ -165,6 +156,7 @@ static int addResult(resultCacheObj *cache, shapeObj *shape)
cache->results[i].resultindex = shape->resultindex;
cache->numresults++;
+ cache->previousBounds = cache->bounds;
if(cache->numresults == 1)
cache->bounds = shape->bounds;
else
@@ -239,7 +231,7 @@ static int loadQueryResults(mapObj *map, FILE *stream)
GET_LAYER(map, j)->resultcache = (resultCacheObj *)malloc(sizeof(resultCacheObj)); /* allocate and initialize the result cache */
MS_CHECK_ALLOC(GET_LAYER(map, j)->resultcache, sizeof(resultCacheObj), MS_FAILURE);
- if(1 != fread(&(GET_LAYER(map, j)->resultcache->numresults), sizeof(int), 1, stream)) { /* number of results */
+ if(1 != fread(&(GET_LAYER(map, j)->resultcache->numresults), sizeof(int), 1, stream) || (GET_LAYER(map, j)->resultcache->numresults < 0)) { /* number of results */
msSetError(MS_MISCERR,"failed to read number of results from query file stream", "loadQueryResults()");
free(GET_LAYER(map, j)->resultcache);
GET_LAYER(map, j)->resultcache = NULL;
@@ -304,8 +296,8 @@ static int saveQueryParams(mapObj *map, char *filename)
fprintf(stream, "%.15g %.15g %.15g %.15g\n", map->query.rect.minx, map->query.rect.miny, map->query.rect.maxx, map->query.rect.maxy); /* by rect */
fprintf(stream, "%ld %ld %d\n", map->query.shapeindex, map->query.tileindex, map->query.clear_resultcache); /* by index */
- fprintf(stream, "%s\n", (map->query.item)?map->query.item:"NULL"); /* by attribute */
- fprintf(stream, "%s\n", (map->query.str)?map->query.str:"NULL");
+ fprintf(stream, "%s\n", (map->query.filteritem)?map->query.filteritem:"NULL"); /* by filter */
+ fprintf(stream, "%s\n", (map->query.filter.string)?map->query.filter.string:"NULL");
if(map->query.shape) { /* by shape */
int i, j;
@@ -352,15 +344,13 @@ static int loadQueryParams(mapObj *map, FILE *stream)
break;
case 6:
if(strncmp(buffer, "NULL", 4) != 0) {
- map->query.item = msStrdup(buffer);
- msStringChop(map->query.item);
+ map->query.filteritem = msStrdup(buffer);
+ msStringChop(map->query.filteritem);
}
break;
case 7:
- if(strncmp(buffer, "NULL", 4) != 0) {
- map->query.str = msStrdup(buffer);
- msStringChop(map->query.str);
- }
+ if(strncmp(buffer, "NULL", 4) != 0)
+ msLoadExpressionString(&map->query.filter, buffer); /* chop buffer */
break;
case 8:
if(sscanf(buffer, "%d\n", &shapetype) != 1) goto parse_error;
@@ -375,7 +365,7 @@ static int loadQueryParams(mapObj *map, FILE *stream)
if(fscanf(stream, "%d\n", &numlines) != 1) goto parse_error;
for(i=0; i<numlines; i++) {
- if(fscanf(stream, "%d\n", &numpoints) != 1) goto parse_error;
+ if(fscanf(stream, "%d\n", &numpoints) != 1 || numpoints<0) goto parse_error;
line.numpoints = numpoints;
line.point = (pointObj *) msSmallMalloc(line.numpoints*sizeof(pointObj));
@@ -537,6 +527,17 @@ int msQueryByIndex(mapObj *map)
return(MS_FAILURE);
}
+ /*
+ * The resultindex is used to retrieve a specific item from the result cache.
+ * Usually, the row number will be used as resultindex. But when working with
+ * databases and querying a single result, the row number is typically 0 and
+ * thus useless as the index in the result cache. See #4926 #4076. Only shape
+ * files are considered to have consistent row numbers.
+ */
+ if ( !(lp->connectiontype == MS_SHAPEFILE || lp->connectiontype == MS_TILED_SHAPEFILE) ) {
+ shape.resultindex = -1;
+ }
+
if (lp->minfeaturesize > 0)
minfeaturesize = Pix2LayerGeoref(map, lp, lp->minfeaturesize);
@@ -576,7 +577,7 @@ int msQueryByIndex(mapObj *map)
void msRestoreOldFilter(layerObj *lp, int old_filtertype, char *old_filteritem, char *old_filterstring)
{
- freeExpression(&(lp->filter));
+ msFreeExpression(&(lp->filter));
if(lp->filteritem) {
free(lp->filteritem);
lp->filteritem = NULL;
@@ -593,196 +594,64 @@ void msRestoreOldFilter(layerObj *lp, int old_filtertype, char *old_filteritem,
}
}
-int msQueryByAttributes(mapObj *map)
-{
- layerObj *lp;
- int status;
-
- int old_filtertype=-1;
- char *old_filterstring=NULL, *old_filteritem=NULL;
-
- rectObj searchrect;
-
- shapeObj shape;
- int paging;
-
- int nclasses = 0;
- int *classgroup = NULL;
- double minfeaturesize = -1;
-
- if(map->query.type != MS_QUERY_BY_ATTRIBUTE) {
- msSetError(MS_QUERYERR, "The query is not properly defined.", "msQueryByAttribute()");
- return(MS_FAILURE);
- }
-
- if(map->query.layer < 0 || map->query.layer >= map->numlayers) {
- msSetError(MS_MISCERR, "No query layer defined.", "msQueryByAttributes()");
- return(MS_FAILURE);
- }
-
- lp = (GET_LAYER(map, map->query.layer));
-
- /* using mapscript, the map->query.startindex will be unset... */
- if (lp->startindex > 1 && map->query.startindex < 0)
- map->query.startindex = lp->startindex;
-
- /* conditions may have changed since this layer last drawn, so set
- layer->project true to recheck projection needs (Bug #673) */
- lp->project = MS_TRUE;
-
- /* free any previous search results, do now in case one of the following tests fails */
- if(lp->resultcache) {
- if(lp->resultcache->results) free(lp->resultcache->results);
- free(lp->resultcache);
- lp->resultcache = NULL;
- }
-
- if(!msIsLayerQueryable(lp)) {
- msSetError(MS_QUERYERR, "Requested layer has no templates defined so is not queryable.", "msQueryByAttributes()");
- return(MS_FAILURE);
- }
+static char *filterTranslateToLogical(expressionObj *filter, char *filteritem) {
+ char *string = NULL;
- if(!map->query.str) {
- msSetError(MS_QUERYERR, "No query expression defined.", "msQueryByAttributes()");
- return(MS_FAILURE);
- }
-
- /* save any previously defined filter */
- if(lp->filter.string) {
- old_filtertype = lp->filter.type;
- old_filterstring = msStrdup(lp->filter.string);
- if(lp->filteritem)
- old_filteritem = msStrdup(lp->filteritem);
- }
-
- /* apply the passed query parameters */
- if(map->query.item && map->query.item[0] != '\0')
- lp->filteritem = msStrdup(map->query.item);
- else
- lp->filteritem = NULL;
- msLoadExpressionString(&(lp->filter), map->query.str);
-
- msInitShape(&shape);
-
- /* Paging could have been disabled before */
- paging = msLayerGetPaging(lp);
- msLayerClose(lp); /* reset */
- status = msLayerOpen(lp);
- if(status != MS_SUCCESS) {
- msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
- return(MS_FAILURE);
- }
- msLayerEnablePaging(lp, paging);
-
- /* build item list, we want *all* items */
- status = msLayerWhichItems(lp, MS_TRUE, NULL);
- if(status != MS_SUCCESS) {
- msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
- return(MS_FAILURE);
- }
-
- /* identify candidate shapes */
- searchrect = map->query.rect;
-#ifdef USE_PROJ
- if(lp->project && msProjectionsDiffer(&(lp->projection), &(map->projection)))
- msProjectRect(&(map->projection), &(lp->projection), &searchrect); /* project the searchrect to source coords */
- else
- lp->project = MS_FALSE;
-#endif
-
- status = msLayerWhichShapes(lp, searchrect, MS_TRUE);
- if(status == MS_DONE) { /* no overlap */
- msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
- msLayerClose(lp);
- msSetError(MS_NOTFOUND, "No matching record(s) found, layer and area of interest do not overlap.", "msQueryByAttributes()");
- return(MS_FAILURE);
- } else if(status != MS_SUCCESS) {
- msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
- msLayerClose(lp);
- return(MS_FAILURE);
+ if(filter->type == MS_STRING && filteritem) {
+ string = strdup("'[");
+ string = msStringConcatenate(string, filteritem);
+ string = msStringConcatenate(string, "]'");
+ if(filter->flags & MS_EXP_INSENSITIVE)
+ string = msStringConcatenate(string, " =* '");
+ else
+ string = msStringConcatenate(string, " = '");
+ string = msStringConcatenate(string, filter->string);
+ string = msStringConcatenate(string, "'");
+ } else if(filter->type == MS_REGEX && filteritem) {
+ string = strdup("'[");
+ string = msStringConcatenate(string, filteritem);
+ string = msStringConcatenate(string, "]'");
+ if(filter->flags & MS_EXP_INSENSITIVE)
+ string = msStringConcatenate(string, " ~* '");
+ else
+ string = msStringConcatenate(string, " ~ '");
+ string = msStringConcatenate(string, filter->string);
+ string = msStringConcatenate(string, "'");
+ } else if(filter->type == MS_EXPRESSION) {
+ string = msStrdup(filter->string);
+ } else {
+ /* native expression, nothing we can do - sigh */
}
- lp->resultcache = (resultCacheObj *)malloc(sizeof(resultCacheObj)); /* allocate and initialize the result cache */
- MS_CHECK_ALLOC(lp->resultcache, sizeof(resultCacheObj), MS_FAILURE);
- initResultCache( lp->resultcache);
-
- nclasses = 0;
- classgroup = NULL;
- if (lp->classgroup && lp->numclasses > 0)
- classgroup = msAllocateValidClassGroups(lp, &nclasses);
-
- if (lp->minfeaturesize > 0)
- minfeaturesize = Pix2LayerGeoref(map, lp, lp->minfeaturesize);
-
- while((status = msLayerNextShape(lp, &shape)) == MS_SUCCESS) { /* step through the shapes */
-
- /* Check if the shape size is ok to be drawn */
- if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
- if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
- if( lp->debug >= MS_DEBUGLEVEL_V )
- msDebug("msQueryByAttributes(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
- msFreeShape(&shape);
- continue;
- }
- }
+ return string;
+}
- shape.classindex = msShapeGetClass(lp, map, &shape, classgroup, nclasses);
- if(!(lp->template) && ((shape.classindex == -1) || (lp->class[shape.classindex]->status == MS_OFF))) { /* not a valid shape */
- msFreeShape(&shape);
- continue;
- }
+static expressionObj mergeFilters(expressionObj *filter1, char *filteritem1, expressionObj *filter2, char *filteritem2) {
+ expressionObj filter;
- if(!(lp->template) && !(lp->class[shape.classindex]->template)) { /* no valid template */
- msFreeShape(&shape);
- continue;
- }
+ char *tmpstr1=NULL;
+ char *tmpstr2=NULL;
-#ifdef USE_PROJ
- if(lp->project && msProjectionsDiffer(&(lp->projection), &(map->projection)))
- msProjectShape(&(lp->projection), &(map->projection), &shape);
- else
- lp->project = MS_FALSE;
-#endif
-
- /* Should we skip this feature? */
- if (!paging && map->query.startindex > 1) {
- --map->query.startindex;
- msFreeShape(&shape);
- continue;
- }
+ msInitExpression(&filter);
+ filter.type = MS_EXPRESSION; /* we're building a logical expression */
- addResult(lp->resultcache, &shape);
- msFreeShape(&shape);
+ tmpstr1 = filterTranslateToLogical(filter1, filteritem1);
+ if(!tmpstr1) return filter; /* should only happen if the filter was a native filter */
- if(map->query.mode == MS_QUERY_SINGLE) { /* no need to look any further */
- status = MS_DONE;
- break;
- }
-
- /* check shape count */
- if(lp->maxfeatures > 0 && lp->maxfeatures == lp->resultcache->numresults) {
- status = MS_DONE;
- break;
- }
+ tmpstr2 = filterTranslateToLogical(filter2, filteritem2);
+ if(!tmpstr2) {
+ msFree(tmpstr1);
+ return filter; /* should only happen if the filter was a native filter */
}
- if (classgroup)
- msFree(classgroup);
-
- msRestoreOldFilter(lp, old_filtertype, old_filteritem, old_filterstring); /* manually reset the filter */
-
- if(status != MS_DONE) {
- msLayerClose(lp);
- return(MS_FAILURE);
- }
+ filter.string = strdup(tmpstr1);
+ filter.string = msStringConcatenate(filter.string, " AND ");
+ filter.string = msStringConcatenate(filter.string, tmpstr2);
- /* was anything found? (if yes, don't close the layer) */
- if(lp->resultcache && lp->resultcache->numresults > 0)
- return(MS_SUCCESS);
+ msFree(tmpstr1);
+ msFree(tmpstr2);
- msLayerClose(lp);
- msSetError(MS_NOTFOUND, "No matching record(s) found.", "msQueryByAttributes()");
- return(MS_FAILURE);
+ return filter;
}
/*
@@ -795,8 +664,9 @@ int msQueryByFilter(mapObj *map)
layerObj *lp;
- char status;
+ char status, eval;
+ char *old_filteritem=NULL;
expressionObj old_filter;
rectObj search_rect;
@@ -811,11 +681,13 @@ int msQueryByFilter(mapObj *map)
msSetError(MS_QUERYERR, "The query is not properly defined.", "msQueryByFilter()");
return(MS_FAILURE);
}
- if(!map->query.filter) { /* TODO: check filter type too */
+ if(!map->query.filter.string) {
msSetError(MS_QUERYERR, "Filter is not set.", "msQueryByFilter()");
return(MS_FAILURE);
}
+ // fprintf(stderr, "in msQueryByFilter: filter=%s, filteritem=%s\n", map->query.filter.string, map->query.filteritem);
+
msInitShape(&shape);
if(map->query.layer < 0 || map->query.layer >= map->numlayers)
@@ -824,6 +696,8 @@ int msQueryByFilter(mapObj *map)
start = stop = map->query.layer;
for(l=start; l>=stop; l--) {
+ eval = MS_TRUE; /* evaluate the filter inside within this function */
+
lp = (GET_LAYER(map, l));
if (map->query.maxfeatures == 0)
break; /* nothing else to do */
@@ -859,33 +733,42 @@ int msQueryByFilter(mapObj *map)
if((lp->mingeowidth > 0) && ((map->extent.maxx - map->extent.minx) < lp->mingeowidth)) continue;
}
- initExpression(&old_filter);
- msCopyExpression(&old_filter, &lp->filter); /* save existing filter */
- if(msLayerSupportsCommonFilters(lp)) {
- msCopyExpression(&lp->filter, map->query.filter); /* apply new filter */
- }
-
msLayerClose(lp); /* reset */
status = msLayerOpen(lp);
if(status != MS_SUCCESS) goto query_error;
+
/* disable driver paging */
msLayerEnablePaging(lp, MS_FALSE);
+
+ old_filteritem = lp->filteritem; /* cache the existing filter/filteritem */
+ msInitExpression(&old_filter);
+ msCopyExpression(&old_filter, &lp->filter);
+
+ if(msLayerSupportsCommonFilters(lp)) eval = MS_FALSE;
- /* build item list, we want *all* items */
+ /*
+ ** Set the lp->filter and lp->filteritem (may need to merge). Remember filters are *always* MapServer syntax.
+ */
+ lp->filteritem = map->query.filteritem; /* re-point lp->filteritem */
+ if(old_filter.string != NULL) { /* need to merge filters to create one logical expression */
+ lp->filter = mergeFilters(&map->query.filter, map->query.filteritem, &old_filter, old_filteritem);
+ if(!lp->filter.string) {
+ msSetError(MS_MISCERR, "Filter merge failed, able to process query.", "msQueryByFilter()");
+ goto query_error;
+ }
+ } else {
+ msCopyExpression(&lp->filter, &map->query.filter); /* apply new filter */
+ }
+
+ /* build item list, we want *all* items, note this *also* build tokens for the layer filter */
status = msLayerWhichItems(lp, MS_TRUE, NULL);
if(status != MS_SUCCESS) goto query_error;
- if(!msLayerSupportsCommonFilters(lp)) {
- freeExpression(&lp->filter); /* clear existing filter */
- status = msTokenizeExpression(map->query.filter, lp->items, &(lp->numitems));
- if(status != MS_SUCCESS) goto query_error;
- }
-
search_rect = map->query.rect;
#ifdef USE_PROJ
- if(lp->project && msProjectionsDiffer(&(lp->projection), &(map->projection)))
+ if(lp->project && msProjectionsDiffer(&(lp->projection), &(map->projection))) {
msProjectRect(&(map->projection), &(lp->projection), &search_rect); /* project the searchrect to source coords */
- else
+ } else
lp->project = MS_FALSE;
#endif
@@ -903,20 +786,12 @@ int msQueryByFilter(mapObj *map)
if (lp->classgroup && lp->numclasses > 0)
classgroup = msAllocateValidClassGroups(lp, &nclasses);
-
if (lp->minfeaturesize > 0)
minfeaturesize = Pix2LayerGeoref(map, lp, lp->minfeaturesize);
- while((status = msLayerNextShape(lp, &shape)) == MS_SUCCESS) { /* step through the shapes */
+ while((status = msLayerNextShape(lp, &shape)) == MS_SUCCESS) { /* step through the shapes - if necessary the filter is applied in msLayerNextShape(...) */
- if(!msLayerSupportsCommonFilters(lp)) { /* we have to apply the filter here instead of within the driver */
- if(msEvalExpression(lp, &shape, map->query.filter, -1) != MS_TRUE) { /* next shape */
- msFreeShape(&shape);
- continue;
- }
- }
-
- /* Check if the shape size is ok to be drawn */
+ /* Check if the shape size is ok to be drawn */
if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
if( lp->debug >= MS_DEBUGLEVEL_V )
@@ -950,10 +825,18 @@ int msQueryByFilter(mapObj *map)
msFreeShape(&shape);
continue;
}
-
- addResult(lp->resultcache, &shape);
+
+ if( map->query.only_cache_result_count )
+ lp->resultcache->numresults ++;
+ else
+ addResult(lp->resultcache, &shape);
msFreeShape(&shape);
+ if(map->query.mode == MS_QUERY_SINGLE) { /* no need to look any further */
+ status = MS_DONE;
+ break;
+ }
+
/* check shape count */
if(lp->maxfeatures > 0 && lp->maxfeatures == lp->resultcache->numresults) {
status = MS_DONE;
@@ -963,12 +846,13 @@ int msQueryByFilter(mapObj *map)
if(classgroup) msFree(classgroup);
+ lp->filteritem = old_filteritem; /* point back to original value */
msCopyExpression(&lp->filter, &old_filter); /* restore old filter */
- freeExpression(&old_filter);
+ msFreeExpression(&old_filter);
if(status != MS_DONE) goto query_error;
- if(lp->resultcache->numresults == 0) msLayerClose(lp); /* no need to keep the layer open */
-
+ if(!map->query.only_cache_result_count && lp->resultcache->numresults == 0)
+ msLayerClose(lp); /* no need to keep the layer open */
} /* next layer */
/* was anything found? */
@@ -981,9 +865,11 @@ int msQueryByFilter(mapObj *map)
return MS_FAILURE;
query_error:
- msCopyExpression(&lp->filter, &old_filter); /* restore old filter */
- freeExpression(&old_filter);
- msLayerClose(lp);
+ // msFree(lp->filteritem);
+ // lp->filteritem = old_filteritem;
+ // msCopyExpression(&lp->filter, &old_filter); /* restore old filter */
+ // msFreeExpression(&old_filter);
+ // msLayerClose(lp);
return MS_FAILURE;
}
@@ -996,7 +882,7 @@ int msQueryByRect(mapObj *map)
char status;
shapeObj shape, searchshape;
- rectObj searchrect;
+ rectObj searchrect, searchrectInMapProj;
double layer_tolerance = 0, tolerance = 0;
int paging;
@@ -1067,6 +953,7 @@ int msQueryByRect(mapObj *map)
searchrect.miny -= tolerance;
searchrect.maxy += tolerance;
}
+ searchrectInMapProj = searchrect;
msRectToPolygon(searchrect, &searchshape);
@@ -1082,12 +969,18 @@ int msQueryByRect(mapObj *map)
paging = msLayerGetPaging(lp);
msLayerClose(lp); /* reset */
status = msLayerOpen(lp);
- if(status != MS_SUCCESS) return(MS_FAILURE);
+ if(status != MS_SUCCESS) {
+ msFreeShape(&searchshape);
+ return(MS_FAILURE);
+ }
msLayerEnablePaging(lp, paging);
/* build item list, we want *all* items */
status = msLayerWhichItems(lp, MS_TRUE, NULL);
- if(status != MS_SUCCESS) return(MS_FAILURE);
+ if(status != MS_SUCCESS) {
+ msFreeShape(&searchshape);
+ return(MS_FAILURE);
+ }
#ifdef USE_PROJ
if(lp->project && msProjectionsDiffer(&(lp->projection), &(map->projection)))
@@ -1095,12 +988,14 @@ int msQueryByRect(mapObj *map)
else
lp->project = MS_FALSE;
#endif
+
status = msLayerWhichShapes(lp, searchrect, MS_TRUE);
if(status == MS_DONE) { /* no overlap */
msLayerClose(lp);
continue;
} else if(status != MS_SUCCESS) {
msLayerClose(lp);
+ msFreeShape(&searchshape);
return(MS_FAILURE);
}
@@ -1146,7 +1041,7 @@ int msQueryByRect(mapObj *map)
lp->project = MS_FALSE;
#endif
- if(msRectContained(&shape.bounds, &searchrect) == MS_TRUE) { /* if the whole shape is in, don't intersect */
+ if(msRectContained(&shape.bounds, &searchrectInMapProj) == MS_TRUE) { /* if the whole shape is in, don't intersect */
status = MS_TRUE;
} else {
switch(shape.type) { /* make sure shape actually intersects the qrect (ADD FUNCTIONS SPECIFIC TO RECTOBJ) */
@@ -1171,7 +1066,10 @@ int msQueryByRect(mapObj *map)
msFreeShape(&shape);
continue;
}
- addResult(lp->resultcache, &shape);
+ if( map->query.only_cache_result_count )
+ lp->resultcache->numresults ++;
+ else
+ addResult(lp->resultcache, &shape);
--map->query.maxfeatures;
}
msFreeShape(&shape);
@@ -1187,9 +1085,13 @@ int msQueryByRect(mapObj *map)
if (classgroup)
msFree(classgroup);
- if(status != MS_DONE) return(MS_FAILURE);
+ if(status != MS_DONE) {
+ msFreeShape(&searchshape);
+ return(MS_FAILURE);
+ }
- if(lp->resultcache->numresults == 0) msLayerClose(lp); /* no need to keep the layer open */
+ if( !map->query.only_cache_result_count &&
+ lp->resultcache->numresults == 0) msLayerClose(lp); /* no need to keep the layer open */
} /* next layer */
msFreeShape(&searchshape);
@@ -1889,7 +1791,6 @@ int msQueryByShape(mapObj *map)
initResultCache( lp->resultcache);
nclasses = 0;
- classgroup = NULL;
if (lp->classgroup && lp->numclasses > 0)
classgroup = msAllocateValidClassGroups(lp, &nclasses);
@@ -2017,9 +1918,14 @@ int msQueryByShape(mapObj *map)
}
} /* next shape */
- if(status != MS_DONE) return(MS_FAILURE);
+ if(status != MS_DONE) {
+ free(classgroup);
+ return(MS_FAILURE);
+ }
if(lp->resultcache->numresults == 0) msLayerClose(lp); /* no need to keep the layer open */
+ free(classgroup);
+ classgroup = NULL;
} /* next layer */
/* was anything found? */
diff --git a/mapraster.c b/mapraster.c
index eb32597..740b9af 100644
--- a/mapraster.c
+++ b/mapraster.c
@@ -203,116 +203,6 @@ int msGetClass_FloatRGB(layerObj *layer, float fValue, int red, int green, int b
return msGetClass_String( layer, &color, pixel_value );
}
-#ifdef USE_GD
-/************************************************************************/
-/* msAddColorGD() */
-/* */
-/* Function to add a color to an existing color map. It first */
-/* looks for an exact match, then tries to add it to the end of */
-/* the existing color map, and if all else fails it finds the */
-/* closest color. */
-/************************************************************************/
-
-int msAddColorGD(mapObj *map, gdImagePtr img, int cmt, int r, int g, int b)
-{
- int c;
- int ct = -1;
- int op = -1;
- long rd, gd, bd, dist;
- long mindist = 3*255*255; /* init to max poss dist */
-
- if( gdImageTrueColor( img ) )
- return gdTrueColor( r, g, b );
-
- /*
- ** We want to avoid using a color that matches a transparent background
- ** color exactly. If this is the case, we will permute the value slightly.
- ** When perterbing greyscale images we try to keep them greyscale, otherwise
- ** we just perterb the red component.
- */
- if( map->outputformat && map->outputformat->transparent
- && map->imagecolor.red == r
- && map->imagecolor.green == g
- && map->imagecolor.blue == b ) {
- if( r == 0 && g == 0 && b == 0 ) {
- r = g = b = 1;
- } else if( r == g && r == b ) {
- r = g = b = r-1;
- } else if( r == 0 ) {
- r = 1;
- } else {
- r = r-1;
- }
- }
-
- /*
- ** Find the nearest color in the color table. If we get an exact match
- ** return it right away.
- */
- for (c = 0; c < img->colorsTotal; c++) {
-
- if (img->open[c]) {
- op = c; /* Save open slot */
- continue; /* Color not in use */
- }
-
- /* don't try to use the transparent color */
- if (map->outputformat && map->outputformat->transparent
- && img->red [c] == map->imagecolor.red
- && img->green[c] == map->imagecolor.green
- && img->blue [c] == map->imagecolor.blue )
- continue;
-
- rd = (long)(img->red [c] - r);
- gd = (long)(img->green[c] - g);
- bd = (long)(img->blue [c] - b);
- /* -------------------------------------------------------------------- */
- /* special case for grey colors (r=g=b). we will try to find */
- /* either the nearest grey or a color that is almost grey. */
- /* -------------------------------------------------------------------- */
- if (r == g && r == b) {
- if (img->red == img->green && img->red == img->blue)
- dist = rd*rd;
- else
- dist = rd * rd + gd * gd + bd * bd;
- } else
- dist = rd * rd + gd * gd + bd * bd;
-
- if (dist < mindist) {
- if (dist == 0) {
- return c; /* Return exact match color */
- }
- mindist = dist;
- ct = c;
- }
- }
-
- /* no exact match, is the closest within our "color match threshold"? */
- if( mindist <= cmt*cmt )
- return ct;
-
- /* no exact match. If there are no open colors we return the closest
- color found. */
- if (op == -1) {
- op = img->colorsTotal;
- if (op == gdMaxColors) { /* No room for more colors */
- return ct; /* Return closest available color */
- }
- img->colorsTotal++;
- }
-
- /* allocate a new exact match */
- img->red [op] = r;
- img->green[op] = g;
- img->blue [op] = b;
- img->open [op] = 0;
-
- return op; /* Return newly allocated color */
-}
-
-#endif
-
-
#if defined(USE_GDAL)
/************************************************************************/
@@ -674,7 +564,7 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
return MS_FAILURE;
#else /* defined(USE_GDAL) */
- int status, i, done;
+ int status, done;
char *filename=NULL, tilename[MS_MAXPATHLEN], tilesrsname[1024];
layerObj *tlp=NULL; /* pointer to the tile layer either real or temporary */
@@ -682,20 +572,21 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
shapeObj tshp;
char szPath[MS_MAXPATHLEN];
- char *decrypted_path;
+ char *decrypted_path = NULL;
int final_status = MS_SUCCESS;
rectObj searchrect;
GDALDatasetH hDS;
double adfGeoTransform[6];
const char *close_connection;
+ void *kernel_density_cleanup_ptr = NULL;
msGDALInitialize();
if(layer->debug > 0 || map->debug > 1)
msDebug( "msDrawRasterLayerLow(%s): entering.\n", layer->name );
- if(!layer->data && !layer->tileindex) {
+ if(!layer->data && !layer->tileindex && !(layer->connectiontype==MS_KERNELDENSITY)) {
if(layer->debug == MS_TRUE)
msDebug( "msDrawRasterLayerLow(%s): layer data and tileindex NULL ... doing nothing.", layer->name );
return(0);
@@ -737,6 +628,7 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
}
}
+
if(layer->tileindex) { /* we have an index file */
msInitShape(&tshp);
searchrect = map->extent;
@@ -775,28 +667,48 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
done = MS_TRUE; /* only one image so we're done after this */
}
- if(strlen(filename) == 0) continue;
+ if(layer->connectiontype != MS_KERNELDENSITY) {
+ if(strlen(filename) == 0) continue;
- if(layer->debug == MS_TRUE)
- msDebug( "msDrawRasterLayerLow(%s): Filename is: %s\n", layer->name, filename);
+ if(layer->debug == MS_TRUE)
+ msDebug( "msDrawRasterLayerLow(%s): Filename is: %s\n", layer->name, filename);
- msDrawRasterBuildRasterPath(map, layer, filename, szPath);
- if(layer->debug == MS_TRUE)
- msDebug("msDrawRasterLayerLow(%s): Path is: %s\n", layer->name, szPath);
+ msDrawRasterBuildRasterPath(map, layer, filename, szPath);
+ if(layer->debug == MS_TRUE)
+ msDebug("msDrawRasterLayerLow(%s): Path is: %s\n", layer->name, szPath);
+
+ /*
+ ** Note: because we do decryption after the above path expansion
+ ** which depends on actually finding a file, it essentially means that
+ ** fancy path manipulation is essentially disabled when using encrypted
+ ** components. But that is mostly ok, since stuff like sde,postgres and
+ ** oracle georaster do not use real paths.
+ */
+ decrypted_path = msDecryptStringTokens( map, szPath );
+ if( decrypted_path == NULL )
+ return MS_FAILURE;
- /*
- ** Note: because we do decryption after the above path expansion
- ** which depends on actually finding a file, it essentially means that
- ** fancy path manipulation is essentially disabled when using encrypted
- ** components. But that is mostly ok, since stuff like sde,postgres and
- ** oracle georaster do not use real paths.
- */
- decrypted_path = msDecryptStringTokens( map, szPath );
- if( decrypted_path == NULL )
- return MS_FAILURE;
+ msAcquireLock( TLOCK_GDAL );
+ hDS = GDALOpenShared( decrypted_path, GA_ReadOnly );
+ } else {
+ status = msComputeKernelDensityDataset(map, image, layer, &hDS, &kernel_density_cleanup_ptr);
+ if(status != MS_SUCCESS) {
+ final_status = status;
+ goto cleanup;
+ }
+ done = MS_TRUE;
+ if(msProjectionsDiffer(&map->projection,&layer->projection)) {
+ char *mapProjStr = msGetProjectionString(&(map->projection));
+
+ /* Set the projection to the map file projection */
+ if (msLoadProjectionString(&(layer->projection), mapProjStr) != 0) {
+ msSetError(MS_CGIERR, "Unable to set projection on interpolation layer.", "msDrawRasterLayerLow()");
+ return(MS_FAILURE);
+ }
+ free(mapProjStr);
+ }
+ }
- msAcquireLock( TLOCK_GDAL );
- hDS = GDALOpenShared( decrypted_path, GA_ReadOnly );
/*
** If GDAL doesn't recognise it, and it wasn't successfully opened
@@ -900,6 +812,9 @@ cleanup:
if(layer->tileindex) { /* tiling clean-up */
msDrawRasterCleanupTileLayer(tlp, tilelayerindex);
}
+ if(layer->connectiontype == MS_KERNELDENSITY && kernel_density_cleanup_ptr) {
+ msCleanupKernelDensityDataset(map, image, layer, kernel_density_cleanup_ptr);
+ }
return final_status;
@@ -915,6 +830,7 @@ imageObj *msDrawReferenceMap(mapObj *map)
double cellsize;
int x1,y1,x2,y2;
char szPath[MS_MAXPATHLEN];
+ int status = MS_SUCCESS;
imageObj *image = NULL;
styleObj style;
@@ -931,11 +847,13 @@ imageObj *msDrawReferenceMap(mapObj *map)
image = msImageCreate(refImage->width, refImage->height, map->outputformat,
map->web.imagepath, map->web.imageurl, map->resolution, map->defresolution, &(map->reference.color));
+ if(!image) return NULL;
- renderer->mergeRasterBuffer(image,refImage,1.0,0,0,0,0,refImage->width, refImage->height);
-
+ status = renderer->mergeRasterBuffer(image,refImage,1.0,0,0,0,0,refImage->width, refImage->height);
msFreeRasterBuffer(refImage);
free(refImage);
+ if(UNLIKELY(status == MS_FAILURE))
+ return NULL;
/* make sure the extent given in mapfile fits the image */
cellsize = msAdjustExtent(&(map->reference.extent),
@@ -982,7 +900,10 @@ imageObj *msDrawReferenceMap(mapObj *map)
if( map->reference.maxboxsize == 0 ||
((abs(x2 - x1) < map->reference.maxboxsize) &&
(abs(y2 - y1) < map->reference.maxboxsize)) ) {
- msDrawShadeSymbol(&(map->symbolset), image, &rect, &style, 1.0);
+ if(UNLIKELY(MS_FAILURE == msDrawShadeSymbol(map, image, &rect, &style, 1.0))) {
+ msFreeImage(image);
+ return NULL;
+ }
}
} else { /* else draw the marker symbol */
@@ -992,28 +913,21 @@ imageObj *msDrawReferenceMap(mapObj *map)
style.size = map->reference.markersize;
/* if the marker symbol is specify draw this symbol else draw a cross */
- if(map->reference.marker != 0) {
- pointObj *point = NULL;
-
- point = msSmallMalloc(sizeof(pointObj));
- point->x = (double)(x1 + x2)/2;
- point->y = (double)(y1 + y2)/2;
-
- style.symbol = map->reference.marker;
-
- msDrawMarkerSymbol(&map->symbolset, image, point, &style, 1.0);
- free(point);
- } else if(map->reference.markername != NULL) {
- pointObj *point = NULL;
-
- point = msSmallMalloc(sizeof(pointObj));
- point->x = (double)(x1 + x2)/2;
- point->y = (double)(y1 + y2)/2;
-
- style.symbol = msGetSymbolIndex(&map->symbolset, map->reference.markername, MS_TRUE);
+ if(map->reference.marker || map->reference.markername) {
+ pointObj point;
+ point.x = (double)(x1 + x2)/2;
+ point.y = (double)(y1 + y2)/2;
+
+ if(map->reference.marker) {
+ style.symbol = map->reference.marker;
+ } else {
+ style.symbol = msGetSymbolIndex(&map->symbolset, map->reference.markername, MS_TRUE);
+ }
- msDrawMarkerSymbol(&map->symbolset, image, point, &style, 1.0);
- free(point);
+ if(UNLIKELY(MS_FAILURE == msDrawMarkerSymbol(map, image, &point, &style, 1.0))) {
+ msFreeImage(image);
+ return NULL;
+ }
} else {
int x21, y21;
shapeObj cross;
@@ -1049,7 +963,10 @@ imageObj *msDrawReferenceMap(mapObj *map)
cross.line[3].point[1].x = x21+8;
cross.line[3].point[1].y = y21;
- msDrawLineSymbol(&(map->symbolset),image,&cross,&style,1.0);
+ if(UNLIKELY(MS_FAILURE == msDrawLineSymbol(map,image,&cross,&style,1.0))) {
+ msFreeImage(image);
+ return NULL;
+ }
}
}
}
diff --git a/maprasterquery.c b/maprasterquery.c
index 17f039a..a420e0b 100644
--- a/maprasterquery.c
+++ b/maprasterquery.c
@@ -1021,7 +1021,7 @@ int msRasterQueryByPoint(mapObj *map, layerObj *layer, int mode, pointObj p,
result = msRasterQueryByRect( map, layer, bufferRect );
- if( rlinfo != NULL && maxresults != 0 )
+ if( maxresults != 0 )
rlinfo->query_result_hard_max = previous_maxresults;
return result;
diff --git a/maprendering.c b/maprendering.c
index 1852f62..aec7386 100644
--- a/maprendering.c
+++ b/maprendering.c
@@ -29,38 +29,7 @@
#include "mapserver.h"
#include "mapcopy.h"
-
-int computeLabelStyle(labelStyleObj *s, labelObj *l, fontSetObj *fontset,
- double scalefactor, double resolutionfactor)
-{
- INIT_LABEL_STYLE(*s);
- if(!MS_VALID_COLOR(l->color))
- return MS_FAILURE;
- if(l->size == -1)
- return MS_FAILURE;
-
- s->size = l->size;
- if(l->type == MS_TRUETYPE) {
- s->size *= scalefactor;
- s->size = MS_MAX(s->size, l->minsize*resolutionfactor);
- s->size = MS_MIN(s->size, l->maxsize*resolutionfactor);
- if (!fontset) {
- msSetError(MS_TTFERR, "No fontset defined.","computeLabelStyle()");
- return (MS_FAILURE);
- }
-
- if (!l->font || !(*l->font)) {
- return (MS_FAILURE);
- }
-
- if(MS_FAILURE == msFontsetLookupFonts(l->font,&s->numfonts,fontset,s->fonts)) {
- return MS_FAILURE;
- }
- }
- s->rotation = l->angle * MS_DEG_TO_RAD;
- s->antialias = l->antialias;
- return MS_SUCCESS;
-}
+#include "fontcache.h"
void computeSymbolStyle(symbolStyleObj *s, styleObj *src, symbolObj *symbol, double scalefactor,
double resolutionfactor)
@@ -141,25 +110,16 @@ int preloadSymbol(symbolSetObj *symbolset, symbolObj *symbol, rendererVTableObj
case MS_SYMBOL_VECTOR:
case MS_SYMBOL_ELLIPSE:
case MS_SYMBOL_SIMPLE:
+ case (MS_SYMBOL_TRUETYPE):
break;
case (MS_SYMBOL_SVG):
#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
- return msPreloadSVGSymbol(symbol);
+ return msPreloadSVGSymbol(symbol);
#else
- msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "preloadSymbol()");
- return MS_FAILURE;
+ msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "preloadSymbol()");
+ return MS_FAILURE;
#endif
- break;
- case (MS_SYMBOL_TRUETYPE): {
- if(!symbol->full_font_path)
- symbol->full_font_path = msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
- symbol->font));
- if(!symbol->full_font_path) {
- msSetError(MS_MEMERR,"allocation error", "preloadSymbol()");
- return MS_FAILURE;
- }
- }
- break;
+ break;
case (MS_SYMBOL_PIXMAP): {
if(!symbol->pixmap_buffer) {
if(MS_SUCCESS != msPreloadImageSymbol(renderer,symbol))
@@ -221,10 +181,47 @@ tileCacheObj *addTileCache(imageObj *img,
return(cachep);
}
+/* helper function to center glyph on the desired point */
+int WARN_UNUSED drawGlyphMarker(imageObj *img, face_element *face, glyph_element *glyphc, double px, double py, int size, double rotation,
+ colorObj *clr, colorObj *oclr, int olwidth)
+{
+ double ox, oy;
+ textPathObj path;
+ glyphObj glyph;
+ rendererVTableObj *renderer = img->format->vtable;
+ if(!renderer->renderGlyphs) return MS_FAILURE;
+ path.numglyphs = 1;
+ glyph.glyph = glyphc;
+ glyph.face = face;
+ path.glyphs = &glyph;
+ path.glyph_size = size;
+ glyph.rot = rotation;
+ ox = (glyphc->metrics.maxx + glyphc->metrics.minx) / 2.0;
+ oy = (glyphc->metrics.maxy + glyphc->metrics.miny) / 2.0;
+ if(rotation != 0) {
+ double sina, cosa;
+ double rox,roy;
+ sina = sin(rotation);
+ cosa = cos(rotation);
+ rox = ox * cosa - oy * sina;
+ roy = ox * sina + oy * cosa;
+ px -= rox;
+ py += roy;
+ glyph.pnt.x = px;
+ glyph.pnt.y = py;
+ } else {
+ glyph.pnt.x = px - ox;
+ glyph.pnt.y = py + oy;
+ }
+ return renderer->renderGlyphs(img, &path, clr, oclr, olwidth);
+}
+
+
imageObj *getTile(imageObj *img, symbolObj *symbol, symbolStyleObj *s, int width, int height,
int seamlessmode)
{
tileCacheObj *tile;
+ int status = MS_SUCCESS;
rendererVTableObj *renderer = img->format->vtable;
if(width==-1 || height == -1) {
width=height=MS_MAX(symbol->sizex,symbol->sizey);
@@ -235,42 +232,63 @@ imageObj *getTile(imageObj *img, symbolObj *symbol, symbolStyleObj *s, int widt
imageObj *tileimg;
double p_x,p_y;
tileimg = msImageCreate(width,height,img->format,NULL,NULL,img->resolution, img->resolution, NULL);
+ if(UNLIKELY(!tileimg)) {
+ return NULL;
+ }
if(!seamlessmode) {
p_x = width/2.0;
p_y = height/2.0;
switch(symbol->type) {
case (MS_SYMBOL_TRUETYPE):
- renderer->renderTruetypeSymbol(tileimg, p_x, p_y, symbol, s);
+ {
+ unsigned int unicode;
+ glyph_element *glyphc;
+ face_element *face = msGetFontFace(symbol->font, &img->map->fontset);
+ if(UNLIKELY(!face)) { status = MS_FAILURE; break; }
+ msUTF8ToUniChar(symbol->character, &unicode);
+ unicode = msGetGlyphIndex(face,unicode);
+ glyphc = msGetGlyphByIndex(face, s->scale, unicode);
+ if(UNLIKELY(!face)) { status = MS_FAILURE; break; }
+ status = drawGlyphMarker(tileimg, face, glyphc, p_x, p_y, s->scale, s->rotation,
+ s->color, s->outlinecolor, s->outlinewidth);
+ }
break;
case (MS_SYMBOL_PIXMAP):
- renderer->renderPixmapSymbol(tileimg, p_x, p_y, symbol, s);
+ status = msPreloadImageSymbol(renderer,symbol);
+ if(UNLIKELY(status == MS_FAILURE)) { break; }
+ status = renderer->renderPixmapSymbol(tileimg, p_x, p_y, symbol, s);
break;
case (MS_SYMBOL_ELLIPSE):
- renderer->renderEllipseSymbol(tileimg, p_x, p_y,symbol, s);
+ status = renderer->renderEllipseSymbol(tileimg, p_x, p_y,symbol, s);
break;
case (MS_SYMBOL_VECTOR):
- renderer->renderVectorSymbol(tileimg, p_x, p_y, symbol, s);
+ status = renderer->renderVectorSymbol(tileimg, p_x, p_y, symbol, s);
break;
case (MS_SYMBOL_SVG):
#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
- if (renderer->supports_svg) {
- if(renderer->renderSVGSymbol(tileimg, p_x, p_y, symbol, s) != MS_SUCCESS) {
- return NULL;
- }
- } else {
- if (msRenderRasterizedSVGSymbol(tileimg,p_x,p_y,symbol, s) != MS_SUCCESS) {
- return NULL;
+ status = msPreloadSVGSymbol(symbol);
+ if(LIKELY(status == MS_SUCCESS)) {
+ if (renderer->supports_svg) {
+ status = renderer->renderSVGSymbol(tileimg, p_x, p_y, symbol, s);
+ } else {
+ status = msRenderRasterizedSVGSymbol(tileimg,p_x,p_y,symbol, s);
}
}
#else
msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "getTile()");
- return NULL;
+ status = MS_FAILURE;
#endif
break;
default:
+ msSetError(MS_SYMERR, "Unknown symbol type %d", "getTile()", symbol->type);
+ status = MS_FAILURE;
break;
}
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(tileimg);
+ return NULL;
+ }
} else {
/*
* in seamless mode, we render the the symbol 9 times on a 3x3 grid to account for
@@ -285,23 +303,61 @@ imageObj *getTile(imageObj *img, symbolObj *symbol, symbolStyleObj *s, int widt
for(j=1; j<=3; j++) {
p_y = (j+0.5) * height;
switch(symbol->type) {
+ case (MS_SYMBOL_TRUETYPE):
+ {
+ unsigned int unicode;
+ glyph_element *glyphc;
+ face_element *face = msGetFontFace(symbol->font, &img->map->fontset);
+ if(UNLIKELY(!face)) { status = MS_FAILURE; break; }
+ msUTF8ToUniChar(symbol->character, &unicode);
+ unicode = msGetGlyphIndex(face,unicode);
+ glyphc = msGetGlyphByIndex(face, s->scale, unicode);
+ if(UNLIKELY(!glyphc)) { status = MS_FAILURE; break; }
+ status = drawGlyphMarker(tileimg, face, glyphc, p_x, p_y, s->scale, s->rotation,
+ s->color, s->outlinecolor, s->outlinewidth);
+ }
+ break;
+ case (MS_SYMBOL_PIXMAP):
+ status = msPreloadImageSymbol(renderer,symbol);
+ if(UNLIKELY(status == MS_FAILURE)) { break; }
+ status = renderer->renderPixmapSymbol(tile3img, p_x, p_y, symbol, s);
+ break;
+ case (MS_SYMBOL_ELLIPSE):
+ status = renderer->renderEllipseSymbol(tile3img, p_x, p_y,symbol, s);
+ break;
case (MS_SYMBOL_VECTOR):
- renderer->renderVectorSymbol(tile3img, p_x, p_y, symbol, s);
+ status = renderer->renderVectorSymbol(tile3img, p_x, p_y, symbol, s);
break;
default:
msSetError(MS_SYMERR, "BUG: Seamless mode is only for vector symbols", "getTile()");
return NULL;
}
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(tile3img);
+ return NULL;
+ }
}
}
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(tile3img);
+ return NULL;
+ }
- MS_IMAGE_RENDERER(tile3img)->getRasterBufferHandle(tile3img,&tmpraster);
- renderer->mergeRasterBuffer(tileimg,
+ status = MS_IMAGE_RENDERER(tile3img)->getRasterBufferHandle(tile3img,&tmpraster);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(tile3img);
+ return NULL;
+ }
+ status = renderer->mergeRasterBuffer(tileimg,
&tmpraster,
1.0,width,height,0,0,width,height
);
msFreeImage(tile3img);
}
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(tileimg);
+ return NULL;
+ }
tile = addTileCache(img,tileimg,symbol,s,width,height);
}
return tile->image;
@@ -316,17 +372,22 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
pointObj point;
double original_rotation = style->rotation;
double symbol_width,symbol_height;
- int ret = MS_FAILURE;
+ glyph_element *glyphc = NULL;
+ face_element *face;
+ int ret = MS_SUCCESS;
if(symbol->type != MS_SYMBOL_TRUETYPE) {
symbol_width = MS_MAX(1,symbol->sizex*style->scale);
symbol_height = MS_MAX(1,symbol->sizey*style->scale);
} else {
- rectObj rect;
- if(MS_SUCCESS != renderer->getTruetypeTextBBox(renderer,&symbol->full_font_path,1,style->scale,
- symbol->character,&rect,NULL,0))
- return MS_FAILURE;
- symbol_width=rect.maxx-rect.minx;
- symbol_height=rect.maxy-rect.miny;
+ unsigned int unicode;
+ msUTF8ToUniChar(symbol->character, &unicode);
+ face = msGetFontFace(symbol->font, &image->map->fontset);
+ if(UNLIKELY(!face)) return MS_FAILURE;
+ unicode = msGetGlyphIndex(face,unicode);
+ glyphc = msGetGlyphByIndex(face, style->scale, unicode);
+ if(UNLIKELY(!glyphc)) return MS_FAILURE;
+ symbol_width = glyphc->metrics.maxx - glyphc->metrics.minx;
+ symbol_height = glyphc->metrics.maxy - glyphc->metrics.miny;
}
for(i=0; i<p->numlines; i++) {
int line_in = 0;
@@ -394,7 +455,8 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
ret = renderer->renderVectorSymbol(image, point.x, point.y, symbol, style);
break;
case MS_SYMBOL_TRUETYPE:
- ret = renderer->renderTruetypeSymbol(image, point.x, point.y, symbol, style);
+ ret = drawGlyphMarker(image, face, glyphc, point.x, point.y, style->scale, style->rotation,
+ style->color, style->outlinecolor, style->outlinewidth);
break;
case (MS_SYMBOL_SVG):
#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
@@ -464,7 +526,8 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
ret = renderer->renderVectorSymbol(image, point.x, point.y, symbol, style);
break;
case MS_SYMBOL_TRUETYPE:
- ret = renderer->renderTruetypeSymbol(image, point.x, point.y, symbol, style);
+ ret = drawGlyphMarker(image, face, glyphc, point.x, point.y, style->scale, style->rotation,
+ style->color, style->outlinecolor, style->outlinewidth);
break;
case (MS_SYMBOL_SVG):
#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
@@ -489,25 +552,26 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
return ret;
}
-int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
+int msDrawLineSymbol(mapObj *map, imageObj *image, shapeObj *p,
styleObj *style, double scalefactor)
{
+ int status = MS_SUCCESS;
if (image) {
if (MS_RENDERER_PLUGIN(image->format)) {
rendererVTableObj *renderer = image->format->vtable;
symbolObj *symbol;
shapeObj *offsetLine = p;
- int i;
+ int i,ret=MS_SUCCESS;
double width;
double finalscalefactor;
if (p->numlines == 0)
return MS_SUCCESS;
- if (style->symbol >= symbolset->numsymbols || style->symbol < 0)
+ if (style->symbol >= map->symbolset.numsymbols || style->symbol < 0)
return MS_SUCCESS; /* no such symbol, 0 is OK */
- symbol = symbolset->symbol[style->symbol];
+ symbol = map->symbolset.symbol[style->symbol];
/* store a reference to the renderer to be used for freeing */
symbol->renderer = renderer;
@@ -546,13 +610,15 @@ int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
else {
/* msSetError(MS_MISCERR,"no color defined for line styling","msDrawLineSymbol()");
* not really an error */
- return MS_SUCCESS;
+ status = MS_SUCCESS;
+ goto line_cleanup;
}
- renderer->renderLine(image,offsetLine,&s);
+ status = renderer->renderLine(image,offsetLine,&s);
} else {
symbolStyleObj s;
- if(preloadSymbol(symbolset, symbol, renderer) != MS_SUCCESS) {
- return MS_FAILURE;
+ if(preloadSymbol(&map->symbolset, symbol, renderer) != MS_SUCCESS) {
+ status = MS_FAILURE;
+ goto line_cleanup;
}
INIT_SYMBOL_STYLE(s);
@@ -562,10 +628,10 @@ int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
/* compute a markerStyle and use it on the line */
if(style->gap<0) {
/* special function that treats any other symbol used as a marker, not a brush */
- msImagePolylineMarkers(image,offsetLine,symbol,&s,-s.gap,
+ status = msImagePolylineMarkers(image,offsetLine,symbol,&s,-s.gap,
style->initialgap * finalscalefactor, 1);
} else if(style->gap>0) {
- msImagePolylineMarkers(image,offsetLine,symbol,&s,s.gap,
+ status = msImagePolylineMarkers(image,offsetLine,symbol,&s,s.gap,
style->initialgap * finalscalefactor,0);
} else {
if(renderer->renderLineTiled != NULL) {
@@ -581,40 +647,44 @@ int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
if(pw<1) pw=1;
if(ph<1) ph=1;
tile = getTile(image, symbol,&s,pw,ph,0);
- renderer->renderLineTiled(image, offsetLine, tile);
+ status = renderer->renderLineTiled(image, offsetLine, tile);
} else {
msSetError(MS_RENDERERERR, "renderer does not support brushed lines", "msDrawLineSymbol()");
- return MS_FAILURE;
+ status = MS_FAILURE;
}
}
}
+line_cleanup:
if(offsetLine!=p) {
msFreeShape(offsetLine);
msFree(offsetLine);
}
+ return status;
} else if( MS_RENDERER_IMAGEMAP(image->format) )
- msDrawLineSymbolIM(symbolset, image, p, style, scalefactor);
+ msDrawLineSymbolIM(map, image, p, style, scalefactor);
else {
msSetError(MS_RENDERERERR, "unsupported renderer", "msDrawShadeSymbol()");
- return MS_FAILURE;
+ status = MS_FAILURE;
}
} else {
- return MS_FAILURE;
+ status = MS_FAILURE;
}
- return MS_SUCCESS;
+ return status;
}
-int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, styleObj *style, double scalefactor)
+int msDrawShadeSymbol(mapObj *map, imageObj *image, shapeObj *p, styleObj *style, double scalefactor)
{
int ret = MS_SUCCESS;
+ symbolObj *symbol;
if (!p)
return MS_SUCCESS;
if (p->numlines <= 0)
return MS_SUCCESS;
- if (style->symbol >= symbolset->numsymbols || style->symbol < 0)
+ if (style->symbol >= map->symbolset.numsymbols || style->symbol < 0)
return MS_SUCCESS; /* no such symbol, 0 is OK */
+ symbol = map->symbolset.symbol[style->symbol];
/*
* if only an outlinecolor was defined, and not a color,
@@ -623,10 +693,10 @@ int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, sty
* this behavior is kind of a mapfile hack, and must be
* kept for backwards compatibility
*/
- if (symbolset->symbol[style->symbol]->type != MS_SYMBOL_PIXMAP && symbolset->symbol[style->symbol]->type != MS_SYMBOL_SVG ) {
+ if (symbol->type != MS_SYMBOL_PIXMAP && symbol->type != MS_SYMBOL_SVG ) {
if (!MS_VALID_COLOR(style->color)) {
if(MS_VALID_COLOR(style->outlinecolor))
- return msDrawLineSymbol(symbolset, image, p, style, scalefactor);
+ return msDrawLineSymbol(map, image, p, style, scalefactor);
else {
/* just do nothing if no color has been set */
return MS_SUCCESS;
@@ -637,7 +707,6 @@ int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, sty
if (MS_RENDERER_PLUGIN(image->format)) {
rendererVTableObj *renderer = image->format->vtable;
shapeObj *offsetPolygon = NULL;
- symbolObj *symbol = symbolset->symbol[style->symbol];
/* store a reference to the renderer to be used for freeing */
if(style->symbol)
symbol->renderer = renderer;
@@ -698,8 +767,9 @@ int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, sty
imageObj *tile;
int seamless = 0;
- if(preloadSymbol(symbolset,symbol,renderer) != MS_SUCCESS) {
- return MS_FAILURE;
+ if(preloadSymbol(&map->symbolset,symbol,renderer) != MS_SUCCESS) {
+ ret = MS_FAILURE;
+ goto cleanup;
}
INIT_SYMBOL_STYLE(s);
@@ -756,18 +826,18 @@ cleanup:
}
return ret;
} else if( MS_RENDERER_IMAGEMAP(image->format) )
- msDrawShadeSymbolIM(symbolset, image, p, style, scalefactor);
+ msDrawShadeSymbolIM(map, image, p, style, scalefactor);
}
return ret;
}
-int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, styleObj *style,
+int msDrawMarkerSymbol(mapObj *map, imageObj *image, pointObj *p, styleObj *style,
double scalefactor)
{
int ret = MS_SUCCESS;
if (!p)
return MS_SUCCESS;
- if (style->symbol >= symbolset->numsymbols || style->symbol <= 0)
+ if (style->symbol >= map->symbolset.numsymbols || style->symbol <= 0)
return MS_SUCCESS; /* no such symbol, 0 is OK */
if (image) {
@@ -775,10 +845,10 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
rendererVTableObj *renderer = image->format->vtable;
symbolStyleObj s;
double p_x,p_y;
- symbolObj *symbol = symbolset->symbol[style->symbol];
+ symbolObj *symbol = map->symbolset.symbol[style->symbol];
/* store a reference to the renderer to be used for freeing */
symbol->renderer = renderer;
- if(preloadSymbol(symbolset,symbol,renderer) != MS_SUCCESS) {
+ if(preloadSymbol(&map->symbolset,symbol,renderer) != MS_SUCCESS) {
return MS_FAILURE;
}
@@ -815,7 +885,9 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
if(symbol->anchorpoint_x != 0.5 || symbol->anchorpoint_y != 0.5) {
double sx,sy;
double ox, oy;
- msGetMarkerSize(symbolset, style, &sx, &sy, scalefactor);
+ if(UNLIKELY(MS_FAILURE == msGetMarkerSize(map, style, &sx, &sy, scalefactor))) {
+ return MS_FAILURE;
+ }
ox = (0.5 - symbol->anchorpoint_x) * sx;
oy = (0.5 - symbol->anchorpoint_y) * sy;
if(s.rotation != 0) {
@@ -844,9 +916,15 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
}
switch (symbol->type) {
case (MS_SYMBOL_TRUETYPE): {
- assert(symbol->full_font_path);
- ret = renderer->renderTruetypeSymbol(image, p_x, p_y, symbol, &s);
-
+ unsigned int unicode;
+ glyph_element *glyphc;
+ face_element *face = msGetFontFace(symbol->font, &map->fontset);
+ if(UNLIKELY(!face)) return MS_FAILURE;
+ msUTF8ToUniChar(symbol->character,&unicode);
+ unicode = msGetGlyphIndex(face,unicode);
+ glyphc = msGetGlyphByIndex(face,s.scale,unicode);
+ if(UNLIKELY(!glyphc)) return MS_FAILURE;
+ ret = drawGlyphMarker(image, face, glyphc, p_x, p_y, s.scale, s.rotation, s.color, s.outlinecolor, s.outlinewidth);
}
break;
case (MS_SYMBOL_PIXMAP): {
@@ -880,164 +958,110 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
}
return ret;
} else if( MS_RENDERER_IMAGEMAP(image->format) )
- msDrawMarkerSymbolIM(symbolset, image, p, style, scalefactor);
+ msDrawMarkerSymbolIM(map, image, p, style, scalefactor);
}
return ret;
}
-
-
-
-/*
-** Render the text (no background effects) for a label.
- */
-int msDrawText(imageObj *image, pointObj labelPnt, char *string,
- labelObj *label, fontSetObj *fontset, double scalefactor)
+int msDrawLabelBounds(mapObj *map, imageObj *image, label_bounds *bnds, styleObj *style, double scalefactor)
{
- int nReturnVal = -1;
- if (image) {
- if (MS_RENDERER_PLUGIN(image->format)) {
- labelStyleObj s;
- rendererVTableObj *renderer = image->format->vtable;
- double x, y;
- if (!string || !strlen(string))
- return (0); /* not errors, just don't want to do anything */
-
-
- if(computeLabelStyle(&s,label,fontset,scalefactor,image->resolutionfactor) == MS_FAILURE) {
- return MS_FAILURE;
- }
- if(s.rotation == 0 && !MS_RENDERER_KML(image->format)) {
- x = MS_NINT(labelPnt.x);
- y = MS_NINT(labelPnt.y);
- } else {
- x = labelPnt.x;
- y = labelPnt.y;
- }
- if (label->type == MS_TRUETYPE) {
- if(MS_VALID_COLOR(label->shadowcolor)) {
- s.color = &label->shadowcolor;
- /* FIXME labelpoint for rotated label */
- renderer->renderGlyphs(image,
- x + scalefactor * label->shadowsizex,y + scalefactor * label->shadowsizey,
- &s,string);
- }
-
- s.color= &label->color;
- if(MS_VALID_COLOR(label->outlinecolor)) {
- s.outlinecolor = &label->outlinecolor;
- s.outlinewidth = label->outlinewidth * s.size/label->size;
- }
- return renderer->renderGlyphs(image,x,y,&s,string);
- } else if(label->type == MS_BITMAP) {
- s.size = MS_NINT(s.size);
- s.color= &label->color;
- s.size = MS_MIN(s.size,5); /* only have 5 bitmap fonts */
- if(!renderer->supports_bitmap_fonts || !renderer->bitmapFontMetrics[MS_NINT(s.size)]) {
- msSetError(MS_RENDERERERR, "selected renderer does not support bitmap fonts or this particular size", "msDrawText()");
- return MS_FAILURE;
- }
- return renderer->renderBitmapGlyphs(image,x,y,&s,string);
- }
- } else if( MS_RENDERER_IMAGEMAP(image->format) )
- nReturnVal = msDrawTextIM(image, labelPnt, string, label, fontset, scalefactor);
+ /*
+ * helper function to draw label bounds, where we might have only a rectObj and not
+ * a lineObj/shapeObj
+ */
+ shapeObj shape;
+ shape.numlines = 1;
+ if(bnds->poly) {
+ shape.line = bnds->poly;
+ return msDrawShadeSymbol(map,image,&shape,style,scalefactor);
+ } else {
+ pointObj pnts1[5];
+ lineObj l;
+ l.point = pnts1;
+ l.numpoints = 5;
+ pnts1[0].x = pnts1[1].x = pnts1[4].x = bnds->bbox.minx;
+ pnts1[2].x = pnts1[3].x = bnds->bbox.maxx;
+ pnts1[0].y = pnts1[3].y = pnts1[4].y = bnds->bbox.miny;
+ pnts1[1].y = pnts1[2].y = bnds->bbox.maxy;
+ shape.line = &l; // must return from this block
+ return msDrawShadeSymbol(map,image,&shape,style,scalefactor);
}
- return nReturnVal;
}
-int msDrawTextLine(imageObj *image, char *string, labelObj *label, labelPathObj *labelpath, fontSetObj *fontset, double scalefactor)
+int msDrawTextSymbol(mapObj *map, imageObj *image, pointObj labelPnt, textSymbolObj *ts)
{
- int nReturnVal = MS_SUCCESS;
- if(image) {
- if (MS_RENDERER_PLUGIN(image->format)) {
-
- rendererVTableObj *renderer = image->format->vtable;
- labelStyleObj s;
- if (!string || !strlen(string))
- return (MS_SUCCESS); /* not errors, just don't want to do anything */
- if(computeLabelStyle(&s, label, fontset, scalefactor,image->resolutionfactor) != MS_SUCCESS) return MS_FAILURE;
- if (label->type == MS_TRUETYPE) {
- if(renderer->renderGlyphsLine) {
- if(MS_VALID_COLOR(label->outlinecolor)) {
- s.outlinecolor = &(label->outlinecolor);
- s.outlinewidth = s.size/label->size * label->outlinewidth;
- } else {
- s.outlinewidth = 0;
- s.outlinecolor = NULL;
- }
- s.color = &(label->color);
- nReturnVal = renderer->renderGlyphsLine(image,labelpath,&s,string);
- } else {
- /*
- * if the renderer doesn't support direct labelPath usage,
- * decompose the string and send it down character by character
- */
- const char* string_ptr = string;
- int i;
- double x, y;
- char glyph[11];
-
- /*
- * we first render all the outlines if present, so that the
- * joining of characters stays correct
- */
- if(MS_VALID_COLOR(label->outlinecolor)) {
- s.outlinecolor = &(label->outlinecolor);
- s.outlinewidth = s.size/label->size * label->outlinewidth;
- for (i = 0; i < labelpath->path.numpoints; i++) {
- if (msGetNextGlyph(&string_ptr, glyph) == -1)
- break; /* Premature end of string??? */
- s.rotation = labelpath->angles[i];
- x = labelpath->path.point[i].x;
- y = labelpath->path.point[i].y;
- nReturnVal = renderer->renderGlyphs(image, x, y, &s, glyph);
- if(nReturnVal != MS_SUCCESS) {
- return nReturnVal;
- }
- }
- string_ptr = string; /* reset to beginning of string */
- }
- s.outlinecolor = NULL;
- s.outlinewidth = 0;
- s.color = &(label->color);
- for (i = 0; i < labelpath->path.numpoints; i++) {
- if (msGetNextGlyph(&string_ptr, glyph) == -1)
- break; /* Premature end of string??? */
-
- s.rotation = labelpath->angles[i];
- x = labelpath->path.point[i].x;
- y = labelpath->path.point[i].y;
-
- nReturnVal = renderer->renderGlyphs(image, x, y, &s, glyph);
- if(nReturnVal != MS_SUCCESS) {
- return nReturnVal;
- }
- }
- }
+ rendererVTableObj *renderer = image->format->vtable;
+ colorObj *c = NULL, *oc = NULL;
+ int ow;
+ assert(ts->textpath);
+
+ if(!ts->textpath->absolute) {
+ int g;
+ double cosa,sina;
+ double x = labelPnt.x;
+ double y = labelPnt.y;
+ if(ts->rotation != 0) {
+ cosa = cos(ts->rotation);
+ sina = sin(ts->rotation);
+ for(g=0;g<ts->textpath->numglyphs;g++) {
+ double ox = ts->textpath->glyphs[g].pnt.x;
+ double oy = ts->textpath->glyphs[g].pnt.y;
+ ts->textpath->glyphs[g].pnt.x = ox * cosa + oy * sina + x;
+ ts->textpath->glyphs[g].pnt.y = -ox * sina + oy * cosa + y;
+ ts->textpath->glyphs[g].rot = ts->rotation;
+ }
+ } else {
+ for(g=0;g<ts->textpath->numglyphs;g++) {
+ ts->textpath->glyphs[g].pnt.x += x;
+ ts->textpath->glyphs[g].pnt.y += y;
}
}
}
-
- return nReturnVal;
+ if(MS_VALID_COLOR(ts->label->color))
+ c = &ts->label->color;
+ if(MS_VALID_COLOR(ts->label->outlinecolor))
+ oc = &ts->label->outlinecolor;
+ ow = ts->label->outlinewidth * ts->scalefactor;
+ if(!renderer->renderGlyphs) return MS_FAILURE;
+ return renderer->renderGlyphs(image,ts->textpath,c,oc,ow);
+
}
-int msCircleDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor)
+/************************************************************************/
+/* msCircleDrawLineSymbol */
+/* */
+/************************************************************************/
+int msCircleDrawLineSymbol(mapObj *map, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor)
{
shapeObj *circle;
+ int status;
if (!image) return MS_FAILURE;
circle = msRasterizeArc(p->x, p->y, r, 0, 360, 0);
if (!circle) return MS_FAILURE;
- msDrawShadeSymbol(symbolset, image, circle, style, scalefactor);
+ status = msDrawLineSymbol(map, image, circle, style, scalefactor);
msFreeShape(circle);
msFree(circle);
- return MS_SUCCESS;
+ return status;
}
-int msDrawPieSlice(symbolSetObj *symbolset, imageObj *image, pointObj *p, styleObj *style, double radius, double start, double end)
+int msCircleDrawShadeSymbol(mapObj *map, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor)
{
+ shapeObj *circle;
+ int status;
+ if (!image) return MS_FAILURE;
+ circle = msRasterizeArc(p->x, p->y, r, 0, 360, 0);
+ if (!circle) return MS_FAILURE;
+ status = msDrawShadeSymbol(map, image, circle, style, scalefactor);
+ msFreeShape(circle);
+ msFree(circle);
+ return status;
+}
+int msDrawPieSlice(mapObj *map, imageObj *image, pointObj *p, styleObj *style, double radius, double start, double end)
+{
+ int status;
shapeObj *circle;
double center_x = p->x;
double center_y = p->y;
@@ -1048,8 +1072,8 @@ int msDrawPieSlice(symbolSetObj *symbolset, imageObj *image, pointObj *p, styleO
}
circle = msRasterizeArc(center_x, center_y, radius, start, end, 1);
if (!circle) return MS_FAILURE;
- msDrawShadeSymbol(symbolset, image, circle, style, 1.0);
+ status = msDrawShadeSymbol(map, image, circle, style, 1.0);
msFreeShape(circle);
msFree(circle);
- return MS_SUCCESS;
+ return status;
}
diff --git a/mapresample.c b/mapresample.c
index 419d07b..26b253e 100644
--- a/mapresample.c
+++ b/mapresample.c
@@ -99,9 +99,7 @@ msNearestRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
int nSrcXSize = psSrcImage->width;
int nSrcYSize = psSrcImage->height;
int nFailedPoints = 0, nSetPoints = 0;
-#ifndef USE_GD
- assert(!MS_RENDERER_PLUGIN(psSrcImage->format) || src_rb->type != MS_BUFFER_GD);
-#endif
+ assert(!MS_RENDERER_PLUGIN(psSrcImage->format) || src_rb->type == MS_BUFFER_BYTE_RGBA);
x = (double *) msSmallMalloc( sizeof(double) * nDstXSize );
@@ -141,60 +139,47 @@ msNearestRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
}
if( MS_RENDERER_PLUGIN(psSrcImage->format) ) {
-#ifdef USE_GD
- if(src_rb->type == MS_BUFFER_GD) {
- int nValue = 0;
- assert(!gdImageTrueColor(src_rb->data.gd_img));
- nValue = panCMap[src_rb->data.gd_img->pixels[nSrcY][nSrcX]];
+ int src_rb_off;
+ rgbaArrayObj *src,*dst;
+ assert( src_rb->type == MS_BUFFER_BYTE_RGBA );
+ src = &src_rb->data.rgba;
+ dst = &dst_rb->data.rgba;
+ assert( src_rb && dst_rb );
+ src_rb_off = nSrcX * src->pixel_step
+ + nSrcY * src->row_step;
+
+ if( src->a == NULL || src->a[src_rb_off] == 255 ) {
+ int dst_rb_off;
- if( nValue == -1 )
- continue;
+ dst_rb_off = nDstX * dst->pixel_step
+ + nDstY * dst->row_step;
nSetPoints++;
- dst_rb->data.gd_img->pixels[nDstY][nDstX] = nValue;
- } else
-#endif
- if( src_rb->type == MS_BUFFER_BYTE_RGBA ) {
- int src_rb_off;
- rgbaArrayObj *src = &src_rb->data.rgba, *dst = &dst_rb->data.rgba;
- assert( src_rb && dst_rb );
- src_rb_off = nSrcX * src->pixel_step
- + nSrcY * src->row_step;
-
- if( src->a == NULL || src->a[src_rb_off] == 255 ) {
- int dst_rb_off;
-
- dst_rb_off = nDstX * dst->pixel_step
- + nDstY * dst->row_step;
-
- nSetPoints++;
-
- dst->r[dst_rb_off] = src->r[src_rb_off];
- dst->g[dst_rb_off] = src->g[src_rb_off];
- dst->b[dst_rb_off] = src->b[src_rb_off];
- if( dst->a )
- dst->a[dst_rb_off] = 255;
- } else if( src->a[src_rb_off] != 0 ) {
- int dst_rb_off;
-
- dst_rb_off = nDstX * dst->pixel_step
- + nDstY * dst->row_step;
-
- nSetPoints++;
-
- /* actual alpha blending is required */
- msAlphaBlendPM( src->r[src_rb_off],
- src->g[src_rb_off],
- src->b[src_rb_off],
- src->a[src_rb_off],
- dst->r + dst_rb_off,
- dst->g + dst_rb_off,
- dst->b + dst_rb_off,
- dst->a ? dst->a + dst_rb_off : NULL );
-
- }
- }
+ dst->r[dst_rb_off] = src->r[src_rb_off];
+ dst->g[dst_rb_off] = src->g[src_rb_off];
+ dst->b[dst_rb_off] = src->b[src_rb_off];
+ if( dst->a )
+ dst->a[dst_rb_off] = 255;
+ } else if( src->a[src_rb_off] != 0 ) {
+ int dst_rb_off;
+
+ dst_rb_off = nDstX * dst->pixel_step
+ + nDstY * dst->row_step;
+
+ nSetPoints++;
+
+ /* actual alpha blending is required */
+ msAlphaBlendPM( src->r[src_rb_off],
+ src->g[src_rb_off],
+ src->b[src_rb_off],
+ src->a[src_rb_off],
+ dst->r + dst_rb_off,
+ dst->g + dst_rb_off,
+ dst->b + dst_rb_off,
+ dst->a ? dst->a + dst_rb_off : NULL );
+
+ }
} else if( MS_RENDERER_RAWDATA(psSrcImage->format) ) {
int band, src_off, dst_off;
@@ -259,16 +244,7 @@ static void msSourceSample( imageObj *psSrcImage, rasterBufferObj *rb,
if( MS_RENDERER_PLUGIN(psSrcImage->format) ) {
rgbaArrayObj *rgba;
int rb_off;
- assert(rb);
-#ifdef USE_GD
- if(rb->type == MS_BUFFER_GD) {
- assert(!gdImageTrueColor(rb->data.gd_img) );
- padfPixelSum[0] += (dfWeight * rb->data.gd_img->pixels[iSrcY][iSrcX]);
- *pdfWeightSum += dfWeight;
- return;
- }
-#endif
- assert(rb->type == MS_BUFFER_BYTE_RGBA);
+ assert(rb && rb->type == MS_BUFFER_BYTE_RGBA);
rgba = &(rb->data.rgba);
rb_off = iSrcX * rgba->pixel_step + iSrcY * rgba->row_step;
@@ -419,54 +395,36 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
if( dfWeightSum == 0.0 )
continue;
- for( i = 0; i < bandCount; i++ )
- padfPixelSum[i] /= dfWeightSum;
-
if( MS_RENDERER_PLUGIN(psSrcImage->format) ) {
assert(src_rb && dst_rb);
-#ifdef USE_GD
- if(src_rb->type == MS_BUFFER_GD) {
- int nResult;
- assert( !gdImageTrueColor(src_rb->data.gd_img) && !gdImageTrueColor(dst_rb->data.gd_img));
- nResult = panCMap[(int) padfPixelSum[0]];
- if( nResult != -1 ) {
- nSetPoints++;
- dst_rb->data.gd_img->pixels[nDstY][nDstX] = nResult;
- }
- } else
-#endif
-#ifdef USE_GD
- if( src_rb->type == MS_BUFFER_BYTE_RGBA ) {
-#else
- assert( src_rb->type == MS_BUFFER_BYTE_RGBA );
-#endif
- assert( src_rb->type == dst_rb->type );
+ assert( src_rb->type == MS_BUFFER_BYTE_RGBA );
+ assert( src_rb->type == dst_rb->type );
- nSetPoints++;
+ nSetPoints++;
- if( dfWeightSum > 0.001 ) {
- int dst_rb_off = nDstX * dst_rb->data.rgba.pixel_step + nDstY * dst_rb->data.rgba.row_step;
- unsigned char red, green, blue, alpha;
+ if( dfWeightSum > 0.001 ) {
+ int dst_rb_off = nDstX * dst_rb->data.rgba.pixel_step + nDstY * dst_rb->data.rgba.row_step;
+ unsigned char red, green, blue, alpha;
- red = (unsigned char) MAX(0,MIN(255,padfPixelSum[0]));
- green = (unsigned char) MAX(0,MIN(255,padfPixelSum[1]));
- blue = (unsigned char) MAX(0,MIN(255,padfPixelSum[2]));
- alpha = (unsigned char)MAX(0,MIN(255,255.5*dfWeightSum));
+ red = (unsigned char) MAX(0,MIN(255,padfPixelSum[0]));
+ green = (unsigned char) MAX(0,MIN(255,padfPixelSum[1]));
+ blue = (unsigned char) MAX(0,MIN(255,padfPixelSum[2]));
+ alpha = (unsigned char)MAX(0,MIN(255,255.5*dfWeightSum));
- msAlphaBlendPM( red, green, blue, alpha,
- dst_rb->data.rgba.r + dst_rb_off,
- dst_rb->data.rgba.g + dst_rb_off,
- dst_rb->data.rgba.b + dst_rb_off,
- (dst_rb->data.rgba.a == NULL) ? NULL : dst_rb->data.rgba.a + dst_rb_off );
- }
-#ifdef USE_GD
- }
-#endif
+ msAlphaBlendPM( red, green, blue, alpha,
+ dst_rb->data.rgba.r + dst_rb_off,
+ dst_rb->data.rgba.g + dst_rb_off,
+ dst_rb->data.rgba.b + dst_rb_off,
+ (dst_rb->data.rgba.a == NULL) ? NULL : dst_rb->data.rgba.a + dst_rb_off );
+ }
} else if( MS_RENDERER_RAWDATA(psSrcImage->format) ) {
int band;
int dst_off = nDstX + nDstY * psDstImage->width;
+ for( i = 0; i < bandCount; i++ )
+ padfPixelSum[i] /= dfWeightSum;
+
MS_SET_BIT(psDstImage->img_mask,dst_off);
for( band = 0; band < psSrcImage->format->bands; band++ ) {
@@ -638,45 +596,26 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
if( MS_RENDERER_PLUGIN(psSrcImage->format) ) {
assert(dst_rb && src_rb);
-#ifdef USE_GD
- if(dst_rb->type == MS_BUFFER_GD) {
- int nResult = panCMap[(int) padfPixelSum[0]];
- assert( !gdImageTrueColor(dst_rb->data.gd_img) );
- if( nResult != -1 ) {
- nSetPoints++;
- dst_rb->data.gd_img->pixels[nDstY][nDstX] = nResult;
- }
- } else
-#endif
-#ifdef USE_GD
- if( dst_rb->type == MS_BUFFER_BYTE_RGBA ) {
-#else
- assert( dst_rb->type == MS_BUFFER_BYTE_RGBA );
-#endif
-
-
- assert( src_rb->type == dst_rb ->type );
+ assert( dst_rb->type == MS_BUFFER_BYTE_RGBA );
+ assert( src_rb->type == dst_rb ->type );
- nSetPoints++;
+ nSetPoints++;
- if( dfAlpha01 > 0 ) {
- unsigned char red, green, blue, alpha;
+ if( dfAlpha01 > 0 ) {
+ unsigned char red, green, blue, alpha;
- red = (unsigned char)
- MAX(0,MIN(255,padfPixelSum[0]+0.5));
- green = (unsigned char)
- MAX(0,MIN(255,padfPixelSum[1]+0.5));
- blue = (unsigned char)
- MAX(0,MIN(255,padfPixelSum[2]+0.5));
- alpha = (unsigned char)
- MAX(0,MIN(255,255*dfAlpha01+0.5));
+ red = (unsigned char)
+ MAX(0,MIN(255,padfPixelSum[0]+0.5));
+ green = (unsigned char)
+ MAX(0,MIN(255,padfPixelSum[1]+0.5));
+ blue = (unsigned char)
+ MAX(0,MIN(255,padfPixelSum[2]+0.5));
+ alpha = (unsigned char)
+ MAX(0,MIN(255,255*dfAlpha01+0.5));
- RB_SET_PIXEL(dst_rb,nDstX,nDstY,
- red, green, blue, alpha );
- }
-#ifdef USE_GD
- }
-#endif
+ RB_MIX_PIXEL(dst_rb,nDstX,nDstY,
+ red, green, blue, alpha );
+ }
} else if( MS_RENDERER_RAWDATA(psSrcImage->format) ) {
int band;
int dst_off = nDstX + nDstY * psDstImage->width;
@@ -777,8 +716,10 @@ void *msInitProjTransformer( projectionObj *psSrc,
psPTInfo->bSrcIsGeographic = MS_FALSE;
if( !InvGeoTransform(padfSrcGeoTransform,
- psPTInfo->adfInvSrcGeoTransform) )
+ psPTInfo->adfInvSrcGeoTransform) ) {
+ free(psPTInfo);
return NULL;
+ }
/* -------------------------------------------------------------------- */
/* Record destination image information. */
@@ -1244,6 +1185,7 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
int nLoadImgXSize, nLoadImgYSize;
double dfOversampleRatio;
rasterBufferObj src_rb, *psrc_rb = NULL, *mask_rb = NULL;
+ int bAddPixelMargin = MS_TRUE;
const char *resampleMode = CSLFetchNameValue( layer->processing,
@@ -1336,15 +1278,69 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
}
/* -------------------------------------------------------------------- */
+ /* If requesting at the raster resolution, on pixel boundaries, */
+ /* and no reprojection is involved, we don't need any resampling. */
+ /* And if they match an integral subsampling factor, no need to */
+ /* add pixel margin. */
+ /* This optimization helps a lot when operating with mode=tile */
+ /* and that the underlying raster is tiled and share the same */
+ /* tiling scheme as the queried tile mode. */
+ /* -------------------------------------------------------------------- */
+#define IS_ALMOST_INTEGER(x, eps) (fabs((x)-(int)((x)+0.5)) < (eps))
+
+ if( adfSrcGeoTransform[1] > 0.0 && adfSrcGeoTransform[2] == 0.0 &&
+ adfSrcGeoTransform[4] == 0.0 && adfSrcGeoTransform[5] < 0.0 &&
+ IS_ALMOST_INTEGER(sSrcExtent.minx, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.miny, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.maxx, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.maxy, 0.1) &&
+ !msProjectionsDiffer( &(map->projection), &(layer->projection)) )
+ {
+ double dfXFactor, dfYFactor;
+
+ sSrcExtent.minx = (int)(sSrcExtent.minx + 0.5);
+ sSrcExtent.miny = (int)(sSrcExtent.miny + 0.5);
+ sSrcExtent.maxx = (int)(sSrcExtent.maxx + 0.5);
+ sSrcExtent.maxy = (int)(sSrcExtent.maxy + 0.5);
+
+ if( (int)(sSrcExtent.maxx - sSrcExtent.minx + 0.5) == nDstXSize &&
+ (int)(sSrcExtent.maxy - sSrcExtent.miny + 0.5) == nDstYSize )
+ {
+ if( layer->debug )
+ msDebug( "msResampleGDALToMap(): Request matching raster resolution and pixel boundaries. "
+ "No need to do resampling/reprojection.\n" );
+ return msDrawRasterLayerGDAL( map, layer, image, rb, hDS );
+ }
+
+ dfXFactor = (sSrcExtent.maxx - sSrcExtent.minx) / nDstXSize;
+ dfYFactor = (sSrcExtent.maxy - sSrcExtent.miny) / nDstYSize;
+ if( IS_ALMOST_INTEGER(dfXFactor, 1e-5) &&
+ IS_ALMOST_INTEGER(dfYFactor, 1e-5) &&
+ IS_ALMOST_INTEGER(sSrcExtent.minx/dfXFactor, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.miny/dfXFactor, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.maxx/dfYFactor, 0.1) &&
+ IS_ALMOST_INTEGER(sSrcExtent.maxy/dfYFactor, 0.1) )
+ {
+ bAddPixelMargin = MS_FALSE;
+ if( layer->debug )
+ msDebug( "msResampleGDALToMap(): Request matching raster resolution "
+ "and pixel boundaries matching an integral subsampling factor\n" );
+ }
+ }
+
+ /* -------------------------------------------------------------------- */
/* Project desired extents out by 2 pixels, and then strip to */
/* available data. */
/* -------------------------------------------------------------------- */
memcpy( &sOrigSrcExtent, &sSrcExtent, sizeof(sSrcExtent) );
- sSrcExtent.minx = floor(sSrcExtent.minx-1.0);
- sSrcExtent.maxx = ceil (sSrcExtent.maxx+1.0);
- sSrcExtent.miny = floor(sSrcExtent.miny-1.0);
- sSrcExtent.maxy = ceil (sSrcExtent.maxy+1.0);
+ if( bAddPixelMargin )
+ {
+ sSrcExtent.minx = floor(sSrcExtent.minx-1.0);
+ sSrcExtent.maxx = ceil (sSrcExtent.maxx+1.0);
+ sSrcExtent.miny = floor(sSrcExtent.miny-1.0);
+ sSrcExtent.maxy = ceil (sSrcExtent.maxy+1.0);
+ }
sSrcExtent.minx = MAX(0,sSrcExtent.minx);
sSrcExtent.maxx = MIN(sSrcExtent.maxx, nSrcXSize );
@@ -1453,28 +1449,12 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
if( MS_RENDERER_PLUGIN(sDummyMap.outputformat) ) {
assert(rb);
msInitializeRendererVTable(sDummyMap.outputformat);
-#ifdef USE_GD
- if( rb->type == MS_BUFFER_GD ) {
- assert( !gdImageTrueColor( rb->data.gd_img ) );
- sDummyMap.outputformat->transparent = MS_TRUE;
- sDummyMap.imagecolor.red = 117;
- sDummyMap.imagecolor.green = 17;
- sDummyMap.imagecolor.blue = 191;
- }
- /* -------------------------------------------------------------------- */
- /* If we are working in RGB mode ensure we produce an RGBA */
- /* image so the transparency can be preserved. */
- /* -------------------------------------------------------------------- */
- else
-#endif
- {
- assert( sDummyMap.outputformat->imagemode == MS_IMAGEMODE_RGB
- || sDummyMap.outputformat->imagemode == MS_IMAGEMODE_RGBA );
+ assert( sDummyMap.outputformat->imagemode == MS_IMAGEMODE_RGB
+ || sDummyMap.outputformat->imagemode == MS_IMAGEMODE_RGBA );
- sDummyMap.outputformat->transparent = MS_TRUE;
- sDummyMap.outputformat->imagemode = MS_IMAGEMODE_RGBA;
- MS_INIT_COLOR(sDummyMap.imagecolor,-1,-1,-1,255);
- }
+ sDummyMap.outputformat->transparent = MS_TRUE;
+ sDummyMap.outputformat->imagemode = MS_IMAGEMODE_RGBA;
+ MS_INIT_COLOR(sDummyMap.imagecolor,-1,-1,-1,255);
}
/* -------------------------------------------------------------------- */
@@ -1492,9 +1472,13 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
psrc_rb = &src_rb;
memset( psrc_rb, 0, sizeof(rasterBufferObj) );
if( srcImage->format->vtable->supports_pixel_buffer ) {
- srcImage->format->vtable->getRasterBufferHandle( srcImage, psrc_rb );
+ if(UNLIKELY(MS_FAILURE == srcImage->format->vtable->getRasterBufferHandle( srcImage, psrc_rb ))) {
+ return -1;
+ }
} else {
- srcImage->format->vtable->initializeRasterBuffer(psrc_rb,nLoadImgXSize, nLoadImgYSize,MS_IMAGEMODE_RGBA);
+ if(UNLIKELY(MS_FAILURE == srcImage->format->vtable->initializeRasterBuffer(psrc_rb,nLoadImgXSize, nLoadImgYSize,MS_IMAGEMODE_RGBA))) {
+ return -1;
+ }
}
}
@@ -1525,29 +1509,6 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
}
}
-#ifdef USE_GD
- /* -------------------------------------------------------------------- */
- /* Do we need to generate a colormap remapping, potentially */
- /* allocating new colors on the destination color map? */
- /* -------------------------------------------------------------------- */
- if( psrc_rb && psrc_rb->type == MS_BUFFER_GD ) {
- int iColor, nColorCount;
-
- anCMap[0] = -1; /* color zero is always transparent */
-
- nColorCount = gdImageColorsTotal( psrc_rb->data.gd_img );
- for( iColor = 1; iColor < nColorCount; iColor++ ) {
- anCMap[iColor] =
- msAddColorGD( map, rb->data.gd_img, 0,
- gdImageRed( psrc_rb->data.gd_img, iColor ),
- gdImageGreen( psrc_rb->data.gd_img, iColor ),
- gdImageBlue( psrc_rb->data.gd_img, iColor ) );
- }
- for( iColor = nColorCount; iColor < 256; iColor++ )
- anCMap[iColor] = -1;
- }
-#endif
-
/* -------------------------------------------------------------------- */
/* Setup transformations between our source image, and the */
/* target map image. */
diff --git a/mapscale.c b/mapscale.c
index 2e1d705..0862900 100644
--- a/mapscale.c
+++ b/mapscale.c
@@ -147,7 +147,6 @@ double msInchesPerUnit(int units, double center_lat)
#define X_STEP_SIZE 5
-/* TODO : the will be msDrawScalebarGD */
imageObj *msDrawScalebar(mapObj *map)
{
int status;
@@ -164,9 +163,11 @@ imageObj *msDrawScalebar(mapObj *map)
shapeObj shape;
lineObj line;
pointObj points[5];
+ textSymbolObj ts;
rendererVTableObj *renderer;
strokeStyle.patternlength=0;
+ initTextSymbol(&ts);
if(map->units == -1) {
msSetError(MS_MISCERR, "Map units not set.", "msDrawScalebar()");
@@ -178,13 +179,16 @@ imageObj *msDrawScalebar(mapObj *map)
msSetError(MS_MISCERR, "Outputformat not supported for scalebar", "msDrawScalebar()");
return(NULL);
}
+
+ msPopulateTextSymbolForLabelAndString(&ts,&map->scalebar.label,msStrdup("0123456789"),1.0,map->resolution/map->defresolution, 0);
/*
* A string containing the ten decimal digits is rendered to compute an average cell size
* for each number, which is used later to place labels on the scalebar.
*/
+
- if(msGetLabelSize(map,&map->scalebar.label,"0123456789",map->scalebar.label.size,&r,NULL) != MS_SUCCESS) {
+ if(msGetTextSymbolSize(map,&ts,&r) != MS_SUCCESS) {
return NULL;
}
fontWidth = (r.maxx-r.minx)/10.0;
@@ -222,6 +226,7 @@ imageObj *msDrawScalebar(mapObj *map)
}
image = msImageCreate(map->scalebar.width, sy, format,
map->web.imagepath, map->web.imageurl, map->resolution, map->defresolution, &map->scalebar.imagecolor);
+ image->map = map;
/* drop this reference to output format */
msApplyOutputFormat( &format, NULL,
@@ -267,18 +272,30 @@ imageObj *msDrawScalebar(mapObj *map)
points[1].x = points[2].x = ox + (j+1)*isx + 0.5;
points[2].y = points[3].y = oy + map->scalebar.height + 0.5;
if(state == 1 && MS_VALID_COLOR(map->scalebar.color))
- renderer->renderPolygon(image,&shape,&map->scalebar.color);
+ status = renderer->renderPolygon(image,&shape,&map->scalebar.color);
else if(MS_VALID_COLOR(map->scalebar.backgroundcolor))
- renderer->renderPolygon(image,&shape,&map->scalebar.backgroundcolor);
+ status = renderer->renderPolygon(image,&shape,&map->scalebar.backgroundcolor);
- if(strokeStyle.color)
- renderer->renderLine(image,&shape,&strokeStyle);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
+
+ if(strokeStyle.color) {
+ status = renderer->renderLine(image,&shape,&strokeStyle);
+
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
+ }
sprintf(label, "%g", j*i);
map->scalebar.label.position = MS_CC;
p.x = ox + j*isx; /* + MS_NINT(fontPtr->w/2); */
p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontHeight);
- msDrawLabel(map,image,p,label,&map->scalebar.label,1.0);
+ status = msDrawLabel(map,image,p,msStrdup(label),&map->scalebar.label,1.0);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
state = -state;
}
sprintf(label, "%g", j*i);
@@ -287,8 +304,10 @@ imageObj *msDrawScalebar(mapObj *map)
map->scalebar.label.position = MS_CR;
p.x = ox; /* + MS_NINT(fontPtr->w/2); */
p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontHeight);
- msDrawLabel(map,image,p,label,&map->scalebar.label,1.0);
-
+ status = msDrawLabel(map,image,p,msStrdup(label),&map->scalebar.label,1.0);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
break;
}
case(1): {
@@ -304,14 +323,20 @@ imageObj *msDrawScalebar(mapObj *map)
points[0].y = points[1].y = oy;
points[0].x = ox;
points[1].x = ox + isx*map->scalebar.intervals;
- renderer->renderLine(image,&shape,&strokeStyle);
+ status = renderer->renderLine(image,&shape,&strokeStyle);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
points[0].y = oy;
points[1].y = oy + map->scalebar.height;
p.y = oy + map->scalebar.height + MS_NINT(VSPACING*fontHeight);
for(j=0; j<=map->scalebar.intervals; j++) {
points[0].x = points[1].x = ox + j*isx;
- renderer->renderLine(image,&shape,&strokeStyle);
+ status = renderer->renderLine(image,&shape,&strokeStyle);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
sprintf(label, "%g", j*i);
if(j!=map->scalebar.intervals) {
@@ -322,7 +347,10 @@ imageObj *msDrawScalebar(mapObj *map)
map->scalebar.label.position = MS_CR;
p.x = ox + j*isx - MS_NINT((strlen(label)*fontWidth)/2.0);
}
- msDrawLabel(map,image,p,label,&map->scalebar.label,1.0);
+ status = msDrawLabel(map,image,p,msStrdup(label),&map->scalebar.label,1.0);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto scale_cleanup;
+ }
}
break;
}
@@ -330,13 +358,20 @@ imageObj *msDrawScalebar(mapObj *map)
msSetError(MS_MISCERR, "Unsupported scalebar style.", "msDrawScalebar()");
return(NULL);
}
+
+scale_cleanup:
+ freeTextSymbol(&ts);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ msFreeImage(image);
+ return NULL;
+ }
return(image);
}
int msEmbedScalebar(mapObj *map, imageObj *img)
{
- int l,index,s;
+ int l,index,s,status = MS_SUCCESS;
pointObj point;
imageObj *image = NULL;
rendererVTableObj *renderer;
@@ -442,7 +477,10 @@ int msEmbedScalebar(mapObj *map, imageObj *img)
if(map->scalebar.postlabelcache) { /* add it directly to the image */
if(msMaybeAllocateClassStyle(GET_LAYER(map, l)->class[0], 0)==MS_FAILURE) return MS_FAILURE;
GET_LAYER(map, l)->class[0]->styles[0]->symbol = s;
- msDrawMarkerSymbol(&map->symbolset, img, &point, GET_LAYER(map, l)->class[0]->styles[0], 1.0);
+ status = msDrawMarkerSymbol(map, img, &point, GET_LAYER(map, l)->class[0]->styles[0], 1.0);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto embed_cleanup;
+ }
} else {
if(!GET_LAYER(map, l)->class[0]->labels) {
if(msGrowClassLabels(GET_LAYER(map, l)->class[0]) == NULL) return MS_FAILURE;
@@ -451,7 +489,6 @@ int msEmbedScalebar(mapObj *map, imageObj *img)
GET_LAYER(map, l)->class[0]->labels[0]->force = MS_TRUE;
GET_LAYER(map, l)->class[0]->labels[0]->size = MS_MEDIUM; /* must set a size to have a valid label definition */
GET_LAYER(map, l)->class[0]->labels[0]->priority = MS_MAX_LABEL_PRIORITY;
- GET_LAYER(map, l)->class[0]->labels[0]->annotext = NULL;
}
if(GET_LAYER(map, l)->class[0]->labels[0]->numstyles == 0) {
if(msGrowLabelStyles(GET_LAYER(map,l)->class[0]->labels[0]) == NULL)
@@ -461,16 +498,18 @@ int msEmbedScalebar(mapObj *map, imageObj *img)
GET_LAYER(map,l)->class[0]->labels[0]->styles[0]->_geomtransform.type = MS_GEOMTRANSFORM_LABELPOINT;
}
GET_LAYER(map,l)->class[0]->labels[0]->styles[0]->symbol = s;
- msAddLabel(map, GET_LAYER(map, l)->class[0]->labels[0], l, 0, NULL, &point, NULL, -1);
+ status = msAddLabel(map, img, GET_LAYER(map, l)->class[0]->labels[0], l, 0, NULL, &point, -1, NULL);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ goto embed_cleanup;
+ }
}
-
+embed_cleanup:
/* Mark layer as deleted so that it doesn't interfere with html legends or with saving maps */
GET_LAYER(map, l)->status = MS_DELETE;
-
msFreeImage( image );
- return(0);
+ return status;
}
/************************************************************************/
diff --git a/mapscript/csharp/CMakeLists.txt b/mapscript/csharp/CMakeLists.txt
index a1f03bb..27a28b9 100644
--- a/mapscript/csharp/CMakeLists.txt
+++ b/mapscript/csharp/CMakeLists.txt
@@ -18,9 +18,9 @@ if (WIN32)
endif(CMAKE_CL_64)
set (KEYFILE_SPEC /keyfile:${PROJECT_SOURCE_DIR}\\mapscript\\csharp\\mapscript.snk)
endif (NOT MSVC71)
- if (MSVC10)
+ if (MSVC_VERSION GREATER 1500)
set(PLATFORM_TARGET ${PLATFORM_TARGET} /define:CLR4)
- endif (MSVC10)
+ endif (MSVC_VERSION GREATER 1500)
endif(WIN32)
MARK_AS_ADVANCED(CSHARP_COMPILER)
diff --git a/mapscript/java/.gitignore b/mapscript/java/.gitignore
deleted file mode 100644
index 6b468b6..0000000
--- a/mapscript/java/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.class
diff --git a/mapscript/java/tests/threadtest/MapThread.java b/mapscript/java/tests/threadtest/MapThread.java
index 2bbdf13..19515b4 100644
--- a/mapscript/java/tests/threadtest/MapThread.java
+++ b/mapscript/java/tests/threadtest/MapThread.java
@@ -73,7 +73,7 @@ public class MapThread extends Thread {
classObj clazz=new classObj(bufferLayer);
clazz.setName("Buffer class");
styleObj style=new styleObj(clazz);
- colorObj green=new colorObj(0,254,0,-4);
+ colorObj green=new colorObj(0,254,0,255);
//green.setRGB(0,254,0);
style.setColor(green);
bufferLayer.addFeature(buffer);
diff --git a/mapscript/perl/.gitignore b/mapscript/perl/.gitignore
deleted file mode 100644
index 494b952..0000000
--- a/mapscript/perl/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-blib/*
-mapscript.bs
-mapscript.pm
-mapscript_wrap.c
-pm_to_blib
diff --git a/mapscript/perl/examples/wxs.pl b/mapscript/perl/examples/wxs.pl
index b94c2b1..056401e 100755
--- a/mapscript/perl/examples/wxs.pl
+++ b/mapscript/perl/examples/wxs.pl
@@ -4,7 +4,7 @@
#
# Project: MapServer
# Purpose: MapScript WxS example
-# Author: Tom Kralidis (tomkralidis at hotmail.com)
+# Author: Tom Kralidis (tomkralidis at gmail.com)
#
##############################################################################
# Copyright (c) 2007, Tom Kralidis
diff --git a/mapscript/php/CMakeLists.txt b/mapscript/php/CMakeLists.txt
index ab4578a..89092cc 100644
--- a/mapscript/php/CMakeLists.txt
+++ b/mapscript/php/CMakeLists.txt
@@ -20,7 +20,7 @@ add_library(php_mapscript MODULE
mapscript_error.c color.c rect.c hashtable.c web.c grid.c error.c
referencemap.c querymap.c outputformat.c scalebar.c label.c legend.c
symbol.c style.c image.c class.c projection.c line.c shape.c shapefile.c
- point.c labelcache.c labelleader.c labelcachemember.c result.c owsrequest.c cluster.c
+ point.c labelleader.c result.c owsrequest.c cluster.c
layer.c map.c php_mapscript_util.c php_mapscript.c mapscript_i.c
)
diff --git a/mapscript/php/class.c b/mapscript/php/class.c
index c0bc0a5..48f2f81 100644
--- a/mapscript/php/class.c
+++ b/mapscript/php/class.c
@@ -181,7 +181,6 @@ PHP_METHOD(classObj, __get)
IF_GET_STRING("name", php_class->class->name)
else IF_GET_STRING("title", php_class->class->title)
- else IF_GET_LONG("type", php_class->class->type)
else IF_GET_LONG("status", php_class->class->status)
else IF_GET_DOUBLE("minscaledenom", php_class->class->minscaledenom)
else IF_GET_DOUBLE("maxscaledenom", php_class->class->maxscaledenom)
@@ -192,7 +191,7 @@ PHP_METHOD(classObj, __get)
else IF_GET_STRING("group", php_class->class->group)
else IF_GET_LONG("numstyles", php_class->class->numstyles)
else IF_GET_OBJECT("metadata", mapscript_ce_hashtable, php_class->metadata, &php_class->class->metadata)
- else IF_GET_OBJECT("leader", mapscript_ce_labelleader, php_class->leader, &php_class->class->leader)
+ else IF_GET_OBJECT("leader", mapscript_ce_labelleader, php_class->leader, php_class->class->leader)
else {
mapscript_throw_exception("Property '%s' does not exist in this object." TSRMLS_CC, property);
}
@@ -223,7 +222,6 @@ PHP_METHOD(classObj, __set)
} else
IF_SET_STRING("name", php_class->class->name, value)
else IF_SET_STRING("title", php_class->class->title, value)
- else IF_SET_LONG("type", php_class->class->type, value)
else IF_SET_LONG("status", php_class->class->status, value)
else IF_SET_DOUBLE("minscaledenom", php_class->class->minscaledenom, value)
else IF_SET_DOUBLE("maxscaledenom", php_class->class->maxscaledenom, value)
diff --git a/mapscript/php/cluster.c b/mapscript/php/cluster.c
index 9250023..1031c02 100644
--- a/mapscript/php/cluster.c
+++ b/mapscript/php/cluster.c
@@ -163,7 +163,7 @@ PHP_METHOD(clusterObj, convertToString)
php_cluster = (php_cluster_object *) zend_object_store_get_object(zobj TSRMLS_CC);
- value = classObj_convertToString(php_cluster->cluster);
+ value = clusterObj_convertToString(php_cluster->cluster);
if (value == NULL)
RETURN_STRING("", 1);
diff --git a/mapscript/php/image.c b/mapscript/php/image.c
index 9b8e4fc..b89fb96 100644
--- a/mapscript/php/image.c
+++ b/mapscript/php/image.c
@@ -206,13 +206,6 @@ PHP_METHOD(imageObj, pasteImage)
return;
}
-#ifdef undef //USE_AGG
- if( MS_RENDERER_AGG(php_imageSrc->image->format))
- msAlphaAGG2GD(php_imageSrc->image);
- if( MS_RENDERER_AGG(php_image->image->format))
- msAlphaAGG2GD(php_image->image);
-#endif
-
renderer = MS_IMAGE_RENDERER(php_image->image);
memset(&rb,0,sizeof(rasterBufferObj));
diff --git a/mapscript/php/label.c b/mapscript/php/label.c
index c9c766b..0df54ec 100644
--- a/mapscript/php/label.c
+++ b/mapscript/php/label.c
@@ -134,7 +134,7 @@ PHP_METHOD(labelObj, __get)
IF_GET_STRING("font", php_label->label->font)
else IF_GET_STRING("encoding", php_label->label->encoding)
- else IF_GET_LONG("type", php_label->label->type)
+ else IF_GET_LONG("type", MS_TRUETYPE)
else IF_GET_LONG("shadowsizex", php_label->label->shadowsizex)
else IF_GET_LONG("shadowsizey", php_label->label->shadowsizey)
else IF_GET_DOUBLE("size", php_label->label->size)
@@ -148,7 +148,6 @@ PHP_METHOD(labelObj, __get)
else IF_GET_DOUBLE("angle", php_label->label->angle)
else IF_GET_LONG("anglemode", php_label->label->anglemode)
else IF_GET_LONG("buffer", php_label->label->buffer)
- else IF_GET_LONG("antialias", php_label->label->antialias)
else IF_GET_LONG("wrap", php_label->label->wrap)
else IF_GET_LONG("minfeaturesize", php_label->label->minfeaturesize)
else IF_GET_LONG("autominfeaturesize", php_label->label->autominfeaturesize)
@@ -164,7 +163,7 @@ PHP_METHOD(labelObj, __get)
else IF_GET_LONG("maxoverlapangle", php_label->label->maxoverlapangle)
else IF_GET_LONG("priority", php_label->label->priority)
else IF_GET_OBJECT("color", mapscript_ce_color, php_label->color, &php_label->label->color)
- else IF_GET_OBJECT("leader", mapscript_ce_labelleader, php_label->leader, &php_label->label->leader)
+ else IF_GET_OBJECT("leader", mapscript_ce_labelleader, php_label->leader, php_label->label->leader)
else IF_GET_OBJECT("outlinecolor", mapscript_ce_color, php_label->outlinecolor, &php_label->label->outlinecolor)
else IF_GET_OBJECT("shadowcolor", mapscript_ce_color, php_label->shadowcolor, &php_label->label->shadowcolor)
else {
@@ -176,6 +175,7 @@ PHP_METHOD(labelObj, __set)
{
char *property;
long property_len = 0;
+ long unused;
zval *value;
zval *zobj = getThis();
php_label_object *php_label;
@@ -192,7 +192,7 @@ PHP_METHOD(labelObj, __set)
IF_SET_STRING("font", php_label->label->font, value)
else IF_SET_STRING("encoding", php_label->label->encoding, value)
- else IF_SET_LONG("type", php_label->label->type, value)
+ else IF_SET_LONG("type", unused, value)
else IF_SET_LONG("shadowsizex", php_label->label->shadowsizex, value)
else IF_SET_LONG("shadowsizey", php_label->label->shadowsizey, value)
else IF_SET_DOUBLE("size", php_label->label->size, value)
@@ -204,7 +204,6 @@ PHP_METHOD(labelObj, __set)
else IF_SET_DOUBLE("angle", php_label->label->angle, value)
else IF_SET_LONG("anglemode", php_label->label->anglemode, value)
else IF_SET_LONG("buffer", php_label->label->buffer, value)
- else IF_SET_LONG("antialias", php_label->label->antialias, value)
else IF_SET_BYTE("wrap", php_label->label->wrap, value)
else IF_SET_LONG("minfeaturesize", php_label->label->minfeaturesize, value)
else IF_SET_LONG("autominfeaturesize", php_label->label->autominfeaturesize, value)
diff --git a/mapscript/php/labelcachemember.c b/mapscript/php/labelcachemember.c
index 83eae0e..e340106 100644
--- a/mapscript/php/labelcachemember.c
+++ b/mapscript/php/labelcachemember.c
@@ -29,6 +29,7 @@
* DEALINGS IN THE SOFTWARE.
**********************************************************************/
+#ifdef what_the_fxxx_is_this_for
#include "php_mapscript.h"
zend_class_entry *mapscript_ce_labelcachemember;
@@ -218,4 +219,5 @@ PHP_MINIT_FUNCTION(labelcachemember)
return SUCCESS;
}
+#endif
diff --git a/mapscript/php/layer.c b/mapscript/php/layer.c
index 03fa8d1..0b4a743 100644
--- a/mapscript/php/layer.c
+++ b/mapscript/php/layer.c
@@ -297,7 +297,6 @@ PHP_METHOD(layerObj, __get)
else IF_GET_LONG("minfeaturesize", php_layer->layer->minfeaturesize)
else IF_GET_LONG("maxfeatures", php_layer->layer->maxfeatures)
else IF_GET_LONG("startindex", php_layer->layer->startindex)
- else IF_GET_LONG("annotate", php_layer->layer->annotate)
else IF_GET_LONG("transform", php_layer->layer->transform)
else IF_GET_LONG("labelcache", php_layer->layer->labelcache)
else IF_GET_LONG("postlabelcache", php_layer->layer->postlabelcache)
@@ -310,7 +309,7 @@ PHP_METHOD(layerObj, __get)
else IF_GET_LONG("connectiontype", php_layer->layer->connectiontype)
else IF_GET_STRING("filteritem", php_layer->layer->filteritem)
else IF_GET_STRING("template", php_layer->layer->template)
- else IF_GET_LONG("opacity", php_layer->layer->opacity)
+ else IF_GET_LONG("opacity", (php_layer->layer->compositer?php_layer->layer->compositer->opacity:100))
else IF_GET_STRING("styleitem", php_layer->layer->styleitem)
else IF_GET_LONG("numitems", php_layer->layer->numitems)
else IF_GET_LONG("numjoins", php_layer->layer->numjoins)
@@ -351,6 +350,8 @@ PHP_METHOD(layerObj, __set)
if(Z_TYPE_P(value)==IS_NULL && !strcmp(property,"template")) {
msFree(php_layer->layer->template);
php_layer->layer->template = NULL;
+ } else if(!strcmp(property,"opacity")) {
+ msSetLayerOpacity(php_layer->layer,Z_LVAL_P(value));
} else
IF_SET_LONG("status", php_layer->layer->status, value)
else IF_SET_LONG("debug", php_layer->layer->debug, value)
@@ -376,7 +377,6 @@ PHP_METHOD(layerObj, __set)
else IF_SET_STRING("mask", php_layer->layer->mask, value)
else IF_SET_LONG("maxfeatures", php_layer->layer->maxfeatures, value)
else IF_SET_LONG("startindex", php_layer->layer->startindex, value)
- else IF_SET_LONG("annotate", php_layer->layer->annotate, value)
else IF_SET_LONG("transform", php_layer->layer->transform, value)
else IF_SET_LONG("labelcache", php_layer->layer->labelcache, value)
else IF_SET_LONG("postlabelcache", php_layer->layer->postlabelcache, value)
@@ -388,7 +388,6 @@ PHP_METHOD(layerObj, __set)
else IF_SET_STRING("connection", php_layer->layer->connection, value)
else IF_SET_STRING("filteritem", php_layer->layer->filteritem, value)
else IF_SET_STRING("template", php_layer->layer->template, value)
- else IF_SET_LONG("opacity", php_layer->layer->opacity, value)
else IF_SET_STRING("styleitem", php_layer->layer->styleitem, value)
else IF_SET_LONG("num_processing", php_layer->layer->numprocessing, value)
else IF_SET_STRING("requires", php_layer->layer->requires, value)
@@ -1619,7 +1618,7 @@ PHP_METHOD(layerObj, executeWFSGetFeature)
/* {{{ proto int applySLD(string sldxml, string namedlayer)
Apply the SLD document to the layer object. The matching between the sld
- document and the layer will be done using the layer’s name. If a
+ document and the layer will be done using the layer's name. If a
namedlayer argument is passed (argument is optional), the NamedLayer in
the sld that matchs it will be used to style the layer. */
PHP_METHOD(layerObj, applySLD)
@@ -1652,7 +1651,7 @@ PHP_METHOD(layerObj, applySLD)
/* {{{ proto int applySLDURL(string sldurl, string namedlayer)
Apply the SLD document pointed by the URL to the layer object. The
matching between the sld document and the layer will be done using the
- layer’s name. If a namedlayer argument is passed (argument is optional),
+ layer's name. If a namedlayer argument is passed (argument is optional),
the NamedLayer in the sld that matchs it will be used to style the
layer. */
PHP_METHOD(layerObj, applySLDURL)
diff --git a/mapscript/php/map.c b/mapscript/php/map.c
index 0340cf9..6943d8d 100644
--- a/mapscript/php/map.c
+++ b/mapscript/php/map.c
@@ -398,7 +398,9 @@ PHP_METHOD(mapObj, __get)
else IF_GET_OBJECT("scalebar", mapscript_ce_scalebar, php_map->scalebar, &php_map->map->scalebar)
else IF_GET_OBJECT("legend", mapscript_ce_legend, php_map->legend, &php_map->map->legend)
else IF_GET_OBJECT("querymap", mapscript_ce_querymap, php_map->querymap, &php_map->map->querymap)
+#ifdef disabled
else IF_GET_OBJECT("labelcache", mapscript_ce_labelcache, php_map->labelcache, &php_map->map->labelcache)
+#endif
else IF_GET_OBJECT("projection", mapscript_ce_projection, php_map->projection, &php_map->map->projection)
else IF_GET_OBJECT("metadata", mapscript_ce_hashtable, php_map->metadata, &php_map->map->web.metadata)
else {
@@ -447,7 +449,9 @@ PHP_METHOD(mapObj, __set)
(STRING_EQUAL("scalebar", property)) ||
(STRING_EQUAL("legend", property)) ||
(STRING_EQUAL("querymap", property)) ||
+#ifdef disabled
(STRING_EQUAL("labelcache", property)) ||
+#endif
(STRING_EQUAL("projection", property)) ||
(STRING_EQUAL("metadata", property)) ||
(STRING_EQUAL("configoptions", property)) ||
@@ -3263,8 +3267,9 @@ PHP_METHOD(mapObj, removeLayer)
}
/* }}} */
+#ifdef disabled
/* {{{ proto int map.getLabel().
- Return the next label from the map’s labelcache, allowing iteration
+ Return the next label from the map���s labelcache, allowing iteration
over labels. Return NULL when the labelcache is empty. */
PHP_METHOD(mapObj, getLabel)
{
@@ -3294,6 +3299,7 @@ PHP_METHOD(mapObj, getLabel)
mapscript_create_labelcachemember(labelCacheMember, parent, return_value TSRMLS_CC);
}
/* }}} */
+#endif
/* {{{ proto string convertToString()
Convert the map object to string. */
@@ -3393,7 +3399,9 @@ PHP_METHOD(mapObj, free)
MAPSCRIPT_DELREF(php_map->scalebar);
MAPSCRIPT_DELREF(php_map->legend);
MAPSCRIPT_DELREF(php_map->querymap);
+#ifdef disabled
MAPSCRIPT_DELREF(php_map->labelcache);
+#endif
MAPSCRIPT_DELREF(php_map->projection);
MAPSCRIPT_DELREF(php_map->metadata);
}
@@ -3474,7 +3482,9 @@ zend_function_entry map_functions[] = {
PHP_ME(mapObj, owsDispatch, map_owsDispatch_args, ZEND_ACC_PUBLIC)
PHP_ME(mapObj, insertLayer, map_insertLayer_args, ZEND_ACC_PUBLIC)
PHP_ME(mapObj, removeLayer, map_removeLayer_args, ZEND_ACC_PUBLIC)
+#ifdef disabled
PHP_ME(mapObj, getLabel, map_getLabel_args, ZEND_ACC_PUBLIC)
+#endif
PHP_ME(mapObj, convertToString, NULL, ZEND_ACC_PUBLIC)
PHP_ME(mapObj, getLatLongExtent, NULL, ZEND_ACC_PUBLIC)
PHP_ME(mapObj, free, NULL, ZEND_ACC_PUBLIC) {
@@ -3578,7 +3588,9 @@ static void mapscript_map_object_destroy(void *object TSRMLS_DC)
MAPSCRIPT_DELREF(php_map->scalebar);
MAPSCRIPT_DELREF(php_map->legend);
MAPSCRIPT_DELREF(php_map->querymap);
+#ifdef disabled
MAPSCRIPT_DELREF(php_map->labelcache);
+#endif
MAPSCRIPT_DELREF(php_map->projection);
MAPSCRIPT_DELREF(php_map->metadata);
MAPSCRIPT_DELREF(php_map->configoptions);
@@ -3609,7 +3621,9 @@ static zend_object_value mapscript_map_object_new_ex(zend_class_entry *ce, php_m
php_map->scalebar = NULL;
php_map->legend = NULL;
php_map->querymap = NULL;
+#ifdef disabled
php_map->labelcache = NULL;
+#endif
php_map->projection = NULL;
php_map->metadata = NULL;
php_map->configoptions = NULL;
diff --git a/mapscript/php/mapscript_i.c b/mapscript/php/mapscript_i.c
index c8d293b..48f94ba 100644
--- a/mapscript/php/mapscript_i.c
+++ b/mapscript/php/mapscript_i.c
@@ -169,12 +169,13 @@ int mapObj_embedLegend(mapObj* self, imageObj *img)
int mapObj_drawLabelCache(mapObj* self, imageObj *img)
{
- return msDrawLabelCache(img, self);
+ return msDrawLabelCache(self, img);
}
labelCacheMemberObj* mapObj_getLabel(mapObj* self, int i)
{
- return msGetLabelCacheMember(&(self->labelcache), i);
+ msSetError(MS_MISCERR, "LabelCacheMember access is not available", "getLabel()");
+ return NULL;
}
int mapObj_queryByPoint(mapObj* self, pointObj *point, int mode, double buffer)
@@ -211,13 +212,10 @@ int mapObj_queryByFilter(mapObj* self, char *string)
msInitQuery(&(self->query));
self->query.type = MS_QUERY_BY_FILTER;
+ self->query.mode = MS_QUERY_MULTIPLE;
- self->query.filter = (expressionObj *) malloc(sizeof(expressionObj));
- self->query.filter->compiled = MS_FALSE;
- self->query.filter->flags = 0;
- self->query.filter->tokens = self->query.filter->curtoken = NULL;
- self->query.filter->string = strdup(string);
- self->query.filter->type = 2000; /* MS_EXPRESSION: lot's of conflicts in mapfile.h */
+ self->query.filter.string = strdup(string);
+ self->query.filter.type = MS_EXPRESSION;
self->query.rect = self->extent;
@@ -602,17 +600,22 @@ int layerObj_queryByAttributes(layerObj *self, mapObj *map, char *qitem, char *q
int retval;
msInitQuery(&(map->query));
-
- map->query.type = MS_QUERY_BY_ATTRIBUTE;
+
+ map->query.type = MS_QUERY_BY_FILTER;
map->query.mode = mode;
- if(qitem) map->query.item = strdup(qitem);
- if(qstring) map->query.str = strdup(qstring);
+
+ if(qitem) map->query.filteritem = msStrdup(qitem);
+ if(qstring) {
+ msInitExpression(&map->query.filter);
+ msLoadExpressionString(&map->query.filter, qstring);
+ }
+
map->query.layer = self->index;
map->query.rect = map->extent;
status = self->status;
self->status = MS_ON;
- retval = msQueryByAttributes(map);
+ retval = msQueryByFilter(map);
self->status = status;
return retval;
@@ -705,13 +708,10 @@ int layerObj_queryByFilter(layerObj *self, mapObj *map, char *string)
msInitQuery(&(map->query));
map->query.type = MS_QUERY_BY_FILTER;
+ map->query.mode = MS_QUERY_MULTIPLE;
- map->query.filter = (expressionObj *) malloc(sizeof(expressionObj));
- map->query.filter->string = strdup(string);
- map->query.filter->type = 2000; /* MS_EXPRESSION: lot's of conflicts in mapfile.h */
- map->query.filter->compiled = MS_FALSE;
- map->query.filter->flags = 0;
- map->query.filter->tokens = map->query.filter->curtoken = NULL;
+ map->query.filter.string = strdup(string);
+ map->query.filter.type = MS_EXPRESSION;
map->query.layer = self->index;
map->query.rect = map->extent;
@@ -749,7 +749,7 @@ int layerObj_queryByIndex(layerObj *self, mapObj *map, int tileindex, int shapei
int layerObj_setFilter(layerObj *self, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->filter);
+ msFreeExpression(&self->filter);
return MS_SUCCESS;
} else return msLoadExpressionString(&self->filter, string);
}
@@ -927,7 +927,7 @@ int labelObj_deleteStyle(labelObj *self, int index)
int labelObj_setExpression(labelObj *self, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->expression);
+ msFreeExpression(&self->expression);
return MS_SUCCESS;
} else return msLoadExpressionString(&self->expression, string);
}
@@ -940,7 +940,7 @@ char *labelObj_getExpressionString(labelObj *self)
int labelObj_setText(labelObj *self, layerObj *layer, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->text);
+ msFreeExpression(&self->text);
return MS_SUCCESS;
}
return msLoadExpressionString(&self->text, string);
@@ -1035,7 +1035,6 @@ classObj *classObj_new(layerObj *layer, classObj *class)
layer->class[layer->numclasses]->layer = layer;
}
- layer->class[layer->numclasses]->type = layer->type;
layer->class[layer->numclasses]->layer = layer;
layer->numclasses++;
@@ -1079,7 +1078,7 @@ void classObj_destroy(classObj *self)
int classObj_setExpression(classObj *self, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->expression);
+ msFreeExpression(&self->expression);
return MS_SUCCESS;
} else return msLoadExpressionString(&self->expression, string);
}
@@ -1092,7 +1091,7 @@ char *classObj_getExpressionString(classObj *self)
int classObj_setText(classObj *self, layerObj *layer, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->text);
+ msFreeExpression(&self->text);
return MS_SUCCESS;
}
return msLoadExpressionString(&self->text, string);
@@ -1144,8 +1143,6 @@ classObj *classObj_clone(classObj *class, layerObj *layer)
initClass(dstClass);
msCopyClass(dstClass, class, layer);
- dstClass->type = layer->type;
-
return dstClass;
}
@@ -1554,7 +1551,6 @@ int rectObj_draw(rectObj *self, mapObj *map, layerObj *layer,
if(text && layer->class[classindex]->numlabels > 0) {
shape.text = strdup(text);
- msShapeGetAnnotation(layer,&shape);
}
msDrawShape(map, layer, &shape, img, -1, MS_DRAWMODE_FEATURES|MS_DRAWMODE_LABELS);
@@ -1963,7 +1959,7 @@ char *clusterObj_convertToString(clusterObj *self)
int clusterObj_setGroup(clusterObj *self, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->group);
+ msFreeExpression(&self->group);
return MS_SUCCESS;
} else return msLoadExpressionString(&self->group, string);
}
@@ -1976,7 +1972,7 @@ char *clusterObj_getGroupString(clusterObj *self)
int clusterObj_setFilter(clusterObj *self, char *string)
{
if (!string || strlen(string) == 0) {
- freeExpression(&self->filter);
+ msFreeExpression(&self->filter);
return MS_SUCCESS;
} else return msLoadExpressionString(&self->filter, string);
}
diff --git a/mapscript/php/owsrequest.c b/mapscript/php/owsrequest.c
index 428c8dd..f01d361 100644
--- a/mapscript/php/owsrequest.c
+++ b/mapscript/php/owsrequest.c
@@ -32,6 +32,9 @@
#include "php_mapscript.h"
#include "SAPI.h"
#include "php_variables.h"
+#if PHP_VERSION_ID >= 50600
+#include "php_streams.h"
+#endif
char *owsrequest_getenv(const char *name, void *thread_context);
@@ -193,9 +196,29 @@ PHP_METHOD(OWSRequestObj, loadParams)
cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv, NULL, 0, thread_context);
}
} else {
+#if PHP_VERSION_ID >= 50600
+ php_stream *s = php_stream_temp_new();
+ php_stream *input = php_stream_open_wrapper("php://input", "r", 0, NULL);
+
+ /* php://input does not support stat */
+ php_stream_copy_to_stream_ex(input, s, -1, NULL);
+ php_stream_close(input);
+
+ php_stream_rewind(s);
+
+ char *raw_post_data = NULL;
+ long raw_post_data_length = 0;
+
+ raw_post_data_length = php_stream_copy_to_mem(s, raw_post_data, -1, 0);
+
+ cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv,
+ raw_post_data,
+ raw_post_data_length, thread_context);
+#else
cgirequestObj_loadParams(php_owsrequest->cgirequest, owsrequest_getenv,
SG(request_info).raw_post_data,
SG(request_info).raw_post_data_length, thread_context);
+#endif
}
}
diff --git a/mapscript/php/php_mapscript.c b/mapscript/php/php_mapscript.c
index d0599dd..b83f00d 100644
--- a/mapscript/php/php_mapscript.c
+++ b/mapscript/php/php_mapscript.c
@@ -991,7 +991,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_LAYER_LINE", MS_LAYER_LINE, const_flag);
REGISTER_LONG_CONSTANT("MS_LAYER_POLYGON",MS_LAYER_POLYGON, const_flag);
REGISTER_LONG_CONSTANT("MS_LAYER_RASTER",MS_LAYER_RASTER, const_flag);
- REGISTER_LONG_CONSTANT("MS_LAYER_ANNOTATION",MS_LAYER_ANNOTATION,const_flag);
REGISTER_LONG_CONSTANT("MS_LAYER_QUERY",MS_LAYER_QUERY, const_flag);
REGISTER_LONG_CONSTANT("MS_LAYER_CIRCLE",MS_LAYER_CIRCLE, const_flag);
REGISTER_LONG_CONSTANT("MS_LAYER_TILEINDEX",MS_LAYER_TILEINDEX, const_flag);
@@ -1003,11 +1002,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_EMBED", MS_EMBED, const_flag);
REGISTER_LONG_CONSTANT("MS_DELETE", MS_DELETE, const_flag);
- //For layer transparency, allows alpha transparent pixmaps to be used
- // with RGB map images
- //#define MS_GD_ALPHA 1000
- REGISTER_LONG_CONSTANT("MS_GD_ALPHA", MS_GD_ALPHA, const_flag);
-
/* font type constants*/
REGISTER_LONG_CONSTANT("MS_TRUETYPE", MS_TRUETYPE, const_flag);
REGISTER_LONG_CONSTANT("MS_BITMAP", MS_BITMAP, const_flag);
@@ -1074,7 +1068,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_INLINE", MS_INLINE, const_flag);
REGISTER_LONG_CONSTANT("MS_SHAPEFILE", MS_SHAPEFILE, const_flag);
REGISTER_LONG_CONSTANT("MS_TILED_SHAPEFILE",MS_TILED_SHAPEFILE,const_flag);
- REGISTER_LONG_CONSTANT("MS_SDE", MS_SDE, const_flag);
REGISTER_LONG_CONSTANT("MS_OGR", MS_OGR, const_flag);
REGISTER_LONG_CONSTANT("MS_POSTGIS", MS_POSTGIS, const_flag);
REGISTER_LONG_CONSTANT("MS_WMS", MS_WMS, const_flag);
@@ -1114,7 +1107,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_REGEXERR", MS_REGEXERR, const_flag);
REGISTER_LONG_CONSTANT("MS_TTFERR", MS_TTFERR, const_flag);
REGISTER_LONG_CONSTANT("MS_DBFERR", MS_DBFERR, const_flag);
- REGISTER_LONG_CONSTANT("MS_GDERR", MS_GDERR, const_flag);
REGISTER_LONG_CONSTANT("MS_IDENTERR", MS_IDENTERR, const_flag);
REGISTER_LONG_CONSTANT("MS_EOFERR", MS_EOFERR, const_flag);
REGISTER_LONG_CONSTANT("MS_PROJERR", MS_PROJERR, const_flag);
@@ -1127,7 +1119,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_NOTFOUND", MS_NOTFOUND, const_flag);
REGISTER_LONG_CONSTANT("MS_SHPERR", MS_SHPERR, const_flag);
REGISTER_LONG_CONSTANT("MS_PARSEERR", MS_PARSEERR, const_flag);
- REGISTER_LONG_CONSTANT("MS_SDEERR", MS_SDEERR, const_flag);
REGISTER_LONG_CONSTANT("MS_OGRERR", MS_OGRERR, const_flag);
REGISTER_LONG_CONSTANT("MS_QUERYERR", MS_QUERYERR, const_flag);
REGISTER_LONG_CONSTANT("MS_WMSERR", MS_WMSERR, const_flag);
@@ -1246,7 +1237,6 @@ PHP_MINIT_FUNCTION(mapscript)
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_CAIRO_PDF", MS_RENDER_WITH_CAIRO_PDF, const_flag);
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_CAIRO_RASTER", MS_RENDER_WITH_CAIRO_RASTER, const_flag);
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_CAIRO_SVG", MS_RENDER_WITH_CAIRO_SVG, const_flag);
- REGISTER_LONG_CONSTANT("MS_RENDER_WITH_GD", MS_RENDER_WITH_GD, const_flag);
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_IMAGEMAP", MS_RENDER_WITH_IMAGEMAP, const_flag);
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_KML", MS_RENDER_WITH_KML, const_flag);
REGISTER_LONG_CONSTANT("MS_RENDER_WITH_OGL", MS_RENDER_WITH_OGL, const_flag);
@@ -1289,8 +1279,10 @@ PHP_MINIT_FUNCTION(mapscript)
PHP_MINIT(referencemap)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(class)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(projection)(INIT_FUNC_ARGS_PASSTHRU);
+#ifdef disabled
PHP_MINIT(labelcachemember)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(labelcache)(INIT_FUNC_ARGS_PASSTHRU);
+#endif
PHP_MINIT(labelleader)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(result)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(scalebar)(INIT_FUNC_ARGS_PASSTHRU);
diff --git a/mapscript/php/php_mapscript.h b/mapscript/php/php_mapscript.h
index 1d1c39a..207c674 100644
--- a/mapscript/php/php_mapscript.h
+++ b/mapscript/php/php_mapscript.h
@@ -259,11 +259,13 @@ typedef struct _php_shapefile_object {
shapefileObj *shapefile;
} php_shapefile_object;
+#ifdef disabled
typedef struct _php_labelcache_object {
zend_object std;
parent_object parent;
labelCacheObj *labelcache;
} php_labelcache_object;
+#endif
typedef struct _php_labelleader_object {
zend_object std;
@@ -271,6 +273,7 @@ typedef struct _php_labelleader_object {
labelLeaderObj *labelleader;
} php_labelleader_object;
+#ifdef disabled
typedef struct _php_labelcachemember_object {
zend_object std;
parent_object parent;
@@ -280,6 +283,7 @@ typedef struct _php_labelcachemember_object {
zval *poly; /* should be immutable */
labelCacheMemberObj *labelcachemember;
} php_labelcachemember_object;
+#endif
typedef struct _php_result_object {
zend_object std;
@@ -327,7 +331,9 @@ typedef struct _php_map_object {
zval *scalebar;
zval *legend;
zval *querymap;
+#ifdef disabled
zval *labelcache;
+#endif
zval *projection;
zval *metadata;
zval *configoptions;
@@ -363,8 +369,10 @@ PHP_MINIT_FUNCTION(error);
PHP_MINIT_FUNCTION(referencemap);
PHP_MINIT_FUNCTION(class);
PHP_MINIT_FUNCTION(projection);
+#ifdef disabled
PHP_MINIT_FUNCTION(labelcachemember);
PHP_MINIT_FUNCTION(labelcache);
+#endif
PHP_MINIT_FUNCTION(labelleader);
PHP_MINIT_FUNCTION(result);
PHP_MINIT_FUNCTION(scalebar);
@@ -436,8 +444,10 @@ extern zend_class_entry *mapscript_ce_referencemap;
extern zend_class_entry *mapscript_ce_line;
extern zend_class_entry *mapscript_ce_shape;
extern zend_class_entry *mapscript_ce_shapefile;
+#ifdef disabled
extern zend_class_entry *mapscript_ce_labelcachemember;
extern zend_class_entry *mapscript_ce_labelcache;
+#endif
extern zend_class_entry *mapscript_ce_labelleader;
extern zend_class_entry *mapscript_ce_result;
extern zend_class_entry *mapscript_ce_scalebar;
@@ -461,10 +471,12 @@ extern void mapscript_create_label(labelObj *label, parent_object parent, zval *
extern void mapscript_create_style(styleObj *style, parent_object parent, zval *return_value TSRMLS_DC);
extern void mapscript_create_symbol(symbolObj *symbol, parent_object parent, zval *return_value TSRMLS_DC);
extern void mapscript_create_class(classObj *class, parent_object parent, zval *return_value TSRMLS_DC);
+#ifdef disabled
extern void mapscript_create_labelcachemember(labelCacheMemberObj *labelcachemember,
parent_object parent, zval *return_value TSRMLS_DC);
extern void mapscript_create_labelcache(labelCacheObj *labelcache,
parent_object parent, zval *return_value TSRMLS_DC);
+#endif
extern void mapscript_create_labelleader(labelLeaderObj *labelleader,
parent_object parent, zval *return_value TSRMLS_DC);
extern void mapscript_create_result(resultObj *result,
@@ -521,7 +533,9 @@ imageObj *mapObj_drawReferenceMap(mapObj* self);
int mapObj_embedScalebar(mapObj* self, imageObj *img);
int mapObj_embedLegend(mapObj* self, imageObj *img);
int mapObj_drawLabelCache(mapObj* self, imageObj *img);
+#ifdef disabled
labelCacheMemberObj *mapObj_getLabel(mapObj* self, int i);
+#endif
int mapObj_queryByPoint(mapObj* self, pointObj *point,
int mode, double buffer);
int mapObj_queryByRect(mapObj* self, rectObj rect);
@@ -779,7 +793,9 @@ projectionObj *projectionObj_clone(projectionObj *projection);
int projectionObj_getUnits(projectionObj *self);
void projectionObj_destroy(projectionObj *self);
+#ifdef disabled
void labelCacheObj_freeCache(labelCacheObj *self);
+#endif
char *DBFInfo_getFieldName(DBFInfo *self, int iField);
int DBFInfo_getFieldWidth(DBFInfo *self, int iField);
diff --git a/mapscript/php/php_mapscript_util.c b/mapscript/php/php_mapscript_util.c
index 2bd2d48..8e831b1 100644
--- a/mapscript/php/php_mapscript_util.c
+++ b/mapscript/php/php_mapscript_util.c
@@ -128,10 +128,12 @@ void mapscript_fetch_object(zend_class_entry *ce, zval* zval_parent, php_layer_o
mapscript_create_style((styleObj*)internal_object, p, *php_object_storage TSRMLS_CC);
else if (ce == mapscript_ce_symbol)
mapscript_create_symbol((symbolObj*)internal_object, p, *php_object_storage TSRMLS_CC);
+#ifdef disabled
else if (ce == mapscript_ce_labelcachemember)
mapscript_create_labelcachemember((labelCacheMemberObj*)internal_object, p, *php_object_storage TSRMLS_CC);
else if (ce == mapscript_ce_labelcache)
mapscript_create_labelcache((labelCacheObj*)internal_object, p, *php_object_storage TSRMLS_CC);
+#endif
else if (ce == mapscript_ce_result)
mapscript_create_result((resultObj*)internal_object, p, *php_object_storage TSRMLS_CC);
else if (ce == mapscript_ce_scalebar)
diff --git a/mapscript/php/style.c b/mapscript/php/style.c
index f1fb736..b5a53f1 100644
--- a/mapscript/php/style.c
+++ b/mapscript/php/style.c
@@ -159,7 +159,6 @@ PHP_METHOD(styleObj, __get)
else IF_GET_LONG("polaroffsetpixel", php_style->style->polaroffsetpixel)
else IF_GET_LONG("polaroffsetangle", php_style->style->polaroffsetangle)
else IF_GET_DOUBLE("angle", php_style->style->angle)
- else IF_GET_LONG("antialias", php_style->style->antialias)
else IF_GET_DOUBLE("minvalue", php_style->style->minvalue)
else IF_GET_DOUBLE("maxvalue", php_style->style->maxvalue)
else IF_GET_STRING("rangeitem", php_style->style->rangeitem)
@@ -196,7 +195,9 @@ PHP_METHOD(styleObj, __set)
php_map_object *php_map = NULL;
php_class_object *php_class;
php_layer_object *php_layer;
+#ifdef disabled
php_labelcachemember_object *php_labelcachemember;
+#endif
PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz",
@@ -221,7 +222,6 @@ PHP_METHOD(styleObj, __set)
else IF_SET_LONG("polaroffsetpixel", php_style->style->polaroffsetpixel, value)
else IF_SET_LONG("polaroffsetangle", php_style->style->polaroffsetangle, value)
else IF_SET_DOUBLE("angle", php_style->style->angle, value)
- else IF_SET_LONG("antialias", php_style->style->antialias, value)
else IF_SET_DOUBLE("minvalue", php_style->style->minvalue, value)
else IF_SET_DOUBLE("maxvalue", php_style->style->maxvalue, value)
else IF_SET_DOUBLE("minscaledenom", php_style->style->minscaledenom, value)
@@ -268,6 +268,7 @@ PHP_METHOD(styleObj, __set)
return;
}
php_map = (php_map_object *) zend_object_store_get_object(php_layer->parent.val TSRMLS_CC);
+#ifdef disabled
} else if (Z_OBJCE_P(php_style->parent.val) == mapscript_ce_labelcachemember) {
/* The parent is always a map */
php_labelcachemember = (php_labelcachemember_object *) zend_object_store_get_object(php_style->parent.val TSRMLS_CC);
@@ -276,6 +277,7 @@ PHP_METHOD(styleObj, __set)
return;
}
php_map = (php_map_object *) zend_object_store_get_object(php_labelcachemember->parent.val TSRMLS_CC);
+#endif
}
if (styleObj_setSymbolByName(php_style->style,
diff --git a/mapscript/php/symbol.c b/mapscript/php/symbol.c
index 0a31417..8b53ec9 100644
--- a/mapscript/php/symbol.c
+++ b/mapscript/php/symbol.c
@@ -130,7 +130,6 @@ PHP_METHOD(symbolObj, __get)
else IF_GET_LONG("transparent", php_symbol->symbol->transparent)
else IF_GET_LONG("transparentcolor", php_symbol->symbol->transparentcolor)
else IF_GET_STRING("character", php_symbol->symbol->character)
- else IF_GET_LONG("antialias", php_symbol->symbol->antialias)
else IF_GET_DOUBLE("anchorpoint_y", php_symbol->symbol->anchorpoint_y)
else IF_GET_DOUBLE("anchorpoint_x", php_symbol->symbol->anchorpoint_x)
else IF_GET_DOUBLE("maxx", php_symbol->symbol->maxx)
@@ -170,7 +169,6 @@ PHP_METHOD(symbolObj, __set)
else IF_SET_LONG("transparent", php_symbol->symbol->transparent, value)
else IF_SET_LONG("transparentcolor", php_symbol->symbol->transparentcolor, value)
else IF_SET_STRING("character", php_symbol->symbol->character, value)
- else IF_SET_LONG("antialias", php_symbol->symbol->antialias, value)
else IF_SET_STRING("font", php_symbol->symbol->font, value)
else IF_SET_DOUBLE("anchorpoint_y", php_symbol->symbol->anchorpoint_y, value)
else IF_SET_DOUBLE("anchorpoint_x", php_symbol->symbol->anchorpoint_x, value)
diff --git a/mapscript/python/pyextend.i b/mapscript/python/pyextend.i
index 2262ae7..6d9e22b 100644
--- a/mapscript/python/pyextend.i
+++ b/mapscript/python/pyextend.i
@@ -400,3 +400,49 @@ def fromstring(data, mappath=None):
}
+/******************************************************************************
+ * Extensions to styleObj
+ *****************************************************************************/
+
+%extend styleObj {
+
+ void pattern_set(int nListSize, double* pListValues)
+ {
+ if( nListSize < 2 )
+ {
+ msSetError(MS_SYMERR, "Not enough pattern elements. A minimum of 2 are required", "pattern_set()");
+ return;
+ }
+ if( nListSize > MS_MAXPATTERNLENGTH )
+ {
+ msSetError(MS_MISCERR, "Too many elements", "pattern_set()");
+ return;
+ }
+ memcpy( self->pattern, pListValues, sizeof(double) * nListSize);
+ self->patternlength = nListSize;
+ }
+
+ void pattern_get(double** argout, int* pnListSize)
+ {
+ *pnListSize = self->patternlength;
+ *argout = (double*) malloc(sizeof(double) * *pnListSize);
+ memcpy( *argout, self->pattern, sizeof(double) * *pnListSize);
+ }
+
+ void patternlength_set2(int patternlength)
+ {
+ msSetError(MS_MISCERR, "pattern is read-only", "patternlength_set()");
+ }
+
+%pythoncode {
+
+ __swig_setmethods__["patternlength"] = _mapscript.styleObj_patternlength_set2
+ __swig_getmethods__["patternlength"] = _mapscript.styleObj_patternlength_get
+ if _newclass:patternlength = _swig_property(_mapscript.styleObj_patternlength_get, _mapscript.styleObj_patternlength_set2)
+
+ __swig_setmethods__["pattern"] = _mapscript.styleObj_pattern_set
+ __swig_getmethods__["pattern"] = _mapscript.styleObj_pattern_get
+ if _newclass:pattern = _swig_property(_mapscript.styleObj_pattern_get, _mapscript.styleObj_pattern_set)
+}
+
+}
diff --git a/mapscript/python/pygdioctx/pygdioctx.c b/mapscript/python/pygdioctx/pygdioctx.c
index b1eb27d..a9830fe 100644
--- a/mapscript/python/pygdioctx/pygdioctx.c
+++ b/mapscript/python/pygdioctx/pygdioctx.c
@@ -51,7 +51,7 @@
#include "pygdioctx.h"
-int PyFileIfaceObj_IOCtx_GetC(gdIOCtx *ctx)
+int PyFileIfaceObj_IOCtx_GetC(msIOCtx *ctx)
{
struct PyFileIfaceObj_gdIOCtx *pctx = (struct PyFileIfaceObj_gdIOCtx *)ctx;
if (pctx->strObj) {
@@ -68,7 +68,7 @@ int PyFileIfaceObj_IOCtx_GetC(gdIOCtx *ctx)
return EOF;
}
-int PyFileIfaceObj_IOCtx_GetBuf(gdIOCtx *ctx, void *data, int size)
+int PyFileIfaceObj_IOCtx_GetBuf(msIOCtx *ctx, void *data, int size)
{
int err;
char *value;
@@ -93,7 +93,7 @@ int PyFileIfaceObj_IOCtx_GetBuf(gdIOCtx *ctx, void *data, int size)
return size;
}
-void PyFileIfaceObj_IOCtx_Free(gdIOCtx *ctx)
+void PyFileIfaceObj_IOCtx_Free(msIOCtx *ctx)
{
struct PyFileIfaceObj_gdIOCtx *pctx = (struct PyFileIfaceObj_gdIOCtx *)ctx;
if (pctx->strObj) {
diff --git a/mapscript/python/pymodule.i b/mapscript/python/pymodule.i
index ab96d9a..08b7a6d 100644
--- a/mapscript/python/pymodule.i
+++ b/mapscript/python/pymodule.i
@@ -37,6 +37,71 @@
msFree($1.data);
}
+
+/*
+ * Typemap for counted arrays of doubles <- PySequence
+ */
+%typemap(in,numinputs=1) (int nListSize, double* pListValues)
+{
+ int i;
+ /* %typemap(in,numinputs=1) (int nListSize, double* pListValues)*/
+ /* check if is List */
+ if ( !PySequence_Check($input) ) {
+ PyErr_SetString(PyExc_TypeError, "not a sequence");
+ SWIG_fail;
+ }
+ $1 = PySequence_Size($input);
+ $2 = (double*) malloc($1*sizeof(double));
+ for( i = 0; i<$1; i++ ) {
+ PyObject *o = PySequence_GetItem($input,i);
+ if ( !PyArg_Parse(o,"d",&$2[i]) ) {
+ PyErr_SetString(PyExc_TypeError, "not a number");
+ Py_DECREF(o);
+ SWIG_fail;
+ }
+ Py_DECREF(o);
+ }
+}
+
+
+%fragment("CreateTupleFromDoubleArray","header") %{
+static PyObject *
+CreateTupleFromDoubleArray( double *first, unsigned int size ) {
+ unsigned int i;
+ PyObject *out = PyTuple_New( size );
+ for( i=0; i<size; i++ ) {
+ PyObject *val = PyFloat_FromDouble( *first );
+ ++first;
+ PyTuple_SetItem( out, i, val );
+ }
+ return out;
+}
+%}
+
+%typemap(freearg) (int nListSize, double* pListValues)
+{
+ /* %typemap(freearg) (int nListSize, double* pListValues) */
+ if ($2) {
+ free((void*) $2);
+ }
+}
+
+
+%typemap(in,numinputs=0) (double** argout, int* pnListSize) ( double* argout, int nListSize ) {
+ /* %typemap(python,in,numinputs=0) (double *val, int*hasval) */
+ $1 = &argout;
+ $2 = &nListSize;
+}
+
+%typemap(argout,fragment="t_output_helper,CreateTupleFromDoubleArray") (double** argout, int* pnListSize)
+{
+ /* %typemap(argout) (double* argout, int* pnListSize) */
+ PyObject *r;
+ r = CreateTupleFromDoubleArray(*$1, *$2);
+ free(*$1);
+ $result = t_output_helper($result,r);
+}
+
/**************************************************************************
* MapServer Errors and Python Exceptions
**************************************************************************
diff --git a/mapscript/python/tests/cases/layertest.py b/mapscript/python/tests/cases/layertest.py
index 92e2c48..cf2d223 100644
--- a/mapscript/python/tests/cases/layertest.py
+++ b/mapscript/python/tests/cases/layertest.py
@@ -49,13 +49,6 @@ class MapLayerTestCase(MapTestCase):
# ===========================================================================
# Test begins now
-class AlphaTransparencyTestCase(unittest.TestCase):
-
- def testMSGDALPHA(self):
- """test to make sure that no one has hidden ALPHA"""
- assert mapscript.MS_GD_ALPHA == 1000
-
-
class LayerConstructorTestCase(MapLayerTestCase):
def testLayerConstructorNoArg(self):
diff --git a/mapscript/python/tests/cases/symboltest.py b/mapscript/python/tests/cases/symboltest.py
index 30937ae..008b908 100644
--- a/mapscript/python/tests/cases/symboltest.py
+++ b/mapscript/python/tests/cases/symboltest.py
@@ -98,7 +98,6 @@ class DynamicGraphicSymbolTestCase(MapTestCase):
s = inline_layer.getClass(0).getStyle(0)
s.symbol = symbol_index
s.size = -1 # pixmap's own size
- inline_layer.transparency = mapscript.MS_GD_ALPHA
img = self.map.draw()
img.save('testDrawSetPCTImage.%s' % (img.format.extension))
@@ -117,7 +116,6 @@ class DynamicGraphicSymbolTestCase(MapTestCase):
s = inline_layer.getClass(0).getStyle(0)
s.symbol = symbol_index
s.size = -1 # pixmap's own size
- inline_layer.transparency = mapscript.MS_GD_ALPHA
self.map.selectOutputFormat('PNG24')
img = self.map.draw()
img.save('testDrawSetRGBAImage.%s' % (img.format.extension))
diff --git a/mapscript/swiginc/class.i b/mapscript/swiginc/class.i
index bf153df..425a3cd 100644
--- a/mapscript/swiginc/class.i
+++ b/mapscript/swiginc/class.i
@@ -55,7 +55,6 @@
return NULL;
if (initClass(layer->class[layer->numclasses]) == -1)
return NULL;
- layer->class[layer->numclasses]->type = layer->type;
layer->class[layer->numclasses]->layer = layer;
MS_REFCNT_INCR(layer->class[layer->numclasses]);
layer->numclasses++;
@@ -125,7 +124,7 @@
int setExpression(char *expression)
{
if (!expression || strlen(expression) == 0) {
- freeExpression(&self->expression);
+ msFreeExpression(&self->expression);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->expression, expression);
@@ -138,7 +137,7 @@
int setText(char *text) {
if (!text || strlen(text) == 0) {
- freeExpression(&self->text);
+ msFreeExpression(&self->text);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->text, text);
diff --git a/mapscript/swiginc/cluster.i b/mapscript/swiginc/cluster.i
index 0d950a8..b108ce4 100644
--- a/mapscript/swiginc/cluster.i
+++ b/mapscript/swiginc/cluster.i
@@ -44,7 +44,7 @@
int setGroup(char *group)
{
if (!group || strlen(group) == 0) {
- freeExpression(&self->group);
+ msFreeExpression(&self->group);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->group, group);
@@ -57,7 +57,7 @@
int setFilter(char *filter) {
if (!filter || strlen(filter) == 0) {
- freeExpression(&self->filter);
+ msFreeExpression(&self->filter);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->filter, filter);
diff --git a/mapscript/swiginc/color.i b/mapscript/swiginc/color.i
index 01a2ce8..c68eca2 100644
--- a/mapscript/swiginc/color.i
+++ b/mapscript/swiginc/color.i
@@ -36,13 +36,14 @@
%extend colorObj
{
- colorObj(int red=0, int green=0, int blue=0, int pen=MS_PEN_UNSET)
+ colorObj(int red=0, int green=0, int blue=0, int alpha=255)
{
colorObj *color;
/* Check colors */
- if (red > 255 || green > 255 || blue > 255) {
- msSetError(MS_MISCERR, "Invalid color index.", "colorObj()");
+ if (red > 255 || green > 255 || blue > 255 || alpha>255 ||
+ red<0 || green<0 || blue<0 || alpha<0 ) {
+ msSetError(MS_MISCERR, "Invalid color", "colorObj()");
return NULL;
}
@@ -50,7 +51,7 @@
if (!color)
return(NULL);
- MS_INIT_COLOR(*color, red, green, blue, 255);
+ MS_INIT_COLOR(*color, red, green, blue, alpha);
return(color);
}
diff --git a/mapscript/swiginc/image.i b/mapscript/swiginc/image.i
index 63143df..3dec633 100644
--- a/mapscript/swiginc/image.i
+++ b/mapscript/swiginc/image.i
@@ -47,11 +47,7 @@
format = input_format;
}
else {
- format = msCreateDefaultOutputFormat(NULL, "GD/GIF", "gdgif");
- if (format == NULL)
- format = msCreateDefaultOutputFormat(NULL, "GD/PNG", "gdpng");
- if (format == NULL)
-
+ format = msCreateDefaultOutputFormat(NULL, "AGG/PNG", "aggpng");
if (format)
msInitializeRendererVTable(format);
}
@@ -134,91 +130,6 @@
}
#endif
- /* -----------------------------------------------------------------------
- saveToString is deprecated and no longer supported. Users should use
- the write() method instead.
- ----------------------------------------------------------------------- */
-#if defined SWIGTCL8
-
- Tcl_Obj *saveToString()
- {
-
-#ifdef FORCE_BROKEN_GD_CODE
- unsigned char *imgbytes;
- int size;
- Tcl_Obj *imgstring;
-
-#if GD2_VERS > 1
- if(self->format->imagemode == MS_IMAGEMODE_RGBA) {
- gdImageSaveAlpha(self->img.gd, 1);
- } else if (self->format->imagemode == MS_IMAGEMODE_RGB) {
- gdImageSaveAlpha(self->img.gd, 0);
- }
-#endif
-
- if(strcasecmp("ON", msGetOutputFormatOption(self->format, "INTERLACE", "ON" )) == 0) {
- gdImageInterlace(self->img.gd, 1);
- }
-
- if(self->format->transparent) {
- gdImageColorTransparent(self->img.gd, 0);
- }
-
- if(strcasecmp(self->format->driver, "gd/gif") == 0) {
-
-#ifdef USE_GD_GIF
- imgbytes = gdImageGifPtr(self->img.gd, &size);
-#else
- msSetError(MS_MISCERR, "GIF output is not available.", "saveToString()");
- return(MS_FAILURE);
-#endif
-
- } else if (strcasecmp(self->format->driver, "gd/png") == 0) {
-
-#ifdef USE_GD_PNG
- imgbytes = gdImagePngPtr(self->img.gd, &size);
-#else
- msSetError(MS_MISCERR, "PNG output is not available.", "saveToString()");
- return(MS_FAILURE);
-#endif
-
- } else if (strcasecmp(self->format->driver, "gd/jpeg") == 0) {
-
-#ifdef USE_GD_JPEG
- imgbytes = gdImageJpegPtr(self->img.gd, &size, atoi(msGetOutputFormatOption(self->format, "QUALITY", "75" )));
-#else
- msSetError(MS_MISCERR, "JPEG output is not available.", "saveToString()");
- return(MS_FAILURE);
-#endif
-
- } else if (strcasecmp(self->format->driver, "gd/wbmp") == 0) {
-
-#ifdef USE_GD_WBMP
- imgbytes = gdImageWBMPPtr(self->img.gd, &size, 1);
-#else
- msSetError(MS_MISCERR, "WBMP output is not available.", "saveToString()");
- return(MS_FAILURE);
-#endif
-
- } else {
- msSetError(MS_MISCERR, "Unknown output image type driver: %s.", "saveToString()", self->format->driver );
- return(MS_FAILURE);
- }
-
- /* Tcl implementation to create string */
- imgstring = Tcl_NewByteArrayObj(imgbytes, size);
-
- msFree(imgbytes);
-
- return imgstring;
-#else /* force_gd_broken_code */
- msSetError(MS_MISCERR, "saveToString() is long deprecated and severley broken", "saveToString()", self->format->driver );
- return(MS_FAILURE);
-#endif
-
- }
-#endif
-
/*
-------------------------------------------------------------------------
getBytes returns a gdBuffer structure (defined in mapscript.i) which must
diff --git a/mapscript/swiginc/label.i b/mapscript/swiginc/label.i
index a2efe47..513826c 100644
--- a/mapscript/swiginc/label.i
+++ b/mapscript/swiginc/label.i
@@ -103,7 +103,7 @@
int setExpression(char *expression)
{
if (!expression || strlen(expression) == 0) {
- freeExpression(&self->expression);
+ msFreeExpression(&self->expression);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->expression, expression);
@@ -116,7 +116,7 @@
int setText(char *text) {
if (!text || strlen(text) == 0) {
- freeExpression(&self->text);
+ msFreeExpression(&self->text);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->text, text);
diff --git a/mapscript/swiginc/layer.i b/mapscript/swiginc/layer.i
index 52a9558..62ca4e8 100644
--- a/mapscript/swiginc/layer.i
+++ b/mapscript/swiginc/layer.i
@@ -71,6 +71,16 @@
return (map->layers[map->numlayers-1]);
}
}
+
+ void setOpacity(int opacity)
+ {
+ msSetLayerOpacity(self, opacity);
+ }
+
+ int getOpacity() {
+ if(self->compositer) return (self->compositer->opacity);
+ return (100);
+ }
~layerObj()
{
@@ -286,22 +296,19 @@
msInitQuery(&(map->query));
map->query.type = MS_QUERY_BY_FILTER;
+ map->query.mode = MS_QUERY_MULTIPLE;
- map->query.filter = (expressionObj *) malloc(sizeof(expressionObj));
- map->query.filter->string = strdup(string);
- map->query.filter->type = 2000; /* MS_EXPRESSION: lot's of conflicts in mapfile.h */
- map->query.filter->compiled = MS_FALSE;
- map->query.filter->flags = 0;
- map->query.filter->tokens = map->query.filter->curtoken = NULL;
+ map->query.filter.string = strdup(string);
+ map->query.filter.type = MS_EXPRESSION;
map->query.layer = self->index;
- map->query.rect = map->extent;
+ map->query.rect = map->extent;
- status = self->status;
- self->status = MS_ON;
+ status = self->status;
+ self->status = MS_ON;
retval = msQueryByFilter(map);
self->status = status;
- return retval;
+ return retval;
}
int queryByAttributes(mapObj *map, char *qitem, char *qstring, int mode)
@@ -311,16 +318,21 @@
msInitQuery(&(map->query));
- map->query.type = MS_QUERY_BY_ATTRIBUTE;
+ map->query.type = MS_QUERY_BY_FILTER;
map->query.mode = mode;
- if(qitem) map->query.item = strdup(qitem);
- if(qstring) map->query.str = strdup(qstring);
+
+ if(qitem) map->query.filteritem = msStrdup(qitem);
+ if(qstring) {
+ msInitExpression(&map->query.filter);
+ msLoadExpressionString(&map->query.filter, qstring);
+ }
+
map->query.layer = self->index;
map->query.rect = map->extent;
status = self->status;
self->status = MS_ON;
- retval = msQueryByAttributes(map);
+ retval = msQueryByFilter(map);
self->status = status;
return retval;
@@ -432,7 +444,7 @@
int setFilter(char *filter)
{
if (!filter || strlen(filter) == 0) {
- freeExpression(&self->filter);
+ msFreeExpression(&self->filter);
return MS_SUCCESS;
}
else return msLoadExpressionString(&self->filter, filter);
diff --git a/mapscript/swiginc/map.i b/mapscript/swiginc/map.i
index daaaf7a..cad35a4 100644
--- a/mapscript/swiginc/map.i
+++ b/mapscript/swiginc/map.i
@@ -235,34 +235,18 @@
}
int drawLabelCache(imageObj *image) {
- return msDrawLabelCache(image, self);
- }
-
- labelCacheMemberObj *getLabel(int i) {
- return msGetLabelCacheMember(&(self->labelcache), i);
- }
-
- labelCacheMemberObj *nextLabel() {
- static int i=0;
-
- if(i<self->labelcache.numlabels)
- return msGetLabelCacheMember(&(self->labelcache), i++);
- else
- return NULL;
+ return msDrawLabelCache(self,image);
}
int queryByFilter(char *string) {
msInitQuery(&(self->query));
self->query.type = MS_QUERY_BY_FILTER;
+ self->query.mode = MS_QUERY_MULTIPLE;
+
+ self->query.filter.string = strdup(string);
+ self->query.filter.type = MS_EXPRESSION;
- self->query.filter = (expressionObj *) malloc(sizeof(expressionObj));
- self->query.filter->string = strdup(string);
- self->query.filter->type = 2000; /* MS_EXPRESSION: lot's of conflicts in mapfile.h */
- self->query.filter->compiled = MS_FALSE;
- self->query.filter->flags = 0;
- self->query.filter->tokens = self->query.filter->curtoken = NULL;
-
self->query.rect = self->extent;
return msQueryByFilter(self);
diff --git a/mapscript/swiginc/rect.i b/mapscript/swiginc/rect.i
index becb449..c3fabf4 100644
--- a/mapscript/swiginc/rect.i
+++ b/mapscript/swiginc/rect.i
@@ -92,7 +92,6 @@
shape.classindex = classindex;
if(text && layer->class[classindex]->numlabels > 0) {
shape.text = strdup(text);
- msShapeGetAnnotation(layer,&shape);
}
msDrawShape(map, layer, &shape, image, -1, MS_DRAWMODE_FEATURES|MS_DRAWMODE_LABELS);
diff --git a/mapscript/v8/line.cpp b/mapscript/v8/line.cpp
new file mode 100644
index 0000000..19ce4d0
--- /dev/null
+++ b/mapscript/v8/line.cpp
@@ -0,0 +1,238 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+
+#include "v8_mapscript.h"
+
+using namespace v8;
+
+Persistent<FunctionTemplate> Line::constructor;
+
+void Line::Initialize(Handle<Object> target)
+{
+ HandleScope scope;
+
+ Handle<FunctionTemplate> c = FunctionTemplate::New(Line::New);
+ c->InstanceTemplate()->SetInternalFieldCount(1);
+ c->SetClassName(String::NewSymbol("lineObj"));
+
+ SET_ATTRIBUTE_RO(c, "numpoints", getProp);
+
+ NODE_SET_PROTOTYPE_METHOD(c, "point", getPoint);
+ NODE_SET_PROTOTYPE_METHOD(c, "addXY", addXY);
+ NODE_SET_PROTOTYPE_METHOD(c, "addXYZ", addXYZ);
+ NODE_SET_PROTOTYPE_METHOD(c, "add", addPoint);
+
+ target->Set(String::NewSymbol("lineObj"), c->GetFunction());
+
+ constructor.Reset(Isolate::GetCurrent(), c);
+}
+
+void Line::Dispose()
+{
+ Line::constructor.Dispose();
+ Line::constructor.Clear();
+}
+
+Line::~Line()
+{
+ if (this->freeInternal) {
+ msFree(this->this_->point);
+ msFree(this->this_);
+ }
+}
+
+Handle<Function> Line::Constructor()
+{
+ return (*Line::constructor)->GetFunction();
+}
+
+void Line::New(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args[0]->IsExternal())
+ {
+ Local<External> ext = Local<External>::Cast(args[0]);
+ void *ptr = ext->Value();
+ Line *line = static_cast<Line*>(ptr);
+ Handle<Object> self = args.Holder();
+ line->Wrap(self);
+ if (line->parent_) {
+ self->SetHiddenValue(String::New("__parent__"), line->parent_->handle());
+ line->disableMemoryHandler();
+ }
+ }
+ else
+ {
+ lineObj *l = (lineObj *)msSmallMalloc(sizeof(lineObj));
+
+ l->numpoints=0;
+ l->point=NULL;
+
+ Line *line = new Line(l);
+ line->Wrap(args.Holder());
+ }
+
+}
+
+Line::Line(lineObj *l, ObjectWrap *p):
+ ObjectWrap()
+{
+ this->this_ = l;
+ this->parent_ = p;
+ this->freeInternal = true;
+}
+
+void Line::getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info)
+{
+ HandleScope scope;
+ Line* l = ObjectWrap::Unwrap<Line>(info.Holder());
+ std::string name = TOSTR(property);
+ Handle<Value> value = Undefined();
+
+ if (name == "numpoints")
+ value = Integer::New(l->get()->numpoints);
+
+ info.GetReturnValue().Set(value);
+}
+
+void Line::getPoint(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 1 || !args[0]->IsInt32()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Line* l = ObjectWrap::Unwrap<Line>(args.Holder());
+ lineObj* line = l->get();
+
+ int index = args[0]->Int32Value();
+
+ if (index < 0 || index >= line->numpoints)
+ {
+ ThrowException(String::New("Invalid point index."));
+ return;
+ }
+
+ Point *point = new Point(&line->point[index], l);
+ Handle<Value> ext = External::New(point);
+ args.GetReturnValue().Set(Point::Constructor()->NewInstance(1, &ext));
+}
+
+void Line::addXY(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 2 || !args[0]->IsNumber() || !args[1]->IsNumber()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Line* l = ObjectWrap::Unwrap<Line>(args.Holder());
+ lineObj* line = l->get();
+
+ if(line->numpoints == 0) /* new */
+ line->point = (pointObj *)msSmallMalloc(sizeof(pointObj));
+ else /* extend array */
+ line->point = (pointObj *)msSmallRealloc(line->point, sizeof(pointObj)*(line->numpoints+1));
+
+ line->point[line->numpoints].x = args[0]->NumberValue();
+ line->point[line->numpoints].y = args[1]->NumberValue();
+#ifdef USE_POINT_Z_M
+ if (args.Length() > 2 && args[2]->IsNumber())
+ line->point[line->numpoints].m = args[2]->NumberValue();
+#endif
+
+ line->numpoints++;
+}
+
+void Line::addXYZ(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 3 || !args[0]->IsNumber() ||
+ !args[1]->IsNumber() || !args[2]->IsNumber()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Line* l = ObjectWrap::Unwrap<Line>(args.Holder());
+ lineObj* line = l->get();
+
+ if(line->numpoints == 0) /* new */
+ line->point = (pointObj *)msSmallMalloc(sizeof(pointObj));
+ else /* extend array */
+ line->point = (pointObj *)msSmallRealloc(line->point, sizeof(pointObj)*(line->numpoints+1));
+
+ line->point[line->numpoints].x = args[0]->NumberValue();
+ line->point[line->numpoints].y = args[1]->NumberValue();
+#ifdef USE_POINT_Z_M
+ line->point[line->numpoints].z = args[2]->NumberValue();
+ if (args.Length() > 3 && args[3]->IsNumber())
+ line->point[line->numpoints].m = args[3]->NumberValue();
+#endif
+ line->numpoints++;
+}
+
+void Line::addPoint(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 1 || !args[0]->IsObject() ||
+ !args[0]->ToObject()->GetConstructorName()->Equals(String::New("pointObj"))) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Line* l = ObjectWrap::Unwrap<Line>(args.Holder());
+ lineObj* line = l->get();
+ Point* p = ObjectWrap::Unwrap<Point>(args[0]->ToObject());
+ pointObj* point = p->get();
+
+ if(line->numpoints == 0) /* new */
+ line->point = (pointObj *)msSmallMalloc(sizeof(pointObj));
+ else /* extend array */
+ line->point = (pointObj *)msSmallRealloc(line->point, sizeof(pointObj)*(line->numpoints+1));
+
+ line->point[line->numpoints].x = point->x;
+ line->point[line->numpoints].y = point->y;
+#ifdef USE_POINT_Z_M
+ line->point[line->numpoints].z = point->z;
+ if (args.Length() > 3 && args[3]->IsNumber())
+ line->point[line->numpoints].m = point->m;
+#endif
+ line->numpoints++;
+}
+
+#endif
diff --git a/mapscript/v8/line.hpp b/mapscript/v8/line.hpp
new file mode 100644
index 0000000..b080165
--- /dev/null
+++ b/mapscript/v8/line.hpp
@@ -0,0 +1,66 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#ifndef LINE_H_
+#define LINE_H_
+
+#include <v8.h>
+
+using namespace v8;
+
+class Line: public ObjectWrap
+{
+public:
+ static void Initialize(Handle<Object> target);
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void Dispose();
+ static Handle<Function> Constructor();
+
+ Line(lineObj *l, ObjectWrap *p = NULL);
+ ~Line();
+ inline lineObj* get() { return this_; }
+ inline void disableMemoryHandler() { this->freeInternal = false; }
+
+ static void getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info);
+ static void setProp(Local<String> property,
+ Local<Value> value,
+ const PropertyCallbackInfo<void>& info);
+
+ static void getPoint(const v8::FunctionCallbackInfo<Value>& args);
+ static void addXY(const v8::FunctionCallbackInfo<Value>& args);
+ static void addXYZ(const v8::FunctionCallbackInfo<Value>& args);
+ static void addPoint(const v8::FunctionCallbackInfo<Value>& args);
+private:
+ static Persistent<FunctionTemplate> constructor;
+ lineObj *this_;
+ ObjectWrap *parent_;
+ bool freeInternal;
+};
+
+#endif
diff --git a/mapscript/v8/point.cpp b/mapscript/v8/point.cpp
new file mode 100644
index 0000000..4915fda
--- /dev/null
+++ b/mapscript/v8/point.cpp
@@ -0,0 +1,206 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+
+#include "v8_mapscript.h"
+
+using namespace v8;
+
+Persistent<FunctionTemplate> Point::constructor;
+
+void Point::Initialize(Handle<Object> target)
+{
+ HandleScope scope;
+
+ Handle<FunctionTemplate> c = FunctionTemplate::New(Point::New);
+ c->InstanceTemplate()->SetInternalFieldCount(1);
+ c->SetClassName(String::NewSymbol("pointObj"));
+
+ SET_ATTRIBUTE(c, "x", getProp, setProp);
+ SET_ATTRIBUTE(c, "y", getProp, setProp);
+#ifdef USE_POINT_Z_M
+ SET_ATTRIBUTE(c, "z", getProp, setProp);
+ SET_ATTRIBUTE(c, "m", getProp, setProp);
+#endif
+
+ NODE_SET_PROTOTYPE_METHOD(c, "setXY", setXY);
+ NODE_SET_PROTOTYPE_METHOD(c, "setXYZ", setXYZ);
+
+ target->Set(String::NewSymbol("pointObj"), c->GetFunction());
+
+ constructor.Reset(Isolate::GetCurrent(), c);
+}
+
+void Point::Dispose()
+{
+ Point::constructor.Dispose();
+ Point::constructor.Clear();
+}
+
+Point::~Point()
+{
+ if (this->freeInternal) {
+ msFree(this->get());
+ }
+}
+
+Handle<Function> Point::Constructor()
+{
+ return (*Point::constructor)->GetFunction();
+}
+
+void Point::New(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+
+ if (args[0]->IsExternal())
+ {
+ Local<External> ext = Local<External>::Cast(args[0]);
+ void *ptr = ext->Value();
+ Point *point = static_cast<Point*>(ptr);
+ Handle<Object> self = args.Holder();
+ point->Wrap(self);
+ if (point->parent_) {
+ self->SetHiddenValue(String::New("__parent__"), point->parent_->handle());
+ point->disableMemoryHandler();
+ }
+ }
+ else
+ {
+ pointObj *p = (pointObj *)msSmallMalloc(sizeof(pointObj));
+
+ p->x = 0;
+ p->y = 0;
+#ifdef USE_POINT_Z_M
+ p->z = 0;
+ p->m = 0;
+#endif
+
+ Point *point = new Point(p);
+ point->Wrap(args.Holder());
+ }
+}
+
+ Point::Point(pointObj *p, ObjectWrap *pa):
+ ObjectWrap()
+{
+ this->this_ = p;
+ this->parent_ = pa;
+ this->freeInternal = true;
+}
+
+void Point::getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info)
+{
+ HandleScope scope;
+ Point* p = ObjectWrap::Unwrap<Point>(info.Holder());
+ std::string name = TOSTR(property);
+ Handle<Value> value = Undefined();
+
+ if (name == "x")
+ value = Number::New(p->get()->x);
+ else if (name == "y")
+ value = Number::New(p->get()->y);
+#ifdef USE_POINT_Z_M
+ else if (name == "z")
+ value = Number::New(p->get()->z);
+ else if (name == "m")
+ value = Number::New(p->get()->m);
+#endif
+
+ info.GetReturnValue().Set(value);
+}
+
+void Point::setProp(Local<String> property,
+ Local<Value> value,
+ const PropertyCallbackInfo<void>& info)
+{
+ HandleScope scope;
+ Point* p = ObjectWrap::Unwrap<Point>(info.Holder());
+ std::string name = TOSTR(property);
+ if (!value->IsNumber())
+ ThrowException(Exception::TypeError(
+ String::New("point value must be a number")));
+ if (name == "x") {
+ p->get()->x = value->NumberValue();
+ } else if (name == "y") {
+ p->get()->y = value->NumberValue();
+ }
+#ifdef USE_POINT_Z_M
+ else if (name == "z") {
+ p->get()->z = value->NumberValue();
+ } else if (name == "m") {
+ p->get()->m = value->NumberValue();
+ }
+#endif
+
+}
+
+void Point::setXY(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 2 || !args[0]->IsNumber() || !args[1]->IsNumber()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Point* p = ObjectWrap::Unwrap<Point>(args.Holder());
+
+ p->get()->x = args[0]->NumberValue();
+ p->get()->y = args[1]->NumberValue();
+
+}
+
+void Point::setXYZ(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 3 ||
+ !args[0]->IsNumber() || !args[1]->IsNumber() || !args[2]->IsNumber()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Point* p = ObjectWrap::Unwrap<Point>(args.Holder());
+
+ p->get()->x = args[0]->NumberValue();
+ p->get()->y = args[1]->NumberValue();
+
+#ifdef USE_POINT_Z_M
+ p->get()->z = args[2]->NumberValue();
+ if (args.Length() > 3 && args[3]->IsNumber()) {
+ p->get()->m = args[3]->NumberValue();
+ }
+#endif
+
+}
+
+#endif
diff --git a/mapscript/v8/point.hpp b/mapscript/v8/point.hpp
new file mode 100644
index 0000000..b8e173d
--- /dev/null
+++ b/mapscript/v8/point.hpp
@@ -0,0 +1,64 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#ifndef POINT_H_
+#define POINT_H_
+
+#include <v8.h>
+
+using namespace v8;
+
+class Point: public ObjectWrap
+{
+public:
+ static void Initialize(Handle<Object> target);
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void Dispose();
+ static Handle<Function> Constructor();
+
+ Point(pointObj *p, ObjectWrap *pa = NULL);
+ ~Point();
+ inline pointObj* get() { return this_; }
+ inline void disableMemoryHandler() { this->freeInternal = false; }
+
+ static void getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info);
+ static void setProp(Local<String> property,
+ Local<Value> value,
+ const PropertyCallbackInfo<void>& info);
+
+ static void setXY(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void setXYZ(const v8::FunctionCallbackInfo<v8::Value>& args);
+private:
+ static Persistent<FunctionTemplate> constructor;
+ pointObj *this_;
+ ObjectWrap *parent_;
+ bool freeInternal;
+};
+
+#endif
diff --git a/mapscript/v8/shape.cpp b/mapscript/v8/shape.cpp
new file mode 100644
index 0000000..dba22bc
--- /dev/null
+++ b/mapscript/v8/shape.cpp
@@ -0,0 +1,363 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+
+#include "v8_mapscript.h"
+#include <map>
+
+using namespace v8;
+using std::map;
+using std::string;
+
+Persistent<FunctionTemplate> Shape::constructor;
+
+void Shape::Initialize(Handle<Object> target)
+{
+ HandleScope scope;
+
+ Handle<FunctionTemplate> c = FunctionTemplate::New(Shape::New);
+ c->InstanceTemplate()->SetInternalFieldCount(1);
+ c->SetClassName(String::NewSymbol("shapeObj"));
+
+ SET_ATTRIBUTE_RO(c, "numvalues", getProp);
+ SET_ATTRIBUTE_RO(c, "numlines", getProp);
+ SET_ATTRIBUTE_RO(c, "index", getProp);
+ SET_ATTRIBUTE_RO(c, "type", getProp);
+ SET_ATTRIBUTE_RO(c, "tileindex", getProp);
+ SET_ATTRIBUTE_RO(c, "classindex", getProp);
+ SET_ATTRIBUTE(c, "text", getProp, setProp);
+
+ NODE_SET_PROTOTYPE_METHOD(c, "clone", clone);
+ NODE_SET_PROTOTYPE_METHOD(c, "line", getLine);
+ NODE_SET_PROTOTYPE_METHOD(c, "add", addLine);
+ NODE_SET_PROTOTYPE_METHOD(c, "setGeometry", setGeometry);
+
+ NODE_DEFINE_CONSTANT(c->GetFunction(),
+ "Point",MS_SHAPE_POINT);
+ NODE_DEFINE_CONSTANT(c->GetFunction(),
+ "Line",MS_SHAPE_LINE);
+ NODE_DEFINE_CONSTANT(c->GetFunction(),
+ "Polygon",MS_SHAPE_POLYGON);
+ NODE_DEFINE_CONSTANT(c->GetFunction(),
+ "Null",MS_SHAPE_NULL);
+
+ target->Set(String::NewSymbol("shapeObj"), c->GetFunction());
+
+ constructor.Reset(Isolate::GetCurrent(), c);
+}
+
+void Shape::Dispose()
+{
+ Shape::constructor.Dispose();
+ Shape::constructor.Clear();
+}
+
+Shape::~Shape()
+{
+ /* this is set to false if the shapeObj is owned by mapserver and not v8 */
+ if (freeInternal) {
+ msFreeShape(this->get());
+ msFree(this->get());
+ }
+}
+
+Handle<Function> Shape::Constructor()
+{
+ return (*Shape::constructor)->GetFunction();
+}
+
+void Shape::New(const v8::FunctionCallbackInfo<Value>& args)
+{
+ HandleScope scope;
+ Handle<Object> self = args.Holder();
+ Shape *shape;
+
+ if (args[0]->IsExternal())
+ {
+ Local<External> ext = Local<External>::Cast(args[0]);
+ void *ptr = ext->Value();
+ shape = static_cast<Shape*>(ptr);
+ shape->Wrap(args.Holder());
+ }
+ else
+ {
+ shapeObj *s = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
+
+ msInitShape(s);
+ if(args.Length() >= 1) {
+ s->type = args[0]->Int32Value();
+ }
+ else {
+ s->type = MS_SHAPE_NULL;
+ }
+
+ shape = new Shape(s);
+ shape->Wrap(self);
+ }
+
+ /* create the attribute template. should use ObjectWrap in future */
+ Handle<ObjectTemplate> attributes_templ = ObjectTemplate::New();
+ attributes_templ->SetInternalFieldCount(2);
+ attributes_templ->SetNamedPropertyHandler(attributeGetValue,
+ attributeSetValue);
+ Handle<Object> attributes = attributes_templ->NewInstance();
+ map<string, int> *attributes_map = new map<string, int>();
+ attributes->SetInternalField(0, External::New(attributes_map));
+ attributes->SetInternalField(1, External::New(shape->get()->values));
+ attributes->SetHiddenValue(String::New("__parent__"), self);
+
+ if (shape->layer) {
+ for (int i=0; i<shape->layer->numitems; ++i) {
+ (*attributes_map)[string(shape->layer->items[i])] = i;
+ }
+ }
+
+ Persistent<Object> pattributes;
+ pattributes.Reset(Isolate::GetCurrent(), attributes);
+ pattributes.MakeWeak(attributes_map, attributeWeakCallback);
+ pattributes.MarkIndependent();
+
+ self->Set(String::New("attributes"), attributes);
+}
+
+Shape::Shape(shapeObj *s):
+ ObjectWrap()
+{
+ this->this_ = s;
+ this->layer = NULL;
+ this->freeInternal = true;
+}
+
+void Shape::getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info)
+{
+ HandleScope scope;
+ Shape* s = ObjectWrap::Unwrap<Shape>(info.Holder());
+ std::string name = TOSTR(property);
+ Handle<Value> value = Undefined();
+
+ if (name == "numvalues")
+ value = Integer::New(s->get()->numvalues);
+ else if (name == "numlines")
+ value = Integer::New(s->get()->numlines);
+ else if (name == "index")
+ value = Number::New(s->get()->index);
+ else if (name == "type")
+ value = Integer::New(s->get()->type);
+ else if (name == "tileindex")
+ value = Integer::New(s->get()->tileindex);
+ else if (name == "classindex")
+ value = Integer::New(s->get()->classindex);
+ else if (name == "text")
+ value = String::New(s->get()->text);
+
+ info.GetReturnValue().Set(value);
+}
+
+void Shape::setProp(Local<String> property,
+ Local<Value> value,
+ const PropertyCallbackInfo<void>& info)
+{
+ HandleScope scope;
+ Shape* s = ObjectWrap::Unwrap<Shape>(info.Holder());
+ std::string name = TOSTR(property);
+
+ if (name == "text") {
+ if (s->get()->text)
+ msFree(s->get()->text);
+ s->get()->text = getStringValue(value);
+ }
+}
+
+void Shape::clone(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+ Shape* s = ObjectWrap::Unwrap<Shape>(args.Holder());
+ shapeObj *shape = s->get();
+
+ shapeObj *new_shape = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
+ msInitShape(new_shape);
+ msCopyShape(shape, new_shape);
+
+ Shape *ns = new Shape(new_shape);
+ Handle<Value> ext = External::New(ns);
+ Handle<Object> clone = Shape::Constructor()->NewInstance(1, &ext);
+
+ /* we need this to copy shape attributes */
+ Handle<Object> self = s->handle();
+ Handle<Object> self_attributes = self->Get(String::New("attributes"))->ToObject();
+ Local<External> wrap = Local<External>::Cast(self_attributes->GetInternalField(0));
+ void *ptr = wrap->Value();
+ map<string, int> *self_attributes_map = static_cast<map<string, int> *>(ptr);
+
+ Handle<Object> clone_attributes = clone->Get(String::New("attributes"))->ToObject();
+ wrap = Local<External>::Cast(clone_attributes->GetInternalField(0));
+ ptr = wrap->Value();
+ map<string, int> *clone_attributes_map = static_cast<map<string, int> *>(ptr);
+
+ clone_attributes_map->insert(self_attributes_map->begin(),
+ self_attributes_map->end());
+
+ args.GetReturnValue().Set(clone);
+}
+
+void Shape::getLine(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 1 || !args[0]->IsInt32()) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ int index = args[0]->Int32Value();
+
+ Shape* s = ObjectWrap::Unwrap<Shape>(args.Holder());
+ shapeObj *shape = s->get();
+
+ if (index < 0 || index >= shape->numlines)
+ {
+ ThrowException(String::New("Invalid line index."));
+ return;
+ }
+
+ Line *line = new Line(&shape->line[index], s);
+ Handle<Value> ext = External::New(line);
+ args.GetReturnValue().Set(Line::Constructor()->NewInstance(1, &ext));
+}
+
+void Shape::addLine(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 1 || !args[0]->IsObject() ||
+ !args[0]->ToObject()->GetConstructorName()->Equals(String::New("lineObj"))) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Shape* s = ObjectWrap::Unwrap<Shape>(args.Holder());
+ shapeObj *shape = s->get();
+
+ Line* l = ObjectWrap::Unwrap<Line>(args[0]->ToObject());
+ lineObj *line = l->get();
+
+ msAddLine(shape, line);
+}
+
+void Shape::setGeometry(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ HandleScope scope;
+
+ if (args.Length() < 1 || !args[0]->IsObject() ||
+ !args[0]->ToObject()->GetConstructorName()->Equals(String::New("shapeObj"))) {
+ ThrowException(String::New("Invalid argument"));
+ return;
+ }
+
+ Shape* s = ObjectWrap::Unwrap<Shape>(args.Holder());
+ shapeObj *shape = s->get();
+ Shape* ns = ObjectWrap::Unwrap<Shape>(args[0]->ToObject());
+ shapeObj *new_shape = ns->get();
+
+ /* clean current shape */
+ for (int i = 0; i < shape->numlines; i++) {
+ free(shape->line[i].point);
+ }
+ if (shape->line) free(shape->line);
+ shape->line = NULL;
+ shape->numlines = 0;
+
+ for (int i = 0; i < new_shape->numlines; i++) {
+ msAddLine(shape, &(new_shape->line[i]));
+ }
+
+ return;
+}
+
+void Shape::attributeWeakCallback(v8::Isolate* isolate,
+ v8::Persistent<v8::Object>* pobj,
+ map<string, int> *map) {
+ v8::HandleScope scope(isolate);
+ pobj->Dispose();
+ pobj->Clear();
+ delete map;
+}
+
+void Shape::attributeGetValue(Local<String> name,
+ const PropertyCallbackInfo<Value> &info)
+{
+ Local<Object> self = info.Holder();
+ Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
+ void *ptr = wrap->Value();
+ map<string, int> *indexes = static_cast<map<string, int> *>(ptr);
+ wrap = Local<External>::Cast(self->GetInternalField(1));
+ ptr = wrap->Value();
+ char **values = static_cast<char **>(ptr);
+
+ String::Utf8Value utf8_value(name);
+ string key = string(*utf8_value);
+ map<string, int>::iterator iter = indexes->find(key);
+
+ if (iter != indexes->end()) {
+ const int &index = (*iter).second;
+ info.GetReturnValue().Set(String::New(values[index]));
+ }
+}
+
+void Shape::attributeSetValue(Local<String> name,
+ Local<Value> value,
+ const PropertyCallbackInfo<Value> &info)
+{
+ Local<Object> self = info.Holder();
+ Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
+ void *ptr = wrap->Value();
+ map<string, int> *indexes = static_cast<map<string, int> *>(ptr);
+ wrap = Local<External>::Cast(self->GetInternalField(1));
+ ptr = wrap->Value();
+ char **values = static_cast<char **>(ptr);
+
+ String::Utf8Value utf8_name(name), utf8_value(value);
+ string key = string(*utf8_name);
+
+ map<string, int>::iterator iter = indexes->find(key);
+
+ if (iter == indexes->end()) {
+ ThrowException(String::New("Invalid value name."));
+ }
+ else
+ {
+ const int &index = (*iter).second;
+ msFree(values[index]);
+ values[index] = msStrdup(*utf8_value);
+ }
+}
+
+#endif
diff --git a/mapscript/v8/shape.hpp b/mapscript/v8/shape.hpp
new file mode 100644
index 0000000..3f9bdc0
--- /dev/null
+++ b/mapscript/v8/shape.hpp
@@ -0,0 +1,85 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#ifndef SHAPE_H_
+#define SHAPE_H_
+
+#include <v8.h>
+#include <map>
+#include <string>
+
+using namespace v8;
+using std::map;
+using std::string;
+
+class Shape: public ObjectWrap
+{
+public:
+ static void Initialize(Handle<Object> target);
+ static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void Dispose();
+ static Handle<Function> Constructor();
+
+ Shape(shapeObj *p);
+ ~Shape();
+ inline shapeObj* get() { return this_; }
+ inline void disableMemoryHandler() { this->freeInternal = false; }
+
+ inline void setLayer(layerObj *layer) { this->layer = layer; };
+
+ static void getProp(Local<String> property,
+ const PropertyCallbackInfo<Value>& info);
+ static void setProp(Local<String> property,
+ Local<Value> value,
+ const PropertyCallbackInfo<void>& info);
+
+ static void clone(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void getLine(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void addLine(const v8::FunctionCallbackInfo<v8::Value>& args);
+ static void setGeometry(const v8::FunctionCallbackInfo<v8::Value>& args);
+
+ /* This could be generic in the future.. */
+ static void attributeWeakCallback(v8::Isolate* isolate,
+ v8::Persistent<v8::Object>* pobj,
+ map<string, int> *map);
+ static void attributeGetValue(Local<String> name,
+ const PropertyCallbackInfo<Value> &info);
+ static void attributeSetValue(Local<String> name,
+ Local<Value> value,
+ const PropertyCallbackInfo<Value> &info);
+ static void attributeMapDestroy(Isolate *isolate,
+ Persistent<Object> *object,
+ map<string, int> *map);
+private:
+ static Persistent<FunctionTemplate> constructor;
+ bool freeInternal;
+ layerObj *layer; /* for attributes names */
+ shapeObj *this_;
+};
+
+#endif
diff --git a/legend.c b/mapscript/v8/v8_mapscript.cpp
similarity index 54%
copy from legend.c
copy to mapscript/v8/v8_mapscript.cpp
index 49a20dc..ea3d8aa 100644
--- a/legend.c
+++ b/mapscript/v8/v8_mapscript.cpp
@@ -1,12 +1,11 @@
-/******************************************************************************
- * $Id$
+/**********************************************************************
*
* Project: MapServer
- * Purpose: Mainline of commandline legend generation test utility.
- * Author: Steve Lime and the MapServer team.
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
*
- ******************************************************************************
- * Copyright (c) 1996-2005 Regents of the University of Minnesota.
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -18,50 +17,32 @@
* The above copyright notice and this permission notice shall be included in
* all copies of this Software or works derived from this Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
- ****************************************************************************/
-
-#include "mapserver.h"
+ **********************************************************************/
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+#include "mapserver.h"
+#include "v8_mapscript.h"
-int main(int argc, char *argv[])
+char* getStringValue(Local<Value> value, const char *fallback)
{
- mapObj *map=NULL;
- imageObj *img=NULL;
-
- if(argc > 1 && strcmp(argv[1], "-v") == 0) {
- printf("%s\n", msGetVersion());
- exit(0);
- }
-
- if( argc < 3 ) {
- fprintf(stdout,"Syntax: legend [mapfile] [output image]\n" );
- exit(0);
- }
-
- map = msLoadMap(argv[1], NULL);
- if(!map) {
- msWriteError(stderr);
- exit(0);
- }
-
- img = msDrawLegend(map, MS_FALSE, NULL);
- if(!img) {
- msWriteError(stderr);
- exit(0);
+ if (value->IsString()) {
+ String::AsciiValue string(value);
+ char *str = (char *) malloc(string.length() + 1);
+ strcpy(str, *string);
+ return str;
}
-
- msSaveImage(NULL, img, argv[2]);
-
- msFreeImage(img);
- msFreeMap(map);
-
- return(MS_TRUE);
+ char *str = (char *) malloc(strlen(fallback) + 1);
+ strcpy(str, fallback);
+ return str;
}
+
+#endif
diff --git a/mapscript/v8/v8_mapscript.h b/mapscript/v8/v8_mapscript.h
new file mode 100644
index 0000000..b38d36d
--- /dev/null
+++ b/mapscript/v8/v8_mapscript.h
@@ -0,0 +1,108 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#ifndef V8_MAPSCRIPT_H
+#define V8_MAPSCRIPT_H
+
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+
+/* This need should be removed in future v8 version */
+#define V8_ALLOW_ACCESS_TO_RAW_HANDLE_CONSTRUCTOR 1
+#define V8_USE_UNSAFE_HANDLES 1
+
+#include "mapserver.h"
+#include <v8.h>
+#include <string>
+#include <stack>
+#include <map>
+#include "v8_object_wrap.hpp"
+#include "point.hpp"
+#include "line.hpp"
+#include "shape.hpp"
+
+using namespace v8;
+
+using std::string;
+using std::stack;
+using std::map;
+
+class V8Context
+{
+public:
+ V8Context(Isolate *isolate)
+ : isolate(isolate) {}
+ Isolate *isolate;
+ stack<string> paths; /* for relative paths and the require function */
+ map<string, Persistent<Script> > scripts;
+ Persistent<Context> context;
+ layerObj *layer; /* current layer, used in geomtransform */
+};
+
+#define V8CONTEXT(map) ((V8Context*) (map)->v8context)
+
+inline void NODE_SET_PROTOTYPE_METHOD(v8::Handle<v8::FunctionTemplate> recv,
+ const char* name,
+ v8::FunctionCallback callback) {
+ v8::Isolate* isolate = v8::Isolate::GetCurrent();
+ v8::HandleScope handle_scope(isolate);
+ v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(callback);
+ recv->InstanceTemplate()->Set(v8::String::NewFromUtf8(isolate, name),
+ t->GetFunction());
+}
+#define NODE_SET_PROTOTYPE_METHOD NODE_SET_PROTOTYPE_METHOD
+
+#define TOSTR(obj) (*String::Utf8Value((obj)->ToString()))
+
+#define SET(target, name, value) \
+ (target)->PrototypeTemplate()->Set(String::NewSymbol(name), value);
+
+#define SET_ATTRIBUTE(t, name, get, set) \
+ t->InstanceTemplate()->SetAccessor(String::NewSymbol(name), get, set)
+
+#define SET_ATTRIBUTE_RO(t, name, get) \
+ t->InstanceTemplate()->SetAccessor( \
+ String::NewSymbol(name), \
+ get, 0, \
+ Handle<Value>(), \
+ DEFAULT, \
+ static_cast<PropertyAttribute>( \
+ ReadOnly|DontDelete))
+
+#define NODE_DEFINE_CONSTANT(target, name, constant) \
+ (target)->Set(String::NewSymbol(name), \
+ Integer::New(constant), \
+ static_cast<PropertyAttribute>( \
+ ReadOnly|DontDelete));
+
+char* getStringValue(Local<Value> value, const char *fallback="");
+
+
+#endif
+
+#endif
diff --git a/mapscript/v8/v8_object_wrap.hpp b/mapscript/v8/v8_object_wrap.hpp
new file mode 100644
index 0000000..b451266
--- /dev/null
+++ b/mapscript/v8/v8_object_wrap.hpp
@@ -0,0 +1,129 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#ifndef V8_OBJECT_WRAP_H_
+#define V8_OBJECT_WRAP_H_
+
+#include "v8.h"
+#include <assert.h>
+
+class ObjectWrap {
+ public:
+ ObjectWrap() {
+ refs_ = 0;
+ }
+
+ virtual ~ObjectWrap() {
+ if (persistent().IsEmpty())
+ return;
+ assert(persistent().IsNearDeath());
+ persistent().ClearWeak();
+ persistent().Dispose();
+ }
+
+
+ template <class T>
+ static inline T* Unwrap(v8::Handle<v8::Object> handle) {
+ assert(!handle.IsEmpty());
+ assert(handle->InternalFieldCount() > 0);
+ // Cast to ObjectWrap before casting to T. A direct cast from void
+ // to T won't work right when T has more than one base class.
+ void* ptr = handle->GetAlignedPointerFromInternalField(0);
+ ObjectWrap* wrap = static_cast<ObjectWrap*>(ptr);
+ return static_cast<T*>(wrap);
+ }
+
+
+ inline v8::Local<v8::Object> handle() {
+ return handle(v8::Isolate::GetCurrent());
+ }
+
+
+ inline v8::Local<v8::Object> handle(v8::Isolate* isolate) {
+ return v8::Local<v8::Object>::New(isolate, persistent());
+ }
+
+
+ inline v8::Persistent<v8::Object>& persistent() {
+ return handle_;
+ }
+
+
+ protected:
+ inline void Wrap(v8::Handle<v8::Object> handle) {
+ assert(persistent().IsEmpty());
+ assert(handle->InternalFieldCount() > 0);
+ handle->SetAlignedPointerInInternalField(0, this);
+ persistent().Reset(v8::Isolate::GetCurrent(), handle);
+ MakeWeak();
+ }
+
+
+ inline void MakeWeak(void) {
+ persistent().MakeWeak(this, WeakCallback);
+ persistent().MarkIndependent();
+ }
+
+ /* Ref() marks the object as being attached to an event loop.
+ * Refed objects will not be garbage collected, even if
+ * all references are lost.
+ */
+ virtual void Ref() {
+ assert(!persistent().IsEmpty());
+ persistent().ClearWeak();
+ refs_++;
+ }
+
+ /* Unref() marks an object as detached from the event loop. This is its
+ * default state. When an object with a "weak" reference changes from
+ * attached to detached state it will be freed. Be careful not to access
+ * the object after making this call as it might be gone!
+ * (A "weak reference" means an object that only has a
+ * persistant handle.)
+ *
+ * DO NOT CALL THIS FROM DESTRUCTOR
+ */
+ virtual void Unref() {
+ assert(!persistent().IsEmpty());
+ assert(!persistent().IsWeak());
+ assert(refs_ > 0);
+ if (--refs_ == 0)
+ MakeWeak();
+ }
+
+ int refs_; // ro
+
+ private:
+ static void WeakCallback(v8::Isolate* isolate,
+ v8::Persistent<v8::Object>* pobj,
+ ObjectWrap* wrap) {
+ v8::HandleScope scope(isolate);
+ assert(wrap->refs_ == 0);
+ assert(*pobj == wrap->persistent());
+ assert((*pobj).IsNearDeath());
+ delete wrap;
+ }
+
+ v8::Persistent<v8::Object> handle_;
+};
+
+
+#endif // v8_OBJECT_WRAP_H_
diff --git a/mapsde.c b/mapsde.c
deleted file mode 100644
index 76c1b6a..0000000
--- a/mapsde.c
+++ /dev/null
@@ -1,2184 +0,0 @@
-/******************************************************************************
- * $Id$
- *
- * Project: MapServer
- * Purpose: Implements SDE CONNECTIONTYPE.
- * Author: Steve Lime and Howard Butler
- *
- ******************************************************************************
- * Copyright (c) 1996-2005 Regents of the University of Minnesota.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies of this Software or works derived from this Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *****************************************************************************/
-
-#include <time.h>
-#include <assert.h>
-
-#include "mapserver.h"
-#include "maperror.h"
-#include "maptime.h"
-#include "mapthread.h"
-
-
-
-#ifdef USE_SDE
-#include <sdetype.h> /* ESRI SDE Client Includes */
-#include <sdeerno.h>
-
-#define MS_SDE_MAXBLOBSIZE 1024*50 /* 50 kbytes */
-#define MS_SDE_NULLSTRING "<null>"
-#define MS_SDE_SHAPESTRING "<shape>"
-#define MS_SDE_TIMEFMTSIZE 128 /* bytes */
-#define MS_SDE_TIMEFMT "%H:%M:%S %m/%d/%Y"
-#define MS_SDE_ROW_ID_COLUMN "SE_ROW_ID"
-
-typedef struct {
- SE_CONNECTION connection;
- SE_STREAM stream;
-} msSDEConnPoolInfo;
-
-typedef struct {
- msSDEConnPoolInfo *connPoolInfo;
- SE_CONNECTION connection;
- SE_LAYERINFO layerinfo;
- SE_COORDREF coordref;
- SE_STREAM stream;
- SE_INT32 state_id;
- char *table;
- char *column;
- char *row_id_column;
- char *join_table;
- rectObj* extent;
- SE_COLUMN_DEF *basedefs;
- SE_COLUMN_DEF *joindefs;
- short *nBaseColumns;
- short *nJoinColumns;
- int bBigEndian;
-} msSDELayerInfo;
-
-typedef struct {
- SE_INT32 layerId;
- char *table;
- char *column;
- char *connection;
-} layerId;
-
-/*
- * Layer ID caching section.
- */
-
-static int lcacheCount = 0;
-static int lcacheMax = 0;
-static layerId *lcache = NULL;
-
-#endif
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerIsOpen */
-/* -------------------------------------------------------------------- */
-/* Returns MS_TRUE if layer is already opened, MS_FALSE otherwise */
-/* -------------------------------------------------------------------- */
-int msSDELayerIsOpen(layerObj *layer)
-{
-#ifdef USE_SDE
-
- if(layer->layerinfo)
- return(MS_TRUE);
-
- return MS_FALSE;
-
-#else
- msSetError(MS_MISCERR, "SDE support is not available.",
- "msSDELayerIsOpen()");
- return(MS_FALSE);
-#endif
-}
-
-#ifdef USE_SDE
-
-
-/************************************************************************/
-/* Start SDE/MapServer helper functions. */
-/* */
-/************************************************************************/
-
-
-
-/* -------------------------------------------------------------------- */
-/* msSDECloseConnection */
-/* -------------------------------------------------------------------- */
-/* Closes the SDE connection handle, which is given as a callback */
-/* function to the connection pooling API */
-/* -------------------------------------------------------------------- */
-static void msSDECloseConnection( void *conn_handle )
-{
-
- long status;
- msSDEConnPoolInfo *poolinfo = conn_handle;
-
- if (poolinfo) {
- if (poolinfo->stream) {
- SE_stream_free(poolinfo->stream);
- }
- if (poolinfo->connection) {
- status = SE_connection_free_all_locks (poolinfo->connection);
- if (status == SE_SUCCESS) {
- SE_connection_free(poolinfo->connection);
- }
- }
- msFree(poolinfo);
- }
-
-}
-
-/* -------------------------------------------------------------------- */
-/* sde_error */
-/* -------------------------------------------------------------------- */
-/* Reports more detailed error information from SDE */
-/* -------------------------------------------------------------------- */
-static void sde_error(long error_code, char *routine, char *sde_routine)
-{
- char error_string[SE_MAX_MESSAGE_LENGTH];
-
- error_string[0] = '\0';
- SE_error_get_string(error_code, error_string);
-
- msSetError( MS_SDEERR,
- "%s: %s. (%ld)",
- routine,
- sde_routine,
- error_string,
- error_code);
-
- return;
-}
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerGetRowIDColumn */
-/* -------------------------------------------------------------------- */
-/* A helper function to return unique row ID column for */
-/* an opened SDE layer. The caller owns the string. */
-/* -------------------------------------------------------------------- */
-char *msSDELayerGetRowIDColumn(layerObj *layer)
-{
-#ifdef USE_SDE
- SE_INT32 status, column_type;
- char* column_name;
- char* full_column_name;
- char* proc_key;
-
- SE_REGINFO registration;
-
- msSDELayerInfo *sde=NULL;
- sde = layer->layerinfo;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerGetRowIDColumn()");
- return NULL;
- }
-
- column_name = (char*) msSmallMalloc(SE_QUALIFIED_COLUMN_LEN+1);
- column_name[0]='\0';
-
- proc_key = msLayerGetProcessingKey(layer,"OBJECTID");
- if (proc_key)
- strcpy(column_name,proc_key);
-
- if (proc_key) {
- if (layer->debug)
- msDebug("msSDELayerGetRowIDColumn(): Column was manually set to %s\n", column_name);
- return column_name;
- }
- full_column_name = (char*) msSmallMalloc(SE_QUALIFIED_COLUMN_LEN+1);
- full_column_name[0]='\0';
-
- /*
- ** if the state_id is the SE_DEFAULT_STATE_ID, we are
- ** assuming no versioned queries are happening at all
- ** and we are using the hardcoded row_id column.
- */
- if (sde->state_id == SE_DEFAULT_STATE_ID) {
- if(layer->debug) {
- msDebug("msSDELayerGetRowIDColumn(): State ID was "
- "SE_DEFAULT_STATE_ID, reverting to %s.\n",
- MS_SDE_ROW_ID_COLUMN);
- }
- strcpy(column_name,MS_SDE_ROW_ID_COLUMN);
- }
-
- /*
- ** if the state_id was not set to SE_DEFAULT_STATE_ID,
- ** check if the table is registered, and if so, use the
- ** registration info to tell us what the row_id column is.
- */
- status = SE_reginfo_create (®istration);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerGetRowIDColumn()",
- "SE_reginfo_create()");
- return(NULL);
- }
-
- status = SE_registration_get_info ( sde->connPoolInfo->connection,
- sde->table,
- registration);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerGetRowIDColumn()",
- "SE_registration_get_info()");
- SE_reginfo_free(registration);
- return(NULL);
- }
-
- status= SE_reginfo_get_rowid_column ( registration,
- column_name,
- &column_type);
-
- if(status != SE_SUCCESS) {
- sde_error(status,
- "msSDELayerGetRowIDColumn()",
- "SE_reginfo_get_rowid_column()");
- SE_reginfo_free(registration);
- return(NULL);
- }
- /* Free up the reginfo now that we're done with it */
- SE_reginfo_free(registration);
-
- /* if the table wasn't registered, return the hard-coded row_id column. */
- if (column_type == SE_REGISTRATION_ROW_ID_COLUMN_TYPE_NONE) {
- if(layer->debug) {
- msDebug("msSDELayerGetRowIDColumn(): Table was not registered, "
- "returning %s.\n",
- MS_SDE_ROW_ID_COLUMN);
- }
- strcpy(column_name, MS_SDE_ROW_ID_COLUMN);
- }
-
-
- proc_key = msLayerGetProcessingKey(layer,"ATTRIBUTE_QUALIFIED");
- if (sde->join_table ||
- (proc_key && strcasecmp( proc_key, "TRUE") == 0)) {
- strcat(full_column_name, sde->table);
- strcat(full_column_name, ".");
- strcat(full_column_name, column_name);
- msFree(column_name);
-
- } else {
- strcpy(full_column_name, column_name);
- msFree(column_name);
- }
-
-
- if (full_column_name) {
- return (full_column_name);
- } else {
- msFree(full_column_name);
- return(msStrdup(MS_SDE_ROW_ID_COLUMN));
- }
-
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerGetRowIDColumn()");
- return(NULL);
-#endif
-}
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELCacheAdd */
-/* -------------------------------------------------------------------- */
-/* Adds a SDE layer to the global layer cache. */
-/* -------------------------------------------------------------------- */
-long msSDELCacheAdd( layerObj *layer,
- SE_LAYERINFO layerinfo,
- char *tableName,
- char *columnName,
- char *connectionString)
-{
-
- layerId *lid = NULL;
- SE_INT32 status = 0;
-
- msAcquireLock( TLOCK_SDE );
-
- if (layer->debug) {
- msDebug( "%s: Caching id for %s, %s, %s\n", "msSDELCacheAdd()",
- tableName, columnName, connectionString);
- }
-
- /* Ensure the cache is large enough to hold the new item. */
- if(lcacheCount == lcacheMax) {
- lcacheMax += 10;
- lcache = (layerId *)realloc(lcache, sizeof(layerId) * lcacheMax);
- if(lcache == NULL) {
- msReleaseLock( TLOCK_SDE );
- msSetError(MS_MEMERR, NULL, "msSDELCacheAdd()");
- return (MS_FAILURE);
- }
- }
-
- /* Population the new lcache object. */
- lid = lcache + lcacheCount;
- lcacheCount++;
-
- status = SE_layerinfo_get_id(layerinfo, &lid->layerId);
- if(status != SE_SUCCESS) {
- msReleaseLock( TLOCK_SDE );
- sde_error(status, "msSDELCacheAdd()", "SE_layerinfo_get_id()");
- return(MS_FAILURE);
- }
-
- lid->table = msStrdup(tableName);
- lid->column = msStrdup(columnName);
- lid->connection = msStrdup(connectionString);
-
- msReleaseLock( TLOCK_SDE );
- return (MS_SUCCESS);
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDEGetLayerInfo */
-/* -------------------------------------------------------------------- */
-/* Get a LayerInfo for the layer. Cached layer is used if it */
-/* exists in the cache. */
-/* -------------------------------------------------------------------- */
-long msSDEGetLayerInfo(layerObj *layer,
- SE_CONNECTION conn,
- char *tableName,
- char *columnName,
- char *connectionString,
- SE_LAYERINFO layerinfo)
-{
- int i;
- long status;
- layerId *lid = NULL;
-
- /* If table or column are null, nothing can be done. */
- if(tableName == NULL) {
- msSetError( MS_MISCERR,
- "Missing table name.\n",
- "msSDEGetLayerInfo()");
- return (MS_FAILURE);
- }
- if(columnName == NULL) {
- msSetError( MS_MISCERR,
- "Missing column name.\n",
- "msSDEGetLayerInfo()");
- return (MS_FAILURE);
- }
- if(connectionString == NULL) {
- msSetError( MS_MISCERR,
- "Missing connection string.\n",
- "msSDEGetLayerInfo()");
- return (MS_FAILURE);
- }
-
- if (layer->debug) {
- msDebug("%s: Looking for layer by %s, %s, %s\n",
- "msSDEGetLayerInfo()",
- tableName,
- columnName,
- connectionString);
- }
-
- /* Search the lcache for the layer id. */
- for(i = 0; i < lcacheCount; i++) {
- lid = lcache + i;
- if(strcasecmp(lid->table, tableName) == 0 &&
- strcasecmp(lid->column, columnName) == 0 &&
- strcasecmp(lid->connection, connectionString) == 0) {
- status = SE_layer_get_info_by_id(conn, lid->layerId, layerinfo);
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDEGetLayerInfo()", "SE_layer_get_info()");
- return(MS_FAILURE);
- }
- if (layer->debug) {
- msDebug( "%s: Matched layer to id %i.\n",
- "msSDEGetLayerId()", lid->layerId);
- }
- return (MS_SUCCESS);
-
- }
- }
- if (layer->debug) {
- msDebug("%s: No cached layerid found.\n", "msSDEGetLayerInfo()");
- }
-
- /* No matches found, create one. */
- status = SE_layer_get_info( conn, tableName, columnName, layerinfo );
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDEGetLayerInfo()", "SE_layer_get_info()");
- return(MS_FAILURE);
- }
-
- status = msSDELCacheAdd(layer,
- layerinfo,
- tableName,
- columnName,
- connectionString);
- return(MS_SUCCESS);
-
-}
-
-/* -------------------------------------------------------------------- */
-/* sdeShapeCopy */
-/* -------------------------------------------------------------------- */
-/* Copies a SDE shape into a MapServer shapeObj */
-/* -------------------------------------------------------------------- */
-static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
-{
-
- SE_POINT *points=NULL;
- SE_ENVELOPE envelope;
- SE_INT32 type, status;
- SE_INT32 *part_offsets = NULL;
- SE_INT32 *subpart_offsets = NULL;
- SE_INT32 num_parts = -1;
- SE_INT32 num_subparts = -1;
- SE_INT32 num_points = -1;
-
- lineObj line= {0,NULL};
-
- int i,j,k;
-
- status = SE_shape_get_type(inshp, &type);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeShapeCopy()", "SE_shape_get_type()");
- return(MS_FAILURE);
- }
-
- switch(type) {
- case(SG_NIL_SHAPE):
- return(MS_SUCCESS); /* skip null shapes */
- break;
- case(SG_POINT_SHAPE):
- case(SG_MULTI_POINT_SHAPE):
- outshp->type = MS_SHAPE_POINT;
- break;
- case(SG_LINE_SHAPE):
- case(SG_SIMPLE_LINE_SHAPE):
- case(SG_MULTI_LINE_SHAPE):
- case(SG_MULTI_SIMPLE_LINE_SHAPE):
- outshp->type = MS_SHAPE_LINE;
- break;
- case(SG_AREA_SHAPE):
- case(SG_MULTI_AREA_SHAPE):
- outshp->type = MS_SHAPE_POLYGON;
- break;
- default:
- msSetError( MS_SDEERR, "Unsupported SDE shape type.", "sdeShapeCopy()");
- return(MS_FAILURE);
- }
-
-
- status = SE_shape_get_num_parts (inshp, &num_parts, &num_subparts);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeShapeCopy()", "SE_shape_get_num_parts()");
- return(MS_FAILURE);
- }
- status = SE_shape_get_num_points (inshp, 0, 0, &num_points);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeShapeCopy()", "SE_shape_get_num_points()");
- return(MS_FAILURE);
- }
-
- part_offsets = (SE_INT32 *) msSmallMalloc( (num_parts + 1) * sizeof(SE_INT32));
- subpart_offsets = (SE_INT32 *) msSmallMalloc( (num_subparts + 1) * sizeof(SE_INT32));
- part_offsets[num_parts] = num_subparts;
- subpart_offsets[num_subparts] = num_points;
-
- points = (SE_POINT *) msSmallMalloc (num_points*sizeof(SE_POINT));
- if(!points) {
- msSetError( MS_MEMERR, "Unable to allocate points array.", "sdeShapeCopy()");
- return(MS_FAILURE);
- }
-
- status = SE_shape_get_all_points(inshp, SE_DEFAULT_ROTATION, part_offsets, subpart_offsets, points, NULL, NULL);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeCopyShape()", "SE_shape_get_all_points()");
- return(MS_FAILURE);
- }
-
- k = 0; /* overall point counter */
- for(i=0; i<num_subparts; i++) {
-
- if( i == num_subparts-1)
- line.numpoints = num_points - subpart_offsets[i];
- else
- line.numpoints = subpart_offsets[i+1] - subpart_offsets[i];
-
- line.point = (pointObj *)malloc(sizeof(pointObj)*line.numpoints);
- MS_CHECK_ALLOC(line.point, sizeof(pointObj)*line.numpoints, MS_FAILURE);
-
- for(j=0; j < line.numpoints; j++) {
- line.point[j].x = points[k].x;
- line.point[j].y = points[k].y;
- k++;
- }
-
- msAddLine(outshp, &line);
- msFree(line.point);
- }
-
- msFree(part_offsets);
- msFree(subpart_offsets);
- msFree(points);
-
- /* finally copy the bounding box for the entire shape */
- status = SE_shape_get_extent(inshp, 0, &envelope);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeShapeCopy()", "SE_shape_get_extent()");
- return(MS_FAILURE);
- }
- outshp->bounds.minx = envelope.minx;
- outshp->bounds.miny = envelope.miny;
- outshp->bounds.maxx = envelope.maxx;
- outshp->bounds.maxy = envelope.maxy;
-
- return(MS_SUCCESS);
-}
-
-/* -------------------------------------------------------------------- */
-/* sdeGetRecord */
-/* -------------------------------------------------------------------- */
-/* Retrieves the current row as setup via the SDE stream query */
-/* or row fetch routines. */
-/* -------------------------------------------------------------------- */
-static int sdeGetRecord(layerObj *layer, shapeObj *shape)
-{
- int i;
- SE_INT32 status;
-
- double doubleval;
- SE_INT32 longval;
- struct tm dateval;
-
- short shortval; /* new gdv */
- float floatval;
-
- SE_COLUMN_DEF *itemdefs;
- SE_SHAPE shapeval=0;
- msSDELayerInfo *sde;
-
- SE_BLOB_INFO blobval;
-
-#ifdef SE_CLOB_TYPE
- SE_CLOB_INFO clobval;
-#endif
-
-#ifdef SE_NCLOB_TYPE
- SE_NCLOB_INFO nclobval;
- SE_WCHAR* nclobstring; /* null terminated */
-#endif
-
-#ifdef SE_NSTRING_TYPE
- SE_WCHAR* wide=NULL;
-#endif
-
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "sdeGetRecord()");
- return MS_FAILURE;
- }
-
- sde = layer->layerinfo;
-
- if(layer->numitems > 0) {
- shape->numvalues = layer->numitems;
- shape->values = (char **) malloc (sizeof(char *)*layer->numitems);
- MS_CHECK_ALLOC(shape->values, sizeof(char *)*layer->numitems, MS_FAILURE);
- }
-
- status = SE_shape_create(NULL, &shapeval);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeGetRecord()", "SE_shape_create()");
- return(MS_FAILURE);
- }
-
- itemdefs = layer->iteminfo;
- for(i=0; i<layer->numitems; i++) {
-
- /* do something special */
- if(strcmp(layer->items[i],sde->row_id_column) == 0) {
- SE_INT32 shape_index;
-
- status = SE_stream_get_integer(sde->connPoolInfo->stream, (short)(i+1), &shape_index);
- if(status != SE_SUCCESS) {
- sde_error(status, "sdeGetRecord()", "SE_stream_get_integer()");
- return(MS_FAILURE);
- }
- shape->index = shape_index;
-
- shape->values[i] = (char *)msSmallMalloc(64); /* should be enough */
- sprintf(shape->values[i], "%ld", shape->index);
- continue;
- }
-
- switch(itemdefs[i].sde_type) {
- case SE_SMALLINT_TYPE:
- /* changed by gdv */
- status = SE_stream_get_smallint(sde->connPoolInfo->stream, (short)(i+1), &shortval);
- if(status == SE_SUCCESS)
- shape->values[i] = msLongToString(shortval);
- else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error(status, "sdeGetRecord()", "SE_stream_get_smallint()");
- return(MS_FAILURE);
- }
- break;
- case SE_INTEGER_TYPE:
- status = SE_stream_get_integer(sde->connPoolInfo->stream, (short)(i+1), &longval);
- if(status == SE_SUCCESS)
- shape->values[i] = msLongToString(longval);
- else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error(status, "sdeGetRecord()", "SE_stream_get_integer()");
- return(MS_FAILURE);
- }
- break;
- case SE_FLOAT_TYPE:
- status = SE_stream_get_float(sde->connPoolInfo->stream, (short)(i+1), &floatval);
- if(status == SE_SUCCESS)
- shape->values[i] = msDoubleToString(floatval, MS_FALSE);
- else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error( status, "sdeGetRecord()", "SE_stream_get_float()");
- return(MS_FAILURE);
- }
- break;
- case SE_DOUBLE_TYPE:
- status = SE_stream_get_double(sde->connPoolInfo->stream, (short) (i+1), &doubleval);
- if(status == SE_SUCCESS)
- shape->values[i] = msDoubleToString(doubleval, MS_FALSE);
- else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error(status, "sdeGetRecord()", "SE_stream_get_double()");
- return(MS_FAILURE);
- }
- break;
- case SE_STRING_TYPE:
- shape->values[i] = (char *)msSmallMalloc(itemdefs[i].size+1);
- status = SE_stream_get_string( sde->connPoolInfo->stream,
- (short) (i+1),
- shape->values[i]);
- if(status == SE_NULL_VALUE)
- shape->values[i][0] = '\0'; /* empty string */
- else if(status != SE_SUCCESS) {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_string()");
- return(MS_FAILURE);
- }
- break;
-#ifdef SE_NSTRING_TYPE
- case SE_NSTRING_TYPE:
- wide = (SE_WCHAR *)msSmallMalloc(itemdefs[i].size*2*sizeof(SE_WCHAR)+1);
- memset(wide, 0, itemdefs[i].size*2*sizeof(SE_WCHAR)+1);
- status = SE_stream_get_nstring( sde->connPoolInfo->stream,
- (short) (i+1),
- wide);
- if(status == SE_NULL_VALUE) {
- shape->values[i] = (char *)msSmallMalloc(itemdefs[i].size*sizeof(char)+1);
- shape->values[i][0] = '\0'; /* empty string */
- msFree(wide);
- } else if(status != SE_SUCCESS) {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_string()");
- return(MS_FAILURE);
- } else {
- if (sde->bBigEndian)
- shape->values[i] = msConvertWideStringToUTF8((const wchar_t*) wide, "UTF-16BE");
- else
- shape->values[i] = msConvertWideStringToUTF8((const wchar_t*) wide, "UTF-16LE");
- msFree(wide);
- if (!shape->values[i]) { /* There was an error */
- msSetError( MS_SDEERR,
- "msConvertWideStringToUTF8()==NULL.",
- "sdeGetRecord()");
- shape->values[i] = (char *)msSmallMalloc(itemdefs[i].size*sizeof(char)+1);
- shape->values[i][0] = '\0'; /* empty string */
- }
- }
- break;
-#endif
-
-#ifdef SE_UUID_TYPE
-
- case SE_UUID_TYPE:
- shape->values[i] = (char *)msSmallMalloc(itemdefs[i].size+1);
- status = SE_stream_get_uuid ( sde->connPoolInfo->stream,
- (short) (i+1),
- shape->values[i]);
- if(status == SE_NULL_VALUE)
- shape->values[i][0] = '\0'; /* empty string */
- else if(status != SE_SUCCESS) {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_uuid()");
- return(MS_FAILURE);
- }
- break;
-
-#endif
-
-#ifdef SE_CLOB_TYPE
-
- case SE_CLOB_TYPE:
- memset(&clobval, 0, sizeof(clobval)); /* to prevent from the crash in SE_stream_get_clob */
- status = SE_stream_get_clob(sde->connPoolInfo->stream, (short) (i+1), &clobval);
- if(status == SE_SUCCESS) {
- shape->values[i] = (char *)msSmallMalloc(sizeof(char)*clobval.clob_length);
- shape->values[i] = memcpy( shape->values[i],
- clobval.clob_buffer,
- clobval.clob_length);
- SE_clob_free(&clobval);
- } else if (status == SE_NULL_VALUE) {
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- } else {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_clob()");
- return(MS_FAILURE);
- }
- break;
-#endif
-
-#ifdef SE_CLOB_TYPE
-
- case SE_NCLOB_TYPE:
- memset(&nclobval, 0, sizeof(nclobval)); /* to prevent from the crash in SE_stream_get_nclob */
- status = SE_stream_get_nclob(sde->connPoolInfo->stream, (short) (i+1), &nclobval);
- if(status == SE_SUCCESS) {
- /* the returned string is not null-terminated */
- nclobstring = (SE_WCHAR*)malloc(sizeof(char)*(nclobval.nclob_length+2));
- memcpy(nclobstring, nclobval.nclob_buffer, nclobval.nclob_length);
- nclobstring[nclobval.nclob_length / 2] = '\0';
-
- if (sde->bBigEndian)
- shape->values[i] = msConvertWideStringToUTF8((const wchar_t*) nclobstring, "UTF-16BE");
- else
- shape->values[i] = msConvertWideStringToUTF8((const wchar_t*) nclobstring, "UTF-16LE");
-
- if (!shape->values[i]) { /* There was an error */
- msSetError( MS_SDEERR,
- "msConvertWideStringToUTF8()==NULL.",
- "sdeGetRecord()");
- shape->values[i] = (char *)malloc(itemdefs[i].size*sizeof(char)+1);
- shape->values[i][0] = '\0'; /* empty string */
- }
-
- SE_nclob_free(&nclobval);
- msFree(nclobstring);
- } else if (status == SE_NULL_VALUE) {
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- } else {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_nclob()");
- return(MS_FAILURE);
- }
- break;
-#endif
-
- case SE_BLOB_TYPE:
- status = SE_stream_get_blob(sde->connPoolInfo->stream, (short) (i+1), &blobval);
- if(status == SE_SUCCESS) {
- shape->values[i] = (char *)msSmallMalloc(sizeof(char)*blobval.blob_length);
- shape->values[i] = memcpy( shape->values[i],
- blobval.blob_buffer,
- blobval.blob_length);
- SE_blob_free(&blobval);
- } else if (status == SE_NULL_VALUE) {
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- } else {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_blob()");
- return(MS_FAILURE);
- }
- break;
-
- case SE_DATE_TYPE:
- status = SE_stream_get_date(sde->connPoolInfo->stream, (short)(i+1), &dateval);
- if(status == SE_SUCCESS) {
- shape->values[i] = (char *)msSmallMalloc(sizeof(char)*MS_SDE_TIMEFMTSIZE);
- strftime( shape->values[i],
- MS_SDE_TIMEFMTSIZE,
- MS_SDE_TIMEFMT,
- &dateval);
- } else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_date()");
- return(MS_FAILURE);
- }
- break;
- case SE_SHAPE_TYPE:
- status = SE_stream_get_shape(sde->connPoolInfo->stream, (short)(i+1), shapeval);
- if(status == SE_SUCCESS)
- shape->values[i] = msStrdup(MS_SDE_SHAPESTRING);
- else if(status == SE_NULL_VALUE)
- shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
- else {
- sde_error( status,
- "sdeGetRecord()",
- "SE_stream_get_shape()");
- return(MS_FAILURE);
- }
- break;
- default:
- msSetError( MS_SDEERR,
- "Unknown SDE column type.",
- "sdeGetRecord()");
- return(MS_FAILURE);
- break;
- } /* switch(itemdefs[i].sde_type) */
- } /* for(i=0; i<layer->numitems; i++) { */
-
- if(SE_shape_is_nil(shapeval)) return(MS_SUCCESS);
-
- /* copy sde shape to a mapserver shape */
- status = sdeShapeCopy(shapeval, shape);
- if(status != MS_SUCCESS) return(MS_FAILURE);
-
- /* clean up */
- SE_shape_free(shapeval);
-
-
- return(MS_SUCCESS);
-}
-
-static SE_QUERYINFO getSDEQueryInfo(layerObj *layer)
-{
- SE_QUERYINFO query_info;
- long status;
-
- msSDELayerInfo *sde=NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "getSDEQueryInfo()");
- return(NULL);
- }
-
- sde = layer->layerinfo;
-
- /*
- ** See http://forums.esri.com/Thread.asp?c=2&f=59&t=108929&mc=4#msgid310273
- ** SE_queryinfo is a new SDE struct in ArcSDE 8.x that is a bit easier
- ** (and faster) to use. HCB
- */
- status = SE_queryinfo_create (&query_info);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDEQueryInfo()",
- "SE_queryinfo_create()");
- return(NULL);
- }
-
- /* set the tables -- just one at this point */
- status = SE_queryinfo_set_tables ( query_info,
- 1,
- (const CHAR **) &(sde->table),
- NULL);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDEQueryInfo()",
- "SE_queryinfo_create()");
- return(NULL);
- }
-
- /* set the "where" clause */
- if(!(layer->filter.string))
- /* set to empty string */
- status = SE_queryinfo_set_where_clause (query_info,
- (const CHAR * ) "");
- else
- /* set to the layer's filter.string */
- status = SE_queryinfo_set_where_clause (query_info,
- (const CHAR * ) (layer->filter.string));
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDEQueryInfo()",
- "SE_queryinfo_set_where_clause()");
- return(NULL);
- }
-
- status = SE_queryinfo_set_columns( query_info,
- layer->numitems,
- (const char **)layer->items);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDEQueryInfo()",
- "SE_queryinfo_set_columns()");
- return(NULL);
- }
-
- /* Join the spatial and feature tables. If we specify the type of join */
- /* we'll query faster than querying all tables individually (old method) */
- status = SE_queryinfo_set_query_type (query_info,SE_QUERYTYPE_JSF);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDEQueryInfo()",
- "SE_queryinfo_set_query_type()");
- return(NULL);
- }
-
- return query_info;
-}
-
-static SE_SQL_CONSTRUCT* getSDESQLConstructInfo(layerObj *layer, long* id)
-{
- SE_SQL_CONSTRUCT* sql;
-
- char *full_filter=NULL;
- char *pszId=NULL;
- long status;
-
- msSDELayerInfo *sde=NULL;
- full_filter = (char*) msSmallMalloc((1000+1)*sizeof (char));
- full_filter[0] = '\0';
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "getSDESQLConstructInfo()");
- return(NULL);
- }
-
- sde = layer->layerinfo;
-
- if (!sde->join_table) {
- msSetError( MS_SDEERR,
- "Join table is null, we should be using QueryInfo.",
- "getSDESQLConstructInfo()");
- return(NULL);
- }
-
- status = SE_sql_construct_alloc( 2, &sql);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "getSDESQLConstructInfo()",
- "SE_sql_construct_alloc()");
- return(NULL);
- }
-
- strcpy(sql->tables[0], sde->table); /* main table */
- strcpy(sql->tables[1], sde->join_table); /* join table */
-
- /* If we were given an ID *and* we have a join, we need to
- set our FILTER statement to reflect this. */
- if ((sde->join_table) && (id != NULL)) {
- pszId = msLongToString(*id);
- strcat(full_filter, layer->filter.string);
- strcat(full_filter, " AND ");
- strcat(full_filter, sde->row_id_column);
- strcat(full_filter, "=");
- strcat(full_filter, pszId);
- msFree(pszId);
- sql->where = msStrdup(full_filter);
-
-
- } else {
- sql->where = layer->filter.string;
- }
-
- msFree(full_filter);
-
- if (layer->debug) msDebug("WHERE statement: %s\n", sql->where);
- return sql;
-}
-#endif
-
-/************************************************************************/
-/* Start SDE/MapServer library functions. */
-/* */
-/************************************************************************/
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerOpen */
-/* -------------------------------------------------------------------- */
-/* Connects to SDE using the SDE C API. Connections are pooled */
-/* using the MapServer pooling API. After a connection is made, */
-/* a query stream is created, using the SDE version specified in */
-/* the DATA string, or SDE.DEFAULT if not specified. It is */
-/* important to note that the SE_CONNECTION is shared across data */
-/* layers, but the state_id for a layer's version is different, */
-/* even for layers with the same version name. These are *not* */
-/* shared across layers. */
-/* -------------------------------------------------------------------- */
-int msSDELayerOpen(layerObj *layer)
-{
-#ifdef USE_SDE
- long status=-1;
- int endian_test=1;
- char **params=NULL;
- char **data_params=NULL;
- char *join_table=NULL;
-
- int numparams=0;
- SE_ERROR hSDEError;
- SE_STATEINFO state;
- SE_VERSIONINFO version;
-
- SE_ENVELOPE envelope;
-
- msSDELayerInfo *sde = NULL;
- msSDEConnPoolInfo *poolinfo;
-
- /* allocate space for SDE structures */
- sde = (msSDELayerInfo *) malloc(sizeof(msSDELayerInfo));
- MS_CHECK_ALLOC(sde, sizeof(msSDELayerInfo), MS_FAILURE);
-
- sde->state_id = SE_BASE_STATE_ID;
-
- /* initialize the table and spatial column names */
- sde->table = NULL;
- sde->column = NULL;
- sde->row_id_column = NULL;
- sde->join_table = NULL;
- sde->basedefs = NULL;
- sde->joindefs = NULL;
- sde->extent = (rectObj *) msSmallMalloc(sizeof(rectObj));
-
- sde->nBaseColumns = (short *) msSmallMalloc(1*sizeof(short));
- *(sde->nBaseColumns) = 0;
- sde->nJoinColumns = (short *) msSmallMalloc(1*sizeof(short));
- *(sde->nJoinColumns) = 0;
-
- if(!sde->extent) {
- msSetError( MS_MEMERR,
- "Error allocating extent for SDE layer",
- "msSDELayerOpen()");
- return(MS_FAILURE);
- }
-
- /* request a connection and stream from the pool */
- poolinfo = (msSDEConnPoolInfo *)msConnPoolRequest( layer );
-
-#ifdef SE_connection_test_server
- /* check the connection */
- if (poolinfo && (SE_connection_test_server(poolinfo->connection, 30) != SE_SUCCESS)) {
- msSDECloseConnection(poolinfo->connection);
- }
-#endif
-
- /* If we weren't returned a connection and stream, initialize new ones */
- if (!poolinfo) {
- char *conn_decrypted;
-
- if (layer->debug)
- msDebug("msSDELayerOpen(): "
- "Layer %s opened from scratch.\n", layer->name);
-
-
- poolinfo = (msSDEConnPoolInfo *)malloc(sizeof *poolinfo);
- MS_CHECK_ALLOC(poolinfo, sizeof *poolinfo, MS_FAILURE);
-
- /* Decrypt any encrypted token in the connection string */
- conn_decrypted = msDecryptStringTokens(layer->map, layer->connection);
-
- /* An error should already have been produced */
- if (conn_decrypted == NULL) {
- return(MS_FAILURE);
- }
- /* Split the connection parameters and make sure we have enough of them */
- params = msStringSplit(conn_decrypted, ',', &numparams);
- if(!params) {
- msSetError( MS_MEMERR,
- "Error splitting SDE connection information.",
- "msSDELayerOpen()");
- msFree(conn_decrypted);
- return(MS_FAILURE);
- }
- msFree(conn_decrypted);
- conn_decrypted = NULL;
-
- if(numparams < 5) {
- msSetError( MS_SDEERR,
- "Not enough SDE connection parameters specified.",
- "msSDELayerOpen()");
- return(MS_FAILURE);
- }
-
- /* Create the connection handle and put into poolinfo->connection */
- status = SE_connection_create(params[0],
- params[1],
- params[2],
- params[3],
- params[4],
- &(hSDEError),
- &(poolinfo->connection));
-
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_connection_create()");
- return(MS_FAILURE);
- }
-
- /* ------------------------------------------------------------------------- */
- /* Set the concurrency type for the connection. SE_UNPROTECTED_POLICY is */
- /* suitable when only one thread accesses the specified connection. */
- /* ------------------------------------------------------------------------- */
- status = SE_connection_set_concurrency( poolinfo->connection,
- SE_UNPROTECTED_POLICY);
-
-
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_connection_set_concurrency()");
- return(MS_FAILURE);
- }
-
-
- status = SE_stream_create(poolinfo->connection, &(poolinfo->stream));
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_stream_create()");
- return(MS_FAILURE);
- }
-
- /* Register the connection with the connection pooling API. Give */
- /* msSDECloseConnection as the function to call when we run out of layer */
- /* instances using it */
- msConnPoolRegister(layer, poolinfo, msSDECloseConnection);
- msFreeCharArray(params, numparams); /* done with parameter list */
- } /* !poolinfo */
-
- /* Split the DATA member into its parameters using the comma */
- /* Periods (.) are used to denote table names and schemas in SDE, */
- /* as are underscores (_). */
- data_params = msStringSplit(layer->data, ',', &numparams);
- if(!data_params) {
- msSetError( MS_MEMERR,
- "Error splitting SDE layer information.",
- "msSDELayerOpen()");
- return(MS_FAILURE);
- }
-
- if(numparams < 2) {
- msSetError( MS_SDEERR,
- "Not enough SDE layer parameters specified.",
- "msSDELayerOpen()");
- return(MS_FAILURE);
- }
-
- sde->table = msStrdup(data_params[0]);
- sde->column = msStrdup(data_params[1]);
-
- join_table = msLayerGetProcessingKey(layer,"JOINTABLE");
- if (join_table) {
- sde->join_table = msStrdup(join_table);
- /* msFree(join_table); */
- }
- if (numparams < 3) {
- /* User didn't specify a version, we won't use one */
- if (layer->debug) {
- msDebug("msSDELayerOpen(): Layer %s did not have a "
- "specified version.\n",
- layer->name);
- }
- sde->state_id = SE_DEFAULT_STATE_ID;
- } else {
- /* A version was specified... obtain the state_id */
- /* for it. */
- if (layer->debug) {
- msDebug("msSDELayerOpen(): Layer %s specified version %s.\n",
- layer->name,
- data_params[2]);
- }
- status = SE_versioninfo_create (&(version));
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_versioninfo_create()");
- return(MS_FAILURE);
- }
- status = SE_version_get_info(poolinfo->connection, data_params[2], version);
-
- if(status != SE_SUCCESS) {
-
- if (status == SE_INVALID_RELEASE) {
- /* The user has incongruent versions of SDE, ie 8.2 client and */
- /* 8.3 server set the state_id to SE_DEFAULT_STATE_ID, which means */
- /* no version queries are done */
- sde->state_id = SE_DEFAULT_STATE_ID;
- } else {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_version_get_info()");
- SE_versioninfo_free(version);
- return(MS_FAILURE);
- }
- } /* couldn't get version info */
-
- } /* version was specified */
-
- /* Get the STATEID from the given version and set the stream to */
- /* that if we didn't already set it to SE_DEFAULT_STATE_ID. */
- if (sde->state_id != SE_DEFAULT_STATE_ID) {
- status = SE_versioninfo_get_state_id(version, &sde->state_id);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_versioninfo_get_state_id()");
- SE_versioninfo_free(version);
- return(MS_FAILURE);
- }
-
- SE_versioninfo_free(version);
- status = SE_stateinfo_create (&state);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_stateinfo_create()");
- return(MS_FAILURE);
- }
- status = SE_state_get_info( poolinfo->connection,
- sde->state_id,
- state);
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "SE_state_get_info()");
- SE_stateinfo_free (state);
- return(MS_FAILURE);
- }
- if (SE_stateinfo_is_open (state)) {
- /* If the state is open for edits, we shouldn't be querying from it */
- sde_error( status,
- "msSDELayerOpen()",
- "SE_stateinfo_is_open() -- State for version is open");
- SE_stateinfo_free (state);
- return(MS_FAILURE);
- }
- SE_stateinfo_free (state);
- } /* if (!(sde->state_id == SE_DEFAULT_STATE_ID)) */
-
-
- /* done with the DATA stuff now */
- msFreeCharArray(data_params, numparams);
-
- status = SE_layerinfo_create(NULL, &(sde->layerinfo));
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "SE_layerinfo_create()");
- return(MS_FAILURE);
- }
-
-
- status = msSDEGetLayerInfo( layer,
- poolinfo->connection,
- sde->table,
- sde->column,
- layer->connection,
- sde->layerinfo);
-
- if(status != MS_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "msSDEGetLayerInfo()");
- return(MS_FAILURE);
- }
-
- status = SE_coordref_create(&(sde->coordref));
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "SE_coordref_create()");
- return(MS_FAILURE);
- }
-
- status = SE_layerinfo_get_coordref(sde->layerinfo, sde->coordref);
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "SE_layerinfo_get_coordref()");
- return(MS_FAILURE);
- }
-
- /* Get the layer extent and hang it on the layerinfo */
- status = SE_layerinfo_get_envelope(sde->layerinfo, &envelope);
- if(status != SE_SUCCESS) {
- sde_error(status,
- "msSDELayerOpen()",
- "SE_layerinfo_get_envelope()");
- return(MS_FAILURE);
- }
-
- sde->extent->minx = envelope.minx;
- sde->extent->miny = envelope.miny;
- sde->extent->maxx = envelope.maxx;
- sde->extent->maxy = envelope.maxy;
-
- /* reset the stream */
- status = SE_stream_close(poolinfo->stream, 1);
- if(status != SE_SUCCESS) {
- sde_error(status, "msSDELayerOpen()", "SE_stream_close()");
- return(MS_FAILURE);
- }
-
- /* Determine if we are big or little- endian for */
- /* working with the encoding */
- if( *((unsigned char *) &endian_test) == 1 )
- sde->bBigEndian = MS_FALSE;
- else
- sde->bBigEndian = MS_TRUE;
-
- /* point to the SDE layer information */
- /* (note this might actually be in another layer) */
- layer->layerinfo = sde;
- sde->connPoolInfo = poolinfo;
- return(MS_SUCCESS);
-#else
- msSetError(MS_MISCERR, "SDE support is not available.", "msSDELayerOpen()");
- return(MS_FAILURE);
-#endif
-}
-
-
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerClose */
-/* -------------------------------------------------------------------- */
-/* Closes the MapServer layer. This doesn't necessarily close the */
-/* connection to the layer. */
-/* -------------------------------------------------------------------- */
-int msSDELayerClose(layerObj *layer)
-{
-#ifdef USE_SDE
-
-
- msSDELayerInfo *sde=NULL;
-
- sde = layer->layerinfo;
-
- /* Silently return if layer not opened. */
- if (!msSDELayerIsOpen(layer)) return MS_SUCCESS;
-
- if(layer->debug)
- msDebug("msSDELayerClose(): Closing layer %s.\n", layer->name);
-
- if (sde->layerinfo) SE_layerinfo_free(sde->layerinfo);
- if (sde->coordref) SE_coordref_free(sde->coordref);
- if (sde->table) msFree(sde->table);
- if (sde->column) msFree(sde->column);
- if (sde->row_id_column) msFree(sde->row_id_column);
- if (sde->join_table) msFree(sde->join_table);
- if (sde->extent) msFree(sde->extent);
- if (sde->nBaseColumns) msFree(sde->nBaseColumns);
- if (sde->nJoinColumns) msFree(sde->nJoinColumns);
-
- msConnPoolRelease( layer, sde->connPoolInfo );
- if (layer->layerinfo) msFree(layer->layerinfo);
- layer->layerinfo = NULL;
- return MS_SUCCESS;
-
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerClose()");
- return(MS_FALSE);
-#endif
-}
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerCloseConnection */
-/* -------------------------------------------------------------------- */
-/* Virtual table function */
-/* -------------------------------------------------------------------- */
-int msSDELayerCloseConnection(layerObj *layer)
-{
-
-
-#ifdef USE_SDE
-
-
- msSDELayerInfo *sde=NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- return MS_SUCCESS; /* already closed */
- }
-
- sde = layer->layerinfo;
-
- if(layer->debug)
- msDebug("msSDELayerCloseConnection(): Closing connection for layer %s.\n", layer->name);
-
- msConnPoolRelease( layer, sde->connPoolInfo );
- sde->connPoolInfo = NULL;
- return (MS_SUCCESS);
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerClose()");
- return MS_FAILURE;
-#endif
-
- return MS_SUCCESS;
-}
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerWhichShapes */
-/* -------------------------------------------------------------------- */
-/* starts a stream query using spatial filter. Also limits the */
-/* query by the layer's FILTER item as well. */
-/* -------------------------------------------------------------------- */
-int msSDELayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
-{
-#ifdef USE_SDE
- long status;
- SE_ENVELOPE envelope;
- SE_SHAPE shape=0;
- SE_FILTER constraint;
- SE_QUERYINFO query_info = NULL;
- SE_SQL_CONSTRUCT* sql = NULL;
- char* proc_value=NULL;
- int query_order=SE_SPATIAL_FIRST;
-
- msSDELayerInfo *sde=NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerWhichShapes()");
- return(MS_FAILURE);
- }
-
- sde = layer->layerinfo;
-
- /* use the cached layer's extent. */
- /* there is NO overlap, return MS_DONE */
- /* (FIX: use this in ALL which shapes functions) */
- if(sde->extent->minx > rect.maxx) return(MS_DONE);
- if(sde->extent->maxx < rect.minx) return(MS_DONE);
- if(sde->extent->miny > rect.maxy) return(MS_DONE);
- if(sde->extent->maxy < rect.miny) return(MS_DONE);
-
- /* set spatial constraint search shape */
- /* crop against SDE layer extent *argh* */
- envelope.minx = MS_MAX(rect.minx, sde->extent->minx);
- envelope.miny = MS_MAX(rect.miny, sde->extent->miny);
- envelope.maxx = MS_MIN(rect.maxx, sde->extent->maxx);
- envelope.maxy = MS_MIN(rect.maxy, sde->extent->maxy);
-
- if( envelope.minx == envelope.maxx && envelope.miny == envelope.maxy) {
- /* fudge a rectangle so we have a valid one for generate_rectangle */
- /* FIXME: use the real shape for the query and set the filter_type
- to be an appropriate type */
- envelope.minx = envelope.minx - 0.001;
- envelope.maxx = envelope.maxx + 0.001;
- envelope.miny = envelope.miny - 0.001;
- envelope.maxy = envelope.maxy + 0.001;
- }
-
- status = SE_shape_create(sde->coordref, &shape);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "SE_shape_create()");
- return(MS_FAILURE);
- }
-
- status = SE_shape_generate_rectangle(&envelope, shape);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "SE_shape_generate_rectangle()");
- return(MS_FAILURE);
- }
- constraint.filter.shape = shape;
-
- /* set spatial constraint column and table */
- strcpy(constraint.table, sde->table);
- strcpy(constraint.column, sde->column);
-
- /* set a couple of other spatial constraint properties */
- constraint.method = SM_ENVP;
- constraint.filter_type = SE_SHAPE_FILTER;
- constraint.truth = TRUE;
-
- if (!sde->join_table) {
- query_info = getSDEQueryInfo(layer);
- if (!query_info) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "getSDEQueryInfo()");
- return(MS_FAILURE);
- }
- } else {
- if (!layer->filter.string) {
- sde_error( -51,
- "msSDELayerWhichShapes()",
- "A join table is specified, but no FILTER is"
- " defined that joins the two tables together");
- return(MS_FAILURE);
- }
- sql = getSDESQLConstructInfo(layer, NULL);
- }
-
- /* reset the stream */
- status = SE_stream_close(sde->connPoolInfo->stream, 1);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "SE_stream_close()");
- return(MS_FAILURE);
- }
- /* Set the stream state back to the state_id of our user-specified version */
- /* This must be done every time after the stream is reset before the */
- /* query happens. */
-
- if (sde->state_id != SE_DEFAULT_STATE_ID) {
-
- status = SE_stream_set_state(sde->connPoolInfo->stream,
- sde->state_id,
- sde->state_id,
- SE_STATE_DIFF_NOCHECK);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerOpen()",
- "SE_stream_set_state()");
- return(MS_FAILURE);
- }
- }
-
- if (!sql) {
- status = SE_stream_query_with_info(sde->connPoolInfo->stream, query_info);
- if(status != SE_SUCCESS) {
- sde_error(status,
- "msSDELayerWhichShapes()",
- "SE_stream_query_with_info()");
- return(MS_FAILURE);
- }
- } else {
- status = SE_stream_query(sde->connPoolInfo->stream, layer->numitems, (const CHAR**) layer->items, sql);
- if(status != SE_SUCCESS) {
- sde_error(status,
- "msSDELayerWhichShapes()",
- "SE_stream_query()");
- return(MS_FAILURE);
- }
- /* Free up the sql now that we've queried */
- SE_sql_construct_free(sql);
- }
- proc_value = msLayerGetProcessingKey(layer,"QUERYORDER");
- if(proc_value && strcasecmp(proc_value, "ATTRIBUTE") == 0)
- query_order = SE_ATTRIBUTE_FIRST;
-
- status = SE_stream_set_spatial_constraints( sde->connPoolInfo->stream,
- query_order,
- FALSE,
- 1,
- &constraint);
-
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "SE_stream_set_spatial_constraints()");
- return(MS_FAILURE);
- }
-
- /* *should* be ready to step through shapes now */
- status = SE_stream_execute(sde->connPoolInfo->stream);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerWhichShapes()",
- "SE_stream_execute()");
- return(MS_FAILURE);
- }
-
- /* clean-up */
- SE_shape_free(shape);
- SE_queryinfo_free (query_info);
-
- return(MS_SUCCESS);
-#else
- msSetError(MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerWhichShapes()");
- return(MS_FAILURE);
-#endif
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerNextShape */
-/* -------------------------------------------------------------------- */
-/* Recursively gets the shapes for the SDE layer */
-/* -------------------------------------------------------------------- */
-int msSDELayerNextShape(layerObj *layer, shapeObj *shape)
-{
-#ifdef USE_SDE
- long status;
-
- msSDELayerInfo *sde=NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerNextShape()");
- return(MS_FAILURE);
- }
-
- sde = layer->layerinfo;
-
- /* fetch the next record from the stream */
- status = SE_stream_fetch(sde->connPoolInfo->stream);
-
- if(status == SE_FINISHED)
- return(MS_DONE);
- else if(status != MS_SUCCESS) {
- sde_error( status,
- "msSDELayerNextShape()",
- "SE_stream_fetch()");
- return(MS_FAILURE);
- }
-
- /* get the shape and values (first column is the shape id, */
- /* second is the shape itself) */
- status = sdeGetRecord(layer, shape);
- if(status != MS_SUCCESS)
- return(MS_FAILURE); /* something went wrong fetching the record/shape */
-
- if(shape->numlines == 0) /* null shape, skip it */
- return(msSDELayerNextShape(layer, shape));
-
- return(MS_SUCCESS);
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerNextShape()");
- return(MS_FAILURE);
-#endif
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerGetExtent */
-/* -------------------------------------------------------------------- */
-/* Returns the extent of the SDE layer */
-/* -------------------------------------------------------------------- */
-int msSDELayerGetExtent(layerObj *layer, rectObj *extent)
-{
-#ifdef USE_SDE
-
- msSDELayerInfo *sde = NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerGetExtent()");
- return(MS_FAILURE);
- }
-
- sde = layer->layerinfo;
-
- /* copy our cached extent members into the caller's extent */
- extent->minx = sde->extent->minx;
- extent->miny = sde->extent->miny;
- extent->maxx = sde->extent->maxx;
- extent->maxy = sde->extent->maxy;
-
- return(MS_SUCCESS);
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerGetExtent()");
- return(MS_FAILURE);
-#endif
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerGetShape */
-/* -------------------------------------------------------------------- */
-/* Queries SDE for a shape (and its attributes, if requested) */
-/* given the ID (which is the MS_SDE_ROW_ID_COLUMN column */
-/* -------------------------------------------------------------------- */
-int msSDELayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
-{
-#ifdef USE_SDE
- long status;
-
- SE_SQL_CONSTRUCT* sql;
-
- msSDELayerInfo *sde=NULL;
-
- long shapeindex = record->shapeindex;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerGetShape()");
- return(MS_FAILURE);
- }
-
- sde = layer->layerinfo;
-
- /* must be at least one thing to retrieve (i.e. spatial column) */
- if(layer->numitems < 1) {
- msSetError( MS_MISCERR,
- "No items requested, SDE requires at least one item.",
- "msSDELayerGetShape()");
- return(MS_FAILURE);
- }
-
- /* reset the stream */
- status = SE_stream_close(sde->connPoolInfo->stream, 1);
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerGetShape()",
- "SE_stream_close()");
- return(MS_FAILURE);
- }
-
- if (!sde->join_table) {
-
- status = SE_stream_fetch_row( sde->connPoolInfo->stream,
- sde->table,
- shapeindex,
- (short)(layer->numitems),
- (const char **)layer->items);
-
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerGetShape()",
- "SE_stream_fetch_row()");
- return(MS_FAILURE);
- }
- } else {
- sql = getSDESQLConstructInfo(layer, &shapeindex);
-
- status = SE_stream_query(sde->connPoolInfo->stream, layer->numitems, (const CHAR**) layer->items, sql);
- ;
- if(status != SE_SUCCESS) {
- sde_error(status,
- "msSDELayerWhichShapes()",
- "SE_stream_query()");
- return(MS_FAILURE);
- }
-
- /* Free up the sql now that we've queried */
- SE_sql_construct_free(sql);
-
- /* *should* be ready to step through shapes now */
- status = SE_stream_execute(sde->connPoolInfo->stream);
-
- if(status != SE_SUCCESS) {
- sde_error(status,
- "SE_stream_execute()",
- "SE_stream_execute()");
- return(MS_FAILURE);
- }
-
- /* fetch the next record from the stream */
- status = SE_stream_fetch(sde->connPoolInfo->stream);
-
- }
- status = sdeGetRecord(layer, shape);
- if(status != MS_SUCCESS)
- return(MS_FAILURE); /* something went wrong fetching the record/shape */
-
- return(MS_SUCCESS);
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerGetShape()");
- return(MS_FAILURE);
-#endif
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerGetSpatialColumn */
-/* -------------------------------------------------------------------- */
-/* A helper function to return the spatial column for */
-/* an opened SDE layer */
-/* */
-/* The caller owns the string after it is returned. */
-/* -------------------------------------------------------------------- */
-char *msSDELayerGetSpatialColumn(layerObj *layer)
-{
-#ifdef USE_SDE
-
- msSDELayerInfo *sde=NULL;
-
- if(!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerGetSpatialColumn()");
- return NULL;
- }
-
- sde = layer->layerinfo;
-
- return(msStrdup(sde->column));
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerGetSpatialColumn()");
- return(NULL);
-#endif
-}
-/* -------------------------------------------------------------------- */
-/* msSDELayerInitItemInfo */
-/* -------------------------------------------------------------------- */
-/* Connects to SDE and returns the column names and SDE's column */
-/* descriptions. It stores them on layer->items and layer->iteminfo */
-/* If a join table has been specified through the processing option, */
-/* it's column definitions are appended to both lists. */
-/* -------------------------------------------------------------------- */
-int
-msSDELayerInitItemInfo(layerObj *layer)
-{
-#ifdef USE_SDE
-
- int i,j;
- /* short nBaseColumns, nJoinColumns; */
- long status;
- short nbasecol, njoincol;
- SE_COLUMN_DEF *all_itemdefs = NULL;
-
- msSDELayerInfo *sde = NULL;
- /* nBaseColumns = 0; */
- /* nJoinColumns = 0; */
-
- char *proc_key = NULL;
-
- if (!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR,
- "SDE layer has not been opened.",
- "msSDELayerInitItemInfo()");
- return(MS_FAILURE);
- }
-
- sde = layer->layerinfo;
-
- /*
- ** This insanity is because we keep around the number of
- ** columns we have along with the layer info. If the total
- ** number of columns that we have doesn't match when we're
- ** called the second time around, we have to throw an error or
- ** msWhichShape will add an item onto our layer->items list, which
- ** in turn doesn't match the layer->iteminfo list of SDE column definitions.
- */
-
- nbasecol =*(sde->nBaseColumns);
- njoincol =*(sde->nJoinColumns);
-
- /* Hop right out again if we've already gotten the layer->iteminfo */
- if (layer->iteminfo && layer->items) {
- if (layer->debug)
- msDebug("Column information has already been gotten..."
- " returning from msSDELayerInitItemInfo\n");
- if (layer->numitems != ( nbasecol+ njoincol)) {
- /* if someone has modified the size of the items list,
- ** it is because it didn't find a column name (and we have
- ** already given them all because we have iteminfo and items
- ** If this is the case, we can't continue. */
-
- msSetError( MS_SDEERR,
- "A specified CLASSITEM, FILTERITEM, or expression key cannot be found",
- "msSDELayerInitItemInfo()");
- return(MS_FAILURE);
- }
- return (MS_SUCCESS);
- }
- if (layer->debug)
- msDebug("Getting all column information in msSDELayerInitItemInfo\n");
-
- if (!(sde->row_id_column)) {
-
- sde->row_id_column = msSDELayerGetRowIDColumn(layer);
- } else {
- /* Don't think this should happen. If it does, it'd be good to know why. */
- if (layer->debug)
- msDebug ("RowID column has already been gotten... msSDELayerInitItemInfo\n");
- }
-
- status = SE_table_describe( sde->connPoolInfo->connection,
- sde->table,
- (short*)&(nbasecol),
- &(sde->basedefs));
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerInitItemInfo()",
- "SE_table_describe() (base table)");
- return(MS_FAILURE);
- }
-
- if (sde->join_table) {
- status = SE_table_describe( sde->connPoolInfo->connection,
- sde->join_table,
- (short*)&(njoincol),
- &(sde->joindefs));
-
- if(status != SE_SUCCESS) {
- sde_error( status,
- "msSDELayerInitItemInfo()",
- "SE_table_describe() (join table). Did you specify the name of the join table properly?");
- return(MS_FAILURE);
- }
- }
-
- layer->numitems = nbasecol + njoincol;
-
- /* combine the itemdefs of both tables into one */
- all_itemdefs = (SE_COLUMN_DEF *) calloc( layer->numitems, sizeof(SE_COLUMN_DEF));
- MS_CHECK_ALLOC(all_itemdefs, sizeof(SE_COLUMN_DEF), MS_FAILURE);
-
- for(i=0; i<nbasecol; i++) all_itemdefs[i] = sde->basedefs[i];
-
- if (njoincol > 0) {
- for(i=0; i<njoincol; i++) {
- all_itemdefs[i+nbasecol]=sde->joindefs[i];
- }
- }
-
- if (!layer->iteminfo) {
- layer->iteminfo = (SE_COLUMN_DEF *) calloc( layer->numitems, sizeof(SE_COLUMN_DEF));
- if(!layer->iteminfo) {
- msSetError( MS_MEMERR,
- "Error allocating SDE item information.",
- "msSDELayerInitItemInfo()");
- free(all_itemdefs);
- return(MS_FAILURE);
- }
- } else {
- /* Don't think this should happen. If it does, it'd be good to know why. */
- if (layer->debug)
- msDebug ("layer->iteminfo has already been initialized... msSDELayerInitItemInfo\n");
- }
-
- if (!(layer->items)) {
- /* gather up all of the column names and put them onto layer->items */
- layer->items = (char **)malloc(layer->numitems*sizeof(char *)+10);
- MS_CHECK_ALLOC(layer->items, layer->numitems*sizeof(char *)+10, MS_FAILURE);
- } else {
- msDebug("layer->items has already been initialized!!!");
- }
-
- proc_key = msLayerGetProcessingKey(layer,"ATTRIBUTE_QUALIFIED");
- if (!sde->join_table &&
- (proc_key == NULL || strcasecmp( proc_key, "TRUE") != 0)) {
- for(i=0; i<layer->numitems; i++) layer->items[i] = msStrdup(all_itemdefs[i].column_name);
- for(i=0; i<layer->numitems; i++) { /* requested columns */
- for(j=0; j<layer->numitems; j++) { /* all columns */
- if(strcasecmp(layer->items[i], all_itemdefs[j].column_name) == 0) {
- /* found it */
- ((SE_COLUMN_DEF *)(layer->iteminfo))[i] = all_itemdefs[j];
- break;
- }
- }
- }
- } else {
- for(i=0; i<nbasecol; i++) {
- layer->items[i] = (char*) msSmallMalloc((SE_QUALIFIED_COLUMN_LEN+1)*sizeof (char));
- layer->items[i][0] = '\0';
- strcat(layer->items[i], sde->table);
- strcat(layer->items[i], ".");
- strcat(layer->items[i], all_itemdefs[i].column_name);
- ((SE_COLUMN_DEF *)(layer->iteminfo))[i] = all_itemdefs[i];
-
- }
- for(i=nbasecol; i<layer->numitems; i++) {
- layer->items[i] = (char*) msSmallMalloc((SE_QUALIFIED_COLUMN_LEN+1)*sizeof (char));
- layer->items[i][0] = '\0';
-
- strcat(layer->items[i], sde->join_table);
- strcat(layer->items[i], ".");
- strcat(layer->items[i], all_itemdefs[i].column_name);
- ((SE_COLUMN_DEF *)(layer->iteminfo))[i] = all_itemdefs[i];
-
- }
- }
- /* Tell the user which columns we've gotten */
- if (layer->debug)
- for(i=0; i<layer->numitems; i++)
- msDebug("msSDELayerInitItemInfo(): getting info for %s\n", layer->items[i]);
-
- *(sde->nJoinColumns) = njoincol;
- *(sde->nBaseColumns) = nbasecol;
- msFree(all_itemdefs);
- return MS_SUCCESS;
-
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerInitItemInfo()");
- return(MS_FAILURE);
-#endif
-}
-
-
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerCreateItems */
-/* -------------------------------------------------------------------- */
-/* Inits the stuff we'll be querying from SDE */
-/* -------------------------------------------------------------------- */
-int msSDELayerCreateItems(layerObj *layer, int nt)
-{
- int status;
- /* status = msSDELayerCreateItems(layer, 0); */
- status = msSDELayerInitItemInfo(layer);
- if (status != MS_SUCCESS) {
- msSetError( MS_MISCERR,
- "Unable to create SDE column info",
- "msSDELayerCreateItemsInfo()");
- return(MS_FAILURE);
- }
- return (MS_SUCCESS);
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerGetItems */
-/* -------------------------------------------------------------------- */
-/* Queries the SDE table's column names into layer->iteminfo */
-/* -------------------------------------------------------------------- */
-int msSDELayerGetItems(layerObj *layer)
-{
-#ifdef USE_SDE
- int status;
- status = msSDELayerInitItemInfo(layer);
-
- if (status != MS_SUCCESS) {
- msSetError( MS_MISCERR,
- "Unable to create SDE column info",
- "msSDELayerGetItems()");
- return(MS_FAILURE);
- }
- return (MS_SUCCESS);
-
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerGetItems()");
- return(MS_FAILURE);
-#endif
-}
-
-/* -------------------------------------------------------------------- */
-/* msSDELayerFreeItemInfo */
-/* -------------------------------------------------------------------- */
-void msSDELayerFreeItemInfo(layerObj *layer)
-{
-#ifdef USE_SDE
- msSDELayerInfo *sde = NULL;
- int i;
- if (!msSDELayerIsOpen(layer)) {
- msSetError( MS_SDEERR, "SDE layer has not been opened.", "msSDELayerFreeItemInfo()");
- }
- sde = layer->layerinfo;
- if (sde != NULL && sde->basedefs) {
- SE_table_free_descriptions(sde->basedefs);
- sde->basedefs = NULL;
- }
- if (sde != NULL && sde->joindefs) {
- SE_table_free_descriptions(sde->joindefs);
- sde->joindefs = NULL;
- }
- if (layer->iteminfo) {
- msFree(layer->iteminfo);
- layer->iteminfo = NULL;
- }
-
- if (layer->items) {
- for (i=0; i< layer->numitems; i++) {
- msFree(layer->items[i]);
- }
- msFree(layer->items);
- layer->items = NULL;
- layer->numitems = 0;
- }
-
-#else
- msSetError( MS_MISCERR,
- "SDE support is not available.",
- "msSDELayerFreeItemInfo()");
-#endif
-}
-
-#ifdef USE_SDE_PLUGIN
-MS_DLL_EXPORT int
-PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
-{
- assert(layer != NULL);
- assert(vtable != NULL);
-
- vtable->LayerInitItemInfo = msSDELayerInitItemInfo;
- vtable->LayerFreeItemInfo = msSDELayerFreeItemInfo;
- vtable->LayerOpen = msSDELayerOpen;
- vtable->LayerIsOpen = msSDELayerIsOpen;
- vtable->LayerWhichShapes = msSDELayerWhichShapes;
- vtable->LayerNextShape = msSDELayerNextShape;
- vtable->LayerGetShape = msSDELayerGetShape;
- vtable->LayerClose = msSDELayerClose;
- vtable->LayerGetItems = msSDELayerGetItems;
- vtable->LayerGetExtent = msSDELayerGetExtent;
-
- /* layer->vtable->LayerGetAutoStyle, use default */
- /* layer->vtable->LayerApplyFilterToLayer, use default */
-
- /* SDE uses pooled connections, close from msCloseConnections */
- vtable->LayerCloseConnection = msSDELayerCloseConnection;
-
- vtable->LayerSetTimeFilter = msLayerMakePlainTimeFilter;
- vtable->LayerCreateItems = msSDELayerCreateItems;
- /* layer->vtable->LayerGetNumFeatures, use default */
-
- return MS_SUCCESS;
-}
-#endif
-
-int
-msSDELayerInitializeVirtualTable(layerObj *layer)
-{
- assert(layer != NULL);
- assert(layer->vtable != NULL);
-
- layer->vtable->LayerInitItemInfo = msSDELayerInitItemInfo;
- layer->vtable->LayerFreeItemInfo = msSDELayerFreeItemInfo;
- layer->vtable->LayerOpen = msSDELayerOpen;
- layer->vtable->LayerIsOpen = msSDELayerIsOpen;
- layer->vtable->LayerWhichShapes = msSDELayerWhichShapes;
- layer->vtable->LayerNextShape = msSDELayerNextShape;
- layer->vtable->LayerGetShape = msSDELayerGetShape;
- layer->vtable->LayerClose = msSDELayerClose;
- layer->vtable->LayerGetItems = msSDELayerGetItems;
- layer->vtable->LayerGetExtent = msSDELayerGetExtent;
- /* layer->vtable->LayerGetAutoStyle, use default */
- /* layer->vtable->LayerApplyFilterToLayer, use default */
- layer->vtable->LayerCloseConnection = msSDELayerCloseConnection; /* SDE uses pooled connections, close from msCloseConnections */
- layer->vtable->LayerSetTimeFilter = msLayerMakePlainTimeFilter;
- layer->vtable->LayerCreateItems = msSDELayerCreateItems;
- /* layer->vtable->LayerGetNumFeatures, use default */
-
- return MS_SUCCESS;
-}
-
-
-
diff --git a/mapsearch.c b/mapsearch.c
index a8e268c..e63b232 100644
--- a/mapsearch.c
+++ b/mapsearch.c
@@ -43,7 +43,7 @@
/*
** Returns MS_TRUE if rectangles a and b overlap
*/
-int msRectOverlap(rectObj *a, rectObj *b)
+int msRectOverlap(const rectObj *a, const rectObj *b)
{
if(a->minx > b->maxx) return(MS_FALSE);
if(a->maxx < b->minx) return(MS_FALSE);
@@ -77,7 +77,7 @@ int msRectIntersect( rectObj *a, const rectObj *b )
/*
** Returns MS_TRUE if rectangle a is contained in rectangle b
*/
-int msRectContained(rectObj *a, rectObj *b)
+int msRectContained(const rectObj *a, const rectObj *b)
{
if(a->minx >= b->minx && a->maxx <= b->maxx)
if(a->miny >= b->miny && a->maxy <= b->maxy)
@@ -96,7 +96,7 @@ void msMergeRect(rectObj *a, rectObj *b)
a->maxy = MS_MAX(a->maxy, b->maxy);
}
-int msPointInRect(pointObj *p, rectObj *rect)
+int msPointInRect(const pointObj *p, const rectObj *rect)
{
if(p->x < rect->minx) return(MS_FALSE);
if(p->x > rect->maxx) return(MS_FALSE);
@@ -173,7 +173,7 @@ int msPointInPolygon(pointObj *p, lineObj *c)
** cases. In due time... -SDL-
*/
-int msIntersectSegments(pointObj *a, pointObj *b, pointObj *c, pointObj *d) /* from comp.graphics.alogorithms FAQ */
+int msIntersectSegments(const pointObj *a, const pointObj *b, const pointObj *c, const pointObj *d) /* from comp.graphics.alogorithms FAQ */
{
double r, s;
diff --git a/mapserv.c b/mapserv.c
index e9499c5..d8e5e28 100644
--- a/mapserv.c
+++ b/mapserv.c
@@ -162,7 +162,8 @@ int main(int argc, char *argv[])
for( iArg = 1; iArg < argc; iArg++ ) {
/* Keep only "-v", "-nh" and "QUERY_STRING=..." enabled by default.
* The others will require an explicit -DMS_ENABLE_CGI_CL_DEBUG_ARGS
- * at compile time.
+ * at compile time. Do *NOT* enable them since they can cause security
+ * problems : https://github.com/mapserver/mapserver/issues/3485
*/
if( strcmp(argv[iArg],"-v") == 0 ) {
printf("%s\n", msGetVersion());
@@ -170,10 +171,29 @@ int main(int argc, char *argv[])
exit(0);
} else if(strcmp(argv[iArg], "-nh") == 0) {
sendheaders = MS_FALSE;
+ msIO_setHeaderEnabled( MS_FALSE );
} else if( strncmp(argv[iArg], "QUERY_STRING=", 13) == 0 ) {
/* Debugging hook... pass "QUERY_STRING=..." on the command-line */
putenv( "REQUEST_METHOD=GET" );
putenv( argv[iArg] );
+ } else if (strcmp(argv[iArg], "--h") == 0 || strcmp(argv[iArg], "--help") == 0) {
+ printf("Usage: mapserv [--help] [-v] [-nh] [QUERY_STRING=value]\n");
+#ifdef MS_ENABLE_CGI_CL_DEBUG_ARGS
+ printf(" [-tmpbase dirname] [-t mapfilename] [MS_ERRORFILE=value] [MS_DEBUGLEVEL=value]\n");
+#endif
+ printf("\n");
+ printf("Options :\n");
+ printf(" -h, --help Display this help message.\n");
+ printf(" -v Display version and exit.\n");
+ printf(" -nh Suppress HTTP headers in CGI mode.\n");
+ printf(" QUERY_STRING=value Set the QUERY_STRING in GET request mode.\n");
+#ifdef MS_ENABLE_CGI_CL_DEBUG_ARGS
+ printf(" -tmpbase dirname Define a forced temporary directory.\n");
+ printf(" -t mapfilename Display the tokens of the mapfile after parsing.\n");
+ printf(" MS_ERRORFILE=filename Set error file.\n");
+ printf(" MS_DEBUGLEVEL=value Set debug level.\n");
+#endif
+ exit(0);
}
#ifdef MS_ENABLE_CGI_CL_DEBUG_ARGS
else if( iArg < argc-1 && strcmp(argv[iArg], "-tmpbase") == 0) {
@@ -214,10 +234,6 @@ int main(int argc, char *argv[])
#ifdef USE_FASTCGI
msIO_installFastCGIRedirect();
-#ifdef WIN32
- atexit( msCleanupOnExit );
-#endif
-
/* In FastCGI case we loop accepting multiple requests. In normal CGI */
/* use we only accept and process one request. */
while( FCGI_Accept() >= 0 ) {
@@ -263,16 +279,14 @@ int main(int argc, char *argv[])
end_request:
- if(mapserv) {
- if(mapserv->map && mapserv->map->debug >= MS_DEBUGLEVEL_TUNING) {
- msGettimeofday(&requestendtime, NULL);
- msDebug("mapserv request processing time (msLoadMap not incl.): %.3fs\n",
- (requestendtime.tv_sec+requestendtime.tv_usec/1.0e6)-
- (requeststarttime.tv_sec+requeststarttime.tv_usec/1.0e6) );
- }
- msCGIWriteLog(mapserv,MS_FALSE);
- msFreeMapServObj(mapserv);
+ if(mapserv->map && mapserv->map->debug >= MS_DEBUGLEVEL_TUNING) {
+ msGettimeofday(&requestendtime, NULL);
+ msDebug("mapserv request processing time (msLoadMap not incl.): %.3fs\n",
+ (requestendtime.tv_sec+requestendtime.tv_usec/1.0e6)-
+ (requeststarttime.tv_sec+requeststarttime.tv_usec/1.0e6) );
}
+ msCGIWriteLog(mapserv,MS_FALSE);
+ msFreeMapServObj(mapserv);
#ifdef USE_FASTCGI
/* FCGI_ --- return to top of loop */
msResetErrorList();
diff --git a/mapserver-config.h.in b/mapserver-config.h.in
index c8a0292..7f889ab 100644
--- a/mapserver-config.h.in
+++ b/mapserver-config.h.in
@@ -2,13 +2,9 @@
#define _MAPSERVER_CONFIG_H
#cmakedefine USE_PROJ 1
-#cmakedefine USE_GD 1
-#cmakedefine USE_GD_GIF 1
-#cmakedefine USE_GD_PNG 1
-#cmakedefine USE_GD_JPEG 1
-#cmakedefine USE_GD_FREETYPE 1
#cmakedefine USE_POSTGIS 1
#cmakedefine USE_GDAL 1
+#cmakedefine USE_PIXMAN 1
#cmakedefine USE_OGR 1
#cmakedefine USE_WMS_SVR 1
#cmakedefine USE_WCS_SVR 1
@@ -24,6 +20,7 @@
#cmakedefine USE_PNG 1
#cmakedefine USE_ICONV 1
#cmakedefine USE_FRIBIDI 1
+#cmakedefine USE_HARFBUZZ 1
#cmakedefine USE_LIBXML2 1
#cmakedefine USE_FASTCGI 1
#cmakedefine USE_MYSQL 1
@@ -39,6 +36,8 @@
#cmakedefine USE_RSVG 1
#cmakedefine USE_SDE 1
#cmakedefine SDE64 1
+#cmakedefine USE_EXTENDED_DEBUG 1
+#cmakedefine USE_V8_MAPSCRIPT 1
/*windows specific hacks*/
#if defined(_WIN32)
diff --git a/mapserver.h b/mapserver.h
index 9267b40..e2d396d 100644
--- a/mapserver.h
+++ b/mapserver.h
@@ -31,8 +31,6 @@
#include "mapserver-config.h"
-
-
/*
** Main includes. If a particular header was needed by several .c files then
** I just put it here. What the hell, it works and it's all right here. -SDL-
@@ -64,6 +62,16 @@
#define MS_DLL_EXPORT
#endif
+#if defined(__GNUC__)
+#define WARN_UNUSED __attribute__((warn_unused_result))
+#define LIKELY(x) __builtin_expect((x),1)
+#define UNLIKELY(x) __builtin_expect((x),0)
+#else
+#define WARN_UNUSED
+#define LIKELY(x) (x)
+#define UNLIKELY(x) (x)
+#endif
+
/* definition of ms_int32/ms_uint32 */
#include <limits.h>
#ifndef _WIN32
@@ -98,15 +106,20 @@ typedef uint32_t ms_uint32;
#include "mapserver-api.h"
-
+#ifndef SWIG
/*forward declaration of rendering object*/
typedef struct rendererVTableObj rendererVTableObj;
typedef struct tileCacheObj tileCacheObj;
-#ifndef SWIG
+typedef struct textPathObj textPathObj;
+typedef struct textRunObj textRunObj;
+typedef struct glyph_element glyph_element;
+typedef struct face_element face_element;
#endif
+
/* ms_bitarray is used by the bit mask in mapbit.c */
typedef ms_uint32 * ms_bitarray;
+typedef const ms_uint32 *ms_const_bitarray;
#include "maperror.h"
#include "mapprimitive.h"
@@ -119,10 +132,6 @@ typedef ms_uint32 * ms_bitarray;
#include "mapproject.h"
#include "cgiutil.h"
-#ifdef USE_GD
-#include <gd.h>
-#endif
-
#include <sys/types.h> /* regular expression support */
@@ -137,6 +146,7 @@ typedef ms_uint32 * ms_bitarray;
#include "ogr_api.h"
#endif
+
/* EQUAL and EQUALN are defined in cpl_port.h, so add them in here if ogr was not included */
#ifndef EQUAL
@@ -199,9 +209,6 @@ extern "C" {
#define MS_YES 1
#define MS_NO 0
- /* For layer transparency, allows alpha transparent pixmaps to be used
- with RGB map images */
-#define MS_GD_ALPHA 1000
/* Number of layer, class and style ptrs to alloc at once in the
corresponding msGrow...() functions. Replaces former MS_MAXLAYERS,
@@ -307,6 +314,8 @@ extern "C" {
#define MS_ABS(a) (((a)<0) ? -(a) : (a))
#define MS_SGN(a) (((a)<0) ? -1 : 1)
+#define MS_STRING_IS_NULL_OR_EMPTY(s) ((!s || s[0] == '\0') ? MS_TRUE:MS_FALSE)
+
#define MS_NINT_GENERIC(x) ((x) >= 0.0 ? ((long) ((x)+.5)) : ((long) ((x)-.5)))
#ifdef _MSC_VER
@@ -322,6 +331,7 @@ extern "C" {
#if defined(HAVE_LRINT) && !defined(USE_GENERIC_MS_NINT)
# define MS_NINT(x) lrint(x)
/*# define MS_NINT(x) lround(x) */
+/* note that lrint rounds .5 to the nearest *even* integer, i.e. lrint(0.5)=0,lrint(1.5)=2 */
#elif defined(_MSC_VER) && defined(_WIN32) && !defined(USE_GENERIC_MS_NINT)
static __inline long int MS_NINT (double flt)
{
@@ -348,19 +358,10 @@ extern "C" {
#endif
-#define MS_PEN_TRANSPARENT -1
-#define MS_PEN_UNSET -4
-
/* #define MS_VALID_EXTENT(minx, miny, maxx, maxy) (((minx<maxx) && (miny<maxy))?MS_TRUE:MS_FALSE) */
#define MS_VALID_EXTENT(rect) (((rect.minx < rect.maxx && rect.miny < rect.maxy))?MS_TRUE:MS_FALSE)
-#ifdef USE_GD
-#define MS_INIT_COLOR(color,r,g,b,a) { (color).red = r; (color).green = g; (color).blue = b; (color).pen = MS_PEN_UNSET; (color).alpha=a; }
-#define RESOLVE_PEN_GD(img,color) { if( (color).pen == MS_PEN_UNSET ) msImageSetPenGD( img, &(color) ); }
- MS_DLL_EXPORT int msImageSetPenGD(gdImagePtr img, colorObj *color);
-#else
#define MS_INIT_COLOR(color,r,g,b,a) { (color).red = r; (color).green = g; (color).blue = b; (color).alpha=a; }
-#endif
#define MS_VALID_COLOR(color) (((color).red==-1 || (color).green==-1 || (color).blue==-1)?MS_FALSE:MS_TRUE)
#define MS_COMPARE_COLOR(color1, color2) (((color2).red==(color1).red && (color2).green==(color1).green && (color2).blue==(color1).blue)?MS_TRUE:MS_FALSE)
#define MS_TRANSPARENT_COLOR(color) (((color).alpha==0 || (color).red==-255 || (color).green==-255 || (color).blue==-255)?MS_TRUE:MS_FALSE)
@@ -369,9 +370,6 @@ extern "C" {
#define MS_IMAGE_MIME_TYPE(format) (format->mimetype ? format->mimetype : "unknown")
#define MS_IMAGE_EXTENSION(format) (format->extension ? format->extension : "unknown")
-#ifdef USE_GD
-#define MS_DRIVER_GD(format) (strncasecmp((format)->driver,"gd/",3)==0)
-#endif
#define MS_DRIVER_SWF(format) (strncasecmp((format)->driver,"swf",3)==0)
#define MS_DRIVER_GDAL(format) (strncasecmp((format)->driver,"gdal/",5)==0)
#define MS_DRIVER_IMAGEMAP(format) (strncasecmp((format)->driver,"imagemap",8)==0)
@@ -394,8 +392,8 @@ extern "C" {
#define MS_RENDER_WITH_CAIRO_SVG 103
#define MS_RENDER_WITH_OGL 104
#define MS_RENDER_WITH_AGG 105
-#define MS_RENDER_WITH_GD 106
-#define MS_RENDER_WITH_KML 107
+#define MS_RENDER_WITH_KML 106
+#define MS_RENDER_WITH_UTFGRID 107
#ifndef SWIG
@@ -408,22 +406,24 @@ extern "C" {
#define MS_RENDERER_PLUGIN(format) ((format)->renderer > MS_RENDER_WITH_PLUGIN)
-#define MS_CELLSIZE(min,max,d) ((max - min)/(d-1)) /* where min/max are from an MapServer pixel center-to-pixel center extent */
-#define MS_OWS_CELLSIZE(min,max,d) ((max - min)/d) /* where min/max are from an OGC pixel outside edge-to-pixel outside edge extent */
-#define MS_MAP2IMAGE_X(x,minx,cx) (MS_NINT((x - minx)/cx))
-#define MS_MAP2IMAGE_Y(y,maxy,cy) (MS_NINT((maxy - y)/cy))
-#define MS_IMAGE2MAP_X(x,minx,cx) (minx + cx*x)
-#define MS_IMAGE2MAP_Y(y,maxy,cy) (maxy - cy*y)
+#define MS_CELLSIZE(min,max,d) (((max) - (min))/((d)-1)) /* where min/max are from an MapServer pixel center-to-pixel center extent */
+#define MS_OWS_CELLSIZE(min,max,d) (((max) - (min))/(d)) /* where min/max are from an OGC pixel outside edge-to-pixel outside edge extent */
+#define MS_MAP2IMAGE_X(x,minx,cx) (MS_NINT(((x) - (minx))/(cx)))
+#define MS_MAP2IMAGE_Y(y,maxy,cy) (MS_NINT(((maxy) - (y))/(cy)))
+#define MS_IMAGE2MAP_X(x,minx,cx) ((minx) + (cx)*(x))
+#define MS_IMAGE2MAP_Y(y,maxy,cy) ((maxy) - (cy)*(y))
/* these versions of MS_MAP2IMAGE takes 1/cellsize and is much faster */
-#define MS_MAP2IMAGE_X_IC(x,minx,icx) (MS_NINT((x - minx)*icx))
-#define MS_MAP2IMAGE_Y_IC(y,maxy,icy) (MS_NINT((maxy - y)*icy))
+#define MS_MAP2IMAGE_X_IC(x,minx,icx) (MS_NINT(((x) - (minx))*(icx)))
+#define MS_MAP2IMAGE_Y_IC(y,maxy,icy) (MS_NINT(((maxy) - (y))*(icy)))
+#define MS_MAP2IMAGE_XCELL_IC(x,minx,icx) ((int)(((x) - (minx))*(icx)))
+#define MS_MAP2IMAGE_YCELL_IC(y,maxy,icy) ((int)(((maxy) - (y))*(icy)))
-#define MS_MAP2IMAGE_X_IC_DBL(x,minx,icx) ((x - minx)*icx)
-#define MS_MAP2IMAGE_Y_IC_DBL(y,maxy,icy) ((maxy - y)*icy)
+#define MS_MAP2IMAGE_X_IC_DBL(x,minx,icx) (((x) - (minx))*(icx))
+#define MS_MAP2IMAGE_Y_IC_DBL(y,maxy,icy) (((maxy) - (y))*(icy))
-#define MS_MAP2IMAGE_X_IC_SNAP(x,minx,icx,res) ((MS_NINT((x - minx)*icx*res))/(res))
-#define MS_MAP2IMAGE_Y_IC_SNAP(y,maxy,icy,res) ((MS_NINT((maxy - y)*icy*res))/(res))
+#define MS_MAP2IMAGE_X_IC_SNAP(x,minx,icx,res) ((MS_NINT(((x) - (minx))*(icx)*(res)))/(res))
+#define MS_MAP2IMAGE_Y_IC_SNAP(y,maxy,icy,res) ((MS_NINT(((maxy) - (y))*(icy)*(res)))/(res))
/* For CARTO symbols */
#define MS_PI 3.14159265358979323846
@@ -436,6 +436,7 @@ extern "C" {
#define GET_LAYER(map, pos) map->layers[pos]
#define GET_CLASS(map, lid, cid) map->layers[lid]->class[cid]
+#ifdef USE_THREAD
#if defined(HAVE_SYNC_FETCH_AND_ADD)
#define MS_REFCNT_INCR(obj) __sync_fetch_and_add(&obj->refcount, +1)
#define MS_REFCNT_DECR(obj) __sync_sub_and_fetch(&obj->refcount, +1)
@@ -461,6 +462,11 @@ extern "C" {
#define MS_REFCNT_DECR(obj) (--(obj->refcount))
#define MS_REFCNT_INIT(obj) obj->refcount=1
#endif // close if defined(_MSC..
+#else /*USE_THREAD*/
+#define MS_REFCNT_INCR(obj) obj->refcount++
+#define MS_REFCNT_DECR(obj) (--(obj->refcount))
+#define MS_REFCNT_INIT(obj) obj->refcount=1
+#endif /*USE_THREAD*/
#define MS_REFCNT_DECR_IS_NOT_ZERO(obj) (MS_REFCNT_DECR(obj))>0
#define MS_REFCNT_DECR_IS_ZERO(obj) (MS_REFCNT_DECR(obj))<=0
@@ -475,15 +481,19 @@ extern "C" {
enum MS_FILE_TYPE {MS_FILE_MAP, MS_FILE_SYMBOL};
enum MS_UNITS {MS_INCHES, MS_FEET, MS_MILES, MS_METERS, MS_KILOMETERS, MS_DD, MS_PIXELS, MS_PERCENTAGES, MS_NAUTICALMILES};
enum MS_SHAPE_TYPE {MS_SHAPE_POINT, MS_SHAPE_LINE, MS_SHAPE_POLYGON, MS_SHAPE_NULL};
- enum MS_LAYER_TYPE {MS_LAYER_POINT, MS_LAYER_LINE, MS_LAYER_POLYGON, MS_LAYER_RASTER, MS_LAYER_ANNOTATION, MS_LAYER_QUERY, MS_LAYER_CIRCLE, MS_LAYER_TILEINDEX, MS_LAYER_CHART};
+ enum MS_LAYER_TYPE {MS_LAYER_POINT, MS_LAYER_LINE, MS_LAYER_POLYGON, MS_LAYER_RASTER, MS_LAYER_ANNOTATION /* only used for parser backwards compatibility */, MS_LAYER_QUERY, MS_LAYER_CIRCLE, MS_LAYER_TILEINDEX, MS_LAYER_CHART};
enum MS_FONT_TYPE {MS_TRUETYPE, MS_BITMAP};
#define MS_POSITIONS_LENGTH 14
- enum MS_POSITIONS_ENUM {MS_UL=101, MS_LR, MS_UR, MS_LL, MS_CR, MS_CL, MS_UC, MS_LC, MS_CC, MS_AUTO, MS_XY, MS_FOLLOW, MS_NONE, MS_AUTO2}; /* Added MS_FOLLOW for bug #1620 implementation. */
-
- enum MS_BITMAP_FONT_SIZES {MS_TINY , MS_SMALL, MS_MEDIUM, MS_LARGE, MS_GIANT};
+ enum MS_POSITIONS_ENUM {MS_UL=101, MS_LR, MS_UR, MS_LL, MS_CR, MS_CL, MS_UC, MS_LC, MS_CC, MS_AUTO, MS_XY, MS_NONE, MS_AUTO2,MS_FOLLOW};
+#define MS_TINY 5
+#define MS_SMALL 7
+#define MS_MEDIUM 10
+#define MS_LARGE 13
+#define MS_GIANT 16
enum MS_QUERYMAP_STYLES {MS_NORMAL, MS_HILITE, MS_SELECTED};
- enum MS_CONNECTION_TYPE {MS_INLINE, MS_SHAPEFILE, MS_TILED_SHAPEFILE, MS_SDE, MS_OGR, MS_UNUSED_1, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_MYSQL, MS_RASTER, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR };
+ enum MS_CONNECTION_TYPE {MS_INLINE, MS_SHAPEFILE, MS_TILED_SHAPEFILE, MS_UNUSED_2, MS_OGR, MS_UNUSED_1, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_MYSQL, MS_RASTER, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR, MS_KERNELDENSITY };
+#define IS_THIRDPARTY_LAYER_CONNECTIONTYPE(type) ((type) == MS_UNION || (type) == MS_KERNELDENSITY)
enum MS_JOIN_CONNECTION_TYPE {MS_DB_XBASE, MS_DB_CSV, MS_DB_MYSQL, MS_DB_ORACLE, MS_DB_POSTGRES};
enum MS_JOIN_TYPE {MS_JOIN_ONE_TO_ONE, MS_JOIN_ONE_TO_MANY};
@@ -493,7 +503,7 @@ extern "C" {
enum MS_QUERY_MODE {MS_QUERY_SINGLE, MS_QUERY_MULTIPLE};
enum MS_QUERY_TYPE {MS_QUERY_IS_NULL, MS_QUERY_BY_POINT, MS_QUERY_BY_RECT, MS_QUERY_BY_SHAPE, MS_QUERY_BY_ATTRIBUTE, MS_QUERY_BY_INDEX, MS_QUERY_BY_FILTER};
- enum MS_ALIGN_VALUE {MS_ALIGN_LEFT, MS_ALIGN_CENTER, MS_ALIGN_RIGHT};
+ enum MS_ALIGN_VALUE {MS_ALIGN_DEFAULT, MS_ALIGN_LEFT, MS_ALIGN_CENTER, MS_ALIGN_RIGHT};
enum MS_CAPS_JOINS_AND_CORNERS {MS_CJC_NONE, MS_CJC_BEVEL, MS_CJC_BUTT, MS_CJC_MITER, MS_CJC_ROUND, MS_CJC_SQUARE, MS_CJC_TRIANGLE};
@@ -507,6 +517,16 @@ extern "C" {
enum MS_GEOS_OPERATOR {MS_GEOS_EQUALS, MS_GEOS_DISJOINT, MS_GEOS_TOUCHES, MS_GEOS_OVERLAPS, MS_GEOS_CROSSES, MS_GEOS_INTERSECTS, MS_GEOS_WITHIN, MS_GEOS_CONTAINS, MS_GEOS_BEYOND, MS_GEOS_DWITHIN};
#define MS_FILE_DEFAULT MS_FILE_MAP
+#if defined(_MSC_VER) && (_MSC_VER <= 1310)
+#define MS_DEBUG msDebug2
+#else
+#ifdef USE_EXTENDED_DEBUG
+#define MS_DEBUG(level,elt,fmt, ...) if((elt)->debug >= (level)) msDebug(fmt,##__VA_ARGS__)
+#else
+#define MS_DEBUG(level,elt,fmt, ...) /* no-op */
+#endif
+#endif
+
/* coordinate to pixel simplification modes, used in msTransformShape */
enum MS_TRANSFORM_MODE {
MS_TRANSFORM_NONE, /* no geographic to pixel transformation */
@@ -516,6 +536,48 @@ extern "C" {
MS_TRANSFORM_SIMPLIFY /* keep full resolution */
};
+ typedef enum {
+ MS_COMPOP_CLEAR,
+ MS_COMPOP_SRC,
+ MS_COMPOP_DST,
+ MS_COMPOP_SRC_OVER,
+ MS_COMPOP_DST_OVER,
+ MS_COMPOP_SRC_IN,
+ MS_COMPOP_DST_IN,
+ MS_COMPOP_SRC_OUT,
+ MS_COMPOP_DST_OUT,
+ MS_COMPOP_SRC_ATOP,
+ MS_COMPOP_DST_ATOP,
+ MS_COMPOP_XOR,
+ MS_COMPOP_PLUS,
+ MS_COMPOP_MINUS,
+ MS_COMPOP_MULTIPLY,
+ MS_COMPOP_SCREEN,
+ MS_COMPOP_OVERLAY,
+ MS_COMPOP_DARKEN,
+ MS_COMPOP_LIGHTEN,
+ MS_COMPOP_COLOR_DODGE,
+ MS_COMPOP_COLOR_BURN,
+ MS_COMPOP_HARD_LIGHT,
+ MS_COMPOP_SOFT_LIGHT,
+ MS_COMPOP_DIFFERENCE,
+ MS_COMPOP_EXCLUSION,
+ MS_COMPOP_CONTRAST,
+ MS_COMPOP_INVERT,
+ MS_COMPOP_INVERT_RGB
+ } CompositingOperation;
+
+ typedef struct {
+ char *filter;
+ } CompositingFilter;
+
+ typedef struct _LayerCompositer{
+ CompositingOperation comp_op;
+ int opacity;
+ CompositingFilter *filter;
+ struct _LayerCompositer *next;
+ } LayerCompositer;
+
#ifndef SWIG
/* Filter object */
typedef enum {
@@ -530,7 +592,9 @@ extern "C" {
FILTER_NODE_TYPE_GEOMETRY_POINT = 7,
FILTER_NODE_TYPE_GEOMETRY_LINE = 8,
FILTER_NODE_TYPE_GEOMETRY_POLYGON = 9,
- FILTER_NODE_TYPE_FEATUREID = 10
+ FILTER_NODE_TYPE_FEATUREID = 10,
+ FILTER_NODE_TYPE_TEMPORAL = 11,
+ FILTER_NODE_TYPE_TIME_PERIOD = 12
} FilterNodeType;
@@ -633,19 +697,19 @@ extern "C" {
/************************************************************************/
enum MS_TOKEN_LOGICAL_ENUM { MS_TOKEN_LOGICAL_AND=300, MS_TOKEN_LOGICAL_OR, MS_TOKEN_LOGICAL_NOT };
- enum MS_TOKEN_LITERAL_ENUM { MS_TOKEN_LITERAL_NUMBER=310, MS_TOKEN_LITERAL_STRING, MS_TOKEN_LITERAL_TIME, MS_TOKEN_LITERAL_SHAPE };
+ enum MS_TOKEN_LITERAL_ENUM { MS_TOKEN_LITERAL_NUMBER=310, MS_TOKEN_LITERAL_STRING, MS_TOKEN_LITERAL_TIME, MS_TOKEN_LITERAL_SHAPE, MS_TOKEN_LITERAL_BOOLEAN };
enum MS_TOKEN_COMPARISON_ENUM {
MS_TOKEN_COMPARISON_EQ=320, MS_TOKEN_COMPARISON_NE, MS_TOKEN_COMPARISON_GT, MS_TOKEN_COMPARISON_LT, MS_TOKEN_COMPARISON_LE, MS_TOKEN_COMPARISON_GE, MS_TOKEN_COMPARISON_IEQ,
MS_TOKEN_COMPARISON_RE, MS_TOKEN_COMPARISON_IRE,
MS_TOKEN_COMPARISON_IN, MS_TOKEN_COMPARISON_LIKE,
- MS_TOKEN_COMPARISON_INTERSECTS, MS_TOKEN_COMPARISON_DISJOINT, MS_TOKEN_COMPARISON_TOUCHES, MS_TOKEN_COMPARISON_OVERLAPS, MS_TOKEN_COMPARISON_CROSSES, MS_TOKEN_COMPARISON_WITHIN, MS_TOKEN_COMPARISON_CONTAINS,
- MS_TOKEN_COMPARISON_BEYOND, MS_TOKEN_COMPARISON_DWITHIN
+ MS_TOKEN_COMPARISON_INTERSECTS, MS_TOKEN_COMPARISON_DISJOINT, MS_TOKEN_COMPARISON_TOUCHES, MS_TOKEN_COMPARISON_OVERLAPS, MS_TOKEN_COMPARISON_CROSSES, MS_TOKEN_COMPARISON_WITHIN, MS_TOKEN_COMPARISON_CONTAINS, MS_TOKEN_COMPARISON_EQUALS, MS_TOKEN_COMPARISON_BEYOND, MS_TOKEN_COMPARISON_DWITHIN
};
enum MS_TOKEN_FUNCTION_ENUM {
- MS_TOKEN_FUNCTION_LENGTH=340, MS_TOKEN_FUNCTION_TOSTRING, MS_TOKEN_FUNCTION_COMMIFY, MS_TOKEN_FUNCTION_AREA, MS_TOKEN_FUNCTION_ROUND, MS_TOKEN_FUNCTION_FROMTEXT,
- MS_TOKEN_FUNCTION_BUFFER, MS_TOKEN_FUNCTION_DIFFERENCE, MS_TOKEN_FUNCTION_SIMPLIFY, MS_TOKEN_FUNCTION_SIMPLIFYPT, MS_TOKEN_FUNCTION_GENERALIZE, MS_TOKEN_FUNCTION_SMOOTHSIA
+ MS_TOKEN_FUNCTION_LENGTH=350, MS_TOKEN_FUNCTION_TOSTRING, MS_TOKEN_FUNCTION_COMMIFY, MS_TOKEN_FUNCTION_AREA, MS_TOKEN_FUNCTION_ROUND, MS_TOKEN_FUNCTION_FROMTEXT,
+ MS_TOKEN_FUNCTION_BUFFER, MS_TOKEN_FUNCTION_DIFFERENCE, MS_TOKEN_FUNCTION_SIMPLIFY, MS_TOKEN_FUNCTION_SIMPLIFYPT, MS_TOKEN_FUNCTION_GENERALIZE, MS_TOKEN_FUNCTION_SMOOTHSIA, MS_TOKEN_FUNCTION_JAVASCRIPT,
+ MS_TOKEN_FUNCTION_UPPER, MS_TOKEN_FUNCTION_LOWER, MS_TOKEN_FUNCTION_INITCAP, MS_TOKEN_FUNCTION_FIRSTCAP
};
- enum MS_TOKEN_BINDING_ENUM { MS_TOKEN_BINDING_DOUBLE=360, MS_TOKEN_BINDING_INTEGER, MS_TOKEN_BINDING_STRING, MS_TOKEN_BINDING_TIME, MS_TOKEN_BINDING_SHAPE, MS_TOKEN_BINDING_MAP_CELLSIZE, MS_TOKEN_BINDING_DATA_CELLSIZE };
+ enum MS_TOKEN_BINDING_ENUM { MS_TOKEN_BINDING_DOUBLE=370, MS_TOKEN_BINDING_INTEGER, MS_TOKEN_BINDING_STRING, MS_TOKEN_BINDING_TIME, MS_TOKEN_BINDING_SHAPE, MS_TOKEN_BINDING_MAP_CELLSIZE, MS_TOKEN_BINDING_DATA_CELLSIZE };
enum MS_PARSE_TYPE_ENUM { MS_PARSE_TYPE_BOOLEAN, MS_PARSE_TYPE_STRING, MS_PARSE_TYPE_SHAPE };
#ifndef SWIG
@@ -667,6 +731,7 @@ extern "C" {
typedef struct tokenListNode {
int token;
tokenValueObj tokenval;
+ char *tokensrc; /* on occassion we may want to access to the original source string (e.g. date/time) */
struct tokenListNode *next;
struct tokenListNode *tailifhead; /* this is the tail node in the list if this is the head element, otherwise NULL */
} tokenListNodeObj;
@@ -687,6 +752,8 @@ extern "C" {
/* regular expression options */
ms_regex_t regex; /* compiled regular expression to be matched */
int compiled;
+
+ char *native_string; /* RFC 91 */
} expressionObj;
typedef struct {
@@ -804,11 +871,10 @@ extern "C" {
int maxfeatures; /* global maxfeatures */
int startindex;
+ int only_cache_result_count; /* set to 1 sometimes by WFS 2.0 GetFeature request */
- char *item; /* by attribute */
- char *str;
-
- expressionObj *filter; /* by filter */
+ expressionObj filter; /* by filter */
+ char *filteritem;
int slayer; /* selection layer, used for msQueryByFeatures() (note this is not a query mode per se) */
} queryObj;
@@ -915,8 +981,16 @@ extern "C" {
double size;
double minsize, maxsize;
+#if defined(SWIG) && defined(SWIGPYTHON) /* would probably make sense to mark it immutable for other binding languages than Python */
+ %immutable;
+#endif
int patternlength; /*moved from symbolObj in version 6.0*/
+#if defined(SWIG) && defined(SWIGPYTHON)
+ %mutable;
+#endif
+#if !(defined(SWIG) && defined(SWIGPYTHON)) /* in Python we use a special typemap for this */
double pattern[MS_MAXPATTERNLENGTH]; /*moved from symbolObj in version 6.0*/
+#endif
double gap; /*moved from symbolObj in version 6.0*/
double initialgap;
@@ -934,8 +1008,6 @@ extern "C" {
double angle;
- int antialias;
-
double minscaledenom, maxscaledenom;
#ifndef SWIG
@@ -948,8 +1020,6 @@ extern "C" {
#define MS_STYLE_DOUBLE_SIDED_OFFSET -999
#define IS_PARALLEL_OFFSET(offsety) ((offsety) == MS_STYLE_SINGLE_SIDED_OFFSET || (offsety) == MS_STYLE_DOUBLE_SIDED_OFFSET)
-
-
/********************************************************************/
/* labelLeaderObj */
/* */
@@ -992,8 +1062,6 @@ extern "C" {
#endif /* SWIG */
char *font;
- enum MS_FONT_TYPE type;
-
colorObj color;
colorObj outlinecolor;
int outlinewidth;
@@ -1001,18 +1069,17 @@ extern "C" {
colorObj shadowcolor;
int shadowsizex, shadowsizey;
- double size;
- double minsize, maxsize;
+ int size;
+ int minsize, maxsize;
int position;
int offsetx, offsety;
double angle;
- int anglemode;
+ enum MS_POSITIONS_ENUM anglemode;
int buffer; /* space to reserve around a label */
- int antialias;
int align;
char wrap;
@@ -1036,7 +1103,6 @@ extern "C" {
int priority; /* Priority level 1 to MS_MAX_LABEL_PRIORITY, default=1 */
- int status;
#ifndef SWIG
expressionObj expression;
expressionObj text;
@@ -1053,13 +1119,27 @@ extern "C" {
int numbindings;
#endif
- /* book keeping variable- used on a feature-by-feature basis (similar to bindings) */
+ labelLeaderObj *leader;
+ };
+
+#ifndef SWIG
+ /* lightweight structure containing information to render a labelObj */
+ typedef struct {
+ lineObj *poly;
+ rectObj bbox;
+ } label_bounds;
+
+ typedef struct {
+ labelObj *label;
char *annotext;
+ double scalefactor,resolutionfactor;
pointObj annopoint;
- shapeObj *annopoly;
-
- labelLeaderObj leader;
- };
+ double rotation;
+ textPathObj *textpath;
+ //rectObj bbox;
+ label_bounds **style_bounds;
+ } textSymbolObj;
+#endif
#define MS_LABEL_PERPENDICULAR_OFFSET -99
#define MS_LABEL_PERPENDICULAR_TOP_OFFSET 99
@@ -1111,8 +1191,6 @@ extern "C" {
char *_template;
#endif /* __cplusplus */
- int type;
-
#ifdef SWIG
%immutable;
#endif /* SWIG */
@@ -1137,7 +1215,7 @@ extern "C" {
char *keyimage;
char *group;
- labelLeaderObj leader;
+ labelLeaderObj *leader;
};
/************************************************************************/
@@ -1149,32 +1227,31 @@ extern "C" {
/* Note: These are scriptable, but are read only. */
/************************************************************************/
+
#ifdef SWIG
%immutable;
#endif /* SWIG */
typedef struct {
- double featuresize;
-
+#ifdef include_deprecated
styleObj *styles; /* copied from the classObj, only present if there is a marker to be drawn */
int numstyles;
+#endif
- labelObj *labels; /* copied from the classObj (1 or more depending on situation) */
- int numlabels;
+ textSymbolObj **textsymbols;
+ int numtextsymbols;
int layerindex; /* indexes */
int classindex;
+#ifdef include_deprecated
int shapetype; /* source geometry type, can be removed once annotation layers are dropped */
+#endif
pointObj point; /* label point */
- shapeObj *poly; /* label bounding box, accumulation of individual label's bounding boxes */
+ rectObj bbox; /* bounds of the whole cachePtr. Individual text and symbol sub bounds are found in the textsymbols */
int status; /* has this label been drawn or not */
-#ifndef SWIG
- labelPathObj *labelpath; /* Path & bounds of curved labels. Bug #1620 implementation */
-#endif /* SWIG */
-
int markerid; /* corresponding marker (POINT layers only) */
lineObj *leaderline;
rectObj *leaderbbox;
@@ -1185,7 +1262,7 @@ extern "C" {
/************************************************************************/
typedef struct {
int id; /* corresponding label */
- shapeObj *poly; /* marker bounding box (POINT layers only) */
+ rectObj bounds;
} markerCacheMemberObj;
/************************************************************************/
@@ -1206,12 +1283,10 @@ extern "C" {
typedef struct {
/* One labelCacheSlotObj for each priority level */
labelCacheSlotObj slots[MS_MAX_LABEL_PRIORITY];
- /* numlabels is deprecated, maintained only for backwards compatibility
- * between MS 4.10 and 5.0 and should be removed in a future release.
- * The slots[].numlabels are the real values to rely on.
- */
- int numlabels;
int gutter; /* space in pixels around the image where labels cannot be placed */
+ labelCacheMemberObj **rendered_text_symbols;
+ int num_allocated_rendered_members;
+ int num_rendered_members;
} labelCacheObj;
/************************************************************************/
@@ -1243,6 +1318,9 @@ extern "C" {
#endif /* SWIG */
int numresults;
rectObj bounds;
+#ifndef SWIG
+ rectObj previousBounds; /* bounds at previous iteration */
+#endif
#ifdef SWIG
%mutable;
#endif /* SWIG */
@@ -1450,6 +1528,7 @@ extern "C" {
} img;
ms_bitarray img_mask;
pointObj refpt;
+ mapObj *map;
#endif
};
@@ -1470,7 +1549,36 @@ extern "C" {
int n_entries;
scaleTokenEntryObj *tokens;
} scaleTokenObj;
-
+
+#ifndef SWIG
+ typedef enum {
+ SORT_ASC,
+ SORT_DESC
+ } sortOrderEnum;
+
+ typedef struct {
+ char* item;
+ sortOrderEnum sortOrder;
+ } sortByProperties;
+
+ typedef struct {
+ int nProperties;
+ sortByProperties* properties;
+ } sortByClause;
+
+ typedef struct {
+ /* The following store original members if they have been modified at runtime by a rfc86 scaletoken */
+ char *data;
+ char *tileitem;
+ char *tileindex;
+ char *filteritem;
+ char *filter;
+ char **processing;
+ int *processing_idx;
+ int n_processing;
+ } originalScaleTokenStrings;
+#endif
+
struct layerObj {
char *classitem; /* .DBF item to be used for symbol lookup */
@@ -1478,7 +1586,6 @@ extern "C" {
#ifndef SWIG
int classitemindex;
resultCacheObj *resultcache; /* holds the results of a query against this layer */
- int annotate; /* boolean flag for annotation */
double scalefactor; /* computed, not set */
#ifndef __cplusplus
classObj **class; /* always at least 1 class */
@@ -1517,13 +1624,8 @@ extern "C" {
/* RFC86 Scale-dependent token replacements */
scaleTokenObj *scaletokens;
int numscaletokens;
+ originalScaleTokenStrings *orig_st;
- /* The following store original members if they have been modified at runtime by a rfc86 scaletoken */
- char *orig_data;
- char *orig_tileitem;
- char *orig_tileindex;
- char *orig_filteritem;
- char *orig_filter;
#endif
char *data; /* filename, can be relative or full path */
@@ -1621,8 +1723,6 @@ extern "C" {
%mutable;
#endif /* SWIG */
- int opacity; /* opacity (was transparency) value 0-100 */
-
int dump;
int debug;
#ifndef SWIG
@@ -1645,14 +1745,71 @@ extern "C" {
#ifndef SWIG
imageObj *maskimage;
+ graticuleObj* grid;
#endif
char *mask;
#ifndef SWIG
expressionObj _geomtransform;
-#endif
+#endif
+
+ char *encoding; /* for iconving shape attributes. ignored if NULL or "utf-8" */
+
+ /* RFC93 UTFGrid support */
+ char *utfitem;
+ int utfitemindex;
+ expressionObj utfdata;
+
+#ifndef SWIG
+ sortByClause sortBy;
+#endif
+
+ LayerCompositer *compositer;
};
+
+#ifndef SWIG
+void msFontCacheSetup();
+void msFontCacheCleanup();
+
+typedef struct {
+ double minx,miny,maxx,maxy,advance;
+} glyph_metrics;
+
+typedef struct {
+ glyph_element *glyph;
+ face_element *face;
+ pointObj pnt;
+ double rot;
+} glyphObj;
+
+struct textPathObj{
+ int numglyphs;
+ int numlines;
+ int line_height;
+ int glyph_size;
+ int absolute; /* are the glyph positions absolutely placed, or relative to the origin */
+ glyphObj *glyphs;
+ label_bounds bounds;
+};
+
+typedef enum {
+ duplicate_never,
+ duplicate_always,
+ duplicate_if_needed
+} label_cache_mode;
+
+void initTextPath(textPathObj *tp);
+int WARN_UNUSED msComputeTextPath(mapObj *map, textSymbolObj *ts);
+void msCopyTextPath(textPathObj *dst, textPathObj *src);
+void freeTextPath(textPathObj *tp);
+void initTextSymbol(textSymbolObj *ts);
+void freeTextSymbol(textSymbolObj *ts);
+void msCopyTextSymbol(textSymbolObj *dst, textSymbolObj *src);
+void msPopulateTextSymbolForLabelAndString(textSymbolObj *ts, labelObj *l, char *string, double scalefactor, double resolutionfactor, label_cache_mode cache);
+#endif /* SWIG */
+
+
/************************************************************************/
/* mapObj */
/* */
@@ -1767,6 +1924,10 @@ extern "C" {
queryObj query;
#endif
+
+#ifdef USE_V8_MAPSCRIPT
+ void *v8context;
+#endif
};
/************************************************************************/
@@ -1778,6 +1939,7 @@ extern "C" {
/************************************************************************/
#ifndef SWIG
struct layerVTable {
+ int (*LayerTranslateFilter)(layerObj *layer, expressionObj *filter, char *filteritem);
int (*LayerSupportsCommonFilters)(layerObj *layer);
int (*LayerInitItemInfo)(layerObj *layer);
void (*LayerFreeItemInfo)(layerObj *layer);
@@ -1846,6 +2008,7 @@ extern "C" {
MS_DLL_EXPORT int msMaybeAllocateClassStyle(classObj* c, int idx);
MS_DLL_EXPORT void initLabel(labelObj *label);
MS_DLL_EXPORT int freeLabel(labelObj *label);
+ MS_DLL_EXPORT int freeLabelLeader(labelLeaderObj *leader);
MS_DLL_EXPORT void resetClassStyle(classObj *_class);
MS_DLL_EXPORT int initStyle(styleObj *style);
MS_DLL_EXPORT int freeStyle(styleObj *style);
@@ -1855,6 +2018,9 @@ extern "C" {
MS_DLL_EXPORT void initWeb(webObj *web);
MS_DLL_EXPORT void freeWeb(webObj *web);
MS_DLL_EXPORT void initResultCache(resultCacheObj *resultcache);
+ MS_DLL_EXPORT int initLayerCompositer(LayerCompositer *compositer);
+ MS_DLL_EXPORT void initLeader(labelLeaderObj *leader);
+ MS_DLL_EXPORT void freeGrid( graticuleObj *pGraticule);
MS_DLL_EXPORT featureListNodeObjPtr insertFeatureList(featureListNodeObjPtr *list, shapeObj *shape);
MS_DLL_EXPORT void freeFeatureList(featureListNodeObjPtr list);
@@ -1864,9 +2030,9 @@ extern "C" {
/* Use this next, thread safe wrapper, function everywhere else */
MS_DLL_EXPORT int msLoadExpressionString(expressionObj *exp, char *value);
MS_DLL_EXPORT char *msGetExpressionString(expressionObj *exp);
- MS_DLL_EXPORT void initExpression(expressionObj *exp);
- MS_DLL_EXPORT void freeExpressionTokens(expressionObj *exp);
- MS_DLL_EXPORT void freeExpression(expressionObj *exp);
+ MS_DLL_EXPORT void msInitExpression(expressionObj *exp);
+ MS_DLL_EXPORT void msFreeExpressionTokens(expressionObj *exp);
+ MS_DLL_EXPORT void msFreeExpression(expressionObj *exp);
MS_DLL_EXPORT void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs);
MS_DLL_EXPORT void msApplyDefaultSubstitutions(mapObj *map);
@@ -1874,10 +2040,11 @@ extern "C" {
MS_DLL_EXPORT int getClassIndex(layerObj *layer, char *str);
/* For maplabel */
- int intersectLabelPolygons(shapeObj *p1, shapeObj *p2);
- pointObj get_metrics_line(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, lineObj *poly);
- pointObj get_metrics(pointObj *p, int position, rectObj rect, int ox, int oy, double angle, int buffer, shapeObj *poly);
+ int intersectLabelPolygons(lineObj *p1, rectObj *r1, lineObj *p2, rectObj *r2);
+ int intersectTextSymbol(textSymbolObj *ts, label_bounds *lb);
+ pointObj get_metrics(pointObj *p, int position, textPathObj *tp, int ox, int oy, double rotation, int buffer, label_bounds *metrics);
double dist(pointObj a, pointObj b);
+ void fastComputeBounds(lineObj *line, rectObj *bounds);
/*
** Main API Functions
@@ -1915,7 +2082,7 @@ extern "C" {
/* mapfile.c */
MS_DLL_EXPORT int msValidateParameter(char *value, char *pattern1, char *pattern2, char *pattern3, char *pattern4);
- MS_DLL_EXPORT int msGetLayerIndex(mapObj *map, char *name);
+ MS_DLL_EXPORT int msGetLayerIndex(mapObj *map, const char *name);
MS_DLL_EXPORT int msGetSymbolIndex(symbolSetObj *set, char *name, int try_addimage_if_notfound);
MS_DLL_EXPORT mapObj *msLoadMap(char *filename, char *new_mappath);
MS_DLL_EXPORT int msTransformXmlMapfile(const char *stylesheet, const char *xmlMapfile, FILE *tmpfile);
@@ -1943,7 +2110,7 @@ extern "C" {
MS_DLL_EXPORT char *msWriteReferenceMapToString(referenceMapObj *ref);
MS_DLL_EXPORT char *msWriteLegendToString(legendObj *legend);
MS_DLL_EXPORT char *msWriteClusterToString(clusterObj *cluster);
- MS_DLL_EXPORT int msEvalRegex(char *e, char *s);
+ MS_DLL_EXPORT int msEvalRegex(const char *e, const char *s);
#ifdef USE_MSFREE
MS_DLL_EXPORT void msFree(void *p);
#else
@@ -1968,9 +2135,9 @@ extern "C" {
MS_DLL_EXPORT double msInchesPerUnit(int units, double center_lat);
MS_DLL_EXPORT int msEmbedScalebar(mapObj *map, imageObj *img);
- MS_DLL_EXPORT int msPointInRect(pointObj *p, rectObj *rect); /* in mapsearch.c */
- MS_DLL_EXPORT int msRectOverlap(rectObj *a, rectObj *b);
- MS_DLL_EXPORT int msRectContained(rectObj *a, rectObj *b);
+ MS_DLL_EXPORT int msPointInRect(const pointObj *p, const rectObj *rect); /* in mapsearch.c */
+ MS_DLL_EXPORT int msRectOverlap(const rectObj *a, const rectObj *b);
+ MS_DLL_EXPORT int msRectContained(const rectObj *a, const rectObj *b);
MS_DLL_EXPORT int msRectIntersect(rectObj *a, const rectObj *b);
MS_DLL_EXPORT void msRectToFormattedString(rectObj *rect, char *format,
@@ -1988,7 +2155,7 @@ extern "C" {
MS_DLL_EXPORT double msSquareDistancePointToShape(pointObj *p, shapeObj *shape);
MS_DLL_EXPORT double msDistanceSegmentToSegment(pointObj *pa, pointObj *pb, pointObj *pc, pointObj *pd);
MS_DLL_EXPORT double msDistanceShapeToShape(shapeObj *shape1, shapeObj *shape2);
- MS_DLL_EXPORT int msIntersectSegments(pointObj *a, pointObj *b, pointObj *c, pointObj *d);
+ MS_DLL_EXPORT int msIntersectSegments(const pointObj *a, const pointObj *b, const pointObj *c, const pointObj *d);
MS_DLL_EXPORT int msPointInPolygon(pointObj *p, lineObj *c);
MS_DLL_EXPORT int msIntersectMultipointPolygon(shapeObj *multipoint, shapeObj *polygon);
MS_DLL_EXPORT int msIntersectPointPolygon(pointObj *p, shapeObj *polygon);
@@ -2042,9 +2209,12 @@ extern "C" {
MS_DLL_EXPORT char *msIntToString(int value);
MS_DLL_EXPORT void msStringToUpper(char *string);
MS_DLL_EXPORT void msStringToLower(char *string);
+ MS_DLL_EXPORT void msStringInitCap(char *string);
+ MS_DLL_EXPORT void msStringFirstCap(char *string);
MS_DLL_EXPORT int msEncodeChar(const char);
MS_DLL_EXPORT char *msEncodeUrlExcept(const char*, const char);
MS_DLL_EXPORT char *msEncodeUrl(const char*);
+ MS_DLL_EXPORT char *msEscapeJSonString(const char* pszJSonString);
MS_DLL_EXPORT char *msEncodeHTMLEntities(const char *string);
MS_DLL_EXPORT void msDecodeHTMLEntities(const char *string);
MS_DLL_EXPORT int msIsXMLTagValid(const char *string);
@@ -2057,9 +2227,9 @@ extern "C" {
MS_DLL_EXPORT char *msConvertWideStringToUTF8 (const wchar_t* string, const char* encoding);
MS_DLL_EXPORT int msGetNextGlyph(const char **in_ptr, char *out_string);
MS_DLL_EXPORT int msGetNumGlyphs(const char *in_ptr);
- MS_DLL_EXPORT int msGetUnicodeEntity(const char *inptr, int *unicode);
+ MS_DLL_EXPORT int msGetUnicodeEntity(const char *inptr, unsigned int *unicode);
MS_DLL_EXPORT int msStringIsInteger(const char *string);
- MS_DLL_EXPORT int msUTF8ToUniChar(const char *str, int *chPtr); /* maptclutf.c */
+ MS_DLL_EXPORT int msUTF8ToUniChar(const char *str, unsigned int *chPtr); /* maptclutf.c */
MS_DLL_EXPORT char* msStringEscape( const char * pszString );
MS_DLL_EXPORT int msStringInArray( const char * pszString, char **array, int numelements);
@@ -2117,32 +2287,31 @@ extern "C" {
MS_DLL_EXPORT int msPreloadSVGSymbol(symbolObj *symbol);
MS_DLL_EXPORT symbolObj *msRotateSymbol(symbolObj *symbol, double angle);
- MS_DLL_EXPORT int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, double *width, double *height, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msGetCharacterSize(mapObj *map, char* font, int size, char *character, rectObj *r);
+ MS_DLL_EXPORT int WARN_UNUSED msGetMarkerSize(mapObj *map, styleObj *style, double *width, double *height, double scalefactor);
/* MS_DLL_EXPORT int msGetCharacterSize(char *character, int size, char *font, rectObj *rect); */
MS_DLL_EXPORT double msSymbolGetDefaultSize(symbolObj *s);
MS_DLL_EXPORT void freeImageCache(struct imageCacheObj *ic);
- MS_DLL_EXPORT imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest); /* in maplegend.c */
- MS_DLL_EXPORT int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_y,
- int *alayers, int numl_ayer, map_hittest *hittest, int resolutionfactor);
- MS_DLL_EXPORT int msEmbedLegend(mapObj *map, imageObj *img);
- MS_DLL_EXPORT int msDrawLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, imageObj *img, int dstX, int dstY, int scale_independant, class_hittest *hittest);
- MS_DLL_EXPORT imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, int scale_independant);
+ MS_DLL_EXPORT imageObj WARN_UNUSED *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest); /* in maplegend.c */
+ MS_DLL_EXPORT int WARN_UNUSED msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_y,
+ int *alayers, int numl_ayer, map_hittest *hittest, double resolutionfactor);
+ MS_DLL_EXPORT int WARN_UNUSED msEmbedLegend(mapObj *map, imageObj *img);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, imageObj *img, int dstX, int dstY, int scale_independant, class_hittest *hittest);
+ MS_DLL_EXPORT imageObj WARN_UNUSED *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, int scale_independant);
MS_DLL_EXPORT int msLoadFontSet(fontSetObj *fontSet, mapObj *map); /* in maplabel.c */
MS_DLL_EXPORT int msInitFontSet(fontSetObj *fontset);
MS_DLL_EXPORT int msFreeFontSet(fontSetObj *fontset);
- MS_DLL_EXPORT char *msFontsetLookupFont(fontSetObj *fontset, char *fontKey);
- MS_DLL_EXPORT int msFontsetLookupFonts(char* fontstring, int *numfonts, fontSetObj *fontset, char **lookedUpFonts);
- MS_DLL_EXPORT char *msTransformLabelText(mapObj *map, labelObj *label, char *text);
- MS_DLL_EXPORT int msGetTruetypeTextBBox(rendererVTableObj *renderer, char* fontstring, fontSetObj *fontset, double size, char *string, rectObj *rect, double **advances, int bAdjustBaseline);
+ MS_DLL_EXPORT int WARN_UNUSED msGetTextSymbolSize(mapObj *map, textSymbolObj *ts, rectObj *r);
+ MS_DLL_EXPORT int WARN_UNUSED msGetStringSize(mapObj *map, labelObj *label, int size, char *string, rectObj *r);
- MS_DLL_EXPORT int msGetLabelSize(mapObj *map, labelObj *label, char *string, double size, rectObj *rect, double **advances);
-
- MS_DLL_EXPORT int msAddLabel(mapObj *map, labelObj *label, int layerindex, int classindex, shapeObj *shape, pointObj *point, labelPathObj *labelpath, double featuresize);
- MS_DLL_EXPORT int msAddLabelGroup(mapObj *map, int layerindex, int classindex, shapeObj *shape, pointObj *point, double featuresize);
- MS_DLL_EXPORT int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, shapeObj *poly, int mindistance, int current_priority, int current_label);
+ MS_DLL_EXPORT int WARN_UNUSED msAddLabel(mapObj *map, imageObj *image, labelObj *label, int layerindex, int classindex, shapeObj *shape, pointObj *point, double featuresize, textSymbolObj *ts);
+ MS_DLL_EXPORT int WARN_UNUSED msAddLabelGroup(mapObj *map, imageObj *image, int layerindex, int classindex, shapeObj *shape, pointObj *point, double featuresize);
+ MS_DLL_EXPORT void insertRenderedLabelMember(mapObj *map, labelCacheMemberObj *cachePtr);
+ MS_DLL_EXPORT int msTestLabelCacheCollisions(mapObj *map, labelCacheMemberObj *cachePtr, label_bounds *lb, int current_priority, int current_label);
+ MS_DLL_EXPORT int msTestLabelCacheLeaderCollision(mapObj *map, pointObj *lp1, pointObj *lp2);
MS_DLL_EXPORT labelCacheMemberObj *msGetLabelCacheMember(labelCacheObj *labelcache, int i);
MS_DLL_EXPORT void msFreeShape(shapeObj *shape); /* in mapprimitive.c */
@@ -2169,17 +2338,41 @@ extern "C" {
MS_DLL_EXPORT void msTransformShapeToPixelRound(shapeObj *shape, rectObj extent, double cellsize);
MS_DLL_EXPORT void msTransformShapeToPixelDoublePrecision(shapeObj *shape, rectObj extent, double cellsize);
+#ifndef SWIG
+
+ struct line_lengths {
+ double *segment_lengths;
+ double total_length;
+ int longest_segment_index;
+ };
+
+ struct polyline_lengths {
+ struct line_lengths *ll;
+ double total_length;
+ int longest_line_index;
+ int longest_segment_line_index, longest_segment_point_index;
+ };
+
+ struct label_auto_result {
+ pointObj *label_points;
+ double *angles;
+ int num_label_points;
+ };
+
+ struct label_follow_result {
+ textSymbolObj **follow_labels;
+ int num_follow_labels;
+ struct label_auto_result lar;
+ };
+
+#endif
+
MS_DLL_EXPORT void msTransformPixelToShape(shapeObj *shape, rectObj extent, double cellsize);
- MS_DLL_EXPORT void msPolylineComputeLineSegments(shapeObj *shape, double ***segment_lengths, double **line_lengths, int *max_line_index, double *max_line_length, int *segment_index, double *total_length);
- MS_DLL_EXPORT pointObj** msPolylineLabelPoint(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, int *numpoints, int center_on_longest_segment);
- MS_DLL_EXPORT pointObj** msPolylineLabelPointExtended(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, int *numpoints, int *regularLines, int numlines, int center_on_longest_segment);
- MS_DLL_EXPORT void msPolylineLabelPointLineString(shapeObj *p, int min_length, int repeat_distance, double ***angles, double ***lengths, double** segment_lengths,
- int line_index, double line_length, double total_length, int segment_index,
- int* labelpoints_index, int* labelpoints_size, pointObj ***labelpoints, int center_on_longest_segment);
- MS_DLL_EXPORT labelPathObj** msPolylineLabelPath(mapObj *map, imageObj *img, shapeObj *p, int min_length, fontSetObj *fontset, char *string, labelObj *label, double scalefactor, int *numpaths, int** regular_lines, int* num_regular_Lines);
- MS_DLL_EXPORT void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int min_length, fontSetObj *fontset, char *string, labelObj *label, double scalefactor,
- int line_index, double** segment_lengths, double line_length, double total_length,
- int* labelpaths_index, int* labelpaths_size, labelPathObj ***labelpaths, int** regular_lines, int *regular_lines_index, int* regular_lines_size);
+ MS_DLL_EXPORT void msPolylineComputeLineSegments(shapeObj *shape, struct polyline_lengths *pll);
+ MS_DLL_EXPORT int msPolylineLabelPath(mapObj *map, imageObj *image, shapeObj *p, textSymbolObj *ts, labelObj *label, struct label_follow_result *lfr);
+ MS_DLL_EXPORT int WARN_UNUSED msPolylineLabelPoint(mapObj *map, shapeObj *p, textSymbolObj *ts, labelObj *label, struct label_auto_result *lar, double resolutionfactor);
+ MS_DLL_EXPORT int WARN_UNUSED msLineLabelPath(mapObj *map, imageObj *img, lineObj *p, textSymbolObj *ts, struct line_lengths *ll, struct label_follow_result *lfr, labelObj *lbl);
+ MS_DLL_EXPORT int WARN_UNUSED msLineLabelPoint(mapObj *map, lineObj *p, textSymbolObj *ts, struct line_lengths *ll, struct label_auto_result *lar, labelObj *lbl, double resolutionfactor);
MS_DLL_EXPORT int msPolygonLabelPoint(shapeObj *p, pointObj *lp, double min_dimension);
MS_DLL_EXPORT int msAddLine(shapeObj *p, lineObj *new_line);
MS_DLL_EXPORT int msAddLineDirectly(shapeObj *p, lineObj *new_line);
@@ -2200,11 +2393,11 @@ extern "C" {
MS_DLL_EXPORT size_t msGetBitArraySize(int numbits); /* in mapbits.c */
MS_DLL_EXPORT ms_bitarray msAllocBitArray(int numbits);
- MS_DLL_EXPORT int msGetBit(ms_bitarray array, int index);
+ MS_DLL_EXPORT int msGetBit(ms_const_bitarray array, int index);
MS_DLL_EXPORT void msSetBit(ms_bitarray array, int index, int value);
MS_DLL_EXPORT void msSetAllBits(ms_bitarray array, int index, int value);
MS_DLL_EXPORT void msFlipBit(ms_bitarray array, int index);
- MS_DLL_EXPORT int msGetNextBit(ms_bitarray array, int index, int size);
+ MS_DLL_EXPORT int msGetNextBit(ms_const_bitarray array, int index, int size);
/* maplayer.c - layerObj api */
@@ -2219,7 +2412,7 @@ extern "C" {
MS_DLL_EXPORT void msLayerClose(layerObj *layer);
MS_DLL_EXPORT int msLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery);
MS_DLL_EXPORT int msLayerGetItemIndex(layerObj *layer, char *item);
- MS_DLL_EXPORT int msLayerWhichItems(layerObj *layer, int get_all, char *metadata);
+ MS_DLL_EXPORT int msLayerWhichItems(layerObj *layer, int get_all, const char *metadata);
MS_DLL_EXPORT int msLayerNextShape(layerObj *layer, shapeObj *shape);
MS_DLL_EXPORT int msLayerGetItems(layerObj *layer);
MS_DLL_EXPORT int msLayerSetItems(layerObj *layer, char **items, int numitems);
@@ -2229,31 +2422,25 @@ extern "C" {
MS_DLL_EXPORT int msLayerGetAutoStyle(mapObj *map, layerObj *layer, classObj *c, shapeObj* shape);
MS_DLL_EXPORT int msLayerGetFeatureStyle(mapObj *map, layerObj *layer, classObj *c, shapeObj* shape);
MS_DLL_EXPORT void msLayerAddProcessing( layerObj *layer, const char *directive );
- MS_DLL_EXPORT void msLayerSetProcessingKey( layerObj *layer, const char *key,
- const char *value);
+ MS_DLL_EXPORT void msLayerSetProcessingKey( layerObj *layer, const char *key, const char *value);
MS_DLL_EXPORT char *msLayerGetProcessing( layerObj *layer, int proc_index);
MS_DLL_EXPORT char *msLayerGetProcessingKey( layerObj *layer, const char *);
MS_DLL_EXPORT int msLayerClearProcessing( layerObj *layer );
- MS_DLL_EXPORT char* msLayerGetFilterString( layerObj *layer );
+ MS_DLL_EXPORT void msLayerSubstituteProcessing( layerObj *layer, const char *from, const char *to );
+ MS_DLL_EXPORT char *msLayerGetFilterString( layerObj *layer );
+ MS_DLL_EXPORT int msLayerEncodeShapeAttributes( layerObj *layer, shapeObj *shape);
+ MS_DLL_EXPORT int msLayerTranslateFilter(layerObj *layer, expressionObj *filter, char *filteritem);
MS_DLL_EXPORT int msLayerSupportsCommonFilters(layerObj *layer);
+ MS_DLL_EXPORT const char *msExpressionTokenToString(int token);
MS_DLL_EXPORT int msTokenizeExpression(expressionObj *expression, char **list, int *listsize);
- MS_DLL_EXPORT int msLayerSetTimeFilter(layerObj *lp, const char *timestring,
- const char *timefield);
- /* Helper functions for layers */
- MS_DLL_EXPORT int msLayerMakeBackticsTimeFilter(layerObj *lp, const char *timestring,
- const char *timefield);
-
- MS_DLL_EXPORT int msLayerMakePlainTimeFilter(layerObj *lp, const char *timestring,
- const char *timefield);
-
- MS_DLL_EXPORT int msLayerApplyCondSQLFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex);
-
- MS_DLL_EXPORT int msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
- int iLayerIndex);
+ MS_DLL_EXPORT int msLayerSetTimeFilter(layerObj *lp, const char *timestring, const char *timefield);
+ MS_DLL_EXPORT int msLayerMakeBackticsTimeFilter(layerObj *lp, const char *timestring, const char *timefield);
+ MS_DLL_EXPORT int msLayerMakePlainTimeFilter(layerObj *lp, const char *timestring, const char *timefield);
+ MS_DLL_EXPORT int msLayerApplyCondSQLFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex);
+ MS_DLL_EXPORT int msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map, int iLayerIndex);
/* maplayer.c */
MS_DLL_EXPORT int msLayerGetNumFeatures(layerObj *layer);
@@ -2268,6 +2455,10 @@ extern "C" {
MS_DLL_EXPORT char *msLayerEscapeSQLParam(layerObj *layer, const char* pszString);
MS_DLL_EXPORT char *msLayerEscapePropertyName(layerObj *layer, const char* pszString);
+ int msLayerSupportsSorting(layerObj *layer);
+ void msLayerSetSort(layerObj *layer, const sortByClause* sortBy);
+ MS_DLL_EXPORT char* msLayerBuildSQLOrderBy(layerObj *layer);
+
/* These are special because SWF is using these */
int msOGRLayerNextShape(layerObj *layer, shapeObj *shape);
int msOGRLayerGetItems(layerObj *layer);
@@ -2287,7 +2478,6 @@ extern "C" {
MS_DLL_EXPORT int msINLINELayerInitializeVirtualTable(layerObj *layer);
MS_DLL_EXPORT int msSHPLayerInitializeVirtualTable(layerObj *layer);
MS_DLL_EXPORT int msTiledSHPLayerInitializeVirtualTable(layerObj *layer);
- MS_DLL_EXPORT int msSDELayerInitializeVirtualTable(layerObj *layer);
MS_DLL_EXPORT int msOGRLayerInitializeVirtualTable(layerObj *layer);
MS_DLL_EXPORT int msPostGISLayerInitializeVirtualTable(layerObj *layer);
MS_DLL_EXPORT int msOracleSpatialLayerInitializeVirtualTable(layerObj *layer);
@@ -2303,12 +2493,6 @@ extern "C" {
/* ==================================================================== */
/* Prototypes for functions in mapdraw.c */
/* ==================================================================== */
- MS_DLL_EXPORT void msClearLayerPenValues(layerObj *layer);
- MS_DLL_EXPORT void msClearScalebarPenValues(scalebarObj *scalebar);
- MS_DLL_EXPORT void msClearLegendPenValues(legendObj *legend);
- MS_DLL_EXPORT void msClearReferenceMapPenValues(referenceMapObj *referencemap);
- MS_DLL_EXPORT void msClearQueryMapPenValues(queryMapObj *querymap);
- MS_DLL_EXPORT void msClearPenValues(mapObj *map);
MS_DLL_EXPORT imageObj *msPrepareImage(mapObj *map, int allow_nonsquare);
MS_DLL_EXPORT imageObj *msDrawMap(mapObj *map, int querymap);
@@ -2332,25 +2516,30 @@ extern "C" {
#define MS_DRAWMODE_UNCLIPPEDLINES 0x00020
#define MS_DRAW_UNCLIPPED_LINES(mode) (MS_DRAWMODE_UNCLIPPEDLINES&(mode))
- MS_DLL_EXPORT int msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image, int style, int mode);
- MS_DLL_EXPORT int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image, int classindex, char *labeltext);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image, int style, int mode);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image, int classindex, char *labeltext);
/*Range Support*/
+ typedef enum {
+ MS_COLORSPACE_RGB,
+ MS_COLORSPACE_HSL
+ } colorspace;
MS_DLL_EXPORT int msShapeToRange(styleObj *style, shapeObj *shape);
- MS_DLL_EXPORT int msValueToRange(styleObj *style, double fieldVal);
+ MS_DLL_EXPORT int msValueToRange(styleObj *style, double fieldVal, colorspace cs);
- MS_DLL_EXPORT int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msCircleDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msDrawPieSlice(symbolSetObj *symbolset, imageObj *image, pointObj *p, styleObj *style, double radius, double start, double end);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawMarkerSymbol(mapObj *map, imageObj *image, pointObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawLineSymbol(mapObj *map, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawShadeSymbol(mapObj *map, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msCircleDrawLineSymbol(mapObj *map, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msCircleDrawShadeSymbol(mapObj *map, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawPieSlice(mapObj *map, imageObj *image, pointObj *p, styleObj *style, double radius, double start, double end);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawLabelBounds(mapObj *map, imageObj *image, label_bounds *bnds, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, labelObj *label, double scalefactor);
- MS_DLL_EXPORT int msDrawText(imageObj *image, pointObj labelPnt, char *string, labelObj *label, fontSetObj *fontset, double scalefactor);
- MS_DLL_EXPORT int msDrawTextLine(imageObj *image, char *string, labelObj *label, labelPathObj *labelpath, fontSetObj *fontset, double scalefactor);
- MS_DLL_EXPORT int msDrawLabelCache(imageObj *image, mapObj *map);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawLabel(mapObj *map, imageObj *image, pointObj labelPnt, char *string, labelObj *label, double scalefactor);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawTextSymbol(mapObj *map, imageObj *image, pointObj labelPnt, textSymbolObj *ts);
+ MS_DLL_EXPORT int WARN_UNUSED msDrawLabelCache(mapObj *map, imageObj *image);
MS_DLL_EXPORT void msImageStartLayer(mapObj *map, layerObj *layer, imageObj *image);
MS_DLL_EXPORT void msImageEndLayer(mapObj *map, layerObj *layer, imageObj *image);
@@ -2373,21 +2562,13 @@ extern "C" {
/* Prototypes for functions in mapimagemap.c */
/* ==================================================================== */
MS_DLL_EXPORT imageObj *msImageCreateIM(int width, int height, outputFormatObj *format, char *imagepath, char *imageurl, double resolution, double defresolution);
-#ifdef USE_GD
- MS_DLL_EXPORT imageObj *msImageLoadGD( const char *filename );
- MS_DLL_EXPORT imageObj *msImageLoadGDCtx( gdIOCtx *ctx, const char *driver );
- MS_DLL_EXPORT int msGDSetup();
- MS_DLL_EXPORT void msGDCleanup(int signal);
-#else
-//#define gdIOCtx void*
-#endif
MS_DLL_EXPORT void msImageStartLayerIM(mapObj *map, layerObj *layer, imageObj *image);
MS_DLL_EXPORT int msSaveImageIM(imageObj* img, char *filename, outputFormatObj *format);
MS_DLL_EXPORT void msFreeImageIM(imageObj* img);
- MS_DLL_EXPORT void msDrawMarkerSymbolIM(symbolSetObj *symbolset, imageObj* img, pointObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT void msDrawLineSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT void msDrawShadeSymbolIM(symbolSetObj *symbolset, imageObj* img, shapeObj *p, styleObj *style, double scalefactor);
- MS_DLL_EXPORT int msDrawTextIM(imageObj* img, pointObj labelPnt, char *string, labelObj *label, fontSetObj *fontset, double scalefactor);
+ MS_DLL_EXPORT void msDrawMarkerSymbolIM(mapObj *map, imageObj* img, pointObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT void msDrawLineSymbolIM(mapObj *map, imageObj* img, shapeObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT void msDrawShadeSymbolIM(mapObj *map, imageObj* img, shapeObj *p, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int msDrawTextIM(mapObj *map, imageObj* img, pointObj labelPnt, char *string, labelObj *label, double scalefactor);
/* ==================================================================== */
/* End of Prototypes for functions in mapimagemap.c */
/* ==================================================================== */
@@ -2401,9 +2582,6 @@ extern "C" {
/*in mapraster.c */
MS_DLL_EXPORT int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image, rasterBufferObj *rb );
-#ifdef USE_GD
- MS_DLL_EXPORT int msAddColorGD(mapObj *map, gdImagePtr img, int cmt, int r, int g, int b);
-#endif
MS_DLL_EXPORT int msGetClass(layerObj *layer, colorObj *color, int colormap_index);
MS_DLL_EXPORT int msGetClass_FloatRGB(layerObj *layer, float fValue,
int red, int green, int blue );
@@ -2414,6 +2592,10 @@ extern "C" {
MS_DLL_EXPORT int *msGetGDALBandList( layerObj *layer, void *hDS, int max_bands, int *band_count );
MS_DLL_EXPORT double msGetGDALNoDataValue( layerObj *layer, void *hBand, int *pbGotNoData );
+ /* in interpolation.c */
+ MS_DLL_EXPORT int msComputeKernelDensityDataset(mapObj *map, imageObj *image, layerObj *layer, void **hDSvoid, void **cleanup_ptr);
+ MS_DLL_EXPORT int msCleanupKernelDensityDataset(mapObj *map, imageObj *image, layerObj *layer, void *cleanup_ptr);
+
/* in mapchart.c */
MS_DLL_EXPORT int msDrawChartLayer(mapObj *map, layerObj *layer, imageObj *image);
@@ -2442,9 +2624,12 @@ extern "C" {
MS_DLL_EXPORT int msEvalContext(mapObj *map, layerObj *layer, char *context);
MS_DLL_EXPORT int msEvalExpression(layerObj *layer, shapeObj *shape, expressionObj *expression, int itemindex);
MS_DLL_EXPORT int msShapeGetClass(layerObj *layer, mapObj *map, shapeObj *shape, int *classgroup, int numclasses);
- MS_DLL_EXPORT int msShapeGetAnnotation(layerObj *layer, shapeObj *shape);
MS_DLL_EXPORT int msShapeCheckSize(shapeObj *shape, double minfeaturesize);
+ MS_DLL_EXPORT char* msShapeGetLabelAnnotation(layerObj *layer, shapeObj *shape, labelObj *lbl);
+ MS_DLL_EXPORT int msGetLabelStatus(mapObj *map, layerObj *layer, shapeObj *shape, labelObj *lbl);
MS_DLL_EXPORT int msAdjustImage(rectObj rect, int *width, int *height);
+ MS_DLL_EXPORT char *msEvalTextExpression(expressionObj *expr, shapeObj *shape);
+ MS_DLL_EXPORT char *msEvalTextExpressionJSonEscape(expressionObj *expr, shapeObj *shape);
MS_DLL_EXPORT double msAdjustExtent(rectObj *rect, int width, int height);
MS_DLL_EXPORT int msConstrainExtent(rectObj *bounds, rectObj *rect, double overlay);
MS_DLL_EXPORT int *msGetLayersIndexByGroup(mapObj *map, char *groupname, int *nCount);
@@ -2507,12 +2692,18 @@ extern "C" {
unsigned char *red_dst, unsigned char *green_dst,
unsigned char *blue_dst, unsigned char *alpha_dst );
+ MS_DLL_EXPORT void msRGBtoHSL(colorObj *rgb, double *h, double *s, double *l);
+
+ MS_DLL_EXPORT void msHSLtoRGB(double h, double s, double l, colorObj *rgb);
+
MS_DLL_EXPORT int msCheckParentPointer(void* p, char* objname);
MS_DLL_EXPORT int *msAllocateValidClassGroups(layerObj *lp, int *nclasses);
MS_DLL_EXPORT void msFreeRasterBuffer(rasterBufferObj *b);
+ MS_DLL_EXPORT int msSetLayerOpacity(layerObj *layer, int opacity);
+ void msMapSetLanguageSpecificConnection(mapObj* map, const char* validated_language);
MS_DLL_EXPORT shapeObj* msGeneralize(shapeObj * shape, double tolerance);
/* ==================================================================== */
/* End of prototypes for functions in maputil.c */
@@ -2583,10 +2774,13 @@ extern "C" {
MS_DLL_EXPORT int msCopyClass(classObj *dst, classObj *src, layerObj *layer);
MS_DLL_EXPORT int msCopyStyle(styleObj *dst, styleObj *src);
MS_DLL_EXPORT int msCopyLabel(labelObj *dst, labelObj *src);
+ MS_DLL_EXPORT int msCopyLabelLeader(labelLeaderObj *dst, labelLeaderObj *src);
MS_DLL_EXPORT int msCopyLine(lineObj *dst, lineObj *src);
MS_DLL_EXPORT int msCopyProjection(projectionObj *dst, projectionObj *src);
+ MS_DLL_EXPORT int msCopyProjectionExtended(projectionObj *dst, projectionObj *src, char ** args, int num_args);
int msCopyExpression(expressionObj *dst, expressionObj *src);
int msCopyProjection(projectionObj *dst, projectionObj *src);
+ MS_DLL_EXPORT int msCopyRasterBuffer(rasterBufferObj *dst, const rasterBufferObj *src);
/* ==================================================================== */
/* end prototypes for functions in mapcopy */
@@ -2686,7 +2880,7 @@ extern "C" {
MS_GEOMTRANSFORM_LABELPOLY
};
- MS_DLL_EXPORT int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image, shapeObj *shape, styleObj *style, double scalefactor);
+ MS_DLL_EXPORT int msDrawTransformedShape(mapObj *map, imageObj *image, shapeObj *shape, styleObj *style, double scalefactor);
MS_DLL_EXPORT void msStyleSetGeomTransform(styleObj *s, char *transform);
MS_DLL_EXPORT char *msStyleGetGeomTransform(styleObj *style);
@@ -2715,10 +2909,27 @@ extern "C" {
/* ==================================================================== */
/* end of prototypes for functions in mapsmoothing.c */
/* ==================================================================== */
+
+ /* ==================================================================== */
+ /* prototypes for functions in mapv8.cpp */
+ /* ==================================================================== */
+#ifdef USE_V8_MAPSCRIPT
+ MS_DLL_EXPORT void msV8CreateContext(mapObj *map);
+ MS_DLL_EXPORT void msV8ContextSetLayer(mapObj *map, layerObj *layer);
+ MS_DLL_EXPORT void msV8FreeContext(mapObj *map);
+ MS_DLL_EXPORT char* msV8GetFeatureStyle(mapObj *map, const char *filename,
+ layerObj *layer, shapeObj *shape);
+ MS_DLL_EXPORT shapeObj *msV8TransformShape(shapeObj *shape,
+ const char* filename);
#endif
+ /* ==================================================================== */
+ /* end of prototypes for functions in mapv8.cpp */
+ /* ==================================================================== */
+#endif
+#ifndef SWIG
/*
* strokeStyleObj
*/
@@ -2795,11 +3006,12 @@ extern "C" {
colorObj *color;
double outlinewidth;
colorObj *outlinecolor;
- int antialias; /*only for GD*/
} labelStyleObj;
#define INIT_LABEL_STYLE(s) {memset(&(s),'\0',sizeof(labelStyleObj));}
+#endif
+
#ifndef SWIG
MS_DLL_EXPORT int msInitializeDummyRenderer(rendererVTableObj *vtable);
MS_DLL_EXPORT int msInitializeRendererVTable(outputFormatObj *outputformat);
@@ -2808,9 +3020,11 @@ extern "C" {
MS_DLL_EXPORT int msPopulateRendererVTableCairoPDF( rendererVTableObj *renderer );
MS_DLL_EXPORT int msPopulateRendererVTableOGL( rendererVTableObj *renderer );
MS_DLL_EXPORT int msPopulateRendererVTableAGG( rendererVTableObj *renderer );
- MS_DLL_EXPORT int msPopulateRendererVTableGD( rendererVTableObj *renderer );
+ MS_DLL_EXPORT int msPopulateRendererVTableUTFGrid( rendererVTableObj *renderer );
MS_DLL_EXPORT int msPopulateRendererVTableKML( rendererVTableObj *renderer );
MS_DLL_EXPORT int msPopulateRendererVTableOGR( rendererVTableObj *renderer );
+ MS_DLL_EXPORT int msPopulateRendererVTableOGR( rendererVTableObj *renderer );
+
#ifdef USE_CAIRO
MS_DLL_EXPORT void msCairoCleanup(void);
#endif
@@ -2834,11 +3048,9 @@ extern "C" {
int msSaveRasterBuffer(mapObj *map, rasterBufferObj *data, FILE *stream, outputFormatObj *format);
int msSaveRasterBufferToBuffer(rasterBufferObj *data, bufferObj *buffer, outputFormatObj *format);
int msLoadMSRasterBufferFromFile(char *path, rasterBufferObj *rb);
-#ifdef USE_GD
- int msLoadGDRasterBufferFromFile(char *path, rasterBufferObj *rb);
- int saveGdImage(gdImagePtr ip, FILE *fp, outputFormatObj *format);
- int saveGdImageBuffer(gdImagePtr ip, bufferObj *buffer, outputFormatObj *format);
-#endif
+
+ /* in mapagg.cpp */
+ rasterBufferObj* msApplyFilterToRasterBuffer(const rasterBufferObj *rb, CompositingFilter *filter);
void msBufferInit(bufferObj *buffer);
void msBufferResize(bufferObj *buffer, size_t target_size);
@@ -2850,10 +3062,8 @@ extern "C" {
} fontMetrics;
struct rendererVTableObj {
- int supports_transparent_layers;
int supports_pixel_buffer;
int supports_clipping;
- int supports_bitmap_fonts;
int supports_svg;
int use_imagecache;
enum MS_TRANSFORM_MODE default_transform_mode;
@@ -2863,73 +3073,44 @@ extern "C" {
void *renderer_data;
- fontMetrics* bitmapFontMetrics[5];
-
- int (*renderLine)(imageObj *img, shapeObj *p, strokeStyleObj *style);
- int (*renderPolygon)(imageObj *img, shapeObj *p, colorObj *color);
- int (*renderPolygonTiled)(imageObj *img, shapeObj *p, imageObj *tile);
- int (*renderLineTiled)(imageObj *img, shapeObj *p, imageObj *tile);
-
- int (*renderBitmapGlyphs)(imageObj *img, double x, double y,
- labelStyleObj *style, char *text);
+ int WARN_UNUSED (*renderLine)(imageObj *img, shapeObj *p, strokeStyleObj *style);
+ int WARN_UNUSED (*renderPolygon)(imageObj *img, shapeObj *p, colorObj *color);
+ int WARN_UNUSED (*renderPolygonTiled)(imageObj *img, shapeObj *p, imageObj *tile);
+ int WARN_UNUSED (*renderLineTiled)(imageObj *img, shapeObj *p, imageObj *tile);
- int (*renderGlyphs)(imageObj *img, double x, double y,
- labelStyleObj *style, char *text);
+ int WARN_UNUSED (*renderGlyphs)(imageObj *img, textPathObj *tp, colorObj *clr, colorObj *olcolor, int olwidth);
+ int WARN_UNUSED (*renderText)(imageObj *img, pointObj *labelpnt, char *text, double angle, colorObj *clr, colorObj *olcolor, int olwidth);
- int (*renderGlyphsLine)(imageObj *img, labelPathObj *labelpath,
- labelStyleObj *style, char *text);
-
- int (*renderVectorSymbol)(imageObj *img, double x, double y,
+ int WARN_UNUSED (*renderVectorSymbol)(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj *style);
- void* (*createVectorSymbolTile)(int width, int height,
- symbolObj *symbol, symbolStyleObj *style);
-
- int (*renderPixmapSymbol)(imageObj *img, double x, double y,
+ int WARN_UNUSED (*renderPixmapSymbol)(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj *style);
- void* (*createPixmapSymbolTile)(int width, int height,
- symbolObj *symbol, symbolStyleObj *style);
-
- int (*renderEllipseSymbol)(imageObj *image, double x, double y,
+ int WARN_UNUSED (*renderEllipseSymbol)(imageObj *image, double x, double y,
symbolObj *symbol, symbolStyleObj *style);
- void* (*createEllipseSymbolTile)(int width, int height,
- symbolObj *symbol, symbolStyleObj *style);
-
- int (*renderTruetypeSymbol)(imageObj *img, double x, double y,
- symbolObj *symbol, symbolStyleObj *style);
-
- void* (*createTruetypeSymbolTile)(int width, int height,
- symbolObj *symbol, symbolStyleObj *style);
-
- int (*renderSVGSymbol)(imageObj *img, double x, double y,
+ int WARN_UNUSED (*renderSVGSymbol)(imageObj *img, double x, double y,
symbolObj *symbol, symbolStyleObj *style);
- void* (*createSVGSymbolTile)(int width, int height,
- symbolObj *symbol, symbolStyleObj *style);
-
- int (*renderTile)(imageObj *img, imageObj *tile, double x, double y);
+ int WARN_UNUSED (*renderTile)(imageObj *img, imageObj *tile, double x, double y);
- int (*loadImageFromFile)(char *path, rasterBufferObj *rb);
+ int WARN_UNUSED (*loadImageFromFile)(char *path, rasterBufferObj *rb);
+ int WARN_UNUSED (*getRasterBufferHandle)(imageObj *img, rasterBufferObj *rb);
+ int WARN_UNUSED (*getRasterBufferCopy)(imageObj *img, rasterBufferObj *rb);
+ int WARN_UNUSED (*initializeRasterBuffer)(rasterBufferObj *rb, int width, int height, int mode);
- int (*getRasterBufferHandle)(imageObj *img, rasterBufferObj *rb);
- int (*getRasterBufferCopy)(imageObj *img, rasterBufferObj *rb);
- int (*initializeRasterBuffer)(rasterBufferObj *rb, int width, int height, int mode);
-
- int (*mergeRasterBuffer)(imageObj *dest, rasterBufferObj *overlay, double opacity, int srcX, int srcY, int dstX, int dstY, int width, int height);
+ int WARN_UNUSED (*mergeRasterBuffer)(imageObj *dest, rasterBufferObj *overlay, double opacity, int srcX, int srcY, int dstX, int dstY, int width, int height);
+ int WARN_UNUSED (*compositeRasterBuffer)(imageObj *dest, rasterBufferObj *overlay, CompositingOperation comp_op, int opacity);
/* image i/o */
- imageObj* (*createImage)(int width, int height, outputFormatObj *format, colorObj* bg);
- int (*saveImage)(imageObj *img, mapObj *map, FILE *fp, outputFormatObj *format);
- unsigned char* (*saveImageBuffer)(imageObj *img, int *size_ptr, outputFormatObj *format);
+ imageObj* WARN_UNUSED (*createImage)(int width, int height, outputFormatObj *format, colorObj* bg);
+ int WARN_UNUSED (*saveImage)(imageObj *img, mapObj *map, FILE *fp, outputFormatObj *format);
+ unsigned char* WARN_UNUSED (*saveImageBuffer)(imageObj *img, int *size_ptr, outputFormatObj *format);
/*...*/
- /* helper functions */
- int (*getTruetypeTextBBox)(rendererVTableObj *renderer, char **fonts, int numfonts, double size, char *string, rectObj *rect, double **advances, int bAdjustBaseline);
-
int (*startLayer)(imageObj *img, mapObj *map, layerObj *layer);
int (*endLayer)(imageObj *img, mapObj *map, layerObj *layer);
diff --git a/mapservutil.c b/mapservutil.c
index bb791be..c74b996 100644
--- a/mapservutil.c
+++ b/mapservutil.c
@@ -166,6 +166,14 @@ void msCGIWriteError(mapservObj *mapserv)
}\
} while (0)
+#define GET_NUMERIC_NO_ERROR(string,dbl) dbl = strtod((string), &strtoderr);
+
+#define FREE_TOKENS_ON_ERROR(ntok) if(!strtoderr) {\
+ msSetError(MS_TYPEERR, "invalid number", "msCGILoadForm()");\
+ msFreeCharArray(tokens,(ntok));\
+ return MS_FAILURE;\
+}
+
static void setClassGroup(layerObj *layer, char *classgroup)
{
int i;
@@ -363,6 +371,10 @@ int msCGILoadForm(mapservObj *mapserv)
if(strcasecmp(mapserv->request->ParamNames[i],"queryfile") == 0) {
mapserv->QueryFile = msStrdup(mapserv->request->ParamValues[i]);
+ if(msValidateParameter(mapserv->QueryFile, msLookupHashTable(&(mapserv->map->web.validation), "queryfile"), NULL, NULL, NULL) != MS_SUCCESS) {
+ msSetError(MS_WEBERR, "Parameter 'queryfile' value fails to validate.", "mapserv()");
+ return MS_FAILURE;
+ }
continue;
}
@@ -417,13 +429,18 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 4) {
msSetError(MS_WEBERR, "Not enough arguments for imgext.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->ImgExt.minx);
- GET_NUMERIC(tokens[1],mapserv->ImgExt.miny);
- GET_NUMERIC(tokens[2],mapserv->ImgExt.maxx);
- GET_NUMERIC(tokens[3],mapserv->ImgExt.maxy);
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->ImgExt.minx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->ImgExt.miny);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[2],mapserv->ImgExt.maxx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[3],mapserv->ImgExt.maxy);
+ FREE_TOKENS_ON_ERROR(4);
msFreeCharArray(tokens, 4);
continue;
@@ -457,13 +474,18 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 4) {
msSetError(MS_WEBERR, "Not enough arguments for mapext.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->map->extent.minx);
- GET_NUMERIC(tokens[1],mapserv->map->extent.miny);
- GET_NUMERIC(tokens[2],mapserv->map->extent.maxx);
- GET_NUMERIC(tokens[3],mapserv->map->extent.maxy);
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->map->extent.minx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->map->extent.miny);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[2],mapserv->map->extent.maxx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[3],mapserv->map->extent.maxy);
+ FREE_TOKENS_ON_ERROR(4);
msFreeCharArray(tokens, 4);
@@ -528,11 +550,14 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 2) {
msSetError(MS_WEBERR, "Not enough arguments for mapxy.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->mappnt.x );
- GET_NUMERIC(tokens[1],mapserv->mappnt.y );
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->mappnt.x );
+ FREE_TOKENS_ON_ERROR(2);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->mappnt.y );
+ FREE_TOKENS_ON_ERROR(2);
msFreeCharArray(tokens, 2);
@@ -575,19 +600,14 @@ int msCGILoadForm(mapservObj *mapserv)
if(n%2 != 0 || n<8) { /* n must be even and be at least 8 */
msSetError(MS_WEBERR, "Malformed polygon geometry for mapshape/imgshape.", "msCGILoadForm()");
+ msFreeCharArray(tmp,n);
return MS_FAILURE;
}
line.numpoints = n/2;
- if((line.point = (pointObj *)malloc(sizeof(pointObj)*line.numpoints)) == NULL) {
- msSetError(MS_MEMERR, NULL, "msCGILoadForm()");
- return MS_FAILURE;
- }
+ line.point = (pointObj *)msSmallMalloc(sizeof(pointObj)*line.numpoints);
- if((mapserv->map->query.shape = (shapeObj *) malloc(sizeof(shapeObj))) == NULL) {
- msSetError(MS_MEMERR, NULL, "msCGILoadForm()");
- return MS_FAILURE;
- }
+ mapserv->map->query.shape = (shapeObj *) msSmallMalloc(sizeof(shapeObj));
msInitShape(mapserv->map->query.shape);
mapserv->map->query.shape->type = MS_SHAPE_POLYGON;
@@ -651,11 +671,14 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 2) {
msSetError(MS_WEBERR, "Not enough arguments for imgxy.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->ImgPnt.x );
- GET_NUMERIC(tokens[1],mapserv->ImgPnt.y );
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->ImgPnt.x );
+ FREE_TOKENS_ON_ERROR(2);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->ImgPnt.y );
+ FREE_TOKENS_ON_ERROR(2);
msFreeCharArray(tokens, 2);
@@ -681,13 +704,18 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 4) {
msSetError(MS_WEBERR, "Not enough arguments for imgbox.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->ImgBox.minx);
- GET_NUMERIC(tokens[1],mapserv->ImgBox.miny);
- GET_NUMERIC(tokens[2],mapserv->ImgBox.maxx);
- GET_NUMERIC(tokens[3],mapserv->ImgBox.maxy);
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->ImgBox.minx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->ImgBox.miny);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[2],mapserv->ImgBox.maxx);
+ FREE_TOKENS_ON_ERROR(4);
+ GET_NUMERIC_NO_ERROR(tokens[3],mapserv->ImgBox.maxy);
+ FREE_TOKENS_ON_ERROR(4);
msFreeCharArray(tokens, 4);
@@ -727,11 +755,14 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 2) {
msSetError(MS_WEBERR, "Not enough arguments for imgxy.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],mapserv->RefPnt.x);
- GET_NUMERIC(tokens[1],mapserv->RefPnt.y);
+ GET_NUMERIC_NO_ERROR(tokens[0],mapserv->RefPnt.x);
+ FREE_TOKENS_ON_ERROR(2);
+ GET_NUMERIC_NO_ERROR(tokens[1],mapserv->RefPnt.y);
+ FREE_TOKENS_ON_ERROR(2);
msFreeCharArray(tokens, 2);
@@ -772,12 +803,15 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 2) {
msSetError(MS_WEBERR, "Not enough arguments for imgsize.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],tmpval);
+ GET_NUMERIC_NO_ERROR(tokens[0],tmpval);
+ FREE_TOKENS_ON_ERROR(2);
mapserv->ImgCols = (int)tmpval;
- GET_NUMERIC(tokens[1],tmpval);
+ GET_NUMERIC_NO_ERROR(tokens[1],tmpval);
+ FREE_TOKENS_ON_ERROR(2);
mapserv->ImgRows = (int)tmpval;
msFreeCharArray(tokens, 2);
@@ -800,12 +834,15 @@ int msCGILoadForm(mapservObj *mapserv)
if(n != 2) {
msSetError(MS_WEBERR, "Not enough arguments for mapsize.", "msCGILoadForm()");
+ msFreeCharArray(tokens,n);
return MS_FAILURE;
}
- GET_NUMERIC(tokens[0],tmpval);
+ GET_NUMERIC_NO_ERROR(tokens[0],tmpval);
+ FREE_TOKENS_ON_ERROR(2);
mapserv->map->width = (int)tmpval;
- GET_NUMERIC(tokens[1],tmpval);
+ GET_NUMERIC_NO_ERROR(tokens[1],tmpval);
+ FREE_TOKENS_ON_ERROR(2);
mapserv->map->height = (int)tmpval;
msFreeCharArray(tokens, 2);
@@ -820,7 +857,7 @@ int msCGILoadForm(mapservObj *mapserv)
if(strncasecmp(mapserv->request->ParamNames[i],"layers", 6) == 0) { /* turn a set of layers, delimited by spaces, on */
/* If layers=all then turn on all layers */
- if (strcasecmp(mapserv->request->ParamValues[i], "all") == 0 && mapserv->map != NULL) {
+ if (strcasecmp(mapserv->request->ParamValues[i], "all") == 0) {
int l;
/* Reset NumLayers=0. If individual layers were already selected then free the previous values. */
@@ -844,8 +881,10 @@ int msCGILoadForm(mapservObj *mapserv)
layers = msStringSplit(mapserv->request->ParamValues[i], ' ', &(num_layers));
for(l=0; l<num_layers; l++) {
- if(msGrowMapservLayers(mapserv) == MS_FAILURE)
+ if(msGrowMapservLayers(mapserv) == MS_FAILURE) {
+ msFreeCharArray(layers, num_layers);
return MS_FAILURE;
+ }
mapserv->Layers[mapserv->NumLayers++] = msStrdup(layers[l]);
}
@@ -1193,9 +1232,12 @@ int msCGIDispatchQueryRequest(mapservObj *mapserv)
if(MS_SUCCESS != setExtent(mapserv)) /* set user area of interest */
return MS_FAILURE;
- mapserv->map->query.type = MS_QUERY_BY_ATTRIBUTE;
- if(mapserv->QueryItem) mapserv->map->query.item = msStrdup(mapserv->QueryItem);
- if(mapserv->QueryString) mapserv->map->query.str = msStrdup(mapserv->QueryString);
+ mapserv->map->query.type = MS_QUERY_BY_FILTER;
+ if(mapserv->QueryItem) mapserv->map->query.filteritem = msStrdup(mapserv->QueryItem);
+ if(mapserv->QueryString) {
+ msInitExpression(&mapserv->map->query.filter);
+ msLoadExpressionString(&mapserv->map->query.filter, mapserv->QueryString);
+ }
mapserv->map->query.rect = mapserv->map->extent;
@@ -1248,6 +1290,7 @@ int msCGIDispatchQueryRequest(mapservObj *mapserv)
break;
case FROMUSERPNT:
mapserv->map->query.type = MS_QUERY_BY_POINT;
+ break;
default:
if(MS_SUCCESS != setExtent(mapserv)) {
return MS_FAILURE;
@@ -1285,10 +1328,13 @@ int msCGIDispatchQueryRequest(mapservObj *mapserv)
if(MS_SUCCESS != setExtent(mapserv)) /* set user area of interest */
return MS_FAILURE;
- mapserv->map->query.type = MS_QUERY_BY_ATTRIBUTE;
+ mapserv->map->query.type = MS_QUERY_BY_FILTER;
mapserv->map->query.layer = mapserv->QueryLayerIndex;
- if(mapserv->QueryItem) mapserv->map->query.item = msStrdup(mapserv->QueryItem);
- if(mapserv->QueryString) mapserv->map->query.str = msStrdup(mapserv->QueryString);
+ if(mapserv->QueryItem) mapserv->map->query.filteritem = msStrdup(mapserv->QueryItem);
+ if(mapserv->QueryString) {
+ msInitExpression(&mapserv->map->query.filter);
+ msLoadExpressionString(&mapserv->map->query.filter, mapserv->QueryString);
+ }
mapserv->map->query.rect = mapserv->map->extent;
@@ -1492,7 +1538,12 @@ int msCGIDispatchImageRequest(mapservObj *mapserv)
const char *attachment = msGetOutputFormatOption(mapserv->map->outputformat, "ATTACHMENT", NULL );
if(attachment)
msIO_setHeader("Content-disposition","attachment; filename=%s", attachment);
- msIO_setHeader("Content-Type","%s", MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
+
+ if(!strcmp(MS_IMAGE_MIME_TYPE(mapserv->map->outputformat), "application/json")) {
+ msIO_setHeader("Content-Type","application/json; charset=utf-8");
+ } else {
+ msIO_setHeader("Content-Type","%s", MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
+ }
msIO_sendHeaders();
}
@@ -1541,11 +1592,11 @@ int msCGIDispatchLegendRequest(mapservObj *mapserv)
int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
{
- char **tokens;
+ char **tokens = NULL;
int numtokens=0;
int layerindex=-1, classindex=0, status;
outputFormatObj *format = NULL;
- imageObj *img;
+ imageObj *img = NULL;
/* TODO: do we want to set scale here? */
@@ -1560,29 +1611,38 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
if(numtokens != 1 && numtokens != 2) {
msSetError(MS_WEBERR, "%d Malformed icon parameter, should be 'layer,class' or just 'layer' if the layer has only 1 class defined.", "mapserv()", numtokens);
- return MS_FAILURE;
+ status = MS_FAILURE;
+ goto li_cleanup;
}
if((layerindex = msGetLayerIndex(mapserv->map, tokens[0])) == -1) {
msSetError(MS_WEBERR, "Icon layer=%s not found in mapfile.", "mapserv()", tokens[0]);
- return MS_FAILURE;
+ status = MS_FAILURE;
+ goto li_cleanup;
}
if(numtokens == 2) { /* check the class index */
classindex = atoi(tokens[1]);
if(classindex >= GET_LAYER(mapserv->map, layerindex)->numclasses) {
msSetError(MS_WEBERR, "Icon class=%d not found in layer=%s.", "mapserv()", classindex, GET_LAYER(mapserv->map, layerindex)->name);
- return MS_FAILURE;
+ status = MS_FAILURE;
+ goto li_cleanup;
}
}
if(mapserv->Mode == MAPLEGENDICON) {
- if(setExtent(mapserv) != MS_SUCCESS) return MS_FAILURE;
- if(checkWebScale(mapserv) != MS_SUCCESS) return MS_FAILURE;
+ if(setExtent(mapserv) != MS_SUCCESS) {
+ status=MS_FAILURE;
+ goto li_cleanup;
+ }
+ if(checkWebScale(mapserv) != MS_SUCCESS) {
+ status=MS_FAILURE;
+ goto li_cleanup;
+ }
mapserv->hittest = msSmallMalloc(sizeof(map_hittest));
initMapHitTests(mapserv->map,mapserv->hittest);
status = msHitTestLayer(mapserv->map, GET_LAYER(mapserv->map,layerindex),&mapserv->hittest->layerhits[layerindex]);
- if(status != MS_SUCCESS) return MS_FAILURE;
+ if(status != MS_SUCCESS) goto li_cleanup;
}
/* ensure we have an image format representing the options for the legend. */
@@ -1591,18 +1651,25 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
/* initialize the legend image */
if( ! MS_RENDERER_PLUGIN(format) ) {
msSetError(MS_RENDERERERR, "unsupported renderer for legend icon", "mapserv main()");
- return MS_FAILURE;
+ status = MS_FAILURE;
+ goto li_cleanup;
}
img = msImageCreate(mapserv->map->legend.keysizex, mapserv->map->legend.keysizey, format,
mapserv->map->web.imagepath, mapserv->map->web.imageurl, mapserv->map->resolution, mapserv->map->defresolution,
&(mapserv->map->legend.imagecolor));
+ if(!img) {
+ status = MS_FAILURE;
+ goto li_cleanup;
+ }
/* drop this reference to output format */
msApplyOutputFormat(&format, NULL, MS_NOOVERRIDE, MS_NOOVERRIDE, MS_NOOVERRIDE);
if(msDrawLegendIcon(mapserv->map, GET_LAYER(mapserv->map, layerindex), GET_LAYER(mapserv->map, layerindex)->class[classindex], mapserv->map->legend.keysizex, mapserv->map->legend.keysizey, img, 0, 0, MS_TRUE,
- ((mapserv->hittest)?(&mapserv->hittest->layerhits[layerindex].classhits[classindex]):(NULL))) != MS_SUCCESS)
- return MS_FAILURE;
+ ((mapserv->hittest)?(&mapserv->hittest->layerhits[layerindex].classhits[classindex]):(NULL))) != MS_SUCCESS) {
+ status = MS_FAILURE;
+ goto li_cleanup;
+ }
if(mapserv->sendheaders) {
msIO_setHeader("Content-Type","%s",MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
@@ -1614,12 +1681,13 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
if( mapserv->sendheaders && msLookupHashTable(&(mapserv->map->web.metadata), "http_max_age") ) {
msIO_printf("Cache-Control: max-age=%s%c", msLookupHashTable(&(mapserv->map->web.metadata), "http_max_age"), 10);
}
- if( msSaveImage(NULL, img, NULL) != MS_SUCCESS)
- return MS_FAILURE;
+
+ status = msSaveImage(NULL, img, NULL);
+li_cleanup:
msFreeCharArray(tokens, numtokens);
msFreeImage(img);
- return MS_SUCCESS;
+ return status;
}
int msCGIDispatchRequest(mapservObj *mapserv)
@@ -1749,6 +1817,10 @@ int msCGIHandler(const char *query_string, void **out_buffer, size_t *buffer_len
msIOBuffer *buf;
msIO_installStdoutToBuffer();
+
+ /* Use PROJ_LIB env vars if set */
+ msProjLibInitFromEnv();
+
/* Use MS_ERRORFILE and MS_DEBUGLEVEL env vars if set */
if( msDebugInitFromEnv() != MS_SUCCESS ) {
msCGIWriteError(mapserv);
@@ -1758,15 +1830,15 @@ int msCGIHandler(const char *query_string, void **out_buffer, size_t *buffer_len
if(msGetGlobalDebugLevel() >= MS_DEBUGLEVEL_TUNING)
msGettimeofday(&execstarttime, NULL);
- mapserv = msAllocMapServObj();
- mapserv->request->type = MS_GET_REQUEST;
-
if(!query_string || !*query_string) {
msIO_setHeader("Content-Type","text/html");
msIO_sendHeaders();
msIO_printf("No query information to decode. QUERY_STRING not set.\n");
goto end_request;
}
+
+ mapserv = msAllocMapServObj();
+ mapserv->request->type = MS_GET_REQUEST;
/* don't modify the string */
queryString = msStrdup(query_string);
diff --git a/mapshape.c b/mapshape.c
index b88ca4c..e139b5e 100644
--- a/mapshape.c
+++ b/mapshape.c
@@ -78,10 +78,7 @@ static void SwapWord( int length, void * wordP )
/************************************************************************/
static void * SfRealloc( void * pMem, int nNewSize )
{
- if( pMem == NULL )
- return( (void *) malloc(nNewSize) );
- else
- return( (void *) realloc(pMem,nNewSize) );
+ return realloc(pMem, nNewSize);
}
/************************************************************************/
@@ -283,7 +280,13 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
/* Read the file size from the SHP file. */
/* -------------------------------------------------------------------- */
pabyBuf = (uchar *) msSmallMalloc(100);
- fread( pabyBuf, 100, 1, psSHP->fpSHP );
+ if(1 != fread( pabyBuf, 100, 1, psSHP->fpSHP )) {
+ fclose( psSHP->fpSHP );
+ fclose( psSHP->fpSHX );
+ free( psSHP );
+ free(pabyBuf);
+ return( NULL );
+ }
psSHP->nFileSize = (pabyBuf[24] * 256 * 256 * 256
+ pabyBuf[25] * 256 * 256
@@ -293,12 +296,21 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
/* -------------------------------------------------------------------- */
/* Read SHX file Header info */
/* -------------------------------------------------------------------- */
- fread( pabyBuf, 100, 1, psSHP->fpSHX );
+ if(1 != fread( pabyBuf, 100, 1, psSHP->fpSHX )) {
+ msSetError(MS_SHPERR, "Corrupted .shx file", "msSHPOpen()");
+ fclose( psSHP->fpSHP );
+ fclose( psSHP->fpSHX );
+ free( psSHP );
+ free(pabyBuf);
+ return( NULL );
+ }
if( pabyBuf[0] != 0 || pabyBuf[1] != 0 || pabyBuf[2] != 0x27 || (pabyBuf[3] != 0x0a && pabyBuf[3] != 0x0d) ) {
+ msSetError(MS_SHPERR, "Corrupted .shp file", "msSHPOpen()");
fclose( psSHP->fpSHP );
fclose( psSHP->fpSHX );
free( psSHP );
+ free(pabyBuf);
return( NULL );
}
@@ -313,6 +325,7 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
fclose( psSHP->fpSHP );
fclose( psSHP->fpSHX );
free( psSHP );
+ free(pabyBuf);
return( NULL );
}
@@ -405,8 +418,8 @@ void msSHPClose(SHPHandle psSHP )
free( psSHP->panRecLoaded );
- if(psSHP->pabyRec) free(psSHP->pabyRec);
- if(psSHP->panParts) free(psSHP->panParts);
+ free(psSHP->pabyRec);
+ free(psSHP->panParts);
fclose( psSHP->fpSHX );
fclose( psSHP->fpSHP );
@@ -487,15 +500,23 @@ SHPHandle msSHPCreate( const char * pszLayer, int nShapeType )
pszFullname = (char *) msSmallMalloc(strlen(pszBasename) + 5);
sprintf( pszFullname, "%s.shp", pszBasename );
fpSHP = fopen(pszFullname, "wb" );
- if( fpSHP == NULL )
+ if( fpSHP == NULL ) {
+ free( pszFullname );
+ free(pszBasename);
return( NULL );
+ }
sprintf( pszFullname, "%s.shx", pszBasename );
fpSHX = fopen(pszFullname, "wb" );
- if( fpSHX == NULL )
+ if( fpSHX == NULL ) {
+ fclose(fpSHP);
+ free( pszFullname );
+ free(pszBasename);
return( NULL );
+ }
free( pszFullname );
+ free(pszBasename);
/* -------------------------------------------------------------------- */
/* Prepare header block for .shp file. */
@@ -656,26 +677,28 @@ int msSHPWritePoint(SHPHandle psSHP, pointObj *point )
/* -------------------------------------------------------------------- */
/* Write out record. */
/* -------------------------------------------------------------------- */
- fseek( psSHP->fpSHP, nRecordOffset, 0 );
- fwrite( pabyRec, nRecordSize+8, 1, psSHP->fpSHP );
- free( pabyRec );
+ if(fseek( psSHP->fpSHP, nRecordOffset, 0 ) == 0) {
+ fwrite( pabyRec, nRecordSize+8, 1, psSHP->fpSHP );
- psSHP->panRecSize[psSHP->nRecords-1] = nRecordSize;
- psSHP->nFileSize += nRecordSize + 8;
+ psSHP->panRecSize[psSHP->nRecords-1] = nRecordSize;
+ psSHP->nFileSize += nRecordSize + 8;
- /* -------------------------------------------------------------------- */
- /* Expand file wide bounds based on this shape. */
- /* -------------------------------------------------------------------- */
- if( psSHP->nRecords == 1 ) {
- psSHP->adBoundsMin[0] = psSHP->adBoundsMax[0] = point->x;
- psSHP->adBoundsMin[1] = psSHP->adBoundsMax[1] = point->y;
+ /* -------------------------------------------------------------------- */
+ /* Expand file wide bounds based on this shape. */
+ /* -------------------------------------------------------------------- */
+ if( psSHP->nRecords == 1 ) {
+ psSHP->adBoundsMin[0] = psSHP->adBoundsMax[0] = point->x;
+ psSHP->adBoundsMin[1] = psSHP->adBoundsMax[1] = point->y;
+ } else {
+ psSHP->adBoundsMin[0] = MS_MIN(psSHP->adBoundsMin[0], point->x);
+ psSHP->adBoundsMin[1] = MS_MIN(psSHP->adBoundsMin[1], point->y);
+ psSHP->adBoundsMax[0] = MS_MAX(psSHP->adBoundsMax[0], point->x);
+ psSHP->adBoundsMax[1] = MS_MAX(psSHP->adBoundsMax[1], point->y);
+ }
} else {
- psSHP->adBoundsMin[0] = MS_MIN(psSHP->adBoundsMin[0], point->x);
- psSHP->adBoundsMin[1] = MS_MIN(psSHP->adBoundsMin[1], point->y);
- psSHP->adBoundsMax[0] = MS_MAX(psSHP->adBoundsMax[0], point->x);
- psSHP->adBoundsMax[1] = MS_MAX(psSHP->adBoundsMax[1], point->y);
+ psSHP->nRecords -- ;
}
-
+ free( pabyRec );
return( psSHP->nRecords - 1 );
}
@@ -946,42 +969,46 @@ int msSHPWriteShape(SHPHandle psSHP, shapeObj *shape )
/* -------------------------------------------------------------------- */
/* Write out record. */
/* -------------------------------------------------------------------- */
- fseek( psSHP->fpSHP, nRecordOffset, 0 );
- fwrite( pabyRec, nRecordSize+8, 1, psSHP->fpSHP );
- free( pabyRec );
+ if(fseek( psSHP->fpSHP, nRecordOffset, 0 ) == 0) {
+ fwrite( pabyRec, nRecordSize+8, 1, psSHP->fpSHP );
- psSHP->panRecSize[psSHP->nRecords-1] = nRecordSize;
- psSHP->nFileSize += nRecordSize + 8;
+ psSHP->panRecSize[psSHP->nRecords-1] = nRecordSize;
+ psSHP->nFileSize += nRecordSize + 8;
- /* -------------------------------------------------------------------- */
- /* Expand file wide bounds based on this shape. */
- /* -------------------------------------------------------------------- */
- if( psSHP->nRecords == 1 ) {
- psSHP->adBoundsMin[0] = psSHP->adBoundsMax[0] = shape->line[0].point[0].x;
- psSHP->adBoundsMin[1] = psSHP->adBoundsMax[1] = shape->line[0].point[0].y;
+ /* -------------------------------------------------------------------- */
+ /* Expand file wide bounds based on this shape. */
+ /* -------------------------------------------------------------------- */
+ if( psSHP->nRecords == 1 ) {
+ psSHP->adBoundsMin[0] = psSHP->adBoundsMax[0] = shape->line[0].point[0].x;
+ psSHP->adBoundsMin[1] = psSHP->adBoundsMax[1] = shape->line[0].point[0].y;
#ifdef USE_POINT_Z_M
- psSHP->adBoundsMin[2] = psSHP->adBoundsMax[2] = shape->line[0].point[0].z;
- psSHP->adBoundsMin[3] = psSHP->adBoundsMax[3] = shape->line[0].point[0].m;
+ psSHP->adBoundsMin[2] = psSHP->adBoundsMax[2] = shape->line[0].point[0].z;
+ psSHP->adBoundsMin[3] = psSHP->adBoundsMax[3] = shape->line[0].point[0].m;
#endif
- }
+ }
- for( i=0; i<shape->numlines; i++ ) {
- for( j=0; j<shape->line[i].numpoints; j++ ) {
- psSHP->adBoundsMin[0] = MS_MIN(psSHP->adBoundsMin[0], shape->line[i].point[j].x);
- psSHP->adBoundsMin[1] = MS_MIN(psSHP->adBoundsMin[1], shape->line[i].point[j].y);
+ for( i=0; i<shape->numlines; i++ ) {
+ for( j=0; j<shape->line[i].numpoints; j++ ) {
+ psSHP->adBoundsMin[0] = MS_MIN(psSHP->adBoundsMin[0], shape->line[i].point[j].x);
+ psSHP->adBoundsMin[1] = MS_MIN(psSHP->adBoundsMin[1], shape->line[i].point[j].y);
#ifdef USE_POINT_Z_M
- psSHP->adBoundsMin[2] = MS_MIN(psSHP->adBoundsMin[2], shape->line[i].point[j].z);
- psSHP->adBoundsMin[3] = MS_MIN(psSHP->adBoundsMin[3], shape->line[i].point[j].m);
+ psSHP->adBoundsMin[2] = MS_MIN(psSHP->adBoundsMin[2], shape->line[i].point[j].z);
+ psSHP->adBoundsMin[3] = MS_MIN(psSHP->adBoundsMin[3], shape->line[i].point[j].m);
#endif
- psSHP->adBoundsMax[0] = MS_MAX(psSHP->adBoundsMax[0], shape->line[i].point[j].x);
- psSHP->adBoundsMax[1] = MS_MAX(psSHP->adBoundsMax[1], shape->line[i].point[j].y);
+ psSHP->adBoundsMax[0] = MS_MAX(psSHP->adBoundsMax[0], shape->line[i].point[j].x);
+ psSHP->adBoundsMax[1] = MS_MAX(psSHP->adBoundsMax[1], shape->line[i].point[j].y);
#ifdef USE_POINT_Z_M
- psSHP->adBoundsMax[2] = MS_MAX(psSHP->adBoundsMax[2], shape->line[i].point[j].z);
- psSHP->adBoundsMax[3] = MS_MAX(psSHP->adBoundsMax[3], shape->line[i].point[j].m);
+ psSHP->adBoundsMax[2] = MS_MAX(psSHP->adBoundsMax[2], shape->line[i].point[j].z);
+ psSHP->adBoundsMax[3] = MS_MAX(psSHP->adBoundsMax[3], shape->line[i].point[j].m);
#endif
+ }
}
- }
+ } else {
+ psSHP->nRecords --;
+ /* there was an error writing the record */
+ }
+ free( pabyRec );
return( psSHP->nRecords - 1 );
}
@@ -1055,8 +1082,15 @@ int msSHPReadPoint( SHPHandle psSHP, int hEntity, pointObj *point )
/* -------------------------------------------------------------------- */
/* Read the record. */
/* -------------------------------------------------------------------- */
- fseek( psSHP->fpSHP, msSHXReadOffset( psSHP, hEntity), 0 );
- fread( psSHP->pabyRec, nEntitySize, 1, psSHP->fpSHP );
+ if( 0 != fseek( psSHP->fpSHP, msSHXReadOffset( psSHP, hEntity), 0 )) {
+ msSetError(MS_IOERR, "failed to seek offset", "msSHPReadPoint()");
+ return(MS_FAILURE);
+ }
+ if( 1 != fread( psSHP->pabyRec, nEntitySize, 1, psSHP->fpSHP )) {
+ msSetError(MS_IOERR, "failed to fread record", "msSHPReadPoint()");
+ return(MS_FAILURE);
+ }
+
memcpy( &(point->x), psSHP->pabyRec + 12, 8 );
memcpy( &(point->y), psSHP->pabyRec + 20, 8 );
@@ -1088,9 +1122,18 @@ int msSHXLoadPage( SHPHandle psSHP, int shxBufferPage )
if( shxBufferPage < 0 )
return(MS_FAILURE);
- /* The SHX file starts with 100 bytes of header, skip that. */
- fseek( psSHP->fpSHX, 100 + shxBufferPage * SHX_BUFFER_PAGE * 8, 0 );
- fread( buffer, 8, SHX_BUFFER_PAGE, psSHP->fpSHX );
+ if( 0 != fseek( psSHP->fpSHX, 100 + shxBufferPage * SHX_BUFFER_PAGE * 8, 0 )) {
+ /*
+ * msSetError(MS_IOERR, "failed to seek offset", "msSHXLoadPage()");
+ * return(MS_FAILURE);
+ */
+ }
+ if( SHX_BUFFER_PAGE != fread( buffer, 8, SHX_BUFFER_PAGE, psSHP->fpSHX )) {
+ /*
+ * msSetError(MS_IOERR, "failed to fread SHX record", "msSHXLoadPage()");
+ * return(MS_FAILURE);
+ */
+ }
/* Copy the buffer contents out into the working arrays. */
for( i = 0; i < SHX_BUFFER_PAGE; i++ ) {
@@ -1132,7 +1175,11 @@ int msSHXLoadAll( SHPHandle psSHP )
uchar *pabyBuf;
pabyBuf = (uchar *) msSmallMalloc(8 * psSHP->nRecords );
- fread( pabyBuf, 8, psSHP->nRecords, psSHP->fpSHX );
+ if(psSHP->nRecords != fread( pabyBuf, 8, psSHP->nRecords, psSHP->fpSHX )) {
+ msSetError(MS_IOERR, "failed to read shx records", "msSHXLoadAll()");
+ free(pabyBuf);
+ return MS_FAILURE;
+ }
for( i = 0; i < psSHP->nRecords; i++ ) {
ms_int32 nOffset, nLength;
@@ -1221,8 +1268,16 @@ void msSHPReadShape( SHPHandle psSHP, int hEntity, shapeObj *shape )
/* -------------------------------------------------------------------- */
/* Read the record. */
/* -------------------------------------------------------------------- */
- fseek( psSHP->fpSHP, msSHXReadOffset(psSHP, hEntity), 0 );
- fread( psSHP->pabyRec, nEntitySize, 1, psSHP->fpSHP );
+ if( 0 != fseek( psSHP->fpSHP, msSHXReadOffset( psSHP, hEntity), 0 )) {
+ msSetError(MS_IOERR, "failed to seek offset", "msSHPReadShape()");
+ shape->type = MS_SHAPE_NULL;
+ return;
+ }
+ if( 1 != fread( psSHP->pabyRec, nEntitySize, 1, psSHP->fpSHP )) {
+ msSetError(MS_IOERR, "failed to fread record", "msSHPReadPoint()");
+ shape->type = MS_SHAPE_NULL;
+ return;
+ }
/* -------------------------------------------------------------------- */
/* Extract vertices for a Polygon or Arc. */
@@ -1590,8 +1645,14 @@ int msSHPReadBounds( SHPHandle psSHP, int hEntity, rectObj *padBounds)
}
if( psSHP->nShapeType != SHP_POINT && psSHP->nShapeType != SHP_POINTZ && psSHP->nShapeType != SHP_POINTM) {
- fseek( psSHP->fpSHP, msSHXReadOffset(psSHP, hEntity) + 12, 0 );
- fread( padBounds, sizeof(double)*4, 1, psSHP->fpSHP );
+ if( 0 != fseek( psSHP->fpSHP, msSHXReadOffset( psSHP, hEntity) + 12, 0 )) {
+ msSetError(MS_IOERR, "failed to seek offset", "msSHPReadBounds()");
+ return(MS_FAILURE);
+ }
+ if( 1 != fread( padBounds, sizeof(double)*4, 1, psSHP->fpSHP )) {
+ msSetError(MS_IOERR, "failed to fread record", "msSHPReadBounds()");
+ return(MS_FAILURE);
+ }
if( bBigEndian ) {
SwapWord( 8, &(padBounds->minx) );
@@ -1610,8 +1671,14 @@ int msSHPReadBounds( SHPHandle psSHP, int hEntity, rectObj *padBounds)
/* minimum and maximum bound. */
/* -------------------------------------------------------------------- */
- fseek( psSHP->fpSHP, msSHXReadOffset(psSHP, hEntity) + 12, 0 );
- fread( padBounds, sizeof(double)*2, 1, psSHP->fpSHP );
+ if( 0 != fseek( psSHP->fpSHP, msSHXReadOffset( psSHP, hEntity) + 12, 0 )) {
+ msSetError(MS_IOERR, "failed to seek offset", "msSHPReadBounds()");
+ return(MS_FAILURE);
+ }
+ if( 1 != fread( padBounds, sizeof(double)*2, 1, psSHP->fpSHP )) {
+ msSetError(MS_IOERR, "failed to fread record", "msSHPReadBounds()");
+ return(MS_FAILURE);
+ }
if( bBigEndian ) {
SwapWord( 8, &(padBounds->minx) );
@@ -1626,7 +1693,7 @@ int msSHPReadBounds( SHPHandle psSHP, int hEntity, rectObj *padBounds)
return MS_SUCCESS;
}
-int msShapefileOpen(shapefileObj *shpfile, char *mode, char *filename, int log_failures)
+int msShapefileOpen(shapefileObj *shpfile, const char *mode, const char *filename, int log_failures)
{
int i;
char *dbfFilename;
@@ -1728,7 +1795,7 @@ void msShapefileClose(shapefileObj *shpfile)
if (shpfile && shpfile->isopen == MS_TRUE) { /* Silently return if called with NULL shpfile by freeLayer() */
if(shpfile->hSHP) msSHPClose(shpfile->hSHP);
if(shpfile->hDBF) msDBFClose(shpfile->hDBF);
- if(shpfile->status) free(shpfile->status);
+ free(shpfile->status);
shpfile->isopen = MS_FALSE;
}
}
@@ -1742,10 +1809,8 @@ int msShapefileWhichShapes(shapefileObj *shpfile, rectObj rect, int debug)
char *sourcename = 0; /* shape file source string from map file */
char *s = 0; /* pointer to start of '.shp' in source string */
- if(shpfile->status) {
- free(shpfile->status);
- shpfile->status = NULL;
- }
+ free(shpfile->status);
+ shpfile->status = NULL;
shpfile->statusbounds = rect; /* save the search extent */
@@ -1894,7 +1959,7 @@ int msTiledSHPOpenFile(layerObj *layer)
tlp = (GET_LAYER(layer->map, tSHP->tilelayerindex));
if(tlp->connectiontype != MS_SHAPEFILE) {
- msSetError(MS_SDEERR, "Tileindex layer must be a shapefile.", "msTiledSHPOpenFile()");
+ msSetError(MS_SHPERR, "Tileindex layer must be a shapefile.", "msTiledSHPOpenFile()");
return(MS_FAILURE);
}
@@ -2483,7 +2548,7 @@ void msSHPLayerFreeItemInfo(layerObj *layer)
int msSHPLayerInitItemInfo(layerObj *layer)
{
- shapefileObj *shpfile = shpfile = layer->layerinfo;
+ shapefileObj *shpfile = layer->layerinfo;
if( ! shpfile) {
msSetError(MS_SHPERR, "Shapefile layer has not been opened.", "msSHPLayerInitItemInfo()");
return MS_FAILURE;
@@ -2506,13 +2571,13 @@ int msSHPLayerOpen(layerObj *layer)
if(layer->layerinfo) return MS_SUCCESS; /* layer already open */
+ if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
+ return MS_FAILURE;
+
/* allocate space for a shapefileObj using layer->layerinfo */
shpfile = (shapefileObj *) malloc(sizeof(shapefileObj));
MS_CHECK_ALLOC(shpfile, sizeof(shapefileObj), MS_FAILURE);
- if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
- return MS_FAILURE;
-
layer->layerinfo = shpfile;
@@ -2562,12 +2627,12 @@ int msSHPLayerOpen(layerObj *layer)
if( bOK != MS_TRUE )
{
- if( layer->debug || (layer->map && layer->map->debug) ) {
+ if( layer->debug || layer->map->debug ) {
msDebug( "Unable to get SRS from shapefile '%s' for layer '%s'.\n", szPath, layer->name );
}
}
#else /* !(defined(USE_GDAL) || defined(USE_OGR)) */
- if( layer->debug || (layer->map && layer->map->debug) ) {
+ if( layer->debug || layer->map->debug ) {
msDebug( "Unable to get SRS from shapefile '%s' for layer '%s'. GDAL or OGR support needed\n", szPath, layer->name );
}
#endif /* defined(USE_GDAL) || defined(USE_OGR) */
@@ -2606,7 +2671,7 @@ int msSHPLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
int msSHPLayerNextShape(layerObj *layer, shapeObj *shape)
{
- int i, filter_passed=MS_FALSE;
+ int i;
shapefileObj *shpfile;
shpfile = layer->layerinfo;
@@ -2616,29 +2681,18 @@ int msSHPLayerNextShape(layerObj *layer, shapeObj *shape)
return MS_FAILURE;
}
- do {
- i = msGetNextBit(shpfile->status, shpfile->lastshape + 1, shpfile->numshapes);
- shpfile->lastshape = i;
- if(i == -1) return(MS_DONE); /* nothing else to read */
+ i = msGetNextBit(shpfile->status, shpfile->lastshape + 1, shpfile->numshapes);
+ shpfile->lastshape = i;
+ if(i == -1) return(MS_DONE); /* nothing else to read */
- msSHPReadShape(shpfile->hSHP, i, shape);
- if(shape->type == MS_SHAPE_NULL) {
- msFreeShape(shape);
- continue; /* skip NULL shapes */
- }
- shape->numvalues = layer->numitems;
- shape->values = msDBFGetValueList(shpfile->hDBF, i, layer->iteminfo, layer->numitems);
- if(!shape->values) {
- shape->numvalues = 0;
- }
-
- filter_passed = MS_TRUE; /* By default accept ANY shape */
- if(layer->numitems > 0 && layer->iteminfo) {
- filter_passed = msEvalExpression(layer, shape, &(layer->filter), layer->filteritemindex);
- }
-
- if(!filter_passed) msFreeShape(shape);
- } while(!filter_passed); /* Loop until both spatial and attribute filters match */
+ msSHPReadShape(shpfile->hSHP, i, shape);
+ if(shape->type == MS_SHAPE_NULL) {
+ msFreeShape(shape);
+ msSHPLayerNextShape(layer, shape); /* skip NULL shapes */
+ }
+ shape->numvalues = layer->numitems;
+ shape->values = msDBFGetValueList(shpfile->hDBF, i, layer->iteminfo, layer->numitems);
+ if(!shape->values) shape->numvalues = 0;
return MS_SUCCESS;
}
@@ -2745,6 +2799,7 @@ int msSHPLayerInitializeVirtualTable(layerObj *layer)
/* layer->vtable->LayerGetAutoStyle, use default */
/* layer->vtable->LayerCloseConnection, use default */
layer->vtable->LayerSetTimeFilter = msLayerMakeBackticsTimeFilter;
+ /* layer->vtable->LayerTranslateFilter, use default */
/* layer->vtable->LayerApplyFilterToLayer, use default */
/* layer->vtable->LayerCreateItems, use default */
/* layer->vtable->LayerGetNumFeatures, use default */
diff --git a/mapshape.h b/mapshape.h
index 6d9f004..b3c3fd8 100644
--- a/mapshape.h
+++ b/mapshape.h
@@ -182,7 +182,7 @@ extern "C" {
} msTiledSHPLayerInfo;
/* shapefileObj function prototypes */
- MS_DLL_EXPORT int msShapefileOpen(shapefileObj *shpfile, char *mode, char *filename, int log_failures);
+ MS_DLL_EXPORT int msShapefileOpen(shapefileObj *shpfile, const char *mode, const char *filename, int log_failures);
MS_DLL_EXPORT int msShapefileCreate(shapefileObj *shpfile, char *filename, int type);
MS_DLL_EXPORT void msShapefileClose(shapefileObj *shpfile);
MS_DLL_EXPORT int msShapefileWhichShapes(shapefileObj *shpfile, rectObj rect, int debug);
diff --git a/mapsmoothing.c b/mapsmoothing.c
index 2ebf48c..12e32c2 100644
--- a/mapsmoothing.c
+++ b/mapsmoothing.c
@@ -227,7 +227,10 @@ shapeObj* msSmoothShapeSIA(shapeObj *shape, int ss, int si, char *preprocessing)
for (j=0; j < newShape->numlines; ++j)
free(newShape->line[j].point);
newShape->numlines = 0;
- if (newShape->line) free(newShape->line);
+ if (newShape->line) {
+ free(newShape->line);
+ newShape->line = NULL;
+ }
shape = &initialShape;
}
diff --git a/mapstring.c b/mapstring.c
index d1be3e9..bc3a49d 100644
--- a/mapstring.c
+++ b/mapstring.c
@@ -414,6 +414,51 @@ void msStringToLower(char *string)
}
}
+/**
+ * Force the first character to uppercase and the rest of the characters to
+ * lower case for EACH word in the string.
+ */
+void msStringInitCap(char *string)
+{
+ int i;
+ int start = 1;
+ if (string != NULL) {
+ for (i = 0; i < (int)strlen(string); i++) {
+ if (string[i] == ' ')
+ start = 1;
+ else if (start) {
+ string[i] = toupper(string[i]);
+ start = 0;
+ }
+ else {
+ string[i] = tolower(string[i]);
+ }
+ }
+ }
+}
+
+/**
+ * Force the first character to uppercase for the FIRST word in the string
+ * and the rest of the characters to lower case.
+ */
+void msStringFirstCap(char *string)
+{
+ int i;
+ int start = 1;
+ if (string != NULL) {
+ for (i = 0; i < (int)strlen(string); i++) {
+ if (string[i] != ' ') {
+ if (start) {
+ string[i] = toupper(string[i]);
+ start = 0;
+ }
+ else
+ string[i] = tolower(string[i]);
+ }
+ }
+ }
+}
+
char *msStringChop(char *string)
{
int n;
@@ -789,11 +834,9 @@ char **msStringSplit(const char *string, char ch, int *num_tokens)
}
token = (char **) msSmallMalloc(sizeof(char *)*n);
- if(!token) return(NULL);
k = 0;
token[k] = (char *)msSmallMalloc(sizeof(char)*(length+1));
- if(!token[k]) return(NULL);
j = 0;
last_ch='\0';
@@ -807,7 +850,6 @@ char **msStringSplit(const char *string, char ch, int *num_tokens)
k++;
token[k] = (char *)msSmallMalloc(sizeof(char)*(length+1));
- if(!token[k]) return(NULL);
j = 0;
} else {
@@ -859,7 +901,7 @@ char ** msStringSplitComplex( const char * pszString,
int bStripLeadSpaces = (nFlags & MS_STRIPLEADSPACES);
int bStripEndSpaces = (nFlags & MS_STRIPENDSPACES);
- pszToken = (char *) msSmallMalloc(sizeof(char*)*10);;
+ pszToken = (char *) msSmallMalloc(sizeof(char)*10);;
nTokenMax = 10;
while( pszString != NULL && *pszString != '\0' ) {
@@ -925,7 +967,7 @@ char ** msStringSplitComplex( const char * pszString,
*/
if( nTokenLen >= nTokenMax-3 ) {
nTokenMax = nTokenMax * 2 + 10;
- pszToken = (char *) msSmallRealloc(pszToken, sizeof(char*)*nTokenMax);
+ pszToken = (char *) msSmallRealloc(pszToken, sizeof(char)*nTokenMax);
}
pszToken[nTokenLen] = *pszString;
@@ -987,7 +1029,7 @@ char **msStringTokenize( const char *pszLine, const char *pszDelim,
{
char **papszResult = NULL;
int n = 1, iChar, nLength = strlen(pszLine), iTokenChar = 0, bInQuotes = MS_FALSE;
- char *pszToken = (char *) msSmallMalloc(sizeof(char*)*(nLength+1));
+ char *pszToken = (char *) msSmallMalloc(sizeof(char)*(nLength+1));
int nDelimLen = strlen(pszDelim);
/* Compute the number of tokens */
@@ -1017,7 +1059,7 @@ char **msStringTokenize( const char *pszLine, const char *pszDelim,
} else if( !bInQuotes && strncmp(pszLine+iChar,pszDelim,nDelimLen) == 0 ) {
pszToken[iTokenChar++] = '\0';
papszResult[n] = pszToken;
- pszToken = (char *) msSmallMalloc(sizeof(char*)*(nLength+1));
+ pszToken = (char *) msSmallMalloc(sizeof(char)*(nLength+1));
iChar += nDelimLen - 1;
iTokenChar = 0;
n++;
@@ -1080,7 +1122,7 @@ char *msEncodeUrl(const char *data)
char *msEncodeUrlExcept(const char *data, const char except)
{
- char *hex = "0123456789ABCDEF";
+ static const char *hex = "0123456789ABCDEF";
const char *i;
char *j, *code;
int inc;
@@ -1110,6 +1152,77 @@ char *msEncodeUrlExcept(const char *data, const char except)
return code;
}
+/************************************************************************/
+/* msEscapeJSonString() */
+/************************************************************************/
+
+/* The input (and output) string are not supposed to start/end with double */
+/* quote characters. It is the responsibility of the caller to do that. */
+char* msEscapeJSonString(const char* pszJSonString)
+{
+ /* Worst case is one character to become \uABCD so 6 characters */
+ char* pszRet;
+ int i = 0, j = 0;
+ static const char* pszHex = "0123456789ABCDEF";
+
+ pszRet = (char*) msSmallMalloc(strlen(pszJSonString) * 6 + 1);
+ /* From http://www.json.org/ */
+ for(i = 0; pszJSonString[i] != '\0'; i++)
+ {
+ unsigned char ch = pszJSonString[i];
+ if( ch == '\b' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 'b';
+ }
+ else if( ch == '\f' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 'f';
+ }
+ else if( ch == '\n' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 'n';
+ }
+ else if( ch == '\r' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 'r';
+ }
+ else if( ch == '\t' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 't';
+ }
+ else if( ch < 32 )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = 'u';
+ pszRet[j++] = '0';
+ pszRet[j++] = '0';
+ pszRet[j++] = pszHex[ch / 16];
+ pszRet[j++] = pszHex[ch % 16];
+ }
+ else if( ch == '"' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = '"';
+ }
+ else if( ch == '\\' )
+ {
+ pszRet[j++] = '\\';
+ pszRet[j++] = '\\';
+ }
+ else
+ {
+ pszRet[j++] = ch;
+ }
+ }
+ pszRet[j] = '\0';
+ return pszRet;
+}
+
/* msEncodeHTMLEntities()
**
** Return a copy of string after replacing some problematic chars with their
@@ -1194,8 +1307,8 @@ void msDecodeHTMLEntities(const char *string)
pszBuffer = (char*)string;
bufferSize = strlen(pszBuffer);
- pszReplace = (char*) msSmallMalloc(bufferSize);
- pszEnd = (char*) msSmallMalloc(bufferSize);
+ pszReplace = (char*) msSmallMalloc(bufferSize+1);
+ pszEnd = (char*) msSmallMalloc(bufferSize+1);
while((pszAmp = strchr(pszBuffer, '&')) != NULL) {
/* Get the &...; */
@@ -1414,14 +1527,15 @@ char *msCaseReplaceSubstring(char *str, const char *old, const char *new)
size_t str_len, old_len, new_len, tmp_offset;
char *tmp_ptr;
- if(new == NULL)
- new = "";
-
/*
** If old is not found then leave str alone
*/
if( (tmp_ptr = (char *) strcasestr(str, old)) == NULL)
return(str);
+
+ if(new == NULL)
+ new = "";
+
/*
** Grab some info about incoming strings
@@ -1606,6 +1720,7 @@ char *msGetEncodedString(const char *string, const char *encoding)
const char *inp;
char *outp, *out = NULL;
size_t len, bufsize, bufleft, iconv_status;
+ assert(encoding);
#ifdef USE_FRIBIDI
msAcquireLock(TLOCK_FRIBIDI);
@@ -1618,7 +1733,7 @@ char *msGetEncodedString(const char *string, const char *encoding)
#endif
len = strlen(string);
- if (len == 0 || (encoding && strcasecmp(encoding, "UTF-8")==0))
+ if (len == 0 || strcasecmp(encoding, "UTF-8")==0)
return msStrdup(string); /* Nothing to do: string already in UTF-8 */
cd = iconv_open("UTF-8", encoding);
@@ -1778,7 +1893,8 @@ char* msConvertWideStringToUTF8 (const wchar_t* string, const char* encoding)
int msGetNextGlyph(const char **in_ptr, char *out_string)
{
unsigned char in;
- int numbytes=0,unicode;
+ int numbytes=0;
+ unsigned int unicode;
int i;
in = (unsigned char)**in_ptr;
@@ -1905,7 +2021,7 @@ static int cmp_entities(const void *e1, const void *e2)
* - if the string does start with such entity,it returns the number of
* bytes occupied by said entity, and stores the unicode value in *unicode
*/
-int msGetUnicodeEntity(const char *inptr, int *unicode)
+int msGetUnicodeEntity(const char *inptr, unsigned int *unicode)
{
unsigned char *in = (unsigned char*)inptr;
int l,val=0;
@@ -2073,3 +2189,59 @@ int msStringInArray( const char * pszString, char **array, int numelements)
}
return MS_FALSE;
}
+
+int msLayerEncodeShapeAttributes( layerObj *layer, shapeObj *shape) {
+
+#ifdef USE_ICONV
+ iconv_t cd = NULL;
+ const char *inp;
+ char *outp, *out = NULL;
+ size_t len, bufsize, bufleft, iconv_status;
+ int i;
+#endif
+
+ if( !layer->encoding || !*layer->encoding || !strcasecmp(layer->encoding, "UTF-8"))
+ return MS_SUCCESS;
+
+ cd = iconv_open("UTF-8", layer->encoding);
+ if(cd == (iconv_t)-1) {
+ msSetError(MS_IDENTERR, "Encoding not supported by libiconv (%s).",
+ "msGetEncodedString()", layer->encoding);
+ return MS_FAILURE;
+ }
+
+#ifdef USE_ICONV
+ for(i=0;i <shape->numvalues; i++) {
+ if(!shape->values[i] || (len = strlen(shape->values[i]))==0) {
+ continue; /* Nothing to do */
+ }
+
+ bufsize = len * 6 + 1; /* Each UTF-8 char can be up to 6 bytes */
+ inp = shape->values[i];
+ out = (char*) msSmallMalloc(bufsize);
+
+ strlcpy(out, shape->values[i], bufsize);
+ outp = out;
+
+ bufleft = bufsize;
+ iconv_status = -1;
+
+ while (len > 0) {
+ iconv_status = iconv(cd, (char**)&inp, &len, &outp, &bufleft);
+ if(iconv_status == -1) {
+ msFree(out);
+ continue; /* silently ignore failed conversions */
+ }
+ }
+ out[bufsize - bufleft] = '\0';
+ msFree(shape->values[i]);
+ shape->values[i] = out;
+ }
+ iconv_close(cd);
+
+ return MS_SUCCESS;
+#else
+ msSetError(MS_MISCERR, "Not implemented since Iconv is not enabled.", "msGetEncodedString()");
+ return MS_FAILURE;
+#endif
+}
diff --git a/mapsymbol.c b/mapsymbol.c
index 2fd876a..69b4a9f 100644
--- a/mapsymbol.c
+++ b/mapsymbol.c
@@ -34,6 +34,7 @@
#include "mapfile.h"
#include "mapcopy.h"
#include "mapthread.h"
+#include "fontcache.h"
@@ -118,9 +119,7 @@ void initSymbol(symbolObj *s)
s->imagepath = NULL;
s->name = NULL;
s->inmapfile = MS_FALSE;
- s->antialias = MS_FALSE;
s->font = NULL;
- s->full_font_path = NULL;
s->full_pixmap_path = NULL;
s->character = NULL;
s->anchorpoint_x = s->anchorpoint_y = 0.5;
@@ -149,7 +148,6 @@ int msFreeSymbol(symbolObj *s)
if(s->font) free(s->font);
- msFree(s->full_font_path);
msFree(s->full_pixmap_path);
if(s->imagepath) free(s->imagepath);
if(s->character) free(s->character);
@@ -174,9 +172,8 @@ int loadSymbol(symbolObj *s, char *symbolpath)
return(-1);
}
break;
- case(ANTIALIAS):
- if((s->antialias = getSymbol(2,MS_TRUE,MS_FALSE)) == -1)
- return(-1);
+ case(ANTIALIAS): /*ignore*/
+ msyylex();
break;
case(CHARACTER):
if(getString(&s->character) == MS_FAILURE) return(-1);
@@ -285,6 +282,7 @@ int loadSymbol(symbolObj *s, char *symbolpath)
return(-1);
} /* end switch */
} /* end for */
+ return done;
}
void writeSymbol(symbolObj *s, FILE *stream)
@@ -305,7 +303,6 @@ void writeSymbol(symbolObj *s, FILE *stream)
break;
case(MS_SYMBOL_TRUETYPE):
msIO_fprintf(stream, " TYPE TRUETYPE\n");
- if(s->antialias == MS_TRUE) msIO_fprintf(stream, " ANTIALIAS TRUE\n");
if (s->character != NULL) msIO_fprintf(stream, " CHARACTER \"%s\"\n", s->character);
if (s->font != NULL) msIO_fprintf(stream, " FONT \"%s\"\n", s->font);
break;
@@ -347,6 +344,7 @@ int msAddImageSymbol(symbolSetObj *symbolset, char *filename)
{
char szPath[MS_MAXPATHLEN];
symbolObj *symbol=NULL;
+ char *extension=NULL;
if(!symbolset) {
msSetError(MS_SYMERR, "Symbol structure unallocated.", "msAddImageSymbol()");
@@ -360,6 +358,16 @@ int msAddImageSymbol(symbolSetObj *symbolset, char *filename)
return -1;
symbol = symbolset->symbol[symbolset->numsymbols];
+ /* check if svg checking extension otherwise assume it's a pixmap */
+ extension = strrchr(filename, '.');
+ if (extension == NULL)
+ extension = "";
+ if (strncasecmp(extension, ".svg", 4) == 0) {
+ symbol->type = MS_SYMBOL_SVG;
+ } else {
+ symbol->type = MS_SYMBOL_PIXMAP;
+ }
+
#ifdef USE_CURL
if (strncasecmp(filename, "http", 4) == 0) {
char *tmpfullfilename = NULL;
@@ -400,7 +408,6 @@ int msAddImageSymbol(symbolSetObj *symbolset, char *filename)
symbol->imagepath = msStrdup(filename);
}
symbol->name = msStrdup(filename);
- symbol->type = MS_SYMBOL_PIXMAP;
return(symbolset->numsymbols++);
}
@@ -607,19 +614,36 @@ int loadSymbolSet(symbolSetObj *symbolset, mapObj *map)
return(status);
}
+int msGetCharacterSize(mapObj *map, char* font, int size, char *character, rectObj *r) {
+ unsigned int unicode, codepoint;
+ glyph_element *glyph;
+ face_element *face = msGetFontFace(font, &map->fontset);
+ if(UNLIKELY(!face)) return MS_FAILURE;
+ msUTF8ToUniChar(character, &unicode);
+ codepoint = msGetGlyphIndex(face,unicode);
+ glyph = msGetGlyphByIndex(face,size,codepoint);
+ if(UNLIKELY(!glyph)) return MS_FAILURE;
+ if(glyph) {
+ r->minx = glyph->metrics.minx;
+ r->maxx = glyph->metrics.maxx;
+ r->miny = - glyph->metrics.maxy;
+ r->maxy = - glyph->metrics.miny;
+ }
+ return MS_SUCCESS;
+}
+
/*
** Returns the size, in pixels, of a marker symbol defined by a specific style and scalefactor. Used for annotation
** layer collision avoidance. A marker is made up of a number of styles so the calling code must either do the looping
** itself or call this function for the bottom style which should be the largest.
*/
-int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, double *width, double *height, double scalefactor)
+int msGetMarkerSize(mapObj *map, styleObj *style, double *width, double *height, double scalefactor)
{
- rectObj rect;
int size;
symbolObj *symbol;
*width = *height = 0; /* set a starting value */
- if(style->symbol > symbolset->numsymbols || style->symbol < 0) return(MS_FAILURE); /* no such symbol, 0 is OK */
+ if(style->symbol > map->symbolset.numsymbols || style->symbol < 0) return(MS_FAILURE); /* no such symbol, 0 is OK */
if(style->symbol == 0) { /* single point */
*width = 1;
@@ -627,9 +651,9 @@ int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, double *width, dou
return(MS_SUCCESS);
}
- symbol = symbolset->symbol[style->symbol];
+ symbol = map->symbolset.symbol[style->symbol];
if (symbol->type == MS_SYMBOL_PIXMAP && !symbol->pixmap_buffer) {
- if (MS_SUCCESS != msPreloadImageSymbol(MS_MAP_RENDERER(symbolset->map), symbol))
+ if (MS_SUCCESS != msPreloadImageSymbol(MS_MAP_RENDERER(map), symbol))
return MS_FAILURE;
}
if(symbol->type == MS_SYMBOL_SVG && !symbol->renderer_cache) {
@@ -650,12 +674,14 @@ int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, double *width, dou
switch(symbol->type) {
- case(MS_SYMBOL_TRUETYPE):
- if(msGetTruetypeTextBBox(MS_MAP_RENDERER(symbolset->map),symbol->font,symbolset->fontset,size,symbol->character,&rect,NULL,0) != MS_SUCCESS)
- return(MS_FAILURE);
+ case(MS_SYMBOL_TRUETYPE): {
+ rectObj gbounds;
+ if(UNLIKELY(MS_FAILURE == msGetCharacterSize(map,symbol->font,size,symbol->character, &gbounds)))
+ return MS_FAILURE;
- *width = MS_MAX(*width, rect.maxx - rect.minx);
- *height = MS_MAX(*height, rect.maxy - rect.miny);
+ *width = MS_MAX(*width, (gbounds.maxx-gbounds.minx));
+ *height = MS_MAX(*height, (gbounds.maxy-gbounds.miny));
+ }
break;
@@ -779,6 +805,21 @@ symbolObj *msRemoveSymbol(symbolSetObj *symbolset, int nSymbolIndex)
}
}
}
+ /* Update symbol references in labelcache */
+ for(c = 0; c < MS_MAX_LABEL_PRIORITY; c++) {
+ labelCacheSlotObj *cacheslot = &(symbolset->map->labelcache.slots[c]);
+ for(l = 0; l < cacheslot->numlabels; l++) {
+ labelCacheMemberObj *cachePtr = &(cacheslot->labels[l]);
+ for(lb = 0; lb < cachePtr->numtextsymbols; lb++) {
+ label = cachePtr->textsymbols[lb]->label;
+ for (s = 0; s < label->numstyles; s++) {
+ style = label->styles[s];
+ if (style->symbol >= nSymbolIndex)
+ --style->symbol;
+ }
+ }
+ }
+ }
}
return symbol;
}
@@ -885,7 +926,6 @@ int msCopySymbol(symbolObj *dst, symbolObj *src, mapObj *map)
MS_COPYSTELEM(transparent);
MS_COPYSTELEM(transparentcolor);
MS_COPYSTRING(dst->character, src->character);
- MS_COPYSTELEM(antialias);
MS_COPYSTRING(dst->font, src->font);
MS_COPYSTRING(dst->full_pixmap_path,src->full_pixmap_path);
@@ -981,7 +1021,7 @@ symbolObj *msRotateVectorSymbol(symbolObj *symbol, double angle)
/* center at 0,0 and rotate; then move back */
for( i=0; i < symbol->numpoints; i++) {
/* don't rotate PENUP commands (TODO: should use a constant here) */
- if ((symbol->points[i].x == -99.0) || (symbol->points[i].x == -99.0) ) {
+ if ((symbol->points[i].x == -99.0) && (symbol->points[i].y == -99.0) ) {
newSymbol->points[i].x = -99.0;
newSymbol->points[i].y = -99.0;
continue;
@@ -997,7 +1037,7 @@ symbolObj *msRotateVectorSymbol(symbolObj *symbol, double angle)
xcor = minx*-1.0; /* symbols always start at 0,0 so get the shift vector */
ycor = miny*-1.0;
for( i=0; i < newSymbol->numpoints; i++) {
- if ((newSymbol->points[i].x == -99.0) || (newSymbol->points[i].x == -99.0))
+ if ((newSymbol->points[i].x == -99.0) && (newSymbol->points[i].y == -99.0))
continue;
newSymbol->points[i].x = newSymbol->points[i].x + xcor;
newSymbol->points[i].y = newSymbol->points[i].y + ycor;
diff --git a/mapsymbol.h b/mapsymbol.h
index 4739f22..80c3deb 100644
--- a/mapsymbol.h
+++ b/mapsymbol.h
@@ -30,10 +30,6 @@
#ifndef MAPSYMBOL_H
#define MAPSYMBOL_H
-#ifdef USE_GD
-#include <gd.h>
-#endif
-
#include "mapserver-api.h"
#include <assert.h>
@@ -47,9 +43,6 @@ enum MS_SYMBOL_TYPE {MS_SYMBOL_SIMPLE=1000, MS_SYMBOL_VECTOR, MS_SYMBOL_ELLIPSE,
/* COLOR OBJECT */
typedef struct {
-#ifdef USE_GD
- int pen;
-#endif
int red;
int green;
int blue;
@@ -57,7 +50,7 @@ typedef struct {
} colorObj;
#ifndef SWIG
-enum MS_RASTER_BUFFER_TYPE { MS_BUFFER_NONE=2000, MS_BUFFER_BYTE_RGBA, MS_BUFFER_BYTE_PALETTE, MS_BUFFER_GD };
+enum MS_RASTER_BUFFER_TYPE { MS_BUFFER_NONE=2000, MS_BUFFER_BYTE_RGBA, MS_BUFFER_BYTE_PALETTE };
typedef struct {
unsigned char *pixels;
@@ -87,9 +80,6 @@ typedef struct {
union {
rgbaArrayObj rgba;
paletteArrayObj palette;
-#ifdef USE_GD
- gdImagePtr gd_img;
-#endif
} data;
} rasterBufferObj;
@@ -196,7 +186,6 @@ struct symbolObj{
void (*renderer_free_func)(symbolObj *self);
rasterBufferObj *pixmap_buffer;
void *renderer_cache;
- char *full_font_path;
char *full_pixmap_path;
#endif /* SWIG */
@@ -215,7 +204,6 @@ struct symbolObj{
** MS_SYMBOL_TRUETYPE options
*/
char *character;
- int antialias;
char *font;
} ;
diff --git a/maptclutf.c b/maptclutf.c
index 2185eae..8b7236c 100644
--- a/maptclutf.c
+++ b/maptclutf.c
@@ -162,7 +162,6 @@ terms specified in this license.
#define TCL_UTF_MAX 6
-#define Tcl_UniChar int
/*
* The following structures are used when mapping between Unicode (UCS-2)
@@ -221,18 +220,10 @@ static const unsigned char totalBytes[256] = {
*---------------------------------------------------------------------------
*/
-static int
-ms_Tcl_UtfToUniChar(str, chPtr)
-register const char *str; /* The UTF-8 string. */
-register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
- * by the UTF-8 string. */
+int ms_Tcl_UtfToUniChar(register const char *str, register unsigned int *chPtr)
{
register int byte;
- int entitylgth;
- /*check if the string is an html entity (eg { or Ī)*/
- if((entitylgth=msGetUnicodeEntity(str, chPtr))>0)
- return entitylgth;
/*
* Unroll 1 to 3 byte UTF-8 sequences, use loop to handle longer ones.
@@ -246,7 +237,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
* characters representing themselves.
*/
- *chPtr = (Tcl_UniChar) byte;
+ *chPtr = byte;
return 1;
} else if (byte < 0xE0) {
if ((str[1] & 0xC0) == 0x80) {
@@ -254,7 +245,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
* Two-byte-character lead-byte followed by a trail-byte.
*/
- *chPtr = (Tcl_UniChar) (((byte & 0x1F) << 6) | (str[1] & 0x3F));
+ *chPtr = (((byte & 0x1F) << 6) | (str[1] & 0x3F));
return 2;
}
/*
@@ -262,7 +253,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
* represents itself.
*/
- *chPtr = (Tcl_UniChar) byte;
+ *chPtr = byte;
return 1;
} else if (byte < 0xF0) {
if (((str[1] & 0xC0) == 0x80) && ((str[2] & 0xC0) == 0x80)) {
@@ -270,7 +261,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
* Three-byte-character lead byte followed by two trail bytes.
*/
- *chPtr = (Tcl_UniChar) (((byte & 0x0F) << 12)
+ *chPtr = (((byte & 0x0F) << 12)
| ((str[1] & 0x3F) << 6) | (str[2] & 0x3F));
return 3;
}
@@ -279,7 +270,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
* represents itself.
*/
- *chPtr = (Tcl_UniChar) byte;
+ *chPtr = byte;
return 1;
}
#if TCL_UTF_MAX > 3
@@ -306,7 +297,7 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
}
#endif
- *chPtr = (Tcl_UniChar) byte;
+ *chPtr = byte;
return 1;
}
@@ -328,8 +319,14 @@ register Tcl_UniChar *chPtr; /* Filled with the Tcl_UniChar represented
**
**/
int msUTF8ToUniChar(const char *str, /* The UTF-8 string. */
- int *chPtr) /* Filled with the Unicode Char represented
+ unsigned int *chPtr) /* Filled with the Unicode Char represented
* by the UTF-8 string. */
{
+ /*check if the string is an html entity (eg { or Ī)*/
+ int entitylgth;
+ if(*str == '&' && (entitylgth=msGetUnicodeEntity(str, chPtr))>0)
+ return entitylgth;
return ms_Tcl_UtfToUniChar(str, chPtr);
}
+
+
diff --git a/maptemplate.c b/maptemplate.c
index 4b59053..d7b37f1 100644
--- a/maptemplate.c
+++ b/maptemplate.c
@@ -907,6 +907,8 @@ static int processFeatureTag(mapservObj *mapserv, char **line, layerObj *layer)
status = msJoinConnect(layer, &(layer->joins[j]));
if(status != MS_SUCCESS) {
msFreeHashTable(tagArgs);
+ msFree(postTag);
+ msFree(tag);
return status;
}
}
@@ -925,15 +927,13 @@ static int processFeatureTag(mapservObj *mapserv, char **line, layerObj *layer)
status = msLayerGetShape(layer, &(mapserv->resultshape), &(layer->resultcache->results[i]));
if(status != MS_SUCCESS) {
msFreeHashTable(tagArgs);
+ msFree(postTag);
+ msFree(tag);
return status;
}
mapserv->resultshape.classindex = msShapeGetClass(layer, layer->map, &mapserv->resultshape, NULL, -1);
- if(mapserv->resultshape.classindex >=0 && layer->class[mapserv->resultshape.classindex]->numlabels > 0)
- msShapeGetAnnotation(layer, &mapserv->resultshape); // RFC 77 TODO: check return value
-
-
/* prepare any necessary JOINs here (one-to-one only) */
if(layer->numjoins > 0) {
for(j=0; j<layer->numjoins; j++) {
@@ -1533,7 +1533,7 @@ static int processShplabelTag(layerObj *layer, char **line, shapeObj *origshape)
double cellsize=0;
int labelposvalid = MS_FALSE;
pointObj labelPos;
- int i,status;
+ int status;
char number[64]; /* holds a single number in the extent */
char numberFormat[16];
shapeObj *shape = NULL;
@@ -1618,10 +1618,6 @@ static int processShplabelTag(layerObj *layer, char **line, shapeObj *origshape)
}
}
} else if(shape->type == MS_SHAPE_LINE) {
- pointObj **annopoints = NULL;
- double **angles = NULL, **lengths = NULL;
- int numpoints = 1;
-
labelposvalid = MS_FALSE;
if(layer->transform == MS_TRUE) {
if(layer->project && msProjectionsDiffer(&(layer->projection), &(layer->map->projection)))
@@ -1634,22 +1630,21 @@ static int processShplabelTag(layerObj *layer, char **line, shapeObj *origshape)
msOffsetShapeRelativeTo(shape, layer);
if(shape->numlines > 0) {
- annopoints = msPolylineLabelPoint(shape, -1, 0, &angles, &lengths, &numpoints, MS_FALSE);
- if(numpoints > 0) {
+ struct label_auto_result lar;
+ memset(&lar,0,sizeof(struct label_auto_result));
+ if(UNLIKELY(MS_FAILURE == msPolylineLabelPoint(layer->map, shape, NULL, NULL, &lar, 0))) {
+ free(lar.angles);
+ free(lar.label_points);
+ return MS_FAILURE;
+ }
+ if(lar.num_label_points > 0) {
/* convert to geo */
- labelPos.x = annopoints[0]->x;
- labelPos.y = annopoints[0]->y;
-
+ labelPos.x = lar.label_points[0].x;
+ labelPos.y = lar.label_points[0].y;
labelposvalid = MS_TRUE;
- for(i=0; i<numpoints; i++) {
- if(annopoints[i]) msFree(annopoints[i]);
- if(angles[i]) msFree(angles[i]);
- if(lengths[i]) msFree(lengths[i]);
- }
- msFree(angles);
- msFree(annopoints);
- msFree(lengths);
}
+ free(lar.angles);
+ free(lar.label_points);
}
} else if (shape->type == MS_SHAPE_POLYGON) {
labelposvalid = MS_FALSE;
@@ -1679,11 +1674,11 @@ static int processShplabelTag(layerObj *layer, char **line, shapeObj *origshape)
pointObj p2;
int label_offset_x, label_offset_y;
labelObj *label=NULL;
- rectObj r;
- shapeObj poly;
+ label_bounds lbounds;
+ lineObj lbounds_line;
+ pointObj lbounds_point[5];
double tmp;
- msInitShape(&poly);
p1.x =labelPos.x;
p1.y =labelPos.y;
@@ -1694,18 +1689,29 @@ static int processShplabelTag(layerObj *layer, char **line, shapeObj *origshape)
/* RFC 77: classes (and shapes) can have more than 1 piece of annotation, here we only use the first (index=0) */
if(shape->classindex >= 0 && layer->class[shape->classindex]->numlabels > 0) {
label = layer->class[shape->classindex]->labels[0];
- if(msGetLabelSize(layer->map, label, label->annotext, label->size, &r, NULL) == MS_SUCCESS) {
- label_offset_x = (int)(label->offsetx*layer->scalefactor);
- label_offset_y = (int)(label->offsety*layer->scalefactor);
-
- p1 = get_metrics(&labelPos, label->position, r, label_offset_x, label_offset_y, label->angle, 0, &poly);
-
- /* should we use the point returned from get_metrics?. From few test done, It seems
- to return the UL corner of the text. For now use the bounds.minx/miny */
- p1.x = poly.bounds.minx;
- p1.y = poly.bounds.miny;
- p2.x = poly.bounds.maxx;
- p2.y = poly.bounds.maxy;
+ if(msGetLabelStatus(layer->map,layer,shape,label) == MS_ON) {
+ char *annotext = msShapeGetLabelAnnotation(layer,shape,label);
+ if(annotext) {
+ textSymbolObj ts;
+ initTextSymbol(&ts);
+ msPopulateTextSymbolForLabelAndString(&ts, label, annotext, layer->scalefactor, 1.0, 0);
+
+ label_offset_x = (int)(label->offsetx*layer->scalefactor);
+ label_offset_y = (int)(label->offsety*layer->scalefactor);
+ lbounds.poly = &lbounds_line;
+ lbounds_line.numpoints = 5;
+ lbounds_line.point = lbounds_point;
+
+ p1 = get_metrics(&labelPos, label->position, ts.textpath, label_offset_x, label_offset_y, label->angle* MS_DEG_TO_RAD, 0, &lbounds);
+
+ /* should we use the point returned from get_metrics?. From few test done, It seems
+ to return the UL corner of the text. For now use the bounds.minx/miny */
+ p1.x = lbounds.bbox.minx;
+ p1.y = lbounds.bbox.miny;
+ p2.x = lbounds.bbox.maxx;
+ p2.y = lbounds.bbox.maxy;
+ freeTextSymbol(&ts);
+ }
}
}
}
@@ -2086,14 +2092,22 @@ static int processShpxyTag(layerObj *layer, char **line, shapeObj *shape)
shapeObj *bufferShape=NULL;
bufferShape = msGEOSBuffer(shape, buffer);
- if(!bufferShape) return(MS_FAILURE); /* buffer failed */
+ if(!bufferShape) {
+ free(pointFormat1);
+ free(pointFormat2);
+ return(MS_FAILURE); /* buffer failed */
+ }
msCopyShape(bufferShape, &tShape);
msFreeShape(bufferShape);
}
#endif
else {
status = msCopyShape(shape, &tShape);
- if(status != 0) return(MS_FAILURE); /* copy failed */
+ if(status != 0) {
+ free(pointFormat1);
+ free(pointFormat2);
+ return(MS_FAILURE); /* copy failed */
+ }
}
/* no big deal to convert from file to image coordinates, but what are the image parameters */
@@ -2417,7 +2431,7 @@ int processIcon(mapObj *map, int nIdxLayer, int nIdxClass, char** pszInstr, char
if(myHashTable)
msFreeHashTable(myHashTable);
- msSetError(MS_GDERR, "Error while creating GD image.", "processIcon()");
+ msSetError(MS_IMGERR, "Error while creating image.", "processIcon()");
return MS_FAILURE;
}
@@ -2530,12 +2544,6 @@ int generateGroupTemplate(char* pszGroupTemplate, mapObj *map, char* pszGroupNam
GET_LAYER(map, map->layerorder[j])->type == MS_LAYER_QUERY )
bShowGroup = 0;
- /* dont display layer is annotation. */
- if( (nOptFlag & 8) == 0 &&
- GET_LAYER(map, map->layerorder[j])->type == MS_LAYER_ANNOTATION )
- bShowGroup = 0;
-
-
/* dont display layer if out of scale. */
if((nOptFlag & 1) == 0) {
if(map->scaledenom > 0) {
@@ -2683,11 +2691,6 @@ int generateLayerTemplate(char *pszLayerTemplate, mapObj *map, int nIdxLayer, ha
if((nOptFlag & 4) == 0 && GET_LAYER(map, nIdxLayer)->type == MS_LAYER_QUERY)
return MS_SUCCESS;
- /* dont display layer is annotation. */
- /* check this if Opt flag is not set */
- if((nOptFlag & 8) == 0 && GET_LAYER(map, nIdxLayer)->type == MS_LAYER_ANNOTATION)
- return MS_SUCCESS;
-
/* dont display layer if out of scale. */
/* check this if Opt flag is not set */
if((nOptFlag & 1) == 0) {
@@ -2827,11 +2830,6 @@ int generateClassTemplate(char* pszClassTemplate, mapObj *map, int nIdxLayer, in
if((nOptFlag & 4) == 0 && GET_LAYER(map, nIdxLayer)->type == MS_LAYER_QUERY)
return MS_SUCCESS;
- /* dont display class if layer is annotation. */
- /* check this if Opt flag is not set */
- if((nOptFlag & 8) == 0 && GET_LAYER(map, nIdxLayer)->type == MS_LAYER_ANNOTATION)
- return MS_SUCCESS;
-
/* dont display layer if out of scale. */
/* check this if Opt flag is not set */
if((nOptFlag & 1) == 0) {
@@ -3036,7 +3034,10 @@ char *generateLegendTemplate(mapservObj *mapserv)
/* open template */
if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath, mapserv->map->legend.template), "r")) == NULL) {
msSetError(MS_IOERR, "Error while opening template file.", "generateLegendTemplate()");
- return NULL;
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
}
fseek(stream, 0, SEEK_END);
@@ -3045,12 +3046,6 @@ char *generateLegendTemplate(mapservObj *mapserv)
file = (char*)msSmallMalloc(length + 1);
- if(!file) {
- msSetError(MS_IOERR, "Error while allocating memory for template file.", "generateLegendTemplate()");
- fclose(stream);
- return NULL;
- }
-
/*
* Read all the template file
*/
@@ -3065,7 +3060,12 @@ char *generateLegendTemplate(mapservObj *mapserv)
*/
file[length] = '\0';
- if(msValidateContexts(mapserv->map) != MS_SUCCESS) return NULL; /* make sure there are no recursive REQUIRES or LABELREQUIRES expressions */
+ if(msValidateContexts(mapserv->map) != MS_SUCCESS) { /* make sure there are no recursive REQUIRES or LABELREQUIRES expressions */
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
+ }
/*
* Seperate header/footer, groups, layers and class
@@ -3080,16 +3080,28 @@ char *generateLegendTemplate(mapservObj *mapserv)
* Retrieve arguments of all three parts
*/
if(legGroupHtml)
- if(getTagArgs("leg_group_html", file, &groupArgs) != MS_SUCCESS)
- return NULL;
+ if(getTagArgs("leg_group_html", file, &groupArgs) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
+ }
if(legLayerHtml)
- if(getTagArgs("leg_layer_html", file, &layerArgs) != MS_SUCCESS)
- return NULL;
+ if(getTagArgs("leg_layer_html", file, &layerArgs) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
+ }
if(legClassHtml)
- if(getTagArgs("leg_class_html", file, &classArgs) != MS_SUCCESS)
- return NULL;
+ if(getTagArgs("leg_class_html", file, &classArgs) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
+ }
mapserv->map->cellsize = msAdjustExtent(&(mapserv->map->extent),
@@ -3097,8 +3109,12 @@ char *generateLegendTemplate(mapservObj *mapserv)
mapserv->map->height);
if(msCalculateScale(mapserv->map->extent, mapserv->map->units,
mapserv->map->width, mapserv->map->height,
- mapserv->map->resolution, &mapserv->map->scaledenom) != MS_SUCCESS)
- return(NULL);
+ mapserv->map->resolution, &mapserv->map->scaledenom) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
+ goto error;
+ }
/* start with the header if present */
if(legHeaderHtml) pszResult = msStringConcatenate(pszResult, legHeaderHtml);
@@ -3111,8 +3127,12 @@ char *generateLegendTemplate(mapservObj *mapserv)
*/
pszOrderMetadata = msLookupHashTable(layerArgs, "order_metadata");
- if(sortLayerByMetadata(mapserv->map, pszOrderMetadata) != MS_SUCCESS)
+ if(sortLayerByMetadata(mapserv->map, pszOrderMetadata) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
goto error;
+ }
/* -------------------------------------------------------------------- */
/* if the order tag is set to ascending or descending, the */
@@ -3121,8 +3141,12 @@ char *generateLegendTemplate(mapservObj *mapserv)
pszOrder = msLookupHashTable(layerArgs, "order");
if(pszOrder && ((strcasecmp(pszOrder, "ASCENDING") == 0) ||
(strcasecmp(pszOrder, "DESCENDING") == 0))) {
- if(sortLayerByOrder(mapserv->map, pszOrder) != MS_SUCCESS)
+ if(sortLayerByOrder(mapserv->map, pszOrder) != MS_SUCCESS) {
+ if(pszResult)
+ free(pszResult);
+ pszResult=NULL;
goto error;
+ }
}
if(legGroupHtml) {
@@ -3429,7 +3453,8 @@ error:
msFree(legClassHtml);
msFree(pszPrefix);
- fclose(stream);
+ if(stream)
+ fclose(stream);
/* -------------------------------------------------------------------- */
/* Reset the layerdrawing order. */
@@ -3460,13 +3485,16 @@ char *processOneToManyJoin(mapservObj* mapserv, joinObj *join)
/* want to do this if there are joined records. */
if(records == MS_FALSE) {
if(join->header != NULL) {
+ if(stream) fclose(stream);
if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath, join->header), "r")) == NULL) {
msSetError(MS_IOERR, "Error while opening join header file %s.", "processOneToManyJoin()", join->header);
+ msFree(outbuf);
return(NULL);
}
if(isValidTemplate(stream, join->header) != MS_TRUE) {
fclose(stream);
+ msFree(outbuf);
return NULL;
}
@@ -3474,15 +3502,18 @@ char *processOneToManyJoin(mapservObj* mapserv, joinObj *join)
while(fgets(line, MS_BUFFER_LENGTH, stream) != NULL) outbuf = msStringConcatenate(outbuf, line);
fclose(stream);
+ stream = NULL;
}
if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath, join->template), "r")) == NULL) {
msSetError(MS_IOERR, "Error while opening join template file %s.", "processOneToManyJoin()", join->template);
+ msFree(outbuf);
return(NULL);
}
if(isValidTemplate(stream, join->template) != MS_TRUE) {
fclose(stream);
+ msFree(outbuf);
return NULL;
}
@@ -3492,7 +3523,11 @@ char *processOneToManyJoin(mapservObj* mapserv, joinObj *join)
while(fgets(line, MS_BUFFER_LENGTH, stream) != NULL) { /* now on to the end of the template */
if(strchr(line, '[') != NULL) {
tmpline = processLine(mapserv, line, NULL, QUERY); /* no multiline tags are allowed in a join */
- if(!tmpline) return NULL;
+ if(!tmpline) {
+ msFree(outbuf);
+ fclose(stream);
+ return NULL;
+ }
outbuf = msStringConcatenate(outbuf, tmpline);
free(tmpline);
} else /* no subs, just echo */
@@ -3504,12 +3539,15 @@ char *processOneToManyJoin(mapservObj* mapserv, joinObj *join)
} /* next record */
if(records==MS_TRUE && join->footer) {
+ if(stream) fclose(stream);
if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath, join->footer), "r")) == NULL) {
msSetError(MS_IOERR, "Error while opening join footer file %s.", "processOneToManyJoin()", join->footer);
+ msFree(outbuf);
return(NULL);
}
if(isValidTemplate(stream, join->footer) != MS_TRUE) {
+ msFree(outbuf);
fclose(stream);
return NULL;
}
@@ -3887,7 +3925,10 @@ static char *processLine(mapservObj *mapserv, char *instr, FILE *stream, int mod
}
if(mode != QUERY) {
- if(processResultSetTag(mapserv, &outstr, stream) != MS_SUCCESS) return(NULL);
+ if(processResultSetTag(mapserv, &outstr, stream) != MS_SUCCESS) {
+ msFree(outstr);
+ return(NULL);
+ }
}
if(mode == QUERY) { /* return shape and/or values */
diff --git a/maptile.c b/maptile.c
index 052cbb1..76f1cc4 100644
--- a/maptile.c
+++ b/maptile.c
@@ -61,6 +61,7 @@ static int msTileGetGMapCoords(const char *coordstring, int *x, int *y, int *zoo
if( coordstring ) {
coords = msStringSplit(coordstring, ' ', &(num_coords));
if( num_coords != 3 ) {
+ msFreeCharArray(coords, num_coords);
msSetError(MS_WEBERR, "Invalid number of tile coordinates (should be three).", "msTileSetup()");
return MS_FAILURE;
}
@@ -75,7 +76,8 @@ static int msTileGetGMapCoords(const char *coordstring, int *x, int *y, int *zoo
*y = strtol(coords[1], NULL, 10);
if( zoom )
*zoom = strtol(coords[2], NULL, 10);
-
+
+ msFreeCharArray(coords, 3);
return MS_SUCCESS;
}
@@ -217,7 +219,10 @@ static imageObj* msTileExtractSubTile(const mapservObj *msObj, const imageObj *i
- renderer->mergeRasterBuffer(imgOut,&imgBuffer,1.0,mini, minj,0, 0,params.tile_size, params.tile_size);
+ if(UNLIKELY(MS_FAILURE == renderer->mergeRasterBuffer(imgOut,&imgBuffer,1.0,mini, minj,0, 0,params.tile_size, params.tile_size))) {
+ msFreeImage(imgOut);
+ return NULL;
+ }
return imgOut;
}
diff --git a/maptime.c b/maptime.c
index 29e2b1a..7e435ba 100644
--- a/maptime.c
+++ b/maptime.c
@@ -1,5 +1,5 @@
/******************************************************************************
- * $Id$
+ * $id$
*
* Project: MapServer
* Purpose: Date/Time utility functions.
@@ -37,7 +37,6 @@
#include "maperror.h"
#include "mapthread.h"
-
typedef struct {
char pattern[64];
ms_regex_t *regex;
@@ -61,14 +60,15 @@ timeFormatObj ms_timeFormats[MS_NUMTIMEFORMATS] = {
{"^[0-9]{4}-[0-9]{2}", NULL, "%Y-%m", "YYYY-MM",TIME_RESOLUTION_MONTH},
{"^[0-9]{4}", NULL, "%Y", "YYYY",TIME_RESOLUTION_YEAR},
{"^T[0-9]{2}:[0-9]{2}:[0-9]{2}Z", NULL, "T%H:%M:%SZ", "THH:MM:SSZ",TIME_RESOLUTION_SECOND},
- {"^T[0-9]{2}:[0-9]{2}:[0-9]{2}", NULL, "T%H:%M:%S", "THH:MM:SS", TIME_RESOLUTION_SECOND},
+ {"^T[0-9]{2}:[0-9]{2}:[0-9]{2}", NULL, "T%H:%M:%S", "THH:MM:SS", TIME_RESOLUTION_SECOND}
};
int *ms_limited_pattern = NULL;
int ms_num_limited_pattern;
int ms_time_inited = 0;
-int msTimeSetup() {
+int msTimeSetup()
+{
if(!ms_time_inited) {
msAcquireLock(TLOCK_TIME);
if(!ms_time_inited) {
@@ -78,7 +78,7 @@ int msTimeSetup() {
if(0!=ms_regcomp(ms_timeFormats[i].regex, ms_timeFormats[i].pattern, MS_REG_EXTENDED|MS_REG_NOSUB)) {
msSetError(MS_REGEXERR, "Failed to compile expression (%s).", "msTimeSetup()", ms_timeFormats[i].pattern);
return MS_FAILURE;
- /* TODO: free already inited regexes */
+ /* TODO: free already init'd regexes */
}
}
ms_limited_pattern = (int *)msSmallMalloc(sizeof(int)*MS_NUMTIMEFORMATS);
@@ -90,7 +90,8 @@ int msTimeSetup() {
return MS_SUCCESS;
}
-void msTimeCleanup() {
+void msTimeCleanup()
+{
if(ms_time_inited) {
int i;
for(i=0;i<MS_NUMTIMEFORMATS;i++) {
@@ -105,10 +106,9 @@ void msTimeCleanup() {
}
}
-void msTimeInit(struct tm *time)
+void msTimeInit(struct tm *time)
{
- /* set all members to zero */
- time->tm_sec = 0;
+ time->tm_sec = 0; /* set all members to zero */
time->tm_min = 0;
time->tm_hour = 0;
time->tm_mday = 0;
@@ -146,6 +146,10 @@ int msTimeCompare(struct tm *time1, struct tm *time2)
{
int result;
+ // fprintf(stderr, "in msTimeCompare()...\n");
+ // fprintf(stderr, "time1: %d %d %d %d %d %d\n", time1->tm_year, time1->tm_mon, time1->tm_mday, time1->tm_hour, time1->tm_min, time1->tm_sec);
+ // fprintf(stderr, "time2: %d %d %d %d %d %d\n", time2->tm_year, time2->tm_mon, time2->tm_mday, time2->tm_hour, time2->tm_min, time2->tm_sec);
+
if((result = compareIntVals(time1->tm_year, time2->tm_year)) != 0)
return result; /* not equal based on year */
else if((result = compareIntVals(time1->tm_mon, time2->tm_mon)) != 0)
@@ -181,6 +185,7 @@ char *strptime( const char *buf, const char *format, struct tm *timeptr );
char *msStrptime(const char *s, const char *format, struct tm *tm)
{
+ memset(tm, 0, sizeof(struct tm));
return strptime(s, format, tm);
}
@@ -188,7 +193,7 @@ char *msStrptime(const char *s, const char *format, struct tm *tm)
return MS_TRUE if the time string matchs the timeformat.
else return MS_FALSE.
*/
-int msTimeMatchPattern(char *timestring, char *timeformat)
+int msTimeMatchPattern(const char *timestring, const char *timeformat)
{
int i =-1;
if(msTimeSetup() != MS_SUCCESS) {
@@ -203,7 +208,7 @@ int msTimeMatchPattern(char *timestring, char *timeformat)
}
if (i >= 0 && i < MS_NUMTIMEFORMATS) {
- int match = ms_regexec(ms_timeFormats[i].regex, timestring, 0,NULL, 0);
+ int match = ms_regexec(ms_timeFormats[i].regex, timestring, 0, NULL, 0);
if(match == 0)
return MS_TRUE;
}
@@ -217,7 +222,7 @@ void msUnsetLimitedPatternToUse()
ms_num_limited_pattern = 0;
}
-void msSetLimitedPattersToUse(char *patternstring)
+void msSetLimitedPatternsToUse(const char *patternstring)
{
int *limitedpatternindice = NULL;
int numpatterns=0, i=0, j=0, ntmp=0;
@@ -242,9 +247,8 @@ void msSetLimitedPattersToUse(char *patternstring)
}
}
}
-
- msFreeCharArray(patterns, ntmp);
}
+ msFreeCharArray(patterns, ntmp);
}
if (numpatterns > 0) {
@@ -256,19 +260,18 @@ void msSetLimitedPattersToUse(char *patternstring)
free (limitedpatternindice);
}
-
-
int msParseTime(const char *string, struct tm *tm)
{
int i, indice = 0;
int num_patterns = 0;
+ if(MS_STRING_IS_NULL_OR_EMPTY(string)) return MS_FALSE; /* nothing to parse so bail */
+
if(msTimeSetup() != MS_SUCCESS) {
return MS_FALSE;
}
- /* if limited patterns are set, use then. Else use all the */
- /* patterns defined */
+ /* if limited patterns are set, use them, else use all the patterns defined */
if (ms_num_limited_pattern > 0)
num_patterns = ms_num_limited_pattern;
else
@@ -284,7 +287,7 @@ int msParseTime(const char *string, struct tm *tm)
match = ms_regexec(ms_timeFormats[indice].regex, string, 0,NULL, 0);
/* test the expression against the string */
if(match == 0) {
- /* match */
+ /* match */
msStrptime(string, ms_timeFormats[indice].format, tm);
return(MS_TRUE);
}
@@ -327,7 +330,7 @@ int msTimeGetResolution(const char *timestring)
}
-int _msValidateTime(char *timestring, const char *timeextent)
+int _msValidateTime(const char *timestring, const char *timeextent)
{
int numelements, numextents, i, numranges;
struct tm tmtimestart, tmtimeend, tmstart, tmend;
@@ -336,11 +339,9 @@ int _msValidateTime(char *timestring, const char *timeextent)
if (!timestring || !timeextent)
return MS_FALSE;
- if (strlen(timestring) <= 0 ||
- strlen(timeextent) <= 0)
+ if (strlen(timestring) <= 0 || strlen(timeextent) <= 0)
return MS_FALSE;
-
/* we first need to parse the timesting that is passed
so that we can determine if it is a descrete time
or a range */
@@ -383,8 +384,10 @@ int _msValidateTime(char *timestring, const char *timeextent)
numextents = 0;
atimeextents = msStringSplit (timeextent, ',', &numextents);
- if (atimeextents == NULL || numextents <= 0)
+ if (numextents <= 0) {
+ msFreeCharArray(atimeextents, numextents);
return MS_FALSE;
+ }
/*the time timestring should at be valid in one of the extents
defined */
@@ -429,9 +432,7 @@ int _msValidateTime(char *timestring, const char *timeextent)
}
-
-
-int msValidateTimeValue(char *timestring, const char *timeextent)
+int msValidateTimeValue(const char *timestring, const char *timeextent)
{
char **atimes = NULL;
int i, numtimes=0;
@@ -442,20 +443,16 @@ int msValidateTimeValue(char *timestring, const char *timeextent)
if (!timestring || !timeextent)
return MS_FALSE;
-
/* parse the time string. We support descrete times (eg 2004-09-21), */
/* multiple times (2004-09-21, 2004-09-22, ...) */
/* and range(s) (2004-09-21/2004-09-25, 2004-09-27/2004-09-29) */
- if (strstr(timestring, ",") == NULL &&
- strstr(timestring, "/") == NULL) { /* discrete time */
+ if (strstr(timestring, ",") == NULL && strstr(timestring, "/") == NULL) { /* discrete time */
return _msValidateTime(timestring, timeextent);
-
} else {
- atimes = msStringSplit (timestring, ',', &numtimes);
+ atimes = msStringSplit(timestring, ',', &numtimes);
if (numtimes >=1) { /* multiple times */
-
if (strstr(atimes[0], "/") == NULL) { /* multiple descrete times */
- for (i=0; i<numtimes; i++) {
+ for (i=0; i<numtimes; i++) {
if (_msValidateTime(atimes[i], timeextent) == MS_FALSE) {
msFreeCharArray(atimes, numtimes);
return MS_FALSE;
@@ -464,19 +461,18 @@ int msValidateTimeValue(char *timestring, const char *timeextent)
msFreeCharArray(atimes, numtimes);
return MS_TRUE;
} else { /* multiple ranges */
- for (i=0; i<numtimes; i++) {
+ for (i=0; i<numtimes; i++) {
if (_msValidateTime(atimes[i], timeextent) == MS_FALSE) {
msFreeCharArray(atimes, numtimes);
return MS_FALSE;
}
-
}
msFreeCharArray(atimes, numtimes);
return MS_TRUE;
}
-
+ } else {
+ msFreeCharArray(atimes,numtimes);
}
-
}
return MS_FALSE;
}
diff --git a/maptime.h b/maptime.h
index dc5ebb4..f638ebd 100644
--- a/maptime.h
+++ b/maptime.h
@@ -64,12 +64,12 @@ int msDateCompare(struct tm *time1, struct tm *time2);
int msTimeCompare(struct tm *time1, struct tm *time2);
char *msStrptime(const char *s, const char *format, struct tm *tm);
int msParseTime(const char *string, struct tm *tm);
-int msTimeMatchPattern(char *timestring, char *pattern);
-void msSetLimitedPattersToUse(char *patternstring);
+int msTimeMatchPattern(const char *timestring, const char *pattern);
+void msSetLimitedPatternsToUse(const char *patternstring);
void msUnsetLimitedPatternToUse(void);
-int msTimeGetResolution(const char *timestring);
+MS_DLL_EXPORT int msTimeGetResolution(const char *timestring);
void msTimeCleanup();
-int msValidateTimeValue(char *timestring, const char *timeextent);
+int msValidateTimeValue(const char *timestring, const char *timeextent);
#endif /* MAPTIME_H */
diff --git a/maptree.c b/maptree.c
index 805a554..728664d 100644
--- a/maptree.c
+++ b/maptree.c
@@ -399,7 +399,7 @@ static void treeCollectShapeIds(treeNodeObj *node, rectObj aoi, ms_bitarray stat
}
}
-ms_bitarray msSearchTree(treeObj *tree, rectObj aoi)
+ms_bitarray msSearchTree(const treeObj *tree, rectObj aoi)
{
ms_bitarray status=NULL;
@@ -511,7 +511,7 @@ static void searchDiskTreeNode(SHPTreeHandle disktree, rectObj aoi, ms_bitarray
return;
}
-ms_bitarray msSearchDiskTree(char *filename, rectObj aoi, int debug)
+ms_bitarray msSearchDiskTree(const char *filename, rectObj aoi, int debug)
{
SHPTreeHandle disktree;
ms_bitarray status=NULL;
@@ -753,6 +753,7 @@ int msWriteTree(treeObj *tree, char *filename, int B_order)
i = fwrite( pabyBuf, 8, 1, disktree->fp );
if( !i ) {
fprintf (stderr, "unable to write to index file ... exiting \n");
+ msSHPDiskTreeClose( disktree );
return (MS_FALSE);
}
diff --git a/maptree.h b/maptree.h
index 1f9eebe..7675061 100644
--- a/maptree.h
+++ b/maptree.h
@@ -84,8 +84,8 @@ extern "C" {
MS_DLL_EXPORT void msTreeTrim(treeObj *tree);
MS_DLL_EXPORT void msDestroyTree(treeObj *tree);
- MS_DLL_EXPORT ms_bitarray msSearchTree(treeObj *tree, rectObj aoi);
- MS_DLL_EXPORT ms_bitarray msSearchDiskTree(char *filename, rectObj aoi, int debug);
+ MS_DLL_EXPORT ms_bitarray msSearchTree(const treeObj *tree, rectObj aoi);
+ MS_DLL_EXPORT ms_bitarray msSearchDiskTree(const char *filename, rectObj aoi, int debug);
MS_DLL_EXPORT treeObj *msReadTree(char *filename, int debug);
MS_DLL_EXPORT int msWriteTree(treeObj *tree, char *filename, int LSB_order);
diff --git a/mapunion.c b/mapunion.c
index 6f7c3bb..6624231 100644
--- a/mapunion.c
+++ b/mapunion.c
@@ -36,11 +36,11 @@
#define MSUNION_NUMITEMS 3
-#define MSUNION_SOURCELAYERNAME "Union:SourceLayerName"
+#define MSUNION_SOURCELAYERNAME "Union_SourceLayerName"
#define MSUNION_SOURCELAYERNAMEINDEX -100
-#define MSUNION_SOURCELAYERGROUP "Union:SourceLayerGroup"
+#define MSUNION_SOURCELAYERGROUP "Union_SourceLayerGroup"
#define MSUNION_SOURCELAYERGROUPINDEX -101
-#define MSUNION_SOURCELAYERVISIBLE "Union:SourceLayerVisible"
+#define MSUNION_SOURCELAYERVISIBLE "Union_SourceLayerVisible"
#define MSUNION_SOURCELAYERVISIBLEINDEX -102
typedef struct {
@@ -295,14 +295,14 @@ void msUnionLayerFreeItemInfo(layerObj *layer)
void msUnionLayerFreeExpressionTokens(layerObj *layer)
{
int i,j;
- freeExpressionTokens(&(layer->filter));
- freeExpressionTokens(&(layer->cluster.group));
- freeExpressionTokens(&(layer->cluster.filter));
+ msFreeExpressionTokens(&(layer->filter));
+ msFreeExpressionTokens(&(layer->cluster.group));
+ msFreeExpressionTokens(&(layer->cluster.filter));
for(i=0; i<layer->numclasses; i++) {
- freeExpressionTokens(&(layer->class[i]->expression));
- freeExpressionTokens(&(layer->class[i]->text));
+ msFreeExpressionTokens(&(layer->class[i]->expression));
+ msFreeExpressionTokens(&(layer->class[i]->text));
for(j=0; j<layer->class[i]->numstyles; j++)
- freeExpressionTokens(&(layer->class[i]->styles[j]->_geomtransform));
+ msFreeExpressionTokens(&(layer->class[i]->styles[j]->_geomtransform));
}
}
@@ -497,11 +497,13 @@ int msUnionLayerNextShape(layerObj *layer, shapeObj *shape)
}
/* set up annotation */
msFree(layerinfo->classText);
+ layerinfo->classText = NULL;
if(srclayer->class[layerinfo->classIndex]->numlabels > 0) {
- msShapeGetAnnotation(srclayer, shape);
- layerinfo->classText = msStrdup(srclayer->class[layerinfo->classIndex]->labels[0]->annotext); /* pull text from the first label only */
- } else
- layerinfo->classText = NULL;
+ /* pull text from the first label only */
+ if(msGetLabelStatus(layer->map,layer,shape,srclayer->class[layerinfo->classIndex]->labels[0]) == MS_ON) {
+ layerinfo->classText = msShapeGetLabelAnnotation(layer,shape,srclayer->class[layerinfo->classIndex]->labels[0]);
+ }
+ }
}
#ifdef USE_PROJ
@@ -696,7 +698,6 @@ static int msUnionLayerGetAutoStyle(mapObj *map, layerObj *layer, classObj *c, s
}
c->numlabels = src->numlabels;
- c->type = src->type;
c->layer = layer;
c->text.string = layerinfo->classText;
layerinfo->classText = NULL;
diff --git a/maputfgrid.cpp b/maputfgrid.cpp
new file mode 100644
index 0000000..a1c57bb
--- /dev/null
+++ b/maputfgrid.cpp
@@ -0,0 +1,811 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project: MapServer
+ * Purpose: UTFGrid rendering functions (using AGG)
+ * Author: Francois Desjarlais
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2007 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+
+#include "mapserver.h"
+#include "maputfgrid.h"
+#include "mapagg.h"
+#include "renderers/agg/include/agg_rasterizer_scanline_aa.h"
+#include "renderers/agg/include/agg_basics.h"
+#include "renderers/agg/include/agg_renderer_scanline.h"
+#include "renderers/agg/include/agg_scanline_bin.h"
+#include "renderers/agg/include/agg_gamma_functions.h"
+#include "renderers/agg/include/agg_conv_stroke.h"
+#include "renderers/agg/include/agg_ellipse.h"
+
+typedef mapserver::int32u band_type;
+typedef mapserver::row_ptr_cache<band_type> rendering_buffer;
+typedef pixfmt_utf<utfpix32, rendering_buffer> pixfmt_utf32;
+typedef mapserver::renderer_base<pixfmt_utf32> renderer_base;
+typedef mapserver::rasterizer_scanline_aa<> rasterizer_scanline;
+typedef mapserver::renderer_scanline_bin_solid<renderer_base> renderer_scanline;
+
+static utfpix32 UTF_WATER = utfpix32(32);
+
+#define utfitem(c) utfpix32(c)
+
+struct shapeData
+{
+ char *datavalues;
+ char *itemvalue;
+ band_type utfvalue;
+ int serialid;
+};
+
+class lookupTable {
+public:
+ lookupTable()
+ {
+ table = (shapeData*) msSmallMalloc(sizeof(shapeData));
+ table->datavalues = NULL;
+ table->itemvalue = NULL;
+ table->utfvalue = 0;
+ table->serialid = 0;
+ size = 1;
+ counter = 0;
+ }
+
+ ~lookupTable()
+ {
+ int i;
+
+ for(i=0; i<size; i++)
+ {
+ if(table[i].datavalues)
+ msFree(table[i].datavalues);
+ if(table[i].itemvalue)
+ msFree(table[i].itemvalue);
+ }
+ msFree(table);
+ }
+
+ shapeData *table;
+ int size;
+ int counter;
+};
+
+/*
+ * UTFGrid specific polygon adaptor.
+ */
+class polygon_adaptor_utf:public polygon_adaptor
+{
+public:
+ polygon_adaptor_utf(shapeObj *shape,int utfres_in):polygon_adaptor(shape)
+ {
+ utfresolution = utfres_in;
+ }
+
+ virtual unsigned vertex(double* x, double* y)
+ {
+ if(m_point < m_pend) {
+ bool first = m_point == m_line->point;
+ *x = m_point->x/utfresolution;
+ *y = m_point->y/utfresolution;
+ m_point++;
+ return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+ }
+ *x = *y = 0.0;
+ if(!m_stop) {
+
+ m_line++;
+ if(m_line>=m_lend) {
+ m_stop=true;
+ return mapserver::path_cmd_end_poly;
+ }
+
+ m_point=m_line->point;
+ m_pend=&(m_line->point[m_line->numpoints]);
+ return mapserver::path_cmd_end_poly;
+ }
+ return mapserver::path_cmd_stop;
+ }
+
+private:
+ int utfresolution;
+};
+
+/*
+ * UTFGrid specific line adaptor.
+ */
+class line_adaptor_utf:public line_adaptor
+{
+public:
+ line_adaptor_utf(shapeObj *shape,int utfres_in):line_adaptor(shape)
+ {
+ utfresolution = utfres_in;
+ }
+
+ virtual unsigned vertex(double* x, double* y)
+ {
+ if(m_point < m_pend) {
+ bool first = m_point == m_line->point;
+ *x = m_point->x/utfresolution;
+ *y = m_point->y/utfresolution;
+ m_point++;
+ return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+ }
+ m_line++;
+ *x = *y = 0.0;
+ if(m_line>=m_lend)
+ return mapserver::path_cmd_stop;
+
+ m_point=m_line->point;
+ m_pend=&(m_line->point[m_line->numpoints]);
+
+ return vertex(x,y);
+ }
+
+private:
+ int utfresolution;
+};
+
+class UTFGridRenderer {
+public:
+ UTFGridRenderer()
+ {
+ stroke = NULL;
+ }
+ ~UTFGridRenderer()
+ {
+ if(stroke)
+ delete stroke;
+ delete data;
+ }
+
+ lookupTable *data;
+ int utfresolution;
+ int layerwatch;
+ int renderlayer;
+ int useutfitem;
+ int useutfdata;
+ int duplicates;
+ band_type utfvalue;
+ layerObj *utflayer;
+ band_type *buffer;
+ rendering_buffer m_rendering_buffer;
+ pixfmt_utf32 m_pixel_format;
+ renderer_base m_renderer_base;
+ rasterizer_scanline m_rasterizer;
+ renderer_scanline m_renderer_scanline;
+ mapserver::scanline_bin sl_utf;
+ mapserver::conv_stroke<line_adaptor_utf> *stroke;
+};
+
+#define UTFGRID_RENDERER(image) ((UTFGridRenderer*) (image)->img.plugin)
+
+/*
+ * Encode to avoid unavailable char in the JSON
+ */
+unsigned int encodeForRendering(unsigned int toencode)
+{
+ unsigned int encoded;
+ encoded = toencode + 32;
+ /* 34 => " */
+ if(encoded >= 34) {
+ encoded = encoded +1;
+ }
+ /* 92 => \ */
+ if (encoded >= 92) {
+ encoded = encoded +1;
+ }
+ return encoded;
+}
+
+/*
+ * Decode value to have the initial one
+ */
+unsigned int decodeRendered(unsigned int todecode)
+{
+ unsigned int decoded;
+
+ if(todecode >= 92)
+ todecode --;
+
+ if(todecode >= 34)
+ todecode --;
+
+ decoded = todecode-32;
+
+ return decoded;
+}
+
+/*
+ * Allocate more memory to the table if necessary.
+ */
+int growTable(lookupTable *data)
+{
+ int i;
+
+ data->table = (shapeData*) msSmallRealloc(data->table,sizeof(*data->table)*data->size*2);
+ data->size = data->size*2;
+
+ for(i=data->counter; i<data->size; i++)
+ {
+ data->table[i].datavalues = NULL;
+ data->table[i].itemvalue = NULL;
+ data->table[i].utfvalue = 0;
+ data->table[i].serialid = 0;
+ }
+ return MS_SUCCESS;
+}
+
+/*
+ * Add the shapeObj UTFDATA and UTFITEM to the lookup table.
+ */
+band_type addToTable(UTFGridRenderer *r, shapeObj *p)
+{
+ band_type utfvalue;
+
+ /* Looks for duplicates. */
+ if(r->duplicates==0 && r->useutfitem==1) {
+ int i;
+ for(i=0; i<r->data->counter; i++) {
+ if(!strcmp(p->values[r->utflayer->utfitemindex],r->data->table[i].itemvalue)) {
+ /* Found a copy of the values in the table. */
+ utfvalue = r->data->table[i].utfvalue;
+
+ return utfvalue;
+ }
+ }
+ }
+
+ /* Grow size of table if necessary */
+ if(r->data->size == r->data->counter)
+ growTable(r->data);
+
+ utfvalue = (r->data->counter+1);
+
+ /* Simple operation so we don't have unavailable char in the JSON */
+ utfvalue = encodeForRendering(utfvalue);
+
+ /* Datas are added to the table */
+ r->data->table[r->data->counter].datavalues = msEvalTextExpressionJSonEscape(&r->utflayer->utfdata, p);
+
+ /* If UTFITEM is set in the mapfiles we add its value to the table */
+ if(r->useutfitem)
+ r->data->table[r->data->counter].itemvalue = msStrdup(p->values[r->utflayer->utfitemindex]);
+
+ r->data->table[r->data->counter].serialid = r->data->counter+1;
+
+ r->data->table[r->data->counter].utfvalue = utfvalue;
+
+ r->data->counter++;
+
+ return utfvalue;
+}
+
+/*
+ * Use AGG to render any path.
+ */
+template<class vertex_source>
+int utfgridRenderPath(imageObj *img, vertex_source &path)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+ r->m_rasterizer.reset();
+ r->m_rasterizer.filling_rule(mapserver::fill_even_odd);
+ r->m_rasterizer.add_path(path);
+ r->m_renderer_scanline.color(utfitem(r->utfvalue));
+ mapserver::render_scanlines(r->m_rasterizer, r->sl_utf, r->m_renderer_scanline);
+ return MS_SUCCESS;
+}
+
+/*
+ * Initialize the renderer, create buffer, allocate memory.
+ */
+imageObj *utfgridCreateImage(int width, int height, outputFormatObj *format, colorObj * bg)
+{
+ UTFGridRenderer *r;
+ r = new UTFGridRenderer;
+
+ r->data = new lookupTable;
+
+ r->utfresolution = atof(msGetOutputFormatOption(format, "UTFRESOLUTION", "4"));
+ if(r->utfresolution < 1) {
+ msSetError(MS_MISCERR, "UTFRESOLUTION smaller that 1 in the mapfile.", "utfgridCreateImage()");
+ return NULL;
+ }
+
+ r->layerwatch = 0;
+
+ r->renderlayer = 0;
+
+ r->useutfitem = 0;
+
+ r->useutfdata = 0;
+
+ r->duplicates = EQUAL("true", msGetOutputFormatOption(format, "DUPLICATES", "true"));
+
+ r->utfvalue = 0;
+
+ r->buffer = (band_type*)msSmallMalloc(width/r->utfresolution * height/r->utfresolution * sizeof(band_type));
+
+ /* AGG specific operations */
+ r->m_rendering_buffer.attach(r->buffer, width/r->utfresolution, height/r->utfresolution, width/r->utfresolution);
+ r->m_pixel_format.attach(r->m_rendering_buffer);
+ r->m_renderer_base.attach(r->m_pixel_format);
+ r->m_renderer_scanline.attach(r->m_renderer_base);
+ r->m_renderer_base.clear(UTF_WATER);
+ r->m_rasterizer.gamma(mapserver::gamma_none());
+
+ r->utflayer = NULL;
+
+ imageObj *image = NULL;
+ image = (imageObj *) msSmallCalloc(1,sizeof(imageObj));
+ image->img.plugin = (void*) r;
+
+ return image;
+}
+
+/*
+ * Free all the memory used by the renderer.
+ */
+int utfgridFreeImage(imageObj *img)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ msFree(r->buffer);
+ delete r;
+
+ img->img.plugin = NULL;
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Update a character in the utfgrid.
+*/
+
+int utfgridUpdateChar(imageObj *img, band_type oldChar, band_type newChar)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+ int i,bufferLength;
+
+ bufferLength = (img->height/r->utfresolution) * (img->width/r->utfresolution);
+
+ for(i=0;i<bufferLength;i++){
+ if(r->buffer[i] == oldChar)
+ r->buffer[i] = newChar;
+ }
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Remove unnecessary data that didn't made it to the final grid.
+ */
+
+int utfgridCleanData(imageObj *img)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+ unsigned char* usedChar;
+ int i,bufferLength,itemFound,dataCounter;
+ shapeData* updatedData;
+ band_type utfvalue;
+
+ bufferLength = (img->height/r->utfresolution) * (img->width/r->utfresolution);
+
+ usedChar =(unsigned char*) msSmallMalloc(r->data->counter*sizeof(unsigned char));
+
+ for(i=0;i<r->data->counter;i++){
+ usedChar[i]=0;
+ }
+
+ itemFound=0;
+
+ for(i=0;i<bufferLength;i++)
+ {
+ if(decodeRendered(r->buffer[i]) != 0 && usedChar[decodeRendered(r->buffer[i])-1]==0)
+ {
+ itemFound++;
+ usedChar[decodeRendered(r->buffer[i])-1] = 1;
+ }
+ }
+
+ updatedData = (shapeData*) msSmallMalloc(itemFound * sizeof(shapeData));
+ dataCounter = 0;
+
+ for(i=0; i< r->data->counter; i++){
+ if(usedChar[decodeRendered(r->data->table[i].utfvalue)-1]==1){
+ updatedData[dataCounter] = r->data->table[i];
+
+ updatedData[dataCounter].serialid=dataCounter+1;
+
+ utfvalue=encodeForRendering(dataCounter+1);
+
+ utfgridUpdateChar(img,updatedData[dataCounter].utfvalue,utfvalue);
+ updatedData[dataCounter].utfvalue = utfvalue;
+
+ dataCounter++;
+ }
+ else {
+ if(r->data->table[i].datavalues)
+ msFree(r->data->table[i].datavalues);
+ if(r->data->table[i].itemvalue)
+ msFree(r->data->table[i].itemvalue);
+ }
+ }
+
+ msFree(usedChar);
+
+ msFree(r->data->table);
+
+ r->data->table = updatedData;
+ r->data->counter = dataCounter;
+ r->data->size = dataCounter;
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Print the renderer datas as a JSON.
+ */
+int utfgridSaveImage(imageObj *img, mapObj *map, FILE *fp, outputFormatObj *format)
+{
+ int row, col, i, imgheight, imgwidth;
+ band_type pixelid;
+ char* pszEscaped;
+
+ utfgridCleanData(img);
+
+ UTFGridRenderer *renderer = UTFGRID_RENDERER(img);
+
+ if(renderer->layerwatch>1)
+ return MS_FAILURE;
+
+ imgheight = img->height/renderer->utfresolution;
+ imgwidth = img->width/renderer->utfresolution;
+
+ fprintf(fp,"{\"grid\":[");
+
+ /* Print the buffer, also */
+ for(row=0; row<imgheight; row++) {
+
+ wchar_t *string = (wchar_t*) msSmallMalloc ((imgwidth + 1) * sizeof(wchar_t));
+ wchar_t *stringptr;
+ stringptr = string;
+ /* Needs comma between each lines but JSON must not start with a comma. */
+ if(row!=0)
+ fprintf(fp,",");
+ fprintf(fp,"\"");
+ for(col=0; col<img->width/renderer->utfresolution; col++) {
+ /* Get the datas from buffer. */
+ pixelid = renderer->buffer[(row*imgwidth)+col];
+
+ *stringptr = pixelid;
+ stringptr++;
+ }
+
+ /* Convertion to UTF-8 encoding */
+ *stringptr = '\0';
+ char * utf8;
+ utf8 = msConvertWideStringToUTF8 (string, "UCS-4LE");
+ fprintf(fp,"%s", utf8);
+ msFree(utf8);
+ msFree(string);
+ fprintf(fp,"\"");
+ }
+
+ fprintf(fp,"],\"keys\":[\"\"");
+
+ /* Prints the key specified */
+ for(i=0;i<renderer->data->counter;i++) {
+ fprintf(fp,",");
+
+ if(renderer->useutfitem)
+ {
+ pszEscaped = msEscapeJSonString(renderer->data->table[i].itemvalue);
+ fprintf(fp,"\"%s\"", pszEscaped);
+ msFree(pszEscaped);
+ }
+ /* If no UTFITEM specified use the serial ID as the key */
+ else
+ fprintf(fp,"\"%i\"", renderer->data->table[i].serialid);
+ }
+
+ fprintf(fp,"],\"data\":{");
+
+ /* Print the datas */
+ if(renderer->useutfdata) {
+ for(i=0;i<renderer->data->counter;i++) {
+ if(i!=0)
+ fprintf(fp,",");
+
+ if(renderer->useutfitem)
+ {
+ pszEscaped = msEscapeJSonString(renderer->data->table[i].itemvalue);
+ fprintf(fp,"\"%s\":", pszEscaped);
+ msFree(pszEscaped);
+ }
+ /* If no UTFITEM specified use the serial ID as the key */
+ else
+ fprintf(fp,"\"%i\":", renderer->data->table[i].serialid);
+
+ fprintf(fp,"%s", renderer->data->table[i].datavalues);
+ }
+ }
+ fprintf(fp,"}}");
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Starts a layer for UTFGrid renderer.
+ */
+int utfgridStartLayer(imageObj *img, mapObj *map, layerObj *layer)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ /* Look if the layer uses the UTFGrid output format */
+ if(layer->utfdata.string!=0) {
+ r->useutfdata = 1;
+ }
+
+ /* layerwatch is set to 1 on first layer treated. Doesn't allow multiple layers. */
+ if(!r->layerwatch) {
+ r->layerwatch++;
+
+ r->renderlayer = 1;
+ r->utflayer = layer;
+ layer->refcount++;
+
+ /* Verify if renderer needs to use UTFITEM */
+ if(r->utflayer->utfitem)
+ r->useutfitem = 1;
+ }
+ /* If multiple layers, send error */
+ else {
+ r->layerwatch++;
+ msSetError(MS_MISCERR, "MapServer does not support multiple UTFGrid layers rendering simultaneously.", "utfgridStartLayer()");
+ return MS_FAILURE;
+ }
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Tell renderer the layer is done.
+ */
+int utfgridEndLayer(imageObj *img, mapObj *map, layerObj *layer)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ /* Look if the layer was rendered, if it was then turn off rendering. */
+ if(r->renderlayer) {
+ r->utflayer = NULL;
+ layer->refcount--;
+ r->renderlayer = 0;
+ }
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Do the table operations on the shapes. Allow multiple type of data to be rendered.
+ */
+int utfgridStartShape(imageObj *img, shapeObj *shape)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ if(!r->renderlayer)
+ return MS_FAILURE;
+
+ /* Table operations */
+ r->utfvalue = addToTable(r, shape);
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Tells the renderer that the shape's rendering is done.
+ */
+int utfgridEndShape(imageObj *img, shapeObj *shape)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ r->utfvalue = 0;
+ return MS_SUCCESS;
+}
+
+/*
+ * Function that render polygons into UTFGrid.
+ */
+int utfgridRenderPolygon(imageObj *img, shapeObj *polygonshape, colorObj *color)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ /* utfvalue is set to 0 if the shape isn't in the table. */
+ if(r->utfvalue == 0) {
+ return MS_FAILURE;
+ }
+
+ /* Render the polygon */
+ polygon_adaptor_utf polygons(polygonshape, r->utfresolution);
+ utfgridRenderPath(img, polygons);
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Function that render lines into UTFGrid. Starts by looking if the line is a polygon
+ * outline. Then draw it if it's not.
+ */
+int utfgridRenderLine(imageObj *img, shapeObj *lineshape, strokeStyleObj *linestyle)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ /* utfvalue is set to 0 if the shape isn't in the table. */
+ if(r->utfvalue == 0) {
+ return MS_FAILURE;
+ }
+
+ /* Render the line */
+ line_adaptor_utf lines(lineshape, r->utfresolution);
+
+ if(!r->stroke) {
+ r->stroke = new mapserver::conv_stroke<line_adaptor_utf>(lines);
+ } else {
+ r->stroke->attach(lines);
+ }
+ r->stroke->width(linestyle->width/r->utfresolution);
+ utfgridRenderPath(img, *r->stroke);
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Function that render vector type symbols into UTFGrid.
+ */
+int utfgridRenderVectorSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj * style)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+ double ox = symbol->sizex * 0.5;
+ double oy = symbol->sizey * 0.5;
+
+ /* utfvalue is set to 0 if the shape isn't in the table. */
+ if(r->utfvalue == 0) {
+ return MS_FAILURE;
+ }
+
+ /* Pathing the symbol */
+ mapserver::path_storage path = imageVectorSymbol(symbol);
+
+ /* Transformation to the right size/scale. */
+ mapserver::trans_affine mtx;
+ mtx *= mapserver::trans_affine_translation(-ox,-oy);
+ mtx *= mapserver::trans_affine_scaling(style->scale/r->utfresolution);
+ mtx *= mapserver::trans_affine_rotation(-style->rotation);
+ mtx *= mapserver::trans_affine_translation(x/r->utfresolution, y/r->utfresolution);
+ path.transform(mtx);
+
+ /* Rendering the symbol. */
+ utfgridRenderPath(img, path);
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Function that render Pixmap type symbols into UTFGrid.
+ */
+int utfgridRenderPixmapSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj * style)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+ rasterBufferObj *pixmap = symbol->pixmap_buffer;
+
+ /* utfvalue is set to 0 if the shape isn't in the table. */
+ if(r->utfvalue == 0) {
+ return MS_FAILURE;
+ }
+
+ /* Pathing the symbol BBox */
+ mapserver::path_storage pixmap_bbox;
+ double w, h;
+ w = pixmap->width*style->scale/(2.0);
+ h= pixmap->height*style->scale/(2.0);
+ pixmap_bbox.move_to((x-w)/r->utfresolution,(y-h)/r->utfresolution);
+ pixmap_bbox.line_to((x+w)/r->utfresolution,(y-h)/r->utfresolution);
+ pixmap_bbox.line_to((x+w)/r->utfresolution,(y+h)/r->utfresolution);
+ pixmap_bbox.line_to((x-w)/r->utfresolution,(y+h)/r->utfresolution);
+
+ /* Rendering the symbol */
+ utfgridRenderPath(img, pixmap_bbox);
+
+ return MS_SUCCESS;
+}
+
+/*
+ * Function that render ellipse type symbols into UTFGrid.
+ */
+int utfgridRenderEllipseSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj * style)
+{
+ UTFGridRenderer *r = UTFGRID_RENDERER(img);
+
+ /* utfvalue is set to 0 if the shape isn't in the table. */
+ if(r->utfvalue == 0) {
+ return MS_FAILURE;
+ }
+
+ /* Pathing the symbol. */
+ mapserver::path_storage path;
+ mapserver::ellipse ellipse(x/r->utfresolution,y/r->utfresolution,symbol->sizex*style->scale/2/r->utfresolution,symbol->sizey*style->scale/2/r->utfresolution);
+ path.concat_path(ellipse);
+
+ /* Rotation if necessary. */
+ if( style->rotation != 0) {
+ mapserver::trans_affine mtx;
+ mtx *= mapserver::trans_affine_translation(-x/r->utfresolution,-y/r->utfresolution);
+ mtx *= mapserver::trans_affine_rotation(-style->rotation);
+ mtx *= mapserver::trans_affine_translation(x/r->utfresolution,y/r->utfresolution);
+ path.transform(mtx);
+ }
+
+ /* Rendering the symbol. */
+ utfgridRenderPath(img, path);
+
+ return MS_SUCCESS;
+}
+
+int utfgridRenderGlyphs(imageObj *img, textPathObj *tp, colorObj *c, colorObj *oc, int ow) {
+ return MS_SUCCESS;
+}
+
+int utfgridFreeSymbol(symbolObj * symbol)
+{
+ return MS_SUCCESS;
+}
+
+/*
+ * Add the necessary functions for UTFGrid to the renderer VTable.
+ */
+int msPopulateRendererVTableUTFGrid( rendererVTableObj *renderer )
+{
+ renderer->default_transform_mode = MS_TRANSFORM_SIMPLIFY;
+
+ renderer->createImage = &utfgridCreateImage;
+ renderer->freeImage = &utfgridFreeImage;
+ renderer->saveImage = &utfgridSaveImage;
+
+ renderer->startLayer = &utfgridStartLayer;
+ renderer->endLayer = &utfgridEndLayer;
+
+ renderer->startShape = &utfgridStartShape;
+ renderer->endShape = &utfgridEndShape;
+
+ renderer->renderPolygon = &utfgridRenderPolygon;
+ renderer->renderGlyphs = &utfgridRenderGlyphs;
+ renderer->renderLine = &utfgridRenderLine;
+ renderer->renderVectorSymbol = &utfgridRenderVectorSymbol;
+ renderer->renderPixmapSymbol = &utfgridRenderPixmapSymbol;
+ renderer->renderEllipseSymbol = &utfgridRenderEllipseSymbol;
+
+ renderer->freeSymbol = &utfgridFreeSymbol;
+
+ renderer->loadImageFromFile = msLoadMSRasterBufferFromFile;
+
+ return MS_SUCCESS;
+}
diff --git a/maputfgrid.h b/maputfgrid.h
new file mode 100644
index 0000000..2eac274
--- /dev/null
+++ b/maputfgrid.h
@@ -0,0 +1,247 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project: MapServer
+ * Purpose: UTFGrid rendering functions (using AGG)
+ * Author: Francois Desjarlais
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2007 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+#include "renderers/agg/include/agg_renderer_base.h"
+#include "renderers/agg/include/agg_rendering_buffer.h"
+
+/*
+ * Using AGG templates to create UTFGrid pixel.
+ */
+
+//==================================================================utfpix32
+struct utfpix32
+{
+ typedef mapserver::int32u value_type;
+ typedef mapserver::int64u calc_type;
+ typedef mapserver::int64 long_type;
+
+ typedef utfpix32 self_type;
+
+ value_type v;
+
+ //--------------------------------------------------------------------
+ utfpix32() {}
+
+ //--------------------------------------------------------------------
+ utfpix32(unsigned v_) :
+ v(mapserver::int32u(v_)) {}
+
+ //--------------------------------------------------------------------
+ utfpix32(const self_type& c) :
+ v(c.v) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ v = 0;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void add(const self_type& c, unsigned cover)
+ {
+ *this = c;
+ }
+};
+
+//=================================================pixfmt_utf
+template<class ColorT, class RenBuf, unsigned Step=1, unsigned Offset=0>
+class pixfmt_utf
+{
+public:
+ typedef RenBuf rbuf_type;
+ typedef typename rbuf_type::row_data row_data;
+ typedef ColorT color_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum base_scale_e
+ {
+ pix_width = sizeof(value_type),
+ pix_step = Step,
+ pix_offset = Offset
+ };
+
+private:
+ //--------------------------------------------------------------------
+ static AGG_INLINE void copy_or_blend_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ *p = c.v;
+ }
+
+ static AGG_INLINE void copy_or_blend_pix(value_type* p,
+ const color_type& c)
+ {
+ *p = c.v;
+ }
+
+public:
+ pixfmt_utf() : m_rbuf(0) {}
+ //--------------------------------------------------------------------
+ explicit pixfmt_utf(rbuf_type& rb) :
+ m_rbuf(&rb)
+ {}
+ void attach(rbuf_type& rb) { m_rbuf = &rb; }
+ //--------------------------------------------------------------------
+
+ template<class PixFmt>
+ bool attach(PixFmt& pixf, int x1, int y1, int x2, int y2)
+ {
+ mapserver::rect_i r(x1, y1, x2, y2);
+ if(r.clip(mapserver::rect_i(0, 0, pixf.width()-1, pixf.height()-1)))
+ {
+ int stride = pixf.stride();
+ m_rbuf->attach(pixf.pix_ptr(r.x1, stride < 0 ? r.y2 : r.y1),
+ (r.x2 - r.x1) + 1,
+ (r.y2 - r.y1) + 1,
+ stride);
+ return true;
+ }
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned width() const { return m_rbuf->width(); }
+ AGG_INLINE unsigned height() const { return m_rbuf->height(); }
+ AGG_INLINE int stride() const { return m_rbuf->stride(); }
+
+ //--------------------------------------------------------------------
+ mapserver::int8u* row_ptr(int y) { return m_rbuf->row_ptr(y); }
+ const mapserver::int8u* row_ptr(int y) const { return m_rbuf->row_ptr(y); }
+ row_data row(int y) const { return m_rbuf->row(y); }
+
+ const mapserver::int8u* pix_ptr(int x, int y) const
+ {
+ return m_rbuf->row_ptr(y) + x * Step + Offset+1213;
+ }
+
+ mapserver::int8u* pix_ptr(int x, int y)
+ {
+ return m_rbuf->row_ptr(y) + x * Step + Offset +1213;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE static void make_pix(mapserver::int8u* p, const color_type& c)
+ {
+ *(value_type*)p = c.v;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE color_type pixel(int x, int y) const
+ {
+ value_type* p = (value_type*)m_rbuf->row_ptr(y) + x * Step + Offset;
+ return color_type(*p);
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_pixel(int x, int y, const color_type& c)
+ {
+ *((value_type*)m_rbuf->row_ptr(x, y, 1) + x * Step + Offset) = c.v;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pixel(int x, int y, const color_type& c, mapserver::int8u cover)
+ {
+ copy_or_blend_pix((value_type*)
+ m_rbuf->row_ptr(x, y, 1) + x * Step + Offset,
+ c);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)
+ m_rbuf->row_ptr(x, y, len) + x * Step + Offset;
+
+ do
+ {
+ *p = c.v;
+ p += Step;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ do
+ {
+ value_type* p = (value_type*)
+ m_rbuf->row_ptr(x, y++, 1) + x * Step + Offset;
+
+ *p = c.v;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ mapserver::int8u cover)
+ {
+ value_type* p = (value_type*)
+ m_rbuf->row_ptr(x, y, len) + x * Step + Offset;
+
+ do
+ {
+ *p = c.v;
+ p += Step;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ mapserver::int8u cover)
+ {
+ do
+ {
+ value_type* p = (value_type*)
+ m_rbuf->row_ptr(x, y++, 1) + x * Step + Offset;
+
+ *p = c.v;
+ }
+ while(--len);
+ }
+
+
+private:
+ rbuf_type* m_rbuf;
+};
diff --git a/maputil.c b/maputil.c
index ef0d309..fe7a2d7 100644
--- a/maputil.c
+++ b/maputil.c
@@ -216,7 +216,7 @@ static void bindLabel(layerObj *layer, shapeObj *shape, labelObj *label, int dra
if(label->bindings[MS_LABEL_BINDING_SIZE].index != -1) {
label->size = 1;
- bindDoubleAttribute(&label->size, shape->values[label->bindings[MS_LABEL_BINDING_SIZE].index]);
+ bindIntegerAttribute(&label->size, shape->values[label->bindings[MS_LABEL_BINDING_SIZE].index]);
}
if(label->bindings[MS_LABEL_BINDING_COLOR].index != -1) {
@@ -403,7 +403,7 @@ int msEvalContext(mapObj *map, layerObj *layer, char *context)
if(!context) return(MS_TRUE);
/* initialize a temporary expression (e) */
- initExpression(&e);
+ msInitExpression(&e);
e.string = msStrdup(context);
e.type = MS_EXPRESSION; /* todo */
@@ -434,7 +434,7 @@ int msEvalContext(mapObj *map, layerObj *layer, char *context)
status = yyparse(&p);
- freeExpression(&e);
+ msFreeExpression(&e);
if (status != 0) {
msSetError(MS_PARSEERR, "Failed to parse context", "msEvalContext");
@@ -454,7 +454,8 @@ int msEvalContext(mapObj *map, layerObj *layer, char *context)
*/
int msEvalExpression(layerObj *layer, shapeObj *shape, expressionObj *expression, int itemindex)
{
- if(!expression->string) return MS_TRUE; /* empty expressions are ALWAYS true */
+ if(MS_STRING_IS_NULL_OR_EMPTY(expression->string)) return MS_TRUE; /* NULL or empty expressions are ALWAYS true */
+ if(expression->native_string != NULL) return MS_TRUE; /* expressions that are evaluated natively are ALWAYS true */
switch(expression->type) {
case(MS_STRING):
@@ -520,6 +521,8 @@ int msEvalExpression(layerObj *layer, shapeObj *shape, expressionObj *expression
return MS_FALSE;
}
+ if(MS_STRING_IS_NULL_OR_EMPTY(shape->values[itemindex]) == MS_TRUE) return MS_FALSE;
+
if(!expression->compiled) {
if(expression->flags & MS_EXP_INSENSITIVE) {
if(ms_regcomp(&(expression->regex), expression->string, MS_REG_EXTENDED|MS_REG_NOSUB|MS_REG_ICASE) != 0) { /* compile the expression */
@@ -611,7 +614,8 @@ int msShapeGetClass(layerObj *layer, mapObj *map, shapeObj *shape, int *classgro
return(-1); /* no match */
}
-static char *evalTextExpression(expressionObj *expr, shapeObj *shape)
+static
+char *msEvalTextExpressionInternal(expressionObj *expr, shapeObj *shape, int bJSonEscape)
{
char *result=NULL;
@@ -620,6 +624,7 @@ static char *evalTextExpression(expressionObj *expr, shapeObj *shape)
switch(expr->type) {
case(MS_STRING): {
char *target=NULL;
+ char *pszEscaped;
tokenListNodeObjPtr node=NULL;
tokenListNodeObjPtr nextNode=NULL;
@@ -632,7 +637,12 @@ static char *evalTextExpression(expressionObj *expr, shapeObj *shape)
if(node->token == MS_TOKEN_BINDING_DOUBLE || node->token == MS_TOKEN_BINDING_INTEGER || node->token == MS_TOKEN_BINDING_STRING || node->token == MS_TOKEN_BINDING_TIME) {
target = (char *) msSmallMalloc(strlen(node->tokenval.bindval.item) + 3);
sprintf(target, "[%s]", node->tokenval.bindval.item);
- result = msReplaceSubstring(result, target, shape->values[node->tokenval.bindval.index]);
+ if( bJSonEscape )
+ pszEscaped = msEscapeJSonString(shape->values[node->tokenval.bindval.index]);
+ else
+ pszEscaped = msStrdup(shape->values[node->tokenval.bindval.index]);
+ result = msReplaceSubstring(result, target, pszEscaped);
+ msFree(pszEscaped);
msFree(target);
}
node = nextNode;
@@ -656,7 +666,7 @@ static char *evalTextExpression(expressionObj *expr, shapeObj *shape)
status = yyparse(&p);
if (status != 0) {
- msSetError(MS_PARSEERR, "Failed to process text expression: %s", "evalTextExpression", expr->string);
+ msSetError(MS_PARSEERR, "Failed to process text expression: %s", "msEvalTextExpression", expr->string);
return NULL;
}
@@ -673,55 +683,39 @@ static char *evalTextExpression(expressionObj *expr, shapeObj *shape)
return result;
}
-int msShapeGetAnnotation(layerObj *layer, shapeObj *shape)
+char *msEvalTextExpressionJSonEscape(expressionObj *expr, shapeObj *shape)
{
- int i, j;
-
- /* RFC77 TODO: check and throw some errors here... */
- if(!layer || !shape) return MS_FAILURE;
-
- i = shape->classindex;
- for(j=0; j<layer->class[i]->numlabels; j++) {
- labelObj *lbl = layer->class[i]->labels[j]; /* shortcut */
-
- lbl->status = MS_ON;
- if(layer->map->scaledenom > 0) {
- if((lbl->maxscaledenom != -1) && (layer->map->scaledenom >= lbl->maxscaledenom)) {
- lbl->status = MS_OFF;
- continue; /* next label */
- }
- if((lbl->minscaledenom != -1) && (layer->map->scaledenom < lbl->minscaledenom)) {
- lbl->status = MS_OFF;
- continue; /* next label */
- }
- }
- if(msEvalExpression(layer, shape, &(lbl->expression), layer->labelitemindex) != MS_TRUE) {
- lbl->status = MS_OFF;
- continue; /* next label */
- }
-
- msFree(lbl->annotext);
- lbl->annotext = NULL;
+ return msEvalTextExpressionInternal(expr, shape, MS_TRUE);
+}
- if(lbl->text.string) {
- lbl->annotext = evalTextExpression(&(lbl->text), shape);
- } else if(layer->class[i]->text.string) {
- lbl->annotext = evalTextExpression(&(layer->class[i]->text), shape);
- } else {
- if (shape->values && layer->labelitemindex >= 0 && shape->values[layer->labelitemindex] && strlen(shape->values[layer->labelitemindex]) )
- lbl->annotext = msStrdup(shape->values[layer->labelitemindex]);
- else if(shape->text)
- lbl->annotext = msStrdup(shape->text); /* last resort but common with iniline features */
- }
+char *msEvalTextExpression(expressionObj *expr, shapeObj *shape)
+{
+ return msEvalTextExpressionInternal(expr, shape, MS_FALSE);
+}
- if(lbl->annotext && (lbl->encoding || lbl->wrap || lbl->maxlength)) {
- char *newtext = msTransformLabelText(layer->map , lbl, lbl->annotext);
- free(lbl->annotext);
- lbl->annotext = newtext;
- }
+char* msShapeGetLabelAnnotation(layerObj *layer, shapeObj *shape, labelObj *lbl) {
+ assert(shape && lbl);
+ if(lbl->text.string) {
+ return msEvalTextExpression(&(lbl->text), shape);
+ } else if(layer->class[shape->classindex]->text.string) {
+ return msEvalTextExpression(&(layer->class[shape->classindex]->text), shape);
+ } else {
+ if (shape->values && layer->labelitemindex >= 0 && shape->values[layer->labelitemindex] && strlen(shape->values[layer->labelitemindex]) )
+ return msStrdup(shape->values[layer->labelitemindex]);
+ else if(shape->text)
+ return msStrdup(shape->text); /* last resort but common with iniline features */
}
+ return NULL;
+}
- return MS_SUCCESS;
+int msGetLabelStatus(mapObj *map, layerObj *layer, shapeObj *shape, labelObj *lbl) {
+ assert(layer && lbl);
+ if(!msScaleInBounds(map->scaledenom,lbl->minscaledenom,lbl->maxscaledenom))
+ return MS_OFF;
+ if(msEvalExpression(layer, shape, &(lbl->expression), layer->labelitemindex) != MS_TRUE)
+ return MS_OFF;
+ /* TODO: check for minfeaturesize here ? */
+ return MS_ON;
}
/* Check if the shape is enough big to be drawn with the
@@ -851,6 +845,7 @@ int msSaveImage(mapObj *map, imageObj *img, char *filename)
nReturnVal = msSaveImageGDAL(map, img, filename);
} else
#endif
+
if (MS_RENDERER_PLUGIN(img->format)) {
rendererVTableObj *renderer = img->format->vtable;
FILE *stream = NULL;
@@ -875,8 +870,11 @@ int msSaveImage(mapObj *map, imageObj *img, char *filename)
if(renderer->supports_pixel_buffer) {
rasterBufferObj data;
- if(renderer->getRasterBufferHandle(img,&data) != MS_SUCCESS)
+ if(renderer->getRasterBufferHandle(img,&data) != MS_SUCCESS) {
+ if( stream != stdout )
+ fclose(stream);
return MS_FAILURE;
+ }
nReturnVal = msSaveRasterBuffer(map,&data,stream,img->format );
} else {
@@ -915,6 +913,7 @@ int msSaveImage(mapObj *map, imageObj *img, char *filename)
unsigned char *msSaveImageBuffer(imageObj* image, int *size_ptr, outputFormatObj *format)
{
+ int status = MS_SUCCESS;
*size_ptr = 0;
if( MS_RENDERER_PLUGIN(image->format)) {
rasterBufferObj data;
@@ -922,7 +921,10 @@ unsigned char *msSaveImageBuffer(imageObj* image, int *size_ptr, outputFormatObj
if(renderer->supports_pixel_buffer) {
bufferObj buffer;
msBufferInit(&buffer);
- renderer->getRasterBufferHandle(image,&data);
+ status = renderer->getRasterBufferHandle(image,&data);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ return NULL;
+ }
msSaveRasterBufferToBuffer(&data,&buffer,format);
*size_ptr = buffer.size;
return buffer.data;
@@ -1331,6 +1333,7 @@ char **msGetAllGroupNames(mapObj *map, int *numTok)
int nCount = 0;
int i = 0, j = 0;
+ assert(map);
*numTok = 0;
if (!map->layerorder) {
@@ -1343,7 +1346,7 @@ char **msGetAllGroupNames(mapObj *map, int *numTok)
map->layerorder[i] = i;
}
- if (map != NULL && map->numlayers > 0) {
+ if (map->numlayers > 0) {
nCount = map->numlayers;
papszGroups = (char **)msSmallMalloc(sizeof(char *)*nCount);
@@ -1622,7 +1625,7 @@ imageObj *msImageCreate(int width, int height, outputFormatObj *format,
}
if(!image)
- msSetError(MS_GDERR, "Unable to initialize image.", "msImageCreate()");
+ msSetError(MS_IMGERR, "Unable to initialize image.", "msImageCreate()");
image->refpt.x = image->refpt.y = 0;
return image;
}
@@ -1640,10 +1643,6 @@ void msTransformPoint(pointObj *point, rectObj *extent, double cellsize,
if (image != NULL && MS_RENDERER_PLUGIN(image->format)) {
if(image->format->renderer == MS_RENDER_WITH_KML) {
return;
- } else if(image->format->renderer == MS_RENDER_WITH_GD) {
- point->x = MS_MAP2IMAGE_X(point->x, extent->minx, cellsize);
- point->y = MS_MAP2IMAGE_Y(point->y, extent->maxy, cellsize);
- return;
}
}
invcellsize = 1.0/cellsize;
@@ -1894,14 +1893,13 @@ int msSetup()
msThreadInit();
#endif
+ /* Use PROJ_LIB env vars if set */
+ msProjLibInitFromEnv();
+
/* Use MS_ERRORFILE and MS_DEBUGLEVEL env vars if set */
if (msDebugInitFromEnv() != MS_SUCCESS)
return MS_FAILURE;
-#ifdef USE_GD
- msGDSetup();
-#endif
-
#ifdef USE_GEOS
msGEOSSetup();
#endif
@@ -1912,6 +1910,9 @@ int msSetup()
#endif
#endif
+ msFontCacheSetup();
+
+
return MS_SUCCESS;
}
@@ -1950,10 +1951,6 @@ void msCleanup(int signal)
msHTTPCleanup();
#endif
-#ifdef USE_GD
- msGDCleanup(signal);
-#endif
-
#ifdef USE_GEOS
msGEOSCleanup();
#endif
@@ -1968,6 +1965,8 @@ void msCleanup(int signal)
#endif
#endif
+ msFontCacheCleanup();
+
msTimeCleanup();
msIO_Cleanup();
@@ -2096,22 +2095,67 @@ void msAlphaBlendPM( unsigned char red_src, unsigned char green_src,
/* Cases with actual blending. */
/* -------------------------------------------------------------------- */
if(!alpha_dst || *alpha_dst == 255) {
- int weight_dst = 256 - alpha_src;
+ int weight_dst = 255 - alpha_src;
- *red_dst = (256 * red_src + *red_dst * weight_dst) >> 8;
- *green_dst = (256 * green_src + *green_dst * weight_dst) >> 8;
- *blue_dst = (256 * blue_src + *blue_dst * weight_dst) >> 8;
+ *red_dst = (alpha_src * red_src + *red_dst * weight_dst) >> 8;
+ *green_dst = (alpha_src * green_src + *green_dst * weight_dst) >> 8;
+ *blue_dst = (alpha_src * blue_src + *blue_dst * weight_dst) >> 8;
} else {
- int weight_dst = (256 - alpha_src);
+ int weight_dst = (255 - alpha_src);
- *red_dst = (256 * red_src + *red_dst * weight_dst) >> 8;
- *green_dst = (256 * green_src + *green_dst * weight_dst) >> 8;
- *blue_dst = (256 * blue_src + *blue_dst * weight_dst) >> 8;
+ *red_dst = (alpha_src * red_src + *red_dst * weight_dst) >> 8;
+ *green_dst = (alpha_src * green_src + *green_dst * weight_dst) >> 8;
+ *blue_dst = (alpha_src * blue_src + *blue_dst * weight_dst) >> 8;
- *alpha_dst = (256 * alpha_src + *alpha_dst * weight_dst) >> 8;
+ *alpha_dst = (255 * alpha_src + *alpha_dst * weight_dst) >> 8;
}
}
+void msRGBtoHSL(colorObj *rgb, double *h, double *s, double *l) {
+ double r = rgb->red/255.0, g = rgb->green/255.0, b = rgb->blue/255.0;
+ double maxv = MS_MAX(MS_MAX(r, g), b), minv = MS_MIN(MS_MIN(r, g), b);
+ double d = maxv - minv;
+
+ *h = 0, *s = 0;
+ *l = (maxv + minv) / 2;
+
+ if (maxv != minv)
+ {
+ *s = *l > 0.5 ? d / (2 - maxv - minv) : d / (maxv + minv);
+ if (maxv == r) { *h = (g - b) / d + (g < b ? 6 : 0); }
+ else if (maxv == g) { *h = (b - r) / d + 2; }
+ else if (maxv == b) { *h = (r - g) / d + 4; }
+ *h /= 6;
+ }
+}
+
+static double hue_to_rgb(double p, double q, double t) {
+ if(t < 0) t += 1;
+ if(t > 1) t -= 1;
+ if(t < 0.1666666666666666) return p + (q - p) * 6 * t;
+ if(t < 0.5) return q;
+ if(t < 0.6666666666666666) return p + (q - p) * (0.666666666666 - t) * 6;
+ return p;
+}
+
+void msHSLtoRGB(double h, double s, double l, colorObj *rgb) {
+ double r, g, b;
+
+ if(s == 0){
+ r = g = b = l;
+ } else {
+
+ double q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+ double p = 2 * l - q;
+ r = hue_to_rgb(p, q, h + 0.33333333333333333);
+ g = hue_to_rgb(p, q, h);
+ b = hue_to_rgb(p, q, h - 0.33333333333333333);
+ }
+ rgb->red = r * 255;
+ rgb->green = g * 255;
+ rgb->blue = b * 255;
+}
+
/*
RFC 24: check if the parent pointer is NULL and raise an error otherwise
*/
@@ -2121,16 +2165,10 @@ int msCheckParentPointer(void* p, char *objname)
char* msg=NULL;
if (p == NULL) {
if(objname != NULL) {
- msg=malloc( sizeof(char) * ( ( strlen(fmt)+strlen(objname) ) ) );
- if(msg == NULL) {
- msg="A required parent object is null";
- } else {
- sprintf(msg, "The %s parent object is null", objname);
- }
+ msSetError(MS_NULLPARENTERR, "The %s parent object is null", "msCheckParentPointer()", msg);
} else {
- msg="A required parent object is null";
+ msSetError(MS_NULLPARENTERR, "The parent object is null", "msCheckParentPointer()");
}
- msSetError(MS_NULLPARENTERR, "%s", "", msg);
return MS_FAILURE;
}
return MS_SUCCESS;
@@ -2182,12 +2220,6 @@ void msFreeRasterBuffer(rasterBufferObj *b)
b->data.palette.pixels = NULL;
b->data.palette.palette = NULL;
break;
-#ifdef USE_GD
- case MS_BUFFER_GD:
- gdImageDestroy(b->data.gd_img);
- b->data.gd_img = NULL;
- break;
-#endif
}
}
@@ -2263,11 +2295,11 @@ void *msSmallMalloc( size_t nSize )
{
void *pReturn;
- if( nSize == 0 )
+ if( UNLIKELY(nSize == 0) )
return NULL;
pReturn = malloc( nSize );
- if( pReturn == NULL ) {
+ if( UNLIKELY(pReturn == NULL) ) {
msIO_fprintf(stderr, "msSmallMalloc(): Out of memory allocating %ld bytes.\n",
(long) nSize );
exit(1);
@@ -2286,12 +2318,12 @@ void * msSmallRealloc( void * pData, size_t nNewSize )
{
void *pReturn;
- if ( nNewSize == 0 )
+ if ( UNLIKELY(nNewSize == 0) )
return NULL;
pReturn = realloc( pData, nNewSize );
- if( pReturn == NULL ) {
+ if( UNLIKELY(pReturn == NULL) ) {
msIO_fprintf(stderr, "msSmallRealloc(): Out of memory allocating %ld bytes.\n",
(long)nNewSize );
exit(1);
@@ -2310,11 +2342,11 @@ void *msSmallCalloc( size_t nCount, size_t nSize )
{
void *pReturn;
- if( nSize * nCount == 0 )
+ if( UNLIKELY(nSize * nCount == 0) )
return NULL;
pReturn = calloc( nCount, nSize );
- if( pReturn == NULL ) {
+ if( UNLIKELY(pReturn == NULL) ) {
msIO_fprintf(stderr, "msSmallCalloc(): Out of memory allocating %ld bytes.\n",
(long)(nCount*nSize));
exit(1);
@@ -2337,10 +2369,23 @@ char *msBuildOnlineResource(mapObj *map, cgiRequestObj *req)
{
char *online_resource = NULL;
const char *value, *hostname, *port, *script, *protocol="http", *mapparam=NULL;
- int mapparam_len = 0;
+ char **hostname_array = NULL;
+ int mapparam_len = 0, hostname_array_len = 0;
+
+ hostname = getenv("HTTP_X_FORWARDED_HOST");
+ if(!hostname)
+ hostname = getenv("SERVER_NAME");
+ else {
+ if(strchr(hostname,',')) {
+ hostname_array = msStringSplit(hostname,',', &hostname_array_len);
+ hostname = hostname_array[0];
+ }
+ }
- hostname = getenv("SERVER_NAME");
- port = getenv("SERVER_PORT");
+ port = getenv("HTTP_X_FORWARDED_PORT");
+ if(!port)
+ port = getenv("SERVER_PORT");
+
script = getenv("SCRIPT_NAME");
/* HTTPS is set by Apache to "on" in an HTTPS server ... if not set */
@@ -2349,6 +2394,9 @@ char *msBuildOnlineResource(mapObj *map, cgiRequestObj *req)
((value=getenv("SERVER_PORT")) && atoi(value) == 443) ) {
protocol = "https";
}
+ if ( (value=getenv("HTTP_X_FORWARDED_PROTO")) ) {
+ protocol = value;
+ }
/* If map=.. was explicitly set then we'll include it in onlineresource
*/
@@ -2382,6 +2430,9 @@ char *msBuildOnlineResource(mapObj *map, cgiRequestObj *req)
msSetError(MS_CGIERR, "Impossible to establish server URL.", "msBuildOnlineResource()");
return NULL;
}
+ if(hostname_array) {
+ msFreeCharArray(hostname_array, hostname_array_len);
+ }
return online_resource;
}
@@ -2426,27 +2477,86 @@ int msMapSetLayerProjections(mapObj* map)
}
for(i=0; i<map->numlayers; i++) {
+ layerObj *lp = GET_LAYER(map,i);
/* This layer is turned on and needs a projection? */
- if (GET_LAYER(map, i)->projection.numargs <= 0 &&
- GET_LAYER(map, i)->status != MS_OFF &&
- GET_LAYER(map, i)->transform == MS_TRUE) {
+ if (lp->projection.numargs <= 0 &&
+ lp->status != MS_OFF &&
+ lp->transform == MS_TRUE) {
/* Fetch main map projection string only now that we need it */
if (mapProjStr == NULL)
mapProjStr = msGetProjectionString(&(map->projection));
/* Set the projection to the map file projection */
- if (msLoadProjectionString(&(GET_LAYER(map, i)->projection), mapProjStr) != 0) {
- msSetError(MS_CGIERR, "Unable to set projection on layer.", "msTileSetProjectionst()");
+ if (msLoadProjectionString(&(lp->projection), mapProjStr) != 0) {
+ msSetError(MS_CGIERR, "Unable to set projection on layer.", "msMapSetLayerProjections()");
return(MS_FAILURE);
}
- GET_LAYER(map, i)->project = MS_TRUE;
+ lp->project = MS_TRUE;
+ if(lp->connection && IS_THIRDPARTY_LAYER_CONNECTIONTYPE(lp->connectiontype)) {
+ char **reflayers;
+ int numreflayers,j;
+ reflayers = msStringSplit(lp->connection,',',&numreflayers);
+ for(j=0; j<numreflayers; j++) {
+ int *lidx, nlidx;
+ /* first check layers referenced by group name */
+ lidx = msGetLayersIndexByGroup(map, reflayers[i], &nlidx);
+ if(lidx) {
+ int k;
+ for(k=0; k<nlidx; k++) {
+ layerObj *glp = GET_LAYER(map,lidx[k]);
+ if (glp->projection.numargs <= 0 && glp->transform == MS_TRUE) {
+
+ /* Set the projection to the map file projection */
+ if (msLoadProjectionString(&(glp->projection), mapProjStr) != 0) {
+ msSetError(MS_CGIERR, "Unable to set projection on layer.", "msMapSetLayerProjections()");
+ return(MS_FAILURE);
+ }
+ glp->project = MS_TRUE;
+ }
+ }
+ free(lidx);
+ } else {
+ /* group name did not match, check by layer name */
+ int layer_idx = msGetLayerIndex(map,lp->connection);
+ layerObj *glp = GET_LAYER(map,layer_idx);
+ if (glp->projection.numargs <= 0 && glp->transform == MS_TRUE) {
+
+ /* Set the projection to the map file projection */
+ if (msLoadProjectionString(&(glp->projection), mapProjStr) != 0) {
+ msSetError(MS_CGIERR, "Unable to set projection on layer.", "msMapSetLayerProjections()");
+ return(MS_FAILURE);
+ }
+ glp->project = MS_TRUE;
+ }
+ }
+ }
+ msFreeCharArray(reflayers, numreflayers);
+ }
}
}
msFree(mapProjStr);
return(MS_SUCCESS);
}
+
+/************************************************************************
+ * msMapSetLanguageSpecificConnection *
+ * *
+ * Override DATA and CONNECTION of each layer with their specific *
+ * variant for the specified language. *
+ ************************************************************************/
+
+void msMapSetLanguageSpecificConnection(mapObj* map, const char* validated_language)
+{
+ int i;
+ for(i=0; i<map->numlayers; i++) {
+ layerObj *layer = GET_LAYER(map, i);
+ if(layer->data) layer->data = msCaseReplaceSubstring(layer->data, "%language%", validated_language);
+ if(layer->connection) layer->connection = msCaseReplaceSubstring(layer->connection, "%language%", validated_language);
+ }
+}
+
/* Generalize a shape based of the tolerance.
Ref: http://trac.osgeo.org/gdal/ticket/966 */
shapeObj* msGeneralize(shapeObj *shape, double tolerance)
@@ -2504,3 +2614,11 @@ shapeObj* msGeneralize(shapeObj *shape, double tolerance)
return newShape;
}
+
+int msSetLayerOpacity(layerObj *layer, int opacity) {
+ if(!layer->compositer) {
+ layer->compositer = msSmallMalloc(sizeof(LayerCompositer));
+ initLayerCompositer(layer->compositer);
+ }
+ layer->compositer->opacity = opacity;
+}
diff --git a/mapuvraster.c b/mapuvraster.c
index dc7e8c2..6cbfd33 100644
--- a/mapuvraster.c
+++ b/mapuvraster.c
@@ -341,14 +341,6 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
char **alteredProcessing = NULL, *saved_layer_mask;
char **savedProcessing = NULL;
- /*
- ** Allocate mapObj structure
- */
- map_tmp = (mapObj *)msSmallCalloc(sizeof(mapObj),1);
- if(initMap(map_tmp) == -1) { /* initialize this map */
- msFree(map_tmp);
- return(MS_FAILURE);
- }
if (layer->debug)
msDebug("Entering msUVRASTERLayerWhichShapes().\n");
@@ -368,6 +360,15 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
"msUVRASTERLayerWhichShapes()" );
return MS_FAILURE;
}
+
+ /*
+ ** Allocate mapObj structure
+ */
+ map_tmp = (mapObj *)msSmallCalloc(sizeof(mapObj),1);
+ if(initMap(map_tmp) == -1) { /* initialize this map */
+ msFree(map_tmp);
+ return(MS_FAILURE);
+ }
/* -------------------------------------------------------------------- */
/* Determine desired spacing. Default to 32 if not otherwise set */
diff --git a/mapv8.cpp b/mapv8.cpp
new file mode 100644
index 0000000..c3b5244
--- /dev/null
+++ b/mapv8.cpp
@@ -0,0 +1,386 @@
+/**********************************************************************
+ *
+ * Project: MapServer
+ * Purpose: V8 JavaScript Engine Support
+ * Author: Alan Boudreault (aboudreault at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Alan Boudreault, MapGears
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ **********************************************************************/
+
+#include "mapserver-config.h"
+#ifdef USE_V8_MAPSCRIPT
+
+#include "mapserver.h"
+#include "v8_mapscript.h"
+
+/* This file could be refactored in the future to encapsulate the global
+ functions and internal use functions in a class. */
+
+/* Handler for Javascript Exceptions. Not exposed to JavaScript, used internally.
+ Most of the code from v8 shell example.
+*/
+void msV8ReportException(TryCatch* try_catch, const char *msg = "")
+{
+ HandleScope handle_scope;
+
+ if (!try_catch || !try_catch->HasCaught()) {
+ msSetError(MS_V8ERR, "%s.", "msV8ReportException()", msg);
+ return;
+ }
+
+ String::Utf8Value exception(try_catch->Exception());
+ const char* exception_string = *exception;
+ Handle<Message> message = try_catch->Message();
+ if (message.IsEmpty()) {
+ msSetError(MS_V8ERR, "Javascript Exception: %s.", "msV8ReportException()",
+ exception_string);
+ } else {
+ String::Utf8Value filename(message->GetScriptResourceName());
+ const char* filename_string = *filename;
+ int linenum = message->GetLineNumber();
+ msSetError(MS_V8ERR, "Javascript Exception: %s:%i: %s", "msV8ReportException()",
+ filename_string, linenum, exception_string);
+ String::Utf8Value sourceline(message->GetSourceLine());
+ const char* sourceline_string = *sourceline;
+ msSetError(MS_V8ERR, "Exception source line: %s", "msV8ReportException()",
+ sourceline_string);
+ String::Utf8Value stack_trace(try_catch->StackTrace());
+ if (stack_trace.length() > 0) {
+ const char* stack_trace_string = *stack_trace;
+ msSetError(MS_V8ERR, "Exception StackTrace: %s", "msV8ReportException()",
+ stack_trace_string);
+ }
+ }
+}
+
+/* This function load a javascript file in memory. */
+static Handle<Value> msV8ReadFile(V8Context *v8context, const char *path)
+{
+ FILE* file = fopen(path, "rb");
+ if (file == NULL) {
+ char err[MS_MAXPATHLEN+21];
+ sprintf(err, "Error opening file: %s", path);
+ msV8ReportException(NULL, err);
+ return Handle<String>(String::New(""));
+ }
+
+ fseek(file, 0, SEEK_END);
+ int size = ftell(file);
+ rewind(file);
+
+ char* chars = new char[size + 1];
+ chars[size] = '\0';
+ for (int i = 0; i < size;) {
+ int read = static_cast<int>(fread(&chars[i], 1, size - i, file));
+ if (read == 0) {
+ msDebug("msV8ReadFile: error while reading file '%s'\n", path);
+ return Undefined();
+ }
+ i += read;
+ }
+
+ fclose(file);
+ Handle<String> result = String::New(chars, size);
+ delete[] chars;
+ return result;
+}
+
+/* Returns a compiled javascript script. */
+static Handle<Script> msV8CompileScript(Handle<String> source, Handle<String> script_name)
+{
+ TryCatch try_catch;
+
+ if (source.IsEmpty() || source->Length() == 0) {
+ msV8ReportException(NULL, "No source to compile");
+ return Handle<Script>();
+ }
+
+ Handle<Script> script = Script::Compile(source, script_name);
+ if (script.IsEmpty() && try_catch.HasCaught()) {
+ msV8ReportException(&try_catch);
+ }
+
+ return script;
+}
+
+/* Runs a compiled script */
+static Handle<Value> msV8RunScript(Handle<Script> script)
+{
+ if (script.IsEmpty()) {
+ ThrowException(String::New("No script to run"));
+ return Handle<Value>();
+ }
+
+ TryCatch try_catch;
+ Handle<Value> result = script->Run();
+
+ if (result.IsEmpty() && try_catch.HasCaught()) {
+ msV8ReportException(&try_catch);
+ }
+
+ return result;
+}
+
+/* Execute a javascript file */
+static Handle<Value> msV8ExecuteScript(const char *path, int throw_exception = MS_FALSE)
+{
+ char fullpath[MS_MAXPATHLEN];
+ map<string, Persistent<Script> >::iterator it;
+ Isolate *isolate = Isolate::GetCurrent();
+ V8Context *v8context = (V8Context*)isolate->GetData();
+
+ /* construct the path */
+ msBuildPath(fullpath, v8context->paths.top().c_str(), path);
+ char *filepath = msGetPath((char*)fullpath);
+ v8context->paths.push(filepath);
+ free(filepath);
+
+ Handle<Script> script;
+ it = v8context->scripts.find(fullpath);
+ if (it == v8context->scripts.end()) {
+ Handle<Value> source = msV8ReadFile(v8context, fullpath);
+ Handle<String> script_name = String::New(msStripPath((char*)path));
+ script = msV8CompileScript(source->ToString(), script_name);
+ if (script.IsEmpty()) {
+ v8context->paths.pop();
+ if (throw_exception) {
+ return ThrowException(String::New("Error compiling script"));
+ }
+ }
+ /* cache the compiled script */
+ Persistent<Script> pscript;
+ pscript.Reset(isolate, script);
+ v8context->scripts[fullpath] = pscript;
+ } else {
+ script = v8context->scripts[fullpath];
+ }
+
+ Handle<Value> result = msV8RunScript(script);
+ v8context->paths.pop();
+ if (result.IsEmpty() && throw_exception) {
+ return ThrowException(String::New("Error running script"));
+ }
+
+ return result;
+}
+
+/* END OF INTERNAL JAVASCRIPT FUNCTIONS */
+
+/* JAVASCRIPT EXPOSED FUNCTIONS */
+
+/* JavaScript Function to load javascript dependencies.
+ Exposed to JavaScript as 'require()'. */
+static Handle<Value> msV8Require(const Arguments& args)
+{
+ TryCatch try_catch;
+
+ for (int i = 0; i < args.Length(); i++) {
+ String::Utf8Value filename(args[i]);
+ msV8ExecuteScript(*filename, MS_TRUE);
+ if (try_catch.HasCaught()) {
+ return try_catch.ReThrow();
+ }
+ }
+
+ return Undefined();
+}
+
+/* Javascript Function print: print to debug file.
+ Exposed to JavaScript as 'print()'. */
+static Handle<Value> msV8Print(const Arguments& args)
+{
+ for (int i = 0; i < args.Length(); i++) {
+ String::Utf8Value str(args[i]);
+ msDebug("msV8Print: %s\n", *str);
+ }
+
+ return Undefined();
+}
+
+/* END OF JAVASCRIPT EXPOSED FUNCTIONS */
+
+/* Create and return a v8 context. Thread safe. */
+void msV8CreateContext(mapObj *map)
+{
+
+ Isolate *isolate = Isolate::GetCurrent();
+ Isolate::Scope isolate_scope(isolate);
+ HandleScope handle_scope(isolate);
+
+ V8Context *v8context = new V8Context(isolate);
+
+ Handle<ObjectTemplate> global_templ = ObjectTemplate::New();
+ global_templ->Set(String::New("require"), FunctionTemplate::New(msV8Require));
+ global_templ->Set(String::New("print"), FunctionTemplate::New(msV8Print));
+ global_templ->Set(String::New("alert"), FunctionTemplate::New(msV8Print));
+
+ Handle<Context> context_ = Context::New(v8context->isolate, NULL, global_templ);
+ v8context->context.Reset(v8context->isolate, context_);
+
+ /* we have to enter the context before getting global instance */
+ Context::Scope context_scope(context_);
+ Handle<Object> global = context_->Global();
+ Shape::Initialize(global);
+ Point::Initialize(global);
+ Line::Initialize(global);
+
+ v8context->paths.push(map->mappath);
+ v8context->isolate->SetData(v8context);
+ v8context->layer = NULL;
+
+ map->v8context = (void*)v8context;
+}
+
+void msV8ContextSetLayer(mapObj *map, layerObj *layer)
+{
+ V8Context* v8context = V8CONTEXT(map);
+
+ if (!v8context) {
+ msSetError(MS_V8ERR, "V8 Persistent Context is not created.", "msV8ContextSetLayer()");
+ return;
+ }
+
+ v8context->layer = layer;
+}
+
+static void msV8FreeContextScripts(V8Context *v8context)
+{
+ map<string, Persistent<Script> >::iterator it;
+ for(it=v8context->scripts.begin(); it!=v8context->scripts.end(); ++it)
+ {
+ ((*it).second).Dispose();
+ }
+}
+
+void msV8FreeContext(mapObj *map)
+{
+ V8Context* v8context = V8CONTEXT(map);
+ Shape::Dispose();
+ Point::Dispose();
+ Line::Dispose();
+ msV8FreeContextScripts(v8context);
+ v8context->context.Dispose();
+ delete v8context;
+}
+
+/* Create a V8 execution context, execute a script and return the feature
+ * style. */
+char* msV8GetFeatureStyle(mapObj *map, const char *filename, layerObj *layer, shapeObj *shape)
+{
+ TryCatch try_catch;
+ V8Context* v8context = V8CONTEXT(map);
+ char *ret = NULL;
+
+ if (!v8context) {
+ msSetError(MS_V8ERR, "V8 Persistent Context is not created.", "msV8ReportException()");
+ return NULL;
+ }
+
+ Isolate::Scope isolate_scope(v8context->isolate);
+ HandleScope handle_scope(v8context->isolate);
+
+ /* execution context */
+ Local<Context> context = Local<Context>::New(v8context->isolate, v8context->context);
+ Context::Scope context_scope(context);
+ Handle<Object> global = context->Global();
+
+ Shape *shape_ = new Shape(shape);
+ shape_->setLayer(layer); // hack to set the attribute names, should change in future.
+ shape_->disableMemoryHandler(); /* the internal object should not be freed by the v8 GC */
+ Handle<Value> ext = External::New(shape_);
+ global->Set(String::New("shape"),
+ Shape::Constructor()->NewInstance(1, &ext));
+
+ msV8ExecuteScript(filename);
+ Handle<Value> value = global->Get(String::New("styleitem"));
+ if (value->IsUndefined()) {
+ msDebug("msV8GetFeatureStyle: Function 'styleitem' is missing.\n");
+ return ret;
+ }
+ Handle<Function> func = Handle<Function>::Cast(value);
+ Handle<Value> result = func->Call(global, 0, 0);
+ if (result.IsEmpty() && try_catch.HasCaught()) {
+ msV8ReportException(&try_catch);
+ }
+
+ if (!result.IsEmpty() && !result->IsUndefined()) {
+ String::AsciiValue ascii(result);
+ ret = msStrdup(*ascii);
+ }
+
+ return ret;
+}
+
+/* for geomtransform, we don't have the mapObj */
+shapeObj *msV8TransformShape(shapeObj *shape, const char* filename)
+{
+ TryCatch try_catch;
+ Isolate *isolate = Isolate::GetCurrent();
+ V8Context *v8context = (V8Context*)isolate->GetData();
+
+ HandleScope handle_scope(v8context->isolate);
+
+ /* execution context */
+ Local<Context> context = Local<Context>::New(v8context->isolate, v8context->context);
+ Context::Scope context_scope(context);
+ Handle<Object> global = context->Global();
+
+ Shape* shape_ = new Shape(shape);
+ shape_->setLayer(v8context->layer);
+ shape_->disableMemoryHandler();
+ Handle<Value> ext = External::New(shape_);
+ global->Set(String::New("shape"),
+ Shape::Constructor()->NewInstance(1, &ext));
+
+ msV8ExecuteScript(filename);
+ Handle<Value> value = global->Get(String::New("geomtransform"));
+ if (value->IsUndefined()) {
+ msDebug("msV8TransformShape: Function 'geomtransform' is missing.\n");
+ return NULL;
+ }
+ Handle<Function> func = Handle<Function>::Cast(value);
+ Handle<Value> result = func->Call(global, 0, 0);
+ if (result.IsEmpty() && try_catch.HasCaught()) {
+ msV8ReportException(&try_catch);
+ }
+
+ if (!result.IsEmpty() && result->IsObject()) {
+ Handle<Object> obj = result->ToObject();
+ if (obj->GetConstructorName()->Equals(String::New("shapeObj"))) {
+ Shape* new_shape = ObjectWrap::Unwrap<Shape>(result->ToObject());
+ if (shape == new_shape->get()) {
+ shapeObj *new_shape_ = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
+ msInitShape(new_shape_);
+ msCopyShape(shape, new_shape_);
+ return new_shape_;
+ }
+ else {
+ new_shape->disableMemoryHandler();
+ return new_shape->get();
+ }
+ }
+ }
+
+ return NULL;
+}
+
+#endif /* USE_V8_MAPSCRIPT */
diff --git a/mapwcs.c b/mapwcs.c
index 2edeab6..3d5180e 100644
--- a/mapwcs.c
+++ b/mapwcs.c
@@ -138,7 +138,6 @@ int msWCSException(mapObj *map, const char *code, const char *locator,
const char *version )
{
char *pszEncodedVal = NULL;
- const char *encoding;
char version_string[OWS_VERSION_MAXLEN];
if( version == NULL )
@@ -152,16 +151,12 @@ int msWCSException(mapObj *map, const char *code, const char *locator,
if( msOWSParseVersionString(version) >= OWS_1_1_0 )
return msWCSException11( map, code, locator, msOWSGetVersionString(msOWSParseVersionString(version), version_string) );
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=UTF-8");
msIO_sendHeaders();
/* msIO_printf("Content-Type: text/xml%c%c",10,10); */
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), NULL, "wcs_encoding", OWS_NOERR, "<?xml version='1.0' encoding=\"%s\" ?>\n", "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
msIO_printf("<ServiceExceptionReport version=\"1.2.0\"\n");
msIO_printf("xmlns=\"http://www.opengis.net/ogc\" ");
@@ -920,9 +915,6 @@ static int msWCSGetCapabilities(mapObj *map, wcsParamsObj *params, cgiRequestObj
int wcsSupportedVersions[] = {OWS_1_1_2, OWS_1_1_1, OWS_1_1_0, OWS_1_0_0};
int wcsNumSupportedVersions = 4;
const char *updatesequence=NULL;
- const char *encoding;
-
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
/* check version is valid */
tmpInt = msOWSParseVersionString(params->version);
@@ -973,10 +965,7 @@ static int msWCSGetCapabilities(mapObj *map, wcsParamsObj *params, cgiRequestObj
strcasecmp(params->section, "/WCS_Capabilities/Capability") != 0 &&
strcasecmp(params->section, "/WCS_Capabilities/ContentMetadata") != 0 &&
strcasecmp(params->section, "/") != 0) {
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=UTF-8");
msIO_sendHeaders();
msSetError( MS_WCSERR,
"Invalid SECTION parameter \"%s\"",
@@ -986,10 +975,7 @@ static int msWCSGetCapabilities(mapObj *map, wcsParamsObj *params, cgiRequestObj
}
else {
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
/* print common capability elements */
@@ -998,7 +984,7 @@ static int msWCSGetCapabilities(mapObj *map, wcsParamsObj *params, cgiRequestObj
if (!updatesequence)
updatesequence = "0";
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), NULL, "wcs_encoding", OWS_NOERR, "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n", "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
if(!params->section || (params->section && strcasecmp(params->section, "/") == 0)) msIO_printf("<WCS_Capabilities\n"
" version=\"%s\" \n"
@@ -1313,11 +1299,9 @@ static int msWCSDescribeCoverage(mapObj *map, wcsParamsObj *params, owsRequestOb
const char *updatesequence=NULL;
char **coverages=NULL;
int numcoverages=0;
- const char *encoding;
char *coverageName=NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
/* -------------------------------------------------------------------- */
/* 1.1.x is sufficiently different we have a whole case for */
/* it. The remainder of this function is for 1.0.0. */
@@ -1360,14 +1344,11 @@ this request. Check wcs/ows_enable_request settings.", "msWCSDescribeCoverage()"
updatesequence = "0";
/* printf("Content-Type: application/vnd.ogc.se_xml%c%c",10,10); */
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
/* print common capability elements */
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), NULL, "wcs_encoding", OWS_NOERR, "<?xml version='1.0' encoding=\"%s\" ?>\n", "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
/* start the DescribeCoverage section */
msIO_printf("<CoverageDescription\n"
@@ -1641,8 +1622,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
char *map_original_srs = msGetProjectionString(&(map->projection));
if (msLoadProjectionString(&(lp->projection), map_original_srs) != 0) {
msSetError( MS_WCSERR, "Error when setting map projection to a layer with no projection", "msWCSGetCoverage()" );
+ free(map_original_srs);
return msWCSException(map, NULL, NULL, params->version);
}
+ free(map_original_srs);
}
/* we need the coverage metadata, since things like numbands may not be available otherwise */
@@ -1734,7 +1717,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
}
/* finally set the filter */
- freeExpression(&tlp->filter);
+ msFreeExpression(&tlp->filter);
msLayerSetTimeFilter(tlp, params->time, value);
}
@@ -1927,17 +1910,6 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
msSetOutputFormatOption(map->outputformat, "BAND_COUNT", numbands);
free( bandlist );
- /* create the image object */
- if(!map->outputformat) {
- msSetError(MS_WCSERR, "The map outputformat is missing!", "msWCSGetCoverage()");
- return msWCSException(map, NULL, NULL, params->version );
- } else if( MS_RENDERER_RAWDATA(map->outputformat) || MS_RENDERER_PLUGIN(map->outputformat) ) {
- image = msImageCreate(map->width, map->height, map->outputformat, map->web.imagepath, map->web.imageurl, map->resolution, map->defresolution, NULL);
- } else {
- msSetError(MS_WCSERR, "Map outputformat not supported for WCS!", "msWCSGetCoverage()");
- return msWCSException(map, NULL, NULL, params->version );
- }
-
if(lp->mask) {
int maskLayerIdx = msGetLayerIndex(map,lp->mask);
layerObj *maskLayer;
@@ -1945,7 +1917,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
if(maskLayerIdx == -1) {
msSetError(MS_MISCERR, "Layer (%s) references unknown mask layer (%s)", "msDrawLayer()",
lp->name,lp->mask);
- return (MS_FAILURE);
+ return msWCSException(map, NULL, NULL, params->version );
}
maskLayer = GET_LAYER(map, maskLayerIdx);
if(!maskLayer->maskimage) {
@@ -1955,11 +1927,12 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
altFormat = msSelectOutputFormat(map, "png24");
msInitializeRendererVTable(altFormat);
/* TODO: check the png24 format hasn't been tampered with, i.e. it's agg */
- maskLayer->maskimage= msImageCreate(image->width, image->height,altFormat,
- image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
+ maskLayer->maskimage= msImageCreate(map->width, map->height, altFormat,
+ map->web.imagepath, map->web.imageurl, map->resolution, map->defresolution, NULL);
if (!maskLayer->maskimage) {
msSetError(MS_MISCERR, "Unable to initialize mask image.", "msDrawLayer()");
- return (MS_FAILURE);
+ msFree(origImageType);
+ return msWCSException(map, NULL, NULL, params->version );
}
/*
@@ -1977,7 +1950,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
maskLayer->status = origstatus;
maskLayer->labelcache = origlabelcache;
if(retcode != MS_SUCCESS) {
- return MS_FAILURE;
+ /* set the imagetype from the original outputformat back (it was removed by msSelectOutputFormat() */
+ msFree(map->imagetype);
+ map->imagetype = origImageType;
+ return msWCSException(map, NULL, NULL, params->version );
}
/*
* hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
@@ -2000,18 +1976,33 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
}
}
+
+ /* create the image object */
+ if(!map->outputformat) {
+ msSetError(MS_WCSERR, "The map outputformat is missing!", "msWCSGetCoverage()");
+ return msWCSException(map, NULL, NULL, params->version );
+ } else if( MS_RENDERER_RAWDATA(map->outputformat) || MS_RENDERER_PLUGIN(map->outputformat) ) {
+ image = msImageCreate(map->width, map->height, map->outputformat, map->web.imagepath, map->web.imageurl, map->resolution, map->defresolution, NULL);
+ } else {
+ msSetError(MS_WCSERR, "Map outputformat not supported for WCS!", "msWCSGetCoverage()");
+ return msWCSException(map, NULL, NULL, params->version );
+ }
if( image == NULL )
return msWCSException(map, NULL, NULL, params->version );
if( MS_RENDERER_RAWDATA(map->outputformat) ) {
status = msDrawRasterLayerLow( map, lp, image, NULL );
} else {
- MS_IMAGE_RENDERER(image)->getRasterBufferHandle(image,&rb);
+ status = MS_IMAGE_RENDERER(image)->getRasterBufferHandle(image,&rb);
+ if(UNLIKELY(status == MS_FAILURE)) {
+ return MS_FAILURE;
+ }
/* Actually produce the "grid". */
status = msDrawRasterLayerLow( map, lp, image, &rb );
}
if( status != MS_SUCCESS ) {
+ msFreeImage(image);
return msWCSException(map, NULL, NULL, params->version );
}
@@ -2122,7 +2113,7 @@ int msWCSDispatch(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_reques
wcs20ParamsObjPtr params_tmp = msWCSCreateParamsObj20();
status = msWCSParseRequest20(map, request, ows_request, params_tmp);
if (status == MS_FAILURE) {
- msWCSFreeParamsObj20(params);
+ msWCSFreeParamsObj20(params_tmp);
return msWCSException(map, "InvalidParameterValue",
"request", "2.0.1");
}
@@ -2203,6 +2194,7 @@ int msWCSDispatch(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_reques
"request", "2.0");
}
+ retVal = MS_FAILURE;
if (operation == MS_WCS_GET_CAPABILITIES) {
retVal = msWCSGetCapabilities(map, params, request, ows_request);
} else if (operation == MS_WCS_DESCRIBE_COVERAGE) {
diff --git a/mapwcs.h b/mapwcs.h
index 4dcb53c..c031212 100644
--- a/mapwcs.h
+++ b/mapwcs.h
@@ -157,6 +157,7 @@ typedef struct {
char *name; /* name of the axis */
int size; /* pixelsize of the axis */
double resolution; /* resolution of the axis */
+ double scale; /* scale of the axis */
char *resolutionUOM; /* resolution units of measure */
wcs20SubsetObjPtr subset;
} wcs20AxisObj;
@@ -173,6 +174,9 @@ typedef struct {
long width, height; /* image dimensions */
double resolutionX; /* image resolution in X axis */
double resolutionY; /* image resolution in Y axis */
+ double scale; /* Overall scale */
+ double scaleX; /* X-Axis specific scale */
+ double scaleY; /* Y-Axis specific scale */
char *resolutionUnits; /* Units of Measure for resolution */
char *format; /* requested output format */
int multipart; /* flag for multipart GML+image */
@@ -182,7 +186,8 @@ typedef struct {
rectObj bbox; /* determined Bounding Box */
int numaxes; /* number of axes */
wcs20AxisObjPtr *axes; /* list of axes, NULL if none*/
- char **range_subset;
+ char **range_subset; /* list of bands selected */
+ char **format_options; /* list of format specific options, NULL terminated */
} wcs20ParamsObj;
typedef wcs20ParamsObj * wcs20ParamsObjPtr;
@@ -229,10 +234,10 @@ typedef wcs20coverageMetadataObj * wcs20coverageMetadataObjPtr;
#define MS_WCS_20_PROFILE_GML_MULTIPART "http://www.opengis.net/spec/GMLCOV/1.0/conf/multipart"
#define MS_WCS_20_PROFILE_GML_SPECIAL "http://www.opengis.net/spec/GMLCOV/1.0/conf/special-format"
#define MS_WCS_20_PROFILE_GML_GEOTIFF "http://www.opengis.net/spec/GMLCOV_geotiff-coverages/1.0/conf/geotiff-coverage"
-#define MS_WCS_20_PROFILE_GEOTIFF "http://www.opengis.net/spec/WCS_geotiff-coverages/1.0/conf/geotiff-coverage"
-#define MS_WCS_20_PROFILE_CRS "http://www.opengis.net/spec/WCS_service-model_crs-predefined/1.0/conf/crs-predefined"
-#define MS_WCS_20_PROFILE_SCALING "http://www.opengis.net/spec/WCS_service-model_scaling+interpolation/1.0/conf/scaling+interpolation"
-#define MS_WCS_20_PROFILE_RANGESUBSET "http://www.opengis.net/spec/WCS_service-model_band-subsetting/1.0/conf/band-subsetting"
+#define MS_WCS_20_PROFILE_CRS "http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs"
+#define MS_WCS_20_PROFILE_SCALING "http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/conf/scaling"
+#define MS_WCS_20_PROFILE_RANGESUBSET "http://www.opengis.net/spec/WCS_service-extension_range-subsetting/1.0/conf/record-subsetting"
+#define MS_WCS_20_PROFILE_INTERPOLATION "http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation"
/* -------------------------------------------------------------------- */
/* WCS 2.0 function prototypes. */
diff --git a/mapwcs11.c b/mapwcs11.c
index e49af52..0385f52 100644
--- a/mapwcs11.c
+++ b/mapwcs11.c
@@ -57,14 +57,12 @@
**
*/
-int msWCSException11(mapObj *map, const char *locator,
- const char *exceptionCode, const char *version)
+int msWCSException11(mapObj *map, const char *exceptionCode,
+ const char *locator, const char *version)
{
int size = 0;
char *errorString = NULL;
- char *errorMessage = NULL;
char *schemasLocation = NULL;
- const char * encoding;
xmlDocPtr psDoc = NULL;
xmlNodePtr psRootNode = NULL;
@@ -73,32 +71,26 @@ int msWCSException11(mapObj *map, const char *locator,
psNsOws = xmlNewNs(NULL, BAD_CAST "http://www.opengis.net/ows/1.1", BAD_CAST "ows");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
errorString = msGetErrorString("\n");
- errorMessage = msEncodeHTMLEntities(errorString);
schemasLocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
psDoc = xmlNewDoc(BAD_CAST "1.0");
- psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_1_0, schemasLocation, version, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorMessage);
+ psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_1_0, schemasLocation, version, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorString);
xmlDocSetRootElement(psDoc, psRootNode);
xmlNewNs(psRootNode, BAD_CAST "http://www.opengis.net/ows/1.1", BAD_CAST "ows");
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
msIO_printf("%s", buffer);
/*free buffer and the document */
free(errorString);
- free(errorMessage);
free(schemasLocation);
xmlFree(buffer);
xmlFreeDoc(psDoc);
@@ -156,9 +148,6 @@ static char *msWCSGetFormatsList11( mapObj *map, layerObj *layer )
for( i = 0; i < map->numoutputformats; i++ ) {
switch( map->outputformatlist[i]->renderer ) {
/* seeminly normal raster format */
-#ifdef USE_GD
- case MS_RENDER_WITH_GD:
-#endif
case MS_RENDER_WITH_AGG:
case MS_RENDER_WITH_RAWDATA:
tokens[numtokens++] = msStrdup(map->outputformatlist[i]->name);
@@ -376,7 +365,6 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
xmlNodePtr psRootNode, psMainNode, psNode;
char *identifier_list = NULL, *format_list = NULL;
const char *updatesequence=NULL;
- const char *encoding;
xmlNsPtr psOwsNs, psXLinkNs;
char *schemaLocation = NULL;
char *xsi_schemaLocation = NULL;
@@ -393,17 +381,16 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
/* -------------------------------------------------------------------- */
updatesequence = msOWSLookupMetadata(&(map->web.metadata), "CO", "updatesequence");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
if (params->updatesequence != NULL) {
i = msOWSNegotiateUpdateSequence(params->updatesequence, updatesequence);
if (i == 0) { /* current */
msSetError(MS_WCSERR, "UPDATESEQUENCE parameter (%s) is equal to server (%s)", "msWCSGetCapabilities11()", params->updatesequence, updatesequence);
- return msWCSException11(map, "updatesequence", "CurrentUpdateSequence", params->version);
+ return msWCSException11(map, "CurrentUpdateSequence", "updatesequence", params->version);
}
if (i > 0) { /* invalid */
msSetError(MS_WCSERR, "UPDATESEQUENCE parameter (%s) is higher than server (%s)", "msWCSGetCapabilities11()", params->updatesequence, updatesequence);
- return msWCSException11(map, "updatesequence", "InvalidUpdateSequence", params->version);
+ return msWCSException11(map, "InvalidUpdateSequence", "updatesequence", params->version);
}
}
@@ -472,7 +459,7 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
|| strstr(params->section,"All") != NULL
|| strstr(params->section,"ServiceIdentification") != NULL ) {
xmlAddChild(psRootNode, msOWSCommonServiceIdentification(
- psOwsNs, map, "OGC WCS", params->version, "CO"));
+ psOwsNs, map, "OGC WCS", "2.0.1,1.1.1,1.0.0", "CO", NULL));
}
/*service provider*/
@@ -480,7 +467,7 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
|| strstr(params->section,"All") != NULL
|| strstr(params->section,"ServiceProvider") != NULL ) {
xmlAddChild(psRootNode, msOWSCommonServiceProvider(
- psOwsNs, psXLinkNs, map, "CO"));
+ psOwsNs, psXLinkNs, map, "CO", NULL));
}
/* -------------------------------------------------------------------- */
@@ -490,7 +477,7 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
if ((script_url=msOWSGetOnlineResource(map, "CO", "onlineresource", req)) == NULL
|| (script_url_encoded = msEncodeHTMLEntities(script_url)) == NULL) {
msSetError(MS_WCSERR, "Server URL not found", "msWCSGetCapabilities11()");
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
free( script_url );
@@ -587,7 +574,10 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
status = msWCSGetCapabilities11_CoverageSummary(
map, params, req, psDoc, psMainNode, layer );
- if(status != MS_SUCCESS) return MS_FAILURE;
+ if(status != MS_SUCCESS) {
+ msFree(identifier_list);
+ return MS_FAILURE;
+ }
}
}
}
@@ -599,15 +589,12 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
if( msIO_needBinaryStdout() == MS_FAILURE )
return MS_FAILURE;
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
msIO_contextWrite(context, buffer, size);
xmlFree(buffer);
@@ -898,12 +885,9 @@ int msWCSDescribeCoverage11(mapObj *map, wcsParamsObj *params, owsRequestObj *ow
xmlNsPtr psOwsNs;
char *schemaLocation = NULL;
char *xsi_schemaLocation = NULL;
- const char *encoding;
int i,j;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
-
/* -------------------------------------------------------------------- */
/* We will actually get the coverages list as a single item in */
/* a string list with that item having the comma delimited */
@@ -928,7 +912,7 @@ int msWCSDescribeCoverage11(mapObj *map, wcsParamsObj *params, owsRequestObj *ow
msSetError( MS_WCSERR,
"COVERAGE %s cannot be opened / does not exist",
"msWCSDescribeCoverage()", params->coverages[j]);
- return msWCSException11(map, "coverage", "CoverageNotDefined", params->version);
+ return msWCSException11(map, "CoverageNotDefined", "coverage", params->version);
}
}
}
@@ -998,15 +982,12 @@ int msWCSDescribeCoverage11(mapObj *map, wcsParamsObj *params, owsRequestObj *ow
if( msIO_needBinaryStdout() == MS_FAILURE )
return MS_FAILURE;
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
msIO_contextWrite(context, buffer, size);
xmlFree(buffer);
}
@@ -1077,8 +1058,11 @@ int msWCSGetCoverageBands11( mapObj *map, cgiRequestObj *request,
/* -------------------------------------------------------------------- */
value = rangesubset + strlen(field_id);
- if( strcasecmp(rangesubset,field_id) == 0 )
+ if( strcasecmp(rangesubset,field_id) == 0 ) {
+ free(rangesubset);
+ free(field_id);
return MS_SUCCESS; /* we only got field ... default options */
+ }
if( strlen(rangesubset) <= strlen(field_id)+1
|| strncasecmp(rangesubset,field_id,strlen(field_id)) != 0
@@ -1087,7 +1071,9 @@ int msWCSGetCoverageBands11( mapObj *map, cgiRequestObj *request,
"RangeSubset field name malformed, expected '%s', got RangeSubset=%s",
"msWCSGetCoverageBands11()",
field_id, rangesubset );
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ free(rangesubset);
+ free(field_id);
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
free( field_id );
@@ -1112,8 +1098,10 @@ int msWCSGetCoverageBands11( mapObj *map, cgiRequestObj *request,
/* -------------------------------------------------------------------- */
/* Parse out the axis name, and verify. */
/* -------------------------------------------------------------------- */
- if( *value != '[' )
+ if( *value != '[' ) {
+ free(rangesubset);
return MS_SUCCESS;
+ }
value++;
@@ -1124,7 +1112,8 @@ int msWCSGetCoverageBands11( mapObj *map, cgiRequestObj *request,
"RangeSubset axis name malformed, expected '%s', got RangeSubset=%s",
"msWCSGetCoverageBands11()",
axis_id, rangesubset );
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ free(rangesubset);
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
/* -------------------------------------------------------------------- */
@@ -1141,7 +1130,7 @@ int msWCSGetCoverageBands11( mapObj *map, cgiRequestObj *request,
break;
}
}
-
+ free(rangesubset);
return MS_SUCCESS;
}
#endif
@@ -1160,11 +1149,8 @@ int msWCSReturnCoverage11( wcsParamsObj *params, mapObj *map,
int status, i;
char *filename = NULL;
char *base_dir = NULL;
- const char *encoding;
const char *fo_filename;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
-
fo_filename = msGetOutputFormatOption( image->format, "FILENAME", NULL );
/* -------------------------------------------------------------------- */
@@ -1183,7 +1169,7 @@ int msWCSReturnCoverage11( wcsParamsObj *params, mapObj *map,
"Failed to find %s driver.",
"msWCSReturnCoverage11()",
image->format->driver+5 );
- return msWCSException11(map, "mapserv", "NoApplicableCode",
+ return msWCSException11(map, "NoApplicableCode", "mapserv",
params->version);
}
@@ -1208,7 +1194,7 @@ int msWCSReturnCoverage11( wcsParamsObj *params, mapObj *map,
msFree(filename);
msSetError(MS_MISCERR, "msSaveImage() failed",
"msWCSReturnCoverage11()");
- return msWCSException11(map, "mapserv", "NoApplicableCode",
+ return msWCSException11(map, "NoApplicableCode", "mapserv",
params->version);
}
}
@@ -1218,40 +1204,20 @@ int msWCSReturnCoverage11( wcsParamsObj *params, mapObj *map,
/* -------------------------------------------------------------------- */
/* Output stock header. */
/* -------------------------------------------------------------------- */
- if (encoding) {
- msIO_setHeader("Content-Type","multipart/mixed; boundary=wcs");
- msIO_sendHeaders();
- msIO_fprintf(
- stdout,
- "\r\n--wcs\r\n"
- "Content-Type: text/xml; charset=%s\r\n"
- "Content-ID: wcs.xml\r\n\r\n"
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
- "<Coverages\n"
- " xmlns=\"http://www.opengis.net/wcs/1.1\"\n"
- " xmlns:ows=\"http://www.opengis.net/ows/1.1\"\n"
- " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
- " xsi:schemaLocation=\"http://www.opengis.net/ows/1.1 ../owsCoverages.xsd\">\n"
- " <Coverage>\n",
- encoding);
- } else {
- msIO_setHeader("Content-Type","multipart/mixed; boundary=wcs");
- msIO_sendHeaders();
- msIO_fprintf(
- stdout,
- "\r\n--wcs\r\n"
- "Content-Type: text/xml\r\n"
- "Content-ID: wcs.xml\r\n\r\n"
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
- "<Coverages\n"
- " xmlns=\"http://www.opengis.net/wcs/1.1\"\n"
- " xmlns:ows=\"http://www.opengis.net/ows/1.1\"\n"
- " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
- " xsi:schemaLocation=\"http://www.opengis.net/ows/1.1 ../owsCoverages.xsd\">\n"
- " <Coverage>\n");
- }
+ msIO_setHeader("Content-Type","multipart/mixed; boundary=wcs");
+ msIO_sendHeaders();
+ msIO_printf(
+ "\r\n--wcs\r\n"
+ "Content-Type: text/xml; charset=UTF-8\r\n"
+ "Content-ID: wcs.xml\r\n\r\n"
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<Coverages\n"
+ " xmlns=\"http://www.opengis.net/wcs/1.1\"\n"
+ " xmlns:ows=\"http://www.opengis.net/ows/1.1\"\n"
+ " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n"
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+ " xsi:schemaLocation=\"http://www.opengis.net/ows/1.1 ../owsCoverages.xsd\">\n"
+ " <Coverage>\n");
/* -------------------------------------------------------------------- */
/* If we weren't able to write data under /vsimem, then we just */
@@ -1276,7 +1242,7 @@ int msWCSReturnCoverage11( wcsParamsObj *params, mapObj *map,
status = msSaveImage(map, image, NULL);
if( status != MS_SUCCESS ) {
msSetError( MS_MISCERR, "msSaveImage() failed", "msWCSReturnCoverage11()");
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
msIO_fprintf( stdout, "\r\n--wcs--\r\n" );
@@ -1394,8 +1360,8 @@ int msWCSDescribeCoverage11(mapObj *map, wcsParamsObj *params,
{
msSetError( MS_WCSERR,
"WCS 1.1 request made, but mapserver requires libxml2 for WCS 1.1 services and this is not configured.",
- "msWCSDescribeCoverage11()", "NoApplicableCode" );
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ "msWCSDescribeCoverage11()" );
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
/* ==================================================================== */
@@ -1405,15 +1371,15 @@ int msWCSGetCapabilities11(mapObj *map, wcsParamsObj *params,
{
msSetError( MS_WCSERR,
"WCS 1.1 request made, but mapserver requires libxml2 for WCS 1.1 services and this is not configured.",
- "msWCSGetCapabilities11()", "NoApplicableCode" );
+ "msWCSGetCapabilities11()" );
- return msWCSException11(map, "mapserv", "NoApplicableCode", params->version);
+ return msWCSException11(map, "NoApplicableCode", "mapserv", params->version);
}
-int msWCSException11(mapObj *map, const char *locator, const char *exceptionCode, const char *version)
+int msWCSException11(mapObj *map, const char *exceptionCode, const char *locator, const char *version)
{
/* fallback to reporting using 1.0 style exceptions. */
- return msWCSException( map, locator, exceptionCode, "1.0.0" );
+ return msWCSException( map, exceptionCode, locator, "1.0.0" );
}
#endif /* defined(USE_WCS_SVR) && !defined(USE_LIBXML2) */
diff --git a/mapwcs20.c b/mapwcs20.c
index 3d2d110..69997cf 100644
--- a/mapwcs20.c
+++ b/mapwcs20.c
@@ -198,6 +198,7 @@ static wcs20AxisObjPtr msWCSCreateAxisObj20()
axis->name = NULL;
axis->size = 0;
axis->resolution = MS_WCS20_UNBOUNDED;
+ axis->scale = MS_WCS20_UNBOUNDED;
axis->resolutionUOM = NULL;
axis->subset = NULL;
@@ -280,6 +281,9 @@ wcs20ParamsObjPtr msWCSCreateParamsObj20()
params->height = 0;
params->resolutionX = MS_WCS20_UNBOUNDED;
params->resolutionY = MS_WCS20_UNBOUNDED;
+ params->scale = MS_WCS20_UNBOUNDED;
+ params->scaleX = MS_WCS20_UNBOUNDED;
+ params->scaleY = MS_WCS20_UNBOUNDED;
params->resolutionUnits = NULL;
params->numaxes = 0;
params->axes = NULL;
@@ -291,6 +295,7 @@ wcs20ParamsObjPtr msWCSCreateParamsObj20()
params->bbox.minx = params->bbox.miny = -DBL_MAX;
params->bbox.maxx = params->bbox.maxy = DBL_MAX;
params->range_subset = NULL;
+ params->format_options = NULL;
return params;
}
@@ -576,6 +581,165 @@ static int msWCSParseResolutionString20(char *string,
}
/************************************************************************/
+/* msWCSParseScaleString20() */
+/* */
+/* Parses a scale string and returns the axis, the and the value. */
+/* Subset string: axis ( value ) */
+/************************************************************************/
+
+static int msWCSParseScaleString20(char *string,
+ char *outAxis, size_t axisStringLen, double *outScale)
+{
+ char *number = NULL;
+ char *check = NULL;
+
+ /* find brackets */
+ number = strchr(string, '(');
+
+ if(NULL == number) {
+ msSetError(MS_WCSERR, "Invalid resolution parameter value : %s.",
+ "msWCSParseScaleString20()", string);
+ return MS_FAILURE;
+ }
+
+ /* cut trailing ')' */
+ check = strchr(string, ')');
+ if(NULL == check || check < number) {
+ msSetError(MS_WCSERR, "Invalid scale parameter value.",
+ "msWCSParseScaleString20()");
+ return MS_FAILURE;
+ }
+
+ *number = '\0';
+ ++number;
+ *check = '\0';
+
+ strlcpy(outAxis, string, axisStringLen);
+
+ if(msStringParseDouble(number, outScale) != MS_SUCCESS || *outScale <= 0.0) {
+ *outScale = MS_WCS20_UNBOUNDED;
+ msSetError(MS_WCSERR, "Invalid scale parameter value : %s.",
+ "msWCSParseScaleString20()", number);
+ return MS_FAILURE;
+ }
+
+ return MS_SUCCESS;
+}
+
+/************************************************************************/
+/* msWCSParseResolutionString20() */
+/* */
+/* Parses a resolution string and returns the axis, the units of */
+/* measure and the resolution value. */
+/* Subset string: axis ( value ) */
+/************************************************************************/
+
+static int msWCSParseScaleExtentString20(char *string, char *outAxis,
+ size_t axisStringLen,
+ int *outMin, int *outMax)
+{
+ char *number = NULL;
+ char *check = NULL;
+ char *colon = NULL;
+
+ /* find brackets */
+ number = strchr(string, '(');
+
+ if(NULL == number) {
+ msSetError(MS_WCSERR, "Invalid extent parameter value : %s.",
+ "msWCSParseScaleExtentString20()", string);
+ return MS_FAILURE;
+ }
+
+ /* find colon */
+ colon = strchr(string, ':');
+
+ if(NULL == colon || colon < number) {
+ msSetError(MS_WCSERR, "Invalid extent parameter value : %s.",
+ "msWCSParseScaleExtentString20()", string);
+ return MS_FAILURE;
+ }
+
+ /* cut trailing ')' */
+ check = strchr(string, ')');
+
+ if(NULL == check || check < colon) {
+ msSetError(MS_WCSERR, "Invalid extent parameter value.",
+ "msWCSParseScaleExtentString20()");
+ return MS_FAILURE;
+ }
+
+ *number = '\0';
+ ++number;
+ *colon = '\0';
+ ++colon;
+ *check = '\0';
+
+ strlcpy(outAxis, string, axisStringLen);
+
+ if(msStringParseInteger(number, outMin) != MS_SUCCESS) {
+ *outMin = 0;
+ msSetError(MS_WCSERR, "Invalid min parameter value : %s.",
+ "msWCSParseScaleExtentString20()", number);
+ return MS_FAILURE;
+ }
+ else if(msStringParseInteger(colon, outMax) != MS_SUCCESS) {
+ *outMax = 0;
+ msSetError(MS_WCSERR, "Invalid resolution parameter value : %s.",
+ "msWCSParseScaleExtentString20()", colon);
+ return MS_FAILURE;
+ }
+
+ if (*outMin > *outMax) {
+ msSetError(MS_WCSERR, "Invalid extent: lower part is higher than upper part.",
+ "msWCSParseScaleExtentString20()");
+ return MS_FAILURE;
+ }
+
+ return MS_SUCCESS;
+}
+
+/*
+ Utility function to get the first child of a node with a given node name
+ */
+
+xmlNodePtr msLibXml2GetFirstChild(xmlNodePtr parent, const char *name) {
+ xmlNodePtr node;
+ if (!parent || !name) {
+ return NULL;
+ }
+
+ XML_FOREACH_CHILD(parent, node) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(node);
+ if (EQUAL((char *)node->name, name)) {
+ return node;
+ }
+ }
+ return NULL;
+}
+
+
+/*
+ Utility function to get the first child of a node with a given node name and
+ namespace.
+ */
+
+xmlNodePtr msLibXml2GetFirstChildNs(xmlNodePtr parent, const char *name, xmlNsPtr ns) {
+ xmlNodePtr node;
+ if (!parent || !name || !ns) {
+ return NULL;
+ }
+
+ XML_FOREACH_CHILD(parent, node) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(node);
+ if (EQUAL((char *)node->name, name) && ns == node->ns) {
+ return node;
+ }
+ }
+ return NULL;
+}
+
+/************************************************************************/
/* msWCSParseRequest20_XMLGetCapabilities() */
/* */
/* Parses a DOM element, representing a GetCapabilities-request */
@@ -690,6 +854,7 @@ static int msWCSParseRequest20_XMLGetCoverage(
params->ids = CSLAddString(params->ids, (char *)id);
xmlFree(id);
} else if (EQUAL((char *) child->name, "Format")) {
+ msFree(params->format);
params->format = (char *)xmlNodeGetContent(child);
} else if (EQUAL((char *) child->name, "Mediatype")) {
char *content = (char *)xmlNodeGetContent(child);
@@ -838,10 +1003,13 @@ static int msWCSParseRequest20_XMLGetCoverage(
}
xmlFree(content);
} else if(EQUAL((char *) child->name, "Interpolation")) {
+ /* Deprecated, use wcs:Extension/int:Interpolation/int:globalInterpolation */
+ msFree(params->interpolation);
params->interpolation = (char *) xmlNodeGetContent(child);
} else if(EQUAL((char *) child->name, "OutputCRS")) {
params->outputcrs = (char *) xmlNodeGetContent(child);
} else if(EQUAL((char *) child->name, "rangeSubset")) {
+ /* Deprecated, use wcs:Extension/rsub:RangeSubset */
xmlNodePtr bandNode = NULL;
XML_FOREACH_CHILD(child, bandNode) {
char *content = NULL;
@@ -853,7 +1021,319 @@ static int msWCSParseRequest20_XMLGetCoverage(
xmlFree(content);
}
} else if (EQUAL((char *)child->name, "Extension")) {
- continue;
+ xmlNodePtr extensionNode = NULL;
+ XML_FOREACH_CHILD(child, extensionNode) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(extensionNode);
+
+ if (EQUAL((char *) extensionNode->name, "ScaleByFactor")) {
+ xmlNodePtr scaleFactorNode = extensionNode->children;
+ char *content;
+ if (!scaleFactorNode || !EQUAL((char *)scaleFactorNode->name, "scaleFactor")) {
+ msSetError(MS_WCSERR, "Missing 'scaleFactor' node.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ content = (char *)xmlNodeGetContent(scaleFactorNode);
+ if (msStringParseDouble(content, &(params->scale)) != MS_SUCCESS
+ || params->scale < 0.0) {
+ msSetError(MS_WCSERR, "Invalid scaleFactor '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", content);
+ xmlFree(content);
+ return MS_FAILURE;
+ }
+ xmlFree(content);
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "ScaleAxesByFactor")) {
+ xmlNodePtr scaleAxisNode, axisNode, scaleFactorNode;
+ char *axisName, *content;
+ wcs20AxisObjPtr axis;
+
+ XML_FOREACH_CHILD(extensionNode, scaleAxisNode) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(scaleAxisNode);
+
+ if (!EQUAL((char *)scaleAxisNode->name, "ScaleAxis")) {
+ msSetError(MS_WCSERR, "Invalid ScaleAxesByFactor.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ /* axis */
+ if (NULL == (axisNode = msLibXml2GetFirstChild(scaleAxisNode, "axis"))) {
+ msSetError(MS_WCSERR, "Missing axis node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ axisName = (char *)xmlNodeGetContent(axisNode);
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ xmlFree(axisName);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+ xmlFree(axisName);
+
+ if (axis->scale != MS_WCS20_UNBOUNDED) {
+ msSetError(MS_WCSERR, "scaleFactor was already set for axis '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", axis->name);
+ return MS_FAILURE;
+ }
+
+ /* scaleFactor */
+ if (NULL == (scaleFactorNode = msLibXml2GetFirstChild(scaleAxisNode, "scaleFactor"))) {
+ msSetError(MS_WCSERR, "Missing scaleFactor node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ content = (char *)xmlNodeGetContent(scaleFactorNode);
+ if (msStringParseDouble(content, &(axis->scale)) != MS_SUCCESS
+ || axis->scale < 0.0) {
+ msSetError(MS_WCSERR, "Invalid scaleFactor '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", content);
+ xmlFree(content);
+ return MS_FAILURE;
+ }
+ xmlFree(content);
+ }
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "ScaleToSize")) {
+ xmlNodePtr scaleAxisNode, axisNode, targetSizeNode;
+ char *axisName, *content;
+ wcs20AxisObjPtr axis;
+
+ XML_FOREACH_CHILD(extensionNode, scaleAxisNode) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(scaleAxisNode);
+
+ if (!EQUAL((char *)scaleAxisNode->name, "targetAxisSize")) {
+ msSetError(MS_WCSERR, "Invalid ScaleToSize.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ /* axis */
+ if (NULL == (axisNode = msLibXml2GetFirstChild(scaleAxisNode, "axis"))) {
+ msSetError(MS_WCSERR, "Missing axis node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ axisName = (char *)xmlNodeGetContent(axisNode);
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ xmlFree(axisName);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+ xmlFree(axisName);
+
+ if (axis->size != 0) {
+ msSetError(MS_WCSERR, "targetSize was already set for axis '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", axis->name);
+ return MS_FAILURE;
+ }
+
+ /* targetSize */
+ if (NULL == (targetSizeNode = msLibXml2GetFirstChild(scaleAxisNode, "targetSize"))) {
+ msSetError(MS_WCSERR, "Missing targetSize node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ content = (char *)xmlNodeGetContent(targetSizeNode);
+ if (msStringParseInteger(content, &(axis->size)) != MS_SUCCESS
+ || axis->size <= 0) {
+ msSetError(MS_WCSERR, "Invalid targetSize '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", content);
+ xmlFree(content);
+ return MS_FAILURE;
+ }
+ xmlFree(content);
+ }
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "ScaleToExtent")) {
+ xmlNodePtr scaleAxisNode, axisNode, lowNode, highNode;
+ char *axisName, *content;
+ wcs20AxisObjPtr axis;
+ int low, high;
+
+ XML_FOREACH_CHILD(extensionNode, scaleAxisNode) {
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(scaleAxisNode);
+
+ if (!EQUAL((char *)scaleAxisNode->name, "TargetAxisExtent")) {
+ msSetError(MS_WCSERR, "Invalid ScaleToExtent.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ /* axis */
+ if (NULL == (axisNode = msLibXml2GetFirstChild(scaleAxisNode, "axis"))) {
+ msSetError(MS_WCSERR, "Missing axis node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ axisName = (char *)xmlNodeGetContent(axisNode);
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ xmlFree(axisName);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+ xmlFree(axisName);
+
+ if (axis->size != 0) {
+ msSetError(MS_WCSERR, "targetSize was already set for axis '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", axis->name);
+ return MS_FAILURE;
+ }
+
+ /* targetSize */
+ if (NULL == (lowNode = msLibXml2GetFirstChild(scaleAxisNode, "low"))) {
+ msSetError(MS_WCSERR, "Missing low node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ if (NULL == (highNode = msLibXml2GetFirstChild(scaleAxisNode, "high"))) {
+ msSetError(MS_WCSERR, "Missing high node",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ content = (char *)xmlNodeGetContent(lowNode);
+ if (msStringParseInteger(content, &low) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Invalid low value '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", content);
+ xmlFree(content);
+ return MS_FAILURE;
+ }
+ xmlFree(content);
+
+
+ content = (char *)xmlNodeGetContent(highNode);
+ if (msStringParseInteger(content, &high) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Invalid high value '%s'.",
+ "msWCSParseRequest20_XMLGetCoverage()", content);
+ xmlFree(content);
+ return MS_FAILURE;
+ }
+ xmlFree(content);
+
+ if (high <= low) {
+ msSetError(MS_WCSERR, "Invalid extent, high is lower than low.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ axis->size = high - low;
+ }
+ }
+
+ /* Range Subset */
+ else if(EQUAL((char *) extensionNode->name, "RangeSubset")) {
+ xmlNodePtr rangeItemNode = NULL;
+
+ XML_FOREACH_CHILD(extensionNode, rangeItemNode) {
+
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(rangeItemNode);
+
+ XML_ASSERT_NODE_NAME(rangeItemNode, "RangeItem");
+
+ if (!rangeItemNode->children) {
+ msSetError(MS_WCSERR, "Missing RangeComponent or RangeInterval.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ else if (EQUAL((char *) rangeItemNode->children->name, "RangeComponent")) {
+ char *content = (char *)xmlNodeGetContent(rangeItemNode->children);
+ params->range_subset =
+ CSLAddString(params->range_subset, content);
+ xmlFree(content);
+ }
+ else if (EQUAL((char *) rangeItemNode->children->name, "RangeInterval")) {
+ xmlNodePtr intervalNode = rangeItemNode->children;
+ char *start;
+ char *stop;
+ char *value;
+ int length;
+
+ if (!intervalNode->children || !intervalNode->children->next
+ || !EQUAL((char *) intervalNode->children->name, "startComponent")
+ || !EQUAL((char *) intervalNode->children->next->name, "endComponent")) {
+ msSetError(MS_WCSERR, "Wrong RangeInterval.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+
+ start = (char *)xmlNodeGetContent(intervalNode->children);
+ stop = (char *)xmlNodeGetContent(intervalNode->children->next);
+ length = strlen(start) + strlen(stop) + 2;
+ value = msSmallCalloc(length, sizeof(char));
+
+ snprintf(value, length, "%s:%s", start, stop);
+
+ xmlFree(start);
+ xmlFree(stop);
+
+ params->range_subset =
+ CSLAddString(params->range_subset, value);
+ msFree(value);
+ }
+ }
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "subsettingCrs")) {
+ msFree(params->subsetcrs);
+ params->subsetcrs = (char *)xmlNodeGetContent(extensionNode);
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "outputCrs")) {
+ msFree(params->outputcrs);
+ params->outputcrs = (char *)xmlNodeGetContent(extensionNode);
+ }
+
+ else if (EQUAL((char *) extensionNode->name, "Interpolation")) {
+ xmlNodePtr globalInterpolation;
+ char *content;
+ if ((globalInterpolation = extensionNode->children) == NULL
+ || !EQUAL((char *)globalInterpolation->name, "globalInterpolation")) {
+ msSetError(MS_WCSERR, "Missing 'globalInterpolation' node.",
+ "msWCSParseRequest20_XMLGetCoverage()");
+ return MS_FAILURE;
+ }
+ content = (char *)xmlNodeGetContent(globalInterpolation);
+ msFree(params->interpolation);
+ /* TODO: use URIs/URLs once they are specified */
+ params->interpolation = msStrdup(content);
+ xmlFree(content);
+ }
+
+ /* GeoTIFF parameters */
+ else if (EQUAL((char *) extensionNode->name, "parameters")
+ && extensionNode->ns
+ && EQUAL((char *)extensionNode->ns->href, "http://www.opengis.net/gmlcov/geotiff/1.0")) {
+
+ xmlNodePtr parameter;
+
+ XML_FOREACH_CHILD(extensionNode, parameter) {
+ char *content;
+ XML_LOOP_IGNORE_COMMENT_OR_TEXT(parameter);
+
+ content = (char *)xmlNodeGetContent(parameter);
+
+ params->format_options =
+ CSLAddNameValue(params->format_options, (char *)parameter->name, content);
+ xmlFree(content);
+ }
+ }
+ }
} else {
XML_UNKNOWN_NODE_ERROR(child);
}
@@ -973,6 +1453,7 @@ int msWCSParseRequest20(mapObj *map,
}
msFreeCharArray(tokens, num);
} else if (EQUAL(key, "UPDATESEQUENCE")) {
+ msFree(params->updatesequence);
params->updatesequence = msStrdup(value);
} else if (EQUAL(key, "ACCEPTFORMATS")) {
/* ignore */
@@ -987,6 +1468,7 @@ int msWCSParseRequest20(mapObj *map,
}
params->ids = CSLTokenizeString2(value, ",",0);
} else if (EQUAL(key, "FORMAT")) {
+ msFree(params->format);
params->format = msStrdup(value);
} else if (EQUAL(key, "MEDIATYPE")) {
if(EQUAL(value, "multipart/mixed") || EQUAL(value, "multipart/related")) {
@@ -998,10 +1480,127 @@ int msWCSParseRequest20(mapObj *map,
return MS_FAILURE;
}
} else if (EQUAL(key, "INTERPOLATION")) {
+ msFree(params->interpolation);
params->interpolation = msStrdup(value);
} else if (EQUAL(key, "OUTPUTCRS")) {
+ msFree(params->outputcrs);
params->outputcrs = msStrdup(value);
+ } else if (EQUAL(key, "SUBSETTINGCRS")) {
+ msFree(params->subsetcrs);
+ params->subsetcrs = msStrdup(value);
+ } else if (EQUAL(key, "SCALEFACTOR")) {
+ double scale = MS_WCS20_UNBOUNDED;
+ if (params->scale != MS_WCS20_UNBOUNDED) {
+ msSetError(MS_WCSERR, "Parameter 'SCALEFACTOR' already set.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ } else if (msStringParseDouble(value, &scale) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Could not parse parameter 'SCALEFACTOR'.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ } else if (scale <= 0.0) {
+ msSetError(MS_WCSERR, "Invalid value for 'SCALEFACTOR'.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ }
+ params->scale = scale;
+ } else if (EQUAL(key, "SCALEAXES")) {
+ wcs20AxisObjPtr axis = NULL;
+ tokens = msStringSplit(value, ',', &num);
+ for(j = 0; j < num; ++j) {
+ char axisName[500];
+ double scale;
+
+ if (msWCSParseScaleString20(tokens[j], axisName, sizeof(axisName), &scale) != MS_SUCCESS) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+
+ /* check if the size of the axis is already set */
+ if(axis->scale != MS_WCS20_UNBOUNDED) {
+ msFreeCharArray(tokens, num);
+ msSetError(MS_WCSERR, "The scale of the axis is already set.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ }
+ axis->scale = scale;
+ }
+ msFreeCharArray(tokens, num);
+ } else if (EQUAL(key, "SCALESIZE")) {
+ wcs20AxisObjPtr axis = NULL;
+ tokens = msStringSplit(value, ',', &num);
+ for(j = 0; j < num; ++j) {
+ char axisName[500];
+ int size;
+
+ if (msWCSParseSizeString20(tokens[j], axisName, sizeof(axisName), &size) != MS_SUCCESS) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+
+ /* check if the size of the axis is already set */
+ if(axis->size != 0) {
+ msFreeCharArray(tokens, num);
+ msSetError(MS_WCSERR, "The size of the axis is already set.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ }
+ axis->size = size;
+ }
+ msFreeCharArray(tokens, num);
+ } else if (EQUAL(key, "SCALEEXTENT")) {
+ wcs20AxisObjPtr axis = NULL;
+ /* No real support for scaleextent, we just interprete it as SCALESIZE */
+ tokens = msStringSplit(value, ',', &num);
+ for(j = 0; j < num; ++j) {
+ char axisName[500];
+ int min, max;
+
+ if (msWCSParseScaleExtentString20(tokens[j], axisName, sizeof(axisName),
+ &min, &max) != MS_SUCCESS) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+
+ if(NULL == (axis = msWCSFindAxis20(params, axisName))) {
+ if(NULL == (axis = msWCSCreateAxisObj20())) {
+ msFreeCharArray(tokens, num);
+ return MS_FAILURE;
+ }
+ axis->name = msStrdup(axisName);
+ msWCSInsertAxisObj20(params, axis);
+ }
+
+ /* check if the size of the axis is already set */
+ if(axis->size != 0) {
+ msFreeCharArray(tokens, num);
+ msSetError(MS_WCSERR, "The size of the axis is already set.",
+ "msWCSParseRequest20()");
+ return MS_FAILURE;
+ }
+ axis->size = max - min;
+ }
+ msFreeCharArray(tokens, num);
} else if (EQUALN(key, "SIZE", 4)) {
+ /* Deprecated scaling */
wcs20AxisObjPtr axis = NULL;
char axisName[500];
int size = 0;
@@ -1085,6 +1684,9 @@ int msWCSParseRequest20(mapObj *map,
CSLAddString(params->range_subset, tokens[j]);
}
msFreeCharArray(tokens, num);
+ } else if (EQUALN(key, "GEOTIFF:", 8)) {
+ params->format_options =
+ CSLAddNameValue(params->format_options, key, value);
}
/* Ignore all other parameters here */
}
@@ -1109,7 +1711,7 @@ static int msWCSValidateAndFindAxes20(
static const int numAxis = 2;
char *validXAxisNames[] = {"x", "xaxis", "x-axis", "x_axis", "long", "long_axis", "long-axis", "lon", "lon_axis", "lon-axis", NULL};
char *validYAxisNames[] = {"y", "yaxis", "y-axis", "y_axis", "lat", "lat_axis", "lat-axis", NULL};
- char **validAxisNames[2];
+ char **validAxisNames[2];
int iParamAxis, iAcceptedAxis, iName, i;
validAxisNames[0] = validXAxisNames;
@@ -1240,9 +1842,6 @@ static char *msWCSGetFormatsList20( mapObj *map, layerObj *layer )
for( i = 0; i < map->numoutputformats; i++ ) {
switch( map->outputformatlist[i]->renderer ) {
/* seemingly normal raster format */
-#ifdef USE_GD
- case MS_RENDER_WITH_GD:
-#endif
case MS_RENDER_WITH_AGG:
case MS_RENDER_WITH_RAWDATA:
tokens[numtokens++] = msStrdup(map->outputformatlist[i]->name);
@@ -1580,9 +2179,7 @@ static int msWCSWriteDocument20(mapObj* map, xmlDocPtr psDoc)
xmlChar *buffer = NULL;
int size = 0;
msIOContext *context = NULL;
- const char *contenttype = NULL;
-
- const char *encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
+ char *contenttype = NULL;
if( msIO_needBinaryStdout() == MS_FAILURE ) {
return MS_FAILURE;
@@ -1593,15 +2190,13 @@ static int msWCSWriteDocument20(mapObj* map, xmlDocPtr psDoc)
else
contenttype = msStrdup("text/xml");
- if (encoding)
- msIO_setHeader("Content-Type","%s; charset=%s", contenttype, encoding);
- else
- msIO_setHeader("Content-Type","%s", contenttype);
+ msIO_setHeader("Content-Type","%s; charset=UTF-8", contenttype);
msIO_sendHeaders();
+ msFree(contenttype);
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
msIO_contextWrite(context, buffer, size);
xmlFree(buffer);
@@ -1641,7 +2236,7 @@ static int msWCSWriteFile20(mapObj* map, imageObj* image, wcs20ParamsObjPtr para
"Failed to find %s driver.",
"msWCSWriteFile20()",
image->format->driver+5 );
- return msWCSException(map, "mapserv", "NoApplicableCode",
+ return msWCSException(map, "NoApplicableCode", "mapserv",
params->version);
}
@@ -1665,7 +2260,7 @@ static int msWCSWriteFile20(mapObj* map, imageObj* image, wcs20ParamsObjPtr para
if( status != MS_SUCCESS ) {
msSetError(MS_MISCERR, "msSaveImage() failed",
"msWCSWriteFile20()");
- return msWCSException20(map, "mapserv", "NoApplicableCode",
+ return msWCSException20(map, "NoApplicableCode", "mapserv",
params->version);
}
}
@@ -1715,7 +2310,7 @@ static int msWCSWriteFile20(mapObj* map, imageObj* image, wcs20ParamsObjPtr para
status = msSaveImage(map, image, NULL);
if( status != MS_SUCCESS ) {
msSetError( MS_MISCERR, "msSaveImage() failed", "msWCSWriteFile20()");
- return msWCSException(map, "mapserv", "NoApplicableCode", params->version);
+ return msWCSException(map, "NoApplicableCode", "mapserv", params->version);
}
if(multipart)
msIO_fprintf( stdout, "\r\n--wcs--\r\n" );
@@ -2362,9 +2957,7 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
int size = 0;
char *status = "400 Bad Request";
char *errorString = NULL;
- char *errorMessage = NULL;
char *schemasLocation = NULL;
- const char * encoding;
char *xsi_schemaLocation = NULL;
char version_string[OWS_VERSION_MAXLEN];
@@ -2375,9 +2968,7 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
xmlNsPtr psNsXsi = NULL;
xmlChar *buffer = NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
errorString = msGetErrorString("\n");
- errorMessage = msEncodeHTMLEntities(errorString);
schemasLocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
psDoc = xmlNewDoc(BAD_CAST "1.0");
@@ -2417,8 +3008,10 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
xmlNewProp(psMainNode, BAD_CAST "locator", BAD_CAST locator);
}
- if (errorMessage != NULL) {
+ if (errorString != NULL) {
+ char* errorMessage = msEncodeHTMLEntities(errorString);
xmlNewChild(psMainNode, NULL, BAD_CAST "ExceptionText", BAD_CAST errorMessage);
+ msFree(errorMessage);
}
/*psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_2_0_0,
@@ -2427,7 +3020,10 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
xmlDocSetRootElement(psDoc, psRootNode);
- if(EQUAL(exceptionCode, "OperationNotSupported")
+ if (exceptionCode == NULL) {
+ /* Do nothing */
+ }
+ else if(EQUAL(exceptionCode, "OperationNotSupported")
|| EQUAL(exceptionCode, "OptionNotSupported")) {
status = "501 Not Implemented";
}
@@ -2439,20 +3035,15 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
}
msIO_setHeader("Status", "%s", status);
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding
- : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
msIO_printf("%s", buffer);
/* free buffer and the document */
free(errorString);
- free(errorMessage);
free(schemasLocation);
free(xsi_schemaLocation);
xmlFree(buffer);
@@ -2481,16 +3072,16 @@ static int msWCSGetCapabilities20_CreateProfiles(
MS_WCS_20_PROFILE_GML_MULTIPART, NULL,
MS_WCS_20_PROFILE_GML_SPECIAL, NULL,
MS_WCS_20_PROFILE_GML_GEOTIFF, "image/tiff",
- MS_WCS_20_PROFILE_GEOTIFF, "image/tiff",
MS_WCS_20_PROFILE_CRS, NULL,
MS_WCS_20_PROFILE_SCALING, NULL,
MS_WCS_20_PROFILE_RANGESUBSET, NULL,
+ MS_WCS_20_PROFILE_INTERPOLATION, NULL,
NULL, NULL /* guardian */
};
/* navigate to node where profiles shall be inserted */
for(psTmpNode = psServiceIdentification->children; psTmpNode->next != NULL; psTmpNode = psTmpNode->next) {
- if(EQUAL((char *)psTmpNode->name, "ServiceTypeVersion"))
+ if(EQUAL((char *)psTmpNode->name, "ServiceTypeVersion") && !EQUAL((char *)psTmpNode->next->name, "ServiceTypeVersion"))
break;
}
@@ -2586,7 +3177,9 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
const char *updatesequence = NULL;
xmlNsPtr psOwsNs = NULL,
psXLinkNs = NULL,
- psWcsNs = NULL;
+ psWcsNs = NULL,
+ psCrsNs = NULL,
+ psIntNs = NULL;
char *script_url=NULL, *script_url_encoded=NULL, *format_list=NULL;
int i;
@@ -2610,6 +3203,8 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
psWcsNs = xmlSearchNs( psDoc, psRootNode, BAD_CAST MS_OWSCOMMON_WCS_NAMESPACE_PREFIX );
xmlSearchNs( psDoc, psRootNode, BAD_CAST MS_OWSCOMMON_GML_NAMESPACE_PREFIX );
psXLinkNs = xmlSearchNs( psDoc, psRootNode, BAD_CAST "xlink" );
+ psCrsNs = xmlNewNs(psRootNode, BAD_CAST "http://www.opengis.net/wcs/crs/1.0", BAD_CAST "crs");
+ psIntNs = xmlNewNs(psRootNode, BAD_CAST "http://www.opengis.net/wcs/interpolation/1.0", BAD_CAST "int");
xmlSetNs(psRootNode, psWcsNs);
@@ -2622,15 +3217,15 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
msSetError(MS_WCSERR, "UPDATESEQUENCE parameter (%s) is equal to server (%s)",
"msWCSGetCapabilities20()", params->updatesequence, updatesequence);
xmlFreeDoc(psDoc);
- return msWCSException(map, "updatesequence",
- "CurrentUpdateSequence", params->version);
+ return msWCSException(map, "CurrentUpdateSequence", "updatesequence",
+ params->version);
}
if (i > 0) { /* invalid */
msSetError(MS_WCSERR, "UPDATESEQUENCE parameter (%s) is higher than server (%s)",
"msWCSGetCapabilities20()", params->updatesequence, updatesequence);
xmlFreeDoc(psDoc);
- return msWCSException(map, "updatesequence",
- "InvalidUpdateSequence", params->version);
+ return msWCSException(map, "InvalidUpdateSequence", "updatesequence",
+ params->version);
}
}
if(updatesequence != NULL) {
@@ -2642,14 +3237,14 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
/* -------------------------------------------------------------------- */
if ( MS_WCS_20_CAPABILITIES_INCLUDE_SECTION(params, "ServiceIdentification") ) {
psNode = xmlAddChild(psRootNode, msOWSCommonServiceIdentification(
- psOwsNs, map, "OGC WCS", params->version, "CO"));
+ psOwsNs, map, "OGC WCS", "2.0.1,1.1.1,1.0.0", "CO", NULL));
msWCSGetCapabilities20_CreateProfiles(map, psNode, psOwsNs);
}
/* Service Provider */
if ( MS_WCS_20_CAPABILITIES_INCLUDE_SECTION(params, "ServiceProvider") ) {
xmlAddChild(psRootNode,
- msOWSCommonServiceProvider(psOwsNs, psXLinkNs, map, "CO"));
+ msOWSCommonServiceProvider(psOwsNs, psXLinkNs, map, "CO", NULL));
}
/* -------------------------------------------------------------------- */
@@ -2660,7 +3255,7 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
|| (script_url_encoded = msEncodeHTMLEntities(script_url)) == NULL) {
xmlFreeDoc(psDoc);
msSetError(MS_WCSERR, "Server URL not found", "msWCSGetCapabilities20()");
- return msWCSException(map, "mapserv", "NoApplicableCode", params->version);
+ return msWCSException(map, "NoApplicableCode", "mapserv", params->version);
}
free(script_url);
@@ -2712,12 +3307,47 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
/* -------------------------------------------------------------------- */
if ( MS_WCS_20_CAPABILITIES_INCLUDE_SECTION(params, "ServiceMetadata") ) {
+ xmlNodePtr psExtensionNode = NULL;
psNode = xmlNewChild(psRootNode, psWcsNs, BAD_CAST "ServiceMetadata", NULL);
+ /* Apply default formats */
+ msApplyDefaultOutputFormats(map);
+
/* Add formats list */
format_list = msWCSGetFormatsList20(map, NULL);
msLibXml2GenerateList(psNode, psWcsNs, "formatSupported", format_list, ',');
msFree(format_list);
+
+ psExtensionNode = xmlNewChild(psNode, psWcsNs, BAD_CAST "Extension", NULL);
+ /* interpolations supported */
+ {
+ /* TODO: use URIs/URLs once they are specified */
+ char *interpolation_methods[] = {"NEAREST", "AVERAGE", "BILINEAR"};
+ int i;
+ xmlNodePtr imNode = xmlNewChild(psExtensionNode, psIntNs,
+ BAD_CAST "InterpolationMetadata", NULL);
+
+ for (i=0; i < 3; ++i) {
+ xmlNewChild(imNode, psIntNs, BAD_CAST "InterpolationSupported",
+ BAD_CAST interpolation_methods[i]);
+ }
+ }
+
+ /* Report the supported CRSs */
+ {
+ char *crs_list;
+ xmlNodePtr crsMetadataNode = xmlNewChild(psExtensionNode, psCrsNs,
+ BAD_CAST "CrsMetadata", NULL);
+
+ if((crs_list = msOWSGetProjURI(&(map->projection),
+ &(map->web.metadata),
+ "CO", MS_FALSE)) != NULL ) {
+ msLibXml2GenerateList(crsMetadataNode, psCrsNs, "crsSupported",
+ crs_list, ' ');
+ } else {
+ /* could not determine list of CRSs */
+ }
+ }
}
/* -------------------------------------------------------------------- */
@@ -2746,7 +3376,7 @@ int msWCSGetCapabilities20(mapObj *map, cgiRequestObj *req,
if(status != MS_SUCCESS) {
xmlFreeDoc(psDoc);
xmlCleanupParser();
- return msWCSException(map, "mapserv", "Internal", params->version);
+ return msWCSException(map, "Internal", "mapserv", params->version);
}
}
}
@@ -2982,7 +3612,9 @@ int msWCSDescribeCoverage20(mapObj *map, wcs20ParamsObjPtr params, owsRequestObj
static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20AxisObjPtr *axes)
{
char *crs = NULL;
-
+ int have_scale, have_size, have_resolution;
+ int have_global_scale = (params->scale != MS_WCS20_UNBOUNDED) ? 1 : 0;
+
if (axes[0] != NULL) {
if(axes[0]->subset != NULL) {
msDebug("Subset for X-axis found: %s\n", axes[0]->subset->axis);
@@ -2994,9 +3626,21 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20A
}
params->width = axes[0]->size;
params->resolutionX = axes[0]->resolution;
+ params->scaleX = axes[0]->scale;
+
if(axes[0]->resolutionUOM != NULL) {
params->resolutionUnits = msStrdup(axes[0]->resolutionUOM);
}
+
+ have_scale = (params->scaleX != MS_WCS20_UNBOUNDED) ? 1 : 0;
+ have_size = (params->width != 0) ? 1 : 0;
+ have_resolution = (params->resolutionX != MS_WCS20_UNBOUNDED) ? 1 : 0;
+
+ if ((have_global_scale + have_scale + have_size + have_resolution) > 1) {
+ msSetError(MS_WCSERR, "Axis '%s' defines scale, size and/or resolution multiple times.",
+ "msWCSGetCoverage20_FinalizeParamsObj()", axes[0]->name);
+ return MS_FAILURE;
+ }
}
if (axes[1] != NULL) {
@@ -3009,7 +3653,7 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20A
if(crs != NULL && axes[0] != NULL && axes[0]->subset!= NULL) {
if(!EQUAL(crs, axes[1]->subset->crs)) {
msSetError(MS_WCSERR, "CRS for axis %s and axis %s are not the same.",
- "msWCSCreateBoundingBox20()", axes[0]->name, axes[1]->name);
+ "msWCSGetCoverage20_FinalizeParamsObj()", axes[0]->name, axes[1]->name);
return MS_FAILURE;
}
} else {
@@ -3018,6 +3662,7 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20A
}
params->height = axes[1]->size;
params->resolutionY = axes[1]->resolution;
+ params->scaleY = axes[1]->scale;
if(params->resolutionUnits == NULL && axes[1]->resolutionUOM != NULL) {
params->resolutionUnits = msStrdup(axes[1]->resolutionUOM);
@@ -3025,15 +3670,44 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20A
&& !EQUAL(params->resolutionUnits, axes[1]->resolutionUOM)) {
msSetError(MS_WCSERR, "The units of measure of the resolution for"
"axis %s and axis %s are not the same.",
- "msWCSCreateBoundingBox20()", axes[0]->name, axes[1]->name);
+ "msWCSGetCoverage20_FinalizeParamsObj()", axes[0]->name, axes[1]->name);
return MS_FAILURE;
}
+
+ have_scale = (params->scaleY != MS_WCS20_UNBOUNDED) ? 1 : 0;
+ have_size = (params->height != 0) ? 1 : 0;
+ have_resolution = (params->resolutionY != MS_WCS20_UNBOUNDED) ? 1 : 0;
+
+ if ((have_global_scale + have_scale + have_size + have_resolution) > 1) {
+ msSetError(MS_WCSERR, "Axis '%s' defines scale, size and/or resolution multiple times.",
+ "msWCSGetCoverage20_FinalizeParamsObj()", axes[1]->name);
+ return MS_FAILURE;
+ }
+ }
+
+ /* if scale is globally set, use this value instead */
+ if (params->scale != MS_WCS20_UNBOUNDED) {
+ params->scaleX = params->scaleY = params->scale;
}
/* check if projections are equal */
if(crs != NULL) {
- params->subsetcrs = msStrdup(crs);
- } else {
+ if (params->subsetcrs && !EQUAL(crs, params->subsetcrs)) {
+ /* already set and not equal -> raise exception */
+ msSetError(MS_WCSERR, "SubsetCRS does not match the CRS of the axes: "
+ "'%s' != '%s'",
+ "msWCSCreateBoundingBox20()", params->subsetcrs, crs);
+ return MS_FAILURE;
+ }
+ else if (params->subsetcrs) {
+ /* equal, and already set -> do nothing */
+ }
+ else {
+ /* not yet globally set -> set it */
+ params->subsetcrs = msStrdup(crs);
+ }
+ } else if (!params->subsetcrs) {
+ /* default to imageCRS */
params->subsetcrs = msStrdup("imageCRS");
}
@@ -3052,6 +3726,7 @@ static int msWCSGetCoverage20_GetBands(mapObj *map, layerObj *layer,
{
int i = 0, count, maxlen, index;
char *tmp = NULL;
+ char *interval_stop;
char **band_ids = NULL;
/* if rangesubset parameter is not given, default to all bands */
@@ -3066,7 +3741,7 @@ static int msWCSGetCoverage20_GetBands(mapObj *map, layerObj *layer,
}
count = CSLCount(params->range_subset);
- maxlen = count * 4 * sizeof(char);
+ maxlen = cm->numbands * 4 * sizeof(char);
*bandlist = msSmallCalloc(sizeof(char), maxlen);
if (NULL == (tmp = msOWSGetEncodeMetadata(&layer->metadata,
@@ -3081,34 +3756,288 @@ static int msWCSGetCoverage20_GetBands(mapObj *map, layerObj *layer,
}
for(i = 0; i < count; ++i) {
- /* print ',' if not the first value */
- if(i != 0) {
- strlcat(*bandlist, ",", maxlen);
+ /* RangeInterval case: defined as "<start>:<stop>" */
+ if ((interval_stop = strchr(params->range_subset[i], ':')) != NULL) {
+ int start, stop, j;
+ *interval_stop = '\0';
+ ++interval_stop;
+
+ /* check if the string represents an integer */
+ if (msStringParseInteger(params->range_subset[i], &start) == MS_SUCCESS) {
+ }
+ /* get index of start clause, or raise an error if none was found */
+ else if ((start = CSLFindString(band_ids, params->range_subset[i])) != -1) {
+ start += 1; /* adjust index, since GDAL bands start with index 1 */
+ }
+ else {
+ msSetError(MS_WCSERR, "'%s' is not a valid band identifier.",
+ "msWCSGetCoverage20_GetBands()", params->range_subset[i]);
+ return MS_FAILURE;
+ }
+
+ /* check if the string represents an integer */
+ if (msStringParseInteger(interval_stop, &stop) == MS_SUCCESS) {
+ }
+ /* get index of stop clause, or raise an error if none was found */
+ else if ((stop = CSLFindString(band_ids, interval_stop)) != -1) {
+ stop += 1; /* adjust index, since GDAL bands start with index 1 */
+ }
+ else {
+ msSetError(MS_WCSERR, "'%s' is not a valid band identifier.",
+ "msWCSGetCoverage20_GetBands()", interval_stop);
+ return MS_FAILURE;
+ }
+
+ /* Check whether or not start and stop are different and stop is higher than start */
+ if (stop <= start) {
+ msSetError(MS_WCSERR, "Invalid range interval given.",
+ "msWCSGetCoverage20_GetBands()");
+ return MS_FAILURE;
+ } else if (start < 1 || stop > cm->numbands) {
+ msSetError(MS_WCSERR, "Band interval is out of the valid range: 1-%d",
+ "msWCSGetCoverage20_GetBands()", (int)cm->numbands);
+ return MS_FAILURE;
+ }
+
+ /* expand the interval to a list of indices and push them on the list */
+ for (j = start; j <= stop; ++j) {
+ if(i != 0 || j != start) {
+ strlcat(*bandlist, ",", maxlen);
+ }
+ tmp = msIntToString(j);
+ strlcat(*bandlist, tmp, maxlen);
+ msFree(tmp);
+ }
}
+ /* RangeComponent case */
+ else {
+ if(i != 0) {
+ strlcat(*bandlist, ",", maxlen);
+ }
- /* check if the string represents an integer */
- if(msStringParseInteger(params->range_subset[i], &index) == MS_SUCCESS) {
- tmp = msIntToString((int)index);
- strlcat(*bandlist, tmp, maxlen);
- msFree(tmp);
- continue;
+ /* check if the string represents an integer */
+ if(msStringParseInteger(params->range_subset[i], &index) == MS_SUCCESS) {
+ if (index < 1 || index > cm->numbands) {
+ msSetError(MS_WCSERR, "Band index is out of the valid range: 1-%d",
+ "msWCSGetCoverage20_GetBands()", (int)cm->numbands);
+ return MS_FAILURE;
+ }
+
+ tmp = msIntToString((int)index);
+ strlcat(*bandlist, tmp, maxlen);
+ msFree(tmp);
+ continue;
+ }
+
+ /* check if the string is equal to a band identifier */
+ /* if so, what is the index of the band */
+ if((index = CSLFindString(band_ids, params->range_subset[i])) != -1) {
+ tmp = msIntToString((int)index + 1);
+ strlcat(*bandlist, tmp, maxlen);
+ msFree(tmp);
+ }
+ else {
+ msSetError(MS_WCSERR, "'%s' is not a valid band identifier.",
+ "msWCSGetCoverage20_GetBands()", params->range_subset[i]);
+ return MS_FAILURE;
+ }
}
+ }
- /* check if the string is equal to a band identifier */
- /* if so, what is the index of the band */
- index = CSLFindString(band_ids, params->range_subset[i]);
- if(index != -1) {
- tmp = msIntToString((int)index + 1);
- strlcat(*bandlist, tmp, maxlen);
- msFree(tmp);
- continue;
+ CSLDestroy(band_ids);
+ return MS_SUCCESS;
+}
+
+/* Fixes CPLParseNameValue to allow ':' characters for namespaced keys */
+
+static const char * fixedCPLParseNameValue(const char* string, char **key) {
+ const char *value;
+ size_t size;
+ value = strchr(string, '=');
+
+ if (value == NULL) {
+ *key = NULL;
+ return NULL;
+ }
+
+ size = value - string;
+ *key = msSmallMalloc(size + 1);
+ strncpy(*key, string, size + 1);
+ (*key)[size] = '\0';
+ return value + 1;
+}
+
+/************************************************************************/
+/* msWCSSetFormatParams20() */
+/* */
+/* Parses the given format options and sets the appropriate */
+/* output format values. */
+/************************************************************************/
+
+static int msWCSSetFormatParams20(outputFormatObj* format, char** format_options) {
+ /* currently geotiff only */
+ char *format_option;
+ int i = 0;
+ int is_geotiff = (format->mimetype && EQUAL(format->mimetype, "image/tiff"));
+
+ if (!is_geotiff || !format_options) {
+ /* Currently only geotiff available */
+ return MS_SUCCESS;
+ }
+
+ format_option = format_options[0];
+ while (format_option) {
+ /* key, value */
+ char *key;
+ const char *value = fixedCPLParseNameValue(format_option, &key);
+
+ if (!key) {
+ msSetError(MS_WCSERR, "Could not deduct the option key.",
+ "msWCSSetFormatParams20()");
+ return MS_FAILURE;
+ }
+ else if (!value) {
+ msSetError(MS_WCSERR, "Missing value for parameter '%s'.",
+ "msWCSSetFormatParams20()", key);
+ return MS_FAILURE;
}
- msSetError(MS_WCSERR, "'%s' is not a valid band identifier.",
- "msWCSGetCoverage20_GetBands()", params->range_subset[i]);
- return MS_FAILURE;
+ if (EQUAL(key, "geotiff:compression") && is_geotiff) {
+ /*COMPRESS=[JPEG/LZW/PACKBITS/DEFLATE/CCITTRLE/CCITTFAX3/CCITTFAX4/NONE]*/
+ if (EQUAL(value, "None")) {
+ msSetOutputFormatOption(format, "COMPRESS", "NONE");
+ }
+ else if (EQUAL(value, "PackBits")) {
+ msSetOutputFormatOption(format, "COMPRESS", "PACKBITS");
+ }
+ else if (EQUAL(value, "Deflate")) {
+ msSetOutputFormatOption(format, "COMPRESS", "DEFLATE");
+ }
+ else if (EQUAL(value, "Huffman")) {
+ msSetOutputFormatOption(format, "COMPRESS", "CCITTRLE");
+ }
+ else if (EQUAL(value, "LZW")) {
+ msSetOutputFormatOption(format, "COMPRESS", "LZW");
+ }
+ else if (EQUAL(value, "JPEG")) {
+ msSetOutputFormatOption(format, "COMPRESS", "JPEG");
+ }
+ /* unsupported compression methods: CCITTFAX3/CCITTFAX4 */
+ else {
+ msSetError(MS_WCSERR, "Compression method '%s' not supported.",
+ "msWCSSetFormatParams20()", value);
+ return MS_FAILURE;
+ }
+ }
+
+ else if (EQUAL(key, "geotiff:jpeg_quality") && is_geotiff) {
+ int quality;
+ /* JPEG_QUALITY=[1-100] */
+ if (msStringParseInteger(value, &quality) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Could not parse jpeg_quality value.",
+ "msWCSSetFormatParams20()");
+ return MS_FAILURE;
+ }
+ else if (quality < 1 || quality > 100) {
+ msSetError(MS_WCSERR, "Invalid jpeg_quality value '%d'.",
+ "msWCSSetFormatParams20()", quality);
+ return MS_FAILURE;
+ }
+ msSetOutputFormatOption(format, "JPEG_QUALITY", value);
+ }
+ else if (EQUAL(key, "geotiff:predictor") && is_geotiff) {
+ /* PREDICTOR=[None/Horizontal/FloatingPoint] */
+ char *predictor;
+ if (EQUAL(value, "None") || EQUAL(value, "1")) {
+ predictor = "1";
+ }
+ else if (EQUAL(value, "Horizontal") || EQUAL(value, "2")) {
+ predictor = "2";
+ }
+ else if (EQUAL(value, "FloatingPoint") || EQUAL(value, "3")) {
+ predictor = "3";
+ }
+ else {
+ msSetError(MS_WCSERR, "Invalid predictor value '%s'.",
+ "msWCSSetFormatParams20()", value);
+ return MS_FAILURE;
+ }
+ msSetOutputFormatOption(format, "PREDICTOR", predictor);
+ }
+ else if (EQUAL(key, "geotiff:interleave") && is_geotiff) {
+ /* INTERLEAVE=[BAND,PIXEL] */
+ if (EQUAL(value, "Band")) {
+ msSetOutputFormatOption(format, "INTERLEAVE", "BAND");
+ }
+ else if (EQUAL(value, "Pixel")) {
+ msSetOutputFormatOption(format, "INTERLEAVE", "PIXEL");
+ }
+ else {
+ msSetError(MS_WCSERR, "Interleave method '%s' not supported.",
+ "msWCSSetFormatParams20()", value);
+ return MS_FAILURE;
+ }
+ }
+ else if (EQUAL(key, "geotiff:tiling") && is_geotiff) {
+ /* TILED=YES */
+ if (EQUAL(value, "true")) {
+ msSetOutputFormatOption(format, "TILING", "YES");
+ }
+ else if (EQUAL(value, "false")) {
+ msSetOutputFormatOption(format, "TILING", "NO");
+ }
+ else {
+ msSetError(MS_WCSERR, "Invalid boolean value '%s'.",
+ "msWCSSetFormatParams20()", value);
+ return MS_FAILURE;
+ }
+ }
+ else if (EQUAL(key, "geotiff:tileheight") && is_geotiff) {
+ /* BLOCKXSIZE=n */
+ int tileheight;
+
+ if (msStringParseInteger(value, &tileheight) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Could not parse tileheight value.",
+ "msWCSSetFormatParams20()");
+ return MS_FAILURE;
+ }
+ else if (tileheight < 1 || tileheight % 16) {
+ msSetError(MS_WCSERR, "Invalid tileheight value '%d'. "
+ "Must be greater than 0 and dividable by 16.",
+ "msWCSSetFormatParams20()", tileheight);
+ return MS_FAILURE;
+ }
+ msSetOutputFormatOption(format, "BLOCKXSIZE", value);
+ }
+ else if (EQUAL(key, "geotiff:tilewidth") && is_geotiff) {
+ /* BLOCKYSIZE=n */
+ int tilewidth;
+
+ if (msStringParseInteger(value, &tilewidth) != MS_SUCCESS) {
+ msSetError(MS_WCSERR, "Could not parse tilewidth value.",
+ "msWCSSetFormatParams20()");
+ return MS_FAILURE;
+ }
+ else if (tilewidth < 1 || tilewidth % 16) {
+ msSetError(MS_WCSERR, "Invalid tilewidth value '%d'. "
+ "Must be greater than 0 and dividable by 16.",
+ "msWCSSetFormatParams20()", tilewidth);
+ return MS_FAILURE;
+ }
+ msSetOutputFormatOption(format, "BLOCKYSIZE", value);
+ }
+ else if (EQUALN(key, "geotiff:", 8)) {
+ msSetError(MS_WCSERR, "Unrecognized GeoTIFF parameter '%s'.",
+ "msWCSSetFormatParams20()", key);
+ return MS_FAILURE;
+ }
+
+ msFree(key);
+
+ /* fetch next option */
+ format_option = format_options[++i];
}
- CSLDestroy(band_ids);
+
return MS_SUCCESS;
}
@@ -3309,7 +4238,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
bbox.maxy = MIN(subsets.maxy, map->extent.maxy);
/* check if we are overspecified */
- if((params->width != 0 && params->resolutionX != MS_WCS20_UNBOUNDED)
+ if ((params->width != 0 && params->resolutionX != MS_WCS20_UNBOUNDED)
|| (params->height != 0 && params->resolutionY != MS_WCS20_UNBOUNDED)) {
msWCSClearCoverageMetadata20(&cm);
msSetError(MS_WCSERR, "GetCoverage operation supports only one of SIZE or RESOLUTION per axis.",
@@ -3340,6 +4269,11 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
}
params->resolutionX = (bbox.maxx - bbox.minx) / params->width;
+
+ if (params->scaleX != MS_WCS20_UNBOUNDED) {
+ params->resolutionX /= params->scaleX;
+ params->width = (long)(((double) params->width) * params->scaleX);
+ }
}
/* check y axis */
@@ -3357,6 +4291,11 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
}
params->resolutionY = (bbox.maxy - bbox.miny) / params->height;
+
+ if (params->scaleY != MS_WCS20_UNBOUNDED) {
+ params->resolutionY /= params->scaleY;
+ params->height = (long)(((double) params->height) * params->scaleY);
+ }
}
/* WCS 2.0 is center of pixel oriented */
@@ -3464,6 +4403,14 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
msApplyOutputFormat(&(map->outputformat), format, MS_NOOVERRIDE,
MS_NOOVERRIDE, MS_NOOVERRIDE);
+ /* set format specific parameters */
+ if (msWCSSetFormatParams20(format, params->format_options) != MS_SUCCESS) {
+ msFree(bandlist);
+ msWCSClearCoverageMetadata20(&cm);
+ return msWCSException(map, "InvalidParameterValue", "format",
+ params->version);
+ }
+
if(msWCSGetCoverage20_GetBands(map, layer, params, &cm, &bandlist) != MS_SUCCESS) {
msFree(bandlist);
msWCSClearCoverageMetadata20(&cm);
@@ -3538,7 +4485,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
if(maskLayerIdx == -1) {
msSetError(MS_MISCERR, "Layer (%s) references unknown mask layer (%s)", "msDrawLayer()",
layer->name,layer->mask);
- return (MS_FAILURE);
+ msFreeImage(image);
+ msFree(bandlist);
+ msWCSClearCoverageMetadata20(&cm);
+ return msWCSException(map, NULL, NULL, params->version);
}
maskLayer = GET_LAYER(map, maskLayerIdx);
if(!maskLayer->maskimage) {
@@ -3552,7 +4502,10 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
if (!maskLayer->maskimage) {
msSetError(MS_MISCERR, "Unable to initialize mask image.", "msDrawLayer()");
- return (MS_FAILURE);
+ msFreeImage(image);
+ msFree(bandlist);
+ msWCSClearCoverageMetadata20(&cm);
+ return msWCSException(map, NULL, NULL, params->version);
}
/*
@@ -3570,7 +4523,11 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
maskLayer->status = origstatus;
maskLayer->labelcache = origlabelcache;
if(retcode != MS_SUCCESS) {
- return MS_FAILURE;
+ free(origImageType);
+ msFreeImage(image);
+ msFree(bandlist);
+ msWCSClearCoverageMetadata20(&cm);
+ return msWCSException(map, NULL, NULL, params->version);
}
/*
* hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
@@ -3590,7 +4547,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
/* set the imagetype from the original outputformat back (it was removed by msSelectOutputFormat() */
msFree(map->imagetype);
map->imagetype = origImageType;
-
+
}
}
@@ -3599,8 +4556,9 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
status = msDrawRasterLayerLow( map, layer, image, NULL );
} else {
rasterBufferObj rb;
- MS_IMAGE_RENDERER(image)->getRasterBufferHandle(image,&rb);
- status = msDrawRasterLayerLow( map, layer, image, &rb );
+ status = MS_IMAGE_RENDERER(image)->getRasterBufferHandle(image,&rb);
+ if(LIKELY(status == MS_SUCCESS))
+ status = msDrawRasterLayerLow( map, layer, image, &rb );
}
if( status != MS_SUCCESS ) {
diff --git a/mapwfs.c b/mapwfs.c
index a1c726a..0b28233 100644
--- a/mapwfs.c
+++ b/mapwfs.c
@@ -7,6 +7,7 @@
*
**********************************************************************
* Copyright (c) 2002, Daniel Morissette, DM Solutions Group Inc
+ * Copyright (c) 2013, Even Rouault
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -40,39 +41,94 @@
#include "mapowscommon.h"
#include "maptemplate.h"
-#ifdef WFS_USE_LIBXML2
+#if defined(USE_LIBXML2)
#include "maplibxml2.h"
#endif
+#ifdef USE_OGR
+static int msWFSAnalyzeStoredQuery(mapObj* map,
+ wfsParamsObj *wfsparams,
+ const char* id,
+ const char* pszResolvedQuery);
+#endif
+static void msWFSSimplifyPropertyNameAndFilter(wfsParamsObj *wfsparams);
+static void msWFSAnalyzeStartIndexAndFeatureCount(mapObj *map, const wfsParamsObj *paramsObj,
+ int *pmaxfeatures, int* pstartindex);
+static int msWFSRunBasicGetFeature(mapObj* map,
+ layerObj* lp,
+ const wfsParamsObj *paramsObj,
+ int nWFSVersion);
+
+/* Must be sorted from more recent to older one */
+static const int wfsSupportedVersions[] = {OWS_2_0_0, OWS_1_1_0, OWS_1_0_0};
+static const char* const wfsSupportedVersionsStr[] = { "2.0.0", "1.1.0", "1.0.0" };
+static const int wfsNumSupportedVersions =
+ (int)(sizeof(wfsSupportedVersions)/sizeof(wfsSupportedVersions[0]));
+static const char* const wfsUnsupportedOperations[] = { "GetFeatureWithLock",
+ "LockFeature",
+ "Transaction",
+ "CreateStoredQuery",
+ "DropStoredQuery" };
+static const int wfsNumUnsupportedOperations =
+ (int)(sizeof(wfsUnsupportedOperations)/sizeof(wfsUnsupportedOperations[0]));
+
+#define WFS_LATEST_VERSION wfsSupportedVersionsStr[0]
+
+/* Supported DescribeFeature formats */
+typedef enum
+{
+ OWS_DEFAULT_SCHEMA, /* basically a GML 2.1 schema */
+ OWS_SFE_SCHEMA, /* GML for simple feature exchange (formerly GML3L0) */
+ OWS_GML32_SFE_SCHEMA /* GML 3.2 Simple Features Level 0 */
+} WFSSchemaVersion;
+
+/*
+** msWFSGetIndexUnsupportedOperation()
+**
+** Return index of pszOp in wfsUnsupportedOperations, or -1 otherwise
+*/
+
+static int msWFSGetIndexUnsupportedOperation(const char* pszOp)
+{
+ int i;
+ for(i = 0; i < wfsNumUnsupportedOperations; i++ )
+ {
+ if( strcasecmp(wfsUnsupportedOperations[i], pszOp) == 0 )
+ return i;
+ }
+ return -1;
+}
+
+
+static
+const char *msWFSGetDefaultVersion(mapObj *map);
+
/*
** msWFSException()
**
** Report current MapServer error in XML exception format.
*/
-int msWFSException(mapObj *map, const char *locator, const char *code,
- const char *version )
+static
+int msWFSExceptionInternal(mapObj *map, const char *locator, const char *code,
+ const char *version, int locatorShouldBeNull )
{
- const char *encoding;
char *schemalocation = NULL;
/* In WFS, exceptions are always XML.
*/
if( version == NULL )
- version = "1.1.0";
+ version = msWFSGetDefaultVersion(map);
+ if( msOWSParseVersionString(version) >= OWS_2_0_0 )
+ return msWFSException20( map, (locatorShouldBeNull) ? NULL : locator, code );
if( msOWSParseVersionString(version) >= OWS_1_1_0 )
- return msWFSException11( map, locator, code, version );
+ return msWFSException11( map, (locatorShouldBeNull) ? NULL : locator, code, version );
- encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), "FO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" ?>\n", "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
msIO_printf("<ServiceExceptionReport ");
msIO_printf("version=\"1.2.0\" ");
@@ -92,6 +148,28 @@ int msWFSException(mapObj *map, const char *locator, const char *code,
return MS_FAILURE; /* so we can call 'return msWFSException();' anywhere */
}
+int msWFSException(mapObj *map, const char *locator, const char *code,
+ const char *version )
+{
+ return msWFSExceptionInternal(map, locator, code, version, FALSE);
+}
+
+
+/*
+** msWFSExceptionNoLocator()
+**
+** Report current MapServer error in XML exception format.
+** For WFS >= 1.1.0, the locator will be ignored. It will be just used
+** for legacy WFS 1.0 exceptions.
+*/
+
+static
+int msWFSExceptionNoLocator(mapObj *map, const char *locator, const char *code,
+ const char *version )
+{
+ return msWFSExceptionInternal(map, locator, code, version, TRUE);
+}
+
/*
** Helper function to build a list of output formats.
**
@@ -100,17 +178,21 @@ int msWFSException(mapObj *map, const char *locator, const char *code,
** returned should be freed by the caller.
*/
-char *msWFSGetOutputFormatList(mapObj *map, layerObj *layer,
- const char *version )
+char *msWFSGetOutputFormatList(mapObj *map, layerObj *layer, int nWFSVersion )
{
int i, got_map_list = 0;
static const int out_list_size = 20000;
char *out_list = (char*) msSmallCalloc(1,out_list_size);
- if( strncasecmp(version,"1.0",3) != 0 )
- strcpy(out_list,"text/xml; subtype=gml/3.1.1");
+ if( nWFSVersion == OWS_1_0_0 )
+ strcpy(out_list,"GML2");
+ else if( nWFSVersion == OWS_1_1_0 )
+ strcpy(out_list,"text/xml; subtype=gml/3.1.1");
else
- strcpy(out_list,"GML2");
+ strcpy(out_list,"application/gml+xml; version=3.2,"
+ "text/xml; subtype=gml/3.2.1,"
+ "text/xml; subtype=gml/3.1.1,"
+ "text/xml; subtype=gml/2.1.2");
for( i = 0; i < map->numlayers; i++ ) {
const char *format_list;
@@ -150,7 +232,7 @@ char *msWFSGetOutputFormatList(mapObj *map, layerObj *layer,
format_obj = map->outputformatlist[iformat];
fname = format_obj->name;
- if( strncasecmp(version,"1.0",3) != 0
+ if( nWFSVersion >= OWS_1_1_0
&& format_obj->mimetype != NULL )
fname = format_obj->mimetype;
@@ -262,8 +344,8 @@ int msWFSLocateSRSInList(const char *pszList, const char *srs)
break;
}
}
- msFreeCharArray(tokens, nTokens);
}
+ msFreeCharArray(tokens, nTokens);
return bFound;
}
@@ -273,28 +355,36 @@ int msWFSLocateSRSInList(const char *pszList, const char *srs)
** Utility function called from msWFSGetFeature. It is assumed that at this point
** all queried layers are turned ON
*/
-static int msWFSGetFeatureApplySRS(mapObj *map, const char *srs, const char *version)
+static int msWFSGetFeatureApplySRS(mapObj *map, const char *srs, int nWFSVersion)
{
- int nVersion = OWS_1_1_0;
const char *pszLayerSRS=NULL;
const char *pszMapSRS=NULL;
char *pszOutputSRS=NULL;
layerObj *lp;
int i;
- if (version && strncmp(version,"1.0",3)==0)
- nVersion = OWS_1_0_0;
-
/*validation of SRS
- wfs 1.0 does not have an srsname parameter so all queried layers should be advertized using the
same srs. For wfs 1.1.0 an srsName can be passed, we should validate that It is valid for all
queries layers
*/
+
+ /* Start by applying the default service SRS to the mapObj,
+ * make sure we reproject the map extent if a projection was
+ * already set
+ */
pszMapSRS = msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FO", MS_TRUE);
- if(pszMapSRS && nVersion > OWS_1_0_0)
+ if(pszMapSRS && nWFSVersion > OWS_1_0_0){
+ projectionObj proj;
+ msInitProjection(&proj);
+ if (map->projection.numargs > 0 && msLoadProjectionStringEPSG(&proj, pszMapSRS) == 0) {
+ msProjectRect(&(map->projection), &proj, &map->extent);
+ }
msLoadProjectionStringEPSG(&(map->projection), pszMapSRS);
+ msFreeProjection(&proj);
+ }
- if (srs == NULL || nVersion == OWS_1_0_0) {
+ if (srs == NULL || nWFSVersion == OWS_1_0_0) {
for (i=0; i<map->numlayers; i++) {
lp = GET_LAYER(map, i);
if (lp->status != MS_ON)
@@ -361,71 +451,34 @@ static int msWFSGetFeatureApplySRS(mapObj *map, const char *srs, const char *ver
}
}
- if (pszOutputSRS && nVersion >= OWS_1_1_0) {
+ if (pszOutputSRS) {
projectionObj sProjTmp;
int nTmp=0;
msInitProjection(&sProjTmp);
- nTmp = msLoadProjectionStringEPSG(&(sProjTmp), pszOutputSRS);
- if (nTmp == 0) {
- msProjectRect(&(map->projection), &(sProjTmp), &map->extent);
- }
- msFreeProjection(&(sProjTmp));
- /*check if the srs passed is valid. Assuming that it is an EPSG:xxx format,
- Or urn:ogc:def:crs:EPSG:xxx format. */
- if (strncasecmp(pszOutputSRS, "EPSG:", 5) == 0 ||
- strncasecmp(pszOutputSRS, "urn:ogc:def:crs:EPSG:",21) == 0) {
- /*we load the projection sting in the map and possibly
- set the axis order*/
- msFreeProjection(&map->projection);
- msLoadProjectionStringEPSG(&(map->projection), pszOutputSRS);
- } else if (strncasecmp(pszOutputSRS, "urn:EPSG:geographicCRS:",23) == 0) {
- char epsg_string[100];
- const char *code;
-
-
- code = pszOutputSRS + 23;
-
- snprintf( epsg_string, sizeof(epsg_string), "EPSG:%s", code );
-
- /*we load the projection sting in the map and possibly
- set the axis order*/
- /*reproject the map extent from current projection to output projection*/
-
- msFreeProjection(&map->projection);
- msLoadProjectionStringEPSG(&(map->projection), epsg_string);
- }
- }
- /* Set map output projection to which output features should be reprojected */
- else if (pszOutputSRS && strncasecmp(pszOutputSRS, "EPSG:", 5) == 0) {
- int nTmp =0;
- projectionObj sProjTmp;
-
- /*reproject the map extent from current projection to output projection*/
- msInitProjection(&sProjTmp);
- if (nVersion >= OWS_1_1_0)
+ if( nWFSVersion >= OWS_1_1_0 ) {
nTmp = msLoadProjectionStringEPSG(&(sProjTmp), pszOutputSRS);
- else
+ } else {
nTmp = msLoadProjectionString(&(sProjTmp), pszOutputSRS);
-
- if (nTmp == 0)
+ }
+ if (nTmp == 0) {
msProjectRect(&(map->projection), &(sProjTmp), &map->extent);
+ }
msFreeProjection(&(sProjTmp));
- msFreeProjection(&map->projection);
- msInitProjection(&map->projection);
-
- if (nVersion >= OWS_1_1_0)
- nTmp = msLoadProjectionStringEPSG(&(map->projection), pszOutputSRS);
- else
- nTmp = msLoadProjectionString(&(map->projection), pszOutputSRS);
-
if (nTmp != 0) {
msSetError(MS_WFSERR, "msLoadProjectionString() failed", "msWFSGetFeature()");
return MS_FAILURE;
}
- }
+ /*we load the projection sting in the map and possibly
+ set the axis order*/
+ if( nWFSVersion >= OWS_1_1_0 ) {
+ msLoadProjectionStringEPSG(&(map->projection), pszOutputSRS);
+ } else {
+ msLoadProjectionString(&(map->projection), pszOutputSRS);
+ }
+ }
if (pszOutputSRS)
msFree(pszOutputSRS);
@@ -454,53 +507,26 @@ int msWFSIsLayerSupported(layerObj *lp)
return 0; /* false */
}
-
-/* msWFSGetGeomElementName()
-**
-** Return the geometry propery name base on the layer type
-*/
-const char *msWFSGetGeomElementName(mapObj *map, layerObj *lp)
+static int msWFSIsLayerAllowed(layerObj *lp, owsRequestObj *ows_request)
{
-
- switch(lp->type) {
- case MS_LAYER_POINT:
- return "pointProperty";
- case MS_LAYER_LINE:
- return "lineStringProperty";
- case MS_LAYER_POLYGON:
- return "polygonProperty";
- default:
- break;
- }
-
- return "???unknown???";
-
+ return msWFSIsLayerSupported(lp) &&
+ (msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers));
}
-/* msWFSGetGeomType()
-**
-** Return GML name for geometry type in this layer
-** This is based on MapServer geometry type and layers with mixed geometries
-** may not return the right feature type.
-*/
-#ifdef notdef /* not currently used */
-static const char *msWFSGetGeomType(layerObj *lp)
+static layerObj* msWFSGetLayerByName(mapObj* map, owsRequestObj *ows_request, const char* name)
{
+ int j;
+ for (j=0; j<map->numlayers; j++) {
+ layerObj *lp;
- switch(lp->type) {
- case MS_LAYER_POINT:
- return "PointPropertyType";
- case MS_LAYER_LINE:
- return "LineStringPropertyType";
- case MS_LAYER_POLYGON:
- return "PolygonPropertyType";
- default:
- break;
- }
+ lp = GET_LAYER(map, j);
- return "???unknown???";
+ if (msWFSIsLayerAllowed(lp, ows_request) && lp->name && (strcasecmp(lp->name, name) == 0)) {
+ return lp;
+ }
+ }
+ return NULL;
}
-#endif /* def notdef */
/*
** msWFSDumpLayer()
@@ -589,20 +615,42 @@ int msWFSDumpLayer(mapObj *map, layerObj *lp)
}
/*
-** msWFSGetCapabilities()
+** msWFSHandleUpdateSequence()
*/
-int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *req, owsRequestObj *ows_request)
+int msWFSHandleUpdateSequence(mapObj *map, wfsParamsObj *params, const char* pszFunction)
{
- char *script_url=NULL, *script_url_encoded;
- const char *updatesequence=NULL;
- const char *wmtver=NULL;
- const char *encoding;
- char *formats_list;
- char tmpString[OWS_VERSION_MAXLEN];
- int wfsSupportedVersions[] = {OWS_1_1_0, OWS_1_0_0};
- int wfsNumSupportedVersions = 2;
+ /* -------------------------------------------------------------------- */
+ /* Handle updatesequence */
+ /* -------------------------------------------------------------------- */
+
+ const char* updatesequence = msOWSLookupMetadata(&(map->web.metadata), "FO", "updatesequence");
+
+ if (params->pszUpdateSequence != NULL) {
+ int i = msOWSNegotiateUpdateSequence(params->pszUpdateSequence, updatesequence);
+ if (i == 0) { /* current */
+ msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is equal to server (%s)", pszFunction, params->pszUpdateSequence, updatesequence);
+ /* FIXME? : according to table 7 of OWS 1.1, we should return a service */
+ /* metadata document with only “version” and “updateSequence” parameters */
+ return msWFSException(map, "updatesequence", "CurrentUpdateSequence", params->pszVersion);
+ }
+ if (i > 0) { /* invalid */
+ msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is higher than server (%s)", pszFunction, params->pszUpdateSequence, updatesequence);
+ /* locator must be NULL. See Table 25 of OWS 1.1 */
+ return msWFSExceptionNoLocator(map, "updatesequence", MS_OWS_ERROR_INVALID_UPDATE_SEQUENCE, params->pszVersion);
+ }
+ }
+
+ return MS_SUCCESS;
+}
+
- int i=0, tmpInt=0;
+/*
+** msWFSGetCapabilitiesNegotiateVersion()
+*/
+static int msWFSGetCapabilitiesNegotiateVersion(mapObj *map, wfsParamsObj *wfsparams)
+{
+ int iVersion = -1;
+ char tmpString[OWS_VERSION_MAXLEN];
/* acceptversions: do OWS Common style of version negotiation */
if (wfsparams->pszAcceptVersions && strlen(wfsparams->pszAcceptVersions) > 0) {
@@ -611,37 +659,81 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
tokens = msStringSplit(wfsparams->pszAcceptVersions, ',', &j);
for (i=0; i<j; i++) {
- int iVersion = 0;
-
iVersion = msOWSParseVersionString(tokens[i]);
- if (iVersion == -1) {
+ if (iVersion < 0) {
msSetError(MS_WFSERR, "Invalid version format : %s.", "msWFSGetCapabilities()", tokens[i]);
msFreeCharArray(tokens, j);
- return msWFSException(map, "acceptversions", "VersionNegotiationFailed",wmtver);
+ return msWFSException(map, "acceptversions", MS_OWS_ERROR_INVALID_PARAMETER_VALUE,NULL);
}
/* negotiate version */
- tmpInt = msOWSCommonNegotiateVersion(iVersion, wfsSupportedVersions, wfsNumSupportedVersions);
- if (tmpInt != -1)
+ iVersion = msOWSCommonNegotiateVersion(iVersion, wfsSupportedVersions, wfsNumSupportedVersions);
+ if (iVersion != -1)
break;
}
msFreeCharArray(tokens, j);
- if(tmpInt == -1) {
+ if(iVersion == -1) {
msSetError(MS_WFSERR, "ACCEPTVERSIONS list (%s) does not match supported versions", "msWFSGetCapabilities()", wfsparams->pszAcceptVersions);
- return msWFSException(map, "acceptversions", "VersionNegotiationFailed",wmtver);
+ /* locator must be NULL. See Table 25 of OWS 1.1 */
+ return msWFSExceptionNoLocator(map, "acceptversions", MS_OWS_ERROR_VERSION_NEGOTIATION_FAILED,NULL);
}
- } else
+ } else {
/* negotiate version */
- tmpInt = msOWSNegotiateVersion(msOWSParseVersionString(wfsparams->pszVersion), wfsSupportedVersions,
- wfsNumSupportedVersions);
+ int tmpInt;
+ iVersion = msOWSParseVersionString(wfsparams->pszVersion);
+ if( iVersion < 0 )
+ {
+ return msWFSException(map, "version", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, NULL);
+ }
+ tmpInt = msOWSCommonNegotiateVersion(iVersion, wfsSupportedVersions, wfsNumSupportedVersions);
+ /* Old style negociation : paragraph D.11 of OWS 1.1.0 spec */
+ if( tmpInt < 0 )
+ {
+ int i;
+ for( i = 0 ; i < wfsNumSupportedVersions; i++ )
+ {
+ if( iVersion >= wfsSupportedVersions[i] )
+ {
+ iVersion = wfsSupportedVersions[i];
+ break;
+ }
+ }
+ if( i == wfsNumSupportedVersions )
+ iVersion = wfsSupportedVersions[wfsNumSupportedVersions - 1];
+ }
+ }
/* set result as string and carry on */
if (wfsparams->pszVersion)
msFree(wfsparams->pszVersion);
- wfsparams->pszVersion = msStrdup(msOWSGetVersionString(tmpInt, tmpString));
+ wfsparams->pszVersion = msStrdup(msOWSGetVersionString(iVersion, tmpString));
+
+ return MS_SUCCESS;
+}
- if( wfsparams->pszVersion == NULL || strncmp(wfsparams->pszVersion,"1.1",3) == 0 )
+
+/*
+** msWFSGetCapabilities()
+*/
+int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ char *script_url=NULL, *script_url_encoded;
+ const char *updatesequence=NULL;
+ const char *wmtver=NULL;
+ char *formats_list;
+ int ret;
+ int iVersion;
+ int i=0;
+
+ ret = msWFSGetCapabilitiesNegotiateVersion(map, wfsparams);
+ if( ret != MS_SUCCESS )
+ return ret;
+
+ iVersion = msOWSParseVersionString(wfsparams->pszVersion);
+ if( iVersion == OWS_2_0_0 )
+ return msWFSGetCapabilities20( map, wfsparams, req, ows_request);
+ if( iVersion == OWS_1_1_0 )
return msWFSGetCapabilities11( map, wfsparams, req, ows_request);
/* Decide which version we're going to return... only 1.0.0 for now */
@@ -651,42 +743,24 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
if ((script_url=msOWSGetOnlineResource(map, "FO", "onlineresource", req)) == NULL ||
(script_url_encoded = msEncodeHTMLEntities(script_url)) == NULL) {
msSetError(MS_WFSERR, "Server URL not found", "msWFSGetCapabilities()");
- return msWFSException(map, "mapserv", "NoApplicableCode", wmtver);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, wmtver);
}
free(script_url);
script_url = NULL;
- updatesequence = msOWSLookupMetadata(&(map->web.metadata), "FO", "updatesequence");
-
- if (!updatesequence)
- updatesequence = msStrdup("0");
-
- if (wfsparams->pszUpdateSequence != NULL) {
- i = msOWSNegotiateUpdateSequence(wfsparams->pszUpdateSequence, updatesequence);
- if (i == 0) { /* current */
- msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is equal to server (%s)", "msWFSGetCapabilities()", wfsparams->pszUpdateSequence, updatesequence);
- free(script_url_encoded);
- return msWFSException(map, "updatesequence", "CurrentUpdateSequence", wmtver);
- }
- if (i > 0) { /* invalid */
- msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is higher than server (%s)", "msWFSGetCapabilities()", wfsparams->pszUpdateSequence, updatesequence);
+ ret = msWFSHandleUpdateSequence(map, wfsparams, "msWFSGetCapabilities()");
+ if( ret != MS_SUCCESS )
+ {
free(script_url_encoded);
- return msWFSException(map, "updatesequence", "InvalidUpdateSequence", wmtver);
- }
+ return ret;
}
- encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), "FO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" ?>\n",
- "ISO-8859-1");
-
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
+ updatesequence = msOWSLookupMetadata(&(map->web.metadata), "FO", "updatesequence");
msIO_printf("<WFS_Capabilities \n"
" version=\"%s\" \n"
" updateSequence=\"%s\" \n"
@@ -694,7 +768,7 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
" xmlns:ogc=\"http://www.opengis.net/ogc\" \n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
" xsi:schemaLocation=\"http://www.opengis.net/wfs %s/wfs/%s/WFS-capabilities.xsd\">\n",
- wmtver, updatesequence,
+ wmtver, updatesequence ? updatesequence : "0",
msOWSGetSchemasLocation(map), wmtver);
/* Report MapServer Version Information */
@@ -752,7 +826,7 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
msWFSPrintRequestCap(wmtver, "DescribeFeatureType", script_url_encoded, "SchemaDescriptionLanguage", "XMLSCHEMA" );
if (msOWSRequestIsEnabled(map, NULL, "F", "GetFeature", MS_TRUE)) {
- formats_list = msWFSGetOutputFormatList( map, NULL, wfsparams->pszVersion );
+ formats_list = msWFSGetOutputFormatList( map, NULL, OWS_1_0_0 );
msWFSPrintRequestCap(wmtver, "GetFeature", script_url_encoded, "ResultFormat", formats_list );
msFree( formats_list );
}
@@ -779,10 +853,7 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
if (lp->status == MS_DELETE)
continue;
- if (!msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers))
- continue;
-
- if (msWFSIsLayerSupported(lp)) {
+ if (msWFSIsLayerAllowed(lp, ows_request)) {
msWFSDumpLayer(map, lp);
}
}
@@ -837,20 +908,22 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
** Helper functions for producing XML schema.
*/
-static const char *msWFSGetGeometryType(char *type, int outputformat)
+static const char *msWFSGetGeometryType(const char *type, OWSGMLVersion outputformat)
{
- if(!type) return "???undefined???";
+ if(!type) return "GeometryPropertyType";
if(strcasecmp(type, "point") == 0) {
switch(outputformat) {
case OWS_GML2:
case OWS_GML3:
+ case OWS_GML32:
return "PointPropertyType";
}
} else if(strcasecmp(type, "multipoint") == 0) {
switch(outputformat) {
case OWS_GML2:
case OWS_GML3:
+ case OWS_GML32:
return "MultiPointPropertyType";
}
} else if(strcasecmp(type, "line") == 0) {
@@ -858,6 +931,7 @@ static const char *msWFSGetGeometryType(char *type, int outputformat)
case OWS_GML2:
return "LineStringPropertyType";
case OWS_GML3:
+ case OWS_GML32:
return "CurvePropertyType";
}
} else if(strcasecmp(type, "multiline") == 0) {
@@ -865,6 +939,7 @@ static const char *msWFSGetGeometryType(char *type, int outputformat)
case OWS_GML2:
return "MultiLineStringPropertyType";
case OWS_GML3:
+ case OWS_GML32:
return "MultiCurvePropertyType";
}
} else if(strcasecmp(type, "polygon") == 0) {
@@ -872,6 +947,7 @@ static const char *msWFSGetGeometryType(char *type, int outputformat)
case OWS_GML2:
return "PolygonPropertyType";
case OWS_GML3:
+ case OWS_GML32:
return "SurfacePropertyType";
}
} else if(strcasecmp(type, "multipolygon") == 0) {
@@ -879,14 +955,15 @@ static const char *msWFSGetGeometryType(char *type, int outputformat)
case OWS_GML2:
return "MultiPolygonPropertyType";
case OWS_GML3:
+ case OWS_GML32:
return "MultiSurfacePropertyType";
}
}
- return "???unkown???";
+ return "???unknown???";
}
-static void msWFSWriteGeometryElement(FILE *stream, gmlGeometryListObj *geometryList, int outputformat, const char *tab)
+static void msWFSWriteGeometryElement(FILE *stream, gmlGeometryListObj *geometryList, OWSGMLVersion outputformat, const char *tab)
{
int i;
gmlGeometryObj *geometry=NULL;
@@ -894,39 +971,58 @@ static void msWFSWriteGeometryElement(FILE *stream, gmlGeometryListObj *geometry
if(!stream || !tab) return;
if(geometryList && geometryList->numgeometries == 1 && strcasecmp(geometryList->geometries[0].name, "none") == 0) return;
- if(!geometryList || geometryList->numgeometries == 0) { /* write a default container */
- msIO_fprintf(stream, "%s<element name=\"%s\" type=\"gml:GeometryPropertyType\" minOccurs=\"0\" maxOccurs=\"1\"/>\n", tab, OWS_GML_DEFAULT_GEOMETRY_NAME);
- return;
+ if(geometryList->numgeometries == 1) {
+ geometry = &(geometryList->geometries[0]);
+ msIO_fprintf(stream, "%s<element name=\"%s\" type=\"gml:%s\" minOccurs=\"%d\"", tab, geometry->name, msWFSGetGeometryType(geometry->type, outputformat), geometry->occurmin);
+ if(geometry->occurmax == OWS_GML_OCCUR_UNBOUNDED)
+ msIO_fprintf(stream, " maxOccurs=\"unbounded\"/>\n");
+ else
+ msIO_fprintf(stream, " maxOccurs=\"%d\"/>\n", geometry->occurmax);
} else {
- if(geometryList->numgeometries == 1) {
- geometry = &(geometryList->geometries[0]);
- msIO_fprintf(stream, "%s<element name=\"%s\" type=\"gml:%s\" minOccurs=\"%d\"", tab, geometry->name, msWFSGetGeometryType(geometry->type, outputformat), geometry->occurmin);
+ msIO_fprintf(stream, "%s<choice>\n", tab);
+ for(i=0; i<geometryList->numgeometries; i++) {
+ geometry = &(geometryList->geometries[i]);
+
+ msIO_fprintf(stream, " %s<element name=\"%s\" type=\"gml:%s\" minOccurs=\"%d\"", tab, geometry->name, msWFSGetGeometryType(geometry->type, outputformat), geometry->occurmin);
if(geometry->occurmax == OWS_GML_OCCUR_UNBOUNDED)
msIO_fprintf(stream, " maxOccurs=\"unbounded\"/>\n");
else
msIO_fprintf(stream, " maxOccurs=\"%d\"/>\n", geometry->occurmax);
- } else {
- msIO_fprintf(stream, "%s<choice>\n", tab);
- for(i=0; i<geometryList->numgeometries; i++) {
- geometry = &(geometryList->geometries[i]);
-
- msIO_fprintf(stream, " %s<element name=\"%s\" type=\"gml:%s\" minOccurs=\"%d\"", tab, geometry->name, msWFSGetGeometryType(geometry->type, outputformat), geometry->occurmin);
- if(geometry->occurmax == OWS_GML_OCCUR_UNBOUNDED)
- msIO_fprintf(stream, " maxOccurs=\"unbounded\"/>\n");
- else
- msIO_fprintf(stream, " maxOccurs=\"%d\"/>\n", geometry->occurmax);
- }
- msIO_fprintf(stream, "%s</choice>\n", tab);
}
+ msIO_fprintf(stream, "%s</choice>\n", tab);
}
return;
}
-static void msWFSWriteItemElement(FILE *stream, gmlItemObj *item, const char *tab)
+static const char* msWFSMapServTypeToXMLType(const char* type)
+{
+ const char *element_type = "string";
+ /* Map from MapServer types to XSD types */
+ if( strcasecmp(type,"Integer") == 0 )
+ element_type = "integer";
+ /* Note : xs:int and xs:integer differ */
+ else if ( EQUAL(type,"int") )
+ element_type = "int";
+ else if( EQUAL(type,"Real") ||
+ EQUAL(type,"double") /* just in case someone provided the xsd type directly */ )
+ element_type = "double";
+ else if( EQUAL(type,"Character") )
+ element_type = "string";
+ else if( EQUAL(type,"Date") )
+ element_type = "date";
+ else if( EQUAL(type,"Boolean") )
+ element_type = "boolean";
+ return element_type;
+}
+
+static void msWFSWriteItemElement(FILE *stream, gmlItemObj *item, const char *tab,
+ WFSSchemaVersion outputformat, int is_nillable)
{
- char *element_name;
- char *element_type = "string";
+ const char *element_name;
+ const char *element_type = "string";
+ const char *pszMinOccurs = "";
+ const char* pszNillable = "";
if(!stream || !item || !tab) return;
if(!item->visible) return; /* not exposing this attribute */
@@ -939,33 +1035,31 @@ static void msWFSWriteItemElement(FILE *stream, gmlItemObj *item, const char *ta
if(item->type)
{
- /* Map from MapServer types to XSD types */
- if( strcasecmp(item->type,"Integer") == 0 )
- element_type = "integer";
- else if( EQUAL(item->type,"Real") ||
- EQUAL(item->type,"double") /* just in case someone provided the xsd type directly */ )
- element_type = "double";
- else if( EQUAL(item->type,"Character") )
- element_type = "string";
- else if( EQUAL(item->type,"Date") )
- element_type = "date";
- else if( EQUAL(item->type,"Boolean") )
- element_type = "boolean";
+ if( outputformat == OWS_GML32_SFE_SCHEMA && EQUAL(item->type,"Date") )
+ element_type = "gml:TimeInstantType";
+ else
+ element_type = msWFSMapServTypeToXMLType(item->type);
}
- msIO_fprintf(stream, "%s<element name=\"%s\" type=\"%s\"/>\n", tab, element_name, element_type);
+ if( item->minOccurs == 0 )
+ pszMinOccurs = " minOccurs=\"0\"";
+
+ if( is_nillable )
+ pszNillable = " nillable=\"true\"";
+
+ msIO_fprintf(stream, "%s<element name=\"%s\"%s%s type=\"%s\"/>\n", tab, element_name, pszMinOccurs, pszNillable, element_type);
return;
}
static void msWFSWriteConstantElement(FILE *stream, gmlConstantObj *constant, const char *tab)
{
- char *element_type = "string";
+ const char *element_type = "string";
if(!stream || !constant || !tab) return;
if(constant->type)
- element_type = constant->type;
+ element_type = msWFSMapServTypeToXMLType(constant->type);
msIO_fprintf(stream, "%s<element name=\"%s\" type=\"%s\"/>\n", tab, constant->name, element_type);
@@ -982,7 +1076,11 @@ static void msWFSWriteGroupElement(FILE *stream, gmlGroupObj *group, const char
return;
}
-static void msWFSWriteGroupElementType(FILE *stream, gmlGroupObj *group, gmlItemListObj *itemList, gmlConstantListObj *constantList, const char *tab)
+static void msWFSWriteGroupElementType(FILE *stream, gmlGroupObj *group,
+ gmlItemListObj *itemList,
+ gmlConstantListObj *constantList,
+ const char *tab,
+ WFSSchemaVersion outputformat)
{
int i, j;
char *element_tab;
@@ -991,8 +1089,7 @@ static void msWFSWriteGroupElementType(FILE *stream, gmlGroupObj *group, gmlItem
gmlConstantObj *constant=NULL;
/* setup the element tab */
- element_tab = (char *) malloc(sizeof(char)*strlen(tab)+5);
- MS_CHECK_ALLOC_NO_RET(element_tab, sizeof(char)*strlen(tab)+5);
+ element_tab = (char *) msSmallMalloc(sizeof(char)*strlen(tab)+5);
sprintf(element_tab, "%s ", tab);
if(group->type)
@@ -1015,7 +1112,7 @@ static void msWFSWriteGroupElementType(FILE *stream, gmlGroupObj *group, gmlItem
for(j=0; j<itemList->numitems; j++) { /* find the right gmlItemObj */
item = &(itemList->items[j]);
if(strcasecmp(item->name, group->items[i]) == 0) {
- msWFSWriteItemElement(stream, item, element_tab);
+ msWFSWriteItemElement(stream, item, element_tab, outputformat, MS_FALSE);
break;
}
}
@@ -1023,57 +1120,131 @@ static void msWFSWriteGroupElementType(FILE *stream, gmlGroupObj *group, gmlItem
msIO_fprintf(stream, "%s </sequence>\n", tab);
msIO_fprintf(stream, "%s</complexType>\n", tab);
+ free(element_tab);
return;
}
+static const char* msWFSGetGMLSchemaLocation(OWSGMLVersion outputformat)
+{
+ switch( outputformat )
+ {
+ case OWS_GML2:
+ return MS_OWSCOMMON_GML_212_SCHEMA_LOCATION;
+ case OWS_GML3:
+ return MS_OWSCOMMON_GML_311_SCHEMA_LOCATION;
+ case OWS_GML32:
+ return MS_OWSCOMMON_GML_321_SCHEMA_LOCATION;
+ }
+ return "/unknown.xsd";
+}
+
+static const char* msWFSGetGMLNamespaceURI(WFSSchemaVersion outputformat)
+{
+ switch( outputformat )
+ {
+ case OWS_DEFAULT_SCHEMA:
+ return MS_OWSCOMMON_GML_NAMESPACE_URI;
+ case OWS_SFE_SCHEMA:
+ return MS_OWSCOMMON_GML_NAMESPACE_URI;
+ case OWS_GML32_SFE_SCHEMA:
+ return MS_OWSCOMMON_GML_32_NAMESPACE_URI;
+ }
+ return "http://unknown";
+}
+
+static const char* msWFSGetGMLNamespaceURIFromGMLVersion(WFSSchemaVersion outputformat)
+{
+ switch( outputformat )
+ {
+ case OWS_GML2:
+ return MS_OWSCOMMON_GML_NAMESPACE_URI;
+ case OWS_GML3:
+ return MS_OWSCOMMON_GML_NAMESPACE_URI;
+ case OWS_GML32:
+ return MS_OWSCOMMON_GML_32_NAMESPACE_URI;
+ }
+ return "http://unknown";
+}
+
+static OWSGMLVersion msWFSGetGMLVersionFromSchemaVersion(WFSSchemaVersion outputformat)
+{
+ switch( outputformat )
+ {
+ case OWS_DEFAULT_SCHEMA:
+ return OWS_GML2;
+ case OWS_SFE_SCHEMA:
+ return OWS_GML3;
+ case OWS_GML32_SFE_SCHEMA:
+ return OWS_GML32;
+ }
+ return OWS_GML2;
+}
+
+static void msWFS_NS_printf(const char* prefix, const char* uri)
+{
+ if( prefix == NULL )
+ msIO_printf(" xmlns=\"%s\"\n", uri);
+ else
+ msIO_printf(" xmlns:%s=\"%s\"\n", prefix, uri);
+}
+
+static void msWFSPrintAdditionalNamespaces(const gmlNamespaceListObj *namespaceList)
+{
+ int i;
+ /* any additional namespaces */
+ for(i=0; i<namespaceList->numnamespaces; i++) {
+ if(namespaceList->namespaces[i].uri) {
+ char *uri_encoded=NULL;
+
+ uri_encoded = msEncodeHTMLEntities(namespaceList->namespaces[i].uri);
+ msWFS_NS_printf(namespaceList->namespaces[i].prefix, uri_encoded);
+ msFree(uri_encoded);
+ }
+ }
+}
+
+static const char* msWFSStripNS(const char* name)
+{
+ const char* pszColon = strchr(name, ':');
+ const char* pszSlash = strchr(name, '/');
+ if( pszColon && (pszSlash == NULL || pszColon < pszSlash) )
+ return pszColon + 1;
+ return name;
+}
+
/*
** msWFSDescribeFeatureType()
*/
-int msWFSDescribeFeatureType(mapObj *map, wfsParamsObj *paramsObj, owsRequestObj *ows_request)
+static
+int msWFSDescribeFeatureType(mapObj *map, wfsParamsObj *paramsObj, owsRequestObj *ows_request,
+ int nWFSVersion)
{
int i, numlayers=0;
char **layers = NULL;
- char **tokens;
- int n=0;
const char *value;
- const char *user_namespace_prefix = "ms";
- const char *user_namespace_uri = "http://mapserver.gis.umn.edu/mapserver";
+ const char *user_namespace_prefix = MS_DEFAULT_NAMESPACE_PREFIX;
+ const char *user_namespace_uri = MS_DEFAULT_NAMESPACE_URI;
char *user_namespace_uri_encoded = NULL;
const char *collection_name = OWS_WFS_FEATURE_COLLECTION_NAME;
- char *encoded_name = NULL, *encoded;
+ char *encoded;
- int outputformat = OWS_DEFAULT_SCHEMA; /* default output is GML 2.1 compliant schema*/
+ WFSSchemaVersion outputformat = OWS_DEFAULT_SCHEMA; /* default output is GML 2.1 compliant schema*/
gmlNamespaceListObj *namespaceList=NULL; /* for external application schema support */
char *mimetype = NULL;
if(paramsObj->pszTypeName && numlayers == 0) {
/* Parse comma-delimited list of type names (layers) */
- /* */
- /* __TODO__ Need to handle type grouping, e.g. "(l1,l2),l3,l4" */
- /* */
layers = msStringSplit(paramsObj->pszTypeName, ',', &numlayers);
if (numlayers > 0) {
/* strip namespace if there is one :ex TYPENAME=cdf:Other */
- tokens = msStringSplit(layers[0], ':', &n);
- if (tokens && n==2 && msGetLayerIndex(map, layers[0]) < 0) {
- msFreeCharArray(tokens, n);
- tokens = NULL;
- for (i=0; i<numlayers; i++) {
- tokens = msStringSplit(layers[i], ':', &n);
- if (tokens && n==2) {
- free(layers[i]);
- layers[i] = msStrdup(tokens[1]);
- }
- if (tokens)
- msFreeCharArray(tokens, n);
- tokens = NULL;
- }
+ for (i=0; i<numlayers; i++) {
+ char* pszTmp = msStrdup(msWFSStripNS(layers[i]));
+ free(layers[i]);
+ layers[i] = pszTmp;
}
- if (tokens)
- msFreeCharArray(tokens, n);
}
}
@@ -1084,32 +1255,53 @@ int msWFSDescribeFeatureType(mapObj *map, wfsParamsObj *paramsObj, owsRequestObj
mimetype = msEncodeHTMLEntities("text/xml; subtype=gml/2.1.2");
outputformat = OWS_DEFAULT_SCHEMA;
} else if(strcasecmp(paramsObj->pszOutputFormat, "SFE_XMLSCHEMA") == 0 ||
- strstr(paramsObj->pszOutputFormat, "gml/3")!= NULL) {
+ strstr(paramsObj->pszOutputFormat, "gml/3.1")!= NULL) {
mimetype = msEncodeHTMLEntities("text/xml; subtype=gml/3.1.1");
outputformat = OWS_SFE_SCHEMA;
+ } else if(strstr(paramsObj->pszOutputFormat, "gml/3.2")!= NULL ||
+ strstr(paramsObj->pszOutputFormat, "application/gml+xml; version=3.2")!= NULL) {
+ mimetype = msEncodeHTMLEntities("application/gml+xml; version=3.2");
+ outputformat = OWS_GML32_SFE_SCHEMA;
} else {
msSetError(MS_WFSERR, "Unsupported DescribeFeatureType outputFormat (%s).", "msWFSDescribeFeatureType()", paramsObj->pszOutputFormat);
- return msWFSException(map, "outputformat", "InvalidParameterValue", paramsObj->pszVersion);
+ if( layers )
+ msFreeCharArray(layers, numlayers);
+ msFree(mimetype);
+ return msWFSException(map, "outputformat", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
}
+ /* If no outputFormat explicitely asked, use a sensible default for the WFS version */
+ else {
+ switch( nWFSVersion )
+ {
+ case OWS_1_0_0:
+ default:
+ mimetype = msEncodeHTMLEntities("text/xml"); /* ERO: why not "text/xml; subtype=gml/2.1.2" ? */
+ break;
- /*set the output format to gml3 for wfs1.1*/
- if(mimetype == NULL) {
- if (paramsObj->pszVersion == NULL || strncmp(paramsObj->pszVersion,"1.1",3) == 0 ) {
- mimetype = msEncodeHTMLEntities("text/xml; subtype=gml/3.1.1");
- outputformat = OWS_SFE_SCHEMA;
- } else
- mimetype = msEncodeHTMLEntities("text/xml");
+ case OWS_1_1_0:
+ mimetype = msEncodeHTMLEntities("text/xml; subtype=gml/3.1.1");
+ outputformat = OWS_SFE_SCHEMA;
+ break;
+
+ case OWS_2_0_0:
+ mimetype = msEncodeHTMLEntities("application/gml+xml; version=3.2");
+ outputformat = OWS_GML32_SFE_SCHEMA;
+ break;
+ }
}
/* Validate layers */
if (numlayers > 0) {
for (i=0; i<numlayers; i++) {
- int index = msGetLayerIndex(map, layers[i]);
- if ( (index < 0) || (!msIntegerInArray(GET_LAYER(map, index)->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
+ layerObj* lp = msWFSGetLayerByName(map, ows_request, layers[i]);
+ if ( lp == NULL ) {
msSetError(MS_WFSERR, "Invalid typename (%s). A layer might be disabled for \
this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType()", layers[i]);/* paramsObj->pszTypeName); */
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
+ if( layers )
+ msFreeCharArray(layers, numlayers);
+ msFree(mimetype);
+ return msWFSException(map, "typename", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
}
}
@@ -1126,20 +1318,14 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
/*
** DescribeFeatureType response
*/
- value = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
- if (value)
- msIO_setHeader("Content-Type","%s; charset=%s",mimetype, value);
- else
- msIO_setHeader("Content-Type","%s",mimetype);
+ msIO_setHeader("Content-Type","%s; charset=UTF-8",mimetype);
msIO_sendHeaders();
if (mimetype)
msFree(mimetype);
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), "FO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_uri");
if(value) user_namespace_uri = value;
@@ -1152,33 +1338,27 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
msIO_printf("<schema\n"
" targetNamespace=\"%s\" \n"
- " xmlns:%s=\"%s\" \n"
- " xmlns:ogc=\"http://www.opengis.net/ogc\"\n"
- " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n"
- " xmlns=\"http://www.w3.org/2001/XMLSchema\"\n"
- " xmlns:gml=\"http://www.opengis.net/gml\"\n",
+ " xmlns:%s=\"%s\" \n",
user_namespace_uri_encoded, user_namespace_prefix, user_namespace_uri_encoded);
+ if( nWFSVersion < OWS_2_0_0 )
+ msWFS_NS_printf(MS_OWSCOMMON_OGC_NAMESPACE_PREFIX, MS_OWSCOMMON_OGC_NAMESPACE_URI);
+ msWFS_NS_printf("xsd", MS_OWSCOMMON_W3C_XS_NAMESPACE_URI);
+ msWFS_NS_printf(NULL, MS_OWSCOMMON_W3C_XS_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_GML_NAMESPACE_PREFIX,
+ msWFSGetGMLNamespaceURI(outputformat) );
- /* any additional namespaces */
- for(i=0; i<namespaceList->numnamespaces; i++) {
- if(namespaceList->namespaces[i].uri) {
- char *uri_encoded=NULL;
-
- uri_encoded = msEncodeHTMLEntities(namespaceList->namespaces[i].uri);
- msIO_printf(" xmlns:%s=\"%s\" \n", namespaceList->namespaces[i].prefix, uri_encoded);
- msFree(uri_encoded);
- }
- }
+ msWFSPrintAdditionalNamespaces(namespaceList);
msIO_printf(" elementFormDefault=\"qualified\" version=\"0.1\" >\n");
encoded = msEncodeHTMLEntities( msOWSGetSchemasLocation(map) );
- if(outputformat == OWS_SFE_SCHEMA) /* reference GML 3.1.1 schema */
- msIO_printf("\n <import namespace=\"http://www.opengis.net/gml\"\n"
- " schemaLocation=\"%s/gml/3.1.1/base/gml.xsd\" />\n", encoded);
- else /* default GML 2.1.x schema */
- msIO_printf("\n <import namespace=\"http://www.opengis.net/gml\"\n"
- " schemaLocation=\"%s/gml/2.1.2/feature.xsd\" />\n", encoded);
+
+ msIO_printf("\n <import namespace=\"%s\"\n"
+ " schemaLocation=\"%s%s\" />\n",
+ msWFSGetGMLNamespaceURI(outputformat),
+ encoded,
+ msWFSGetGMLSchemaLocation(msWFSGetGMLVersionFromSchemaVersion(outputformat)));
+
msFree(encoded);
/* any additional namespace includes */
@@ -1195,9 +1375,9 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
}
/* output definition for the default feature container, can't use wfs:FeatureCollection with GML3:
- kept here so that the behaviour with whs1.0 and gml3 output is preserved.
+ kept here so that the behaviour with wfs1.0 and gml3 output is preserved.
We can use the wfs:FeatureCollection for wfs1.1*/
- if(outputformat == OWS_SFE_SCHEMA && strncmp(paramsObj->pszVersion,"1.1",3) != 0) {
+ if(outputformat == OWS_SFE_SCHEMA && nWFSVersion == OWS_1_0_0 ) {
value = msOWSLookupMetadata(&(map->web.metadata), "FO", "feature_collection");
if(value) collection_name = value;
@@ -1225,8 +1405,7 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
bFound = 1;
}
- if ((numlayers == 0 || bFound) && msWFSIsLayerSupported(lp) &&
- (msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
+ if ((numlayers == 0 || bFound) && msWFSIsLayerAllowed(lp, ows_request) ) {
/*
** OK, describe this layer IF you can open it and retrieve items
@@ -1240,14 +1419,16 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
gmlGeometryListObj *geometryList=NULL;
gmlItemObj *item=NULL;
gmlConstantObj *constant=NULL;
+ char *encoded_name = NULL;
const char *layer_namespace_prefix;
+ const char *substitution_group;
char *encoded_type=NULL;
itemList = msGMLGetItems(lp, "G"); /* GML-related metadata */
constantList = msGMLGetConstants(lp, "G");
groupList = msGMLGetGroups(lp, "G");
- geometryList = msGMLGetGeometries(lp, "GFO");
+ geometryList = msGMLGetGeometries(lp, "GFO", MS_TRUE);
if (itemList == NULL || constantList == NULL || groupList == NULL || geometryList == NULL) {
msSetError(MS_MISCERR, "Unable to populate item and group metadata structures", "msWFSDescribeFeatureType()");
return MS_FAILURE;
@@ -1264,21 +1445,42 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
value = msOWSLookupMetadata(&(lp->metadata), "OFG", "layer_type");
if(value) {
encoded_type = msEncodeHTMLEntities(value);
- msIO_printf("\n"
- " <element name=\"%s\" \n"
- " type=\"%s:%s\" \n"
- " substitutionGroup=\"gml:_Feature\" />\n\n",
- encoded_name, layer_namespace_prefix, encoded_type);
- msFree(encoded_type);
- } else
- msIO_printf("\n"
- " <element name=\"%s\" \n"
- " type=\"%s:%sType\" \n"
- " substitutionGroup=\"gml:_Feature\" />\n\n",
- encoded_name, layer_namespace_prefix, encoded_name);
-
- if(strcmp(layer_namespace_prefix, user_namespace_prefix) != 0)
+ } else {
+ size_t sz = strlen(encoded_name) + strlen("Type") + 1;
+ encoded_type = (char*) msSmallMalloc(sz);
+ strlcpy(encoded_type, encoded_name, sz);
+ strlcat(encoded_type, "Type", sz);
+ }
+
+ switch(outputformat)
+ {
+ case OWS_DEFAULT_SCHEMA: /* default GML 2.1.x schema */
+ case OWS_SFE_SCHEMA: /* reference GML 3.1.1 schema */
+ default:
+ substitution_group = "gml:_Feature";
+ break;
+
+ case OWS_GML32_SFE_SCHEMA: /* reference GML 3.2.1 schema */
+ substitution_group = "gml:AbstractFeature";
+ break;
+ }
+
+ msIO_printf("\n"
+ " <element name=\"%s\" \n"
+ " type=\"%s:%s\" \n"
+ " substitutionGroup=\"%s\" />\n\n",
+ encoded_name, layer_namespace_prefix, encoded_type,
+ substitution_group);
+ msFree(encoded_type);
+
+ if(strcmp(layer_namespace_prefix, user_namespace_prefix) != 0) {
+ msFree(encoded_name);
+ msGMLFreeItems(itemList);
+ msGMLFreeConstants(constantList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
continue; /* the rest is defined in an external schema */
+ }
msIO_printf(" <complexType name=\"%sType\">\n", encoded_name);
msIO_printf(" <complexContent>\n");
@@ -1298,8 +1500,16 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
/* write the item-based schema elements */
for(k=0; k<itemList->numitems; k++) {
item = &(itemList->items[k]);
- if(msItemInGroups(item->name, groupList) == MS_FALSE)
- msWFSWriteItemElement(stdout, item, " ");
+ if(msItemInGroups(item->name, groupList) == MS_FALSE) {
+ int nillable = MS_FALSE;
+ char mdname[256];
+ const char* pszNillable;
+ snprintf(mdname, sizeof(mdname), "%s_nillable", item->name);
+ pszNillable = msOWSLookupMetadata(&(lp->metadata), "G", mdname);
+ if( pszNillable && strcasecmp(pszNillable, "true") == 0 )
+ nillable = MS_TRUE;
+ msWFSWriteItemElement(stdout, item, " ", outputformat, nillable);
+ }
}
for(k=0; k<groupList->numgroups; k++)
@@ -1312,19 +1522,20 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
/* any group types */
for(k=0; k<groupList->numgroups; k++)
- msWFSWriteGroupElementType(stdout, &(groupList->groups[k]), itemList, constantList, " ");
+ msWFSWriteGroupElementType(stdout, &(groupList->groups[k]), itemList, constantList, " ", outputformat);
msGMLFreeItems(itemList);
msGMLFreeConstants(constantList);
msGMLFreeGroups(groupList);
msGMLFreeGeometries(geometryList);
+
+ msFree(encoded_name);
}
msLayerClose(lp);
} else {
- msIO_printf("\n\n<!-- ERROR: Failed opening layer %s -->\n\n", encoded_name);
+ msIO_printf("\n\n<!-- ERROR: Failed opening layer %s -->\n\n", lp->name);
}
-
}
}
@@ -1333,7 +1544,6 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
*/
msIO_printf("\n</schema>\n");
- msFree(encoded_name);
msFree(user_namespace_uri_encoded);
if(layers)
@@ -1358,22 +1568,121 @@ typedef struct {
const char *collection_name;
const char *typename;
char *script_url, *script_url_encoded;
+ const char *output_mime_type;
const char *output_schema_format;
} WFSGMLInfo;
+
+static void msWFSPrintURLAndXMLEncoded(const char* str)
+{
+ char* url_encoded = msEncodeUrl(str);
+ char* xml_encoded = msEncodeHTMLEntities(url_encoded);
+ msIO_printf("%s", xml_encoded);
+ msFree(xml_encoded);
+ msFree(url_encoded);
+}
+
+static void msWFSGetFeature_PrintBasePrevNextURI(cgiRequestObj *req,
+ WFSGMLInfo *gmlinfo,
+ wfsParamsObj *paramsObj,
+ const char* encoded_version,
+ const char* encoded_typename,
+ const char* encoded_mime_type)
+{
+ int i;
+ int bFirstArg = MS_TRUE;
+ msIO_printf("%s", gmlinfo->script_url_encoded);
+
+ if( req->postrequest != NULL )
+ {
+ msIO_printf("SERVICE=WFS&VERSION=");
+ msIO_printf("%s", encoded_version);
+ msIO_printf("&REQUEST=");
+ msIO_printf("%s", paramsObj->pszRequest);
+ msIO_printf("&TYPENAMES=");
+ msIO_printf("%s", encoded_typename);
+ msIO_printf("&OUTPUTFORMAT=");
+ msIO_printf("%s", encoded_mime_type);
+ if( paramsObj->pszBbox != NULL )
+ {
+ msIO_printf("&BBOX=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszBbox);
+ }
+ if( paramsObj->pszSrs != NULL )
+ {
+ msIO_printf("&SRSNAME=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszSrs);
+ }
+ if( paramsObj->pszFilter != NULL )
+ {
+ msIO_printf("&FILTER=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszFilter);
+ }
+ if( paramsObj->pszPropertyName != NULL)
+ {
+ msIO_printf("&PROPERTYNAME=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszPropertyName);
+ }
+ if( paramsObj->pszValueReference != NULL)
+ {
+ msIO_printf("&VALUEREFERENCE=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszValueReference);
+ }
+ if( paramsObj->pszSortBy != NULL )
+ {
+ msIO_printf("&SORTBY=");
+ msWFSPrintURLAndXMLEncoded(paramsObj->pszSortBy);
+ }
+ if( paramsObj->nMaxFeatures >= 0 )
+ msIO_printf("&COUNT=%d", paramsObj->nMaxFeatures);
+ }
+ else
+ {
+ for(i=0; i<req->NumParams; i++) {
+ if (req->ParamNames[i] && req->ParamValues[i] &&
+ strcasecmp(req->ParamNames[i], "MAP") != 0 &&
+ strcasecmp(req->ParamNames[i], "STARTINDEX") != 0 &&
+ strcasecmp(req->ParamNames[i], "RESULTTYPE") != 0) {
+ if( !bFirstArg )
+ msIO_printf("&");
+ bFirstArg = MS_FALSE;
+ msIO_printf("%s=", req->ParamNames[i]);
+ msWFSPrintURLAndXMLEncoded(req->ParamValues[i]);
+ }
+ }
+ }
+}
+
+static void msWFSGetFeature_GetTimeStamp(char* timestring, size_t timestringlen)
+{
+ struct tm *now;
+ time_t tim=time(NULL);
+
+ now=localtime(&tim);
+
+ snprintf(timestring, timestringlen, "%d-%02d-%02dT%02d:%02d:%02d",
+ now->tm_year+1900, now->tm_mon+1, now->tm_mday,
+ now->tm_hour, now->tm_min, now->tm_sec);
+}
+
static int msWFSGetFeature_GMLPreamble( mapObj *map,
cgiRequestObj *req,
WFSGMLInfo *gmlinfo,
wfsParamsObj *paramsObj,
- int outputformat,
+ OWSGMLVersion outputformat,
int iResultTypeHits,
- int iNumberOfFeatures )
+ int iNumberOfFeatures,
+ int nMatchingFeatures,
+ int maxfeatures,
+ int bHasNextFeatures,
+ int nWFSVersion )
{
const char *value;
- int i;
- char *encoded, *encoded_typename, *encoded_schema;
+ char *encoded_version, *encoded_typename, *encoded_schema;
gmlNamespaceListObj *namespaceList=NULL; /* for external application schema support */
+ char timestring[100];
+ timestring[0] = '\0';
namespaceList = msGMLGetNamespaces(&(map->web), "G");
if (namespaceList == NULL) {
@@ -1388,16 +1697,14 @@ static int msWFSGetFeature_GMLPreamble( mapObj *map,
if ((gmlinfo->script_url=msOWSGetOnlineResource(map,"FO","onlineresource",req)) ==NULL ||
(gmlinfo->script_url_encoded = msEncodeHTMLEntities(gmlinfo->script_url)) == NULL) {
msSetError(MS_WFSERR, "Server URL not found", "msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
+ msGMLFreeNamespaces(namespaceList);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
}
/*
** Write encoding.
*/
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata), "FO",
- "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_uri");
if(value) gmlinfo->user_namespace_uri = value;
@@ -1413,109 +1720,211 @@ static int msWFSGetFeature_GMLPreamble( mapObj *map,
value = msOWSLookupMetadata(&(map->web.metadata), "FO", "feature_collection");
if(value) gmlinfo->collection_name = value;
- encoded = msEncodeHTMLEntities( paramsObj->pszVersion );
+ encoded_version = msEncodeHTMLEntities( paramsObj->pszVersion );
encoded_typename = msEncodeHTMLEntities( gmlinfo->typename );
encoded_schema = msEncodeHTMLEntities( msOWSGetSchemasLocation(map) );
- /*
- ** GML 2.x
- */
- if(outputformat == OWS_GML2) { /* use a wfs:FeatureCollection */
- msIO_printf("<wfs:FeatureCollection\n"
- " xmlns:%s=\"%s\"\n"
- " xmlns:wfs=\"http://www.opengis.net/wfs\"\n"
- " xmlns:gml=\"http://www.opengis.net/gml\"\n"
- " xmlns:ogc=\"http://www.opengis.net/ogc\"\n"
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n",
- gmlinfo->user_namespace_prefix,
- gmlinfo->user_namespace_uri_encoded);
+ if( nWFSVersion >= OWS_2_0_0) {
+ int nNextStartIndex;
+ char* tmp;
+ char* encoded_mime_type;
+ int bAbleToPrintPreviousOrNext = MS_TRUE;
- /* any additional namespaces */
- for(i=0; i<namespaceList->numnamespaces; i++) {
- if(namespaceList->namespaces[i].uri) {
- char *uri_encoded=NULL;
+ tmp = msEncodeUrl( gmlinfo->output_mime_type );
+ encoded_mime_type = msEncodeHTMLEntities( tmp );
+ msFree(tmp);
- uri_encoded = msEncodeHTMLEntities(namespaceList->namespaces[i].uri);
- msIO_printf(" xmlns:%s=\"%s\" \n", namespaceList->namespaces[i].prefix, uri_encoded);
- msFree(uri_encoded);
- }
+ msWFSGetFeature_GetTimeStamp(timestring, sizeof(timestring));
+
+ if( strcasecmp(paramsObj->pszRequest, "GetFeature") == 0 )
+ msIO_printf("<wfs:FeatureCollection\n");
+ else
+ msIO_printf("<wfs:ValueCollection\n");
+
+ msWFS_NS_printf(gmlinfo->user_namespace_prefix,
+ gmlinfo->user_namespace_uri_encoded);
+ msWFS_NS_printf(MS_OWSCOMMON_GML_NAMESPACE_PREFIX,
+ msWFSGetGMLNamespaceURIFromGMLVersion(outputformat));
+ msWFS_NS_printf(MS_OWSCOMMON_WFS_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI);
+ msWFSPrintAdditionalNamespaces(namespaceList);
+
+ msIO_printf(" xsi:schemaLocation=\"%s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s "
+ "%s %s%s "
+ "%s %s%s\"\n",
+ gmlinfo->user_namespace_uri_encoded,
+ gmlinfo->script_url_encoded, encoded_version,
+ encoded_typename,
+ gmlinfo->output_schema_format,
+
+ MS_OWSCOMMON_WFS_20_NAMESPACE_URI,
+ encoded_schema,
+ MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION,
+
+ msWFSGetGMLNamespaceURIFromGMLVersion(outputformat),
+ encoded_schema,
+ msWFSGetGMLSchemaLocation(outputformat));
+
+ msIO_printf(" timeStamp=\"%s\" numberMatched=\"", timestring);
+ if( nMatchingFeatures < 0 )
+ {
+ /* If we don't know the exact number, at least return something */
+ /* equivalent to what we would return with WFS 1.1, otherwise */
+ /* resultType=hits would not return anything usefull to the client. */
+ if( iResultTypeHits == MS_TRUE )
+ msIO_printf("%d", iNumberOfFeatures);
+ else
+ msIO_printf("unknown");
}
+ else
+ msIO_printf("%d", nMatchingFeatures);
+ msIO_printf("\" numberReturned=\"%d\"",
+ (iResultTypeHits == 1) ? 0 : iNumberOfFeatures);
+
+ /* TODO: in case of a multi-layer GetFeature POST, it is difficult to build a */
+ /* valid GET KVP GetFeature/GetPropertyValue when some options are specified. So for now just */
+ /* avoid those problematic cases */
+ if( req->postrequest != NULL && (paramsObj->bHasPostStoredQuery ||
+ (strchr(encoded_typename, ',') != NULL &&
+ (paramsObj->pszFilter != NULL || paramsObj->pszPropertyName != NULL ||
+ paramsObj->pszSortBy != NULL))) )
+ {
+ bAbleToPrintPreviousOrNext = MS_FALSE;
+ }
+
+ if( bAbleToPrintPreviousOrNext )
+ {
+ if( maxfeatures > 0 &&
+ iResultTypeHits != 1 && paramsObj->nStartIndex > 0 &&
+ ((nMatchingFeatures < 0 && iNumberOfFeatures > 0) ||
+ (nMatchingFeatures >= 0 && paramsObj->nStartIndex < nMatchingFeatures)) )
+ {
+ int nPrevStartIndex;
+
+ msIO_printf("\n");
+ msIO_printf(" previous=\"");
+ msWFSGetFeature_PrintBasePrevNextURI(req,gmlinfo, paramsObj,
+ encoded_version,
+ encoded_typename,
+ encoded_mime_type);
+
+ nPrevStartIndex = paramsObj->nStartIndex - maxfeatures;
+ if( nPrevStartIndex > 0 )
+ msIO_printf("&STARTINDEX=%d", nPrevStartIndex);
+ msIO_printf("\"");
+ }
+
+ if( iResultTypeHits != 1 && paramsObj->nStartIndex >= 0 )
+ nNextStartIndex = paramsObj->nStartIndex;
+ else
+ nNextStartIndex = 0;
+ if( maxfeatures > 0 && (bHasNextFeatures || (nMatchingFeatures > 0 &&
+ (iResultTypeHits == 1 || iNumberOfFeatures + nNextStartIndex < nMatchingFeatures))) )
+ {
+ msIO_printf("\n");
+ msIO_printf(" next=\"");
+ msWFSGetFeature_PrintBasePrevNextURI(req,gmlinfo, paramsObj,
+ encoded_version,
+ encoded_typename,
+ encoded_mime_type);
+
+ if( iResultTypeHits != 1 )
+ nNextStartIndex += iNumberOfFeatures;
+
+ if( nNextStartIndex > 0 )
+ msIO_printf("&STARTINDEX=%d", nNextStartIndex);
+ msIO_printf("\"");
+ }
+ }
+
+ msIO_printf(">\n");
+
+ msFree(encoded_mime_type);
+ }
+ /*
+ ** GML 2.x
+ */
+ else if(outputformat == OWS_GML2) { /* use a wfs:FeatureCollection */
+ msIO_printf("<wfs:FeatureCollection\n");
+ msWFS_NS_printf(gmlinfo->user_namespace_prefix,
+ gmlinfo->user_namespace_uri_encoded);
+ msWFS_NS_printf(MS_OWSCOMMON_WFS_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_WFS_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_GML_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_GML_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_OGC_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_OGC_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI);
+ msWFSPrintAdditionalNamespaces(namespaceList);
+
+ /* FIXME ? : the schemaLocation will be only valid for WFS 1.0.0 */
msIO_printf(" xsi:schemaLocation=\"http://www.opengis.net/wfs %s/wfs/%s/WFS-basic.xsd \n"
" %s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s\">\n",
- encoded_schema, encoded,
+ encoded_schema, encoded_version,
gmlinfo->user_namespace_uri_encoded,
- gmlinfo->script_url_encoded, encoded,
+ gmlinfo->script_url_encoded, encoded_version,
encoded_typename, gmlinfo->output_schema_format);
}
/*
** GML 3
*/
- else {
- if(paramsObj->pszVersion && strncmp(paramsObj->pszVersion,"1.1",3) == 0 ) {
- msIO_printf("<wfs:FeatureCollection\n"
- " xmlns:%s=\"%s\"\n"
- " xmlns:gml=\"http://www.opengis.net/gml\"\n"
- " xmlns:wfs=\"http://www.opengis.net/wfs\"\n"
- " xmlns:ogc=\"http://www.opengis.net/ogc\"\n"
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n",
- gmlinfo->user_namespace_prefix,
- gmlinfo->user_namespace_uri_encoded);
+ else if( outputformat == OWS_GML3 ) {
+ if( nWFSVersion == OWS_1_1_0 ) {
+ msIO_printf("<wfs:FeatureCollection\n");
+ msWFS_NS_printf(gmlinfo->user_namespace_prefix,
+ gmlinfo->user_namespace_uri_encoded);
+ msWFS_NS_printf(MS_OWSCOMMON_GML_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_GML_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_WFS_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_WFS_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_OGC_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_OGC_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI);
} else {
msIO_printf("<%s:%s\n"
- " version=\"1.0.0\"\n"
- " xmlns:%s=\"%s\"\n"
- " xmlns:gml=\"http://www.opengis.net/gml\"\n"
- " xmlns:ogc=\"http://www.opengis.net/ogc\"\n"
- " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n",
+ " version=\"1.0.0\"\n",
gmlinfo->user_namespace_prefix,
- gmlinfo->collection_name,
- gmlinfo->user_namespace_prefix,
- gmlinfo->user_namespace_uri_encoded);
+ gmlinfo->collection_name);
+ msWFS_NS_printf(gmlinfo->user_namespace_prefix,
+ gmlinfo->user_namespace_uri_encoded);
+ msWFS_NS_printf(MS_OWSCOMMON_GML_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_GML_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_OGC_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_OGC_NAMESPACE_URI);
+ msWFS_NS_printf(MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX,
+ MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI);
}
- /* any additional namespaces */
- for(i=0; i<namespaceList->numnamespaces; i++) {
- if(namespaceList->namespaces[i].uri) {
- char *uri_encoded=NULL;
- uri_encoded = msEncodeHTMLEntities(namespaceList->namespaces[i].uri);
- msIO_printf(" xmlns:%s=\"%s\" \n", namespaceList->namespaces[i].prefix, uri_encoded);
- msFree(uri_encoded);
- }
- }
+ msWFSPrintAdditionalNamespaces(namespaceList);
- if(paramsObj->pszVersion && strncmp(paramsObj->pszVersion,"1.1",3) == 0) {
- if (iResultTypeHits == 1) {
- char timestring[100];
- struct tm *now;
- time_t tim=time(NULL);
+ msIO_printf(" xsi:schemaLocation=\"%s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s",
+ gmlinfo->user_namespace_uri_encoded,
+ gmlinfo->script_url_encoded, encoded_version,
+ encoded_typename, gmlinfo->output_schema_format);
- now=localtime(&tim);
+ if( nWFSVersion == OWS_1_1_0 ) {
- snprintf(timestring, sizeof(timestring), "%d-%02d-%02dT%02d:%02d:%02d",
- now->tm_year+1900, now->tm_mon+1, now->tm_mday,
- now->tm_hour, now->tm_min, now->tm_sec);
+ msIO_printf(" %s %s%s",
+ MS_OWSCOMMON_WFS_NAMESPACE_URI,
+ encoded_schema,
+ MS_OWSCOMMON_WFS_11_SCHEMA_LOCATION);
- msIO_printf(" xsi:schemaLocation=\"%s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd\" timeStamp=\"%s\" numberOfFeatures=\"%d\">\n",
- gmlinfo->user_namespace_uri_encoded,
- gmlinfo->script_url_encoded, encoded,
- encoded_typename,
- gmlinfo->output_schema_format,
+ if (iResultTypeHits == 1) {
+ msWFSGetFeature_GetTimeStamp(timestring, sizeof(timestring));
+
+ msIO_printf("\" timeStamp=\"%s\" numberOfFeatures=\"%d",
timestring, iNumberOfFeatures);
- } else
- msIO_printf(" xsi:schemaLocation=\"%s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd\">\n",
- gmlinfo->user_namespace_uri_encoded,
- gmlinfo->script_url_encoded, encoded,
- encoded_typename,
- gmlinfo->output_schema_format);
- } else
- msIO_printf(" xsi:schemaLocation=\"%s %sSERVICE=WFS&VERSION=%s&REQUEST=DescribeFeatureType&TYPENAME=%s&OUTPUTFORMAT=%s\">\n",
- gmlinfo->user_namespace_uri_encoded,
- gmlinfo->script_url_encoded, encoded,
- encoded_typename, gmlinfo->output_schema_format);
+ }
+ }
+ msIO_printf("\">\n");
}
- msFree(encoded);
+ msFree(encoded_version);
msFree(encoded_schema);
msFree(encoded_typename);
@@ -1534,518 +1943,358 @@ static int msWFSGetFeature_GMLPostfix( mapObj *map,
cgiRequestObj *req,
WFSGMLInfo *gmlinfo,
wfsParamsObj *paramsObj,
- int outputformat,
+ OWSGMLVersion outputformat,
int maxfeatures,
int iResultTypeHits,
- int iNumberOfFeatures )
+ int iNumberOfFeatures,
+ int nWFSVersion )
{
if (((iNumberOfFeatures==0) || (maxfeatures == 0)) && iResultTypeHits == 0) {
- msIO_printf(" <gml:boundedBy>\n");
- if(outputformat == OWS_GML3)
- msIO_printf(" <gml:Null>missing</gml:Null>\n");
- else
- msIO_printf(" <gml:null>missing</gml:null>\n");
- msIO_printf(" </gml:boundedBy>\n");
- }
+ if( nWFSVersion < OWS_2_0_0 )
+ {
+ msIO_printf(" <gml:boundedBy>\n");
+ if(outputformat == OWS_GML3 || outputformat == OWS_GML32 )
+ msIO_printf(" <gml:Null>missing</gml:Null>\n");
+ else
+ msIO_printf(" <gml:null>missing</gml:null>\n");
+ msIO_printf(" </gml:boundedBy>\n");
+ }
+ }
if(outputformat == OWS_GML2)
msIO_printf("</wfs:FeatureCollection>\n\n");
else {
- if(paramsObj->pszVersion && strncmp(paramsObj->pszVersion,"1.1",3) == 0)
+ if( nWFSVersion >= OWS_1_1_0 )
msIO_printf("</wfs:FeatureCollection>\n\n");
else
msIO_printf("</%s:%s>\n\n", gmlinfo->user_namespace_prefix, gmlinfo->collection_name);
}
- free(gmlinfo->script_url);
- free(gmlinfo->script_url_encoded);
- msFree(gmlinfo->user_namespace_uri_encoded);
-
return MS_SUCCESS;
}
/*
-** msWFSGetFeature()
+** msWFSBuildParamList()
*/
-int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req, owsRequestObj *ows_request)
-/* const char *wmtver, char **names, char **values, int numentries) */
+static void msWFSBuildParamList(char** ppszStrList, const char* pszValue,
+ const char* pszSep)
{
- int i, j, status;
- int maxfeatures=-1,startindex=-1;
- rectObj bbox;
-
- char **layers = NULL;
- int numlayers = 0;
-
- char *pszFilter = NULL;
- int bFilterSet = 0;
- int bBBOXSet = 0;
- char *sBBoxSrs = NULL;
- int bFeatureIdSet = 0;
-
- const char *value;
- const char *tmpmaxfeatures = NULL;
- WFSGMLInfo gmlinfo;
-
- const char *output_mime_type = "text/xml; subtype=gml/3.1.1";
- int outputformat = OWS_GML2; /* default output is GML 2.1 */
- outputFormatObj *psFormat = NULL;
-
- char **aFIDLayers = NULL;
- char **aFIDValues = NULL;
- int iFIDLayers = 0;
- int iNumberOfFeatures = 0;
- int iResultTypeHits = 0;
-
- char **papszPropertyName = NULL;
- int nPropertyNames = 0;
- int nQueriedLayers=0;
- layerObj *lpQueried=NULL;
-
- /*use msLayerGetShape instead of msLayerResultsGetShape of complex filter #3305
- int bComplexFilter = MS_FALSE;
- */
-
- /* Initialize gml options */
- memset( &gmlinfo, 0, sizeof(gmlinfo) );
- gmlinfo.user_namespace_prefix = "ms";
- gmlinfo.user_namespace_uri = "http://mapserver.gis.umn.edu/mapserver";
- gmlinfo.collection_name = OWS_WFS_FEATURE_COLLECTION_NAME;
- gmlinfo.typename = "";
- gmlinfo.output_schema_format = "XMLSCHEMA";
-
- /* Default filter is map extents */
- bbox = map->extent;
-
- /* Read CGI parameters */
- /* */
- /* __TODO__ Need to support XML encoded requests */
- /* */
+ if (*ppszStrList == NULL)
+ *ppszStrList = msStrdup(pszValue);
+ else
+ {
+ char* pszTmp = msStrdup(*ppszStrList);
+ *ppszStrList =
+ (char *)msSmallRealloc(*ppszStrList,
+ sizeof(char)*
+ (strlen(pszTmp)+
+ strlen(pszSep)+
+ strlen(pszValue)+1));
+
+ sprintf(*ppszStrList,"%s%s%s",pszTmp,pszSep,pszValue);
+ free(pszTmp);
+ }
+}
- if (paramsObj->pszResultType != NULL) {
- if (strcasecmp(paramsObj->pszResultType, "hits") == 0)
- iResultTypeHits = 1;
- }
+/*
+** msWFSTurnOffAllLayer()
+*/
+static void msWFSTurnOffAllLayer(mapObj* map)
+{
+ int j;
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ lp = GET_LAYER(map, j);
+ lp->status = MS_OFF;
+ }
+}
- /* typename is mandatory unlsess featureid is specfied. We do not
- support featureid */
- if (paramsObj->pszTypeName==NULL && paramsObj->pszFeatureId == NULL) {
- msSetError(MS_WFSERR,
- "Incomplete WFS request: TYPENAME parameter missing",
- "msWFSGetFeature()");
- return msWFSException(map, "typename", "MissingParameterValue", paramsObj->pszVersion);
- }
+/*
+** msWFSRunFilter()
+*/
+static int msWFSRunFilter(mapObj* map,
+ layerObj* lp,
+ const wfsParamsObj *paramsObj,
+ const char* pszFilter,
+ int nWFSVersion)
+{
+ int layerWasOpened;
+ FilterEncodingNode *psNode = NULL;
- if(paramsObj->pszTypeName) {
- int j, k, y,z;
+ psNode = FLTParseFilterEncoding(pszFilter);
- char **tokens;
- int n=0, i=0;
- char szTmp[256];
- const char *pszFullName = NULL;
+ if (!psNode) {
+ msSetError(MS_WFSERR,
+ "Invalid or Unsupported FILTER in GetFeature : %s",
+ "msWFSGetFeature()", pszFilter);
+ return msWFSException(map, "filter", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
- /* keep a ref for layer use. */
- gmlinfo.typename = paramsObj->pszTypeName;
+ /* Starting with WFS 1.1, we need to swap coordinates of BBOX or geometry */
+ /* parameters in some circumstances */
+ if( nWFSVersion >= OWS_1_1_0 )
+ {
+ int bDefaultSRSNeedsAxisSwapping = MS_FALSE;
+ const char* srs = msOWSGetEPSGProj(&(map->projection),&(map->web.metadata),"FO",MS_TRUE);
+ if (!srs)
+ {
+ srs = msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FO", MS_TRUE);
+ }
+ if ( srs && strncasecmp(srs, "EPSG:", 5) == 0 )
+ {
+ bDefaultSRSNeedsAxisSwapping = msIsAxisInverted(atoi(srs+5));
+ }
+ FLTDoAxisSwappingIfNecessary(psNode, bDefaultSRSNeedsAxisSwapping);
+ }
- /* Parse comma-delimited list of type names (layers) */
- /* */
- /* __TODO__ Need to handle type grouping, e.g. "(l1,l2),l3,l4" */
- /* */
- layers = msStringSplit(gmlinfo.typename, ',', &numlayers);
+ layerWasOpened = msLayerIsOpen(lp);
+ if( !layerWasOpened && msLayerOpen(lp) != MS_SUCCESS )
+ {
+ FLTFreeFilterEncodingNode( psNode );
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
- /* ==================================================================== */
- /* TODO: check if the typename contains namespaces (ex cdf:Other), */
- /* If that is the case extract only the layer name. */
- /* ==================================================================== */
+ /*preparse the filter for gml aliases*/
+ FLTPreParseFilterForAliasAndGroup(psNode, map, lp->index, "G");
- if (layers==NULL || numlayers < 1) {
- msSetError(MS_WFSERR, "At least one type name required in TYPENAME parameter.", "msWFSGetFeature()");
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
+ /* Check that FeatureId filters are consistant with the active layer */
+ if( FLTCheckFeatureIdFilters(psNode, map, lp->index) == MS_FAILURE)
+ {
+ FLTFreeFilterEncodingNode( psNode );
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
}
- tokens = msStringSplit(layers[0], ':', &n);
- if (tokens && n==2 && msGetLayerIndex(map, layers[0]) < 0) {
- msFreeCharArray(tokens, n);
- for (i=0; i<numlayers; i++) {
- tokens = msStringSplit(layers[i], ':', &n);
- if (tokens && n==2) {
- free(layers[i]);
- layers[i] = msStrdup(tokens[1]);
+ /* FIXME?: could probably apply to WFS 1.1 too */
+ if( nWFSVersion >= OWS_2_0_0 )
+ {
+ int nEvaluation;
+
+ if( FLTCheckInvalidOperand(psNode) == MS_FAILURE)
+ {
+ FLTFreeFilterEncodingNode( psNode );
+ return msWFSException(map, "filter", MS_WFS_ERROR_OPERATION_PROCESSING_FAILED, paramsObj->pszVersion);
}
- if (tokens)
- msFreeCharArray(tokens, n);
- }
- } else
- msFreeCharArray(tokens, n);
+ if( FLTCheckInvalidProperty(psNode, map, lp->index) == MS_FAILURE)
+ {
+ FLTFreeFilterEncodingNode( psNode );
+ return msWFSException(map, "filter", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+ psNode = FLTSimplify(psNode, &nEvaluation);
+ if( psNode == NULL )
+ {
+ FLTFreeFilterEncodingNode( psNode );
+ if( nEvaluation == 1 ) {
+ /* return full layer */
+ return msWFSRunBasicGetFeature(map, lp, paramsObj, nWFSVersion);
+ }
+ else {
+ /* return empty result set */
+ return MS_SUCCESS;
+ }
+ }
- /* Keep only selected layers, set to OFF by default. */
- for(j=0; j<map->numlayers; j++) {
- layerObj *lp;
+ }
- lp = GET_LAYER(map, j);
+ /* run filter. If no results are found, do not throw exception */
+ /* this is a null result */
+ if( FLTApplyFilterToLayer(psNode, map, lp->index) != MS_SUCCESS ) {
+ errorObj* ms_error = msGetErrorObj();
- /* Keep only selected layers, set to OFF by default. */
- lp->status = MS_OFF;
+ if(ms_error->code != MS_NOTFOUND) {
+ msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature()");
+ FLTFreeFilterEncodingNode( psNode );
+ return msWFSException(map, "mapserv", ( nWFSVersion >= OWS_2_0_0 ) ? MS_WFS_ERROR_OPERATION_PROCESSING_FAILED : MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
}
- for (k=0; k<numlayers; k++) {
- int bLayerFound = MS_FALSE;
-
- for (j=0; j<map->numlayers; j++) {
- layerObj *lp;
- char *pszPropertyName = NULL;
+ FLTFreeFilterEncodingNode( psNode );
- lp = GET_LAYER(map, j);
+ return MS_SUCCESS;
+}
- if (msWFSIsLayerSupported(lp) && lp->name && (strcasecmp(lp->name, layers[k]) == 0) &&
- (msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
- bLayerFound = MS_TRUE;
+/*
+** msWFSRunBasicGetFeature()
+*/
+static int msWFSRunBasicGetFeature(mapObj* map,
+ layerObj* lp,
+ const wfsParamsObj *paramsObj,
+ int nWFSVersion)
+{
+ const char *pszMapSRS=NULL, *pszLayerSRS=NULL;
+ rectObj ext;
+ int status;
+
+ map->query.type = MS_QUERY_BY_RECT; /* setup the query */
+ map->query.mode = MS_QUERY_MULTIPLE;
+ map->query.rect = map->extent;
+ map->query.layer = lp->index;
+
+ /*if srsName was given for wfs 1.1.0, It is at this point loaded into the
+ map object and should be used*/
+ if(!paramsObj->pszSrs)
+ pszMapSRS = msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FO", MS_TRUE);
- lp->status = MS_ON;
- if (lp->template == NULL) {
- /* Force setting a template to enable query. */
- lp->template = msStrdup("ttt.html");
- }
+ if (msOWSGetLayerExtent(map, lp, "FO", &ext) == MS_SUCCESS) {
- /* set the gml_include_items METADATA */
- if (paramsObj->pszPropertyName) {
- pszPropertyName = paramsObj->pszPropertyName;
-
- /*we parse the propertyname parameter only once*/
- if (papszPropertyName == NULL) {
- if (strlen(pszPropertyName) > 0 && (pszPropertyName[0] == '(' || numlayers == 1)) {
- if (numlayers == 1 && pszPropertyName[0] != '(') {
- /* Accept PROPERTYNAME without () when there is a single TYPENAME */
- char* pszTmpPropertyName = msSmallMalloc(1+strlen(pszPropertyName)+1+1);
- sprintf(pszTmpPropertyName, "(%s)", pszPropertyName);
- tokens = msStringSplit(pszTmpPropertyName+1, '(', &nPropertyNames);
- free(pszTmpPropertyName);
- } else
- tokens = msStringSplit(pszPropertyName+1, '(', &nPropertyNames);
-
- /*expecting to always have a list of property names equal to
- the number of layers(typename)*/
- if (nPropertyNames != numlayers) {
- if (tokens)
- msFreeCharArray(tokens, nPropertyNames);
- msSetError(MS_WFSERR,
- "Optional PROPERTYNAME parameter. A list of properties may be specified for each type name. Example TYPENAME=name1&name2&PROPERTYNAME=(prop1,prop2)(prop1)",
- "msWFSGetFeature()");
- return msWFSException(map, "PROPERTYNAME", "InvalidParameterValue", paramsObj->pszVersion);
- }
+ /* For a single point layer, to avoid numerical precision issues */
+ /* when reprojection is involved */
+ ext.minx -= 1e-5;
+ ext.miny -= 1e-5;
+ ext.maxx += 1e-5;
+ ext.maxy += 1e-5;
- papszPropertyName = (char **)msSmallMalloc(sizeof(char *)*nPropertyNames);
- for (i=0; i<nPropertyNames; i++) {
- if (strlen(tokens[i]) > 0) {
- /*trim namespaces. PROPERTYNAME=(ns:prop1,ns:prop2)(prop1)*/
- if (strstr(tokens[i], ":")) {
- char **tokens1, **tokens2;
- int n1=0,n2=0,l=0;
- char *pszTmp = NULL;
-
- tokens1 = msStringSplit(tokens[i], ',', &n1);
- for (l=0; l<n1; l++) {
- if (pszTmp!=NULL)
- pszTmp = msStringConcatenate(pszTmp,",");
-
- if (strstr(tokens1[l],":")) {
- tokens2 = msStringSplit(tokens1[l], ':', &n2);
- if (tokens2 && n2==2)
- pszTmp = msStringConcatenate(pszTmp, tokens2[1]);
- else
- pszTmp = msStringConcatenate(pszTmp,tokens1[l]);
- if (tokens2 && n2>0)
- msFreeCharArray(tokens2, n2);
- } else
- pszTmp = msStringConcatenate(pszTmp,tokens1[l]);
- }
- papszPropertyName[i] = msStrdup(pszTmp);
- msFree(pszTmp);
- if (tokens1 && n1>0)
- msFreeCharArray(tokens1, n1);
- } else
- papszPropertyName[i] = msStrdup(tokens[i]);
- /* remove trailing ) */
- papszPropertyName[i][strlen(papszPropertyName[i])-1] = '\0';
- } else
- papszPropertyName[i] = NULL; /*should return an error*/
- }
- if (tokens)
- msFreeCharArray(tokens, nPropertyNames);
- } else {
- msSetError(MS_WFSERR,
- "Optional PROPERTYNAME parameter. A list of properties may be specified for each type name. Example TYPENAME=name1&name2&PROPERTYNAME=(prop1,prop2)(prop1)",
- "msWFSGetFeature()");
- return msWFSException(map, "PROPERTYNAME", "InvalidParameterValue", paramsObj->pszVersion);
- }
- }
- /*do an alias replace for the current layer*/
- if (papszPropertyName && msLayerOpen(lp) == MS_SUCCESS && msLayerGetItems(lp) == MS_SUCCESS) {
- for(z=0; z<lp->numitems; z++) {
- if (!lp->items[z] || strlen(lp->items[z]) <= 0)
- continue;
- snprintf(szTmp, sizeof(szTmp), "%s_alias", lp->items[z]);
- pszFullName = msOWSLookupMetadata(&(lp->metadata), "G", szTmp);
- if (pszFullName)
- papszPropertyName[k] = msReplaceSubstring(papszPropertyName[k], pszFullName, lp->items[z]);
+ if (pszMapSRS != NULL && strncmp(pszMapSRS, "EPSG:", 5) == 0) {
- }
+ if( nWFSVersion >= OWS_1_1_0 )
+ status = msLoadProjectionStringEPSG(&(map->projection), pszMapSRS);
+ else
+ status = msLoadProjectionString(&(map->projection), pszMapSRS);
- /*validate that the property names passed are part of the items list*/
- tokens = msStringSplit(papszPropertyName[k], ',', &n);
- for (y=0; y<n; y++) {
- if (tokens[y] && strlen(tokens[y]) > 0) {
- if (strcasecmp(tokens[y], "*") == 0 ||
- strcasecmp(tokens[y], "!") == 0)
- continue;
- for(z=0; z<lp->numitems; z++) {
- if (strcasecmp(tokens[y], lp->items[z]) == 0)
- break;
- }
- /*we need to check of the property name is the geometry name; In that case it
- is a valid property name*/
- if (msOWSLookupMetadata(&(lp->metadata), "OFG", "geometries") != NULL)
- snprintf(szTmp, sizeof(szTmp), "%s", msOWSLookupMetadata(&(lp->metadata), "OFG", "geometries"));
- else
- snprintf(szTmp, sizeof(szTmp), OWS_GML_DEFAULT_GEOMETRY_NAME);
- if (z == lp->numitems && strcasecmp(tokens[y], szTmp) != 0) {
- msSetError(MS_WFSERR,
- "Invalid PROPERTYNAME %s", "msWFSGetFeature()", tokens[y]);
- msFreeCharArray(tokens, n);
- return msWFSException(map, "PROPERTYNAME", "InvalidParameterValue", paramsObj->pszVersion);
- }
- }
- }
- if (tokens && n > 0)
- msFreeCharArray(tokens, n);
- msLayerClose(lp);
+ if (status != 0) {
+ msSetError(MS_WFSERR, "msLoadProjectionString() failed: %s",
+ "msWFSGetFeature()", pszMapSRS);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE,
+ paramsObj->pszVersion);
}
+ }
- if (papszPropertyName) {
- if (strlen(papszPropertyName[k]) > 0) {
- if (strcasecmp(papszPropertyName[k], "*") == 0) {
- msInsertHashTable(&(lp->metadata), "GML_INCLUDE_ITEMS", "all");
- }
- /*this character is only used internally and allows postrequest to
- have a proper property name parsing. It means do not affect what was set
- in the map file, It is set necessary when a wfs post request is used with
- several query elements, with some having property names and some not*/
- else if (strcasecmp(papszPropertyName[k], "!") == 0) {
- } else {
- msInsertHashTable(&(lp->metadata), "GML_INCLUDE_ITEMS", papszPropertyName[k]);
-
- /* exclude geometry if it was not asked for */
- if (msOWSLookupMetadata(&(lp->metadata), "OFG", "geometries") != NULL)
- snprintf(szTmp, sizeof(szTmp), "%s", msOWSLookupMetadata(&(lp->metadata), "OFG", "geometries"));
- else
- snprintf(szTmp, sizeof(szTmp), OWS_GML_DEFAULT_GEOMETRY_NAME);
-
- if (strstr(papszPropertyName[k], szTmp) == NULL)
- msInsertHashTable(&(lp->metadata), "GML_GEOMETRIES", "none");
+ /*make sure that the layer projection is loaded.
+ It could come from a ows/wfs_srs metadata*/
+ if (lp->projection.numargs == 0) {
+ pszLayerSRS = msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FO", MS_TRUE);
+ if (pszLayerSRS) {
+ if (strncmp(pszLayerSRS, "EPSG:", 5) == 0) {
+ if( nWFSVersion >= OWS_1_1_0 )
+ msLoadProjectionStringEPSG(&(lp->projection), pszLayerSRS);
+ else
+ msLoadProjectionString(&(lp->projection), pszLayerSRS);
}
- } else /*empty string*/
- msInsertHashTable(&(lp->metadata), "GML_GEOMETRIES", "none");
-
}
- }
}
- }
- if (!bLayerFound) {
- /* Requested layer name was not in capabilities:
- * either it just doesn't exist
- */
- msSetError(MS_WFSERR,
- "TYPENAME '%s' doesn't exist in this server. Please check the capabilities and reformulate your request.",
- "msWFSGetFeature()", layers[k]);
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
- }
+ if (msProjectionsDiffer(&map->projection, &lp->projection) == MS_TRUE) {
+ msProjectRect(&lp->projection, &map->projection, &(ext));
+ }
+ map->query.rect = ext;
}
- }
-
-
- if (papszPropertyName && nPropertyNames > 0) {
- for (i=0; i<nPropertyNames; i++)
- msFree(papszPropertyName[i]);
-
- msFree(papszPropertyName);
- }
-
- /* Validate outputformat */
- if (paramsObj->pszOutputFormat) {
- /* We support only GML2 and GML3 for now. */
- if(strcasecmp(paramsObj->pszOutputFormat, "GML2") == 0 || strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=gml/2.1.2") == 0) {
- outputformat = OWS_GML2;
- gmlinfo.output_schema_format = "XMLSCHEMA";
- output_mime_type = "text/xml; subtype=gml/2.1.2";
- } else if(strcasecmp(paramsObj->pszOutputFormat, "GML3") == 0 || strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=gml/3.1.1") == 0) {
- outputformat = OWS_GML3;
- gmlinfo.output_schema_format = "SFE_XMLSCHEMA";
- output_mime_type = "text/xml; subtype=gml/3.1.1";
- } else {
- const char *format_list;
- hashTableObj *md;
- /* validate selected format against all selected layers. */
- for(j=0; j < map->numlayers; j++) {
- layerObj *lp;
+ if(msQueryByRect(map) != MS_SUCCESS) {
+ errorObj *ms_error;
+ ms_error = msGetErrorObj();
- lp = GET_LAYER(map, j);
+ if(ms_error->code != MS_NOTFOUND) {
+ msSetError(MS_WFSERR, "ms_error->code not found", "msWFSGetFeature()");
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
+ }
- if( lp->status != MS_ON )
- continue;
+ return MS_SUCCESS;
+}
- md = &(lp->metadata);
- format_list = msOWSLookupMetadata(md, "F","getfeature_formatlist");
- if( format_list == NULL ) {
- md = &(map->web.metadata);
- format_list = msOWSLookupMetadata(md, "F","getfeature_formatlist");
+/*
+** msWFSSplitFilters()
+*/
+static char** msWFSSplitFilters(const char* pszStr, int* pnTokens)
+{
+ const char* pszTokenBegin;
+ char** papszRet = NULL;
+ int nTokens = 0;
+ char chStringQuote = '\0';
+ int nXMLIndent = 0;
+ int bInBracket = FALSE;
+
+ if( *pszStr != '(' )
+ {
+ *pnTokens = 0;
+ return NULL;
+ }
+ pszStr ++;
+ pszTokenBegin = pszStr;
+ while( *pszStr != '\0' )
+ {
+ /* Ignore any character until end of quoted string */
+ if( chStringQuote != '\0' )
+ {
+ if( *pszStr == chStringQuote )
+ chStringQuote = 0;
}
- if (format_list) {
- psFormat = msOwsIsOutputFormatValid(
- map, paramsObj->pszOutputFormat, md,
- "F", "getfeature_formatlist");
+ /* Detect begin of quoted string only for an XML attribute, i.e. between < and > */
+ else if( bInBracket && (*pszStr == '\'' || *pszStr == '"') )
+ {
+ chStringQuote = *pszStr;
}
- if (psFormat == NULL) {
- msSetError(MS_WFSERR,
- "'%s' is not a permitted output format for layer '%s', review wfs_getfeature_formatlist setting.",
- "msWFSGetFeature()",
- paramsObj->pszOutputFormat,
- lp->name );
- return msWFSException(map, "outputformat",
- "InvalidParameterValue",
- paramsObj->pszVersion );
+ /* Begin of XML element */
+ else if( *pszStr == '<' )
+ {
+ bInBracket = TRUE;
+ if( pszStr[1] == '/' )
+ nXMLIndent --;
+ else if( pszStr[1] != '!' )
+ nXMLIndent ++;
}
-
- if( psFormat->imagemode != MS_IMAGEMODE_FEATURE ) {
- msSetError(MS_WFSERR,
- "OUTPUTFORMAT '%s' does not have IMAGEMODE FEATURE, and is not permitted for WFS output.",
- "msWFSGetFeature()",
- paramsObj->pszOutputFormat );
- return msWFSException( map, "outputformat",
- "InvalidParameterValue",
- paramsObj->pszVersion );
+ /* <something /> case */
+ else if (*pszStr == '/' && pszStr[1] == '>' )
+ {
+ bInBracket = FALSE;
+ nXMLIndent --;
+ pszStr ++;
}
- }
- }
-
- /* If OUTPUTFORMAT not set, default to gml */
- } else {
- /*set the output format using the version if available*/
- if(paramsObj->pszVersion == NULL || strncmp(paramsObj->pszVersion,"1.1",3) == 0 ) {
- outputformat = OWS_GML3;
- gmlinfo.output_schema_format = "text/xml;%20subtype=gml/3.1.1";
- output_mime_type = "text/xml; subtype=gml/3.1.1";
+ /* End of XML element */
+ else if( *pszStr == '>' )
+ {
+ bInBracket = FALSE;
+ }
+ /* Only detect and of filter when XML indentation goes back to zero */
+ else if( nXMLIndent == 0 && *pszStr == ')' )
+ {
+ papszRet = (char**) msSmallRealloc(papszRet, sizeof(char*) * (nTokens + 1));
+ papszRet[nTokens] = msStrdup(pszTokenBegin);
+ papszRet[nTokens][pszStr - pszTokenBegin] = '\0';
+ nTokens ++;
+ if( pszStr[1] != '(' )
+ {
+ break;
+ }
+ pszStr ++;
+ pszTokenBegin = pszStr + 1;
+ }
+ pszStr ++;
}
- }
+ *pnTokens = nTokens;
+ return papszRet;
+}
- if(strncmp(paramsObj->pszVersion,"1.0",3) == 0 ) {
- output_mime_type = "text/xml";
- }
-
- /* else if (strcasecmp(names[i], "PROPERTYNAME") == 0) */
- /* { */
- /* */
- /* } */
-
- tmpmaxfeatures = msOWSLookupMetadata(&(map->web.metadata), "FO", "maxfeatures");
- if (tmpmaxfeatures)
- maxfeatures = atoi(tmpmaxfeatures);
- if (paramsObj->nMaxFeatures > 0) {
- if (maxfeatures < 0 || (maxfeatures > 0 && paramsObj->nMaxFeatures < maxfeatures))
- maxfeatures = paramsObj->nMaxFeatures;
- }
-
- nQueriedLayers=0;
- for(j=0; j<map->numlayers; j++) {
- layerObj *lp;
- lp = GET_LAYER(map, j);
- if (lp->status == MS_ON) {
- /* No reason to handle tolerances for WFS GetFeature */
- lp->tolerance = 0;
- lpQueried = GET_LAYER(map, j);
- nQueriedLayers++;
- }
- }
-
- if (paramsObj->nStartIndex > -1) {
- startindex = 1 + paramsObj->nStartIndex;
- map->query.startindex = startindex;
- }
-
-
- /* maxfeatures set */
- if (maxfeatures > 0) {
- for(j=0; j<map->numlayers; j++) {
- layerObj *lp;
- lp = GET_LAYER(map, j);
- if (lp->status == MS_ON) {
- /*over-ride the value only if it is unset or wfs maxfeattures is
- lower that what is currently set*/
- if (lp->maxfeatures <=0 || (lp->maxfeatures > 0 && maxfeatures < lp->maxfeatures))
- lp->maxfeatures = maxfeatures;
- }
- }
- map->query.maxfeatures = maxfeatures;
- }
-
- /* startindex set */
- if (startindex > 0 && nQueriedLayers > 1) {
- for(j=0; j<map->numlayers; j++) {
- layerObj *lp;
- lp = GET_LAYER(map, j);
- if (lp->status == MS_ON) {
- msLayerEnablePaging(lp, MS_FALSE);
- }
- }
- } else if (startindex > 0 && lpQueried) {
- lpQueried->startindex = startindex;
- }
-
- if (paramsObj->pszFilter) {
- bFilterSet = 1;
- pszFilter = paramsObj->pszFilter;
- }
- if (paramsObj->pszBbox) {
- char **tokens;
- int n;
-
-
- tokens = msStringSplit(paramsObj->pszBbox, ',', &n);
- if (tokens==NULL || (n != 4 && n !=5)) {
- msSetError(MS_WFSERR, "Wrong number of arguments for BBOX.", "msWFSGetFeature()");
- return msWFSException(map, "bbox", "InvalidParameterValue", paramsObj->pszVersion);
- }
- bbox.minx = atof(tokens[0]);
- bbox.miny = atof(tokens[1]);
- bbox.maxx = atof(tokens[2]);
- bbox.maxy = atof(tokens[3]);
- /*5th aregument is assumed to be projection*/
- if (n == 5)
- sBBoxSrs = msStrdup(tokens[4]);
-
- msFreeCharArray(tokens, n);
- bBBOXSet = 1;
- /* Note: BBOX SRS is implicit, it is the SRS of the selected */
- /* feature types, see pszOutputSRS in TYPENAMES above. */
- }
- if (paramsObj->pszFeatureId) {
- bFeatureIdSet = 1;
- }
+/*
+** msWFSRetrieveFeatures()
+*/
+static int msWFSRetrieveFeatures(mapObj* map,
+ owsRequestObj* ows_request,
+ const wfsParamsObj *paramsObj,
+ const WFSGMLInfo* gmlinfo,
+ const char* pszFilter,
+ int bBBOXSet,
+ const char* pszBBOXSRS,
+ rectObj bbox,
+ const char* pszFeatureId,
+ char **layers,
+ int numlayers,
+ int maxfeatures,
+ int nWFSVersion,
+ int* pnOutTotalFeatures,
+ int* pnHasNext)
+{
+ int i, j;
+ int iNumberOfFeatures = 0;
#ifdef USE_OGR
- if (bFilterSet && pszFilter && strlen(pszFilter) > 0) {
- char **tokens = NULL;
+ if (pszFilter && strlen(pszFilter) > 0) {
int nFilters;
- FilterEncodingNode *psNode = NULL;
- int iLayerIndex =1;
char **paszFilter = NULL;
- errorObj *ms_error;
/* -------------------------------------------------------------------- */
/* Validate the parameters. When a FILTER parameter is given, */
@@ -2055,27 +2304,43 @@ int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req, ow
/* */
/* -------------------------------------------------------------------- */
- if (gmlinfo.typename == NULL || strlen(gmlinfo.typename) <= 0 || layers == NULL || numlayers <= 0) {
+ /* WFS 2.0 */
+ if (nWFSVersion >= OWS_2_0_0 &&
+ paramsObj->pszFilterLanguage != NULL &&
+ strcasecmp(paramsObj->pszFilterLanguage, "urn:ogc:def:query Language:OGC-FES:Filter") != 0) {
msSetError(MS_WFSERR,
- "Required TYPENAME parameter missing for GetFeature with a FILTER parameter.",
+ "Unhandled value for FILTER_LANGUAGE parameter. Only \"urn:ogc:def:query Language:OGC-FES:Filter\" accepted.",
"msWFSGetFeature()");
- return msWFSException(map, "typename", "MissingParameterValue", paramsObj->pszVersion);
+ return msWFSException(map, "filter_language", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ if (gmlinfo->typename == NULL || strlen(gmlinfo->typename) <= 0 || layers == NULL || numlayers <= 0) {
+ msSetError(MS_WFSERR,
+ "Required %s parameter missing for GetFeature with a FILTER parameter.",
+ "msWFSGetFeature()",
+ (nWFSVersion >= OWS_2_0_0 ) ? "TYPENAMES": "TYPENAME" );
+ return msWFSException(map, (nWFSVersion >= OWS_2_0_0 ) ? "typenames": "typename",
+ MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
}
if (bBBOXSet) {
msSetError(MS_WFSERR,
"BBOX parameter and FILTER parameter are mutually exclusive in GetFeature.",
"msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
}
- if (bFeatureIdSet) {
+ if (pszFeatureId != NULL) {
msSetError(MS_WFSERR,
- "FEATUREID parameter and FILTER parameter are mutually exclusive in GetFeature.",
- "msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
+ "%s parameter and FILTER parameter are mutually exclusive in GetFeature.",
+ "msWFSGetFeature()",
+ (nWFSVersion < OWS_2_0_0 ) ? "FEATUREID" : "RESOURCEID" );
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
}
+ if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, nWFSVersion) == MS_FAILURE)
+ return msWFSException(map, "srsname", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+
/* -------------------------------------------------------------------- */
/* Parse the Filter parameter. If there are several Filter */
/* parameters, each Filter is inside a parantheses. Eg : */
@@ -2088,89 +2353,78 @@ int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req, ow
/* -------------------------------------------------------------------- */
nFilters = 0;
if (strlen(pszFilter) > 0 && pszFilter[0] == '(') {
- tokens = msStringSplit(pszFilter+1, '(', &nFilters);
+ paszFilter = msWFSSplitFilters(pszFilter, &nFilters);
- if (tokens && nFilters > 0 && numlayers == nFilters) {
- paszFilter = (char **)msSmallMalloc(sizeof(char *)*nFilters);
- for (i=0; i<nFilters; i++)
- paszFilter[i] = msStrdup(tokens[i]);
-
- msFreeCharArray(tokens, nFilters);
+ if ( paszFilter && nFilters > 0 && numlayers != nFilters ) {
+ msFreeCharArray(paszFilter, nFilters);
}
} else if (numlayers == 1) {
nFilters=1;
paszFilter = (char **)msSmallMalloc(sizeof(char *)*nFilters);
- paszFilter[0] = pszFilter;
+ paszFilter[0] = msStrdup(pszFilter);
}
if (numlayers != nFilters) {
- msSetError(MS_WFSERR, "Wrong number of filter elements, one filter must be specified for each feature type listed in the TYPENAME parameter.",
- "msWFSGetFeature()");
- return msWFSException(map, "filter", "InvalidParameterValue", paramsObj->pszVersion);
+ msSetError(MS_WFSERR, "Wrong number of filter elements, one filter must be specified for each feature type listed in the %s parameter.",
+ "msWFSGetFeature()",
+ (nWFSVersion >= OWS_2_0_0 ) ? "TYPENAMES": "TYPENAME" );
+ return msWFSException(map, "filter", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
+
/* -------------------------------------------------------------------- */
/* run through the filters and build the class expressions. */
- /* TODO: items may have namespace prefixes, or reference aliases, */
- /* or groups. Need to be a bit more sophisticated here. */
/* -------------------------------------------------------------------- */
for (i=0; i<nFilters; i++) {
- iLayerIndex = msGetLayerIndex(map, layers[i]);
- if (iLayerIndex < 0) {
- msSetError(MS_WFSERR, "Invalid Typename in GetFeature : %s. A layer might be disabled for \
-this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()", layers[i]);
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
- }
- psNode = FLTParseFilterEncoding(paszFilter[i]);
-
- if (!psNode) {
- msSetError(MS_WFSERR,
- "Invalid or Unsupported FILTER in GetFeature : %s",
- "msWFSGetFeature()", pszFilter);
- return msWFSException(map, "filter", "InvalidParameterValue", paramsObj->pszVersion);
- }
-
- /*preparse the filter for gml aliases*/
- FLTPreParseFilterForAlias(psNode, map, iLayerIndex, "G");
+ int status;
+ layerObj* lp;
- if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, paramsObj->pszVersion) == MS_FAILURE)
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
+ lp = msWFSGetLayerByName(map, ows_request, layers[i]);
- /* run filter. If no results are found, do not throw exception */
- /* this is a null result */
- if( FLTApplyFilterToLayer(psNode, map, iLayerIndex) != MS_SUCCESS ) {
- ms_error = msGetErrorObj();
+ /* Special value set when parsing XML Post when there is a mix of */
+ /* Query with and without Filter */
+ if( strcmp(paszFilter[i], "!") == 0 )
+ status = msWFSRunBasicGetFeature(map, lp, paramsObj, nWFSVersion);
+ else
+ status = msWFSRunFilter(map, lp, paramsObj, paszFilter[i], nWFSVersion);
- if(ms_error->code != MS_NOTFOUND) {
- msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
- }
+ if( status != MS_SUCCESS )
+ {
+ msFreeCharArray(paszFilter, nFilters);
+ return status;
}
- FLTFreeFilterEncodingNode( psNode );
- psNode = NULL;
+ /* Decrement the total maxfeatures */
+ if( map->query.maxfeatures >= 0 )
+ {
+ if( lp->resultcache && lp->resultcache->numresults > 0 )
+ {
+ map->query.maxfeatures -= lp->resultcache->numresults;
+ if( map->query.maxfeatures <= 0 )
+ break;
+ }
+ }
}
- if (paszFilter)
- free(paszFilter);
+ msFreeCharArray(paszFilter, nFilters);
}/* end if filter set */
- if (bFeatureIdSet) {
- char **tokens = NULL, **tokens1=NULL ;
- int nTokens = 0, j=0, nTokens1=0, k=0;
+ if (pszFeatureId != NULL) {
+ char **tokens = NULL;
+ int nTokens = 0, j=0, k=0;
FilterEncodingNode *psNode = NULL;
+ char **aFIDLayers = NULL;
+ char **aFIDValues = NULL;
+ int iFIDLayers = 0;
/* Keep only selected layers, set to OFF by default. */
- for(j=0; j<map->numlayers; j++) {
- layerObj *lp;
- lp = GET_LAYER(map, j);
- lp->status = MS_OFF;
- }
+ msWFSTurnOffAllLayer(map);
+
/*featureid can be a list INWATERA_1M.1234, INWATERA_1M.1235
We will keep all the feature id from the same layer together
so that an OR would be applied if several of them are present
*/
- tokens = msStringSplit(paramsObj->pszFeatureId, ',', &nTokens);
+ tokens = msStringSplit(pszFeatureId, ',', &nTokens);
iFIDLayers = 0;
if (tokens && nTokens >=1) {
aFIDLayers = (char **)msSmallMalloc(sizeof(char *)*nTokens);
@@ -2180,31 +2434,39 @@ this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()", laye
aFIDValues[j] = NULL;
}
for (j=0; j<nTokens; j++) {
- tokens1 = msStringSplit(tokens[j], '.', &nTokens1);
- if (tokens1 && nTokens1 == 2) {
+ const char* pszLastDot = strrchr(tokens[j], '.');
+ if (pszLastDot != NULL) {
+ char* pszLayerInFID = msStrdup(tokens[j]);
+ pszLayerInFID[pszLastDot - tokens[j]] = '\0';
+ /* Find if the layer is already requested */
for (k=0; k<iFIDLayers; k++) {
- if (strcasecmp(aFIDLayers[k], tokens1[0]) == 0)
+ if (strcasecmp(aFIDLayers[k], pszLayerInFID) == 0)
break;
}
+ /* If not, add it to the list of requested layers */
if (k == iFIDLayers) {
- aFIDLayers[iFIDLayers] = msStrdup(tokens1[0]);
+ aFIDLayers[iFIDLayers] = msStrdup(pszLayerInFID);
iFIDLayers++;
}
+ /* Add the id to the list of search identifiers of the layer */
if (aFIDValues[k] != NULL)
aFIDValues[k] = msStringConcatenate(aFIDValues[k], ",");
- aFIDValues[k] = msStringConcatenate( aFIDValues[k], tokens1[1]);
+ aFIDValues[k] = msStringConcatenate( aFIDValues[k], pszLastDot + 1);
+ msFree(pszLayerInFID);
} else {
- msSetError(MS_WFSERR,
- "Invalid FeatureId in GetFeature. Expecting layername.value : %s",
- "msWFSGetFeature()", pszFilter);
- if (tokens)
- msFreeCharArray(tokens, nTokens);
- if (tokens1)
- msFreeCharArray(tokens1, nTokens1);
- return msWFSException(map, "featureid", "InvalidParameterValue", paramsObj->pszVersion);
+ /* In WFS 20, an unknown/invalid feature id shouldn't trigger an */
+ /* exception. Tested by CITE */
+ if( nWFSVersion < OWS_2_0_0 ) {
+ msSetError(MS_WFSERR,
+ "Invalid FeatureId in GetFeature. Expecting layername.value : %s",
+ "msWFSGetFeature()", tokens[j]);
+ if (tokens)
+ msFreeCharArray(tokens, nTokens);
+ msFreeCharArray(aFIDLayers, iFIDLayers);
+ msFreeCharArray(aFIDValues, iFIDLayers);
+ return msWFSException(map, "featureid", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
}
- if (tokens1)
- msFreeCharArray(tokens1, nTokens1);
}
}
if (tokens)
@@ -2212,258 +2474,1832 @@ this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()", laye
/*turn on the layers and make sure projections are set properly*/
for (j=0; j< iFIDLayers; j++) {
- for (k=0; k<map->numlayers; k++) {
- layerObj *lp;
- lp = GET_LAYER(map, k);
- if (msWFSIsLayerSupported(lp) && lp->name &&
- strcasecmp(lp->name, aFIDLayers[j]) == 0) {
- lp->status = MS_ON;
- }
- if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, paramsObj->pszVersion) == MS_FAILURE)
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
- }
- }
-
- for (j=0; j< iFIDLayers; j++) {
- for (k=0; k<map->numlayers; k++) {
- layerObj *lp;
- lp = GET_LAYER(map, k);
- if (msWFSIsLayerSupported(lp) && lp->name &&
- strcasecmp(lp->name, aFIDLayers[j]) == 0) {
- lp->status = MS_ON;
- if (lp->template == NULL) {
- /* Force setting a template to enable query. */
- lp->template = msStrdup("ttt.html");
- }
- psNode = FLTCreateFeatureIdFilterEncoding(aFIDValues[j]);
-
- if( FLTApplyFilterToLayer(psNode, map, lp->index) != MS_SUCCESS ) {
- msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
- }
-
- FLTFreeFilterEncodingNode( psNode );
- psNode = NULL;
- break;
- }
- }
- if (k == map->numlayers) { /*layer not found*/
+ layerObj *lp;
+ lp = msWFSGetLayerByName(map, ows_request, aFIDLayers[j]);
+ if( lp == NULL ) {
msSetError(MS_WFSERR,
"Invalid typename given with FeatureId in GetFeature : %s. A layer might be disabled for \
this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()",
aFIDLayers[j]);
- if (aFIDLayers && aFIDValues) {
- for (j=0; j<iFIDLayers; j++) {
- msFree(aFIDLayers[j]);
- msFree(aFIDValues[j]);
- }
- msFree(aFIDLayers);
- msFree(aFIDValues);
- }
- return msWFSException(map, "featureid", "InvalidParameterValue", paramsObj->pszVersion);
+ msFreeCharArray(aFIDLayers, iFIDLayers);
+ msFreeCharArray(aFIDValues, iFIDLayers);
+ return msWFSException(map, "featureid", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
+
+ lp->status = MS_ON;
}
- if (aFIDLayers && aFIDValues) {
- for (j=0; j<iFIDLayers; j++) {
- msFree(aFIDLayers[j]);
- msFree(aFIDValues[j]);
+ if( map->query.only_cache_result_count == MS_FALSE )
+ msWFSAnalyzeStartIndexAndFeatureCount(map, paramsObj, NULL, NULL);
+
+ if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, nWFSVersion) == MS_FAILURE)
+ return msWFSException(map, "srsname", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+
+ for (j=0; j< iFIDLayers; j++) {
+ layerObj *lp;
+ lp = msWFSGetLayerByName(map, ows_request, aFIDLayers[j]);
+ if (lp->template == NULL) {
+ /* Force setting a template to enable query. */
+ lp->template = msStrdup("ttt.html");
+ }
+ psNode = FLTCreateFeatureIdFilterEncoding(aFIDValues[j]);
+
+ if( FLTApplyFilterToLayer(psNode, map, lp->index) != MS_SUCCESS ) {
+ msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature");
+ FLTFreeFilterEncodingNode( psNode );
+ msFreeCharArray(aFIDLayers, iFIDLayers);
+ msFreeCharArray(aFIDValues, iFIDLayers);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
+
+ FLTFreeFilterEncodingNode( psNode );
+ psNode = NULL;
+
+ /* Decrement the total maxfeatures */
+ if( map->query.maxfeatures >= 0 )
+ {
+ if( lp->resultcache && lp->resultcache->numresults > 0 )
+ {
+ map->query.maxfeatures -= lp->resultcache->numresults;
+ if( map->query.maxfeatures <= 0 )
+ break;
+ }
}
- msFree(aFIDLayers);
- msFree(aFIDValues);
}
+
+ msFreeCharArray(aFIDLayers, iFIDLayers);
+ msFreeCharArray(aFIDValues, iFIDLayers);
}
#endif /* USE_OGR */
-
- if(layers)
- msFreeCharArray(layers, numlayers);
-
- /* Apply the requested SRS */
- if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, paramsObj->pszVersion) == MS_FAILURE)
- return msWFSException(map, "typename", "InvalidParameterValue", paramsObj->pszVersion);
-
/*
** Perform Query (only BBOX for now)
*/
/* __TODO__ Using a rectangle query may not be the most efficient way */
/* to do things here. */
- if (!bFilterSet && !bFeatureIdSet) {
+ if (pszFilter == NULL && pszFeatureId == NULL) {
- if (!bBBOXSet) {
- const char *pszMapSRS=NULL, *pszLayerSRS=NULL;
- bbox = map->extent;
- map->query.type = MS_QUERY_BY_RECT; /* setup the query */
- map->query.mode = MS_QUERY_MULTIPLE;
+ /* Apply the requested SRS */
+ if (msWFSGetFeatureApplySRS(map, paramsObj->pszSrs, nWFSVersion) == MS_FAILURE)
+ return msWFSException(map, "srsname", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
- /*if srsName was given for wfs 1.1.0, It is at this point loaded into the
- map object and should be used*/
- if(!paramsObj->pszSrs)
- pszMapSRS = msOWSGetEPSGProj(&(map->projection), &(map->web.metadata), "FO", MS_TRUE);
+ if (!bBBOXSet) {
for(j=0; j<map->numlayers; j++) {
layerObj *lp;
- rectObj ext;
- int status;
lp = GET_LAYER(map, j);
if (lp->status == MS_ON) {
- if (msOWSGetLayerExtent(map, lp, "FO", &ext) == MS_SUCCESS) {
+ int status = msWFSRunBasicGetFeature(map, lp, paramsObj, nWFSVersion);
+ if( status != MS_SUCCESS )
+ return status;
+ }
+ }
+ } else {
- if (pszMapSRS != NULL && strncmp(pszMapSRS, "EPSG:", 5) == 0) {
+ char* sBBoxSrs = NULL;
- if( msOWSParseVersionString(paramsObj->pszVersion) >= OWS_1_1_0 )
- status = msLoadProjectionStringEPSG(&(map->projection), pszMapSRS);
- else
- status = msLoadProjectionString(&(map->projection), pszMapSRS);
+ if( pszBBOXSRS != NULL )
+ sBBoxSrs = msStrdup(pszBBOXSRS);
- if (status != 0) {
- msSetError(MS_WFSERR, "msLoadProjectionString() failed: %s",
- "msWFSGetFeature()", pszMapSRS);
- return msWFSException(map, "mapserv", "NoApplicableCode",
- paramsObj->pszVersion);
- }
+ /* On WFS 2.0.0, if the BBOX has no explicit SRS, use the map SRS */
+ /* Should likely be used for WFS 1.1.0 too, but don't want to cause */
+ /* issue at that point, since it can influence axis ordering */
+ if( nWFSVersion >= OWS_2_0_0 && sBBoxSrs == NULL )
+ {
+ const char* srsConst;
+ projectionObj sProjTmp;
- }
+ msInitProjection(&sProjTmp);
+ srsConst = msOWSGetEPSGProj(&sProjTmp,&(map->web.metadata),"FO",MS_TRUE);
+ if( srsConst != NULL )
+ sBBoxSrs = msStrdup(srsConst);
+ msFreeProjection(&sProjTmp);
+ }
+
+ if (sBBoxSrs) {
+ int status;
+ projectionObj sProjTmp;
+
+ msInitProjection(&sProjTmp);
+ /*do the axis order for now. It is unclear if the bbox are expected
+ ro respect the axis oder defined in the projectsion #3296*/
+
+ if(nWFSVersion >= OWS_1_1_0) {
+ if ((status=msLoadProjectionStringEPSG(&sProjTmp, sBBoxSrs)) == 0) {
+ msAxisNormalizePoints( &sProjTmp, 1, &bbox.minx, &bbox.miny );
+ msAxisNormalizePoints( &sProjTmp, 1, &bbox.maxx, &bbox.maxy );
+ }
+ } else
+ status = msLoadProjectionString(&sProjTmp, sBBoxSrs);
+
+ if (status == 0 && map->projection.numargs > 0)
+ msProjectRect(&sProjTmp, &map->projection, &bbox);
+ msFreeProjection(&sProjTmp);
+
+ msFree(sBBoxSrs);
+ sBBoxSrs = NULL;
+ }
+ map->query.type = MS_QUERY_BY_RECT; /* setup the query */
+ map->query.mode = MS_QUERY_MULTIPLE;
+ map->query.rect = bbox;
+
+ if(msQueryByRect(map) != MS_SUCCESS) {
+ errorObj *ms_error;
+ ms_error = msGetErrorObj();
+
+ if(ms_error->code != MS_NOTFOUND) {
+ msSetError(MS_WFSERR, "ms_error->code not found", "msWFSGetFeature()");
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
+ }
+ }
+ }
+
+ /* Count total number of features retrieved */
+ for(j=0; j<map->numlayers; j++) {
+ if (GET_LAYER(map, j)->resultcache && GET_LAYER(map, j)->resultcache->numresults > 0) {
+ iNumberOfFeatures += GET_LAYER(map, j)->resultcache->numresults;
+ }
+ }
+
+ /* If maxfeatures is set, we have actually asked for 1 more feature than asked */
+ /* to be able to know if there are next features. So it is now time to */
+ /* remove this extra unasked feature from the result cache */
+ if( maxfeatures >= 0 && iNumberOfFeatures == maxfeatures + 1 )
+ {
+ int lastJ = -1;
+ for(j=0; j<map->numlayers; j++) {
+ if (GET_LAYER(map, j)->resultcache && GET_LAYER(map, j)->resultcache->numresults > 0) {
+ lastJ = j;
+ }
+ }
+ GET_LAYER(map, lastJ)->resultcache->numresults --;
+ GET_LAYER(map, lastJ)->resultcache->bounds = GET_LAYER(map, lastJ)->resultcache->previousBounds;
+ iNumberOfFeatures --;
+ if( pnHasNext )
+ *pnHasNext = MS_TRUE;
+ }
+ else if( pnHasNext )
+ *pnHasNext = MS_FALSE;
+
+ *pnOutTotalFeatures = iNumberOfFeatures;
+
+ return MS_SUCCESS;
+}
+
+/*
+** msWFSParsePropertyNameOrSortBy()
+*/
+static char** msWFSParsePropertyNameOrSortBy(const char* pszPropertyName,
+ int numlayers)
+{
+ char** tokens = NULL;
+ int nPropertyNames = 0;
+ char** papszPropertyName = NULL;
+ int i;
+
+ if( pszPropertyName == NULL )
+ {
+ papszPropertyName = (char **)msSmallMalloc(sizeof(char *)*numlayers);
+ for (i=0; i<numlayers; i++) {
+ papszPropertyName[i] = msStrdup("!");
+ }
+ return papszPropertyName;
+ }
+
+ if (!(pszPropertyName[0] == '(' || numlayers == 1))
+ {
+ return NULL;
+ }
+
+ if (numlayers == 1 && pszPropertyName[0] != '(') {
+ /* Accept PROPERTYNAME without () when there is a single TYPENAME */
+ char* pszTmpPropertyName = msSmallMalloc(1+strlen(pszPropertyName)+1+1);
+ sprintf(pszTmpPropertyName, "(%s)", pszPropertyName);
+ tokens = msStringSplit(pszTmpPropertyName+1, '(', &nPropertyNames);
+ free(pszTmpPropertyName);
+ } else
+ tokens = msStringSplit(pszPropertyName+1, '(', &nPropertyNames);
+
+ /*expecting to always have a list of property names equal to
+ the number of layers(typename)*/
+ if (nPropertyNames != numlayers) {
+ msFreeCharArray(tokens, nPropertyNames);
+ return NULL;
+ }
+
+ papszPropertyName = (char **)msSmallMalloc(sizeof(char *)*nPropertyNames);
+ for (i=0; i<nPropertyNames; i++) {
+ if (strlen(tokens[i]) > 0) {
+ papszPropertyName[i] = msStrdup(tokens[i]);
+ /* remove trailing ) */
+ papszPropertyName[i][strlen(papszPropertyName[i])-1] = '\0';
+ }
+ else {
+ for ( i--; i>=0; i-- )
+ msFree(papszPropertyName[i]);
+ msFree(papszPropertyName);
+ msFreeCharArray(tokens, nPropertyNames);
+ return NULL;
+ }
+ }
+
+ msFreeCharArray(tokens, nPropertyNames);
+
+ return papszPropertyName;
+}
+
+static void msWFSInitGMLInfo(WFSGMLInfo* pgmlinfo)
+{
+ memset( pgmlinfo, 0, sizeof(WFSGMLInfo) );
+ pgmlinfo->user_namespace_prefix = MS_DEFAULT_NAMESPACE_PREFIX;
+ pgmlinfo->user_namespace_uri = MS_DEFAULT_NAMESPACE_URI;
+ pgmlinfo->collection_name = OWS_WFS_FEATURE_COLLECTION_NAME;
+ pgmlinfo->typename = "";
+ pgmlinfo->output_mime_type = "text/xml";
+ pgmlinfo->output_schema_format = "XMLSCHEMA";
+}
+
+static void msWFSCleanupGMLInfo(WFSGMLInfo* pgmlinfo)
+{
+ free(pgmlinfo->script_url);
+ free(pgmlinfo->script_url_encoded);
+ msFree(pgmlinfo->user_namespace_uri_encoded);
+}
+
+static int msWFSGetGMLOutputFormat(mapObj *map, wfsParamsObj *paramsObj,
+ WFSGMLInfo* pgmlinfo,
+ int nWFSVersion)
+{
+ OWSGMLVersion outputformat = OWS_GML2;
+
+ /* Validate outputformat */
+ if (paramsObj->pszOutputFormat) {
+ /* We support GML2, GML3, GML3.2 for now. */
+ if(strcasecmp(paramsObj->pszOutputFormat, "GML2") == 0 ||
+ strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=gml/2.1.2") == 0) {
+ outputformat = OWS_GML2;
+ pgmlinfo->output_schema_format = "XMLSCHEMA";
+ /* FIXME? : subtype=gml/XXXX is invalid without quoting. Seen with CITE WFS 2.0 */
+ pgmlinfo->output_mime_type = "text/xml; subtype=gml/2.1.2";
+ } else if(strcasecmp(paramsObj->pszOutputFormat, "GML3") == 0 ||
+ strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=gml/3.1.1") == 0) {
+ outputformat = OWS_GML3;
+ pgmlinfo->output_schema_format = "SFE_XMLSCHEMA";
+ /* FIXME? : subtype=gml/XXXX is invalid without quoting. Seen with CITE WFS 2.0 */
+ pgmlinfo->output_mime_type = "text/xml; subtype=gml/3.1.1";
+ } else if(strcasecmp(paramsObj->pszOutputFormat, "GML32") == 0 ||
+ strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=gml/3.2.1") == 0 ||
+ strcasecmp(paramsObj->pszOutputFormat, "text/xml; subtype=\"gml/3.2.1\"") == 0 ||
+ strcasecmp(paramsObj->pszOutputFormat, "application/gml+xml; version=3.2") == 0) {
+ outputformat = OWS_GML32;
+ pgmlinfo->output_schema_format = "application%2Fgml%2Bxml%3B%20version%3D3.2";
+ pgmlinfo->output_mime_type = "text/xml; subtype=\"gml/3.2.1\"";
+ } else {
+ return -1;
+ }
+
+ /* If OUTPUTFORMAT not set, default to gml */
+ } else {
+ /*set the output format using the version if available*/
+ if( nWFSVersion == OWS_1_1_0 ) {
+ outputformat = OWS_GML3;
+ pgmlinfo->output_schema_format = "text/xml;%20subtype=gml/3.1.1";
+ /* FIXME? : subtype=gml/XXXX is invalid without quoting. Seen with CITE WFS 2.0 */
+ pgmlinfo->output_mime_type = "text/xml; subtype=gml/3.1.1";
+ }
+ else if( nWFSVersion >= OWS_2_0_0 ) {
+ outputformat = OWS_GML32;
+ pgmlinfo->output_schema_format = "application%2Fgml%2Bxml%3B%20version%3D3.2";
+ pgmlinfo->output_mime_type = "text/xml; subtype=\"gml/3.2.1\"";
+ }
+ }
+
+ if( nWFSVersion == OWS_1_0_0 ) {
+ pgmlinfo->output_mime_type = "text/xml";
+ }
+
+ return outputformat;
+}
+
+static outputFormatObj* msWFSGetOtherOutputFormat(mapObj *map, wfsParamsObj *paramsObj)
+{
+ const char *format_list;
+ hashTableObj *md;
+ outputFormatObj* psFormat = NULL;
+ int j;
+
+ /* validate selected format against all selected layers. */
+ for(j=0; j < map->numlayers; j++) {
+ layerObj *lp;
+
+ lp = GET_LAYER(map, j);
+
+ if( lp->status != MS_ON )
+ continue;
+
+ md = &(lp->metadata);
+ format_list = msOWSLookupMetadata(md, "F","getfeature_formatlist");
+ if( format_list == NULL ) {
+ md = &(map->web.metadata);
+ format_list = msOWSLookupMetadata(md, "F","getfeature_formatlist");
+ }
+ if (format_list) {
+ psFormat = msOwsIsOutputFormatValid(
+ map, paramsObj->pszOutputFormat, md,
+ "F", "getfeature_formatlist");
+ }
+ if (psFormat == NULL) {
+ msSetError(MS_WFSERR,
+ "'%s' is not a permitted output format for layer '%s', review wfs_getfeature_formatlist setting.",
+ "msWFSGetFeature()",
+ paramsObj->pszOutputFormat,
+ lp->name );
+ return NULL;
+ }
+
+ if( psFormat->imagemode != MS_IMAGEMODE_FEATURE ) {
+ msSetError(MS_WFSERR,
+ "OUTPUTFORMAT '%s' does not have IMAGEMODE FEATURE, and is not permitted for WFS output.",
+ "msWFSGetFeature()",
+ paramsObj->pszOutputFormat );
+ return NULL;
+ }
+ }
+
+ return psFormat;
+}
+
+static void msWFSAnalyzeStartIndexAndFeatureCount(mapObj *map, const wfsParamsObj *paramsObj,
+ int *pmaxfeatures, int* pstartindex)
+{
+ const char *tmpmaxfeatures = NULL;
+ int maxfeatures=-1,startindex=-1;
+ int j;
+
+ int nQueriedLayers=0;
+ layerObj *lpQueried=NULL;
+
+ tmpmaxfeatures = msOWSLookupMetadata(&(map->web.metadata), "FO", "maxfeatures");
+ if (tmpmaxfeatures)
+ maxfeatures = atoi(tmpmaxfeatures);
+ if (paramsObj->nMaxFeatures >= 0) {
+ if (maxfeatures < 0 || (maxfeatures > 0 && paramsObj->nMaxFeatures < maxfeatures))
+ maxfeatures = paramsObj->nMaxFeatures;
+ }
+
+ nQueriedLayers=0;
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ lp = GET_LAYER(map, j);
+ if (lp->status == MS_ON) {
+ /* No reason to handle tolerances for WFS GetFeature */
+ lp->tolerance = 0;
+ lpQueried = GET_LAYER(map, j);
+ nQueriedLayers++;
+ }
+ }
+
+ /* WFS convention is that STARTINDEX=0 means the first feature, whereas */
+ /* in MapServer internals we used another interpretation with STARTINDEX=1 */
+ /* being the first index. This was before that the SWG WFS clarified things */
+ /* hence the mess. Ultimately we should likely fix our internals to avoid */
+ /* possible confusion */
+ if (paramsObj->nStartIndex >= 0) {
+ startindex = 1 + paramsObj->nStartIndex;
+ map->query.startindex = startindex;
+ }
+
+
+ /* maxfeatures set */
+ if (maxfeatures >= 0) {
+ int extrafeature = 1;
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ lp = GET_LAYER(map, j);
+ if (lp->status == MS_ON) {
+ /*over-ride the value only if it is unset or wfs maxfeatures is
+ lower that what is currently set*/
+ if (lp->maxfeatures <=0 || (lp->maxfeatures > 0 && maxfeatures < lp->maxfeatures))
+ {
+ /* TODO: We don't handle DESC sorting, as it would mean to be */
+ /* able to evict the first property, which mapquery cannot handle */
+ /* This would have impact on the resultcache.bounds */
+ if( lp->sortBy.nProperties > 0 )
+ {
+ int k;
+ int countDesc = 1;
+ for(k=0;k<lp->sortBy.nProperties;k++)
+ {
+ if( lp->sortBy.properties[k].sortOrder == SORT_DESC )
+ countDesc ++;
+ }
+ if( countDesc > 0 )
+ extrafeature = 0;
+ }
+
+ /* + 1 to be able to detect if there are more features for a next request */
+ lp->maxfeatures = maxfeatures + extrafeature;
+ }
+ }
+ }
+ /* + 1 to be able to detect if there are more features for a next request */
+ map->query.maxfeatures = maxfeatures + extrafeature;
+ }
+
+ /* startindex set */
+ if (startindex > 0 && nQueriedLayers > 1) {
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ lp = GET_LAYER(map, j);
+ if (lp->status == MS_ON) {
+ msLayerEnablePaging(lp, MS_FALSE);
+ }
+ }
+ } else if (startindex > 0 && lpQueried) {
+ lpQueried->startindex = startindex;
+ }
+
+ if( pmaxfeatures )
+ *pmaxfeatures = maxfeatures;
+ if( pstartindex )
+ *pstartindex = startindex;
+}
+
+static int msWFSAnalyzeBBOX(mapObj *map, wfsParamsObj *paramsObj,
+ rectObj* pbbox, char** pszBBoxSRS)
+{
+ /* Default filter is map extents */
+ *pbbox = map->extent;
+
+ if (paramsObj->pszBbox) {
+ char **tokens;
+ int n;
+
+ tokens = msStringSplit(paramsObj->pszBbox, ',', &n);
+ if (tokens==NULL || (n != 4 && n !=5)) {
+ msSetError(MS_WFSERR, "Wrong number of arguments for BBOX.", "msWFSGetFeature()");
+ msFreeCharArray(tokens, n);
+ return msWFSException(map, "bbox", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+ pbbox->minx = atof(tokens[0]);
+ pbbox->miny = atof(tokens[1]);
+ pbbox->maxx = atof(tokens[2]);
+ pbbox->maxy = atof(tokens[3]);
+ /*5th aregument is assumed to be projection*/
+ if (n == 5)
+ *pszBBoxSRS = msStrdup(tokens[4]);
+
+ msFreeCharArray(tokens, n);
+ }
+ return 0;
+}
+
+static int msWFSComputeMatchingFeatures(mapObj *map,
+ owsRequestObj *ows_request,
+ wfsParamsObj *paramsObj,
+ int iNumberOfFeatures,
+ int maxfeatures,
+ WFSGMLInfo* pgmlinfo,
+ rectObj bbox,
+ const char* sBBoxSrs,
+ char** layers,
+ int numlayers,
+ int nWFSVersion)
+{
+ int nMatchingFeatures = -1;
+ int j;
+
+ if( nWFSVersion >= OWS_2_0_0 )
+ {
+ /* If no features have been retrived and there was no feature count limit, then */
+ /* it is obvious. We must test maxfeatures because if startindex is defined, */
+ /* and above the number of matched features, iNumberOfFeatures can be 0. */
+ if( iNumberOfFeatures == 0 && maxfeatures < 0 )
+ {
+ nMatchingFeatures = 0;
+ }
+
+ /* In the case we had limited the query by a maximum number of features, and */
+ /* that the query has returned less features than the limit, or if there was */
+ /* no limit in fature count, we are able to determine the number of matching */
+ /* features */
+ else if( iNumberOfFeatures > 0 && (maxfeatures < 0 || iNumberOfFeatures < maxfeatures) )
+ {
+ if( paramsObj->nStartIndex >= 0 )
+ nMatchingFeatures = iNumberOfFeatures + paramsObj->nStartIndex;
+ else
+ nMatchingFeatures = iNumberOfFeatures;
+ }
+
+ /* Otherwise big hammer ! */
+ else
+ {
+ /* The WFS 2.0 spec is not really clear on numberMatched behaviour */
+ /* and there are interesting logic in server implementations. */
+ /* */
+ /* Deegree (http://deegree3-demo.deegree.org:80/inspire-workspace/services/wfs?) */
+ /* will return numberMatched="19005" on the cp:CadastralParcel layer for a */
+ /* resultType=hits request, whereas the server limitation is set to 15000 */
+ /* But on a regular GetFeature (without count specified), it will return */
+ /* numberMatched="15000" (and numberReturned="15000")) */
+ /* */
+ /* GeoServer 2.4.1 will also ignore its server limitation for a resultType=hits */
+ /* but when using a regular GetFeature (without count specified), il will return */
+ /* numberMatched=numberReturned=total_number_of_features_without_taking_into_account_server_limit */
+ /* but the number of actually returned features will be truncated to the server */
+ /* limit, likely a bug */
+ /* */
+ /* If wfs_compute_number_matched is set to TRUE, we will issue a full */
+ /* count of potentially matching features, ignoring any client or server */
+ /* side limits. */
+
+ const char* pszComputeNumberMatched =
+ msOWSLookupMetadata(&(map->web.metadata), "F",
+ "compute_number_matched");
+ if( pszComputeNumberMatched != NULL &&
+ strcasecmp(pszComputeNumberMatched, "true") == 0 )
+ {
+ resultCacheObj** saveResultCache = (resultCacheObj** )
+ msSmallMalloc( map->numlayers * sizeof(resultCacheObj*));
+
+ /* Save the result cache that contains the features that we want to */
+ /* emit in the response */
+ for(j=0; j<map->numlayers; j++) {
+ layerObj* lp = GET_LAYER(map, j);
+ saveResultCache[j] = lp->resultcache;
+ lp->resultcache = NULL;
+
+ /* Resent layer paging */
+ lp->maxfeatures = -1;
+ lp->startindex = -1;
+ }
+
+ /* Re-run the query but with no limit */
+ map->query.maxfeatures = -1;
+ map->query.startindex = -1;
+ map->query.only_cache_result_count = MS_TRUE;
+
+ /* TODO: use a to-be-defined virtual layer method to get the feature */
+ /* count without iterating over the features */
+ nMatchingFeatures = 0;
+ msWFSRetrieveFeatures(map,
+ ows_request,
+ paramsObj,
+ pgmlinfo,
+ paramsObj->pszFilter,
+ paramsObj->pszBbox != NULL,
+ sBBoxSrs,
+ bbox,
+ paramsObj->pszFeatureId,
+ layers,
+ numlayers,
+ -1,
+ nWFSVersion,
+ &nMatchingFeatures,
+ NULL);
+
+ /* Restore the original result cache */
+ for(j=0; j<map->numlayers; j++) {
+ layerObj* lp = GET_LAYER(map, j);
+ if(lp->resultcache) {
+ if(lp->resultcache->results) free(lp->resultcache->results);
+ free(lp->resultcache);
+ lp->resultcache = NULL;
+ }
+ lp->resultcache = saveResultCache[j];
+ }
+ msFree(saveResultCache);
+ }
+ }
+ }
+
+ return nMatchingFeatures;
+}
+
+static int msWFSResolveStoredQuery(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req)
+{
+#ifdef USE_OGR
+ if (paramsObj->pszStoredQueryId != NULL )
+ {
+ int i;
+ int status;
+ hashTableObj* hashTable = msCreateHashTable();
+ char* pszResolvedQuery;
+
+ if (req->NumParams > 0 && req->postrequest == NULL ) {
+ for(i=0; i<req->NumParams; i++) {
+ if (req->ParamNames[i] && req->ParamValues[i]) {
+ msInsertHashTable(hashTable, req->ParamNames[i], req->ParamValues[i]);
+ }
+ }
+ }
+
+ pszResolvedQuery = msWFSGetResolvedStoredQuery20(map, paramsObj,
+ paramsObj->pszStoredQueryId,
+ hashTable);
+ msFreeHashTable(hashTable);
+
+ if( pszResolvedQuery == NULL )
+ return MS_FAILURE;
+
+ status = msWFSAnalyzeStoredQuery(map, paramsObj,
+ paramsObj->pszStoredQueryId,
+ pszResolvedQuery);
+ msFree(pszResolvedQuery);
+
+ if( status != MS_SUCCESS )
+ return status;
+
+ msWFSSimplifyPropertyNameAndFilter(paramsObj);
+ }
+#endif
+ return MS_SUCCESS;
+}
+
+/*
+** msWFSUnaliasItem()
+*/
+static
+const char* msWFSUnaliasItem(layerObj* lp, const char* name)
+{
+ const char* pszFullName;
+ char szTmp[256];
+ int z;
+ for(z=0; z<lp->numitems; z++) {
+ if (!lp->items[z] || strlen(lp->items[z]) <= 0)
+ continue;
+ snprintf(szTmp, sizeof(szTmp), "%s_alias", lp->items[z]);
+ pszFullName = msOWSLookupMetadata(&(lp->metadata), "G", szTmp);
+ if (pszFullName && strcmp(name, pszFullName) == 0)
+ return lp->items[z];
+ }
+ return name;
+}
+
+/*
+** msWFSIsAllowedItem()
+*/
+static int msWFSIsAllowedItem(gmlItemListObj *itemList , const char* name)
+{
+ int z;
+ for(z=0; z<itemList->numitems; z++) {
+ if (itemList->items[z].visible &&
+ strcasecmp(name, itemList->items[z].name) == 0) {
+ return MS_TRUE;
+ }
+ }
+ return MS_FALSE;
+}
+
+/*
+** msWFSUngroupItem()
+*/
+static
+const char* msWFSUngroupItem(layerObj* lp, gmlGroupListObj* groupList,
+ const char* name, int* pnGroupIndex)
+{
+ int z;
+
+ *pnGroupIndex = -1;
+ for(z=0; z<groupList->numgroups; z++) {
+ const char* pszGroupName = groupList->groups[z].name;
+ size_t nGroupNameLen = strlen(pszGroupName);
+
+ /* Is it a group name ? */
+ if(strcasecmp(name, pszGroupName) == 0)
+ {
+ *pnGroupIndex = z;
+ return NULL;
+ }
+
+ /* Is it an item of a group ? */
+ if(strncasecmp(name, pszGroupName, nGroupNameLen) == 0 &&
+ name[nGroupNameLen] == '/') {
+
+ int w;
+ const char* pszSubName = msWFSStripNS(name+nGroupNameLen+1);
+ pszSubName = msWFSUnaliasItem(lp, pszSubName);
+ for(w=0;w<groupList->groups[z].numitems;w++)
+ {
+ if( strcasecmp(pszSubName, groupList->groups[z].items[w]) == 0 )
+ {
+ return pszSubName;
+ }
+ }
+ }
+ }
+
+ return name;
+}
+
+/*
+** msWFSApplySortBy()
+*/
+static int msWFSApplySortBy(mapObj* map, wfsParamsObj *paramsObj, layerObj* lp,
+ const char* pszSortBy,
+ gmlItemListObj *itemList,
+ gmlGroupListObj* groupList)
+{
+ int y, n;
+ char** tokens;
+ int invalidSortBy = MS_FALSE;
+ sortByClause sortBy;
+
+ if( !msLayerSupportsSorting(lp) )
+ {
+ msSetError(MS_WFSERR, "Layer %s does not support sorting", "msWFSGetFeature()", lp->name);
+ return msWFSException(map, "mapserv", MS_WFS_ERROR_OPERATION_PROCESSING_FAILED, paramsObj->pszVersion);
+ }
+
+ tokens = msStringSplit(pszSortBy, ',', &n);
+ sortBy.nProperties = n;
+ sortBy.properties = (sortByProperties* )msSmallMalloc(n * sizeof(sortByProperties));
+ for(y=0; y<n; y++) {
+ char* pszSpace;
+ int nGroupIndex = -1;
+ const char* pszSortProperty;
+ char* pszTmp;
+
+ sortBy.properties[y].item = msStrdup(tokens[y]);
+ sortBy.properties[y].sortOrder = SORT_ASC;
+ pszSpace = strchr(sortBy.properties[y].item, ' ');
+ if( pszSpace )
+ {
+ *pszSpace = '\0';
+ if( strcasecmp(pszSpace+1, "A") == 0 ||
+ strcasecmp(pszSpace+1, "ASC") == 0 )
+ ;
+ else if( strcasecmp(pszSpace+1, "D") == 0 ||
+ strcasecmp(pszSpace+1, "DESC") == 0 )
+ sortBy.properties[y].sortOrder = SORT_DESC;
+ else
+ invalidSortBy = MS_TRUE;
+ }
+
+ pszSortProperty = msWFSStripNS(sortBy.properties[y].item);
+ pszSortProperty = msWFSUnaliasItem(lp, pszSortProperty);
+ pszSortProperty = msWFSUngroupItem(lp, groupList, pszSortProperty, &nGroupIndex);
+ if( nGroupIndex >= 0 )
+ invalidSortBy = MS_TRUE;
+
+ if( !msWFSIsAllowedItem(itemList, pszSortProperty) )
+ invalidSortBy = MS_TRUE;
+
+ pszTmp = msStrdup(pszSortProperty);
+ msFree(sortBy.properties[y].item);
+ sortBy.properties[y].item = pszTmp;
+ }
+ msFreeCharArray(tokens, n);
+
+ if( !invalidSortBy )
+ msLayerSetSort(lp, &sortBy);
+
+ for(y=0; y<n; y++) {
+ msFree(sortBy.properties[y].item);
+ }
+ msFree(sortBy.properties);
+
+ if( invalidSortBy )
+ {
+ msSetError(MS_WFSERR, "Invalid SORTBY clause", "msWFSGetFeature()");
+ return msWFSException(map, "sortby", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ return MS_SUCCESS;
+}
+
+/*
+** msWFSGetFeature()
+*/
+static
+int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req,
+ owsRequestObj *ows_request, int nWFSVersion)
+{
+ int status;
+ int maxfeatures=-1,startindex=-1;
+ rectObj bbox;
+
+ char **layers = NULL;
+ int numlayers = 0;
+
+ char *sBBoxSrs = NULL;
+
+ WFSGMLInfo gmlinfo;
+
+ OWSGMLVersion outputformat = OWS_GML2; /* default output is GML 2.1 */
+ outputFormatObj *psFormat = NULL;
+
+ int iNumberOfFeatures = 0;
+ int iResultTypeHits = 0;
+ int nMatchingFeatures = -1;
+ int bHasNextFeatures = MS_FALSE;
+
+ char** papszGMLGroups = NULL;
+ char** papszGMLIncludeItems = NULL;
+ char** papszGMLGeometries = NULL;
+
+ msIOContext* old_context = NULL;
+
+ /* Initialize gml options */
+ msWFSInitGMLInfo(&gmlinfo);
+
+ if (paramsObj->pszResultType != NULL) {
+ if (strcasecmp(paramsObj->pszResultType, "hits") == 0)
+ iResultTypeHits = 1;
+ }
+
+ status = msWFSResolveStoredQuery(map, paramsObj, req);
+ if( status != MS_SUCCESS )
+ return status;
+
+ /* typename is mandatory unless featureid is specfied. We do not
+ support featureid */
+ if (paramsObj->pszTypeName==NULL && paramsObj->pszFeatureId == NULL) {
+ msSetError(MS_WFSERR,
+ "Incomplete WFS request: %s parameter missing",
+ "msWFSGetFeature()",
+ (nWFSVersion >= OWS_2_0_0 ) ? "TYPENAMES": "TYPENAME" );
+ return msWFSException(map, (nWFSVersion >= OWS_2_0_0 ) ? "typenames": "typename",
+ MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ /* Is it a WFS 2.0 GetFeatureById stored query with an unknown id ? */
+ /* If so, CITE interprets the spec as requesting to issue a OperationProcessingFailed */
+ /* exception. A bit strange when a similar request but with RESOURCEID= should */
+ /* produce an empty FeatureCollection */
+ if( nWFSVersion >= OWS_2_0_0 &&
+ paramsObj->pszTypeName != NULL && strcmp(paramsObj->pszTypeName, "?") == 0 &&
+ paramsObj->pszFilter != NULL && paramsObj->pszFeatureId == NULL )
+ {
+ CPLXMLNode* psDoc;
+
+ psDoc = CPLParseXMLString(paramsObj->pszFilter);
+ if( psDoc != NULL )
+ {
+ const char* rid;
+
+ CPLStripXMLNamespace(psDoc, NULL, 1);
+ rid = CPLGetXMLValue(psDoc, "=Filter.ResourceId.rid", NULL);
+ if( rid != NULL )
+ {
+ msSetError(MS_WFSERR, "Invalid rid '%s'", "msWFSGetFeature()", rid);
+ CPLDestroyXMLNode(psDoc);
+ return msWFSException(map, NULL, MS_WFS_ERROR_OPERATION_PROCESSING_FAILED,
+ paramsObj->pszVersion );
+ }
+ CPLDestroyXMLNode(psDoc);
+ }
+ }
+
+ papszGMLGroups = (char**) calloc(sizeof(char*), map->numlayers);
+ papszGMLIncludeItems = (char**) calloc(sizeof(char*), map->numlayers);
+ papszGMLGeometries = (char**) calloc(sizeof(char*), map->numlayers);
+
+ if(paramsObj->pszTypeName) {
+ int k, y,z;
+
+ char **tokens;
+ int n=0, i=0;
+ char **papszPropertyName = NULL;
+ char **papszSortBy = NULL;
+
+ /* keep a ref for layer use. */
+ gmlinfo.typename = paramsObj->pszTypeName;
+
+ /* Parse comma-delimited list of type names (layers) */
+ /* */
+ /* __TODO__ Need to handle type grouping, e.g. "(l1,l2),l3,l4" */
+ /* */
+ layers = msStringSplit(gmlinfo.typename, ',', &numlayers);
+
+ /* ==================================================================== */
+ /* TODO: check if the typename contains namespaces (ex cdf:Other), */
+ /* If that is the case extract only the layer name. */
+ /* ==================================================================== */
+
+ if (layers==NULL || numlayers < 1) {
+ msSetError(MS_WFSERR, "At least one type name required in %s parameter.", "msWFSGetFeature()",
+ (nWFSVersion >= OWS_2_0_0 ) ? "TYPENAMES": "TYPENAME" );
+ return msWFSException(map, (nWFSVersion >= OWS_2_0_0 ) ? "typenames": "typename" ,
+ MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ /* strip namespace if there is one :ex TYPENAME=cdf:Other */
+ for (i=0; i<numlayers; i++) {
+ char* pszTmp = msStrdup(msWFSStripNS(layers[i]));
+ free(layers[i]);
+ layers[i] = pszTmp;
+ }
+
+ /* Keep only selected layers, set to OFF by default. */
+ msWFSTurnOffAllLayer(map);
+
+ papszPropertyName = msWFSParsePropertyNameOrSortBy(paramsObj->pszPropertyName, numlayers);
+ if( papszPropertyName == NULL ) {
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ msSetError(MS_WFSERR,
+ "Optional PROPERTYNAME parameter. A list of properties may be specified for each type name. Example TYPENAME=name1,name2&PROPERTYNAME=(prop1,prop2)(prop1)",
+ "msWFSGetFeature()");
+ return msWFSException(map, "PROPERTYNAME", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ papszSortBy = msWFSParsePropertyNameOrSortBy(paramsObj->pszSortBy, numlayers);
+ if( papszSortBy == NULL ) {
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ msSetError(MS_WFSERR,
+ "Optional SORTBY parameter. A list may be specified for each type name. Example TYPENAME=name1,name2&SORTBY=(prop1,prop2)(prop1)",
+ "msWFSGetFeature()");
+ return msWFSException(map, "SORTBY", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ for (k=0; k<numlayers; k++) {
+ layerObj *lp;
+ lp = msWFSGetLayerByName(map, ows_request, layers[k]);
+ if( lp != NULL )
+ {
+ gmlItemListObj *itemList=NULL;
+ gmlGeometryListObj *geometryList=NULL;
+ gmlGroupListObj* groupList=NULL;
+
+ lp->status = MS_ON;
+ if (lp->template == NULL) {
+ /* Force setting a template to enable query. */
+ lp->template = msStrdup("ttt.html");
+ }
+
+ /*do an alias replace for the current layer*/
+ if (msLayerOpen(lp) == MS_SUCCESS && msLayerGetItems(lp) == MS_SUCCESS) {
+
+ itemList = msGMLGetItems(lp, "G");
+ groupList = msGMLGetGroups(lp, "G");
+
+ if( strcmp(papszSortBy[k], "!") != 0 )
+ {
+ status = msWFSApplySortBy(map, paramsObj, lp,
+ papszSortBy[k], itemList, groupList);
+ if( status != MS_SUCCESS )
+ {
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszSortBy, numlayers);
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ return status;
+ }
+ }
+
+ geometryList=msGMLGetGeometries(lp, "GFO", MS_TRUE);
+
+ /* unalias, ungroup and validate that the property names passed are part of the items list*/
+ tokens = msStringSplit(papszPropertyName[k], ',', &n);
+ for (y=0; y<n; y++) {
+ const char* pszPropertyNameItem = tokens[y];
+ int nGroupIndex = -1;
+
+ if (strcasecmp(pszPropertyNameItem, "*") == 0 ||
+ strcasecmp(pszPropertyNameItem, "!") == 0)
+ continue;
+
+ pszPropertyNameItem = msWFSStripNS(pszPropertyNameItem);
+ pszPropertyNameItem = msWFSUnaliasItem(lp, pszPropertyNameItem);
+ pszPropertyNameItem = msWFSUngroupItem(lp, groupList, pszPropertyNameItem, &nGroupIndex);
+ if( nGroupIndex >= 0 )
+ continue;
+
+ /* Check that the property name is allowed (#3563) */
+ /*we need to check of the property name is the geometry name; In that case it
+ is a valid property name*/
+ if (!msWFSIsAllowedItem(itemList,pszPropertyNameItem)) {
+ for(z=0; z<geometryList->numgeometries; z++) {
+ if (strcasecmp(pszPropertyNameItem, geometryList->geometries[z].name) == 0)
+ break;
+ }
+
+ if (z == geometryList->numgeometries) {
+ msSetError(MS_WFSERR,
+ "Invalid PROPERTYNAME %s", "msWFSGetFeature()", tokens[y]);
+ msFreeCharArray(tokens, n);
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszSortBy, numlayers);
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return msWFSException(map, "PROPERTYNAME", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+ }
+ else
+ {
+ char* pszTmp = msStrdup(pszPropertyNameItem);
+ msFree(tokens[y]);
+ tokens[y] = pszTmp;
+ }
+ }
+
+ /* Add mandatory items that are not explicitely listed. */
+ /* When the user specifies PROPERTYNAME, we might have to augment */
+ /* the list of returned parameters so as to validate against the schema. */
+ /* This is made clear in the WFS 1.0.0, 1.1.0 and 2.0.0 specs (#3319) */
+ for(z=0; z<itemList->numitems; z++) {
+ if( itemList->items[z].visible &&
+ itemList->items[z].minOccurs == 1 )
+ {
+ int bFound = MS_FALSE;
+ for (y=0; y<n; y++) {
+ if( strcasecmp(tokens[y], "*") == 0 ||
+ strcasecmp(tokens[y], "!") == 0 ||
+ strcasecmp(tokens[y], itemList->items[z].name) == 0 )
+ {
+ bFound = MS_TRUE;
+ break;
+ }
+ }
+ if( !bFound )
+ {
+ tokens = (char**) realloc(tokens, sizeof(char*) * (n+1));
+ tokens[n] = msStrdup(itemList->items[z].name);
+ n ++;
+ }
+ }
+ }
+
+ /* Rebuild papszPropertyName[k] */
+ msFree(papszPropertyName[k]);
+ papszPropertyName[k] = NULL;
+ for (y=0; y<n; y++) {
+ if( y == 0 )
+ papszPropertyName[k] = msStrdup(tokens[y]);
+ else {
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], ",");
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], tokens[y]);
+ }
+ }
+
+
+ msFreeCharArray(tokens, n);
+ msLayerClose(lp);
+
+ if (strlen(papszPropertyName[k]) > 0) {
+
+ if (strcasecmp(papszPropertyName[k], "*") == 0) {
+ /* Add all non-excluded items, including optional ones */
+ msFree(papszPropertyName[k]);
+ papszPropertyName[k] = NULL;
+ for(z=0; z<itemList->numitems; z++) {
+ if( itemList->items[z].visible ) {
+ if( papszPropertyName[k] != NULL )
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], ",");
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], itemList->items[z].name);
+ }
+ }
+ if( papszPropertyName[k] )
+ papszGMLIncludeItems[lp->index] = msStrdup(papszPropertyName[k]);
+ else
+ papszGMLIncludeItems[lp->index] = msStrdup("");
+
+ /* The user didn't specify explicity PROPERTYNAME for this layer */
+ } else if (strcasecmp(papszPropertyName[k], "!") == 0) {
+ /* Add all non-excluded items, but only default and mandatory ones (and geometry) */
+ msFree(papszPropertyName[k]);
+ papszPropertyName[k] = NULL;
+ for(z=0; z<itemList->numitems; z++) {
+ if( itemList->items[z].visible &&
+ (itemList->items[z].outputByDefault == 1 ||
+ itemList->items[z].minOccurs == 1) ) {
+ if( papszPropertyName[k] != NULL )
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], ",");
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], itemList->items[z].name);
+ }
+ }
+ if( papszPropertyName[k] )
+ papszGMLIncludeItems[lp->index] = msStrdup(papszPropertyName[k]);
+ else
+ papszGMLIncludeItems[lp->index] = msStrdup("");
+
+ } else {
+ char* pszGeometryList = NULL;
+
+ for(z=0; z<groupList->numgroups; z++) {
+ const char* pszNeedle = strstr(papszPropertyName[k], groupList->groups[z].name);
+ char chAfterNeedle = 0;
+ if( pszNeedle != NULL )
+ chAfterNeedle = papszPropertyName[k][strlen(groupList->groups[z].name)];
+ if(pszNeedle != NULL && (chAfterNeedle == '\0' || chAfterNeedle == ',') ) {
+ int w;
+ for(w=0;w<groupList->groups[z].numitems;w++)
+ {
+ if(strstr(papszPropertyName[k], groupList->groups[z].items[w]) == NULL) {
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], ",");
+ papszPropertyName[k] = msStringConcatenate(
+ papszPropertyName[k], groupList->groups[z].items[w]);
+ }
+ }
+ }
+ }
+
+ papszGMLIncludeItems[lp->index] = msStrdup(papszPropertyName[k]);
+
+ for(z=0; z<geometryList->numgeometries; z++) {
+ if (strstr(papszPropertyName[k], geometryList->geometries[z].name) != NULL) {
+ if( pszGeometryList != NULL )
+ pszGeometryList = msStringConcatenate(
+ pszGeometryList, ",");
+ pszGeometryList = msStringConcatenate(
+ pszGeometryList, geometryList->geometries[z].name);
+ }
+ }
+
+ if( pszGeometryList != NULL ) {
+ papszGMLGeometries[lp->index] = msStrdup(pszGeometryList);
+ msFree(pszGeometryList);
+ } else {
+ papszGMLGeometries[lp->index] = msStrdup("none");
+ }
+ }
+ } else {/*empty string*/
+ papszGMLGeometries[lp->index] = msStrdup("none");
+ }
+ }
+ else
+ {
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszSortBy, numlayers);
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
+ }
+
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
+ }
+ else
+ {
+ /* Requested layer name was not in capabilities:
+ * either it just doesn't exist
+ */
+ msSetError(MS_WFSERR,
+ "TYPENAME '%s' doesn't exist in this server. Please check the capabilities and reformulate your request.",
+ "msWFSGetFeature()", layers[k]);
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszSortBy, numlayers);
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return msWFSException(map, "typename", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+ }
+
+ msFreeCharArray(papszPropertyName, numlayers);
+ msFreeCharArray(papszSortBy, numlayers);
+ }
+
+ /* Validate outputformat */
+ status = msWFSGetGMLOutputFormat(map, paramsObj, &gmlinfo, nWFSVersion);
+ if( status < 0 ) {
+ psFormat = msWFSGetOtherOutputFormat(map, paramsObj);
+ if( psFormat == NULL ) {
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return msWFSException(map, "outputformat",
+ MS_OWS_ERROR_INVALID_PARAMETER_VALUE,
+ paramsObj->pszVersion );
+ }
+ }
+ else {
+ outputformat = (OWSGMLVersion) status;
+ }
+
+ msWFSAnalyzeStartIndexAndFeatureCount(map, paramsObj,
+ &maxfeatures, &startindex);
+
+ status = msWFSAnalyzeBBOX(map, paramsObj, &bbox, &sBBoxSrs);
+ if( status != 0 )
+ {
+ msFreeCharArray(layers, numlayers);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return status;
+ }
+
+ if( iResultTypeHits == 1 )
+ {
+ map->query.only_cache_result_count = MS_TRUE;
+ }
+
+
+ status = msWFSRetrieveFeatures(map,
+ ows_request,
+ paramsObj,
+ &gmlinfo,
+ paramsObj->pszFilter,
+ paramsObj->pszBbox != NULL,
+ sBBoxSrs,
+ bbox,
+ paramsObj->pszFeatureId,
+ layers,
+ numlayers,
+ maxfeatures,
+ nWFSVersion,
+ &iNumberOfFeatures,
+ &bHasNextFeatures);
+ if( status != MS_SUCCESS )
+ {
+ msFreeCharArray(layers, numlayers);
+ msFree(sBBoxSrs);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return status;
+ }
+
+ /* ----------------------------------------- */
+ /* Now compute nMatchingFeatures for WFS 2.0 */
+ /* ----------------------------------------- */
+
+ nMatchingFeatures = msWFSComputeMatchingFeatures(map,ows_request,paramsObj,
+ iNumberOfFeatures,
+ maxfeatures,
+ &gmlinfo,
+ bbox,
+ sBBoxSrs,
+ layers,
+ numlayers,
+ nWFSVersion);
+
+ msFreeCharArray(layers, numlayers);
+
+ msFree(sBBoxSrs);
+ sBBoxSrs = NULL;
+
+ /*
+ ** GML Header generation.
+ */
+
+ status = MS_SUCCESS;
+
+ if( psFormat == NULL ) {
+#ifdef USE_OGR
+ if( paramsObj->countGetFeatureById == 1 && maxfeatures != 0 && iResultTypeHits == 0 )
+ {
+ /* When there's a single urn:ogc:def:query:OGC-WFS::GetFeatureById GetFeature request */
+ /* we must not output a FeatureCollection but the object itself */
+ /* We do that as a post-processing step, so let print into a buffer and modify the */
+ /* XML afterwards */
+ old_context = msIO_pushStdoutToBufferAndGetOldContext();
+ }
+ else
+#endif
+ {
+ msIO_setHeader("Content-Type","%s; charset=UTF-8", gmlinfo.output_mime_type);
+ msIO_sendHeaders();
+ }
+
+ status = msWFSGetFeature_GMLPreamble( map, req, &gmlinfo, paramsObj,
+ outputformat,
+ iResultTypeHits,
+ iNumberOfFeatures,
+ nMatchingFeatures,
+ maxfeatures,
+ bHasNextFeatures,
+ nWFSVersion );
+ if(status != MS_SUCCESS) {
+ if( old_context != NULL )
+ msIO_restoreOldStdoutContext(old_context);
+ msWFSCleanupGMLInfo(&gmlinfo);
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return MS_FAILURE;
+ }
+ }
+
+ /* handle case of maxfeatures = 0 */
+ /*internally use a start index that start with 0 as the first index*/
+ if( psFormat == NULL ) {
+ if(maxfeatures != 0 && iResultTypeHits == 0)
+ {
+ layerObj* lp;
+ int i;
+ int bWFS2MultipleFeatureCollection = MS_FALSE;
+
+ /* Would make sense for WFS 1.1.0 too ! See #3576 */
+ int bUseURN = (nWFSVersion == OWS_2_0_0);
+ const char* useurn = msOWSLookupMetadata(&(map->web.metadata), "F", "return_srs_as_urn");
+ if (useurn && strcasecmp(useurn, "true") == 0)
+ bUseURN = 1;
+ else if (useurn && strcasecmp(useurn, "false") == 0)
+ bUseURN = 0;
+
+ for(i=0;i<map->numlayers;i++)
+ {
+ lp = GET_LAYER(map, i);
+ if( papszGMLGroups[i] )
+ msInsertHashTable(&(lp->metadata), "GML_GROUPS", papszGMLGroups[i]);
+ if( papszGMLIncludeItems[i] )
+ msInsertHashTable(&(lp->metadata), "GML_INCLUDE_ITEMS", papszGMLIncludeItems[i]);
+ if( papszGMLGeometries[i] )
+ msInsertHashTable(&(lp->metadata), "GML_GEOMETRIES", papszGMLGeometries[i]);
+ }
+
+ /* For WFS 2.0, when we request several types, we must present each type */
+ /* in its own FeatureCollection (§ 11.3.3.5 ) */
+ if( nWFSVersion >= OWS_2_0_0 && iResultTypeHits != 1 )
+ {
+ int nLayersWithFeatures = 0;
+ for(i=0; i<map->numlayers; i++) {
+ lp = GET_LAYER(map, i);
+ if(lp->resultcache && lp->resultcache->numresults > 0)
+ nLayersWithFeatures ++;
+ }
+ if( nLayersWithFeatures > 1 )
+ {
+ char timestring[100];
+ resultCacheObj** saveResultCache = (resultCacheObj** )
+ msSmallMalloc( map->numlayers * sizeof(resultCacheObj*));
+ int iLastNonEmptyLayer = -1;
+
+ msWFSGetFeature_GetTimeStamp(timestring, sizeof(timestring));
+
+ /* Emit global bounds */
+ msGMLWriteWFSBounds(map, stdout, " ", outputformat, nWFSVersion, bUseURN);
+
+ /* Save the result cache that contains the features that we want to */
+ /* emit in the response */
+ for(i=0; i<map->numlayers; i++) {
+ lp = GET_LAYER(map, i);
+ saveResultCache[i] = lp->resultcache;
+ if( lp->resultcache && lp->resultcache->numresults > 0) {
+ iLastNonEmptyLayer = i;
+ }
+ lp->resultcache = NULL;
+ }
+
+ /* Just dump one layer at a time */
+ for(i=0;i<map->numlayers;i++) {
+ lp = GET_LAYER(map, i);
+ lp->resultcache = saveResultCache[i];
+ if( lp->resultcache && lp->resultcache->numresults > 0) {
+ msIO_fprintf(stdout, " <wfs:member>\n");
+ msIO_fprintf(stdout, " <wfs:FeatureCollection timeStamp=\"%s\" numberMatched=\"", timestring);
+ if( i < iLastNonEmptyLayer || nMatchingFeatures >= 0 )
+ msIO_fprintf(stdout, "%d", lp->resultcache->numresults );
+ else
+ msIO_fprintf(stdout, "unknown" );
+ msIO_fprintf(stdout, "\" numberReturned=\"%d\">\n", lp->resultcache->numresults );
+
+ msGMLWriteWFSQuery(map, stdout,
+ gmlinfo.user_namespace_prefix,
+ outputformat,
+ nWFSVersion,
+ bUseURN,
+ MS_FALSE);
+ msIO_fprintf(stdout, " </wfs:FeatureCollection>\n");
+ msIO_fprintf(stdout, " </wfs:member>\n");
+ }
+ lp->resultcache = NULL;
+ }
+
+ /* Restore for later cleanup */
+ for(i=0; i<map->numlayers; i++) {
+ lp = GET_LAYER(map, i);
+ lp->resultcache = saveResultCache[i];
+ }
+ msFree(saveResultCache);
+
+ bWFS2MultipleFeatureCollection = MS_TRUE;
+ }
+ }
+
+ if( !bWFS2MultipleFeatureCollection )
+ {
+ msGMLWriteWFSQuery(map, stdout,
+ gmlinfo.user_namespace_prefix,
+ outputformat,
+ nWFSVersion,
+ bUseURN,
+ MS_FALSE);
+ }
+
+ status = MS_SUCCESS;
+ }
+ } else {
+ mapservObj *mapserv = msAllocMapServObj();
+
+ /* Setup dummy mapserv object */
+ mapserv->sendheaders = MS_TRUE;
+ mapserv->map = map;
+ msFreeCgiObj(mapserv->request);
+ mapserv->request = req;
+ map->querymap.status = MS_FALSE;
+
+ status = msReturnTemplateQuery( mapserv, psFormat->name, NULL );
+
+ mapserv->request = NULL;
+ mapserv->map = NULL;
+
+ msFreeMapServObj( mapserv );
+
+ if( status != MS_SUCCESS ) {
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+ return msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE,
+ paramsObj->pszVersion );
+ }
+ }
+
+ msFreeCharArray(papszGMLGroups, map->numlayers);
+ msFreeCharArray(papszGMLIncludeItems, map->numlayers);
+ msFreeCharArray(papszGMLGeometries, map->numlayers);
+
+ if( psFormat == NULL && status == MS_SUCCESS ) {
+ msWFSGetFeature_GMLPostfix( map, req, &gmlinfo, paramsObj,
+ outputformat,
+ maxfeatures, iResultTypeHits, iNumberOfFeatures,
+ nWFSVersion );
+ }
+
+#ifdef USE_OGR
+ /*Special case for a single urn:ogc:def:query:OGC-WFS::GetFeatureById GetFeature request */
+ if( old_context != NULL )
+ {
+ msIOContext* new_context;
+ msIOBuffer* buffer;
+ CPLXMLNode* psRoot;
+
+ new_context = msIO_getHandler(stdout);
+ buffer = (msIOBuffer *) new_context->cbData;
+ psRoot = CPLParseXMLString((const char*) buffer->data);
+ msIO_restoreOldStdoutContext(old_context);
+ if( psRoot != NULL )
+ {
+ CPLXMLNode* psFeatureCollection = CPLGetXMLNode(psRoot, "=wfs:FeatureCollection");
+ if( psFeatureCollection != NULL )
+ {
+ CPLXMLNode* psMember = CPLGetXMLNode(psFeatureCollection, "wfs:member");
+ if( psMember != NULL && psMember->psChild != NULL )
+ {
+ CPLXMLNode* psIter;
+ CPLXMLNode* psFeatureNode;
+ char* pszTmpXML;
+
+ /* Transfer all namespaces of FeatureCollection to the Feature */
+ psFeatureNode = psMember->psChild;
+ psIter = psFeatureCollection->psChild;
+ while(psIter != NULL)
+ {
+ if( psIter->eType == CXT_Attribute &&
+ (strncmp(psIter->pszValue, "xmlns:", strlen("xmlns:")) == 0 ||
+ strncmp(psIter->pszValue, "xsi:", strlen("xsi:")) == 0) )
+ {
+ CPLXMLNode* psIterNext = psIter->psNext;
+ psIter->psNext = NULL;
+ CPLAddXMLChild(psFeatureNode, CPLCloneXMLTree(psIter));
+ psIter->psNext = psIterNext;
+ }
+ psIter = psIter->psNext;
+ }
+
+ pszTmpXML = CPLSerializeXMLTree(psFeatureNode);
+ msIO_setHeader("Content-Type","%s; charset=UTF-8", gmlinfo.output_mime_type);
+ msIO_sendHeaders();
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" ?>\n");
+ msIO_printf("%s", pszTmpXML);
+ CPLFree(pszTmpXML);
+ }
+ else
+ {
+ status = msWFSException(map, NULL, MS_WFS_ERROR_OPERATION_PROCESSING_FAILED,
+ paramsObj->pszVersion );
+ }
+ }
+ CPLDestroyXMLNode(psRoot);
+ }
+ }
+#endif
+
+ msWFSCleanupGMLInfo(&gmlinfo);
+
+ return status;
+}
+
+/*
+** msWFSGetPropertyValue()
+*/
+static
+int msWFSGetPropertyValue(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req,
+ owsRequestObj *ows_request, int nWFSVersion)
+{
+ int status;
+ int maxfeatures=-1,startindex=-1;
+ rectObj bbox;
+
+ char *sBBoxSrs = NULL;
+
+ WFSGMLInfo gmlinfo;
+
+ OWSGMLVersion outputformat = OWS_GML2; /* default output is GML 2.1 */
+
+ int iNumberOfFeatures = 0;
+ int iResultTypeHits = 0;
+ int nMatchingFeatures = -1;
+ int bHasNextFeatures = MS_FALSE;
+
+ const char* pszTypeName;
+ layerObj *lp;
+
+ char* pszGMLGroups = NULL;
+ char* pszGMLIncludeItems = NULL;
+ char* pszGMLGeometries = NULL;
+
+ status = msWFSResolveStoredQuery(map, paramsObj, req);
+ if( status != MS_SUCCESS )
+ return status;
+
+ if (paramsObj->pszTypeName==NULL) {
+ msSetError(MS_WFSERR,
+ "Incomplete WFS request: TYPENAMES parameter missing",
+ "msWFSGetPropertyValue()");
+ return msWFSException(map, "typenames",
+ MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ if (paramsObj->pszValueReference==NULL) {
+ msSetError(MS_WFSERR,
+ "Incomplete WFS request: VALUEREFERENCE parameter missing",
+ "msWFSGetPropertyValue()");
+ return msWFSException(map, "valuereference",
+ MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
+
+ /* Keep only selected layers, set to OFF by default. */
+ msWFSTurnOffAllLayer(map);
+
+ /* Remove namespace prefix */
+ pszTypeName = msWFSStripNS(paramsObj->pszTypeName);
+
+ lp = msWFSGetLayerByName(map, ows_request, pszTypeName);
+ if( lp != NULL ) {
+ gmlItemListObj *itemList=NULL;
+ gmlGeometryListObj *geometryList=NULL;
+ gmlGroupListObj* groupList=NULL;
+
+ lp->status = MS_ON;
+ if (lp->template == NULL) {
+ /* Force setting a template to enable query. */
+ lp->template = msStrdup("ttt.html");
+ }
+
+ /*do an alias replace for the current layer*/
+ if (msLayerOpen(lp) == MS_SUCCESS && msLayerGetItems(lp) == MS_SUCCESS) {
+ const char* pszValueReference;
+ int z;
+ int nGroupIndex = -1;
+
+ itemList = msGMLGetItems(lp, "G");
+ groupList = msGMLGetGroups(lp, "G");
+
+ if( paramsObj->pszSortBy != NULL &&
+ strcmp(paramsObj->pszSortBy, "!") != 0 )
+ {
+ status = msWFSApplySortBy(map, paramsObj, lp,
+ paramsObj->pszSortBy, itemList, groupList);
+ if( status != MS_SUCCESS )
+ {
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ return status;
+ }
+ }
+
+ geometryList=msGMLGetGeometries(lp, "GFO", MS_TRUE);
+
+ pszValueReference = msWFSStripNS(paramsObj->pszValueReference);
+ pszValueReference = msWFSUnaliasItem(lp, pszValueReference);
+ pszValueReference = msWFSUngroupItem(lp, groupList, pszValueReference, &nGroupIndex);
+
+ if( strcmp(paramsObj->pszValueReference, "@gml:id") == 0 ) {
+ pszGMLGroups = msStrdup("");
+ pszGMLIncludeItems = msStrdup(paramsObj->pszValueReference);
+ pszGMLGeometries = msStrdup("none");
+ }
+ else if( nGroupIndex >= 0 ) {
+ int w;
+ char* pszItems = NULL;
+ for(w=0;w<groupList->groups[nGroupIndex].numitems;w++) {
+ if( w > 0 )
+ pszItems = msStringConcatenate(pszItems, ",");
+ pszItems = msStringConcatenate(pszItems, groupList->groups[nGroupIndex].items[w]);
+ }
+ pszGMLGroups = msStrdup(groupList->groups[nGroupIndex].name);
+ pszGMLIncludeItems = msStrdup(pszItems);
+ pszGMLGeometries = msStrdup("none");
+ msFree(pszItems);
+ }
+ else {
+ pszGMLGroups = msStrdup("");
+
+ /* Check that the property name is allowed (#3563) */
+ /*we need to check of the property name is the geometry name; In that case it
+ is a valid property name*/
+ if (!msWFSIsAllowedItem(itemList, pszValueReference)) {
+ for(z=0; z<geometryList->numgeometries; z++) {
+ if (strcasecmp(pszValueReference, geometryList->geometries[z].name) == 0)
+ break;
+ }
- /*make sure that the layer projectsion is loaded.
- It could come from a ows/wfs_srs metadata*/
- if (lp->projection.numargs == 0) {
- pszLayerSRS = msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FO", MS_TRUE);
- if (pszLayerSRS) {
- if (strncmp(pszLayerSRS, "EPSG:", 5) == 0) {
- if( msOWSParseVersionString(paramsObj->pszVersion) >= OWS_1_1_0 )
- msLoadProjectionStringEPSG(&(lp->projection), pszLayerSRS);
- else
- msLoadProjectionString(&(lp->projection), pszLayerSRS);
+ if (z == geometryList->numgeometries) {
+ msSetError(MS_WFSERR,
+ "Invalid VALUEREFERENCE %s", "msWFSGetPropertyValue()", paramsObj->pszValueReference);
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
+ return msWFSException(map, "valuereference", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
+ else {
+ pszGMLIncludeItems = msStrdup("");
+ pszGMLGeometries = msStrdup(pszValueReference);
+ }
+ }
+ else {
+ pszGMLIncludeItems = msStrdup(pszValueReference);
+ pszGMLGeometries = msStrdup("none");
}
}
- if (msProjectionsDiffer(&map->projection, &lp->projection) == MS_TRUE) {
- msProjectRect(&lp->projection, &map->projection, &(ext));
- }
- bbox = ext;
- }
- map->query.rect = bbox;
- map->query.layer = j;
- if(msQueryByRect(map) != MS_SUCCESS) {
- errorObj *ms_error;
- ms_error = msGetErrorObj();
-
- if(ms_error->code != MS_NOTFOUND) {
- msSetError(MS_WFSERR, "ms_error->code not found", "msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
- }
- }
+ msLayerClose(lp);
+
+ msGMLFreeItems(itemList);
+ msGMLFreeGroups(groupList);
+ msGMLFreeGeometries(geometryList);
}
- }
- } else {
- if (sBBoxSrs) {
- int status;
- projectionObj sProjTmp;
+ }
+ else {
+ /* Requested layer name was not in capabilities:
+ * either it just doesn't exist
+ */
+ msSetError(MS_WFSERR,
+ "TYPENAME '%s' doesn't exist in this server. Please check the capabilities and reformulate your request.",
+ "msWFSGetFeature()", paramsObj->pszTypeName);
+ msFree(pszGMLGroups);
+ msFree(pszGMLIncludeItems);
+ msFree(pszGMLGeometries);
+ return msWFSException(map, "typename", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
+ }
- msInitProjection(&sProjTmp);
- /*do the axis order for now. It is unclear if the bbox are expected
- ro respect the axis oder defined in the projectsion #3296*/
+ /* Initialize gml options */
+ msWFSInitGMLInfo(&gmlinfo);
- if(strncmp(paramsObj->pszVersion,"1.1",3) == 0) {
- if ((status=msLoadProjectionStringEPSG(&sProjTmp, sBBoxSrs)) == 0) {
- msAxisNormalizePoints( &sProjTmp, 1, &bbox.minx, &bbox.miny );
- msAxisNormalizePoints( &sProjTmp, 1, &bbox.maxx, &bbox.maxy );
- }
- } else
- status = msLoadProjectionString(&sProjTmp, sBBoxSrs);
+ if (paramsObj->pszResultType != NULL) {
+ if (strcasecmp(paramsObj->pszResultType, "hits") == 0)
+ iResultTypeHits = 1;
+ }
- if (status == 0 && map->projection.numargs > 0)
- msProjectRect(&sProjTmp, &map->projection, &bbox);
+ gmlinfo.typename = paramsObj->pszTypeName;
- msFree(sBBoxSrs);
- }
- map->query.type = MS_QUERY_BY_RECT; /* setup the query */
- map->query.mode = MS_QUERY_MULTIPLE;
- map->query.rect = bbox;
+ /* Validate outputformat */
+ status = msWFSGetGMLOutputFormat(map, paramsObj, &gmlinfo, nWFSVersion);
+ if( status < 0 ) {
+ msSetError(MS_WFSERR,
+ "'%s' is not a permitted output format for GetPropertyValue request.",
+ "msWFSGetPropertyValue()",
+ paramsObj->pszOutputFormat);
+ msFree(pszGMLGroups);
+ msFree(pszGMLIncludeItems);
+ msFree(pszGMLGeometries);
+ return msWFSException(map, "outputformat",
+ MS_OWS_ERROR_INVALID_PARAMETER_VALUE,
+ paramsObj->pszVersion );
+ }
+ else {
+ outputformat = (OWSGMLVersion) status;
+ }
- if(msQueryByRect(map) != MS_SUCCESS) {
- errorObj *ms_error;
- ms_error = msGetErrorObj();
+ msWFSAnalyzeStartIndexAndFeatureCount(map, paramsObj,
+ &maxfeatures, &startindex);
- if(ms_error->code != MS_NOTFOUND) {
- msSetError(MS_WFSERR, "ms_error->code not found", "msWFSGetFeature()");
- return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
- }
- }
- }
+ status = msWFSAnalyzeBBOX(map, paramsObj, &bbox, &sBBoxSrs);
+ if( status != 0 )
+ return status;
+
+ if( iResultTypeHits == 1 )
+ {
+ map->query.only_cache_result_count = MS_TRUE;
}
- /* if no results where written (TODO: this needs to be GML2/3 specific I imagine */
- for(j=0; j<map->numlayers; j++) {
- if (GET_LAYER(map, j)->resultcache && GET_LAYER(map, j)->resultcache->numresults > 0) {
- iNumberOfFeatures += GET_LAYER(map, j)->resultcache->numresults;
- }
+ status = msWFSRetrieveFeatures(map,
+ ows_request,
+ paramsObj,
+ &gmlinfo,
+ paramsObj->pszFilter,
+ paramsObj->pszBbox != NULL,
+ sBBoxSrs,
+ bbox,
+ paramsObj->pszFeatureId,
+ (char**) &pszTypeName,
+ 1,
+ maxfeatures,
+ nWFSVersion,
+ &iNumberOfFeatures,
+ &bHasNextFeatures);
+ if( status != MS_SUCCESS )
+ {
+ msFree(sBBoxSrs);
+ msFree(pszGMLGroups);
+ msFree(pszGMLIncludeItems);
+ msFree(pszGMLGeometries);
+ return status;
}
+ /* ----------------------------------------- */
+ /* Now compute nMatchingFeatures for WFS 2.0 */
+ /* ----------------------------------------- */
+
+ nMatchingFeatures = msWFSComputeMatchingFeatures(map,ows_request,paramsObj,
+ iNumberOfFeatures,
+ maxfeatures,
+ &gmlinfo,
+ bbox,
+ sBBoxSrs,
+ (char**) &pszTypeName,
+ 1,
+ nWFSVersion);
+
+ msFree(sBBoxSrs);
+ sBBoxSrs = NULL;
+
/*
** GML Header generation.
*/
+ msIO_setHeader("Content-Type","%s; charset=UTF-8", gmlinfo.output_mime_type);
+ msIO_sendHeaders();
- status = MS_SUCCESS;
-
- if( psFormat == NULL ) {
- value = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
- if (value)
- msIO_setHeader("Content-Type","%s; charset=%s", output_mime_type,value);
- else
- msIO_setHeader("Content-Type","%s",output_mime_type);
- msIO_sendHeaders();
-
- status = msWFSGetFeature_GMLPreamble( map, req, &gmlinfo, paramsObj,
+ status = msWFSGetFeature_GMLPreamble( map, req, &gmlinfo, paramsObj,
outputformat,
iResultTypeHits,
- iNumberOfFeatures );
- if(status != MS_SUCCESS) {
- return MS_FAILURE;
- }
- }
-
- /* handle case of maxfeatures = 0 */
- /*internally use a start index that start with 0 as the first index*/
- if( psFormat == NULL ) {
- if(maxfeatures != 0 && iResultTypeHits == 0)
- status = msGMLWriteWFSQuery(map, stdout,
- (char *) gmlinfo.user_namespace_prefix,
- outputformat);
- } else {
- mapservObj *mapserv = msAllocMapServObj();
-
- /* Setup dummy mapserv object */
- mapserv->sendheaders = MS_TRUE;
- mapserv->map = map;
- msFreeCgiObj(mapserv->request);
- mapserv->request = req;
- map->querymap.status = MS_FALSE;
-
- status = msReturnTemplateQuery( mapserv, psFormat->name, NULL );
+ iNumberOfFeatures,
+ nMatchingFeatures,
+ maxfeatures,
+ bHasNextFeatures,
+ nWFSVersion );
- mapserv->request = NULL;
- mapserv->map = NULL;
-
- msFreeMapServObj( mapserv );
+ if(status == MS_SUCCESS && maxfeatures != 0 && iResultTypeHits == 0)
+ {
+ if( pszGMLGroups )
+ msInsertHashTable(&(lp->metadata), "GML_GROUPS", pszGMLGroups);
+ if( pszGMLIncludeItems )
+ msInsertHashTable(&(lp->metadata), "GML_INCLUDE_ITEMS", pszGMLIncludeItems);
+ if( pszGMLGeometries )
+ msInsertHashTable(&(lp->metadata), "GML_GEOMETRIES", pszGMLGeometries);
- if( status != MS_SUCCESS ) {
- return msWFSException(map, "mapserv", "NoApplicableCode",
- paramsObj->pszVersion );
- }
+ status = msGMLWriteWFSQuery(map, stdout,
+ gmlinfo.user_namespace_prefix,
+ outputformat,
+ nWFSVersion,
+ MS_TRUE,
+ MS_TRUE);
}
- if( psFormat == NULL && status == MS_SUCCESS ) {
- msWFSGetFeature_GMLPostfix( map, req, &gmlinfo, paramsObj,
- outputformat,
- maxfeatures, iResultTypeHits, iNumberOfFeatures );
- }
+ msIO_printf("</wfs:ValueCollection>\n");
+
+ msFree(pszGMLGroups);
+ msFree(pszGMLIncludeItems);
+ msFree(pszGMLGeometries);
- /*
- ** Done! Now a bit of clean-up.
- */
+ free(gmlinfo.script_url);
+ free(gmlinfo.script_url_encoded);
+ msFree(gmlinfo.user_namespace_uri_encoded);
return status;
}
@@ -2485,6 +4321,8 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
#ifdef USE_WFS_SVR
int status;
int returnvalue = MS_DONE;
+ int nWFSVersion;
+ char* validated_language;
/* static char *wmtver = NULL, *request=NULL, *service=NULL; */
wfsParamsObj *paramsObj;
@@ -2494,8 +4332,18 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
paramsObj = msWFSCreateParamsObj();
/* TODO : store also parameters that are inside the map object */
/* into the paramsObj. */
- if (msWFSParseRequest(map, requestobj, ows_request, paramsObj, force_wfs_mode) == MS_FAILURE)
- return msWFSException(map, "request", "InvalidRequest", NULL);
+ status = msWFSParseRequest(map, requestobj, ows_request, paramsObj, force_wfs_mode);
+ if (status != MS_SUCCESS)
+ {
+ msWFSFreeParamsObj(paramsObj);
+ return status;
+ }
+
+ validated_language = msOWSGetLanguageFromList(map, "FO", paramsObj->pszLanguage);
+ if (validated_language != NULL) {
+ msMapSetLanguageSpecificConnection(map, validated_language);
+ }
+ msFree(validated_language);
if (force_wfs_mode) {
/*request is always required*/
@@ -2503,31 +4351,27 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
msSetError(MS_WFSERR,
"Incomplete WFS request: REQUEST parameter missing",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "request", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "request", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
/*version:
wfs 1.0 and 1.1.0 POST request: optional
- wfs 1.0 and 1.1.0 GET request: optional for getcapabilities and required for describefeatute and getfeature
+ wfs 1.0 and 1.1.0 GET request: optional for getcapabilities and required for describefeature and getfeature
*/
- if (paramsObj->pszVersion == NULL && requestobj && requestobj->postrequest == MS_FALSE &&
+ if (paramsObj->pszVersion == NULL && requestobj && requestobj->postrequest == NULL &&
strcasecmp(paramsObj->pszRequest, "GetCapabilities") != 0) {
msSetError(MS_WFSERR,
"Invalid WFS request: VERSION parameter missing",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "version", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "version", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
if (paramsObj->pszVersion == NULL || strlen(paramsObj->pszVersion) <=0)
- paramsObj->pszVersion = msStrdup("1.1.0");
+ paramsObj->pszVersion = msStrdup(msWFSGetDefaultVersion(map));
/*service
wfs 1.0 and 1.1.0 GET: required and should be set to WFS
@@ -2535,14 +4379,12 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
wfs 1.1.1 POST: optional
*/
if ((paramsObj->pszService == NULL || strlen(paramsObj->pszService) == 0) &&
- ((requestobj && requestobj->postrequest == MS_FALSE) || strcasecmp(paramsObj->pszVersion,"1.0") ==0)) {
+ ((requestobj && requestobj->postrequest == NULL) || strcasecmp(paramsObj->pszVersion,"1.0") ==0)) {
msSetError(MS_WFSERR,
"Invalid WFS request: Missing SERVICE parameter",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "service", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "service", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
@@ -2553,20 +4395,8 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
msSetError(MS_WFSERR,
"Invalid WFS request: SERVICE parameter must be set to WFS",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "service", "InvalidParameterValue", paramsObj->pszVersion);
- msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
- return returnvalue;
- }
- if (paramsObj->pszService == NULL && strcasecmp(paramsObj->pszVersion, "1.0") == 0) {
- msSetError(MS_WFSERR,
- "Invalid WFS request: SERVICE parameter missing",
- "msWFSDispatch()");
- returnvalue = msWFSException(map, "service", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "service", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
@@ -2575,8 +4405,6 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
if (paramsObj->pszService != NULL &&
strcasecmp(paramsObj->pszService, "WFS") != 0) {
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return MS_DONE; /* Not a WFS request */
}
@@ -2584,8 +4412,6 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
if (paramsObj->pszService == NULL && paramsObj->pszVersion==NULL &&
paramsObj->pszRequest==NULL) {
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return MS_DONE; /* Not a WFS request */
}
@@ -2597,10 +4423,8 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
"Incomplete WFS request: VERSION parameter missing",
"msWFSDispatch()");
- returnvalue = msWFSException11(map, "version", "MissingParameterValue", "1.1.0");
+ returnvalue = msWFSException11(map, "version", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, msWFSGetDefaultVersion(map));
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
@@ -2608,10 +4432,8 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
msSetError(MS_WFSERR,
"Incomplete WFS request: REQUEST parameter missing",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "request", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "request", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
@@ -2620,19 +4442,15 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
"Incomplete WFS request: SERVICE parameter missing",
"msWFSDispatch()");
- returnvalue = msWFSException(map, "service", "MissingParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "service", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
if ((status = msOWSMakeAllLayersUnique(map)) != MS_SUCCESS) {
msSetError(MS_WFSERR, "msOWSMakeAllLayersUnique() failed", "msWFSDispatch()");
- returnvalue = msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
/*
@@ -2642,17 +4460,13 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
msOWSRequestLayersEnabled(map, "F", paramsObj->pszRequest, ows_request);
if (ows_request->numlayers == 0) {
msSetError(MS_WFSERR, "WFS request not enabled. Check wfs/ows_enable_request settings.", "msWFSDispatch()");
- returnvalue = msWFSException(map, "request", "InvalidParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "request", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
returnvalue = msWFSGetCapabilities(map, paramsObj, requestobj, ows_request);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
@@ -2661,17 +4475,18 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
** for GetCapabilities in order to allow version negociation.
*/
if (strcmp(paramsObj->pszVersion, "1.0.0") != 0 &&
- strcmp(paramsObj->pszVersion, "1.1.0") != 0) {
+ strcmp(paramsObj->pszVersion, "1.1.0") != 0 &&
+ strcmp(paramsObj->pszVersion, "2.0.0") != 0) {
msSetError(MS_WFSERR,
"WFS Server does not support VERSION %s.",
"msWFSDispatch()", paramsObj->pszVersion);
- returnvalue = msWFSException11(map, "version", "InvalidParameterValue","1.1.0");
+ returnvalue = msWFSException(map, "version", MS_OWS_ERROR_INVALID_PARAMETER_VALUE,msWFSGetDefaultVersion(map));
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
+
+ nWFSVersion = msOWSParseVersionString(paramsObj->pszVersion);
/* Since the function can still return MS_DONE, we add an extra service check to not call
msOWSRequestLayersEnabled twice */
@@ -2679,10 +4494,8 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
msOWSRequestLayersEnabled(map, "F", paramsObj->pszRequest, ows_request);
if (ows_request->numlayers == 0) {
msSetError(MS_WFSERR, "WFS request not enabled. Check wfs/ows_enable_request settings.", "msWFSDispatch()");
- returnvalue = msWFSException(map, "request", "InvalidParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "request", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
}
}
@@ -2691,30 +4504,37 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
/* Continue dispatching...
*/
if (strcasecmp(paramsObj->pszRequest, "DescribeFeatureType") == 0)
- returnvalue = msWFSDescribeFeatureType(map, paramsObj, ows_request);
+ returnvalue = msWFSDescribeFeatureType(map, paramsObj, ows_request, nWFSVersion);
else if (strcasecmp(paramsObj->pszRequest, "GetFeature") == 0)
- returnvalue = msWFSGetFeature(map, paramsObj, requestobj, ows_request);
+ returnvalue = msWFSGetFeature(map, paramsObj, requestobj, ows_request, nWFSVersion);
+ else if (nWFSVersion >= OWS_2_0_0 &&
+ strcasecmp(paramsObj->pszRequest, "GetPropertyValue") == 0)
+ returnvalue = msWFSGetPropertyValue(map, paramsObj, requestobj, ows_request, nWFSVersion);
- else if (strcasecmp(paramsObj->pszRequest, "GetFeatureWithLock") == 0 ||
- strcasecmp(paramsObj->pszRequest, "LockFeature") == 0 ||
- strcasecmp(paramsObj->pszRequest, "Transaction") == 0 ) {
+ else if (nWFSVersion >= OWS_2_0_0 &&
+ strcasecmp(paramsObj->pszRequest, "ListStoredQueries") == 0)
+ returnvalue = msWFSListStoredQueries20(map, paramsObj, requestobj, ows_request);
+
+ else if (nWFSVersion >= OWS_2_0_0 &&
+ strcasecmp(paramsObj->pszRequest, "DescribeStoredQueries") == 0)
+ returnvalue = msWFSDescribeStoredQueries20(map, paramsObj, requestobj, ows_request);
+
+ else if (msWFSGetIndexUnsupportedOperation(paramsObj->pszRequest) >= 0 ) {
/* Unsupported WFS request */
msSetError(MS_WFSERR, "Unsupported WFS request: %s", "msWFSDispatch()",
paramsObj->pszRequest);
- returnvalue = msWFSException(map, "request", "InvalidParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, paramsObj->pszRequest, MS_OWS_ERROR_OPERATION_NOT_SUPPORTED, paramsObj->pszVersion);
} else if (strcasecmp(paramsObj->pszService, "WFS") == 0) {
/* Invalid WFS request */
msSetError(MS_WFSERR, "Invalid WFS request: %s", "msWFSDispatch()",
paramsObj->pszRequest);
- returnvalue = msWFSException(map, "request", "InvalidParameterValue", paramsObj->pszVersion);
+ returnvalue = msWFSException(map, "request", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, paramsObj->pszVersion);
}
/* This was not detected as a WFS request... let MapServer handle it */
msWFSFreeParamsObj(paramsObj);
- free(paramsObj);
- paramsObj = NULL;
return returnvalue;
#else
@@ -2724,57 +4544,432 @@ int msWFSDispatch(mapObj *map, cgiRequestObj *requestobj, owsRequestObj *ows_req
#endif
}
-/************************************************************************/
-/* msWFSCreateParamsObj */
-/* */
-/* Create a parameter object, initialize it. */
-/* The caller should free the object using msWFSFreeParamsObj. */
-/************************************************************************/
-wfsParamsObj *msWFSCreateParamsObj()
-{
- wfsParamsObj *paramsObj = (wfsParamsObj *)calloc(1, sizeof(wfsParamsObj));
- MS_CHECK_ALLOC(paramsObj, sizeof(wfsParamsObj), NULL);
+/************************************************************************/
+/* msWFSCreateParamsObj */
+/* */
+/* Create a parameter object, initialize it. */
+/* The caller should free the object using msWFSFreeParamsObj. */
+/************************************************************************/
+wfsParamsObj *msWFSCreateParamsObj()
+{
+ wfsParamsObj *paramsObj = (wfsParamsObj *)calloc(1, sizeof(wfsParamsObj));
+ MS_CHECK_ALLOC(paramsObj, sizeof(wfsParamsObj), NULL);
+
+ paramsObj->nMaxFeatures = -1;
+ paramsObj->nStartIndex = -1;
+
+ return paramsObj;
+}
+
+
+
+/************************************************************************/
+/* msWFSFreeParmsObj */
+/* */
+/* Free params object. */
+/************************************************************************/
+void msWFSFreeParamsObj(wfsParamsObj *wfsparams)
+{
+ if (wfsparams) {
+ free(wfsparams->pszVersion);
+ free(wfsparams->pszUpdateSequence);
+ free(wfsparams->pszRequest);
+ free(wfsparams->pszService);
+ free(wfsparams->pszTypeName);
+ free(wfsparams->pszFilter);
+ free(wfsparams->pszFilterLanguage);
+ free(wfsparams->pszBbox);
+ free(wfsparams->pszGeometryName);
+ free(wfsparams->pszOutputFormat);
+ free(wfsparams->pszFeatureId);
+ free(wfsparams->pszSrs);
+ free(wfsparams->pszResultType);
+ free(wfsparams->pszPropertyName);
+ free(wfsparams->pszAcceptVersions);
+ free(wfsparams->pszSections);
+ free(wfsparams->pszSortBy);
+ free(wfsparams->pszLanguage);
+ free(wfsparams->pszValueReference);
+ free(wfsparams->pszStoredQueryId);
+
+ free(wfsparams);
+ }
+}
+
+#ifdef USE_WFS_SVR
+/************************************************************************/
+/* msWFSGetDefaultVersion */
+/************************************************************************/
+static
+const char *msWFSGetDefaultVersion(mapObj *map)
+{
+ const char* pszVersion =
+ msOWSLookupMetadata(&(map->web.metadata), "F", "getcapabilities_version");
+ if( pszVersion != NULL )
+ {
+ /* Check that the metadata value is one of the recognized versions */
+ int iVersion = msOWSParseVersionString(pszVersion);
+ int i;
+ for( i = 0; i < wfsNumSupportedVersions; i ++ )
+ {
+ if( iVersion == wfsSupportedVersions[i] )
+ return wfsSupportedVersionsStr[i];
+ }
+ /* If not, use the default (= latest) version */
+ msDebug("msWFSGetDefaultVersion(): invalid value for "
+ "wfs_getcapabilities_version: %s\n", pszVersion);
+ }
+ return WFS_LATEST_VERSION;
+}
+
+/************************************************************************/
+/* msWFSSetParam */
+/************************************************************************/
+static int msWFSSetParam(char** ppszOut, cgiRequestObj *request, int i,
+ const char* pszExpectedParamName)
+{
+ if( strcasecmp(request->ParamNames[i], pszExpectedParamName) == 0 )
+ {
+ if( *ppszOut == NULL )
+ *ppszOut = msStrdup(request->ParamValues[i]);
+ return 1;
+ }
+ return 0;
+}
+
+#ifdef USE_OGR
+
+/************************************************************************/
+/* msWFSParseXMLQueryNode */
+/************************************************************************/
+
+static void msWFSParseXMLQueryNode(CPLXMLNode* psQuery, wfsParamsObj *wfsparams)
+{
+ const char* pszTypename;
+ const char* pszValue;
+ char *pszSerializedFilter, *pszTmp, *pszTmp2;
+ CPLXMLNode* psPropertyName;
+ CPLXMLNode* psFilter;
+ CPLXMLNode* psSortBy;
+ char* pszSortBy = NULL;
+
+ pszValue = CPLGetXMLValue(psQuery, "srsName",
+ NULL);
+ if (pszValue)
+ {
+ msFree(wfsparams->pszSrs);
+ wfsparams->pszSrs = msStrdup(pszValue);
+ }
+
+ /* parse typenames */
+ pszTypename = CPLGetXMLValue(psQuery,
+ "typename", NULL);
+ if( pszTypename == NULL ) /* WFS 2.0 */
+ pszTypename = CPLGetXMLValue(psQuery,
+ "typeNames", NULL);
+
+ /*parse property name*/
+ psPropertyName = CPLGetXMLNode(psQuery, "PropertyName");
+ pszTmp2= NULL;
+
+ /*when there is no PropertyName, we output (!) so that it is parsed properly in GetFeature*/
+ if (psPropertyName == NULL)
+ pszTmp2 = msStrdup("!");
+
+ while (psPropertyName) {
+ if (!psPropertyName->pszValue ||
+ strcasecmp(psPropertyName->pszValue, "PropertyName") != 0) {
+ psPropertyName = psPropertyName->psNext;
+ continue;
+ }
+ pszValue = CPLGetXMLValue(psPropertyName, NULL, NULL);
+ if (pszTmp2 == NULL) {
+ pszTmp2 = msStrdup(pszValue);
+ } else {
+ pszTmp = msStrdup(pszTmp2);
+ pszTmp2 = (char *)msSmallRealloc(pszTmp2, sizeof(char)* (strlen(pszTmp)+ strlen(pszValue)+2));
+ sprintf(pszTmp2,"%s,%s",pszTmp, pszValue);
+ msFree(pszTmp);
+ }
+ psPropertyName = psPropertyName->psNext;
+ }
+ if (pszTmp2) {
+ pszTmp = msStrdup(pszTmp2);
+ pszTmp2 = (char *)msSmallRealloc(pszTmp2, sizeof(char)* (strlen(pszTmp)+ 3));
+ sprintf(pszTmp2,"(%s)", pszTmp);
+ msFree(pszTmp);
+
+ msWFSBuildParamList(&(wfsparams->pszPropertyName), pszTmp2, "");
+ msFree(pszTmp2);
+ pszTmp2 = NULL;
+ }
+
+ /* parse filter */
+ psFilter = CPLGetXMLNode(psQuery, "Filter");
+
+ if (psFilter == NULL) {
+ /*when there is no Filter, we output (!) so that it is parsed properly in GetFeature*/
+ pszSerializedFilter = msStrdup("(!)");
+ } else {
+ char* pszCPLTmp = CPLSerializeXMLTree(psFilter);
+ pszSerializedFilter = (char *)msSmallMalloc(sizeof(char)*
+ (strlen(pszCPLTmp)+3));
+ sprintf(pszSerializedFilter, "(%s)", pszCPLTmp);
+ CPLFree(pszCPLTmp);
+ }
+
+ msWFSBuildParamList(&(wfsparams->pszFilter), pszSerializedFilter, "");
+ free(pszSerializedFilter);
+
+ /* parse SortBy */
+ psSortBy = CPLGetXMLNode(psQuery, "SortBy");
+ if( psSortBy != NULL )
+ {
+ int bFirstProperty = MS_TRUE;
+ CPLXMLNode* psIter = psSortBy->psChild;
+
+ pszSortBy = msStringConcatenate(pszSortBy, "(");
+
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "SortProperty") == 0 )
+ {
+ const char* pszPropertyName = CPLGetXMLValue(psIter, "PropertyName", NULL);
+ if( pszPropertyName == NULL )
+ pszPropertyName = CPLGetXMLValue(psIter, "ValueReference", NULL);
+ if( pszPropertyName != NULL )
+ {
+ const char* pszSortOrder = CPLGetXMLValue(psIter, "SortOrder", NULL);
+ if( !bFirstProperty )
+ pszSortBy = msStringConcatenate(pszSortBy, ",");
+ bFirstProperty = MS_FALSE;
+
+ pszSortBy = msStringConcatenate(pszSortBy, pszPropertyName);
+ if( pszSortOrder != NULL )
+ {
+ pszSortBy = msStringConcatenate(pszSortBy, " ");
+ pszSortBy = msStringConcatenate(pszSortBy, pszSortOrder);
+ }
+ }
+ }
+ psIter = psIter->psNext;
+ }
+
+ pszSortBy = msStringConcatenate(pszSortBy, ")");
+ }
+ else
+ {
+ pszSortBy = msStrdup("(!)");
+ }
+
+ msWFSBuildParamList(&(wfsparams->pszSortBy), pszSortBy, "");
+ free(pszSortBy);
+
+ /* Special case for "urn:ogc:def:query:OGC-WFS::GetFeatureById" */
+ /* Resolve the property typename */
+ if( pszTypename != NULL && strcmp(pszTypename, "?") == 0 && psFilter != NULL )
+ {
+ const char* rid;
+ rid = CPLGetXMLValue(psFilter, "ResourceId.rid", NULL);
+ if( rid != NULL )
+ {
+ char* pszTmpTypename = msStrdup(rid);
+ char* pszDot = strchr(pszTmpTypename, '.');
+ if( pszDot )
+ {
+ *pszDot = '\0';
+ msWFSBuildParamList(&(wfsparams->pszTypeName), pszTmpTypename, ",");
+ pszTypename = NULL;
+
+ if( wfsparams->countGetFeatureById >= 0 )
+ wfsparams->countGetFeatureById ++;
+ }
+ else
+ wfsparams->countGetFeatureById = -1;
+ msFree(pszTmpTypename);
+ }
+ else
+ wfsparams->countGetFeatureById = -1;
+ }
+ else
+ wfsparams->countGetFeatureById = -1;
+
+ if (pszTypename) {
+ msWFSBuildParamList(&(wfsparams->pszTypeName), pszTypename, ",");
+ }
+
+}
+
+/************************************************************************/
+/* msWFSAnalyzeStoredQuery */
+/************************************************************************/
+
+static int msWFSAnalyzeStoredQuery(mapObj* map,
+ wfsParamsObj *wfsparams,
+ const char* id,
+ const char* pszResolvedQuery)
+{
+ CPLXMLNode* psRoot;
+ CPLXMLNode* psQuery;
+ CPLXMLNode* psIter;
+
+ psRoot = CPLParseXMLString(pszResolvedQuery);
+
+ if( psRoot == NULL )
+ {
+ msSetError(MS_WFSERR, "Resolved definition for stored query '%s' is invalid", "msWFSParseRequest()", id);
+ msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, wfsparams->pszVersion);
+ return MS_FAILURE;
+ }
+
+ CPLStripXMLNamespace(psRoot, NULL, 1);
+ psQuery = CPLGetXMLNode(psRoot, "=StoredQueryDescription.QueryExpressionText.Query");
+ if( psQuery == NULL )
+ {
+ msSetError(MS_WFSERR, "Resolved definition for stored query '%s' is invalid", "msWFSParseRequest()", id);
+ msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, wfsparams->pszVersion);
+ CPLDestroyXMLNode(psRoot);
+ return MS_FAILURE;
+ }
+
+ psIter = psQuery;
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element && strcmp(psIter->pszValue, "Query") == 0 ) {
+ msWFSParseXMLQueryNode(psIter, wfsparams);
+ }
+ psIter = psIter->psNext;
+ }
+
+ CPLDestroyXMLNode(psRoot);
+
+ return MS_SUCCESS;
+}
+
+/************************************************************************/
+/* msWFSParseXMLStoredQueryNode */
+/************************************************************************/
+
+static int msWFSParseXMLStoredQueryNode(mapObj* map,
+ wfsParamsObj *wfsparams,
+ CPLXMLNode* psQuery)
+{
+ const char* id;
+ CPLXMLNode* psIter;
+ hashTableObj * hashTable;
+ char* pszResolvedQuery;
+ int status;
+
+ id = CPLGetXMLValue(psQuery, "id", NULL);
+ if( id == NULL )
+ {
+ msSetError(MS_WFSERR, "Missing 'id' attribute in StoredQuery", "msWFSParseRequest()");
+ return msWFSException(map, "id", MS_OWS_ERROR_MISSING_PARAMETER_VALUE, wfsparams->pszVersion);
+ }
+
+ hashTable = msCreateHashTable();
+ psIter = psQuery->psChild;
+ while(psIter != NULL)
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "Parameter") == 0 )
+ {
+ const char* name;
+ CPLXMLNode* psIter2;
+ char* pszValue;
+
+ name = CPLGetXMLValue(psIter, "name", NULL);
+ if( name == NULL )
+ {
+ msSetError(MS_WFSERR, "Missing 'name' attribute in Parameter of StoredQuery", "msWFSParseRequest()");
+ msFreeHashTable(hashTable);
+ return msWFSException(map, NULL, MS_OWS_ERROR_INVALID_PARAMETER_VALUE, wfsparams->pszVersion);
+ }
+
+ psIter2 = psIter->psChild;
+ while( psIter2 != NULL )
+ {
+ if( psIter2->eType != CXT_Attribute )
+ break;
+ psIter2 = psIter2->psNext;
+ }
+
+ pszValue = CPLSerializeXMLTree(psIter2);
+ msInsertHashTable(hashTable, name, pszValue);
+ CPLFree(pszValue);
+ }
+ psIter = psIter->psNext;
+ }
+
+ pszResolvedQuery = msWFSGetResolvedStoredQuery20(map, wfsparams, id, hashTable);
+ msFreeHashTable(hashTable);
+ if( pszResolvedQuery == NULL)
+ return MS_FAILURE;
- paramsObj->nMaxFeatures = -1;
- paramsObj->nStartIndex = -1;
+ status = msWFSAnalyzeStoredQuery(map, wfsparams, id, pszResolvedQuery);
- return paramsObj;
+ msFree(pszResolvedQuery);
+
+ return status;
}
+#endif
/************************************************************************/
-/* msWFSFreeParmsObj */
-/* */
-/* Free params object. */
+/* msWFSSimplifyPropertyNameAndFilter */
/************************************************************************/
-void msWFSFreeParamsObj(wfsParamsObj *wfsparams)
-{
- if (wfsparams) {
- free(wfsparams->pszVersion);
- free(wfsparams->pszUpdateSequence);
- free(wfsparams->pszRequest);
- free(wfsparams->pszService);
- free(wfsparams->pszTypeName);
- free(wfsparams->pszFilter);
- free(wfsparams->pszBbox);
- free(wfsparams->pszGeometryName);
- free(wfsparams->pszOutputFormat);
- free(wfsparams->pszFeatureId);
- free(wfsparams->pszSrs);
- free(wfsparams->pszResultType);
- free(wfsparams->pszPropertyName);
- free(wfsparams->pszAcceptVersions);
- }
-}
-const char *msWFSGetDefaultVersion(mapObj *map)
+static void msWFSSimplifyPropertyNameAndFilter(wfsParamsObj *wfsparams)
{
- if (msOWSLookupMetadata(&(map->web.metadata), "F", "getcapabilities_version"))
- return msOWSLookupMetadata(&(map->web.metadata), "F", "getcapabilities_version");
- else
- return "1.1.0";
+ int i;
+
+ /* If no PropertyName at all was specified, then clear the field */
+ /* that will be easier to generate valid 'next' and 'previous' uri */
+ /* for WFS 2.0 GetFeature */
+ if( wfsparams->pszPropertyName != NULL )
+ {
+ i = 0;
+ while( strncmp(wfsparams->pszPropertyName + i, "(!)", 3) == 0 )
+ i += 3;
+ if( wfsparams->pszPropertyName[i] == '\0' )
+ {
+ msFree(wfsparams->pszPropertyName);
+ wfsparams->pszPropertyName = NULL;
+ }
+ }
+
+ /* Same with filter */
+ if( wfsparams->pszFilter != NULL )
+ {
+ i = 0;
+ while( strncmp(wfsparams->pszFilter + i, "(!)", 3) == 0 )
+ i += 3;
+ if( wfsparams->pszFilter[i] == '\0' )
+ {
+ msFree(wfsparams->pszFilter);
+ wfsparams->pszFilter = NULL;
+ }
+ }
+
+ /* Same with SortBy */
+ if( wfsparams->pszSortBy != NULL )
+ {
+ i = 0;
+ while( strncmp(wfsparams->pszSortBy + i, "(!)", 3) == 0 )
+ i += 3;
+ if( wfsparams->pszSortBy[i] == '\0' )
+ {
+ msFree(wfsparams->pszSortBy);
+ wfsparams->pszSortBy = NULL;
+ }
+ }
}
+
+#endif /* USE_WFS_SVR */
+
+
/************************************************************************/
/* msWFSParseRequest */
/* */
@@ -2787,61 +4982,91 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
int i = 0;
if (!request || !wfsparams)
- return MS_FAILURE;
+ return msWFSException(map, "request", "InvalidRequest", NULL);
- if (request->NumParams > 0) {
+ if (request->NumParams > 0 && request->postrequest == NULL ) {
for(i=0; i<request->NumParams; i++) {
if (request->ParamNames[i] && request->ParamValues[i]) {
- if (strcasecmp(request->ParamNames[i], "VERSION") == 0)
- wfsparams->pszVersion = msStrdup(request->ParamValues[i]);
+ if( msWFSSetParam(&(wfsparams->pszVersion), request, i, "VERSION") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "UPDATESEQUENCE") == 0)
- wfsparams->pszUpdateSequence = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszUpdateSequence), request, i, "UPDATESEQUENCE") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "REQUEST") == 0)
- wfsparams->pszRequest = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszRequest), request, i, "REQUEST") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "SERVICE") == 0)
- wfsparams->pszService = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszService), request, i, "SERVICE") )
+ ;
else if (strcasecmp(request->ParamNames[i], "MAXFEATURES") == 0)
wfsparams->nMaxFeatures = atoi(request->ParamValues[i]);
+ /* WFS 2.0 */
+ else if (strcasecmp(request->ParamNames[i], "COUNT") == 0)
+ wfsparams->nMaxFeatures = atoi(request->ParamValues[i]);
+
else if (strcasecmp(request->ParamNames[i], "STARTINDEX") == 0)
wfsparams->nStartIndex = atoi(request->ParamValues[i]);
- else if (strcasecmp(request->ParamNames[i], "BBOX") == 0)
- wfsparams->pszBbox = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszBbox), request, i, "BBOX") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "SRSNAME") == 0)
- wfsparams->pszSrs = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszSrs), request, i, "SRSNAME") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "RESULTTYPE") == 0)
- wfsparams->pszResultType = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszResultType), request, i, "RESULTTYPE") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "TYPENAME") == 0)
- wfsparams->pszTypeName = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszTypeName), request, i, "TYPENAME") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "FILTER") == 0)
- wfsparams->pszFilter = msStrdup(request->ParamValues[i]);
+ /* WFS 2.0 */
+ else if( msWFSSetParam(&(wfsparams->pszTypeName), request, i, "TYPENAMES") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "OUTPUTFORMAT") == 0)
- wfsparams->pszOutputFormat = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszFilter), request, i, "FILTER") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "FEATUREID") == 0)
- wfsparams->pszFeatureId = msStrdup(request->ParamValues[i]);
+ /* WFS 2.0 */
+ else if( msWFSSetParam(&(wfsparams->pszFilterLanguage), request, i, "FILTER_LANGUAGE") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "PROPERTYNAME") == 0)
- wfsparams->pszPropertyName = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszOutputFormat), request, i, "OUTPUTFORMAT") )
+ ;
- else if (strcasecmp(request->ParamNames[i], "ACCEPTVERSIONS") == 0)
- wfsparams->pszAcceptVersions = msStrdup(request->ParamValues[i]);
+ else if( msWFSSetParam(&(wfsparams->pszFeatureId), request, i, "FEATUREID") )
+ ;
+ /* WFS 2.0 */
+ else if( msWFSSetParam(&(wfsparams->pszFeatureId), request, i, "RESOURCEID") )
+ ;
+ else if( msWFSSetParam(&(wfsparams->pszPropertyName), request, i, "PROPERTYNAME") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszAcceptVersions), request, i, "ACCEPTVERSIONS") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszSections), request, i, "SECTIONS") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszSortBy), request, i, "SORTBY") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszLanguage), request, i, "LANGUAGE") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszValueReference), request, i, "VALUEREFERENCE") )
+ ;
+
+ else if( msWFSSetParam(&(wfsparams->pszStoredQueryId), request, i, "STOREDQUERY_ID") )
+ ;
}
}
/* version is optional is the GetCapabilities. If not */
- /* provided, set it. Default it to 1.1.0*/
+ /* provided, set it. Default it to latest implemented version */
+ /* or to the specified one in wfs_getcapabilities_version */
if (wfsparams->pszVersion == NULL &&
wfsparams->pszRequest &&
strcasecmp(wfsparams->pszRequest, "GetCapabilities") == 0) {
@@ -2853,230 +5078,18 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
/* Parse the post request. It is assumed to be an XML document. */
/* -------------------------------------------------------------------- */
#ifdef USE_OGR
- if (request->postrequest) {
-#ifdef WFS_USE_LIBXML2
- xmlDocPtr doc;
- xmlNodePtr rootnode, node, node1;
- char *schema_file =NULL;
- const char *schema_location=NULL, *validate=NULL;
- const char *pszValue=NULL;
- char *pszTmp=NULL;
- char *pszLayerPropertyName=NULL, *pszLayerFilter=NULL;
-
- /* xmlXPathAxisFunc */
- /* load document */
- doc = xmlParseDoc((xmlChar *)request->postrequest);
- if (doc == NULL || (rootnode = xmlDocGetRootElement(doc)) == NULL) {
- msSetError(MS_WFSERR, "Invalid POST request. XML is not well-formed", "msWFSParseRequest()");
- return MS_FAILURE;
- }
+ if (request->postrequest != NULL) {
- /*get the request*/
- if (strcasecmp(rootnode->name, "GetCapabilities") == 0)
- wfsparams->pszRequest = "GetCapabilities";
- else if (strcasecmp(rootnode->name, "GetFeature") == 0)
- wfsparams->pszRequest = "GetFeature";
- else if (strcasecmp(rootnode->name, "DescribeFeatureType") == 0)
- wfsparams->pszRequest = "DescribeFeatureType";
-
- msOWSRequestLayersEnabled(map, "F", wfsparams->pszRequest, ows_request);
- if (wfsparams->pszRequest == NULL) {
- /* Unsupported WFS request */
- msSetError(MS_WFSERR, "Unsupported WFS request.", "msWFSParseRequest()");
- return MS_FAILURE;
- }
-
- if (ows_request->numlayers == 0) {
- /* not enabled WFS request */
- msSetError(MS_WFSERR, "WFS request not enabled. Check wfs/ows_enable_request settings.", "msWFSParseRequest()");
- return MS_FAILURE;
- }
-
- /*get version and service if available*/
- pszValue = xmlGetProp(rootnode, (xmlChar *)"version");
- if (pszValue)
- wfsparams->pszVersion = msStrdup(pszValue);
- pszValue = xmlGetProp(rootnode, (xmlChar *)"service");
- if (pszValue)
- wfsparams->pszService = msStrdup(pszValue);
-
-
- /* version is optional for the GetCapabilities. If not provided, set it*/
- if (wfsparams->pszVersion == NULL &&
- strcmp(wfsparams->pszRequest,"GetCapabilities") == 0) {
- wfsparams->pszVersion = msStrdup(msWFSGetDefaultVersion(map));
- }
-
-
- /*do we validate the xml ?*/
- validate = msOWSLookupMetadata(&(map->web.metadata), "FO", "validate_xml");
- if (validate && strcasecmp(validate, "true") == 0 &&
- (schema_location = msOWSLookupMetadata(&(map->web.metadata), "FO", "schemas_dir"))) {
- if ((wfsparams->pszService && strcmp(wfsparams->pszService, "WFS") == 0) ||
- force_wfs_mode) {
- schema_file = msStringConcatenate(schema_file, schema_location);
- if (wfsparams->pszVersion == NULL ||
- strncasecmp(wfsparams->pszVersion, "1.1", 3) ==0) {
- schema_file = msStringConcatenate(schema_file, "wfs/1.1.0/wfs.xsd");
- if (msOWSSchemaValidation(schema_file, request->postrequest) != 0) {
- msSetError(MS_WFSERR, "Invalid POST request. XML is not valid", "msWFSParseRequest()");
- return MS_FAILURE;
- }
- }
- }
- }
-
- /*parse describefeature*/
- if (strcmp(wfsparams->pszRequest,"DescribeFeatureType") == 0) {
- /*look for TypeName and outputFormat*/
- for (node = rootnode->children; node; node = node->next) {
- if (node->type != XML_ELEMENT_NODE)
- continue;
-
- if (strcmp(node->name, "TypeName") == 0) {
- pszValue = xmlNodeGetContent(node);
- if (wfsparams->pszTypeName == NULL)
- wfsparams->pszTypeName = msStrdup(pszValue);
- else {
- wfsparams->pszTypeName =
- msStringConcatenate(wfsparams->pszTypeName, ",");
- wfsparams->pszTypeName =
- msStringConcatenate(wfsparams->pszTypeName, pszValue);
- }
- }
- }
- pszValue = xmlGetProp(rootnode, (xmlChar *)"outputFormat");
- if (pszValue)
- wfsparams->pszOutputFormat = msStrdup(pszValue);
- }
-
- /*parse GetFeature*/
- if (strcmp(wfsparams->pszRequest,"GetFeature") == 0) {
- pszValue = xmlGetProp(rootnode, (xmlChar *)"resultType");
- if (pszValue)
- wfsparams->pszResultType = msStrdup(pszValue);
-
- pszValue = xmlGetProp(rootnode, (xmlChar *)"maxFeatures");
- if (pszValue)
- wfsparams->nMaxFeatures = atoi(pszValue);
-
- pszValue = xmlGetProp(rootnode, (xmlChar *)"startIndex");
- if (pszValue)
- wfsparams->nStartIndex = atoi(pszValue);
-
- pszValue = xmlGetProp(rootnode, (xmlChar *)"outputFormat");
- if (pszValue)
- wfsparams->pszOutputFormat = msStrdup(pszValue);
-
- /* free typename and filter. There may have been */
- /* values if they were passed in the URL */
- if (wfsparams->pszTypeName)
- free(wfsparams->pszTypeName);
- wfsparams->pszTypeName = NULL;
-
- if (wfsparams->pszFilter)
- free(wfsparams->pszFilter);
- wfsparams->pszFilter = NULL;
-
- for (node = rootnode->children; node; node = node->next) {
- if (node->type != XML_ELEMENT_NODE)
- continue;
-
- if (strcmp(node->name, "Query") == 0) {
- /* get SRS: TODO support srs per layer. Now we only have one srs
- that applies to al layers*/
- pszValue = xmlGetProp(node, (xmlChar *)"srsName");
- if (pszValue) {
- if (wfsparams->pszSrs )
- msFree( wfsparams->pszSrs);
- wfsparams->pszSrs = msStrdup(pszValue);
- }
- /*type name*/
- pszValue = xmlGetProp(node, (xmlChar *)"typeName");
- if (pszValue) {
- if (wfsparams->pszTypeName == NULL)
- wfsparams->pszTypeName = msStrdup(pszValue);
- else {
- wfsparams->pszTypeName =
- msStringConcatenate(wfsparams->pszTypeName, ",");
- wfsparams->pszTypeName =
- msStringConcatenate(wfsparams->pszTypeName, pszValue);
- }
- }
- /*PropertyName and Filter*/
- pszLayerPropertyName = NULL;
- pszLayerFilter = NULL;
- for (node1 = node->children; node1; node1 = node1->next) {
- if (node1->type != XML_ELEMENT_NODE)
- continue;
-
- if (strcmp(node1->name, "PropertyName") == 0) {
- pszValue = xmlNodeGetContent(node1);
- if (pszLayerPropertyName == NULL)
- pszLayerPropertyName = msStrdup(pszValue);
- else {
- pszLayerPropertyName=
- msStringConcatenate(pszLayerPropertyName, ",");
- pszLayerPropertyName =
- msStringConcatenate(pszLayerPropertyName, pszValue);
- }
- }
- if (strcmp(node1->name, "Filter") == 0) {
-
- pszValue = xmlNodeGetContent(node1);
- if (pszValue) {
- xmlBufferPtr buffer;
-
- pszTmp = NULL;
- buffer = xmlBufferCreate();
- xmlNodeDump(buffer, node1->doc, node1, 0, 0);
-
- pszTmp = msStringConcatenate(pszTmp, "(");
- pszTmp = msStringConcatenate(pszTmp, buffer->content);
- pszTmp = msStringConcatenate(pszTmp, ")");
-
- xmlBufferFree(buffer);
- wfsparams->pszFilter =
- msStringConcatenate(wfsparams->pszFilter,pszTmp);
- msFree(pszTmp);
- }
- }
- }
- pszTmp = NULL;
- if (pszLayerPropertyName == NULL)
- pszTmp = msStrdup("(!)");
- else {
- pszTmp = msStringConcatenate(pszTmp, "(");
- pszTmp = msStringConcatenate(pszTmp, pszLayerPropertyName);
- pszTmp = msStringConcatenate(pszTmp, ")");
- msFree(pszLayerPropertyName);
- }
- wfsparams->pszPropertyName = msStringConcatenate(wfsparams->pszPropertyName, pszTmp);
- msFree(pszTmp);
-
- }/*Query node*/
- }
-
- }
-
-
- /* check for request */
- /* only works??? if <wfs:getCapbilites ...>
- psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"/wfs:GetCapabilities|/GetCapabilities");
- psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"/GetCapabilities");
- psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"/wfs:GetCapabilities");
- psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"GetCapabilities");
- psXPathTmp = msLibXml2GetXPath(doc, context, (xmlChar *)"//GetCapabilities");
- */
-#else /*#ifdef WFS_USE_LIBXML2*/
- CPLXMLNode *psRoot, *psQuery, *psFilter, *psTypeName, *psPropertyName = NULL;
+ CPLXMLNode *psRoot;
CPLXMLNode *psGetFeature = NULL;
- CPLXMLNode *psGetCapabilities = NULL;
+ CPLXMLNode *psGetCapabilities = NULL;
CPLXMLNode *psDescribeFeature = NULL;
+ CPLXMLNode *psGetPropertyValue = NULL;
+ CPLXMLNode *psListStoredQueries = NULL;
+ CPLXMLNode *psDescribeStoredQueries = NULL;
CPLXMLNode *psOperation = NULL;
const char *pszValue;
- char *pszSerializedFilter, *pszTmp, *pszTmp2 = NULL;
- int bMultiLayer = 0;
+ char *pszSchemaLocation = NULL;
psRoot = CPLParseXMLString(request->postrequest);
if(map->debug == MS_DEBUGLEVEL_VVV) {
@@ -3085,59 +5098,71 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
if (psRoot) {
/* need to strip namespaces */
CPLStripXMLNamespace(psRoot, NULL, 1);
+
for( psOperation = psRoot;
psOperation != NULL;
psOperation = psOperation->psNext ) {
if(psOperation->eType == CXT_Element) {
+
+ /* keep schemaLocation so as to be able to validate against appropriate */
+ /* wfs.xsd schema afterwards */
+ if( pszSchemaLocation == NULL &&
+ CPLGetXMLValue(psOperation, "schemaLocation", NULL) != NULL )
+ pszSchemaLocation = msStrdup( CPLGetXMLValue(psOperation, "schemaLocation", NULL) );
+
if(strcasecmp(psOperation->pszValue,"GetFeature")==0) {
psGetFeature = psOperation;
break;
} else if(strcasecmp(psOperation->pszValue,"GetCapabilities")==0) {
psGetCapabilities = psOperation;
- pszValue = CPLGetXMLValue(psGetFeature, "updateSequence", NULL);
-
- if (pszValue)
- wfsparams->pszUpdateSequence = msStrdup(pszValue);
-
break;
} else if(strcasecmp(psOperation->pszValue,
"DescribeFeatureType")==0) {
psDescribeFeature = psOperation;
break;
+ } else if(strcasecmp(psOperation->pszValue,
+ "GetPropertyValue")==0) {
+ psGetPropertyValue = psOperation;
+ break;
+ } else if(strcasecmp(psOperation->pszValue,
+ "ListStoredQueries")==0) {
+ psListStoredQueries = psOperation;
+ break;
+ } else if(strcasecmp(psOperation->pszValue,
+ "DescribeStoredQueries")==0) {
+ psDescribeStoredQueries = psOperation;
+ break;
}
/* these are unsupported requests. Just set the */
/* request value and return; */
- else if (strcasecmp(psOperation->pszValue,
- "GetFeatureWithLock") == 0) {
- wfsparams->pszRequest = msStrdup("GetFeatureWithLock");
- break;
- } else if (strcasecmp(psOperation->pszValue,
- "LockFeature") == 0) {
- wfsparams->pszRequest = msStrdup("LockFeature");
- break;
- } else if (strcasecmp(psOperation->pszValue,
- "Transaction") == 0) {
- wfsparams->pszRequest = msStrdup("Transaction");
+ else if (msWFSGetIndexUnsupportedOperation(psOperation->pszValue) >= 0) {
+ int idx = msWFSGetIndexUnsupportedOperation(psOperation->pszValue);
+ wfsparams->pszRequest = msStrdup(wfsUnsupportedOperations[idx]);
break;
}
}
}
- /* -------------------------------------------------------------------- */
- /* Parse the GetFeature */
- /* -------------------------------------------------------------------- */
- if (psGetFeature) {
- wfsparams->pszRequest = msStrdup("GetFeature");
-
- pszValue = CPLGetXMLValue(psGetFeature, "version",
+ if( psOperation != NULL )
+ {
+ pszValue = CPLGetXMLValue(psOperation, "version",
NULL);
if (pszValue)
wfsparams->pszVersion = msStrdup(pszValue);
- pszValue = CPLGetXMLValue(psGetFeature, "service",
+ pszValue = CPLGetXMLValue(psOperation, "service",
NULL);
if (pszValue)
wfsparams->pszService = msStrdup(pszValue);
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* Parse the GetFeature */
+ /* -------------------------------------------------------------------- */
+ if (psGetFeature) {
+ CPLXMLNode* psIter;
+
+ wfsparams->pszRequest = msStrdup("GetFeature");
pszValue = CPLGetXMLValue(psGetFeature, "resultType",
NULL);
@@ -3148,6 +5173,14 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
NULL);
if (pszValue)
wfsparams->nMaxFeatures = atoi(pszValue);
+ else
+ {
+ /* WFS 2.0 */
+ pszValue = CPLGetXMLValue(psGetFeature, "count",
+ NULL);
+ if (pszValue)
+ wfsparams->nMaxFeatures = atoi(pszValue);
+ }
pszValue = CPLGetXMLValue(psGetFeature, "startIndex",
NULL);
@@ -3159,23 +5192,6 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
if (pszValue)
wfsparams->pszOutputFormat = msStrdup(pszValue);
- psQuery = CPLGetXMLNode(psGetFeature, "Query");
- if (psQuery) {
-
- /* free typname and filter. There may have been */
- /* values if they were passed in the URL */
- if (wfsparams->pszTypeName)
- free(wfsparams->pszTypeName);
- wfsparams->pszTypeName = NULL;
-
- if (wfsparams->pszFilter)
- free(wfsparams->pszFilter);
- wfsparams->pszFilter = NULL;
-
- if (psQuery->psNext && psQuery->psNext->pszValue &&
- strcasecmp(psQuery->psNext->pszValue, "Query") == 0)
- bMultiLayer = 1;
-
/* -------------------------------------------------------------------- */
/* Parse typenames and filters. If there are multiple queries, */
/* typenames will be build with comma between thme */
@@ -3183,197 +5199,264 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
/* bracets enclosinf the filters :(filter1)(filter2)... */
/* propertynames are stored like (property1,property2)(property1) */
/* -------------------------------------------------------------------- */
- while (psQuery && psQuery->pszValue &&
- strcasecmp(psQuery->pszValue, "Query") == 0) {
- /* get SRS */
- pszValue = CPLGetXMLValue(psQuery, "srsName",
- NULL);
- if (pszValue)
- wfsparams->pszSrs = msStrdup(pszValue);
-
- /* parse typenames */
- pszValue = CPLGetXMLValue(psQuery,
- "typename", NULL);
- if (pszValue) {
- if (wfsparams->pszTypeName == NULL)
- wfsparams->pszTypeName = msStrdup(pszValue);
- else {
- pszTmp = msStrdup(wfsparams->pszTypeName);
- wfsparams->pszTypeName =
- (char *)msSmallRealloc(wfsparams->pszTypeName,
- sizeof(char)*
- (strlen(pszTmp)+
- strlen(pszValue)+2));
-
- sprintf(wfsparams->pszTypeName,"%s,%s",pszTmp,
- pszValue);
- free(pszTmp);
- }
+ psIter = psGetFeature->psChild;
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "Query") == 0 )
+ {
+ msWFSParseXMLQueryNode(psIter, wfsparams);
+ }
+ else if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "StoredQuery") == 0 )
+ {
+ int status = msWFSParseXMLStoredQueryNode(map, wfsparams, psIter);
+ if( status != MS_SUCCESS )
+ {
+ CPLDestroyXMLNode(psRoot);
+ msFree(pszSchemaLocation);
+ return status;
+ }
+ wfsparams->bHasPostStoredQuery = MS_TRUE;
}
+ psIter = psIter->psNext;
+ }
- /*parse property name*/
- psPropertyName = CPLGetXMLNode(psQuery, "PropertyName");
- pszTmp2= NULL;
+ msWFSSimplifyPropertyNameAndFilter(wfsparams);
+ }/* end of GetFeature */
- /*when there is no PropertyName, we outpout (!) so that it is parsed properly in GetFeature*/
- if (psPropertyName == NULL)
- pszTmp2 = msStrdup("!");
- while (psPropertyName) {
- if (!psPropertyName->pszValue ||
- strcasecmp(psPropertyName->pszValue, "PropertyName") != 0) {
- psPropertyName = psPropertyName->psNext;
- continue;
- }
- pszValue = CPLGetXMLValue(psPropertyName, NULL, NULL);
- if (pszTmp2 == NULL) {
- pszTmp2 = msStrdup(pszValue);
- } else {
- pszTmp = msStrdup(pszTmp2);
- pszTmp2 = (char *)msSmallRealloc(pszTmp2, sizeof(char)* (strlen(pszTmp)+ strlen(pszValue)+2));
- sprintf(pszTmp2,"%s,%s",pszTmp, pszValue);
- msFree(pszTmp);
- }
- psPropertyName = psPropertyName->psNext;
- }
- if (pszTmp2) {
- pszTmp = msStrdup(pszTmp2);
- pszTmp2 = (char *)msSmallRealloc(pszTmp2, sizeof(char)* (strlen(pszTmp)+ 3));
- sprintf(pszTmp2,"(%s)", pszTmp);
- msFree(pszTmp);
-
- if (wfsparams->pszPropertyName == NULL)
- wfsparams->pszPropertyName = msStrdup(pszTmp2);
- else {
- pszTmp = msStrdup(wfsparams->pszPropertyName);
- wfsparams->pszPropertyName =
- (char *)msSmallRealloc(wfsparams->pszPropertyName,
- sizeof(char)*(strlen(pszTmp)+ strlen(pszTmp2)+1));
- sprintf(wfsparams->pszPropertyName,"%s%s",wfsparams->pszPropertyName,
- pszTmp2);
- msFree(pszTmp);
- }
- msFree(pszTmp2);
- pszTmp2 = NULL;
- }
+ /* -------------------------------------------------------------------- */
+ /* Parse the GetPropertyValue */
+ /* -------------------------------------------------------------------- */
+ if (psGetPropertyValue) {
+ CPLXMLNode* psIter;
- /* parse filter */
- psFilter = CPLGetXMLNode(psQuery, "Filter");
+ wfsparams->pszRequest = msStrdup("GetPropertyValue");
- if (psFilter) {
- if (!bMultiLayer) {
- char* pszCPLTmp = CPLSerializeXMLTree(psFilter);
- wfsparams->pszFilter = msStrdup(pszCPLTmp);
- CPLFree(pszCPLTmp);
- }
- else {
- pszSerializedFilter = CPLSerializeXMLTree(psFilter);
- pszTmp = (char *)msSmallMalloc(sizeof(char)*
- (strlen(pszSerializedFilter)+3));
- sprintf(pszTmp, "(%s)", pszSerializedFilter);
- CPLFree(pszSerializedFilter);
-
- if (wfsparams->pszFilter == NULL)
- wfsparams->pszFilter = msStrdup(pszTmp);
- else {
- pszSerializedFilter = msStrdup(wfsparams->pszFilter);
- wfsparams->pszFilter =
- (char *)msSmallRealloc(wfsparams->pszFilter,
- sizeof(char)*
- (strlen(pszSerializedFilter)+
- strlen(pszTmp)+1));
- sprintf(wfsparams->pszFilter, "%s%s",
- pszSerializedFilter, pszTmp);
-
- free(pszSerializedFilter);
+ pszValue = CPLGetXMLValue(psGetPropertyValue, "valueReference",
+ NULL);
+ if (pszValue)
+ wfsparams->pszValueReference = msStrdup(pszValue);
+
+ pszValue = CPLGetXMLValue(psGetPropertyValue, "resultType",
+ NULL);
+ if (pszValue)
+ wfsparams->pszResultType = msStrdup(pszValue);
+
+ pszValue = CPLGetXMLValue(psGetPropertyValue, "count",
+ NULL);
+ if (pszValue)
+ wfsparams->nMaxFeatures = atoi(pszValue);
+
+ pszValue = CPLGetXMLValue(psGetPropertyValue, "startIndex",
+ NULL);
+ if (pszValue)
+ wfsparams->nStartIndex = atoi(pszValue);
+
+ pszValue = CPLGetXMLValue(psGetPropertyValue, "outputFormat",
+ NULL);
+ if (pszValue)
+ wfsparams->pszOutputFormat = msStrdup(pszValue);
+
+ psIter = psGetPropertyValue->psChild;
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "Query") == 0 )
+ {
+ msWFSParseXMLQueryNode(psIter, wfsparams);
+ /* Just one is allowed for GetPropertyValue */
+ break;
+ }
+ else if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "StoredQuery") == 0 )
+ {
+ int status = msWFSParseXMLStoredQueryNode(map, wfsparams, psIter);
+ if( status != MS_SUCCESS )
+ {
+ CPLDestroyXMLNode(psRoot);
+ msFree(pszSchemaLocation);
+ return status;
}
- free(pszTmp);
- }
+ wfsparams->bHasPostStoredQuery = MS_TRUE;
+ /* Just one is allowed for GetPropertyValue */
+ break;
}
-
- psQuery = psQuery->psNext;
- }/* while psQuery */
+ psIter = psIter->psNext;
}
- }/* end of GetFeatures */
+
+ msWFSSimplifyPropertyNameAndFilter(wfsparams);
+ }/* end of GetPropertyValue */
/* -------------------------------------------------------------------- */
/* Parse GetCapabilities. */
/* -------------------------------------------------------------------- */
if (psGetCapabilities) {
+ CPLXMLNode* psAcceptVersions;
+ CPLXMLNode* psSections;
+
wfsparams->pszRequest = msStrdup("GetCapabilities");
- pszValue = CPLGetXMLValue(psGetCapabilities, "version",
- NULL);
+
+ pszValue = CPLGetXMLValue(psGetCapabilities, "updateSequence", NULL);
+ if (pszValue)
+ wfsparams->pszUpdateSequence = msStrdup(pszValue);
+
/* version is optional for the GetCapabilities. If not */
/* provided, set it. */
- if (pszValue)
- wfsparams->pszVersion = msStrdup(pszValue);
- else
- wfsparams->pszVersion = msStrdup(msStrdup(msWFSGetDefaultVersion(map)));
+ if (wfsparams->pszVersion == NULL)
+ wfsparams->pszVersion = msStrdup(msWFSGetDefaultVersion(map));
+
+ psAcceptVersions = CPLGetXMLNode(psGetCapabilities, "AcceptVersions");
+ if( psAcceptVersions != NULL )
+ {
+ CPLXMLNode* psIter = psAcceptVersions->psChild;
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "Version") == 0 )
+ {
+ pszValue = CPLGetXMLValue(psIter, NULL, NULL);
+ if (pszValue) {
+ msWFSBuildParamList(&(wfsparams->pszAcceptVersions), pszValue, ",");
+ }
+ }
+ psIter = psIter->psNext;
+ }
+ }
- pszValue =
- CPLGetXMLValue(psGetCapabilities, "service",
- NULL);
- if (pszValue)
- wfsparams->pszService = msStrdup(pszValue);
+ psSections = CPLGetXMLNode(psGetCapabilities, "Sections");
+ if( psSections != NULL )
+ {
+ CPLXMLNode* psIter = psSections->psChild;
+ while( psIter != NULL )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcmp(psIter->pszValue, "Section") == 0 )
+ {
+ pszValue = CPLGetXMLValue(psIter, NULL, NULL);
+ if (pszValue) {
+ msWFSBuildParamList(&(wfsparams->pszSections), pszValue, ",");
+ }
+ }
+ psIter = psIter->psNext;
+ }
+ }
}/* end of GetCapabilites */
/* -------------------------------------------------------------------- */
/* Parse DescribeFeatureType */
/* -------------------------------------------------------------------- */
if (psDescribeFeature) {
+ CPLXMLNode* psIter;
wfsparams->pszRequest = msStrdup("DescribeFeatureType");
- pszValue = CPLGetXMLValue(psDescribeFeature, "version",
- NULL);
- if (pszValue)
- wfsparams->pszVersion = msStrdup(pszValue);
-
- pszValue = CPLGetXMLValue(psDescribeFeature, "service",
- NULL);
- if (pszValue)
- wfsparams->pszService = msStrdup(pszValue);
-
pszValue = CPLGetXMLValue(psDescribeFeature,
"outputFormat",
NULL);
if (pszValue)
wfsparams->pszOutputFormat = msStrdup(pszValue);
- psTypeName = CPLGetXMLNode(psDescribeFeature, "TypeName");
- if (psTypeName) {
+ psIter = CPLGetXMLNode(psDescribeFeature, "TypeName");
+ if (psIter) {
/* free typname and filter. There may have been */
/* values if they were passed in the URL */
if (wfsparams->pszTypeName)
free(wfsparams->pszTypeName);
wfsparams->pszTypeName = NULL;
- while (psTypeName && psTypeName->pszValue &&
- strcasecmp(psTypeName->pszValue, "TypeName") == 0) {
- if (psTypeName->psChild && psTypeName->psChild->pszValue) {
- pszValue = psTypeName->psChild->pszValue;
- if (wfsparams->pszTypeName == NULL)
- wfsparams->pszTypeName = msStrdup(pszValue);
- else {
- pszTmp = msStrdup(wfsparams->pszTypeName);
- wfsparams->pszTypeName =
- (char *)msSmallRealloc(wfsparams->pszTypeName,
- sizeof(char)*
- (strlen(pszTmp)+
- strlen(pszValue)+2));
-
- sprintf(wfsparams->pszTypeName,"%s,%s",pszTmp,
- pszValue);
- free(pszTmp);
+ while (psIter )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcasecmp(psIter->pszValue, "TypeName") == 0) {
+ pszValue = CPLGetXMLValue(psIter, NULL, NULL);
+ if (pszValue) {
+ msWFSBuildParamList(&(wfsparams->pszTypeName), pszValue, ",");
}
}
- psTypeName = psTypeName->psNext;
+ psIter = psIter->psNext;
}
}
}/* end of DescibeFeatureType */
+
+ /* -------------------------------------------------------------------- */
+ /* Parse the ListStoredQueries */
+ /* -------------------------------------------------------------------- */
+ if (psListStoredQueries) {
+ wfsparams->pszRequest = msStrdup("ListStoredQueries");
+ }/* end of ListStoredQueries */
+
+ /* -------------------------------------------------------------------- */
+ /* Parse the DescribeStoredQueries */
+ /* -------------------------------------------------------------------- */
+ if (psDescribeStoredQueries) {
+ CPLXMLNode* psIter;
+
+ wfsparams->pszRequest = msStrdup("DescribeStoredQueries");
+
+ psIter = CPLGetXMLNode(psDescribeStoredQueries, "StoredQueryId");
+ while (psIter )
+ {
+ if( psIter->eType == CXT_Element &&
+ strcasecmp(psIter->pszValue, "StoredQueryId") == 0) {
+ pszValue = CPLGetXMLValue(psIter, NULL, NULL);
+ if (pszValue) {
+ msWFSBuildParamList(&(wfsparams->pszStoredQueryId), pszValue, ",");
+ }
+ }
+ psIter = psIter->psNext;
+ }
+ }/* end of DescribeStoredQueries */
+
+ CPLDestroyXMLNode(psRoot);
+ }
+
+#if defined(USE_LIBXML2)
+ {
+ const char *schema_location=NULL, *validate=NULL;
+
+ /*do we validate the xml ?*/
+ validate = msOWSLookupMetadata(&(map->web.metadata), "FO", "validate_xml");
+ if (validate && strcasecmp(validate, "true") == 0 &&
+ (schema_location = msOWSLookupMetadata(&(map->web.metadata), "FO", "schemas_dir")))
+ {
+ if ((wfsparams->pszService && strcmp(wfsparams->pszService, "WFS") == 0) ||
+ force_wfs_mode)
+ {
+ char *schema_file =NULL;
+ if (pszSchemaLocation != NULL && strstr(pszSchemaLocation, "wfs/1.0") != NULL )
+ {
+ schema_file = msStringConcatenate(schema_file, schema_location);
+ schema_file = msStringConcatenate(schema_file, MS_OWSCOMMON_WFS_10_SCHEMA_LOCATION);
+ }
+ else if (pszSchemaLocation != NULL && strstr(pszSchemaLocation, "wfs/1.1") != NULL )
+ {
+ schema_file = msStringConcatenate(schema_file, schema_location);
+ schema_file = msStringConcatenate(schema_file, MS_OWSCOMMON_WFS_11_SCHEMA_LOCATION);
+ }
+ else if (pszSchemaLocation != NULL && strstr(pszSchemaLocation, "wfs/2.0") != NULL )
+ {
+ schema_file = msStringConcatenate(schema_file, schema_location);
+ schema_file = msStringConcatenate(schema_file, MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION);
+ }
+ if( schema_file != NULL )
+ {
+ if (msOWSSchemaValidation(schema_file, request->postrequest) != 0) {
+ msSetError(MS_WFSERR, "Invalid POST request. XML is not valid", "msWFSParseRequest()");
+ msFree(schema_file);
+ return msWFSException(map, "request", "InvalidRequest", NULL);
+ }
+ msFree(schema_file);
+ }
+ }
+ }
}
-#endif /*WFS_USE_LIBXML2*/
+#endif
+
+ msFree(pszSchemaLocation);
}
+
#endif
#endif
return MS_SUCCESS;
diff --git a/mapwfs11.c b/mapwfs11.c
index 93cbd4a..20ab164 100644
--- a/mapwfs11.c
+++ b/mapwfs11.c
@@ -46,9 +46,7 @@ int msWFSException11(mapObj *map, const char *locator,
{
int size = 0;
char *errorString = NULL;
- char *errorMessage = NULL;
char *schemasLocation = NULL;
- const char *encoding;
xmlDocPtr psDoc = NULL;
xmlNodePtr psRootNode = NULL;
@@ -60,33 +58,26 @@ int msWFSException11(mapObj *map, const char *locator,
psNsOws = xmlNewNs(NULL, BAD_CAST "http://www.opengis.net/ows", BAD_CAST "ows");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
-
errorString = msGetErrorString("\n");
- errorMessage = msEncodeHTMLEntities(errorString);
schemasLocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
psDoc = xmlNewDoc(BAD_CAST "1.0");
- psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_0_0, schemasLocation, version, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorMessage);
+ psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_0_0, schemasLocation, version, msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorString);
xmlDocSetRootElement(psDoc, psRootNode);
xmlNewNs(psRootNode, BAD_CAST "http://www.opengis.net/ows", BAD_CAST "ows");
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
msIO_printf("%s", buffer);
/*free buffer and the document */
free(errorString);
- free(errorMessage);
free(schemasLocation);
xmlFree(buffer);
xmlFreeDoc(psDoc);
@@ -100,72 +91,71 @@ int msWFSException11(mapObj *map, const char *locator,
/************************************************************************/
-/* msWFSDumpLayer11 */
+/* msWFSDumpLayer11 */
/************************************************************************/
-static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws)
+xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws,
+ int nWFSVersion, const char* validate_language)
{
rectObj ext;
xmlNodePtr psRootNode, psNode;
const char *value = NULL;
- const char *encoding = NULL;
- char *encoded=NULL;
char *valueToFree;
char **tokens;
int n=0,i=0;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
- if (!encoding)
- encoding = "ISO-8859-1";
-
psRootNode = xmlNewNode(NULL, BAD_CAST "FeatureType");
/* add namespace to layer name */
value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_prefix");
+
+ /* FIXME? Should probably be applied to WFS 1.1 as well, but the addition */
+ /* of the prefix can be disruptive for clients */
+ if( value == NULL && nWFSVersion >= OWS_2_0_0 )
+ value = MS_DEFAULT_NAMESPACE_PREFIX;
+
if(value) {
n = strlen(value)+strlen(lp->name)+1+1;
valueToFree = (char *) msSmallMalloc(sizeof(char*)*n);
snprintf(valueToFree, n, "%s%s%s", (value ? value : ""), (value ? ":" : ""), lp->name);
- /*if there is an encoding using it on some of the items*/
- psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Name", valueToFree, encoding);
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "Name", BAD_CAST valueToFree);
msFree(valueToFree);
} else {
- psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Name", lp->name, encoding);
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "Name", BAD_CAST lp->name);
}
if (lp->name && strlen(lp->name) > 0 &&
(msIsXMLTagValid(lp->name) == MS_FALSE || isdigit(lp->name[0])))
- xmlAddSibling(psNode,
- xmlNewComment(BAD_CAST "WARNING: The layer name '%s' might contain spaces or "
- "invalid characters or may start with a number. This could lead to potential problems"));
+ {
+ char szTmp[512];
+ snprintf(szTmp, sizeof(szTmp),
+ "WARNING: The layer name '%s' might contain spaces or "
+ "invalid characters or may start with a number. This could lead to potential problems",
+ lp->name);
+ xmlAddSibling(psNode, xmlNewComment(BAD_CAST szTmp));
+ }
- value = msOWSLookupMetadata(&(lp->metadata), "FO", "title");
+ value = msOWSLookupMetadataWithLanguage(&(lp->metadata), "FO", "title", validate_language);
if (!value)
value =(const char*)lp->name;
- psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Title", value, encoding);
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "Title", BAD_CAST value);
- value = msOWSLookupMetadata(&(lp->metadata), "FO", "abstract");
+ value = msOWSLookupMetadataWithLanguage(&(lp->metadata), "FO", "abstract", validate_language);
if (value)
- psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Abstract", value, encoding);
-
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "Abstract", BAD_CAST value);
- value = msOWSLookupMetadata(&(lp->metadata), "FO", "keywordlist");
- if (value) {
- if (encoding)
- encoded = msGetEncodedString(value, encoding);
- else
- encoded = msGetEncodedString(value, "ISO-8859-1");
+ value = msOWSLookupMetadataWithLanguage(&(lp->metadata), "FO", "keywordlist", validate_language);
+ if(value)
msLibXml2GenerateList(
- xmlNewChild(psRootNode, psNsOws, BAD_CAST "Keywords", NULL),
- NULL, "Keyword", encoded, ',' );
- msFree(encoded);
- }
+ xmlNewChild(psRootNode, psNsOws, BAD_CAST "Keywords", NULL),
+ NULL, "Keyword", value, ',' );
+
/*support DefaultSRS and OtherSRS*/
valueToFree = msOWSGetProjURN(&(map->projection),&(map->web.metadata),"FO",MS_FALSE);
if (!valueToFree)
@@ -174,9 +164,17 @@ static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws)
if (valueToFree) {
tokens = msStringSplit(valueToFree, ' ', &n);
if (tokens && n > 0) {
- psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "DefaultSRS", BAD_CAST tokens[0]);
+ if( nWFSVersion == OWS_1_1_0 )
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "DefaultSRS", BAD_CAST tokens[0]);
+ else
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "DefaultCRS", BAD_CAST tokens[0]);
for (i=1; i<n; i++)
- psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "OtherSRS", BAD_CAST tokens[i]);
+ {
+ if( nWFSVersion == OWS_1_1_0 )
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "OtherSRS", BAD_CAST tokens[i]);
+ else
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "OtherCRS", BAD_CAST tokens[i]);
+ }
msFreeCharArray(tokens, n);
}
@@ -192,7 +190,7 @@ static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws)
xmlAddChild(psRootNode, psNode);
{
- char *formats_list = msWFSGetOutputFormatList( map, lp, "1.1.0" );
+ char *formats_list = msWFSGetOutputFormatList( map, lp, nWFSVersion );
int iformat, n;
char **tokens;
@@ -227,21 +225,33 @@ static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws)
value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_href");
if (value) {
- psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "MetadataURL", BAD_CAST value);
+ if( nWFSVersion >= OWS_2_0_0 )
+ {
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "MetadataURL", NULL);
+ xmlNewProp(psNode, BAD_CAST "xlink:href", BAD_CAST value);
+
+ value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_about");
+ if( value != NULL )
+ xmlNewProp(psNode, BAD_CAST "about", BAD_CAST value);
+ }
+ else
+ {
+ psNode = xmlNewChild(psRootNode, NULL, BAD_CAST "MetadataURL", BAD_CAST value);
- value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_format");
+ value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_format");
- if (!value)
- value = msStrdup("text/html"); /* default */
+ if (!value)
+ value = msStrdup("text/html"); /* default */
- xmlNewProp(psNode, BAD_CAST "format", BAD_CAST value);
+ xmlNewProp(psNode, BAD_CAST "format", BAD_CAST value);
- value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_type");
+ value = msOWSLookupMetadata(&(lp->metadata), "FO", "metadataurl_type");
- if (!value)
- value = msStrdup("FGDC"); /* default */
+ if (!value)
+ value = msStrdup("FGDC"); /* default */
- xmlNewProp(psNode, BAD_CAST "type", BAD_CAST value);
+ xmlNewProp(psNode, BAD_CAST "type", BAD_CAST value);
+ }
}
return psRootNode;
@@ -267,33 +277,20 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
char *script_url=NULL, *formats_list;
const char *value = NULL;
- const char *encoding;
xmlChar *buffer = NULL;
int size = 0, i;
msIOContext *context = NULL;
int ows_version = OWS_1_0_0;
+ int ret;
/* -------------------------------------------------------------------- */
/* Handle updatesequence */
/* -------------------------------------------------------------------- */
-
- updatesequence = msOWSLookupMetadata(&(map->web.metadata), "FO", "updatesequence");
-
- encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding");
-
- if (params->pszUpdateSequence != NULL) {
- i = msOWSNegotiateUpdateSequence(params->pszUpdateSequence, updatesequence);
- if (i == 0) { /* current */
- msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is equal to server (%s)", "msWFSGetCapabilities11()", params->pszUpdateSequence, updatesequence);
- return msWFSException11(map, "updatesequence", "CurrentUpdateSequence", params->pszVersion);
- }
- if (i > 0) { /* invalid */
- msSetError(MS_WFSERR, "UPDATESEQUENCE parameter (%s) is higher than server (%s)", "msWFSGetCapabilities11()", params->pszUpdateSequence, updatesequence);
- return msWFSException11(map, "updatesequence", "InvalidUpdateSequence", params->pszVersion);
- }
- }
+ ret = msWFSHandleUpdateSequence(map, params, "msWFSGetCapabilities11()");
+ if( ret != MS_SUCCESS )
+ return ret;
/* -------------------------------------------------------------------- */
/* Create document. */
@@ -358,16 +355,16 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
/* -------------------------------------------------------------------- */
xmlAddChild(psRootNode,
- msOWSCommonServiceIdentification(psNsOws, map, "OGC WFS", params->pszVersion, "FO"));
+ msOWSCommonServiceIdentification(psNsOws, map, "OGC WFS", params->pszVersion, "FO", NULL));
/*service provider*/
xmlAddChild(psRootNode, msOWSCommonServiceProvider(
- psNsOws, psNsXLink, map, "FO"));
+ psNsOws, psNsXLink, map, "FO", NULL));
/*operation metadata */
if ((script_url=msOWSGetOnlineResource(map, "FO", "onlineresource", req)) == NULL) {
msSetError(MS_WFSERR, "Server URL not found", "msWFSGetCapabilities11()");
- return msWFSException11(map, "mapserv", "NoApplicableCode", params->pszVersion);
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
}
/* -------------------------------------------------------------------- */
@@ -424,7 +421,7 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
"Parameter", "resultType",
"results,hits"));
- formats_list = msWFSGetOutputFormatList( map, NULL, "1.1.0" );
+ formats_list = msWFSGetOutputFormatList( map, NULL, OWS_1_1_0 );
xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
"Parameter", "outputFormat",
formats_list));
@@ -457,7 +454,7 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
/* List only vector layers in which DUMP=TRUE */
if (msWFSIsLayerSupported(lp))
- xmlAddChild(psFtNode, msWFSDumpLayer11(map, lp, psNsOws));
+ xmlAddChild(psFtNode, msWFSDumpLayer11(map, lp, psNsOws, OWS_1_1_0, NULL));
}
@@ -477,15 +474,12 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
if( msIO_needBinaryStdout() == MS_FAILURE )
return MS_FAILURE;
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
context = msIO_getHandler(stdout);
- xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, (encoding ? encoding : "ISO-8859-1"), 1);
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
msIO_contextWrite(context, buffer, size);
xmlFree(buffer);
@@ -516,9 +510,9 @@ int msWFSGetCapabilities11(mapObj *map, wfsParamsObj *params,
{
msSetError( MS_WFSERR,
"WFS 1.1 request made, but mapserver requires libxml2 for WFS 1.1 services and this is not configured.",
- "msWFSGetCapabilities11()", "NoApplicableCode" );
+ "msWFSGetCapabilities11()" );
- return msWFSException11(map, "mapserv", "NoApplicableCode", params->pszVersion);
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
}
int msWFSException11(mapObj *map, const char *locator, const char *exceptionCode, const char *version)
diff --git a/mapwfs20.c b/mapwfs20.c
new file mode 100644
index 0000000..710d444
--- /dev/null
+++ b/mapwfs20.c
@@ -0,0 +1,1389 @@
+/**********************************************************************
+ * $Id$
+ *
+ * Project: MapServer
+ * Purpose: OGC WFS 2.0.0 implementation. This file holds some WFS 2.0.0
+ * specific functions but other parts are still implemented in mapwfs.c.
+ * Author: Even Rouault
+ *
+ **********************************************************************
+ * Copyright (c) 2013, Even Rouault
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ ****************************************************************************/
+
+#include "mapserver.h"
+#include "mapows.h"
+
+#if defined(USE_WFS_SVR) && defined(USE_LIBXML2)
+#include "maplibxml2.h"
+#include "mapowscommon.h"
+#include "mapogcfilter.h"
+
+#define MS_OWS_11_NAMESPACE_PREFIX MS_OWSCOMMON_OWS_NAMESPACE_PREFIX
+#define MS_OWS_11_NAMESPACE_URI MS_OWSCOMMON_OWS_110_NAMESPACE_URI
+
+#define URN_GET_FEATURE_BY_ID "urn:ogc:def:query:OGC-WFS::GetFeatureById"
+
+#define GET_FEATURE_BY_ID \
+"<StoredQueryDescription id=\"" URN_GET_FEATURE_BY_ID "\">" \
+"<Title>Get feature by identifier</Title>" \
+"<Abstract>Returns the single feature whose value is equal to the specified value of the ID argument</Abstract>" \
+"<Parameter name=\"ID\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" type=\"xs:string\"/>" \
+"<QueryExpressionText isPrivate=\"true\" language=\"urn:ogc:def:queryLanguage:OGC-WFS::WFS_QueryExpression\" returnFeatureTypes=\"\">" \
+"<Query xmlns:fes=\"http://www.opengis.net/fes/2.0\" typeNames=\"?\">" \
+"<fes:Filter><fes:ResourceId rid=\"${ID}\"/></fes:Filter>" \
+"</Query>" \
+"</QueryExpressionText>" \
+"</StoredQueryDescription>"
+
+/************************************************************************/
+/* msWFSException20() */
+/************************************************************************/
+
+int msWFSException20(mapObj *map, const char *locator,
+ const char *exceptionCode)
+{
+ int size = 0;
+ char *errorString = NULL;
+
+ xmlDocPtr psDoc = NULL;
+ xmlNodePtr psRootNode = NULL;
+ xmlNsPtr psNsOws = NULL;
+ xmlChar *buffer = NULL;
+ const char* status = NULL;
+
+ psNsOws = xmlNewNs(NULL, BAD_CAST MS_OWS_11_NAMESPACE_URI, BAD_CAST MS_OWS_11_NAMESPACE_PREFIX);
+
+ errorString = msGetErrorString("\n");
+
+ psDoc = xmlNewDoc(BAD_CAST "1.0");
+
+ psRootNode = msOWSCommonExceptionReport(psNsOws, OWS_1_1_0, msOWSGetSchemasLocation(map), "2.0.0", msOWSGetLanguage(map, "exception"), exceptionCode, locator, errorString);
+
+ xmlDocSetRootElement(psDoc, psRootNode);
+
+ xmlNewNs(psRootNode, BAD_CAST MS_OWS_11_NAMESPACE_URI, BAD_CAST MS_OWS_11_NAMESPACE_PREFIX);
+
+ /* Table D.2 OGC 09-025r1 - For CITE compliance */
+ if( EQUAL(exceptionCode, MS_OWS_ERROR_OPERATION_NOT_SUPPORTED) ||
+ EQUAL(exceptionCode, MS_OWS_ERROR_OPTION_NOT_SUPPORTED) ) {
+ status = "400 Not Implemented";
+ }
+ else if( EQUAL(exceptionCode, MS_OWS_ERROR_MISSING_PARAMETER_VALUE) ||
+ EQUAL(exceptionCode, MS_OWS_ERROR_INVALID_PARAMETER_VALUE) ||
+ EQUAL(exceptionCode, MS_OWS_ERROR_VERSION_NEGOTIATION_FAILED) ||
+ EQUAL(exceptionCode, MS_OWS_ERROR_INVALID_UPDATE_SEQUENCE) ) {
+ status = "400 Bad request";
+ }
+ else if( EQUAL(exceptionCode, MS_WFS_ERROR_OPERATION_PROCESSING_FAILED) ) {
+ status = "403 Server processing failed";
+ }
+ else if( EQUAL(exceptionCode, MS_OWS_ERROR_NO_APPLICABLE_CODE) ) {
+ status = "400 Internal Server Error";
+ }
+
+ if( status != NULL )
+ {
+ msIO_setHeader("Status", "%s", status);
+ }
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
+ msIO_sendHeaders();
+
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, "UTF-8", 1);
+
+ msIO_printf("%s", buffer);
+
+ /*free buffer and the document */
+ free(errorString);
+ xmlFree(buffer);
+ xmlFreeDoc(psDoc);
+ xmlFreeNs(psNsOws);
+
+ /* clear error since we have already reported it */
+ msResetErrorList();
+
+ return MS_FAILURE;
+}
+
+/************************************************************************/
+/* msWFSIncludeSection */
+/************************************************************************/
+static int msWFSIncludeSection(wfsParamsObj *params, const char* pszSection)
+{
+ int i;
+ if( params->pszSections == NULL )
+ return TRUE;
+ for(i = 0; params->pszSections[i] != '\0'; i++ )
+ {
+ if( strncasecmp( params->pszSections + i, "All", strlen("All")) == 0 )
+ return TRUE;
+ if( strncasecmp( params->pszSections + i, pszSection, strlen(pszSection)) == 0 )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/************************************************************************/
+/* msWFSAddGlobalSRSNameParam */
+/************************************************************************/
+
+static void msWFSAddGlobalSRSNameParam(xmlNodePtr psMainNode,
+ xmlNsPtr psNsOws,
+ mapObj* map)
+{
+}
+
+/************************************************************************/
+/* msWFSConstraintDefaultValue */
+/************************************************************************/
+
+static
+xmlNodePtr msWFSConstraintDefaultValue(xmlNsPtr psNs, xmlNsPtr psNsOws, const char *name, const char* value)
+{
+ xmlNodePtr psRootNode = NULL;
+
+ psRootNode = xmlNewNode(psNs, BAD_CAST "Constraint");
+
+ xmlNewProp(psRootNode, BAD_CAST "name", BAD_CAST name);
+
+ xmlNewChild(psRootNode, psNsOws, BAD_CAST "NoValues", NULL );
+ xmlNewChild(psRootNode, psNsOws, BAD_CAST "DefaultValue", BAD_CAST value);
+
+ return psRootNode;
+}
+
+/************************************************************************/
+/* msWFSOperator */
+/************************************************************************/
+
+static
+xmlNodePtr msWFSOperator(xmlNsPtr psNsFES, const char* pszOperatorType, const char* pszOperator)
+{
+ xmlNodePtr psNode = xmlNewNode(psNsFES, BAD_CAST pszOperatorType);
+ xmlNewProp(psNode, BAD_CAST "name", BAD_CAST pszOperator);
+ return psNode;
+}
+
+/************************************************************************/
+/* msWFS20FilterCapabilities */
+/************************************************************************/
+
+static
+xmlNodePtr msWFS20FilterCapabilities(xmlNsPtr psNsFES, xmlNsPtr psNsOws,
+ int bImplementsSorting)
+{
+ xmlNodePtr psRootNode = NULL, psNode = NULL, psSubNode = NULL;
+
+ psRootNode = xmlNewNode(psNsFES, BAD_CAST "Filter_Capabilities");
+
+ psNode = xmlNewChild(psRootNode, psNsFES, BAD_CAST "Conformance", NULL);
+
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsQuery", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsAdHocQuery", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsFunctions", "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsResourceId", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsMinStandardFilter", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsStandardFilter", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsMinSpatialFilter", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsSpatialFilter", "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsMinTemporalFilter", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsTemporalFilter", "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsVersionNav", "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsSorting", ( bImplementsSorting ) ? "TRUE" : "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsExtendedOperators", "FALSE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsMinimumXPath", "TRUE"));
+ xmlAddChild(psNode, msWFSConstraintDefaultValue(psNsFES, psNsOws, "ImplementsSchemaElementFunc", "FALSE"));
+
+ psNode = xmlNewChild(psRootNode, psNsFES, BAD_CAST "Id_Capabilities", NULL);
+ psSubNode = xmlNewChild(psNode, psNsFES, BAD_CAST "ResourceIdentifier", NULL );
+ xmlNewProp(psSubNode, BAD_CAST "name", BAD_CAST "fes:ResourceId");
+
+ psNode = xmlNewChild(psRootNode, psNsFES, BAD_CAST "Scalar_Capabilities", NULL);
+ xmlNewChild(psNode, psNsFES, BAD_CAST "LogicalOperators", NULL);
+ psNode = xmlNewChild(psNode, psNsFES, BAD_CAST "ComparisonOperators", NULL);
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsEqualTo"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsNotEqualTo"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsLessThan"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsGreaterThan"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsLessThanOrEqualTo"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsGreaterThanOrEqualTo"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsLike"));
+ xmlAddChild(psNode, msWFSOperator(psNsFES, "ComparisonOperator", "PropertyIsBetween"));
+ /* Missing: PropertyIsNull, PropertyIsNil */
+
+ psNode = xmlNewChild(psRootNode, psNsFES, BAD_CAST "Spatial_Capabilities", NULL);
+
+ psSubNode = xmlNewChild(psNode, psNsFES, BAD_CAST "GeometryOperands", NULL);
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Point"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiPoint"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:LineString"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiLineString"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Curve"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiCurve"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Polygon"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiPolygon"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Surface"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiSurface"));
+ /* xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:MultiGeometry")); */
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Box"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "GeometryOperand", "gml:Envelope"));
+
+ psSubNode = xmlNewChild(psNode, psNsFES, BAD_CAST "SpatialOperators", NULL);
+#ifdef USE_GEOS
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Equals"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Disjoint"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Touches"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Within"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Overlaps"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Crosses"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Intersects"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Contains"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "DWithin"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "Beyond"));
+#endif
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "SpatialOperator", "BBOX"));
+
+ psNode = xmlNewChild(psRootNode, psNsFES, BAD_CAST "Temporal_Capabilities", NULL);
+ psSubNode = xmlNewChild(psNode, psNsFES, BAD_CAST "TemporalOperands", NULL);
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "TemporalOperand", "gml:TimePeriod"));
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "TemporalOperand", "gml:TimeInstant"));
+
+ psSubNode = xmlNewChild(psNode, psNsFES, BAD_CAST "TemporalOperators", NULL);
+ xmlAddChild(psSubNode, msWFSOperator(psNsFES, "TemporalOperator", "During"));
+
+ return psRootNode;
+}
+
+/************************************************************************/
+/* msXMLStripIndentation */
+/************************************************************************/
+
+static void msXMLStripIndentation(char* ptr)
+{
+ /* Remove spaces between > and < to get properly indented result */
+ char* afterLastClosingBracket = NULL;
+ if( *ptr == ' ' )
+ afterLastClosingBracket = ptr;
+ while( *ptr != '\0' )
+ {
+ if( *ptr == '<' && afterLastClosingBracket != NULL )
+ {
+ memmove(afterLastClosingBracket, ptr, strlen(ptr) + 1);
+ ptr = afterLastClosingBracket;
+ }
+ else if( *ptr == '>' )
+ {
+ afterLastClosingBracket = ptr + 1;
+ }
+ else if( *ptr != ' ' && *ptr != '\n' )
+ afterLastClosingBracket = NULL;
+ ptr ++;
+ }
+}
+
+/************************************************************************/
+/* msWFSAddInspireDSID */
+/************************************************************************/
+
+static void msWFSAddInspireDSID(mapObj *map,
+ xmlNsPtr psNsInspireDls,
+ xmlNsPtr psNsInspireCommon,
+ xmlNodePtr pDlsExtendedCapabilities)
+{
+ const char* dsid_code = msOWSLookupMetadata(&(map->web.metadata), "FO", "inspire_dsid_code");
+ const char* dsid_ns = msOWSLookupMetadata(&(map->web.metadata), "FO", "inspire_dsid_ns");
+ if( dsid_code == NULL )
+ {
+ xmlAddChild(pDlsExtendedCapabilities, xmlNewComment(BAD_CAST "WARNING: Required metadata \"inspire_dsid_code\" missing"));
+ }
+ else
+ {
+ int ntokensCode = 0, ntokensNS = 0;
+ char** tokensCode;
+ char** tokensNS = NULL;
+ int i;
+
+ tokensCode = msStringSplit(dsid_code, ',', &ntokensCode);
+ if( dsid_ns != NULL )
+ tokensNS = msStringSplitComplex( dsid_ns, ",", &ntokensNS, MS_ALLOWEMPTYTOKENS);
+ if( ntokensNS > 0 && ntokensNS != ntokensCode )
+ {
+ xmlAddChild(pDlsExtendedCapabilities,
+ xmlNewComment(BAD_CAST "WARNING: \"inspire_dsid_code\" and \"inspire_dsid_ns\" have not the same number of elements. Ignoring inspire_dsid_ns"));
+ msFreeCharArray(tokensNS, ntokensNS);
+ tokensNS = NULL;
+ ntokensNS = 0;
+ }
+ for(i = 0; i<ntokensCode; i++ )
+ {
+ xmlNodePtr pSDSI = xmlNewNode(psNsInspireDls, BAD_CAST "SpatialDataSetIdentifier");
+ xmlAddChild(pDlsExtendedCapabilities, pSDSI);
+ xmlNewChild(pSDSI, psNsInspireCommon, BAD_CAST "Code", BAD_CAST tokensCode[i]);
+ if( ntokensNS > 0 && tokensNS[i][0] != '\0' )
+ xmlNewChild(pSDSI, psNsInspireCommon, BAD_CAST "Namespace", BAD_CAST tokensNS[i]);
+ }
+ msFreeCharArray(tokensCode, ntokensCode);
+ if( ntokensNS > 0 )
+ msFreeCharArray(tokensNS, ntokensNS);
+ }
+}
+
+
+
+/************************************************************************/
+/* msWFSGetCapabilities20 */
+/* */
+/* Return the capabilities document for WFS 2.0.0 */
+/************************************************************************/
+int msWFSGetCapabilities20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ xmlDocPtr psDoc = NULL; /* document pointer */
+ xmlNodePtr psRootNode, psMainNode, psNode, psFtNode = NULL;
+ const char *updatesequence=NULL;
+ xmlNsPtr psNsOws, psNsXLink;
+ xmlNsPtr psNsFES = NULL;
+ xmlNsPtr psNsInspireCommon = NULL;
+ xmlNsPtr psNsInspireDls = NULL;
+ xmlDocPtr pInspireTmpDoc = NULL;
+ char *xsi_schemaLocation = NULL;
+ const char *user_namespace_prefix = NULL;
+ const char *user_namespace_uri = NULL;
+ gmlNamespaceListObj *namespaceList=NULL; /* for external application schema support */
+
+ char *script_url=NULL, *formats_list;
+ const char *value = NULL;
+
+ xmlChar *buffer = NULL;
+ int size = 0, i;
+ msIOContext *context = NULL;
+
+ int ows_version = OWS_1_1_0;
+ int ret;
+
+ char* validated_language;
+ int bImplementsSorting = MS_FALSE;
+
+ /* -------------------------------------------------------------------- */
+ /* Handle updatesequence */
+ /* -------------------------------------------------------------------- */
+ ret = msWFSHandleUpdateSequence(map, params, "msWFSGetCapabilities20()");
+ if( ret != MS_SUCCESS )
+ return ret;
+
+ validated_language = msOWSGetLanguageFromList(map, "FO", params->pszLanguage);
+
+ /* -------------------------------------------------------------------- */
+ /* Create document. */
+ /* -------------------------------------------------------------------- */
+ psDoc = xmlNewDoc(BAD_CAST "1.0");
+
+ psRootNode = xmlNewNode(NULL, BAD_CAST "WFS_Capabilities");
+
+ xmlDocSetRootElement(psDoc, psRootNode);
+
+ /* -------------------------------------------------------------------- */
+ /* Name spaces */
+ /* -------------------------------------------------------------------- */
+
+ /*default name space*/
+ xmlNewProp(psRootNode, BAD_CAST "xmlns", BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+
+ xmlSetNs(psRootNode, xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_GML_32_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_GML_NAMESPACE_PREFIX));
+ xmlSetNs(psRootNode, xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_WFS_NAMESPACE_PREFIX));
+
+ psNsOws = xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_OWS_110_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_OWS_NAMESPACE_PREFIX);
+ psNsXLink = xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_W3C_XLINK_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_W3C_XLINK_NAMESPACE_PREFIX);
+ xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX);
+ xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_FES_20_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_FES_20_NAMESPACE_PREFIX );
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_uri");
+ if(value)
+ user_namespace_uri = value;
+ else
+ user_namespace_uri = MS_DEFAULT_NAMESPACE_URI;
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_prefix");
+ if(value)
+ user_namespace_prefix = value;
+ else
+ user_namespace_prefix = MS_DEFAULT_NAMESPACE_PREFIX;
+
+ if(user_namespace_prefix != NULL && msIsXMLTagValid(user_namespace_prefix) == MS_FALSE)
+ msIO_printf("<!-- WARNING: The value '%s' is not valid XML namespace. -->\n", user_namespace_prefix);
+ else
+ xmlNewNs(psRootNode, BAD_CAST user_namespace_uri, BAD_CAST user_namespace_prefix);
+
+ /* any additional namespaces */
+ namespaceList = msGMLGetNamespaces(&(map->web), "G");
+ for(i=0; i<namespaceList->numnamespaces; i++) {
+ if(namespaceList->namespaces[i].uri) {
+ xmlNewNs(psRootNode, BAD_CAST namespaceList->namespaces[i].uri, BAD_CAST namespaceList->namespaces[i].prefix);
+ }
+ }
+ msGMLFreeNamespaces(namespaceList);
+
+ if ( msOWSLookupMetadata(&(map->web.metadata), "FO", "inspire_capabilities") ) {
+ psNsInspireCommon = xmlNewNs(psRootNode, BAD_CAST MS_INSPIRE_COMMON_NAMESPACE_URI, BAD_CAST MS_INSPIRE_COMMON_NAMESPACE_PREFIX);
+ psNsInspireDls = xmlNewNs(psRootNode, BAD_CAST MS_INSPIRE_DLS_NAMESPACE_URI, BAD_CAST MS_INSPIRE_DLS_NAMESPACE_PREFIX);
+ }
+
+ xmlNewProp(psRootNode, BAD_CAST "version", BAD_CAST params->pszVersion );
+
+ updatesequence = msOWSLookupMetadata(&(map->web.metadata), "FO", "updatesequence");
+
+ if (updatesequence)
+ xmlNewProp(psRootNode, BAD_CAST "updateSequence", BAD_CAST updatesequence);
+
+ /*schema*/
+ xsi_schemaLocation = msStrdup(MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, msOWSGetSchemasLocation(map));
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION);
+
+ if( psNsInspireDls != NULL )
+ {
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_INSPIRE_DLS_NAMESPACE_URI);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, msOWSGetInspireSchemasLocation(map));
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_INSPIRE_DLS_SCHEMA_LOCATION);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_INSPIRE_COMMON_NAMESPACE_URI);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, msOWSGetInspireSchemasLocation(map));
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_INSPIRE_COMMON_SCHEMA_LOCATION);
+ }
+
+ xmlNewNsProp(psRootNode, NULL, BAD_CAST "xsi:schemaLocation", BAD_CAST xsi_schemaLocation);
+ free(xsi_schemaLocation);
+
+ /* -------------------------------------------------------------------- */
+ /* Service metadata. */
+ /* -------------------------------------------------------------------- */
+
+ /* TODO? : also add 1.1.0 and 1.0.0 as extra <ows:ServiceTypeVersion>. The OWS */
+ /* schema would suggest to do so, and also the example */
+ /* http://schemas.opengis.net/wfs/2.0/examples/GetCapabilities/GetCapabilities_Res_01.xml */
+ /* and Deegree too, but GeoServer also only lists the current version. */
+ if( msWFSIncludeSection(params, "ServiceIdentification") )
+ {
+ xmlAddChild(psRootNode,
+ msOWSCommonServiceIdentification(psNsOws, map, "WFS",
+ params->pszVersion, "FO", validated_language));
+ }
+
+ /*service provider*/
+ if( msWFSIncludeSection(params, "ServiceProvider") )
+ {
+ xmlAddChild(psRootNode, msOWSCommonServiceProvider(
+ psNsOws, psNsXLink, map, "FO", validated_language));
+ }
+
+ /*operation metadata */
+ if( msWFSIncludeSection(params, "OperationsMetadata") )
+ {
+ if ((script_url=msOWSGetOnlineResource2(map, "FO", "onlineresource", req, validated_language)) == NULL) {
+ msSetError(MS_WFSERR, "Server URL not found", "msWFSGetCapabilities20()");
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
+ }
+
+
+ /* -------------------------------------------------------------------- */
+ /* Operations metadata. */
+ /* -------------------------------------------------------------------- */
+ psMainNode= xmlAddChild(psRootNode,msOWSCommonOperationsMetadata(psNsOws));
+
+ /* -------------------------------------------------------------------- */
+ /* GetCapabilities */
+ /* -------------------------------------------------------------------- */
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"GetCapabilities",
+ OWS_METHOD_GETPOST, script_url));
+
+ xmlAddChild(psMainNode, psNode);
+
+ /*accept version*/
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "AcceptVersions",
+ "2.0.0,1.1.0,1.0.0"));
+ /*format*/
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "AcceptFormats",
+ "text/xml"));
+ /*sections*/
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "Sections",
+ "ServiceIdentification,ServiceProvider,OperationsMetadata,FeatureTypeList,Filter_Capabilities"));
+
+ /* -------------------------------------------------------------------- */
+ /* DescribeFeatureType */
+ /* -------------------------------------------------------------------- */
+ if (msOWSRequestIsEnabled(map, NULL, "F", "DescribeFeatureType", MS_TRUE)) {
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"DescribeFeatureType",
+ OWS_METHOD_GETPOST, script_url));
+ xmlAddChild(psMainNode, psNode);
+
+ /*output format*/
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "outputFormat",
+ "application/gml+xml; version=3.2,"
+ "text/xml; subtype=gml/3.2.1,"
+ "text/xml; subtype=gml/3.1.1,"
+ "text/xml; subtype=gml/2.1.2"));
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* GetFeature */
+ /* -------------------------------------------------------------------- */
+ if (msOWSRequestIsEnabled(map, NULL, "F", "GetFeature", MS_TRUE)) {
+
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"GetFeature",
+ OWS_METHOD_GETPOST, script_url));
+ xmlAddChild(psMainNode, psNode);
+
+ formats_list = msWFSGetOutputFormatList( map, NULL, OWS_2_0_0 );
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "outputFormat",
+ formats_list));
+ msFree( formats_list );
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* GetPropertyValue */
+ /* -------------------------------------------------------------------- */
+ if (msOWSRequestIsEnabled(map, NULL, "F", "GetPropertyValue", MS_TRUE)) {
+
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"GetPropertyValue",
+ OWS_METHOD_GETPOST, script_url));
+ xmlAddChild(psMainNode, psNode);
+
+ /* Only advertize built-in GML formats for GetPropertyValue. Not sure */
+ /* it makes sense to advertize OGR formats. */
+ xmlAddChild(psNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "outputFormat",
+ "application/gml+xml; version=3.2,"
+ "text/xml; subtype=gml/3.2.1,"
+ "text/xml; subtype=gml/3.1.1,"
+ "text/xml; subtype=gml/2.1.2"));
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* ListStoredQueries */
+ /* -------------------------------------------------------------------- */
+ if (msOWSRequestIsEnabled(map, NULL, "F", "ListStoredQueries", MS_TRUE)) {
+
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"ListStoredQueries",
+ OWS_METHOD_GETPOST, script_url));
+ xmlAddChild(psMainNode, psNode);
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* DescribeStoredQueries */
+ /* -------------------------------------------------------------------- */
+ if (msOWSRequestIsEnabled(map, NULL, "F", "DescribeStoredQueries", MS_TRUE)) {
+
+ psNode = xmlAddChild(psMainNode,
+ msOWSCommonOperationsMetadataOperation(psNsOws,psNsXLink,"DescribeStoredQueries",
+ OWS_METHOD_GETPOST, script_url));
+ xmlAddChild(psMainNode, psNode);
+ }
+
+ xmlAddChild(psMainNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Parameter", "version",
+ "2.0.0,1.1.0,1.0.0"));
+
+ msWFSAddGlobalSRSNameParam(psMainNode, psNsOws, map);
+
+ /* Conformance declaration */
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsBasicWFS", "TRUE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsTransactionalWFS", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsLockingWFS", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "KVPEncoding", "TRUE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "XMLEncoding", "TRUE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "SOAPEncoding", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsInheritance", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsRemoteResolve", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsResultPaging", "TRUE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsStandardJoins", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsSpatialJoins", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsTemporalJoins", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ImplementsFeatureVersioning", "FALSE"));
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "ManageStoredQueries", "FALSE"));
+
+ /* Capacity declaration */
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "PagingIsTransactionSafe", "FALSE"));
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "maxfeatures");
+ if (value) {
+ xmlAddChild(psMainNode, msWFSConstraintDefaultValue(psNsOws, psNsOws, "CountDefault", value));
+ }
+
+ xmlAddChild(psMainNode, msOWSCommonOperationsMetadataDomainType(ows_version, psNsOws,
+ "Constraint", "QueryExpressions","wfs:Query,wfs:StoredQuery"));
+
+ /* Add Inspire Download Services extended capabilities */
+ if( psNsInspireDls != NULL )
+ {
+ msIOContext* old_context;
+ msIOContext* new_context;
+ msIOBuffer* buffer;
+ xmlNodePtr pRoot;
+ xmlNodePtr pOWSExtendedCapabilities;
+ xmlNodePtr pDlsExtendedCapabilities;
+ xmlNodePtr pChild;
+
+ old_context = msIO_pushStdoutToBufferAndGetOldContext();
+ msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "FO", OWS_WARN,
+ "foo",
+ "xmlns:" MS_INSPIRE_COMMON_NAMESPACE_PREFIX "=\"" MS_INSPIRE_COMMON_NAMESPACE_URI "\" "
+ "xmlns:" MS_INSPIRE_DLS_NAMESPACE_PREFIX "=\"" MS_INSPIRE_DLS_NAMESPACE_URI "\" "
+ "xmlns:xsi=\"" MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI "\"", validated_language, OWS_WFS);
+
+ new_context = msIO_getHandler(stdout);
+ buffer = (msIOBuffer *) new_context->cbData;
+
+ /* Remove spaces between > and < to get properly indented result */
+ msXMLStripIndentation( (char*) buffer->data );
+
+ pInspireTmpDoc = xmlParseDoc((const xmlChar *)buffer->data);
+ pRoot = xmlDocGetRootElement(pInspireTmpDoc);
+ xmlReconciliateNs(psDoc, pRoot);
+
+ pOWSExtendedCapabilities = xmlNewNode(psNsOws, BAD_CAST "ExtendedCapabilities");
+ xmlAddChild(psMainNode, pOWSExtendedCapabilities);
+
+ pDlsExtendedCapabilities = xmlNewNode(psNsInspireDls, BAD_CAST "ExtendedCapabilities");
+ xmlAddChild(pOWSExtendedCapabilities, pDlsExtendedCapabilities);
+
+ pChild = pRoot->children;
+ while(pChild != NULL)
+ {
+ xmlNodePtr pNext = pChild->next;
+ xmlUnlinkNode(pChild);
+ xmlAddChild(pDlsExtendedCapabilities, pChild);
+ pChild = pNext;
+ }
+
+ msWFSAddInspireDSID(map, psNsInspireDls, psNsInspireCommon, pDlsExtendedCapabilities);
+
+ msIO_restoreOldStdoutContext(old_context);
+ }
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* FeatureTypeList */
+ /* -------------------------------------------------------------------- */
+ if( msWFSIncludeSection(params, "FeatureTypeList") )
+ {
+ psFtNode = xmlNewNode(NULL, BAD_CAST "FeatureTypeList");
+ xmlAddChild(psRootNode, psFtNode);
+ }
+
+ for(i=0; i<map->numlayers; i++) {
+ layerObj *lp;
+ lp = GET_LAYER(map, i);
+
+ if (!msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers))
+ continue;
+
+ /* List only vector layers in which DUMP=TRUE */
+ if (msWFSIsLayerSupported(lp))
+ {
+ if( psFtNode != NULL ) {
+ xmlAddChild(psFtNode, msWFSDumpLayer11(map, lp, psNsOws, OWS_2_0_0, validated_language));
+ }
+
+ /* As soon as at least one layer supports sorting, advertize sorting */
+ if( msLayerSupportsSorting(lp) )
+ bImplementsSorting = MS_TRUE;
+ }
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* Filter capabilities. */
+ /* -------------------------------------------------------------------- */
+ if( msWFSIncludeSection(params, "Filter_Capabilities") )
+ {
+ psNsFES = xmlNewNs(NULL, BAD_CAST MS_OWSCOMMON_FES_20_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_FES_20_NAMESPACE_PREFIX);
+ xmlAddChild(psRootNode, msWFS20FilterCapabilities(psNsFES, psNsOws, bImplementsSorting));
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* Write out the document. */
+ /* -------------------------------------------------------------------- */
+
+ if( msIO_needBinaryStdout() == MS_FAILURE )
+ return MS_FAILURE;
+
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
+ msIO_sendHeaders();
+
+ context = msIO_getHandler(stdout);
+
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
+ msIO_contextWrite(context, buffer, size);
+ xmlFree(buffer);
+
+ /*free buffer and the document */
+ /*xmlFree(buffer);*/
+ xmlFreeDoc(psDoc);
+ if( psNsFES != NULL )
+ xmlFreeNs(psNsFES);
+ if( pInspireTmpDoc != NULL )
+ xmlFreeDoc(pInspireTmpDoc);
+
+ free(script_url);
+ msFree(validated_language);
+
+ xmlCleanupParser();
+
+ return(MS_SUCCESS);
+}
+
+/************************************************************************/
+/* msWFSGetStoredQueries */
+/* */
+/* Result must be freed with msFreeCharArray() */
+/************************************************************************/
+
+static char** msWFSGetStoredQueries(mapObj *map, int* pn)
+{
+ const char* value;
+ char** tokens;
+ int i,n;
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "F", "storedqueries");
+ if( value != NULL )
+ {
+ tokens = msStringSplit(value, ',', &n);
+ for(i=0;i<n;i++)
+ {
+ if( strcasecmp(tokens[i], URN_GET_FEATURE_BY_ID) == 0 )
+ break;
+ }
+ /* Add mandatory GetFeatureById stored query if not found */
+ if(i == n)
+ {
+ tokens = (char**) realloc(tokens, (n+1) * sizeof(char*));
+ memmove(tokens + 1, tokens, n * sizeof(char**));
+ tokens[0] = msStrdup(URN_GET_FEATURE_BY_ID);
+ n ++;
+ }
+ }
+ else
+ {
+ tokens = (char**) malloc(sizeof(char**));
+ tokens[0] = msStrdup(URN_GET_FEATURE_BY_ID);
+ n = 1;
+ }
+ *pn = n;
+ return tokens;
+}
+
+/************************************************************************/
+/* msWFSGetStoredQuery */
+/* */
+/* Result must be freed with msFree() */
+/************************************************************************/
+
+static char* msWFSGetStoredQuery(mapObj *map, const char* pszURN)
+{
+ const char* value;
+ char szKey[256];
+
+ snprintf(szKey, sizeof(szKey), "%s_inlinedef", pszURN);
+ value = msOWSLookupMetadata(&(map->web.metadata), "F", szKey);
+ if( value != NULL )
+ return msStrdup(value);
+
+ snprintf(szKey, sizeof(szKey), "%s_filedef", pszURN);
+ value = msOWSLookupMetadata(&(map->web.metadata), "F", szKey);
+ if( value != NULL )
+ {
+ FILE* f = fopen(value, "rb");
+ if( f != NULL )
+ {
+ char* pszBuffer = (char*) msSmallMalloc(32000);
+ int nread = fread(pszBuffer, 1, 32000-1, f);
+ fclose(f);
+ if( nread > 0 )
+ {
+ pszBuffer[nread-1] = '\0';
+ return pszBuffer;
+ }
+ msFree(pszBuffer);
+ }
+ else
+ {
+ msSetError(MS_WFSERR, "Cannot open %s", "msWFSGetStoredQuery()", value);
+ }
+ }
+
+ if( strcasecmp(pszURN, URN_GET_FEATURE_BY_ID) == 0 )
+ return msStrdup(GET_FEATURE_BY_ID);
+ return NULL;
+}
+
+/************************************************************************/
+/* msWFSGetResolvedStoredQuery20 */
+/* */
+/* Result must be freed with msFree() */
+/************************************************************************/
+
+char* msWFSGetResolvedStoredQuery20(mapObj *map,
+ wfsParamsObj *wfsparams,
+ const char* id,
+ hashTableObj* hashTable)
+{
+ char* storedQuery;
+ xmlDocPtr psStoredQueryDoc;
+ xmlNodePtr psStoredQueryRoot, pChild;
+
+ storedQuery = msWFSGetStoredQuery(map, id);
+ if( storedQuery == NULL )
+ {
+ msSetError(MS_WFSERR, "Unknown stored query id: %s", "msWFSGetResolvedStoredQuery20()",
+ id);
+ msWFSException(map, "storedqueryid", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, wfsparams->pszVersion);
+ return NULL;
+ }
+
+ psStoredQueryDoc = xmlParseDoc((const xmlChar*) storedQuery);
+ if( psStoredQueryDoc == NULL )
+ {
+ msSetError(MS_WFSERR, "Definition for stored query '%s' is invalid", "msWFSGetResolvedStoredQuery20()", id);
+ msWFSException(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, wfsparams->pszVersion);
+ msFree(storedQuery);
+ return NULL;
+ }
+
+ psStoredQueryRoot = xmlDocGetRootElement(psStoredQueryDoc);
+
+ /* Check that all parameters are provided */
+ pChild = psStoredQueryRoot->children;
+ while(pChild != NULL)
+ {
+ if( pChild->type == XML_ELEMENT_NODE &&
+ strcmp((const char*) pChild->name, "Parameter") == 0 )
+ {
+ xmlChar* parameterName = xmlGetProp(pChild, BAD_CAST "name");
+ if( parameterName != NULL )
+ {
+ char szTmp[256];
+ const char* value = msLookupHashTable(hashTable, (const char*)parameterName);
+ if( value == NULL )
+ {
+ msSetError(MS_WFSERR, "Stored query '%s' requires parameter '%s'", "msWFSParseRequest()",
+ id, (const char*)parameterName);
+ msWFSException(map, (const char*)parameterName, MS_OWS_ERROR_MISSING_PARAMETER_VALUE, wfsparams->pszVersion);
+ msFree(storedQuery);
+ xmlFree(parameterName);
+ xmlFreeDoc(psStoredQueryDoc);
+ return NULL;
+ }
+
+ snprintf(szTmp, sizeof(szTmp), "${%s}", (const char*)parameterName);
+ storedQuery = msReplaceSubstring(storedQuery, szTmp, value);
+ }
+ xmlFree(parameterName);
+ }
+ pChild = pChild->next;
+ }
+
+ xmlFreeDoc(psStoredQueryDoc);
+
+ return storedQuery;
+}
+
+/************************************************************************/
+/* msWFSListStoredQueries20 */
+/************************************************************************/
+
+int msWFSListStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ xmlDocPtr psDoc;
+ xmlChar *buffer = NULL;
+ int size = 0;
+ msIOContext *context = NULL;
+ xmlNodePtr psRootNode;
+ char *xsi_schemaLocation = NULL;
+ int i, j;
+ int nStoredQueries = 0;
+ char** storedQueries = NULL;
+
+ xmlDocPtr psStoredQueryDoc;
+ xmlNodePtr psStoredQueryRoot;
+
+ /* -------------------------------------------------------------------- */
+ /* Create document. */
+ /* -------------------------------------------------------------------- */
+ psDoc = xmlNewDoc(BAD_CAST "1.0");
+
+ psRootNode = xmlNewNode(NULL, BAD_CAST "ListStoredQueriesResponse");
+
+ xmlDocSetRootElement(psDoc, psRootNode);
+
+ /* -------------------------------------------------------------------- */
+ /* Name spaces */
+ /* -------------------------------------------------------------------- */
+
+ /*default name space*/
+ xmlNewProp(psRootNode, BAD_CAST "xmlns", BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+
+ xmlSetNs(psRootNode, xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_WFS_NAMESPACE_PREFIX));
+
+ xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX);
+
+ /*schema*/
+ xsi_schemaLocation = msStrdup(MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, msOWSGetSchemasLocation(map));
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION);
+
+ xmlNewNsProp(psRootNode, NULL, BAD_CAST "xsi:schemaLocation", BAD_CAST xsi_schemaLocation);
+ free(xsi_schemaLocation);
+
+ /* -------------------------------------------------------------------- */
+ /* Add queries */
+ /* -------------------------------------------------------------------- */
+
+ storedQueries = msWFSGetStoredQueries(map, &nStoredQueries);
+ for(i = 0; i < nStoredQueries; i++)
+ {
+ char* query = msWFSGetStoredQuery(map, storedQueries[i]);
+ if( query != NULL )
+ {
+ xmlNodePtr pChild;
+ xmlNodePtr psStoredQuery;
+
+ psStoredQueryDoc = xmlParseDoc((const xmlChar*) query);
+ if( psStoredQueryDoc == NULL )
+ {
+ char szMsg[256];
+ msFree(query);
+ snprintf(szMsg, sizeof(szMsg), "WARNING: Definition for stored query %s is invalid", storedQueries[i]);
+ xmlAddChild(psRootNode, xmlNewComment(BAD_CAST szMsg));
+ continue;
+ }
+
+ psStoredQueryRoot = xmlDocGetRootElement(psStoredQueryDoc);
+
+ psStoredQuery = xmlNewNode(NULL, BAD_CAST "StoredQuery" );
+ xmlNewProp(psStoredQuery, BAD_CAST "id", BAD_CAST storedQueries[i]);
+ xmlAddChild(psRootNode, psStoredQuery);
+
+ pChild = psStoredQueryRoot->children;
+ while(pChild != NULL)
+ {
+ xmlNodePtr pNext = pChild->next;
+ if( pChild->type == XML_ELEMENT_NODE &&
+ strcmp((const char*) pChild->name, "Title") == 0 )
+ {
+ xmlUnlinkNode(pChild);
+ xmlAddChild(psStoredQuery, pChild);
+ }
+ else if( pChild->type == XML_ELEMENT_NODE &&
+ strcmp((const char*) pChild->name, "QueryExpressionText") == 0 )
+ {
+ xmlNodePtr psReturnFeatureType;
+
+ if( strcasecmp( storedQueries[i], URN_GET_FEATURE_BY_ID ) == 0 )
+ {
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ const char *user_namespace_prefix = MS_DEFAULT_NAMESPACE_PREFIX;
+ const char *user_namespace_uri = MS_DEFAULT_NAMESPACE_URI;
+ const char *value;
+ char szValue[256];
+
+ lp = GET_LAYER(map, j);
+
+ if (!msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers) ||
+ !msWFSIsLayerSupported(lp))
+ continue;
+
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_uri");
+ if(value) user_namespace_uri = value;
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_prefix");
+ if(value) user_namespace_prefix = value;
+
+ psReturnFeatureType = xmlNewNode(NULL, BAD_CAST "ReturnFeatureType" );
+ xmlNewNs(psReturnFeatureType, BAD_CAST user_namespace_uri, BAD_CAST user_namespace_prefix);
+
+ xmlAddChild(psStoredQuery, psReturnFeatureType);
+ snprintf(szValue, sizeof(szValue), "%s:%s", user_namespace_prefix, lp->name);
+ xmlAddChild(psReturnFeatureType, xmlNewText( BAD_CAST szValue ));
+ }
+ }
+ else
+ {
+ xmlChar* returnFeatureTypes = xmlGetProp(pChild, BAD_CAST "returnFeatureTypes");
+ if( returnFeatureTypes != NULL && strlen((const char*)returnFeatureTypes) > 0 )
+ {
+ int ntypes;
+ char** types = msStringSplit((const char*)returnFeatureTypes, ' ', &ntypes);
+ for(j=0; j<ntypes; j++)
+ {
+ psReturnFeatureType = xmlNewNode(NULL, BAD_CAST "ReturnFeatureType" );
+ xmlAddChild(psStoredQuery, psReturnFeatureType);
+ xmlAddChild(psReturnFeatureType, xmlNewText( BAD_CAST types[j] ));
+ }
+ msFreeCharArray(types, ntypes);
+ }
+ else
+ {
+ psReturnFeatureType = xmlNewNode(NULL, BAD_CAST "ReturnFeatureType" );
+ xmlAddChild(psStoredQuery, psReturnFeatureType);
+ xmlAddChild(psReturnFeatureType, xmlNewComment( BAD_CAST "WARNING: Missing return type" ));
+ }
+ xmlFree(returnFeatureTypes);
+ }
+ }
+ pChild = pNext;
+ }
+
+ xmlReconciliateNs(psDoc, psStoredQuery);
+ xmlFreeDoc(psStoredQueryDoc);
+ msFree(query);
+ }
+ else
+ {
+ char szMsg[256];
+ snprintf(szMsg, sizeof(szMsg), "WARNING: Definition for stored query %s missing", storedQueries[i]);
+ xmlAddChild(psRootNode, xmlNewComment(BAD_CAST szMsg));
+ }
+ }
+ msFreeCharArray(storedQueries, nStoredQueries);
+
+ /* -------------------------------------------------------------------- */
+ /* Write out the document. */
+ /* -------------------------------------------------------------------- */
+
+ if( msIO_needBinaryStdout() == MS_FAILURE )
+ return MS_FAILURE;
+
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
+ msIO_sendHeaders();
+
+ context = msIO_getHandler(stdout);
+
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
+ msIO_contextWrite(context, buffer, size);
+ xmlFree(buffer);
+
+ /*free buffer and the document */
+ /*xmlFree(buffer);*/
+ xmlFreeDoc(psDoc);
+
+ xmlCleanupParser();
+
+ return(MS_SUCCESS);
+}
+
+
+/************************************************************************/
+/* msWFSDescribeStoredQueries20 */
+/************************************************************************/
+
+int msWFSDescribeStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ xmlDocPtr psDoc;
+ xmlChar *buffer = NULL;
+ int size = 0;
+ msIOContext *context = NULL;
+ xmlNodePtr psRootNode;
+ char *xsi_schemaLocation = NULL;
+ int i, j;
+ int nStoredQueries = 0;
+ char** storedQueries = NULL;
+
+ xmlDocPtr psStoredQueryDoc;
+ xmlNodePtr psStoredQueryRoot;
+
+ if( params->pszStoredQueryId != NULL ) {
+ storedQueries = msStringSplit(params->pszStoredQueryId,',',&nStoredQueries);
+ for(i = 0; i < nStoredQueries; i++)
+ {
+ char* query = msWFSGetStoredQuery(map, storedQueries[i]);
+ if( query == NULL )
+ {
+ msSetError(MS_WFSERR, "Unknown stored query id: %s", "msWFSDescribeStoredQueries20()",
+ storedQueries[i]);
+ msFreeCharArray(storedQueries, nStoredQueries);
+ return msWFSException(map, "storedqueryid", MS_OWS_ERROR_INVALID_PARAMETER_VALUE, params->pszVersion);
+ }
+ msFree(query);
+ }
+ } else {
+ storedQueries = msWFSGetStoredQueries(map, &nStoredQueries);
+ }
+
+ /* -------------------------------------------------------------------- */
+ /* Create document. */
+ /* -------------------------------------------------------------------- */
+ psDoc = xmlNewDoc(BAD_CAST "1.0");
+
+ psRootNode = xmlNewNode(NULL, BAD_CAST "DescribeStoredQueriesResponse");
+
+ xmlDocSetRootElement(psDoc, psRootNode);
+
+ /* -------------------------------------------------------------------- */
+ /* Name spaces */
+ /* -------------------------------------------------------------------- */
+
+ /*default name space*/
+ xmlNewProp(psRootNode, BAD_CAST "xmlns", BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+
+ xmlSetNs(psRootNode, xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_WFS_20_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_WFS_NAMESPACE_PREFIX));
+
+ xmlNewNs(psRootNode, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_URI, BAD_CAST MS_OWSCOMMON_W3C_XSI_NAMESPACE_PREFIX);
+
+ /*schema*/
+ xsi_schemaLocation = msStrdup(MS_OWSCOMMON_WFS_20_NAMESPACE_URI);
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, " ");
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, msOWSGetSchemasLocation(map));
+ xsi_schemaLocation = msStringConcatenate(xsi_schemaLocation, MS_OWSCOMMON_WFS_20_SCHEMA_LOCATION);
+
+ xmlNewNsProp(psRootNode, NULL, BAD_CAST "xsi:schemaLocation", BAD_CAST xsi_schemaLocation);
+ free(xsi_schemaLocation);
+
+ /* -------------------------------------------------------------------- */
+ /* Add queries */
+ /* -------------------------------------------------------------------- */
+
+ for(i = 0; i < nStoredQueries; i++)
+ {
+ char* query = msWFSGetStoredQuery(map, storedQueries[i]);
+ if( query != NULL )
+ {
+ xmlNodePtr pChild;
+ xmlNs* ns;
+ xmlNodePtr psStoredQuery;
+
+ psStoredQueryDoc = xmlParseDoc((const xmlChar*) query);
+ if( psStoredQueryDoc == NULL )
+ {
+ char szMsg[256];
+ msFree(query);
+ snprintf(szMsg, sizeof(szMsg), "WARNING: Definition for stored query %s is invalid", storedQueries[i]);
+ xmlAddChild(psRootNode, xmlNewComment(BAD_CAST szMsg));
+ continue;
+ }
+
+ psStoredQueryRoot = xmlDocGetRootElement(psStoredQueryDoc);
+
+ psStoredQuery = xmlNewNode(NULL, BAD_CAST "StoredQueryDescription" );
+ xmlNewProp(psStoredQuery, BAD_CAST "id", BAD_CAST storedQueries[i]);
+ xmlAddChild(psRootNode, psStoredQuery);
+
+ ns = psStoredQueryRoot->nsDef;
+ while( ns != NULL ) {
+ xmlNewNs(psStoredQuery, BAD_CAST ns->href, BAD_CAST ns->prefix);
+ ns = ns->next;
+ }
+
+ pChild = psStoredQueryRoot->children;
+ while(pChild != NULL)
+ {
+ xmlNodePtr pNext = pChild->next;
+
+ if( pChild->type == XML_ELEMENT_NODE &&
+ strcmp((const char*) pChild->name, "QueryExpressionText") == 0 )
+ {
+ if( strcasecmp( storedQueries[i], URN_GET_FEATURE_BY_ID ) == 0 )
+ {
+ char** arrayNsPrefix = (char**) malloc( sizeof(char*) * map->numlayers );
+ char** arrayNsUri = (char**) malloc( sizeof(char*) * map->numlayers );
+ int arraysize = 0;
+ int k;
+ char* returnFeatureTypes = NULL;
+ xmlNodePtr psQueryExpressionText;
+
+ psQueryExpressionText = xmlNewNode(NULL, BAD_CAST "QueryExpressionText" );
+ xmlAddChild(psStoredQuery, psQueryExpressionText);
+ xmlNewProp(psQueryExpressionText, BAD_CAST "isPrivate", BAD_CAST "true");
+ xmlNewProp(psQueryExpressionText, BAD_CAST "language", BAD_CAST "urn:ogc:def:queryLanguage:OGC-WFS::WFS_QueryExpression");
+
+ for(j=0; j<map->numlayers; j++) {
+ layerObj *lp;
+ const char *user_namespace_prefix = MS_DEFAULT_NAMESPACE_PREFIX;
+ const char *user_namespace_uri = MS_DEFAULT_NAMESPACE_URI;
+ const char *value;
+ char szValue[256];
+
+ lp = GET_LAYER(map, j);
+
+ if (!msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers) ||
+ !msWFSIsLayerSupported(lp))
+ continue;
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_uri");
+ if(value) user_namespace_uri = value;
+
+ value = msOWSLookupMetadata(&(map->web.metadata), "FO", "namespace_prefix");
+ if(value) user_namespace_prefix = value;
+
+ for(k=0;k<arraysize;k++)
+ {
+ if( strcmp(arrayNsPrefix[k], user_namespace_prefix) == 0 )
+ break;
+ }
+ if(k == arraysize) {
+ arrayNsPrefix[arraysize] = msStrdup(user_namespace_prefix);
+ arrayNsUri[arraysize] = msStrdup(user_namespace_uri);
+ arraysize ++;
+
+ xmlNewNs(psQueryExpressionText, BAD_CAST user_namespace_uri, BAD_CAST user_namespace_prefix);
+ }
+
+ if( returnFeatureTypes != NULL )
+ returnFeatureTypes = msStringConcatenate(returnFeatureTypes, " ");
+ snprintf(szValue, sizeof(szValue), "%s:%s", user_namespace_prefix, lp->name);
+ returnFeatureTypes = msStringConcatenate(returnFeatureTypes, szValue);
+ }
+
+ xmlNewProp(psQueryExpressionText, BAD_CAST "returnFeatureTypes", BAD_CAST returnFeatureTypes);
+
+ msFree(returnFeatureTypes);
+ msFreeCharArray(arrayNsPrefix, arraysize);
+ msFreeCharArray(arrayNsUri, arraysize);
+ }
+ else
+ {
+ xmlChar* isPrivate = xmlGetProp(pChild, BAD_CAST "isPrivate");
+ if( isPrivate != NULL && strcmp((const char*)isPrivate, "true") == 0) {
+ xmlNodePtr pSubChild = xmlFirstElementChild(pChild);
+ xmlUnlinkNode(pSubChild);
+ xmlFreeNode(pSubChild);
+ }
+ xmlUnlinkNode(pChild);
+ xmlAddChild(psStoredQuery, pChild);
+ msFree(isPrivate);
+ }
+ }
+ else {
+ xmlUnlinkNode(pChild);
+ xmlAddChild(psStoredQuery, pChild);
+ }
+ pChild = pNext;
+ }
+
+ xmlReconciliateNs(psDoc, psStoredQuery);
+ xmlFreeDoc(psStoredQueryDoc);
+ msFree(query);
+ }
+ else
+ {
+ char szMsg[256];
+ snprintf(szMsg, sizeof(szMsg), "WARNING: Definition for stored query %s missing", storedQueries[i]);
+ xmlAddChild(psRootNode, xmlNewComment(BAD_CAST szMsg));
+ }
+ }
+ msFreeCharArray(storedQueries, nStoredQueries);
+
+ /* -------------------------------------------------------------------- */
+ /* Write out the document. */
+ /* -------------------------------------------------------------------- */
+
+ if( msIO_needBinaryStdout() == MS_FAILURE )
+ return MS_FAILURE;
+
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
+ msIO_sendHeaders();
+
+ context = msIO_getHandler(stdout);
+
+ xmlDocDumpFormatMemoryEnc(psDoc, &buffer, &size, ("UTF-8"), 1);
+ msIO_contextWrite(context, buffer, size);
+ xmlFree(buffer);
+
+ /*free buffer and the document */
+ /*xmlFree(buffer);*/
+ xmlFreeDoc(psDoc);
+
+ xmlCleanupParser();
+
+ return(MS_SUCCESS);
+}
+
+#endif /* defined(USE_WFS_SVR) && defined(USE_LIBXML2) */
+
+#if defined(USE_WFS_SVR) && !defined(USE_LIBXML2)
+
+int msWFSException20(mapObj *map, const char *locator,
+ const char *exceptionCode)
+{
+ /* fallback to reporting using 1.0 style exceptions. */
+ return msWFSException( map, locator, exceptionCode, "1.0.0" );
+}
+
+int msWFSGetCapabilities20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+
+{
+ msSetError( MS_WFSERR,
+ "WFS 2.0 request made, but mapserver requires libxml2 for WFS 2.0 services and this is not configured.",
+ "msWFSGetCapabilities20()" );
+
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
+}
+
+int msWFSListStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ msSetError( MS_WFSERR,
+ "WFS 2.0 request made, but mapserver requires libxml2 for WFS 2.0 services and this is not configured.",
+ "msWFSListStoredQueries20()");
+
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
+}
+
+int msWFSDescribeStoredQueries20(mapObj *map, wfsParamsObj *params,
+ cgiRequestObj *req, owsRequestObj *ows_request)
+{
+ msSetError( MS_WFSERR,
+ "WFS 2.0 request made, but mapserver requires libxml2 for WFS 2.0 services and this is not configured.",
+ "msWFSDescribeStoredQueries20()" );
+
+ return msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
+}
+
+char* msWFSGetResolvedStoredQuery20(mapObj *map,
+ wfsParamsObj *params,
+ const char* id,
+ hashTableObj* hashTable)
+{
+ msSetError( MS_WFSERR,
+ "WFS 2.0 request made, but mapserver requires libxml2 for WFS 2.0 services and this is not configured.",
+ "msWFSGetResolvedStoredQuery20()" );
+
+ msWFSException11(map, "mapserv", MS_OWS_ERROR_NO_APPLICABLE_CODE, params->pszVersion);
+ return NULL;
+}
+
+#endif /* defined(USE_WFS_SVR) && !defined(USE_LIBXML2) */
diff --git a/mapwfslayer.c b/mapwfslayer.c
index 0b73c48..6eca05a 100644
--- a/mapwfslayer.c
+++ b/mapwfslayer.c
@@ -416,8 +416,9 @@ static char *msBuildWFSLayerGetURL(mapObj *map, layerObj *lp, rectObj *bbox,
/* mutually exclusive. */
/* -------------------------------------------------------------------- */
if (psParams->pszFilter) {
- snprintf(pszURL + strlen(pszURL), bufferSize-strlen(pszURL), "&FILTER=%s",
- msEncodeUrl(psParams->pszFilter));
+ char *encoded_filter = msEncodeUrl(psParams->pszFilter);
+ snprintf(pszURL + strlen(pszURL), bufferSize-strlen(pszURL), "&FILTER=%s",encoded_filter);
+ free(encoded_filter);
} else {
/*
* take care about the axis order for WFS 1.1
@@ -654,8 +655,13 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
pasReqInfo[(*numRequests)].debug = lp->debug;
if (msHTTPAuthProxySetup(&(map->web.metadata), &(lp->metadata),
- pasReqInfo, *numRequests, map, "FO") != MS_SUCCESS)
+ pasReqInfo, *numRequests, map, "FO") != MS_SUCCESS) {
+ if (psParams) {
+ msWFSFreeParamsObj(psParams);
+ free(psParams);
+ }
return MS_FAILURE;
+ }
/* ------------------------------------------------------------------
* Pre-Open the layer now, (i.e. alloc and fill msWFSLayerInfo inside
@@ -684,7 +690,7 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
if (psParams) {
msWFSFreeParamsObj(psParams);
- psParams = NULL;
+ free(psParams);
}
return nStatus;
diff --git a/mapwms.c b/mapwms.c
index 5568970..7418bbf 100644
--- a/mapwms.c
+++ b/mapwms.c
@@ -38,6 +38,7 @@
#include "mapogcsld.h"
#include "mapogcfilter.h"
+#include "mapowscommon.h"
#include "maptime.h"
#include "mapproject.h"
@@ -50,8 +51,6 @@
#include <process.h>
#endif
-
-
/* ==================================================================
* WMS Server stuff.
* ================================================================== */
@@ -72,7 +71,6 @@ int ogrEnabled = 0;
int msWMSException(mapObj *map, int nVersion, const char *exception_code,
char *wms_exception_format)
{
- const char *encoding;
char *schemalocation = NULL;
/* Default to WMS 1.3.0 exceptions if version not set yet */
@@ -82,8 +80,6 @@ int msWMSException(mapObj *map, int nVersion, const char *exception_code,
/* get scheam location */
schemalocation = msEncodeHTMLEntities( msOWSGetSchemasLocation(map) );
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
/* Establish default exception format depending on VERSION */
if (wms_exception_format == NULL) {
if (nVersion <= OWS_1_0_0)
@@ -110,10 +106,7 @@ int msWMSException(mapObj *map, int nVersion, const char *exception_code,
msWriteErrorImage(map, NULL, blank);
} else if (strcasecmp(wms_exception_format, "WMS_XML") == 0) { /* Only in V1.0.0 */
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
msIO_printf("<WMTException version=\"1.0.0\">\n");
@@ -124,68 +117,40 @@ int msWMSException(mapObj *map, int nVersion, const char *exception_code,
{
if (nVersion <= OWS_1_0_7) {
/* In V1.0.1 to 1.0.7, the MIME type was text/xml */
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
msIO_printf("<!DOCTYPE ServiceExceptionReport SYSTEM \"http://www.digitalearth.gov/wmt/xml/exception_1_0_1.dtd\">\n");
msIO_printf("<ServiceExceptionReport version=\"1.0.1\">\n");
} else if (nVersion <= OWS_1_1_0) {
/* In V1.1.0 and later, we have OGC-specific MIME types */
/* we cannot return anything else than application/vnd.ogc.se_xml here. */
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
-
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
msIO_printf("<!DOCTYPE ServiceExceptionReport SYSTEM \"%s/wms/1.1.0/exception_1_1_0.dtd\">\n",schemalocation);
msIO_printf("<ServiceExceptionReport version=\"1.1.0\">\n");
} else if (nVersion <= OWS_1_1_1) { /* 1.1.1 */
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
msIO_printf("<!DOCTYPE ServiceExceptionReport SYSTEM \"%s/wms/1.1.1/exception_1_1_1.dtd\">\n", schemalocation);
msIO_printf("<ServiceExceptionReport version=\"1.1.1\">\n");
} else { /*1.3.0*/
if (strcasecmp(wms_exception_format, "application/vnd.ogc.se_xml") == 0) {
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.se_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.se_xml; charset=UTF-8");
} else {
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
}
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
msIO_printf("<ServiceExceptionReport version=\"1.3.0\" xmlns=\"http://www.opengis.net/ogc\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/ogc %s/wms/1.3.0/exceptions_1_3_0.xsd\">\n",
schemalocation);
}
@@ -220,8 +185,9 @@ int msWMSSetTimePattern(const char *timepatternstring, char *timestring, int che
atimes = msStringSplit(timestring, ',', &numtimes);
/* get the pattern to use */
- if (numtimes>0) {
- patterns = msStringSplit(timepatternstring, ',', &numpatterns);
+ if (numtimes > 0) {
+ patterns = msStringSplit(timepatternstring, ',', &numpatterns);
+
for (j=0; j<numtimes;++j) {
ranges = msStringSplit(atimes[j], '/', &numranges);
for (k=0; k<numranges;++k) {
@@ -231,15 +197,14 @@ int msWMSSetTimePattern(const char *timepatternstring, char *timestring, int che
msStringTrimBlanks(patterns[i]);
tmpstr = msStringTrimLeft(patterns[i]);
if (msTimeMatchPattern(ranges[k], tmpstr) == MS_TRUE) {
- if (!checkonly) msSetLimitedPattersToUse(tmpstr);
+ if (!checkonly) msSetLimitedPatternsToUse(tmpstr);
match = MS_TRUE;
break;
}
}
}
if (match == MS_FALSE) {
- msSetError(MS_WMSERR, "Time value %s given does not match the time format pattern.",
- "msWMSSetTimePattern", ranges[k]);
+ msSetError(MS_WMSERR, "Time value %s given does not match the time format pattern.", "msWMSSetTimePattern", ranges[k]);
ret = MS_FAILURE;
break;
}
@@ -250,9 +215,8 @@ int msWMSSetTimePattern(const char *timepatternstring, char *timestring, int che
}
msFreeCharArray(patterns, numpatterns);
- msFreeCharArray(atimes, numtimes);
-
}
+ msFreeCharArray(atimes, numtimes);
}
return ret;
@@ -265,24 +229,22 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
{
int i=0;
layerObj *lp = NULL;
- const char *timeextent, *timefield, *timedefault, *timpattern = NULL;
+ const char *timeextent, *timefield, *timedefault, *timepattern = NULL;
if (map) {
- timpattern = msOWSLookupMetadata(&(map->web.metadata), "MO",
- "timeformat");
-
+ timepattern = msOWSLookupMetadata(&(map->web.metadata), "MO", "timeformat");
+
for (i=0; i<map->numlayers; i++) {
lp = (GET_LAYER(map, i));
if (lp->status != MS_ON && lp->status != MS_DEFAULT)
continue;
+
/* check if the layer is time aware */
- timeextent = msOWSLookupMetadata(&(lp->metadata), "MO",
- "timeextent");
- timefield = msOWSLookupMetadata(&(lp->metadata), "MO",
- "timeitem");
- timedefault = msOWSLookupMetadata(&(lp->metadata), "MO",
- "timedefault");
+ timeextent = msOWSLookupMetadata(&(lp->metadata), "MO", "timeextent");
+ timefield = msOWSLookupMetadata(&(lp->metadata), "MO", "timeitem");
+ timedefault = msOWSLookupMetadata(&(lp->metadata), "MO", "timedefault");
+
if (timeextent && timefield) {
/* check to see if the time value is given. If not */
/* use default time. If default time is not available */
@@ -295,22 +257,22 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
if (msValidateTimeValue((char *)timedefault, timeextent) == MS_FALSE) {
msSetError(MS_WMSERR, "No Time value was given, and the default time value %s is invalid or outside the time extent defined %s", "msWMSApplyTime", timedefault, timeextent);
/* return MS_FALSE; */
- return msWMSException(map, version,
- "InvalidDimensionValue", wms_exception_format);
+ return msWMSException(map, version, "InvalidDimensionValue", wms_exception_format);
}
msLayerSetTimeFilter(lp, timedefault, timefield);
}
} else {
- /* check to see if there is a list of possible patterns defined */
- /* if it is the case, use it to set the time pattern to use */
- /* for the request.
-
- Last argument is set to TRUE (checkonly) to not trigger the
- patterns info setting.. to only apply the wms_timeformats on the
- user request values, not the mapfile values. */
- if (timpattern && time && strlen(time) > 0)
- if (msWMSSetTimePattern(timpattern, time, MS_TRUE) == MS_FAILURE)
+ /*
+ ** Check to see if there is a list of possible patterns defined. If it is the case, use
+ ** it to set the time pattern to use for the request.
+ **
+ ** Last argument is set to TRUE (checkonly) to not trigger the patterns info setting, rather
+ ** to only apply the wms_timeformats on the user request values, not the mapfile values.
+ */
+ if (timepattern && time && strlen(time) > 0) {
+ if (msWMSSetTimePattern(timepattern, time, MS_TRUE) == MS_FAILURE)
return msWMSException(map, version,"InvalidDimensionValue", wms_exception_format);
+ }
/* check if given time is in the range */
if (msValidateTimeValue(time, timeextent) == MS_FALSE) {
@@ -340,10 +302,10 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
/* last argument is MS_FALSE to trigger a method call that set the patterns
info. some drivers use it */
- if (timpattern && time && strlen(time) > 0)
- if (msWMSSetTimePattern(timpattern, time, MS_FALSE) == MS_FAILURE)
- return msWMSException(map, version,"InvalidDimensionValue", wms_exception_format);
-
+ if (timepattern && time && strlen(time) > 0) {
+ if (msWMSSetTimePattern(timepattern, time, MS_FALSE) == MS_FAILURE)
+ return msWMSException(map, version, "InvalidDimensionValue", wms_exception_format);
+ }
}
return MS_SUCCESS;
@@ -413,17 +375,16 @@ void msWMSPrepareNestedGroups(mapObj* map, int nVersion, char*** nestedGroups, i
int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int forcecharcter)
{
char **extents=NULL, **ranges=NULL, **onerange=NULL;
- int numextents;
+ int numextents, numranges, numonerange;
char **aextentvalues = NULL;
int nextentvalues=0;
pointObj *aextentranges=NULL;
int nextentranges=0;
int isextentavalue = MS_FALSE, isextentarange=MS_FALSE;
- int i,j, ntmp;
+ int i,j,status=MS_FALSE;
char **uservalues=NULL;
int numuservalues=0;
- char *stmp = NULL;
int ischaracter = MS_FALSE;
float minval, maxval,currentval,mincurrentval,maxcurrentval, mincurrentrange, maxcurrentrange;
@@ -456,9 +417,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
ischaracter= !FLTIsNumeric((char *)dimensionextent);
} else {
- ntmp = -1;
- ranges = msStringSplit (dimensionextent, '/', &ntmp);
- if(ranges && (ntmp == 2 || ntmp == 3)) {
+ ranges = msStringSplit (dimensionextent, '/', &numranges);
+ if(ranges && (numranges == 2 || numranges == 3)) {
/*single range*/
isextentarange = MS_TRUE;
aextentranges = msSmallMalloc(sizeof(pointObj));
@@ -468,10 +428,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
/*ranges should be numeric*/
ischaracter = MS_FALSE;
}
- if (ranges && ntmp > 0) {
- msFreeCharArray(ranges, ntmp);
- ranges = NULL;
- }
+ msFreeCharArray(ranges, numranges);
+ ranges = NULL;
}
} else if (numextents > 1) { /*check if it is muliple values or mutliple ranges*/
if (strstr(dimensionextent, "/") == NULL) {
@@ -479,10 +437,9 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
isextentavalue = MS_TRUE;
aextentvalues = (char **)msSmallMalloc(sizeof(char *)*numextents);
for (i=0; i<numextents; i++) {
- stmp = msStrdup(extents[i]);
+ char *stmp = msStrdup(extents[i]);
msStringTrim(stmp);
- aextentvalues[i] = msStrdup(stmp);
- msFree(stmp);
+ aextentvalues[i] = stmp;
}
nextentvalues = numextents;
if (!forcecharcter)
@@ -496,8 +453,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
nextentranges=0;
for (i=0; i<numextents; i++) {
- onerange = msStringSplit(extents[i], '/', &ntmp);
- if (!onerange || (ntmp != 2 && ntmp != 3)) {
+ onerange = msStringSplit(extents[i], '/', &numonerange);
+ if (!onerange || (numonerange != 2 && numonerange != 3)) {
isvalidextent = MS_FALSE;
break;
}
@@ -506,13 +463,12 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
aextentranges[nextentranges].x = atof(onerange[0]);
aextentranges[nextentranges++].y = atof(onerange[1]);
}
- if (onerange && ntmp > 0 ) {
- msFreeCharArray(onerange, ntmp);
- onerange = NULL;
- }
+ msFreeCharArray(onerange, numonerange);
+ onerange = NULL;
}
if (!isvalidextent) {
msFree(aextentranges);
+ aextentranges = NULL;
nextentranges = 0;
isextentarange = MS_FALSE;
}
@@ -529,7 +485,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
/* make sure that we got a valid extent*/
if (!isextentavalue && !isextentarange) {
- return MS_FALSE;
+ status = MS_FALSE;
+ goto dimension_cleanup;
}
/*for the extent of the dimesion, we support
@@ -542,8 +499,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
if (numuservalues == 1) {
/*user iput=single*/
/*is it descret or range*/
- ranges = msStringSplit(uservalues[0], '/', &ntmp);
- if (ntmp == 1) { /*discrete*/
+ ranges = msStringSplit(uservalues[0], '/', &numranges);
+ if (numranges == 1) { /*discrete*/
if (isextentavalue) {
/*single user value, single/multiple values extent*/
for (i=0; i<nextentvalues; i++) {
@@ -569,7 +526,7 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
}
}
}
- } else if (ntmp == 2 || ntmp == 3) { /*range*/
+ } else if (numranges == 2 || numranges == 3) { /*range*/
/*user input=single range. In this case the extents must
be of a range type.*/
mincurrentval = atof(ranges[0]);
@@ -587,8 +544,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
}
}
}
- if (ranges && ntmp > 0)
- msFreeCharArray(ranges, ntmp);
+ msFreeCharArray(ranges, numranges);
+ ranges = NULL;
} else if (numuservalues > 1) { /*user input=multiple*/
if (strstr(value, "/") == NULL) {
/*user input=multiple value*/
@@ -635,8 +592,8 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
for (i=0; i<numuservalues; i++) {
/*each ranges should be valid*/
- onerange = msStringSplit(uservalues[i], '/', &ntmp);
- if (ntmp == 2 || ntmp == 3) {
+ onerange = msStringSplit(uservalues[i], '/', &numonerange);
+ if (numonerange == 2 || numonerange == 3) {
mincurrentval = atof(onerange[0]);
maxcurrentval = atof(onerange[1]);
@@ -654,36 +611,45 @@ int msWMSValidateDimensionValue(char *value, const char *dimensionextent, int fo
}
if (j == nextentranges) {
valueisvalid = MS_FALSE;
- msFreeCharArray(onerange, ntmp);
+ msFreeCharArray(onerange, numonerange);
+ onerange = NULL;
break;
}
}
} else {
valueisvalid = MS_FALSE;
}
- msFreeCharArray(onerange, ntmp);
+ msFreeCharArray(onerange, numonerange);
+ onerange = NULL;
}
uservaluevalid = valueisvalid;
}
}
- if(uservalues && numuservalues > 0)
+ if(uservaluevalid)
+ status = MS_TRUE;
+
+dimension_cleanup:
+ if(ranges)
+ msFreeCharArray(ranges, numranges);
+ if(onerange)
+ msFreeCharArray(onerange, numonerange);
+ if(extents)
+ msFreeCharArray(extents, numextents);
+ if(uservalues)
msFreeCharArray(uservalues, numuservalues);
- if (aextentvalues && nextentvalues > 0) {
+ if (aextentvalues) {
for (i=0; i<nextentvalues; i++)
msFree(aextentvalues[i]);
msFree(aextentvalues);
}
- if(aextentranges && nextentranges > 0) {
+ if(aextentranges) {
msFree(aextentranges);
}
- if(uservaluevalid)
- return MS_TRUE;
-
- return MS_FALSE;
+ return status;
}
@@ -1091,6 +1057,7 @@ int msWMSLoadGetMapParams(mapObj *map, int nVersion,
(strncasecmp(format->driver, "GD/", 3) != 0 &&
strncasecmp(format->driver, "GDAL/", 5) != 0 &&
strncasecmp(format->driver, "AGG/", 4) != 0 &&
+ strncasecmp(format->driver, "UTFGRID", 7) != 0 &&
strncasecmp(format->driver, "CAIRO/", 6) != 0 &&
strncasecmp(format->driver, "OGL/", 4) != 0 &&
strncasecmp(format->driver, "KML", 3) != 0 &&
@@ -1407,7 +1374,7 @@ this request. Check wms/ows_enable_request settings.",
** have a projection. This will prevent problems when users forget to
** explicitly set a projection on all layers in a WMS mapfile.
*/
- if ((srsbuffer != NULL && strlen(srsbuffer) > 1) || nonsquare_enabled) {
+ if (strlen(srsbuffer) > 1 || nonsquare_enabled) {
projectionObj newProj;
if (map->projection.numargs <= 0) {
@@ -1427,7 +1394,7 @@ this request. Check wms/ows_enable_request settings.",
}
msInitProjection(&newProj);
- if (srsbuffer != NULL && strlen(srsbuffer) > 1) {
+ if (strlen(srsbuffer) > 1) {
int nTmp;
if (nVersion >= OWS_1_3_0)
@@ -1442,36 +1409,14 @@ this request. Check wms/ows_enable_request settings.",
if (nonsquare_enabled ||
msProjectionsDiffer(&(map->projection), &newProj)) {
- char *original_srs = NULL;
-
- for(i=0; i<map->numlayers; i++) {
- if (GET_LAYER(map, i)->projection.numargs <= 0 &&
- GET_LAYER(map, i)->status != MS_OFF &&
- GET_LAYER(map, i)->transform == MS_TRUE) {
- /* This layer is turned on and needs a projection */
-
- /* Fetch main map projection string only now that we need it */
- if (original_srs == NULL)
- original_srs = msGetProjectionString(&(map->projection));
-
- if (msLoadProjectionString(&(GET_LAYER(map, i)->projection),
- original_srs) != 0) {
- msFreeProjection(&newProj);
- return msWMSException(map, nVersion, NULL, wms_exception_format);
- }
- GET_LAYER(map, i)->project = MS_TRUE;
- }
- }
-
- msFree(original_srs);
+ msMapSetLayerProjections(map);
}
-
msFreeProjection(&newProj);
}
/* apply the srs to the map file. This is only done after validating */
/* that the srs given as parameter is valid for all layers */
- if (srsbuffer != NULL && strlen(srsbuffer) > 1) {
+ if (strlen(srsbuffer) > 1) {
int nTmp;
msFreeProjection(&map->projection);
msInitProjection(&map->projection);
@@ -2260,8 +2205,8 @@ int msDumpLayer(mapObj *map, layerObj *lp, int nVersion, const char *script_url_
msFree(pszDimensionDefaultName);
}
- msFreeCharArray(tokens, ntokens);
}
+ msFreeCharArray(tokens, ntokens);
}
@@ -2423,15 +2368,11 @@ int msDumpLayer(mapObj *map, layerObj *lp, int nVersion, const char *script_url_
bufferSize = strlen(script_url_encoded)+300;
legendurl = (char*)msSmallMalloc(bufferSize);
-#if defined USE_GD_PNG || defined USE_PNG
+#if defined USE_PNG
mimetype = msEncodeHTMLEntities("image/png");
#endif
-#if defined USE_GD_GIF
- if (!mimetype)
- mimetype = msEncodeHTMLEntities("image/gif");
-#endif
-#if defined USE_GD_JPEG || defined USE_JPEG
+#if defined USE_JPEG
if (!mimetype)
mimetype = msEncodeHTMLEntities("image/jpeg");
#endif
@@ -2705,7 +2646,6 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
char *schemalocation = NULL;
const char *updatesequence=NULL;
const char *sldenabled=NULL;
- const char *encoding;
const char *layerlimit=NULL;
char *pszTmp=NULL;
int i;
@@ -2718,8 +2658,6 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
sldenabled = msOWSLookupMetadata(&(map->web.metadata), "MO", "sld_enabled");
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
if (sldenabled == NULL)
sldenabled = "true";
@@ -2770,11 +2708,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
validated_language = msOWSGetLanguageFromList(map, "MO", requested_language);
if (validated_language != NULL) {
- for(i=0; i<map->numlayers; i++) {
- layerObj *layer = GET_LAYER(map, i);
- if(layer->data) layer->data = msCaseReplaceSubstring(layer->data, "%language%", validated_language);
- if(layer->connection) layer->connection = msCaseReplaceSubstring(layer->connection, "%language%", validated_language);
- }
+ msMapSetLanguageSpecificConnection(map, validated_language);
}
/* We need this server's onlineresource. */
@@ -2784,25 +2718,18 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
if ((script_url=msOWSGetOnlineResource2(map, "MO", "onlineresource", req, validated_language)) == NULL ||
(script_url_encoded = msEncodeHTMLEntities(script_url)) == NULL) {
msFree(validated_language);
+ msFree(schemalocation);
+ msFree(dtd_url);
return msWMSException(map, nVersion, NULL, wms_exception_format);
}
if (nVersion <= OWS_1_0_7 || nVersion >= OWS_1_3_0) /* 1.0.0 to 1.0.7 and >=1.3.0*/
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
else /* 1.1.0 and later */
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.wms_xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.wms_xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.wms_xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\" standalone=\"no\" ?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>\n");
/*TODO review wms1.3.0*/
if ( nVersion < OWS_1_3_0) {
@@ -2841,8 +2768,8 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
" xmlns:ms=\"http://mapserver.gis.umn.edu/mapserver\"");
if ( msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
- msIO_printf(" xmlns:inspire_common=\"http://inspire.ec.europa.eu/schemas/common/1.0\""
- " xmlns:inspire_vs=\"http://inspire.ec.europa.eu/schemas/inspire_vs/1.0\"" );
+ msIO_printf(" xmlns:" MS_INSPIRE_COMMON_NAMESPACE_PREFIX "=\"" MS_INSPIRE_COMMON_NAMESPACE_URI "\""
+ " xmlns:" MS_INSPIRE_VS_NAMESPACE_PREFIX "=\"" MS_INSPIRE_VS_NAMESPACE_URI "\"" );
}
msIO_printf(" xsi:schemaLocation=\"http://www.opengis.net/wms %s/wms/%s/capabilities_1_3_0.xsd "
@@ -2850,8 +2777,10 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
msOWSGetSchemasLocation(map), msOWSGetVersionString(nVersion, szVersionBuf), msOWSGetSchemasLocation(map));
if ( msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
- msIO_printf(" http://inspire.ec.europa.eu/schemas/inspire_vs/1.0 "
- " http://inspire.ec.europa.eu/schemas/inspire_vs/1.0/inspire_vs.xsd");
+ char* inspireschemalocation = msEncodeHTMLEntities( msOWSGetInspireSchemasLocation(map) );
+ msIO_printf(" " MS_INSPIRE_VS_NAMESPACE_URI " "
+ " %s%s", inspireschemalocation, MS_INSPIRE_VS_SCHEMA_LOCATION);
+ free(inspireschemalocation);
}
msIO_printf(" http://mapserver.gis.umn.edu/mapserver %sservice=WMS&version=1.3.0&request=GetSchemaExtension\"",
@@ -2931,13 +2860,10 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
if (msOWSRequestIsEnabled(map, NULL, "M", "GetMap", MS_FALSE))
msWMSPrintRequestCap(nVersion, "Map", script_url_encoded, ""
-#ifdef USE_GD_GIF
- "<GIF />"
-#endif
-#if defined USE_GD_PNG || defined USE_PNG
+#if defined USE_PNG
"<PNG />"
#endif
-#if defined USE_GD_JPEG || defined USE_JPEG
+#if defined USE_JPEG
"<JPEG />"
#endif
"<SVG />"
@@ -3099,7 +3025,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
/* INSPIRE extended capabilities for WMS 1.1.1 */
if (nVersion == OWS_1_1_1 && msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
msIO_printf(" <VendorSpecificCapabilities>\n");
- msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", validated_language, OWS_WMS);
+ msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", NULL, validated_language, OWS_WMS);
msIO_printf(" </VendorSpecificCapabilities>\n");
} else {
msIO_printf(" <VendorSpecificCapabilities />\n"); /* nothing yet */
@@ -3118,7 +3044,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
/* INSPIRE extended capabilities for WMS 1.3.0 */
if (nVersion >= OWS_1_3_0 && msOWSLookupMetadata(&(map->web.metadata), "MO", "inspire_capabilities") ) {
- msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", validated_language, OWS_WMS);
+ msOWSPrintInspireCommonExtendedCapabilities(stdout, map, "MO", OWS_WARN, "inspire_vs:ExtendedCapabilities", NULL, validated_language, OWS_WMS);
}
/* Top-level layer with map extents and SRS, encloses all map layers */
@@ -3354,7 +3280,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
/* We'll use this array of booleans to track which layer/group have been */
/* processed already */
- pabLayerProcessed = (char *)msSmallCalloc(map->numlayers, sizeof(char*));
+ pabLayerProcessed = (char *)msSmallCalloc(map->numlayers, sizeof(char));
/* Mark disabled layers as processed to prevent from being displayed in nested groups (#4533)*/
for(i=0; i<map->numlayers; i++) {
@@ -3701,7 +3627,6 @@ int msWMSGetMap(mapObj *map, int nVersion, char **names, char **values, int nume
(GET_LAYER(map, i)->type == MS_LAYER_POINT ||
GET_LAYER(map, i)->type == MS_LAYER_LINE ||
GET_LAYER(map, i)->type == MS_LAYER_POLYGON ||
- GET_LAYER(map, i)->type == MS_LAYER_ANNOTATION ||
GET_LAYER(map, i)->type == MS_LAYER_TILEINDEX))
{
@@ -3728,7 +3653,11 @@ int msWMSGetMap(mapObj *map, int nVersion, char **names, char **values, int nume
}
if (strcasecmp(map->imagetype, "application/openlayers")!=0) {
- msIO_setHeader("Content-Type", "%s", MS_IMAGE_MIME_TYPE(map->outputformat));
+ if(!strcmp(MS_IMAGE_MIME_TYPE(map->outputformat), "application/json")) {
+ msIO_setHeader("Content-Type","application/json; charset=utf-8");
+ } else {
+ msIO_setHeader("Content-Type", "%s", MS_IMAGE_MIME_TYPE(map->outputformat));
+ }
msIO_sendHeaders();
if (msSaveImage(map, img, NULL) != MS_SUCCESS) {
msFreeImage(img);
@@ -3866,7 +3795,6 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
double cellx, celly;
errorObj *ms_error = msGetErrorObj();
int query_status=MS_NOERR;
- const char *encoding;
int query_layer = 0;
const char *format_list=NULL;
int valid_format=MS_FALSE;
@@ -3879,14 +3807,12 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
int *numNestedGroups = NULL;
int *isUsedInNestedGroup = NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
nestedGroups = (char***)msSmallCalloc(map->numlayers, sizeof(char**));
numNestedGroups = (int*)msSmallCalloc(map->numlayers, sizeof(int));
isUsedInNestedGroup = (int*)msSmallCalloc(map->numlayers, sizeof(int));
msWMSPrepareNestedGroups(map, nVersion, nestedGroups, numNestedGroups, isUsedInNestedGroup);
- for(i=0; map && i<numentries; i++) {
+ for(i=0; i<numentries; i++) {
if(strcasecmp(names[i], "QUERY_LAYERS") == 0) {
char **layers;
int numlayers, j, k;
@@ -4102,10 +4028,7 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
/* MIME response... we're free to use any valid MIME type */
int numresults = 0;
- if (encoding)
- msIO_setHeader("Content-Type","text/plain; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/plain");
+ msIO_setHeader("Content-Type","text/plain; charset=UTF-8");
msIO_sendHeaders();
msIO_printf("GetFeatureInfo results:\n");
@@ -4117,15 +4040,9 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
strcasecmp(info_format, "application/vnd.ogc.gml") == 0) {
if (nVersion <= OWS_1_0_7) /* 1.0.0 to 1.0.7 */
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
else /* 1.1.0 and later */
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.gml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.gml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.gml; charset=UTF-8");
msIO_sendHeaders();
msGMLWriteQuery(map, NULL, "MGO"); /* default is stdout */
@@ -4182,15 +4099,13 @@ int msWMSDescribeLayer(mapObj *map, int nVersion, char **names,
char *schemalocation = NULL;
char *version = NULL;
char *sld_version = NULL;
- const char *encoding;
char ***nestedGroups = NULL;
int *numNestedGroups = NULL;
int *isUsedInNestedGroup = NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
for(i=0; map && i<numentries; i++) {
if(strcasecmp(names[i], "LAYERS") == 0) {
+ if(layers) msFreeCharArray(layers, numlayers); /* free previous occurence of layers array if more than one was provided */
layers = msStringSplit(values[i], ',', &numlayers);
}
if(strcasecmp(names[i], "VERSION") == 0) {
@@ -4210,16 +4125,10 @@ int msWMSDescribeLayer(mapObj *map, int nVersion, char **names,
return msWMSException(map, nVersion, "InvalidParameterValue", wms_exception_format);
}
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\"?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\"?>\n");
schemalocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
if (nVersion < OWS_1_3_0) {
@@ -4711,20 +4620,17 @@ int msWMSGetStyles(mapObj *map, int nVersion, char **names,
int numlayers = 0;
char **layers = NULL;
char *sld = NULL;
- const char *encoding;
char ***nestedGroups = NULL;
int *numNestedGroups = NULL;
int *isUsedInNestedGroup = NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
nestedGroups = (char***)msSmallCalloc(map->numlayers, sizeof(char**));
numNestedGroups = (int*)msSmallCalloc(map->numlayers, sizeof(int));
isUsedInNestedGroup = (int*)msSmallCalloc(map->numlayers, sizeof(int));
msWMSPrepareNestedGroups(map, nVersion, nestedGroups, numNestedGroups, isUsedInNestedGroup);
- for(i=0; map && i<numentries; i++) {
+ for(i=0; i<numentries; i++) {
/* getMap parameters */
if (strcasecmp(names[i], "LAYERS") == 0) {
layers = msStringSplit(values[i], ',', &numlayers);
@@ -4775,18 +4681,12 @@ this request. Check wms/ows_enable_request settings.",
}
if (nVersion <= OWS_1_1_1) {
- if (encoding)
- msIO_setHeader("Content-Type","application/vnd.ogc.sld+xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","application/vnd.ogc.sld+xml");
+ msIO_setHeader("Content-Type","application/vnd.ogc.sld+xml; charset=UTF-8");
msIO_sendHeaders();
sld = msSLDGenerateSLD(map, -1, "1.0.0");
} else {
/*for wms 1.3.0 generate a 1.1 sld*/
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
sld = msSLDGenerateSLD(map, -1, "1.1.0");
}
@@ -4801,22 +4701,13 @@ this request. Check wms/ows_enable_request settings.",
int msWMSGetSchemaExtension(mapObj *map)
{
char *schemalocation = NULL;
- const char *encoding;
schemalocation = msEncodeHTMLEntities(msOWSGetSchemasLocation(map));
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
- msOWSPrintEncodeMetadata(stdout, &(map->web.metadata),
- "MO", "encoding", OWS_NOERR,
- "<?xml version='1.0' encoding=\"%s\"?>\n",
- "ISO-8859-1");
+ msIO_printf("<?xml version='1.0' encoding=\"UTF-8\"?>\n");
msIO_printf("<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" xmlns:wms=\"http://www.opengis.net/wms\" xmlns:ms=\"http://mapserver.gis.umn.edu/mapserver\" targetNamespace=\"http://mapserver.gis.umn.edu/mapserver\" elementFormDefault=\"qualified\" version=\"1.0.0\">\n");
msIO_printf(" <import namespace=\"http://www.opengis.net/wms\" schemaLocation=\"%s/wms/1.3.0/capabilities_1_3_0.xsd\"/>\n", schemalocation);
msIO_printf(" <element name=\"GetStyles\" type=\"wms:OperationType\" substitutionGroup=\"wms:_ExtendedOperation\"/>\n");
@@ -4843,12 +4734,9 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
#ifdef USE_WMS_SVR
int i, status, nVersion=OWS_VERSION_NOTSET, isContentDependantLegend = 0;
const char *version=NULL, *request=NULL, *service=NULL, *format=NULL, *updatesequence=NULL, *language=NULL;
- const char * encoding;
char *wms_exception_format = NULL;
char *validated_language = NULL;
- encoding = msOWSLookupMetadata(&(map->web.metadata), "MO", "encoding");
-
/*
** Process Params common to all requests
*/
@@ -4962,10 +4850,7 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
if ((status = msOWSMakeAllLayersUnique(map)) != MS_SUCCESS)
return msWMSException(map, nVersion, NULL, wms_exception_format);
- if (encoding)
- msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/xml");
+ msIO_setHeader("Content-Type","text/xml; charset=UTF-8");
msIO_sendHeaders();
if ( msWriteMapContext(map, stdout) != MS_SUCCESS )
@@ -4975,10 +4860,7 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
} else if (request && strcasecmp(request, "GetMap") == 0 &&
format && strcasecmp(format, "image/txt") == 0) {
/* Until someone adds full support for ASCII graphics this should do. ;) */
- if (encoding)
- msIO_setHeader("Content-Type","text/plain; charset=%s", encoding);
- else
- msIO_setHeader("Content-Type","text/plain");
+ msIO_setHeader("Content-Type","text/plain; charset=UTF-8");
msIO_sendHeaders();
msIO_printf(".\n ,,ggddY\"\"\"Ybbgg,,\n ,agd888b,_ "
"\"Y8, ___'\"\"Ybga,\n ,gdP\"\"88888888baa,.\"\"8b \""
@@ -5105,11 +4987,7 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
/* This function owns validated_language, so remember to free it later*/
validated_language = msOWSGetLanguageFromList(map, "MO", language);
if (validated_language != NULL) {
- for(i=0; i<map->numlayers; i++) {
- layerObj *layer = GET_LAYER(map, i);
- if(layer->data) layer->data = msCaseReplaceSubstring(layer->data, "%language%", validated_language);
- if(layer->connection) layer->connection = msCaseReplaceSubstring(layer->connection, "%language%", validated_language);
- }
+ msMapSetLanguageSpecificConnection(map, validated_language);
}
msFree(validated_language);
diff --git a/mapwmslayer.c b/mapwmslayer.c
index 98e1736..9ba8f24 100644
--- a/mapwmslayer.c
+++ b/mapwmslayer.c
@@ -285,18 +285,14 @@ static int msBuildWMSLayerURLBase(mapObj *map, layerObj *lp,
for(i=0; pszFormat==NULL && i<n; i++) {
if (0
-#if defined USE_GD_PNG || defined USE_PNG
+#if defined USE_PNG
|| strcasecmp(papszTok[i], "PNG")
|| strcasecmp(papszTok[i], "image/png")
#endif
-#if defined USE_GD_JPEG || defined USE_JPEG
+#if defined USE_JPEG
|| strcasecmp(papszTok[i], "JPEG")
|| strcasecmp(papszTok[i], "image/jpeg")
#endif
-#ifdef USE_GD_GIF
- || strcasecmp(papszTok[i], "GIF")
- || strcasecmp(papszTok[i], "image/gif")
-#endif
) {
pszFormat = papszTok[i];
}
@@ -707,6 +703,11 @@ msBuildWMSLayerURL(mapObj *map, layerObj *lp, int nRequestType,
bbox_width = ceil((bbox.maxx - bbox.minx) / cellsize);
bbox_height = ceil((bbox.maxy - bbox.miny) / cellsize);
+
+ /* Force going through the resampler if we're going to receive a clipped BBOX (#4931) */
+ if(msLayerGetProcessingKey(lp, "RESAMPLE") == NULL) {
+ msLayerSetProcessingKey(lp, "RESAMPLE", "nearest");
+ }
}
}
}
@@ -756,7 +757,7 @@ msBuildWMSLayerURL(mapObj *map, layerObj *lp, int nRequestType,
if (nVersion >= OWS_1_1_0)
pszExceptionsParam = "application/vnd.ogc.se_xml";
- else if (nVersion > OWS_1_1_0) /* 1.0.1 to 1.0.7 */
+ else if (nVersion > OWS_1_0_0) /* 1.0.1 to 1.0.7 */
pszExceptionsParam = "SE_XML";
else
pszExceptionsParam = "WMS_XML";
diff --git a/mapxbase.c b/mapxbase.c
index 2800066..3018b15 100644
--- a/mapxbase.c
+++ b/mapxbase.c
@@ -54,10 +54,7 @@
static void * SfRealloc( void * pMem, int nNewSize )
{
- if( pMem == NULL )
- return( (void *) malloc(nNewSize) );
- else
- return( (void *) realloc(pMem,nNewSize) );
+ return( (void *) realloc(pMem,nNewSize) );
}
/************************************************************************/
@@ -183,8 +180,11 @@ DBFHandle msDBFOpen( const char * pszFilename, const char * pszAccess )
psDBF->fp = fopen( pszDBFFilename, pszAccess );
}
}
- if( psDBF->fp == NULL )
+ if( psDBF->fp == NULL ) {
+ msFree(pszDBFFilename);
+ msFree(psDBF);
return( NULL );
+ }
psDBF->bNoHeader = MS_FALSE;
psDBF->nCurrentRecord = -1;
@@ -301,7 +301,7 @@ void msDBFClose(DBFHandle psDBF)
free( psDBF->pszHeader );
free( psDBF->pszCurrentRecord );
- if(psDBF->pszStringField) free(psDBF->pszStringField);
+ free(psDBF->pszStringField);
free( psDBF );
}
@@ -466,7 +466,7 @@ int msDBFAddField(DBFHandle psDBF, const char * pszFieldName, DBFFieldType eType
/* Based on DBFIsAttributeNULL of shapelib */
/************************************************************************/
-int DBFIsValueNULL( const char* pszValue, char type )
+static int DBFIsValueNULL( const char* pszValue, char type )
{
switch(type) {
@@ -494,13 +494,13 @@ int DBFIsValueNULL( const char* pszValue, char type )
/* */
/* Read one of the attribute fields of a record. */
/************************************************************************/
-static char *msDBFReadAttribute(DBFHandle psDBF, int hEntity, int iField )
+static const char *msDBFReadAttribute(DBFHandle psDBF, int hEntity, int iField )
{
int i;
unsigned int nRecordOffset;
- uchar *pabyRec;
- char *pReturnField = NULL;
+ const uchar *pabyRec;
+ const char *pReturnField = NULL;
/* -------------------------------------------------------------------- */
/* Is the request valid? */
@@ -529,7 +529,7 @@ static char *msDBFReadAttribute(DBFHandle psDBF, int hEntity, int iField )
psDBF->nCurrentRecord = hEntity;
}
- pabyRec = (uchar *) psDBF->pszCurrentRecord;
+ pabyRec = (const uchar *) psDBF->pszCurrentRecord;
/* DEBUG */
/* printf("CurrentRecord(%c):%s\n", psDBF->pachFieldType[iField], pabyRec); */
@@ -544,7 +544,7 @@ static char *msDBFReadAttribute(DBFHandle psDBF, int hEntity, int iField )
/* -------------------------------------------------------------------- */
/* Extract the requested field. */
/* -------------------------------------------------------------------- */
- strncpy( psDBF->pszStringField,(char *) pabyRec+psDBF->panFieldOffset[iField], psDBF->panFieldSize[iField] );
+ strncpy( psDBF->pszStringField,(const char *) pabyRec+psDBF->panFieldOffset[iField], psDBF->panFieldSize[iField] );
psDBF->pszStringField[psDBF->panFieldSize[iField]] = '\0';
/*
diff --git a/nmake.opt b/nmake.opt
index fc3c3bc..e9501db 100644
--- a/nmake.opt
+++ b/nmake.opt
@@ -415,24 +415,6 @@ JPEG_INC = -I$(JPEG_DIR)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# Direct connectivity to ESRI ArcSDE.
-# ----------------------------------------------------------------------
-# To turn on direct connectivity to ArcSDE uncomment the following
-# flags and set the full path name to the project directory for ArcSDE.
-# The support library for ArcSDE (the ArcSDE C API/SDK) is typically
-# only available for those with a full license of ArcSDE. It is not
-# available for download.
-# Either set USE_SDE or USE_SDE_PLUGIN, not both.
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#SDE_OPT=-DUSE_SDE
-#SDE_OPT= -DUSE_SDE_PLUGIN
-
-#SDE_VERSION = 91
-#SDE_DIR = f:\projects\sde9.1
-#SDE_INC = -I$(SDE_SDK)\include
-
-
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Direct connectivity to SQL Server
# ----------------------------------------------------------------------
# To turn on direct connectivity to SQL Server uncomment the following
@@ -710,18 +692,6 @@ OGR_INC = -I$(GDAL_DIR)/ogr/ogrsf_frmts -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port
OGR_LIB = $(GDAL_DIR)/gdal_i.lib
!ENDIF
-# Setup ESRI SDE support.
-!IFDEF SDE_OPT
-SDE_INC=-I$(SDE_DIR)/include
-!IF "$(SDE_OPT)" != "-DUSE_SDE_PLUGIN"
-SDE_LIB = $(SDE_DIR)\lib\pe$(SDE_VERSION).lib \
- $(SDE_DIR)\lib\sde$(SDE_VERSION).lib \
- $(SDE_DIR)\lib\sg$(SDE_VERSION).lib
-!ELSE
-SDE_LIB =
-!ENDIF
-!ENDIF
-
# Setup REGEX object and includes
!IFNDEF PHP_REGEX
REGEX_OBJ=$(REGEX_DIR)\regex.obj
@@ -850,7 +820,7 @@ EXTERNAL_LIBS=$(GD_LIBS) $(TIFF_LIB) $(JPEG_LIB) \
$(PROJ_LIB) $(OGR_LIB) $(GDAL_LIB)\
$(CURL_LIB) $(PDF_LIB) \
$(WINSOCK_LIB) $(POSTGIS_LIB) $(IMGGEN_LIB) $(ERR_LIB) \
- $(ORACLE_LIB) $(SDE_LIB) $(ICONV_LIB) $(FCGILIB) $(GEOS_LIB) \
+ $(ORACLE_LIB) $(ICONV_LIB) $(FCGILIB) $(GEOS_LIB) \
$(LIBXML_LIB) $(EXPAT_LIB) $(OGL_LIB) $(CAIRO_LIB) $(FRIBIDI_LIB) $(GIFLIB_LIB)
!ENDIF
@@ -861,7 +831,7 @@ LIBS_DLL=$(MS_LIB_DLL) $(EXTERNAL_LIBS)
INCLUDES=$(GD_INC) $(TIFF_INC) $(JPEG_INC) \
$(PROJ_INC) $(REGEX_INC) $(GDAL_INC) $(OGR_INC) \
$(CURL_INC) $(PDF_INC) $(POSTGIS_INC) \
- $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) $(SDE_INC)\
+ $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) \
$(ICONV_INC) $(FCGIINC) $(GEOS_INC) $(ZLIB_INC) $(LIBXML_INC) \
$(AGG_INC) $(EXPAT_INC) $(OGL_INC) $(CAIRO_INC) $(PNG_INC) $(FRIBIDI_INC) $(GIFLIB_INC)
!ENDIF
@@ -874,7 +844,7 @@ MS_DEFS = $(REGEX_OPT) $(STRINGS) $(POSTGIS) \
$(USE_POINT_Z_M) $(GDAL) $(FCGIDEF) \
$(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \
$(USE_GD_ANTIALIAS) $(ORACLE) \
- $(SDE_OPT) $(ICONV) $(GEOS) $(ZLIB) $(SOS) $(XML2_ENABLED) $(AGG) \
+ $(ICONV) $(GEOS) $(ZLIB) $(SOS) $(XML2_ENABLED) $(AGG) \
$(OGL) $(CAIRO) $(RGBA_PNG_ENABLED) $(FRIBIDI) $(KML) $(GIF) $(CURL)
!IFDEF WIN64
diff --git a/renderers/agg/include/agg_basics.h b/renderers/agg/include/agg_basics.h
index 8d748be..5050b0d 100644
--- a/renderers/agg/include/agg_basics.h
+++ b/renderers/agg/include/agg_basics.h
@@ -89,16 +89,20 @@ namespace mapserver
#ifndef AGG_INT64
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define AGG_INT64 signed __int64
+#define AGG_INT64_FRMT "%I64d"
#else
#define AGG_INT64 signed long long
+#define AGG_INT64_FRMT "%lld"
#endif
#endif
#ifndef AGG_INT64U
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define AGG_INT64U unsigned __int64
+#define AGG_INT64U_FRMT "%I64u"
#else
#define AGG_INT64U unsigned long long
+#define AGG_INT64U_FRMT "%llu"
#endif
#endif
@@ -171,7 +175,11 @@ namespace mapserver
#else
AGG_INLINE int iround(double v)
{
+#ifdef HAVE_LRINT
+ return lrint(v);
+#else
return int((v < 0.0) ? v - 0.5 : v + 0.5);
+#endif
}
AGG_INLINE int uround(double v)
{
diff --git a/renderers/agg/include/agg_conv_clipper.h b/renderers/agg/include/agg_conv_clipper.h
index 6db881d..4095766 100644
--- a/renderers/agg/include/agg_conv_clipper.h
+++ b/renderers/agg/include/agg_conv_clipper.h
@@ -15,6 +15,10 @@
#ifndef AGG_CONV_CLIPPER_INCLUDED
#define AGG_CONV_CLIPPER_INCLUDED
+#if defined(_MSC_VER) && (_MSC_VER >= 1800)
+#include <algorithm>
+#endif
+
#include <cmath>
#include "agg_basics.h"
#include "agg_array.h"
diff --git a/renderers/agg/include/agg_glyph_raster_bin.h b/renderers/agg/include/agg_glyph_raster_bin.h
index c6fec13..964e7bf 100644
--- a/renderers/agg/include/agg_glyph_raster_bin.h
+++ b/renderers/agg/include/agg_glyph_raster_bin.h
@@ -72,6 +72,16 @@ namespace mapserver
return w;
}
+ int8u glyph_width(unsigned glyph) const
+ {
+ unsigned start_char = m_font[2];
+ unsigned num_chars = m_font[3];
+
+ const int8u* bits = m_font + 4 + num_chars * 2 +
+ value(m_font + 4 + (glyph - start_char) * 2);
+ return *bits;
+ }
+
//--------------------------------------------------------------------
void prepare(glyph_rect* r, double x, double y, unsigned glyph, bool flip)
{
diff --git a/renderers/agg/include/agg_pixfmt_rgba.h b/renderers/agg/include/agg_pixfmt_rgba.h
index bb770ae..6e40fc5 100644
--- a/renderers/agg/include/agg_pixfmt_rgba.h
+++ b/renderers/agg/include/agg_pixfmt_rgba.h
@@ -337,7 +337,7 @@ namespace mapserver
p[Order::R] = (value_type)(sr + ((p[Order::R] * s1a + base_mask) >> base_shift));
p[Order::G] = (value_type)(sg + ((p[Order::G] * s1a + base_mask) >> base_shift));
p[Order::B] = (value_type)(sb + ((p[Order::B] * s1a + base_mask) >> base_shift));
- p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift));
+ p[Order::A] = (value_type)(sa + ((p[Order::A] * s1a + base_mask) >> base_shift));
}
};
diff --git a/renderers/agg/include/agg_rasterizer_cells_aa.h b/renderers/agg/include/agg_rasterizer_cells_aa.h
index bb9cad8..5dbd2f7 100644
--- a/renderers/agg/include/agg_rasterizer_cells_aa.h
+++ b/renderers/agg/include/agg_rasterizer_cells_aa.h
@@ -317,16 +317,20 @@ namespace mapserver
{
enum dx_limit_e { dx_limit = 16384 << poly_subpixel_shift };
- int dx = x2 - x1;
-
- if(dx >= dx_limit || dx <= -dx_limit)
+ // Checking the limit and avoid integer overflows
+ if(((x1 < x2)? ((x1 < 0)? (x1 + dx_limit <= x2) : (x1 <= x2 - dx_limit)) :
+ ((x2 < 0)? (x2 + dx_limit <= x1) : (x2 <= x1 - dx_limit))) ||
+ ((y1 < y2)? ((y1 < 0)? (y1 + dx_limit <= y2) : (y1 <= y2 - dx_limit)) :
+ ((y2 < 0)? (y2 + dx_limit <= y1) : (y2 <= y1 - dx_limit))))
{
- int cx = (x1 + x2) >> 1;
- int cy = (y1 + y2) >> 1;
+ int cx = (x2&x1) + ((x2^x1)>>1);
+ int cy = (y2&y1) + ((y2^y1)>>1);
+
line(x1, y1, cx, cy);
line(cx, cy, x2, y2);
}
+ int dx = x2 - x1;
int dy = y2 - y1;
int ex1 = x1 >> poly_subpixel_shift;
int ex2 = x2 >> poly_subpixel_shift;
diff --git a/renderers/agg/include/agg_renderer_raster_text.h b/renderers/agg/include/agg_renderer_raster_text.h
index 4298c0c..4cd02d3 100644
--- a/renderers/agg/include/agg_renderer_raster_text.h
+++ b/renderers/agg/include/agg_renderer_raster_text.h
@@ -77,6 +77,34 @@ namespace mapserver
}
}
+ void render_glyph(double x, double y, unsigned glyph, bool flip=false)
+ {
+ glyph_rect r;
+ m_glyph->prepare(&r, x, y, glyph, flip);
+ if(r.x2 >= r.x1)
+ {
+ int i;
+ if(flip)
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_hspan(r.x1, i, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(r.y2 - i));
+ }
+ }
+ else
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_hspan(r.x1, i, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(i - r.y1));
+ }
+ }
+ }
+ }
+
private:
ren_type* m_ren;
glyph_gen_type* m_glyph;
diff --git a/renderers/agg/include/agg_rendering_buffer.h b/renderers/agg/include/agg_rendering_buffer.h
index 03b6a83..b960779 100644
--- a/renderers/agg/include/agg_rendering_buffer.h
+++ b/renderers/agg/include/agg_rendering_buffer.h
@@ -62,7 +62,7 @@ namespace mapserver
m_stride = stride;
if(stride < 0)
{
- m_start = m_buf - int(height - 1) * stride;
+ m_start = m_buf - (size_t)(height - 1) * stride;
}
}
@@ -80,10 +80,10 @@ namespace mapserver
//--------------------------------------------------------------------
AGG_INLINE T* row_ptr(int, int y, unsigned)
{
- return m_start + y * m_stride;
+ return m_start + (size_t)y * m_stride;
}
- AGG_INLINE T* row_ptr(int y) { return m_start + y * m_stride; }
- AGG_INLINE const T* row_ptr(int y) const { return m_start + y * m_stride; }
+ AGG_INLINE T* row_ptr(int y) { return m_start + (size_t)y * m_stride; }
+ AGG_INLINE const T* row_ptr(int y) const { return m_start + (size_t)y * m_stride; }
AGG_INLINE row_data row (int y) const
{
return row_data(0, m_width-1, row_ptr(y));
diff --git a/renderers/agg/src/agg_vcgen_dash.cpp b/renderers/agg/src/agg_vcgen_dash.cpp
index 0f5550c..75a8f76 100644
--- a/renderers/agg/src/agg_vcgen_dash.cpp
+++ b/renderers/agg/src/agg_vcgen_dash.cpp
@@ -54,7 +54,7 @@ namespace mapserver
//------------------------------------------------------------------------
void vcgen_dash::add_dash(double dash_len, double gap_len)
{
- if(m_num_dashes < max_dashes)
+ if(m_num_dashes < max_dashes-1)
{
m_total_dash_len += dash_len + gap_len;
m_dashes[m_num_dashes++] = dash_len;
diff --git a/scripts/vagrant/mapserver.sh b/scripts/vagrant/mapserver.sh
new file mode 100755
index 0000000..38e84d3
--- /dev/null
+++ b/scripts/vagrant/mapserver.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+NUMTHREADS=2 # we have 2 cpus configured
+export NUMTHREADS
+
+cd /tmp
+wget http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.38.tar.bz2
+tar xjf harfbuzz-0.9.38.tar.bz2
+cd harfbuzz-0.9.38
+./configure --without-cairo --without-glib --without-icu
+make -j $NUMTHREADS
+sudo make install && sudo ldconfig
+
+cd /vagrant
+
+cd msautotest
+python -m SimpleHTTPServer &> /dev/null &
+cd ..
+
+mkdir build_vagrant
+touch maplexer.l
+touch mapparser.y
+flex --nounistd -Pmsyy -i -omaplexer.c maplexer.l
+yacc -d -omapparser.c mapparser.y
+cd build_vagrant
+cmake -G "Unix Makefiles" -DWITH_CLIENT_WMS=1 \
+ -DWITH_CLIENT_WFS=1 -DWITH_KML=1 -DWITH_SOS=1 -DWITH_PHP=1 \
+ -DWITH_PYTHON=1 -DWITH_JAVA=0 -DWITH_THREAD_SAFETY=1 -DWITH_FRIBIDI=0 \
+ -DWITH_FCGI=0 -DWITH_EXEMPI=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DWITH_RSVG=1 -DWITH_CURL=1 -DWITH_FRIBIDI=1 -DWITH_HARFBUZZ=1 \
+ ..
+
+make -j $NUMTHREADS
+sudo make install
diff --git a/scripts/vagrant/packages.sh b/scripts/vagrant/packages.sh
new file mode 100755
index 0000000..74d41d0
--- /dev/null
+++ b/scripts/vagrant/packages.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+sed -i 's#deb http://us.archive.ubuntu.com/ubuntu/#deb mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list
+
+export DEBIAN_FRONTEND=noninteractive
+
+apt-get update
+apt-get install -y python-software-properties
+add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
+apt-get update
+apt-get -y upgrade
+
+# install packages we need
+apt-get install -q -y git build-essential pkg-config cmake libgeos-dev rake \
+ libpq-dev python-all-dev libproj-dev libxml2-dev postgis php5-dev \
+ postgresql-server-dev-9.1 postgresql-9.1-postgis-2.1 vim bison flex swig \
+ librsvg2-dev libpng12-dev libjpeg-dev libgif-dev libgd2-xpm-dev \
+ libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev \
+ libgdal1-dev libfribidi-dev libexempi-dev
diff --git a/scripts/vagrant/postgis.sh b/scripts/vagrant/postgis.sh
new file mode 100755
index 0000000..7a60026
--- /dev/null
+++ b/scripts/vagrant/postgis.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd /vagrant/msautotest
+
+sed -i 's/md5/trust/' /etc/postgresql/9.1/main/pg_hba.conf
+sed -i 's/peer/trust/' /etc/postgresql/9.1/main/pg_hba.conf
+
+service postgresql restart
+
+./create_postgis_test_data.sh
diff --git a/scripts/vagrant/virtualbox-fix.sh b/scripts/vagrant/virtualbox-fix.sh
new file mode 100755
index 0000000..4e0cf7e
--- /dev/null
+++ b/scripts/vagrant/virtualbox-fix.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+if [ ! -e "/usr/lib/VBoxGuestAdditions" ]; then
+ ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
+fi
diff --git a/shp2img.c b/shp2img.c
index 1790ebe..23bc436 100644
--- a/shp2img.c
+++ b/shp2img.c
@@ -113,6 +113,9 @@ int main(int argc, char *argv[])
exit(1);
}
+ /* Use PROJ_LIB env vars if set */
+ msProjLibInitFromEnv();
+
/* Use MS_ERRORFILE and MS_DEBUGLEVEL env vars if set */
if ( msDebugInitFromEnv() != MS_SUCCESS ) {
msWriteError(stderr);
diff --git a/shptreevis.c b/shptreevis.c
index 948222c..1e6ee7b 100644
--- a/shptreevis.c
+++ b/shptreevis.c
@@ -70,6 +70,7 @@ char* AddFileSuffix ( const char * Filename, const char * Suffix )
pszFullname = (char *) msSmallMalloc(strlen(pszBasename) + 5);
sprintf( pszFullname, "%s%s", pszBasename, Suffix);
+ free(pszBasename);
return (pszFullname);
}
diff --git a/sym2img.c b/sym2img.c
index d46712c..1c43d33 100644
--- a/sym2img.c
+++ b/sym2img.c
@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
p.line[0].point[3].x = j + (CELLSIZE-LBUF) - 1;
p.line[0].point[3].y = i;
p.line[0].numpoints = 4;
- msDrawLineSymbol(&(symbolSet), img, &p, &(class));
+ msDrawLineSymbol(map, img, &p, &(class));
break;
case(MS_SHADESET):
diff --git a/tests/test.map b/tests/test.map
index 2ca3bdc..1d9d4f3 100644
--- a/tests/test.map
+++ b/tests/test.map
@@ -197,7 +197,6 @@ MAP
LAYER
NAME "INLINE-PIXMAP-RGBA"
TYPE POINT
- TRANSPARENCY ALPHA
DEBUG ON
PROJECTION
"init=epsg:4326"
@@ -219,9 +218,8 @@ MAP
LAYER
NAME "INLINE-PIXMAP-PCT"
- TYPE ANNOTATION
+ TYPE POINT
DEBUG ON
- TRANSPARENCY ALPHA
PROJECTION
"init=epsg:4326"
END
@@ -231,12 +229,13 @@ LAYER
END
CLASS
NAME "0"
- STYLE
- SYMBOL 'home-png'
- END
TEXT "."
LABEL
COLOR 0 0 0
+ STYLE
+ SYMBOL 'home-png'
+ GEOMTRANSFORM "labelpnt"
+ END
END
END
END
diff --git a/textlayout.c b/textlayout.c
new file mode 100644
index 0000000..a283800
--- /dev/null
+++ b/textlayout.c
@@ -0,0 +1,861 @@
+/******************************************************************************
+ *
+ * Project: MapServer
+ * Purpose: Text Layout functions, eventually using Harfbuzz and Fribidi/ICU
+ * Author: Thomas Bonfort and the MapServer team.
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2013 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+
+#include <float.h>
+#include "mapserver.h"
+
+#ifdef USE_ICONV
+#include <iconv.h>
+#include <wchar.h>
+#endif
+#include "fontcache.h"
+#include FT_ADVANCES_H
+#include FT_TYPES_H
+
+typedef struct{
+ unsigned int *unicodes;
+ unsigned int *codepoints;
+#ifdef USE_FRIBIDI
+ FriBidiCharType *ctypes;
+ FriBidiLevel *bidi_levels;
+#endif
+#ifdef USE_HARFBUZZ
+ hb_script_t *scripts;
+#endif
+} TextInfo;
+
+typedef struct {
+ int offset; /* offset in TextInfo entries where the current run is starting */
+ int length; /* number of unicode glyphs in this run */
+#ifdef USE_FRIBIDI
+ FriBidiLevel rtl; /* bidi embedding level of run: -1 to skip shaping, otherwise if pair:ltr, odd:rtl */
+ hb_script_t script; /* script: latin, arabic, thai, etc... */
+#endif
+ int line_number;
+ face_element *face; /* font face to use for this run */
+} text_run;
+
+#ifdef USE_HARFBUZZ
+struct _ms_hb_user_data {
+ text_run *run;
+ TextInfo *info;
+ int glyph_size;
+};
+
+const char *_ms_script_prefix_en = "en:";
+const char *_ms_script_prefix_ar = "ar:";
+const char *_ms_script_prefix_cn = "cn:";
+const char *_ms_script_prefix_hy = "hy:";
+const char *_ms_script_prefix_bn = "bn:";
+const char *_ms_script_prefix_iu = "iu";
+const char *_ms_script_prefix_chr= "chr:";
+const char *_ms_script_prefix_cop= "cop:";
+const char *_ms_script_prefix_ru = "ru:";
+const char *_ms_script_prefix_hi = "hi:";
+const char *_ms_script_prefix_ka = "ka:";
+const char *_ms_script_prefix_el = "el:";
+const char *_ms_script_prefix_gu = "gu:";
+const char *_ms_script_prefix_pa = "pa:";
+const char *_ms_script_prefix_ko = "ko:";
+const char *_ms_script_prefix_he = "he:";
+const char *_ms_script_prefix_ja = "ja:";
+const char *_ms_script_prefix_kn = "kn:";
+const char *_ms_script_prefix_lo = "lo:";
+const char *_ms_script_prefix_ml = "ml:";
+const char *_ms_script_prefix_mn = "mn:";
+const char *_ms_script_prefix_or = "or:";
+const char *_ms_script_prefix_syr= "syr:";
+const char *_ms_script_prefix_ta = "ta:";
+const char *_ms_script_prefix_te = "te:";
+const char *_ms_script_prefix_th = "th:";
+const char *_ms_script_prefix_bo = "bo:";
+const char *_ms_script_prefix_am = "am:";
+const char *_ms_script_prefix_km = "km:";
+const char *_ms_script_prefix_my = "my:";
+const char *_ms_script_prefix_si = "si:";
+const char *_ms_script_prefix_dv = "dv:";
+const char *_ms_script_prefix_bku= "bku:";
+const char *_ms_script_prefix_hnn= "hnn:";
+const char *_ms_script_prefix_tl = "tl:";
+const char *_ms_script_prefix_tbw= "tbw:";
+const char *_ms_script_prefix_uga= "uga:";
+const char *_ms_script_prefix_bug= "bug:";
+const char *_ms_script_prefix_peo= "peo:";
+const char *_ms_script_prefix_syl= "syl:";
+const char *_ms_script_prefix_nko= "nko:";
+
+const char* prefix_from_script(hb_script_t script) {
+ switch(script) {
+ case HB_SCRIPT_LATIN: return _ms_script_prefix_en;
+ case HB_SCRIPT_ARABIC: return _ms_script_prefix_ar;
+ case HB_SCRIPT_HAN: return _ms_script_prefix_cn;
+ case HB_SCRIPT_ARMENIAN: return _ms_script_prefix_hy;
+ case HB_SCRIPT_BENGALI: return _ms_script_prefix_bn;
+ case HB_SCRIPT_CANADIAN_ABORIGINAL: return _ms_script_prefix_iu;
+ case HB_SCRIPT_CHEROKEE: return _ms_script_prefix_chr;
+ case HB_SCRIPT_COPTIC: return _ms_script_prefix_cop;
+ case HB_SCRIPT_CYRILLIC: return _ms_script_prefix_ru;
+ case HB_SCRIPT_DEVANAGARI: return _ms_script_prefix_hi;
+ case HB_SCRIPT_GEORGIAN: return _ms_script_prefix_ka;
+ case HB_SCRIPT_GREEK: return _ms_script_prefix_el;
+ case HB_SCRIPT_GUJARATI: return _ms_script_prefix_gu;
+ case HB_SCRIPT_GURMUKHI: return _ms_script_prefix_pa;
+ case HB_SCRIPT_HANGUL: return _ms_script_prefix_ko;
+ case HB_SCRIPT_HEBREW: return _ms_script_prefix_he;
+ case HB_SCRIPT_HIRAGANA: return _ms_script_prefix_ja;
+ case HB_SCRIPT_KANNADA: return _ms_script_prefix_kn;
+ case HB_SCRIPT_KATAKANA: return _ms_script_prefix_ja;
+ case HB_SCRIPT_LAO: return _ms_script_prefix_lo;
+ case HB_SCRIPT_MALAYALAM: return _ms_script_prefix_ml;
+ case HB_SCRIPT_MONGOLIAN: return _ms_script_prefix_mn;
+ case HB_SCRIPT_ORIYA: return _ms_script_prefix_or;
+ case HB_SCRIPT_SYRIAC: return _ms_script_prefix_syr;
+ case HB_SCRIPT_TAMIL: return _ms_script_prefix_ta;
+ case HB_SCRIPT_TELUGU: return _ms_script_prefix_te;
+ case HB_SCRIPT_THAI: return _ms_script_prefix_th;
+ case HB_SCRIPT_TIBETAN: return _ms_script_prefix_bo;
+ case HB_SCRIPT_ETHIOPIC: return _ms_script_prefix_am;
+ case HB_SCRIPT_KHMER: return _ms_script_prefix_km;
+ case HB_SCRIPT_MYANMAR: return _ms_script_prefix_my;
+ case HB_SCRIPT_SINHALA: return _ms_script_prefix_si;
+ case HB_SCRIPT_THAANA: return _ms_script_prefix_dv;
+ case HB_SCRIPT_BUHID: return _ms_script_prefix_bku;
+ case HB_SCRIPT_HANUNOO: return _ms_script_prefix_hnn;
+ case HB_SCRIPT_TAGALOG: return _ms_script_prefix_tl;
+ case HB_SCRIPT_TAGBANWA: return _ms_script_prefix_tbw;
+ case HB_SCRIPT_UGARITIC: return _ms_script_prefix_uga;
+ case HB_SCRIPT_BUGINESE: return _ms_script_prefix_bug;
+ case HB_SCRIPT_OLD_PERSIAN: return _ms_script_prefix_peo;
+ case HB_SCRIPT_SYLOTI_NAGRI: return _ms_script_prefix_syl;
+ case HB_SCRIPT_NKO: return _ms_script_prefix_nko;
+ default:
+ return NULL;
+
+ }
+}
+
+hb_feature_t hbfeatures[2] = {
+ {HB_TAG('v','e','r','t'),0,0,INT_MAX},
+ {HB_TAG('k','e','r','n'),0,0,INT_MAX}
+};
+
+static hb_bool_t _ms_get_glyph_func (hb_font_t *font, void *font_data,
+ hb_codepoint_t unicode, hb_codepoint_t variation_selector, hb_codepoint_t *glyph,
+ void *user_data)
+
+{
+ /* first check our run, as we have probably already computed this */
+ int i;
+ struct _ms_hb_user_data *ud = font_data;
+ unsigned int *unicodes = ud->info->unicodes + ud->run->offset;
+
+ for(i=0; i<ud->run->length; i++) {
+ if(unicodes[i] == unicode) {
+ *glyph = *(ud->info->codepoints + ud->run->offset + i);
+ return *glyph != 0;
+ }
+ }
+
+ {
+ FT_Face ft_face = ud->run->face->face;
+
+#ifdef HAVE_FT_FACE_GETCHARVARIANTINDEX
+ if ((variation_selector)) {
+ *glyph = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector);
+ return *glyph != 0;
+ }
+#endif
+
+ *glyph = FT_Get_Char_Index (ft_face, unicode);
+ return *glyph != 0;
+ }
+}
+
+static hb_position_t _ms_get_glyph_h_advance_func (hb_font_t *font, void *font_data,
+ hb_codepoint_t glyph, void *user_data)
+{
+ struct _ms_hb_user_data *ud = font_data;
+ glyph_element *glyphc = msGetGlyphByIndex(ud->run->face,ud->glyph_size,glyph);
+ if(!glyphc)
+ return 0;
+ return glyphc->metrics.advance * 64;
+}
+
+static hb_position_t _ms_get_glyph_v_advance_func (hb_font_t *font, void *font_data,
+ hb_codepoint_t glyph, void *user_data)
+{
+ return 0; /* we don't support vertical layouts */
+}
+#endif
+
+int WARN_UNUSED check_single_font(fontSetObj *fontset, char *fontkey, text_run *run, TextInfo *glyphs, int ignore_missing) {
+ int i;
+ face_element *fcache = NULL;
+ if(fontset && fontkey) {
+ char *fontkey2 = strchr(fontkey,':'); /* try skipping prefix */
+ if(fontkey2) {
+ fcache = msGetFontFace(fontkey2+1, fontset);
+ }
+ }
+ if(!fcache)
+ fcache = msGetFontFace(fontkey, fontset);
+ run->face = fcache;
+ if(UNLIKELY(!fcache)) return MS_FAILURE;
+ for(i=0; i<run->length; i++) {
+ int codepoint = msGetGlyphIndex(fcache, glyphs->unicodes[run->offset+i]);
+ if(codepoint || ignore_missing)
+ glyphs->codepoints[run->offset+i] = codepoint;
+ else
+ return MS_FAILURE;
+ }
+ return MS_SUCCESS;
+}
+
+int WARN_UNUSED get_face_for_run(fontSetObj *fontset, char *fontlist, text_run *run, TextInfo *glyphs) {
+ char *startfont, *endfont;
+ int ok;
+#if defined(USE_HARFBUZZ) && defined(USE_FRIBIDI)
+ const char *prefix = NULL;
+#endif
+
+ if(!fontset || !fontlist) {
+ ok = check_single_font(fontset,fontlist,run,glyphs,0);
+ return MS_SUCCESS;
+ }
+
+#if defined(USE_HARFBUZZ) && defined(USE_FRIBIDI)
+ if(run->rtl >= 0) {
+ prefix = prefix_from_script(run->script);
+ } else {
+ prefix = _ms_script_prefix_en;
+ }
+
+ if(prefix) {
+ /* we'll first look for a font who's prefixed by the current script prefix, e.g, given the
+ * fontlist "arial,ar:arialuni,cn:cjk" check the "cjk" font first for HAN scripts
+ */
+ int prefixlen = strlen(prefix);
+ startfont = fontlist;
+ for(;;) {
+ if(!*startfont) break;
+ endfont = strchr(startfont,',');
+ if(!strncmp(startfont,prefix,prefixlen)) {
+ startfont += strlen(prefix);
+ if(endfont) *endfont = 0;
+ ok = check_single_font(fontset,startfont,run,glyphs,0);
+ if(endfont) {
+ *endfont = ',';
+ if(ok == MS_SUCCESS) return MS_SUCCESS;
+ startfont = endfont+1; /* go to next font in list */
+ } else {
+ if(ok == MS_SUCCESS) return MS_SUCCESS;
+ break;
+ }
+ }
+ if(endfont)
+ startfont = endfont+1;
+ else break;
+ }
+ }
+#endif
+
+ /* no prefix, or prefix search didn't return satisfying result */
+ startfont = fontlist;
+ for(;;) {
+ if(!*startfont) break;
+ endfont = strchr(startfont,',');
+ if(endfont) *endfont = 0;
+ ok = check_single_font(fontset,startfont,run,glyphs,!endfont); /* ignore failing glyphs if we're using the last font in the list */
+ if(endfont) {
+ *endfont = ',';
+ if(ok == MS_SUCCESS) return MS_SUCCESS;
+ startfont = endfont+1; /* go to next font in list */
+ } else {
+ if(ok == MS_SUCCESS) return MS_SUCCESS;
+ break;
+ }
+ }
+
+ return MS_FAILURE;
+}
+
+#ifdef USE_HARFBUZZ
+hb_font_t* get_hb_font(struct _ms_hb_user_data *font_data) {
+ face_element *fcache = font_data->run->face;
+ hb_font_element *hbf = fcache->hbfont;
+ FT_Face face = fcache->face;
+ int reqsize = MS_NINT(font_data->glyph_size *96.0 / 72.0);
+
+ if(reqsize != fcache->face->size->metrics.x_ppem) {
+ FT_Set_Pixel_Sizes(face,0,reqsize);
+ }
+
+ if(!hbf) {
+ hbf = msSmallMalloc(sizeof(hb_font_element));
+ hbf->hbparentfont = hb_ft_font_create(face,NULL);
+ hbf->hbfont = hb_font_create_sub_font(hbf->hbparentfont);
+ hbf->funcs = hb_font_funcs_create();
+ hb_font_funcs_set_glyph_h_advance_func(hbf->funcs, _ms_get_glyph_h_advance_func, NULL, NULL);
+ hb_font_funcs_set_glyph_func(hbf->funcs, _ms_get_glyph_func, NULL, NULL);
+ hb_font_funcs_set_glyph_v_advance_func(hbf->funcs, _ms_get_glyph_v_advance_func, NULL, NULL);
+ hbf->cursize = reqsize;
+ fcache->hbfont = hbf;
+ hb_font_set_funcs(hbf->hbfont, hbf->funcs, font_data, NULL);
+ } else {
+ if(hbf->cursize != reqsize) {
+ hb_font_set_scale (hbf->hbparentfont,
+ ((uint64_t) face->size->metrics.x_scale * (uint64_t) face->units_per_EM) >> 16,
+ ((uint64_t) face->size->metrics.y_scale * (uint64_t) face->units_per_EM) >> 16);
+ hb_font_set_ppem (hbf->hbparentfont, face->size->metrics.x_ppem, face->size->metrics.y_ppem);
+ hbf->cursize = reqsize;
+ }
+ }
+ hb_font_set_funcs_data(hbf->hbfont,font_data,NULL);
+ return hbf->hbfont;
+}
+
+/*
+ * Return non-zero (true) if the given unicode array contains
+ * only ASCII and ISO Latin-1 characters, otherwise return zero.
+ */
+int unicode_is_latin1(const unsigned int *unicode, long nglyphs)
+{
+ long i;
+
+ for (i=0; i < nglyphs; i++) {
+ if(unicode[i] < 0x2B0) continue;
+ return 0;
+ }
+ return 1;
+}
+
+void get_scripts(unsigned int *cp, int len, hb_script_t *scripts) {
+ int i;
+ int backwards_scan = 0;
+ hb_unicode_funcs_t *ufuncs = hb_unicode_funcs_get_default();
+ hb_script_t last_script = HB_SCRIPT_UNKNOWN;
+
+ // determine script (forward scan)
+ for (i = 0; i < len; i++) {
+ scripts[i] = hb_unicode_script(ufuncs, cp[i]);
+
+ // common/inherit codepoints inherit script from context
+ if (scripts[i] == HB_SCRIPT_COMMON ||
+ scripts[i] == HB_SCRIPT_INHERITED) {
+ // unknown is not a valid context
+ if (last_script != HB_SCRIPT_UNKNOWN)
+ scripts[i] = last_script;
+ else
+ // do a backwards scan to check if next codepoint
+ // contains a valid script for context
+ backwards_scan = 1;
+ } else {
+ last_script = scripts[i];
+ }
+ }
+
+ // determine script (backwards scan, if needed)
+ last_script = HB_SCRIPT_UNKNOWN;
+ for (i = len - 1; i >= 0 && backwards_scan; i--) {
+ // common/inherit codepoints inherit script from context
+ if (scripts[i] == HB_SCRIPT_COMMON ||
+ scripts[i] == HB_SCRIPT_INHERITED) {
+ // unknown script is not a valid context
+ if (last_script != HB_SCRIPT_UNKNOWN)
+ scripts[i] = last_script;
+ } else {
+ last_script = scripts[i];
+ }
+ }
+}
+#endif
+
+/* returns 1 if this is a codepoint we should skip. only checks \r for now */
+static int skip_unicode(unsigned int unicode) {
+ switch(unicode) {
+ case '\r':
+ return 1;
+ break;
+ default:
+ return 0;
+ }
+}
+
+#define MS_RTL_LTR 0
+#define MS_RTL_RTL 1
+#define MS_RTL_MIXED 2
+
+struct line_desc{
+ int length;
+ int rtl;
+} ;
+
+int msLayoutTextSymbol(mapObj *map, textSymbolObj *ts, textPathObj *tgret) {
+#define STATIC_GLYPHS 100
+#define STATIC_LINES 10
+ text_run static_runs[STATIC_GLYPHS];
+ int i,nruns, start, ret=MS_SUCCESS;
+ size_t text_num_bytes;
+ char *inp;
+ unsigned int static_unicodes[STATIC_GLYPHS];
+ unsigned int static_codepoints[STATIC_GLYPHS];
+#ifdef USE_FRIBIDI
+ FriBidiCharType static_ctypes[STATIC_GLYPHS];
+ FriBidiLevel static_bidi_levels[STATIC_GLYPHS];
+#endif
+#ifdef USE_HARFBUZZ
+ hb_script_t static_scripts[STATIC_GLYPHS];
+ hb_buffer_t *buf = NULL;
+#endif
+ struct line_desc static_line_descs[STATIC_LINES];
+ int alloc_glyphs = 0;
+ struct line_desc *line_descs = NULL;
+ text_run *runs;
+ double oldpeny=3455,peny,penx=0; /*oldpeny is set to an unreasonable default initial value */
+ fontSetObj *fontset = NULL;
+
+ TextInfo glyphs;
+ int num_glyphs = 0;
+
+ assert(ts->annotext && *ts->annotext); /* ensure we have at least one character/glyph to treat */
+
+ if(map) fontset = &map->fontset;
+ /* go through iconv beforehand, so we know we're handling utf8 */
+#ifdef USE_ICONV
+ if(ts->label->encoding && strcasecmp(ts->label->encoding,"UTF-8")) {
+ iconv_t cd;
+ size_t len, iconv_status,bufleft;
+ char *encoded_text,*outp;
+ len = strlen(ts->annotext);
+ bufleft = len*6;
+ encoded_text = msSmallMalloc(bufleft+1);
+ cd = iconv_open("UTF-8", ts->label->encoding);
+
+ if(cd == (iconv_t)-1) {
+ msSetError(MS_IDENTERR, "Encoding not supported by libiconv (%s).",
+ "msGetEncodedString()", ts->label->encoding);
+ return MS_FAILURE;
+ }
+
+ inp = ts->annotext;
+ outp = encoded_text;
+
+ while(len>0) {
+ iconv_status = iconv(cd, &inp, &len, &outp, &bufleft);
+ if(iconv_status == -1) {
+ break;
+ }
+ }
+
+ text_num_bytes = outp - encoded_text;
+ encoded_text[text_num_bytes] = 0;
+ free(ts->annotext);
+ ts->annotext = encoded_text;
+ iconv_close(cd);
+ } else
+#endif
+ {
+ text_num_bytes = strlen(ts->annotext);
+ }
+
+ if( text_num_bytes == 0 )
+ return 0;
+
+ if(text_num_bytes > STATIC_GLYPHS) {
+#ifdef USE_FRIBIDI
+ glyphs.bidi_levels = msSmallMalloc(text_num_bytes * sizeof(FriBidiLevel));
+ glyphs.ctypes = msSmallMalloc(text_num_bytes * sizeof(FriBidiCharType));
+#endif
+ glyphs.unicodes = msSmallMalloc(text_num_bytes * sizeof(unsigned int));
+ glyphs.codepoints = msSmallMalloc(text_num_bytes * sizeof(unsigned int));
+#ifdef USE_HARFBUZZ
+ glyphs.scripts = msSmallMalloc(text_num_bytes * sizeof(hb_script_t));
+#endif
+ runs = msSmallMalloc(text_num_bytes * sizeof(text_run));
+ } else {
+#ifdef USE_FRIBIDI
+ glyphs.bidi_levels = static_bidi_levels;
+ glyphs.ctypes = static_ctypes;
+#endif
+ glyphs.unicodes = static_unicodes;
+ glyphs.codepoints = static_codepoints;
+#ifdef USE_HARFBUZZ
+ glyphs.scripts = static_scripts;
+#endif
+ runs = static_runs;
+ }
+
+ /* populate the unicode entries once and for all */
+ inp = ts->annotext;
+ while(*inp) {
+ unsigned int unicode;
+ inp += msUTF8ToUniChar(inp, &unicode);
+ if(!skip_unicode(unicode)){
+ glyphs.unicodes[num_glyphs++] = unicode;
+ }
+ }
+
+
+ if(ts->label->wrap || ts->label->maxlength > 0) {
+ if(ts->label->wrap && ts->label->maxlength == 0) {
+ for(i=0;i<num_glyphs;i++) {
+ /* replace all occurences of the wrap character with a newline */
+ if(glyphs.unicodes[i]== ts->label->wrap)
+ glyphs.unicodes[i]= '\n';
+ }
+ } else {
+ assert(ts->label->maxlength > 0);
+ if(ts->label->wrap != ' '){
+ for(i=0;i<num_glyphs;i++) {
+ /* replace all occurences of the wrap character with a space */
+ if(glyphs.unicodes[i]== ts->label->wrap)
+ glyphs.unicodes[i]= ' ';
+ }
+ }
+ if(num_glyphs > ts->label->maxlength) {
+ for(i=0; i<num_glyphs; i++) {
+ if(glyphs.unicodes[i]== ' ')
+ break;
+ }
+ if(i != num_glyphs) { /* we have at least one space on which we can break */
+ int num_cur_glyph_on_line = 0; /*count for the number of glyphs on the current line*/
+ for(i=0; i<num_glyphs; i++) {
+ if(glyphs.unicodes[i]== ' ' && num_cur_glyph_on_line >= ts->label->maxlength) {
+ glyphs.unicodes[i]= '\n';
+ num_cur_glyph_on_line = 0;
+ } else {
+ num_cur_glyph_on_line++;
+ }
+ }
+ }
+ }
+ }
+ /*
+ * TODO RFC98: RFC40 negative label->wrap. This is left out for the moment as it requires
+ * handling a realloc and imho is never used and is an overly-complex use-case.
+ */
+ }
+
+ /* split our text into runs (one for each line) */
+ nruns = 0;
+ start = 0;
+ runs[0].offset = 0;
+ runs[0].line_number = 0;
+ for(i=0; i<num_glyphs; i++) {
+ if(glyphs.unicodes[i]!= '\n') continue;
+ runs[nruns].length = i - start; /* length of current line (without \n) */
+ start = i+1; /* start of next line */
+ runs[nruns+1].line_number = runs[nruns].line_number+1;
+ runs[nruns+1].offset = start;
+ nruns++;
+ }
+ /* unless the last glyph was a \n, we need to "close" the last run */
+ if(glyphs.unicodes[num_glyphs-1]!= '\n') {
+ runs[nruns].length = num_glyphs - start;
+ nruns++;
+ }
+
+ if(runs[nruns-1].line_number+1 > STATIC_LINES) {
+ line_descs = msSmallMalloc((runs[nruns-1].line_number + 1)*sizeof(struct line_desc));
+ } else {
+ line_descs = static_line_descs;
+ }
+
+#ifdef USE_FRIBIDI
+ for(i=0;i<nruns;i++) {
+ /* check the run (at this stage, one run per line), decide if we need to go through bidi and/or shaping */
+ if(unicode_is_latin1(glyphs.unicodes + runs[i].offset, runs[i].length)) {
+ runs[i].rtl = -1;
+ line_descs[i].rtl = MS_RTL_LTR;
+ } else {
+ runs[i].rtl = 0;
+ }
+ }
+
+ for(i=0; i<nruns; i++) {
+ /* split the text into bidi runs */
+ if(runs[i].rtl >= 0) {
+ int j, cur_run_start, original_num_glyphs, original_offset;
+ FriBidiLevel prevlevel;
+ FriBidiParType dir = FRIBIDI_PAR_LTR;
+ original_offset = cur_run_start = runs[i].offset;
+ original_num_glyphs = runs[i].length;
+ fribidi_get_bidi_types(glyphs.unicodes + original_offset, runs[i].length, glyphs.ctypes + original_offset);
+ fribidi_get_par_embedding_levels(glyphs.ctypes + original_offset, runs[i].length, &dir, glyphs.bidi_levels + runs[i].offset);
+ /* if we have different embedding levels, create a run for each one */
+ runs[i].rtl = prevlevel = glyphs.bidi_levels[original_offset];
+ line_descs[runs[i].line_number].rtl = (prevlevel%2) ? MS_RTL_RTL:MS_RTL_LTR;
+ for(j=1; j<original_num_glyphs; j++) {
+ if(glyphs.bidi_levels[original_offset+j] != prevlevel) {
+ line_descs[runs[i].line_number].rtl = MS_RTL_MIXED;
+ /* create a new run for the different embedding level */
+ nruns++;
+
+ /* first move remaining runs */
+ memmove(runs+i+2,runs+i+1,(nruns-i-2)*sizeof(text_run));
+
+ i++;
+ /* new run inherints line number */
+ runs[i].line_number = runs[i-1].line_number;
+ runs[i].offset = original_offset + j;
+ runs[i].length = (runs[i-1].offset + runs[i-1].length) - runs[i].offset;
+ runs[i-1].length = runs[i].offset - runs[i-1].offset;
+
+
+ /* new run starts at current postition */
+ runs[i].rtl = prevlevel = glyphs.bidi_levels[original_offset+j];
+ }
+ }
+ }
+ }
+#else
+ for(i=0;i<nruns;i++) {
+ line_descs[i].rtl = MS_RTL_LTR;
+ }
+#endif
+
+#ifdef USE_FRIBIDI
+ /* determine the scripts of each run, and split again into runs with identical script */
+ for(i=0; i<nruns; i++) {
+ if(runs[i].rtl == -1) {
+ runs[i].script = HB_SCRIPT_LATIN;
+ continue; /* skip runs we have determined we are latin (no shaping needed) */
+ } else {
+ int j, cur_run_start, original_num_glyphs, original_offset;
+ hb_script_t prevscript;
+ original_offset = cur_run_start = runs[i].offset;
+ original_num_glyphs = runs[i].length;
+ get_scripts(glyphs.unicodes + original_offset, runs[i].length, glyphs.scripts + original_offset);
+ /* if we have different scripts, create a run for each one */
+ runs[i].script = prevscript = glyphs.scripts[original_offset];
+ for(j=1; j<original_num_glyphs; j++) {
+ if(glyphs.scripts[original_offset+j] != prevscript) {
+ /* create a new run for the different embedding level */
+ nruns++;
+
+ /* first move remaining runs */
+ memmove(runs+i+2,runs+i+1,(nruns-i-2)*sizeof(text_run));
+
+ i++;
+ /* new run inherints line number and rtl*/
+ runs[i].line_number = runs[i-1].line_number;
+ runs[i].rtl = runs[i-1].rtl;
+ runs[i].offset = original_offset + j;
+ runs[i].length = (runs[i-1].offset + runs[i-1].length) - runs[i].offset;
+ runs[i-1].length = runs[i].offset - runs[i-1].offset;
+
+
+ runs[i].script = prevscript = glyphs.scripts[original_offset+j];
+ }
+ }
+ }
+ }
+#endif
+
+ for(i=0; i<nruns; i++) {
+ ret = get_face_for_run(fontset, ts->label->font, runs+i, &glyphs);
+ if(UNLIKELY(ret == MS_FAILURE))
+ goto cleanup;
+ }
+
+ /*
+ * determine the font face to use for a given run. No splitting needed here for
+ * now, as we suppose that the decomposition of each run into individual bidi
+ * direction and script level is sufficient to ensure that a given run can be
+ * represented by a single font (i.e. there's no need to look into multiple fonts
+ * to find the glyphs of the run)
+ */
+
+
+ tgret->numlines = runs[nruns-1].line_number + 1;
+ tgret->bounds.bbox.minx = 0;
+ tgret->bounds.bbox.miny = FLT_MAX;
+ tgret->bounds.bbox.maxx = tgret->bounds.bbox.maxy = -FLT_MAX;
+
+
+ for(i=0;i<nruns;i++) {
+ unsigned int glyph_count,j;
+ if(!runs[i].face) continue;
+ peny = (1 - tgret->numlines + runs[i].line_number) * tgret->line_height;
+ if(peny != oldpeny) {
+ if(i>0) line_descs[runs[i-1].line_number].length = penx;
+ if(penx > tgret->bounds.bbox.maxx)
+ tgret->bounds.bbox.maxx = penx;
+ oldpeny = peny;
+ penx = 0;
+ }
+#if defined(USE_HARFBUZZ) && defined(USE_FRIBIDI)
+ if(runs[i].rtl == -1 || runs[i].script == HB_SCRIPT_LATIN || runs[i].script == HB_SCRIPT_COMMON)
+#endif
+ {
+ /* use our basic shaper */
+ unsigned int *codepoint = glyphs.codepoints + runs[i].offset;
+ alloc_glyphs += runs[i].length;
+ tgret->glyphs = msSmallRealloc(tgret->glyphs, alloc_glyphs * sizeof(glyphObj));
+ for(j=0;j<runs[i].length;j++) {
+ glyphObj *g = &tgret->glyphs[tgret->numglyphs + j];
+ g->glyph = msGetGlyphByIndex(runs[i].face,tgret->glyph_size, *codepoint);
+ g->face = runs[i].face;
+ codepoint++;
+ g->pnt.x = penx;
+ g->pnt.y = peny;
+ g->rot = 0.0;
+ penx += g->glyph->metrics.advance;
+ if(runs[i].line_number == 0 && peny - g->glyph->metrics.maxy < tgret->bounds.bbox.miny) /*compute minimal y, only for the first line */
+ tgret->bounds.bbox.miny = peny - g->glyph->metrics.maxy;
+ if(peny - g->glyph->metrics.miny > tgret->bounds.bbox.maxy)
+ tgret->bounds.bbox.maxy = peny - g->glyph->metrics.miny;
+ }
+#if defined(USE_HARFBUZZ) && defined(USE_FRIBIDI)
+ } else {
+ struct _ms_hb_user_data user_data;
+ hb_font_t *font;
+ hb_glyph_info_t *glyph_info;
+ hb_glyph_position_t *glyph_pos;
+ if(!buf) {
+ buf = hb_buffer_create();
+ }
+ user_data.info = &glyphs;
+ user_data.run = runs + i;
+ user_data.glyph_size = tgret->glyph_size;
+ hb_buffer_clear_contents(buf);
+ hb_buffer_set_script (buf, runs[i].script);
+ font = get_hb_font(&user_data);
+ hb_buffer_set_direction(buf, (runs[i].rtl%2) ? HB_DIRECTION_RTL :HB_DIRECTION_LTR);
+ hb_buffer_add_utf32(buf,glyphs.unicodes + runs[i].offset, runs[i].length, 0, runs[i].length);
+ hb_shape(font,buf,hbfeatures,2);
+ glyph_info = hb_buffer_get_glyph_infos(buf, &glyph_count);
+ glyph_pos = hb_buffer_get_glyph_positions(buf, &glyph_count);
+ alloc_glyphs += glyph_count;
+ tgret->glyphs = msSmallRealloc(tgret->glyphs, alloc_glyphs * sizeof(glyphObj));
+ for(j=0;j<glyph_count;j++) {
+ glyphObj *g = &tgret->glyphs[tgret->numglyphs + j];
+ g->glyph = msGetGlyphByIndex(runs[i].face,tgret->glyph_size,glyph_info[j].codepoint);
+ g->face = runs[i].face;
+ g->pnt.x = penx + glyph_pos[j].x_offset/64;
+ g->pnt.y = peny - glyph_pos[j].y_offset/64;
+ g->rot = 0;
+ penx += glyph_pos[j].x_advance/64.0;
+ /* peny -= glyph_pos[j].y_advance/64; // we don't do vertical layouts */
+ if(runs[i].line_number == 0 && peny - g->glyph->metrics.maxy < tgret->bounds.bbox.miny) /*compute minimal y, only for the first line */
+ tgret->bounds.bbox.miny = peny - g->glyph->metrics.maxy;
+ if(peny - g->glyph->metrics.miny > tgret->bounds.bbox.maxy)
+ tgret->bounds.bbox.maxy = peny - g->glyph->metrics.miny;
+ }
+#endif
+ }
+ tgret->numglyphs = alloc_glyphs;
+ line_descs[runs[nruns-1].line_number].length = penx;
+ if(penx > tgret->bounds.bbox.maxx)
+ tgret->bounds.bbox.maxx = penx;
+ }
+
+#ifdef USE_HARFBUZZ
+ if(buf) {
+ hb_buffer_destroy(buf);
+ }
+#endif
+
+ if(tgret->numlines > 1) {
+ int max_line_length = 0;
+ int line = -1;
+ double cur_line_offset;
+ int prev_default_align = MS_ALIGN_LEFT; /* if we have mixed rtl status, use the alignment of the previous
+ line. this defaults to left-alignment if the first line is mixed */
+ int cur_default_align;
+ for(i=0; i<tgret->numlines; i++) {
+ if(line_descs[i].length > max_line_length) {
+ max_line_length = line_descs[i].length;
+ }
+ }
+ oldpeny = 3455;
+ for(i=0; i<alloc_glyphs; i++) {
+ if(tgret->glyphs[i].pnt.y != oldpeny) {
+ oldpeny = tgret->glyphs[i].pnt.y;
+ line++;
+ /* compute offset to apply to coming line */
+ switch(ts->label->align) {
+ case MS_ALIGN_CENTER:
+ cur_line_offset = (max_line_length - line_descs[line].length)/2.0;
+ break;
+ case MS_ALIGN_RIGHT:
+ cur_line_offset = (max_line_length - line_descs[line].length);
+ break;
+ case MS_ALIGN_LEFT:
+ cur_line_offset = 0;
+ break;
+ case MS_ALIGN_DEFAULT:
+ default:
+ switch(line_descs[line].rtl) {
+ case MS_RTL_MIXED:
+ cur_default_align = prev_default_align;
+ break;
+ case MS_RTL_RTL:
+ cur_default_align = prev_default_align = MS_RTL_RTL;
+ break;
+ case MS_RTL_LTR:
+ cur_default_align = prev_default_align = MS_RTL_LTR;
+ break;
+ }
+ switch(cur_default_align) {
+ case MS_RTL_RTL:
+ /* align to the right */
+ cur_line_offset = (max_line_length - line_descs[line].length);
+ break;
+ case MS_RTL_LTR:
+ cur_line_offset = 0;
+ break;
+ }
+ }
+ }
+ tgret->glyphs[i].pnt.x += cur_line_offset;
+ }
+ }
+ /*
+ * msDebug("bounds for %s: %f %f %f %f\n",ts->annotext,tgret->bounds.bbox.minx,tgret->bounds.bbox.miny,tgret->bounds.bbox.maxx,tgret->bounds.bbox.maxy);
+ */
+
+cleanup:
+ if(line_descs != static_line_descs) free(line_descs);
+ if(glyphs.codepoints != static_codepoints) {
+#ifdef USE_FRIBIDI
+ free(glyphs.bidi_levels);
+ free(glyphs.ctypes);
+#endif
+ free(glyphs.codepoints);
+#ifdef USE_HARFBUZZ
+ free(glyphs.scripts);
+#endif
+ free(glyphs.unicodes);
+ free(runs);
+ }
+ return ret;
+
+
+}
diff --git a/tile4ms.c b/tile4ms.c
index 266bf3b..10c6b26 100644
--- a/tile4ms.c
+++ b/tile4ms.c
@@ -243,6 +243,7 @@ int process_shapefiles(char *metaFileNameP, char *tileFileNameP,
fclose(metaFP);
free(line.point);
+ free(theFields);
printf("Processed %i of %i files\n", tilesProcessed, tilesFound);
diff --git a/uthash.h b/uthash.h
new file mode 100644
index 0000000..3f408ab
--- /dev/null
+++ b/uthash.h
@@ -0,0 +1,940 @@
+/*
+Copyright (c) 2003-2013, Troy D. Hanson http://troydhanson.github.com/uthash/
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef UT_HASH_H
+#define UT_HASH_H
+
+#include <string.h> /* memcmp,strlen */
+#include <stddef.h> /* ptrdiff_t */
+#include <stdlib.h> /* exit() */
+
+/* These macros use decltype or the earlier __typeof GNU extension.
+ As decltype is only available in newer compilers (VS2010 or gcc 4.3+
+ when compiling c++ source) this code uses whatever method is needed
+ or, for VS2008 where neither is available, uses casting workarounds. */
+#ifdef _MSC_VER /* MS compiler */
+#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */
+#define DECLTYPE(x) (decltype(x))
+#else /* VS2008 or older (or VS2010 in C mode) */
+#define NO_DECLTYPE
+#define DECLTYPE(x)
+#endif
+#else /* GNU, Sun and other compilers */
+#define DECLTYPE(x) (__typeof(x))
+#endif
+
+#ifdef NO_DECLTYPE
+#define DECLTYPE_ASSIGN(dst,src) \
+do { \
+ char **_da_dst = (char**)(&(dst)); \
+ *_da_dst = (char*)(src); \
+} while(0)
+#else
+#define DECLTYPE_ASSIGN(dst,src) \
+do { \
+ (dst) = DECLTYPE(dst)(src); \
+} while(0)
+#endif
+
+/* a number of the hash function use uint32_t which isn't defined on win32 */
+#ifdef _MSC_VER
+typedef unsigned int uint32_t;
+typedef unsigned char uint8_t;
+#else
+#include <inttypes.h> /* uint32_t */
+#endif
+
+#define UT_HASH_VERSION 1.9.8
+
+#ifndef uthash_fatal
+#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */
+#endif
+#ifndef uthash_malloc
+#define uthash_malloc(sz) malloc(sz) /* malloc fcn */
+#endif
+#ifndef uthash_free
+#define uthash_free(ptr,sz) free(ptr) /* free fcn */
+#endif
+
+#ifndef uthash_noexpand_fyi
+#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */
+#endif
+#ifndef uthash_expand_fyi
+#define uthash_expand_fyi(tbl) /* can be defined to log expands */
+#endif
+
+/* initial number of buckets */
+#define UT_HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */
+#define UT_HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */
+#define UT_HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */
+
+/* calculate the element whose hash handle address is hhe */
+#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
+
+#define UT_HASH_FIND(hh,head,keyptr,keylen,out) \
+do { \
+ unsigned _hf_bkt,_hf_hashv; \
+ out=NULL; \
+ if (head) { \
+ UT_HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \
+ if (UT_HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \
+ UT_HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \
+ keyptr,keylen,out); \
+ } \
+ } \
+} while (0)
+
+#ifdef UT_HASH_BLOOM
+#define UT_HASH_BLOOM_BITLEN (1ULL << UT_HASH_BLOOM)
+#define UT_HASH_BLOOM_BYTELEN (UT_HASH_BLOOM_BITLEN/8) + ((UT_HASH_BLOOM_BITLEN%8) ? 1:0)
+#define UT_HASH_BLOOM_MAKE(tbl) \
+do { \
+ (tbl)->bloom_nbits = UT_HASH_BLOOM; \
+ (tbl)->bloom_bv = (uint8_t*)uthash_malloc(UT_HASH_BLOOM_BYTELEN); \
+ if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \
+ memset((tbl)->bloom_bv, 0, UT_HASH_BLOOM_BYTELEN); \
+ (tbl)->bloom_sig = UT_HASH_BLOOM_SIGNATURE; \
+} while (0)
+
+#define UT_HASH_BLOOM_FREE(tbl) \
+do { \
+ uthash_free((tbl)->bloom_bv, UT_HASH_BLOOM_BYTELEN); \
+} while (0)
+
+#define UT_HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
+#define UT_HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
+
+#define UT_HASH_BLOOM_ADD(tbl,hashv) \
+ UT_HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+
+#define UT_HASH_BLOOM_TEST(tbl,hashv) \
+ UT_HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
+
+#else
+#define UT_HASH_BLOOM_MAKE(tbl)
+#define UT_HASH_BLOOM_FREE(tbl)
+#define UT_HASH_BLOOM_ADD(tbl,hashv)
+#define UT_HASH_BLOOM_TEST(tbl,hashv) (1)
+#define UT_HASH_BLOOM_BYTELEN 0
+#endif
+
+#define UT_HASH_MAKE_TABLE(hh,head) \
+do { \
+ (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \
+ sizeof(UT_hash_table)); \
+ if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \
+ memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \
+ (head)->hh.tbl->tail = &((head)->hh); \
+ (head)->hh.tbl->num_buckets = UT_HASH_INITIAL_NUM_BUCKETS; \
+ (head)->hh.tbl->log2_num_buckets = UT_HASH_INITIAL_NUM_BUCKETS_LOG2; \
+ (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \
+ (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \
+ UT_HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
+ if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \
+ memset((head)->hh.tbl->buckets, 0, \
+ UT_HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
+ UT_HASH_BLOOM_MAKE((head)->hh.tbl); \
+ (head)->hh.tbl->signature = UT_HASH_SIGNATURE; \
+} while(0)
+
+#define UT_HASH_ADD(hh,head,fieldname,keylen_in,add) \
+ UT_HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
+
+#define UT_HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \
+do { \
+ replaced=NULL; \
+ UT_HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced); \
+ if (replaced!=NULL) { \
+ UT_HASH_DELETE(hh,head,replaced); \
+ }; \
+ UT_HASH_ADD(hh,head,fieldname,keylen_in,add); \
+} while(0)
+
+#define UT_HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \
+do { \
+ unsigned _ha_bkt; \
+ (add)->hh.next = NULL; \
+ (add)->hh.key = (char*)keyptr; \
+ (add)->hh.keylen = (unsigned)keylen_in; \
+ if (!(head)) { \
+ head = (add); \
+ (head)->hh.prev = NULL; \
+ UT_HASH_MAKE_TABLE(hh,head); \
+ } else { \
+ (head)->hh.tbl->tail->next = (add); \
+ (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \
+ (head)->hh.tbl->tail = &((add)->hh); \
+ } \
+ (head)->hh.tbl->num_items++; \
+ (add)->hh.tbl = (head)->hh.tbl; \
+ UT_HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \
+ (add)->hh.hashv, _ha_bkt); \
+ UT_HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \
+ UT_HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \
+ UT_HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \
+ UT_HASH_FSCK(hh,head); \
+} while(0)
+
+#define UT_HASH_TO_BKT( hashv, num_bkts, bkt ) \
+do { \
+ bkt = ((hashv) & ((num_bkts) - 1)); \
+} while(0)
+
+/* delete "delptr" from the hash table.
+ * "the usual" patch-up process for the app-order doubly-linked-list.
+ * The use of _hd_hh_del below deserves special explanation.
+ * These used to be expressed using (delptr) but that led to a bug
+ * if someone used the same symbol for the head and deletee, like
+ * UT_HASH_DELETE(hh,users,users);
+ * We want that to work, but by changing the head (users) below
+ * we were forfeiting our ability to further refer to the deletee (users)
+ * in the patch-up process. Solution: use scratch space to
+ * copy the deletee pointer, then the latter references are via that
+ * scratch pointer rather than through the repointed (users) symbol.
+ */
+#define UT_HASH_DELETE(hh,head,delptr) \
+do { \
+ unsigned _hd_bkt; \
+ struct UT_hash_handle *_hd_hh_del; \
+ if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \
+ uthash_free((head)->hh.tbl->buckets, \
+ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+ UT_HASH_BLOOM_FREE((head)->hh.tbl); \
+ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
+ head = NULL; \
+ } else { \
+ _hd_hh_del = &((delptr)->hh); \
+ if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \
+ (head)->hh.tbl->tail = \
+ (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
+ (head)->hh.tbl->hho); \
+ } \
+ if ((delptr)->hh.prev) { \
+ ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
+ (head)->hh.tbl->hho))->next = (delptr)->hh.next; \
+ } else { \
+ DECLTYPE_ASSIGN(head,(delptr)->hh.next); \
+ } \
+ if (_hd_hh_del->next) { \
+ ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \
+ (head)->hh.tbl->hho))->prev = \
+ _hd_hh_del->prev; \
+ } \
+ UT_HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \
+ UT_HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \
+ (head)->hh.tbl->num_items--; \
+ } \
+ UT_HASH_FSCK(hh,head); \
+} while (0)
+
+
+/* convenience forms of UT_HASH_FIND/UT_HASH_ADD/UT_HASH_DEL */
+#define UT_HASH_FIND_STR(head,findstr,out) \
+ UT_HASH_FIND(hh,head,findstr,strlen(findstr),out)
+#define UT_HASH_ADD_STR(head,strfield,add) \
+ UT_HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
+#define UT_HASH_REPLACE_STR(head,strfield,add,replaced) \
+ UT_HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced)
+#define UT_HASH_FIND_INT(head,findint,out) \
+ UT_HASH_FIND(hh,head,findint,sizeof(int),out)
+#define UT_HASH_ADD_INT(head,intfield,add) \
+ UT_HASH_ADD(hh,head,intfield,sizeof(int),add)
+#define UT_HASH_REPLACE_INT(head,intfield,add,replaced) \
+ UT_HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
+#define UT_HASH_FIND_PTR(head,findptr,out) \
+ UT_HASH_FIND(hh,head,findptr,sizeof(void *),out)
+#define UT_HASH_ADD_PTR(head,ptrfield,add) \
+ UT_HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
+#define UT_HASH_REPLACE_PTR(head,ptrfield,add) \
+ UT_HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
+#define UT_HASH_DEL(head,delptr) \
+ UT_HASH_DELETE(hh,head,delptr)
+
+/* UT_HASH_FSCK checks hash integrity on every add/delete when UT_HASH_DEBUG is defined.
+ * This is for uthash developer only; it compiles away if UT_HASH_DEBUG isn't defined.
+ */
+#ifdef UT_HASH_DEBUG
+#define UT_HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
+#define UT_HASH_FSCK(hh,head) \
+do { \
+ unsigned _bkt_i; \
+ unsigned _count, _bkt_count; \
+ char *_prev; \
+ struct UT_hash_handle *_thh; \
+ if (head) { \
+ _count = 0; \
+ for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \
+ _bkt_count = 0; \
+ _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \
+ _prev = NULL; \
+ while (_thh) { \
+ if (_prev != (char*)(_thh->hh_prev)) { \
+ UT_HASH_OOPS("invalid hh_prev %p, actual %p\n", \
+ _thh->hh_prev, _prev ); \
+ } \
+ _bkt_count++; \
+ _prev = (char*)(_thh); \
+ _thh = _thh->hh_next; \
+ } \
+ _count += _bkt_count; \
+ if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \
+ UT_HASH_OOPS("invalid bucket count %d, actual %d\n", \
+ (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \
+ } \
+ } \
+ if (_count != (head)->hh.tbl->num_items) { \
+ UT_HASH_OOPS("invalid hh item count %d, actual %d\n", \
+ (head)->hh.tbl->num_items, _count ); \
+ } \
+ /* traverse hh in app order; check next/prev integrity, count */ \
+ _count = 0; \
+ _prev = NULL; \
+ _thh = &(head)->hh; \
+ while (_thh) { \
+ _count++; \
+ if (_prev !=(char*)(_thh->prev)) { \
+ UT_HASH_OOPS("invalid prev %p, actual %p\n", \
+ _thh->prev, _prev ); \
+ } \
+ _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \
+ _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \
+ (head)->hh.tbl->hho) : NULL ); \
+ } \
+ if (_count != (head)->hh.tbl->num_items) { \
+ UT_HASH_OOPS("invalid app item count %d, actual %d\n", \
+ (head)->hh.tbl->num_items, _count ); \
+ } \
+ } \
+} while (0)
+#else
+#define UT_HASH_FSCK(hh,head)
+#endif
+
+/* When compiled with -DUT_HASH_EMIT_KEYS, length-prefixed keys are emitted to
+ * the descriptor to which this macro is defined for tuning the hash function.
+ * The app can #include <unistd.h> to get the prototype for write(2). */
+#ifdef UT_HASH_EMIT_KEYS
+#define UT_HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \
+do { \
+ unsigned _klen = fieldlen; \
+ write(UT_HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \
+ write(UT_HASH_EMIT_KEYS, keyptr, fieldlen); \
+} while (0)
+#else
+#define UT_HASH_EMIT_KEY(hh,head,keyptr,fieldlen)
+#endif
+
+/* default to Jenkin's hash unless overridden e.g. DUT_HASH_FUNCTION=UT_HASH_SAX */
+#ifdef UT_HASH_FUNCTION
+#define UT_HASH_FCN UT_HASH_FUNCTION
+#else
+#define UT_HASH_FCN UT_HASH_JEN
+#endif
+
+/* The Bernstein hash function, used in Perl prior to v5.6 */
+#define UT_HASH_BER(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _hb_keylen=keylen; \
+ char *_hb_key=(char*)(key); \
+ (hashv) = 0; \
+ while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \
+ bkt = (hashv) & (num_bkts-1); \
+} while (0)
+
+
+/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at
+ * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
+#define UT_HASH_SAX(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _sx_i; \
+ char *_hs_key=(char*)(key); \
+ hashv = 0; \
+ for(_sx_i=0; _sx_i < keylen; _sx_i++) \
+ hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \
+ bkt = hashv & (num_bkts-1); \
+} while (0)
+
+#define UT_HASH_FNV(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _fn_i; \
+ char *_hf_key=(char*)(key); \
+ hashv = 2166136261UL; \
+ for(_fn_i=0; _fn_i < keylen; _fn_i++) \
+ hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#define UT_HASH_OAT(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _ho_i; \
+ char *_ho_key=(char*)(key); \
+ hashv = 0; \
+ for(_ho_i=0; _ho_i < keylen; _ho_i++) { \
+ hashv += _ho_key[_ho_i]; \
+ hashv += (hashv << 10); \
+ hashv ^= (hashv >> 6); \
+ } \
+ hashv += (hashv << 3); \
+ hashv ^= (hashv >> 11); \
+ hashv += (hashv << 15); \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#define UT_HASH_JEN_MIX(a,b,c) \
+do { \
+ a -= b; a -= c; a ^= ( c >> 13 ); \
+ b -= c; b -= a; b ^= ( a << 8 ); \
+ c -= a; c -= b; c ^= ( b >> 13 ); \
+ a -= b; a -= c; a ^= ( c >> 12 ); \
+ b -= c; b -= a; b ^= ( a << 16 ); \
+ c -= a; c -= b; c ^= ( b >> 5 ); \
+ a -= b; a -= c; a ^= ( c >> 3 ); \
+ b -= c; b -= a; b ^= ( a << 10 ); \
+ c -= a; c -= b; c ^= ( b >> 15 ); \
+} while (0)
+
+#define UT_HASH_JEN(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned _hj_i,_hj_j,_hj_k; \
+ unsigned char *_hj_key=(unsigned char*)(key); \
+ hashv = 0xfeedbeef; \
+ _hj_i = _hj_j = 0x9e3779b9; \
+ _hj_k = (unsigned)keylen; \
+ while (_hj_k >= 12) { \
+ _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \
+ + ( (unsigned)_hj_key[2] << 16 ) \
+ + ( (unsigned)_hj_key[3] << 24 ) ); \
+ _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \
+ + ( (unsigned)_hj_key[6] << 16 ) \
+ + ( (unsigned)_hj_key[7] << 24 ) ); \
+ hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \
+ + ( (unsigned)_hj_key[10] << 16 ) \
+ + ( (unsigned)_hj_key[11] << 24 ) ); \
+ \
+ UT_HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
+ \
+ _hj_key += 12; \
+ _hj_k -= 12; \
+ } \
+ hashv += keylen; \
+ switch ( _hj_k ) { \
+ case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \
+ case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \
+ case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \
+ case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \
+ case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \
+ case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \
+ case 5: _hj_j += _hj_key[4]; \
+ case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \
+ case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \
+ case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \
+ case 1: _hj_i += _hj_key[0]; \
+ } \
+ UT_HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+/* The Paul Hsieh hash function */
+#undef get16bits
+#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
+ || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
+#define get16bits(d) (*((const uint16_t *) (d)))
+#endif
+
+#if !defined (get16bits)
+#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \
+ +(uint32_t)(((const uint8_t *)(d))[0]) )
+#endif
+#define UT_HASH_SFH(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ unsigned char *_sfh_key=(unsigned char*)(key); \
+ uint32_t _sfh_tmp, _sfh_len = keylen; \
+ \
+ int _sfh_rem = _sfh_len & 3; \
+ _sfh_len >>= 2; \
+ hashv = 0xcafebabe; \
+ \
+ /* Main loop */ \
+ for (;_sfh_len > 0; _sfh_len--) { \
+ hashv += get16bits (_sfh_key); \
+ _sfh_tmp = (uint32_t)(get16bits (_sfh_key+2)) << 11 ^ hashv; \
+ hashv = (hashv << 16) ^ _sfh_tmp; \
+ _sfh_key += 2*sizeof (uint16_t); \
+ hashv += hashv >> 11; \
+ } \
+ \
+ /* Handle end cases */ \
+ switch (_sfh_rem) { \
+ case 3: hashv += get16bits (_sfh_key); \
+ hashv ^= hashv << 16; \
+ hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18); \
+ hashv += hashv >> 11; \
+ break; \
+ case 2: hashv += get16bits (_sfh_key); \
+ hashv ^= hashv << 11; \
+ hashv += hashv >> 17; \
+ break; \
+ case 1: hashv += *_sfh_key; \
+ hashv ^= hashv << 10; \
+ hashv += hashv >> 1; \
+ } \
+ \
+ /* Force "avalanching" of final 127 bits */ \
+ hashv ^= hashv << 3; \
+ hashv += hashv >> 5; \
+ hashv ^= hashv << 4; \
+ hashv += hashv >> 17; \
+ hashv ^= hashv << 25; \
+ hashv += hashv >> 6; \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+
+#ifdef UT_HASH_USING_NO_STRICT_ALIASING
+/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
+ * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
+ * MurmurHash uses the faster approach only on CPU's where we know it's safe.
+ *
+ * Note the preprocessor built-in defines can be emitted using:
+ *
+ * gcc -m64 -dM -E - < /dev/null (on gcc)
+ * cc -## a.c (where a.c is a simple test file) (Sun Studio)
+ */
+#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86))
+#define MUR_GETBLOCK(p,i) p[i]
+#else /* non intel */
+#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
+#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
+#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
+#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
+#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
+#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
+#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
+#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
+#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8))
+#else /* assume little endian non-intel */
+#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
+#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
+#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8))
+#endif
+#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \
+ (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
+ (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \
+ MUR_ONE_THREE(p))))
+#endif
+#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
+#define MUR_FMIX(_h) \
+do { \
+ _h ^= _h >> 16; \
+ _h *= 0x85ebca6b; \
+ _h ^= _h >> 13; \
+ _h *= 0xc2b2ae35l; \
+ _h ^= _h >> 16; \
+} while(0)
+
+#define UT_HASH_MUR(key,keylen,num_bkts,hashv,bkt) \
+do { \
+ const uint8_t *_mur_data = (const uint8_t*)(key); \
+ const int _mur_nblocks = (keylen) / 4; \
+ uint32_t _mur_h1 = 0xf88D5353; \
+ uint32_t _mur_c1 = 0xcc9e2d51; \
+ uint32_t _mur_c2 = 0x1b873593; \
+ uint32_t _mur_k1 = 0; \
+ const uint8_t *_mur_tail; \
+ const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
+ int _mur_i; \
+ for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \
+ _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \
+ _mur_k1 *= _mur_c1; \
+ _mur_k1 = MUR_ROTL32(_mur_k1,15); \
+ _mur_k1 *= _mur_c2; \
+ \
+ _mur_h1 ^= _mur_k1; \
+ _mur_h1 = MUR_ROTL32(_mur_h1,13); \
+ _mur_h1 = _mur_h1*5+0xe6546b64; \
+ } \
+ _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \
+ _mur_k1=0; \
+ switch((keylen) & 3) { \
+ case 3: _mur_k1 ^= _mur_tail[2] << 16; \
+ case 2: _mur_k1 ^= _mur_tail[1] << 8; \
+ case 1: _mur_k1 ^= _mur_tail[0]; \
+ _mur_k1 *= _mur_c1; \
+ _mur_k1 = MUR_ROTL32(_mur_k1,15); \
+ _mur_k1 *= _mur_c2; \
+ _mur_h1 ^= _mur_k1; \
+ } \
+ _mur_h1 ^= (keylen); \
+ MUR_FMIX(_mur_h1); \
+ hashv = _mur_h1; \
+ bkt = hashv & (num_bkts-1); \
+} while(0)
+#endif /* UT_HASH_USING_NO_STRICT_ALIASING */
+
+/* key comparison function; return 0 if keys equal */
+#define UT_HASH_KEYCMP(a,b,len) memcmp(a,b,len)
+
+/* iterate over items in a known bucket to find desired item */
+#define UT_HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \
+do { \
+ if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \
+ else out=NULL; \
+ while (out) { \
+ if ((out)->hh.keylen == keylen_in) { \
+ if ((UT_HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \
+ } \
+ if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
+ else out = NULL; \
+ } \
+} while(0)
+
+/* add an item to a bucket */
+#define UT_HASH_ADD_TO_BKT(head,addhh) \
+do { \
+ head.count++; \
+ (addhh)->hh_next = head.hh_head; \
+ (addhh)->hh_prev = NULL; \
+ if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \
+ (head).hh_head=addhh; \
+ if (head.count >= ((head.expand_mult+1) * UT_HASH_BKT_CAPACITY_THRESH) \
+ && (addhh)->tbl->noexpand != 1) { \
+ UT_HASH_EXPAND_BUCKETS((addhh)->tbl); \
+ } \
+} while(0)
+
+/* remove an item from a given bucket */
+#define UT_HASH_DEL_IN_BKT(hh,head,hh_del) \
+ (head).count--; \
+ if ((head).hh_head == hh_del) { \
+ (head).hh_head = hh_del->hh_next; \
+ } \
+ if (hh_del->hh_prev) { \
+ hh_del->hh_prev->hh_next = hh_del->hh_next; \
+ } \
+ if (hh_del->hh_next) { \
+ hh_del->hh_next->hh_prev = hh_del->hh_prev; \
+ }
+
+/* Bucket expansion has the effect of doubling the number of buckets
+ * and redistributing the items into the new buckets. Ideally the
+ * items will distribute more or less evenly into the new buckets
+ * (the extent to which this is true is a measure of the quality of
+ * the hash function as it applies to the key domain).
+ *
+ * With the items distributed into more buckets, the chain length
+ * (item count) in each bucket is reduced. Thus by expanding buckets
+ * the hash keeps a bound on the chain length. This bounded chain
+ * length is the essence of how a hash provides constant time lookup.
+ *
+ * The calculation of tbl->ideal_chain_maxlen below deserves some
+ * explanation. First, keep in mind that we're calculating the ideal
+ * maximum chain length based on the *new* (doubled) bucket count.
+ * In fractions this is just n/b (n=number of items,b=new num buckets).
+ * Since the ideal chain length is an integer, we want to calculate
+ * ceil(n/b). We don't depend on floating point arithmetic in this
+ * hash, so to calculate ceil(n/b) with integers we could write
+ *
+ * ceil(n/b) = (n/b) + ((n%b)?1:0)
+ *
+ * and in fact a previous version of this hash did just that.
+ * But now we have improved things a bit by recognizing that b is
+ * always a power of two. We keep its base 2 log handy (call it lb),
+ * so now we can write this with a bit shift and logical AND:
+ *
+ * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
+ *
+ */
+#define UT_HASH_EXPAND_BUCKETS(tbl) \
+do { \
+ unsigned _he_bkt; \
+ unsigned _he_bkt_i; \
+ struct UT_hash_handle *_he_thh, *_he_hh_nxt; \
+ UT_hash_bucket *_he_new_buckets, *_he_newbkt; \
+ _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \
+ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
+ if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \
+ memset(_he_new_buckets, 0, \
+ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
+ tbl->ideal_chain_maxlen = \
+ (tbl->num_items >> (tbl->log2_num_buckets+1)) + \
+ ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \
+ tbl->nonideal_items = 0; \
+ for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \
+ { \
+ _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \
+ while (_he_thh) { \
+ _he_hh_nxt = _he_thh->hh_next; \
+ UT_HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \
+ _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \
+ if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \
+ tbl->nonideal_items++; \
+ _he_newbkt->expand_mult = _he_newbkt->count / \
+ tbl->ideal_chain_maxlen; \
+ } \
+ _he_thh->hh_prev = NULL; \
+ _he_thh->hh_next = _he_newbkt->hh_head; \
+ if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \
+ _he_thh; \
+ _he_newbkt->hh_head = _he_thh; \
+ _he_thh = _he_hh_nxt; \
+ } \
+ } \
+ uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
+ tbl->num_buckets *= 2; \
+ tbl->log2_num_buckets++; \
+ tbl->buckets = _he_new_buckets; \
+ tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \
+ (tbl->ineff_expands+1) : 0; \
+ if (tbl->ineff_expands > 1) { \
+ tbl->noexpand=1; \
+ uthash_noexpand_fyi(tbl); \
+ } \
+ uthash_expand_fyi(tbl); \
+} while(0)
+
+
+/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
+/* Note that UT_HASH_SORT assumes the hash handle name to be hh.
+ * UT_HASH_SRT was added to allow the hash handle name to be passed in. */
+#define UT_HASH_SORT(head,cmpfcn) UT_HASH_SRT(hh,head,cmpfcn)
+#define UT_HASH_SRT(hh,head,cmpfcn) \
+do { \
+ unsigned _hs_i; \
+ unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \
+ struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \
+ if (head) { \
+ _hs_insize = 1; \
+ _hs_looping = 1; \
+ _hs_list = &((head)->hh); \
+ while (_hs_looping) { \
+ _hs_p = _hs_list; \
+ _hs_list = NULL; \
+ _hs_tail = NULL; \
+ _hs_nmerges = 0; \
+ while (_hs_p) { \
+ _hs_nmerges++; \
+ _hs_q = _hs_p; \
+ _hs_psize = 0; \
+ for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \
+ _hs_psize++; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ if (! (_hs_q) ) break; \
+ } \
+ _hs_qsize = _hs_insize; \
+ while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \
+ if (_hs_psize == 0) { \
+ _hs_e = _hs_q; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_qsize--; \
+ } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \
+ _hs_e = _hs_p; \
+ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
+ ((void*)((char*)(_hs_p->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_psize--; \
+ } else if (( \
+ cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
+ DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
+ ) <= 0) { \
+ _hs_e = _hs_p; \
+ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
+ ((void*)((char*)(_hs_p->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_psize--; \
+ } else { \
+ _hs_e = _hs_q; \
+ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
+ ((void*)((char*)(_hs_q->next) + \
+ (head)->hh.tbl->hho)) : NULL); \
+ _hs_qsize--; \
+ } \
+ if ( _hs_tail ) { \
+ _hs_tail->next = ((_hs_e) ? \
+ ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \
+ } else { \
+ _hs_list = _hs_e; \
+ } \
+ _hs_e->prev = ((_hs_tail) ? \
+ ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \
+ _hs_tail = _hs_e; \
+ } \
+ _hs_p = _hs_q; \
+ } \
+ _hs_tail->next = NULL; \
+ if ( _hs_nmerges <= 1 ) { \
+ _hs_looping=0; \
+ (head)->hh.tbl->tail = _hs_tail; \
+ DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \
+ } \
+ _hs_insize *= 2; \
+ } \
+ UT_HASH_FSCK(hh,head); \
+ } \
+} while (0)
+
+/* This function selects items from one hash into another hash.
+ * The end result is that the selected items have dual presence
+ * in both hashes. There is no copy of the items made; rather
+ * they are added into the new hash through a secondary hash
+ * hash handle that must be present in the structure. */
+#define UT_HASH_SELECT(hh_dst, dst, hh_src, src, cond) \
+do { \
+ unsigned _src_bkt, _dst_bkt; \
+ void *_last_elt=NULL, *_elt; \
+ UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \
+ ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \
+ if (src) { \
+ for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \
+ for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \
+ _src_hh; \
+ _src_hh = _src_hh->hh_next) { \
+ _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \
+ if (cond(_elt)) { \
+ _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \
+ _dst_hh->key = _src_hh->key; \
+ _dst_hh->keylen = _src_hh->keylen; \
+ _dst_hh->hashv = _src_hh->hashv; \
+ _dst_hh->prev = _last_elt; \
+ _dst_hh->next = NULL; \
+ if (_last_elt_hh) { _last_elt_hh->next = _elt; } \
+ if (!dst) { \
+ DECLTYPE_ASSIGN(dst,_elt); \
+ UT_HASH_MAKE_TABLE(hh_dst,dst); \
+ } else { \
+ _dst_hh->tbl = (dst)->hh_dst.tbl; \
+ } \
+ UT_HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \
+ UT_HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \
+ (dst)->hh_dst.tbl->num_items++; \
+ _last_elt = _elt; \
+ _last_elt_hh = _dst_hh; \
+ } \
+ } \
+ } \
+ } \
+ UT_HASH_FSCK(hh_dst,dst); \
+} while (0)
+
+#define UT_HASH_CLEAR(hh,head) \
+do { \
+ if (head) { \
+ uthash_free((head)->hh.tbl->buckets, \
+ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \
+ UT_HASH_BLOOM_FREE((head)->hh.tbl); \
+ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
+ (head)=NULL; \
+ } \
+} while(0)
+
+#define UT_HASH_OVERHEAD(hh,head) \
+ (size_t)((((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \
+ ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \
+ (sizeof(UT_hash_table)) + \
+ (UT_HASH_BLOOM_BYTELEN)))
+
+#ifdef NO_DECLTYPE
+#define UT_HASH_ITER(hh,head,el,tmp) \
+for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \
+ el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL))
+#else
+#define UT_HASH_ITER(hh,head,el,tmp) \
+for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \
+ el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
+#endif
+
+/* obtain a count of items in the hash */
+#define UT_HASH_COUNT(head) UT_HASH_CNT(hh,head)
+#define UT_HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
+
+typedef struct UT_hash_bucket {
+ struct UT_hash_handle *hh_head;
+ unsigned count;
+
+ /* expand_mult is normally set to 0. In this situation, the max chain length
+ * threshold is enforced at its default value, UT_HASH_BKT_CAPACITY_THRESH. (If
+ * the bucket's chain exceeds this length, bucket expansion is triggered).
+ * However, setting expand_mult to a non-zero value delays bucket expansion
+ * (that would be triggered by additions to this particular bucket)
+ * until its chain length reaches a *multiple* of UT_HASH_BKT_CAPACITY_THRESH.
+ * (The multiplier is simply expand_mult+1). The whole idea of this
+ * multiplier is to reduce bucket expansions, since they are expensive, in
+ * situations where we know that a particular bucket tends to be overused.
+ * It is better to let its chain length grow to a longer yet-still-bounded
+ * value, than to do an O(n) bucket expansion too often.
+ */
+ unsigned expand_mult;
+
+} UT_hash_bucket;
+
+/* random signature used only to find hash tables in external analysis */
+#define UT_HASH_SIGNATURE 0xa0111fe1
+#define UT_HASH_BLOOM_SIGNATURE 0xb12220f2
+
+typedef struct UT_hash_table {
+ UT_hash_bucket *buckets;
+ unsigned num_buckets, log2_num_buckets;
+ unsigned num_items;
+ struct UT_hash_handle *tail; /* tail hh in app order, for fast append */
+ ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
+
+ /* in an ideal situation (all buckets used equally), no bucket would have
+ * more than ceil(#items/#buckets) items. that's the ideal chain length. */
+ unsigned ideal_chain_maxlen;
+
+ /* nonideal_items is the number of items in the hash whose chain position
+ * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
+ * hash distribution; reaching them in a chain traversal takes >ideal steps */
+ unsigned nonideal_items;
+
+ /* ineffective expands occur when a bucket doubling was performed, but
+ * afterward, more than half the items in the hash had nonideal chain
+ * positions. If this happens on two consecutive expansions we inhibit any
+ * further expansion, as it's not helping; this happens when the hash
+ * function isn't a good fit for the key domain. When expansion is inhibited
+ * the hash will still work, albeit no longer in constant time. */
+ unsigned ineff_expands, noexpand;
+
+ uint32_t signature; /* used only to find hash tables in external analysis */
+#ifdef UT_HASH_BLOOM
+ uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
+ uint8_t *bloom_bv;
+ char bloom_nbits;
+#endif
+
+} UT_hash_table;
+
+typedef struct UT_hash_handle {
+ struct UT_hash_table *tbl;
+ void *prev; /* prev element in app order */
+ void *next; /* next element in app order */
+ struct UT_hash_handle *hh_prev; /* previous hh in bucket order */
+ struct UT_hash_handle *hh_next; /* next hh in bucket order */
+ void *key; /* ptr to enclosing struct's key */
+ unsigned keylen; /* enclosing struct's key len */
+ unsigned hashv; /* result of hash-fcn(key) */
+} UT_hash_handle;
+
+#endif /* UT_HASH_H */
diff --git a/xmlmapfile/mapfile.xsd b/xmlmapfile/mapfile.xsd
index 310b90d..2d778bc 100644
--- a/xmlmapfile/mapfile.xsd
+++ b/xmlmapfile/mapfile.xsd
@@ -280,6 +280,7 @@
<xs:element name="colorAttribute" type="ms:attributeType"/>
</xs:choice>
<xs:element name="encoding" minOccurs="0"/>
+ <xs:element name="expression" type="ms:expressionType" minOccurs="0"/>
<xs:element name="font" type="xs:string" minOccurs="0"/>
<xs:element name="force" type="ms:booleanEnum" default="FALSE" minOccurs="0"/>
<xs:element name="maxLength" type="xs:integer" default="0" minOccurs="0"/>
@@ -345,6 +346,8 @@
</xs:simpleType>
</xs:union>
</xs:simpleType>
+ <xs:element name="maxScaleDenom" type="xs:double" minOccurs="0"/>
+ <xs:element name="minScaleDenom" type="xs:double" minOccurs="0"/>
</xs:element>
<xs:element name="Style" type="ms:Style" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="text" type="xs:string" minOccurs="0"/>
@@ -464,7 +467,7 @@
<xs:element name="expression" type="ms:expressionType" minOccurs="0"/>
<xs:element name="group" type="xs:string" minOccurs="0"/>
<xs:element name="keyImage" type="xs:string" minOccurs="0"/>
- <xs:element name="Label" type="ms:Label" minOccurs="0"/>
+ <xs:element name="Label" type="ms:Label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="LabelLeader" type="ms:LabelLeader" minOccurs="0"/>
<xs:element name="maxScaleDenom" type="xs:double" minOccurs="0"/>
<xs:element name="maxSize" type="xs:integer" default="50" minOccurs="0"/>
diff --git a/xmlmapfile/mapfile.xsl b/xmlmapfile/mapfile.xsl
index 13cfa04..59a506a 100644
--- a/xmlmapfile/mapfile.xsl
+++ b/xmlmapfile/mapfile.xsl
@@ -609,6 +609,10 @@
<xsl:with-param name="node" select="'ms:encoding'"/>
<xsl:with-param name="quote" select="1"/>
</xsl:call-template>
+ <xsl:call-template name="printExpression">
+ <xsl:with-param name="indent" select="$indent"/>
+ <xsl:with-param name="node" select="'ms:expression'"/>
+ </xsl:call-template>
<xsl:call-template name="print">
<xsl:with-param name="indent" select="$indent"/>
<xsl:with-param name="node" select="'ms:font'"/>
@@ -691,6 +695,14 @@
<xsl:with-param name="quote" select="1"/>
</xsl:call-template>
<xsl:call-template name="print">
+ <xsl:with-param name="indent" select="$indent"/>
+ <xsl:with-param name="node" select="'ms:maxScaleDenom'"/>
+ </xsl:call-template>
+ <xsl:call-template name="print">
+ <xsl:with-param name="indent" select="$indent"/>
+ <xsl:with-param name="node" select="'ms:minScaleDenom'"/>
+ </xsl:call-template>
+ <xsl:call-template name="print">
<xsl:with-param name="text" select="'END'"/>
<xsl:with-param name="indent" select="$indent - 1"/>
</xsl:call-template>
@@ -928,9 +940,11 @@
<xsl:with-param name="node" select="'ms:keyImage'"/>
<xsl:with-param name="quote" select="1"/>
</xsl:call-template>
- <xsl:apply-templates select="ms:Label">
- <xsl:with-param name="indent" select="$indent + 1"/>
- </xsl:apply-templates>
+ <xsl:for-each select="ms:Label">
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="indent" select="$indent + 1"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
<xsl:apply-templates select="ms:LabelLeader">
<xsl:with-param name="indent" select="$indent + 1"/>
</xsl:apply-templates>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mapserver.git
More information about the Pkg-grass-devel
mailing list